Skip to content

Commit bf01cf3

Browse files
committed
chore(satellite): sync metis from aicom monorepo
Auto-generated by scripts/mirror_satellites.sh
1 parent 46edb03 commit bf01cf3

11 files changed

Lines changed: 76 additions & 33 deletions

File tree

coverage/coverage.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

deploy/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ silently resets `knowledge_entries` to 0.
8181

8282
## First-time setup
8383

84-
1. **DNS** — point an `A` record at the node (e.g. `metis.modelmarket.dev → 31.77.67.99`).
84+
1. **DNS** — point an `A` record at the node (e.g. `metis.modelmarket.dev → <metis-host-ip>`).
8585
2. **Landing** — sync `docs/landing/` to `/var/www/metis-landing/`.
8686
3. **Config** — copy `nginx.conf` to `/opt/metis/deploy/nginx.conf`.
8787
4. **Run nginx** (HTTP first, so the ACME challenge is reachable):

deploy/apache-test/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Logs land at:
3535
- name: metis
3636
source: ssh_http_access_log
3737
ssh:
38-
host: "31.77.67.99"
38+
host: "<metis-host>"
3939
port: 22
4040
user: stats
4141
key_path: "~/.ssh/id_ed25519"

deploy/nginx.conf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,25 +48,25 @@ server {
4848
proxy_cache off;
4949
gzip off;
5050
chunked_transfer_encoding on;
51-
proxy_read_timeout 300s;
51+
proxy_read_timeout 420s;
5252
}
5353
# Factory confidence-gate — runs can take up to Metis _RUN_TIMEOUT (300s).
5454
location = /v1/verify {
5555
limit_req zone=metis_api burst=40 nodelay;
5656
proxy_pass http://metis:8080;
5757
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
58-
proxy_connect_timeout 10s; proxy_read_timeout 300s;
58+
proxy_connect_timeout 10s; proxy_read_timeout 420s;
5959
}
6060
location /v1/ {
6161
limit_req zone=metis_api burst=40 nodelay;
6262
proxy_pass http://metis:8080;
6363
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
64-
proxy_connect_timeout 10s; proxy_read_timeout 120s;
64+
proxy_connect_timeout 10s; proxy_read_timeout 420s;
6565
}
6666
location = /health { proxy_pass http://metis:8080/health; }
6767
location /aimarket/ {
6868
limit_req zone=metis_api burst=20 nodelay;
69-
proxy_pass http://metis:8080; proxy_set_header Host $host; proxy_read_timeout 120s;
69+
proxy_pass http://metis:8080; proxy_set_header Host $host; proxy_read_timeout 420s;
7070
}
7171
}
7272

@@ -95,25 +95,25 @@ server {
9595
proxy_cache off;
9696
gzip off;
9797
chunked_transfer_encoding on;
98-
proxy_read_timeout 300s;
98+
proxy_read_timeout 420s;
9999
}
100100
# Factory confidence-gate — runs can take up to Metis _RUN_TIMEOUT (300s).
101101
location = /v1/verify {
102102
limit_req zone=metis_api burst=40 nodelay;
103103
proxy_pass http://metis:8080;
104104
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
105-
proxy_connect_timeout 10s; proxy_read_timeout 300s;
105+
proxy_connect_timeout 10s; proxy_read_timeout 420s;
106106
}
107107
location /v1/ {
108108
limit_req zone=metis_api burst=40 nodelay;
109109
proxy_pass http://metis:8080;
110110
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
111-
proxy_connect_timeout 10s; proxy_read_timeout 120s;
111+
proxy_connect_timeout 10s; proxy_read_timeout 420s;
112112
}
113113
location = /health { proxy_pass http://metis:8080/health; }
114114
location /aimarket/ {
115115
limit_req zone=metis_api burst=20 nodelay;
116-
proxy_pass http://metis:8080; proxy_set_header Host $host; proxy_read_timeout 120s;
116+
proxy_pass http://metis:8080; proxy_set_header Host $host; proxy_read_timeout 420s;
117117
}
118118
}
119119

deploy/skopos-test/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SKOPOS test deployment on metis
22

3-
Test instance of **SKOPOS** on the Metis node (`31.77.67.99`) — PostgreSQL + dashboard on **localhost:8501** (not public by default).
3+
Test instance of **SKOPOS** on the Metis node — PostgreSQL + dashboard on **localhost:8501** (not public by default).
44

55
## Stack
66

@@ -39,7 +39,7 @@ Manual Pages publish:
3939
## Open UI locally
4040

4141
```bash
42-
ssh -L 8501:127.0.0.1:8501 root@31.77.67.99
42+
ssh -L 8501:127.0.0.1:8501 root@<metis-host>
4343
# browser: http://localhost:8501
4444
```
4545

deploy/skopos-test/deploy.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ install_probe_key() {
4040
}
4141

4242
# Best-effort: allow SKOPOS container to SSH to factory + oracle for fleet logs.
43-
install_probe_key "root@5.129.212.122" 8443 || true
44-
install_probe_key "root@78.17.126.214" 22 || true
43+
install_probe_key "root@modeldev.modelmarket.dev" 8443 || true
44+
install_probe_key "root@oracles.modelmarket.dev" 22 || true
4545

4646
if [[ ! -f "${ENV_FILE}" ]]; then
4747
log "Creating .env from example with generated passwords…"
@@ -135,7 +135,7 @@ PY
135135
log "Done."
136136
echo ""
137137
echo " UI (on server): http://127.0.0.1:8501"
138-
echo " SSH tunnel: ssh -L 8501:127.0.0.1:8501 root@31.77.67.99"
138+
echo " SSH tunnel: ssh -L 8501:127.0.0.1:8501 root@skopos.modelmarket.dev"
139139
echo " Password: grep SKOPOS_DASHBOARD_PASSWORD ${ENV_FILE}"
140140
echo " Postgres: docker exec -it metis-skopos-postgres psql -U skopos skopos"
141141
echo " Logs: cd ${ROOT} && docker compose logs -f skopos"

deploy/skopos-test/remote-sync.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
set -euo pipefail
44

55
REPO="${REPO:-$(cd "$(dirname "$0")/../../.." && pwd)}"
6-
METIS_HOST="${METIS_HOST:-root@31.77.67.99}"
6+
METIS_HOST="${METIS_HOST:-root@skopos.modelmarket.dev}"
77
APP_REMOTE="/opt/skopos-test/app"
88
DEPLOY_REMOTE="/opt/skopos-test/deploy"
99
APACHE_REMOTE="/opt/metis/deploy/apache-test"
@@ -60,7 +60,7 @@ REMOTE
6060

6161
PROBE_PUB="$(ssh "${METIS_HOST}" "cat ${DEPLOY_REMOTE}/ssh/id_ed25519.pub 2>/dev/null" || true)"
6262
if [[ -n "${PROBE_PUB}" ]]; then
63-
for spec in "root@5.129.212.122:8443" "root@78.17.126.214:22"; do
63+
for spec in "root@modeldev.modelmarket.dev:8443" "root@oracles.modelmarket.dev:22"; do
6464
target="${spec%%:*}"
6565
port="${spec##*:}"
6666
ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new -p "${port}" "${target}" \

deploy/skopos-test/servers.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ servers:
1313
- name: factory
1414
source: ssh_nginx_access_log
1515
ssh:
16-
host: 5.129.212.122
16+
host: modeldev.modelmarket.dev
1717
port: 8443
1818
user: root
1919
key_path: /root/.ssh/id_ed25519
@@ -25,7 +25,7 @@ servers:
2525
- name: oracle
2626
source: ssh_nginx_access_log
2727
ssh:
28-
host: 78.17.126.214
28+
host: oracles.modelmarket.dev
2929
port: 22
3030
user: root
3131
key_path: /root/.ssh/id_ed25519

docs/OPERATIONS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ alerting**, **backup & disaster recovery**, and **load testing**. Honest status
2020
static_configs: [{ targets: ["metis:8080"] }]
2121
rule_files: [ "deploy/monitoring/prometheus-alerts.yml" ]
2222
```
23-
- **Alerts** ([`deploy/monitoring/prometheus-alerts.yml`](deploy/monitoring/prometheus-alerts.yml)):
23+
- **Alerts** ([`deploy/monitoring/prometheus-alerts.yml`](../deploy/monitoring/prometheus-alerts.yml)):
2424
`MetisDown` (up==0, 1m, **critical**), `MetisNoScrape` (target absent), `MetisProviderCircuitOpen`
2525
(an LLM/vision provider failing), `MetisKnowledgeStoreEmptied` (lost data mount). Route
2626
`severity: critical` to your pager (PagerDuty/OpsGenie/Alertmanager) so a Metis outage pages
2727
**you**, not your users.
28-
- **Grafana**: import [`deploy/monitoring/grafana-dashboard.json`](deploy/monitoring/grafana-dashboard.json)
28+
- **Grafana**: import [`deploy/monitoring/grafana-dashboard.json`](../deploy/monitoring/grafana-dashboard.json)
2929
(uid `metis-cognition`) — up, knowledge, breaker state, run/failure rates.
3030

3131
## Backup & disaster recovery
@@ -34,21 +34,21 @@ State that matters lives in the **`/app/data` bind-mount** (`/opt/metis/data` on
3434
knowledge store (SQLite), vector/episodic memory, traces. It is **not** rebuildable from the
3535
image — back it up.
3636

37-
- **Snapshot + rotate**: [`deploy/backup.sh`](deploy/backup.sh) → `/opt/metis/backups/metis-data-<ts>.tar.gz`, keeps newest 14.
37+
- **Snapshot + rotate**: [`deploy/backup.sh`](../deploy/backup.sh) → `/opt/metis/backups/metis-data-<ts>.tar.gz`, keeps newest 14.
3838
```cron
3939
30 3 * * * /opt/metis/deploy/backup.sh >/var/log/metis-backup.log 2>&1
4040
```
4141
- **Restore**: `./deploy/backup.sh --restore /opt/metis/backups/metis-data-<ts>.tar.gz`
4242
(stops the container, rsyncs the snapshot, `chown 1000:1000`, restarts).
4343
- **Rebuild from scratch** (total loss): recreate the container per
44-
[`deploy/README.md`](deploy/README.md), then re-seed grounding:
44+
[`deploy/README.md`](../deploy/README.md), then re-seed grounding:
4545
`docker exec -i metis python3 - data/knowledge < scripts/seed_ecosystem_knowledge.py`.
4646
- **Config**: `prod.yaml` holds the provider keys and is **git-excluded** — keep it in your
4747
secret store; it is the only piece not reproducible from the repo.
4848

4949
## Load testing
5050

51-
[`deploy/loadtest.k6.js`](deploy/loadtest.k6.js) (k6): a health + fast-route mix with SLO
51+
[`deploy/loadtest.k6.js`](../deploy/loadtest.k6.js) (k6): a health + fast-route mix with SLO
5252
thresholds (errors <5%, health p95 <500ms, fast-verify p95 <20s).
5353
```bash
5454
k6 run -e BASE=http://127.0.0.1:8080 -e VUS=20 -e DURATION=2m deploy/loadtest.k6.js

docs/en/MATURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Metis is one of the **strongest** ecosystem components (external reviews ~8/10). This doc states
44
what is production-grade today vs what still needs soak testing and adversarial benchmarks.
55

6-
**Related:** Factory [KI-8](../../docs/known-issues.md#ki-8--metis-distributed-mode--adversarial-verification-gap) · [DISTRIBUTED.md](./DISTRIBUTED.md) · [benchmarks/](../benchmarks/)
6+
**Related:** Factory [KI-8](../../../docs/known-issues.md#ki-8--metis-distributed-mode--adversarial-verification-gap) · [DISTRIBUTED.md](./DISTRIBUTED.md) · [benchmarks/](../../benchmarks/)
77

88
---
99

@@ -42,7 +42,7 @@ Regression tests: `metis/tests/test_adversarial_gates.py` document this class.
4242

4343
### Verifier — limited adversarial corpus
4444

45-
Benchmarks cover trap/ambiguous cases ([`benchmarks/report.py`](../benchmarks/report.py)) but
45+
Benchmarks cover trap/ambiguous cases ([`benchmarks/report.py`](../../benchmarks/report.py)) but
4646
there is **no wide red-team suite** (encoding, contradictory sources, confident fabrication).
4747

4848
**Mitigation:** expand `metis/benchmarks/` adversarial track (KI-8).
@@ -72,4 +72,4 @@ consumer ignores budgets.
7272
2. Distributed mode **beta** label removed after soak green
7373
3. Document high-stakes preset: `enforce_confidence_gate: true` + mandatory verify
7474

75-
**Russian:** see ecosystem [maturity review RU](../../docs/ecosystem-maturity-review.ru.md)
75+
**Russian:** see ecosystem [maturity review RU](../../../docs/ecosystem-maturity-review.ru.md)

0 commit comments

Comments
 (0)