docs(keys): реестр — push харнеса в git.cil.by (аудит истории чист), FORGEJO_PULL_TOKEN в /root/coop/.alfa_env

This commit is contained in:
Simbiot Harness 2026-10-01 08:17:41 +00:00
parent d39f60fc24
commit ed7ffd4461
2 changed files with 65 additions and 1 deletions

View file

@ -9,7 +9,7 @@
|---|---|---|---|---| |---|---|---|---|---|
| `/root/simbiot-harness/.env` | ROUTER_KEY, OPENROUTER_KEY, SIMBIOT_TG_TOKEN, SIMBIOT_TG_ALLOWED, ROUTER/OPENROUTER_BASE_URL | 600 | да (см. §6) | ROUTER_KEY — по политике 9router; TG-токен — при подозрении | | `/root/simbiot-harness/.env` | ROUTER_KEY, OPENROUTER_KEY, SIMBIOT_TG_TOKEN, SIMBIOT_TG_ALLOWED, ROUTER/OPENROUTER_BASE_URL | 600 | да (см. §6) | ROUTER_KEY — по политике 9router; TG-токен — при подозрении |
| `/etc/simbiot/dashboard.env` | SIMBIOT_DASH_TOKEN (страница + /api/state, порт 8765 **открыт наружу 0.0.0.0**) | 600 | да | при демобилизации дашборда | | `/etc/simbiot/dashboard.env` | SIMBIOT_DASH_TOKEN (страница + /api/state, порт 8765 **открыт наружу 0.0.0.0**) | 600 | да | при демобилизации дашборда |
| git-история `/root/simbiot-harness` | `.env` с ROUTER_KEY (коммит 6236044) и SIMBIOT_TG_TOKEN (2f758bb) лежит в истории; убран в e6a99ce | — | n/a | **remote нет** → наружу не утёк; перед любым push: purge истории (`git filter-repo`) или ротация ключей | | git-история `/root/simbiot-harness` | `.env` убран из трекинга (e6a99ce); **01.10 push в приватный репо https://git.cil.by/symbiot/simbiot-harness (3361b67..d39f60f)**: аудит — `.env` в истории отсутствует (0 коммитов), скан sk-/bot/rsh/Bearer по git log -p --all чист. Утечки не было. | — | n/a | токен Forgejo symbiot (9f29709…) — admin-скоп, ротация при компрометации; в репо не хранить |
## 2. Наследие агента Гермес (живое, сервисы active) ## 2. Наследие агента Гермес (живое, сервисы active)
@ -32,6 +32,7 @@
| Путь | Что | Права | Примечание | | Путь | Что | Права | Примечание |
|---|---|---|---| |---|---|---|---|
| `/root/coop/.env` | HETZNER_API_TOKEN, STRIPE_(LIVE/TEST)_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY, HARNESS_TOKEN, TIME_REPORT_TOKEN, SALARY_CRON_TOKEN, STUDIO_ADMIN_KEY, LIVE_MONITOR_TOKEN, MAGIC_SEND_SECRET, GOOGLE_AI_KEY | 600 | ядро биллинга коопа | | `/root/coop/.env` | HETZNER_API_TOKEN, STRIPE_(LIVE/TEST)_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY, HARNESS_TOKEN, TIME_REPORT_TOKEN, SALARY_CRON_TOKEN, STUDIO_ADMIN_KEY, LIVE_MONITOR_TOKEN, MAGIC_SEND_SECRET, GOOGLE_AI_KEY | 600 | ядро биллинга коопа |
| `/root/coop/.alfa_env` (EnvironmentFile coop-portal.service) | FORGEJO_PULL_TOKEN — scoped read-токен Forgejo (simbiot-agent-pull, read:repository): им simbiot-агенты клонируют /root/simbiot-harness с git.cil.by при деплое (simbiot_harness.py) | 600 | ротация: Forgejo → Settings → Applications → удалить и перевыпустить, обновить .alfa_env, рестарт coop-portal |
| `/root/rag/.env` | RAG_API_KEY (публичный сервис RAG) | 600 | | | `/root/rag/.env` | RAG_API_KEY (публичный сервис RAG) | 600 | |
| `/root/litellm/.env` | LITELLM_MASTER_KEY, ZAI/KIMI/OLLAMA_API_KEY ×4, POSTGRES_PASSWORD | 600 | | | `/root/litellm/.env` | LITELLM_MASTER_KEY, ZAI/KIMI/OLLAMA_API_KEY ×4, POSTGRES_PASSWORD | 600 | |
| `/root/9router/.env` | JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET, MACHINE_ID_SALT, OLLAMA_CLOUD_API_KEY | 600 (было 644 — исправлено) | сервис слушает **0.0.0.0:20128** | | `/root/9router/.env` | JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET, MACHINE_ID_SALT, OLLAMA_CLOUD_API_KEY | 600 (было 644 — исправлено) | сервис слушает **0.0.0.0:20128** |

63
docs/PORTAL-STRUCTURE.md Normal file
View file

@ -0,0 +1,63 @@
# Структура портала Simbiot Harness
<!-- t-261001073314-8cfa7d [S] — построчный обзор, окт 2026 -->
Быстрый структурированный обзор репозитория харнеса: что где лежит, чем живёт,
куда смотреть. Для себя, для новых агентов и для Alex — в текстовом виде,
без диаграмм.
## Топ-уровень
| Путь | Что это |
|---|---|
| `cli.py` | CLI харнеса: доска задач, лестница, TG-триаж, эскалации, события |
| `README.md` | Назначение, главная цель (AUM), лестница уровней, события, структура |
| `architecture.html` | HTML-страница архитектуры портала (обзор модулей и связей) |
| `lab42-conditions.html` | HTML с условиями кооператива Lab42 (наполним завтра по тексту задачи) |
| `simbiot-presentation.html` | Слайды о продукте Simbiot |
| `docs/KEYS-REGISTRY.md` | Реестр ключей и секретов хоста (S-таск 30.09) |
| `docs/PORTAL-STRUCTURE.md` | Этот файл — текстовый обзор структуры репо |
| `harness.db`, `events.db`, `simbiot.db`, `tg_inbox.db` | Локальные SQLite-сторы, в git НЕ входят (.gitignore) |
| `.env` | Ключи/секреты локально (0600), в git не входит |
## harness/ — исполнительное ядро
| Модуль | Роль |
|---||
| `es.py` | Event store + проекции (checkpoint + replay), append-only спина |
| `levels.py` | Конфиг уровней: sec/min/hour/day, интервалы, контекст, модели |
| `scheduler.py` | Планировщик тиков, батч-задачи, занятость уровней |
| `_llm_worker.py` | Рабочий LLM-тик уровня, бюджеты (токены/время/шаги) |
| `isolated_runner.py` | Изоляция запуска тиков уровня |
| `runtime.py` | Runtime-конфиг, пути, загрузка .env |
| `commands.py` | Разбор команд чата/CLI |
| `tg_inbox.py` | Входящие TG-сообщения (inbox), батч-триаж |
| `tg_commands.py` | Команды бота (setMyCommands) |
| `dashboard.py` | Веб-дашборд задач (статусы, детали по клику) |
| `voice.py` + `_fw_asr_worker.py` | Транскрипция голосовых |
| `rag_lookup.py` | Семантический поиск по базе кооператива (/root/rag) |
| `proactive.py` | Инициативные реплики в чат |
| `harness.db` | Главный стор харнеса |
## tests/ — pytest-покрытие
`test_task_batch` · `test_gate` · `test_inbox_batch` · `test_delivery_idempotency`
· `test_proactive` · `test_rag_lookup` · `test_tg_commands` · `test_tool_budget` ·
`test_voice` (см. `tests/`).
## scripts/
`safe-restart.sh` — безопасный рестарт харнеса.
## git
Репо ведётся на git.cil.by (Forgejo). В git НЕ входят: `venv/`, `*.db`,
`.env`; `.git` ≈ 60МБ (в т.ч. большие бинарные артефакты в истории — можно
почистить отдельно).
## Заметки из последних тиков
- `git log` (последние):
`05555bb` feat(levels): day ctx 1M как у hour — симметрия уровней (Alex)
`e623a10` docs: фиксация главной цели — максимизация долгосрочной AUM (Alex)
`7efe845` feat(levels): часовой контекст ~1M
- Статус git: чисто, один untracked — `lab42-conditions.html`.