[2026-09-29] eagle: personal/plans/balda-callee-prism-plan.md
This commit is contained in:
1 parent
8542180db6
commit
afabb21c25
1 file changed
+93
@@ -147,6 +147,99 @@ spec:
|
||||
|
||||
---
|
||||
|
||||
## 2.5 Карта стека: кто кого дёргает
|
||||
|
||||
```
|
||||
ВЫ (Mattermost / Telegram)
|
||||
│ задача словами
|
||||
▼
|
||||
Балда-оркестратор — Kraken, balda-mm:0.1.13, DeepSeek
|
||||
│ понимает задачу, читает Obsidian, решает куда идти, отвечает
|
||||
│ НЕ пишет код, НЕ собирает, НЕ ходит по хостам
|
||||
▼ MCP-инструмент executor_run
|
||||
balda-executor-mcp — Kraken, :8890, HTTP + X-Bridge-Secret
|
||||
│ транспорт без логики
|
||||
▼ Cloudflare Tunnel (agents-bridge.qentra.top)
|
||||
мост agents-bridge — Mac, :8790, launchd
|
||||
│ транспорт без логики: идемпотентность, таймаут 900с, лимит 1
|
||||
▼ docker exec
|
||||
callee — Mac, контейнер balda-executor
|
||||
│ ДВИЖОК ВОРКФЛОУ: компилирует граф, валидирует целиком до запуска
|
||||
│ МОДЕЛИ НЕ СОДЕРЖИТ: дирижёр — раздаёт роли, гоняет циклы, собирает артефакт
|
||||
├─ Role ────► ACP-процесс ───► МОДЕЛЬ (DeepSeek / позже Codex)
|
||||
├─ Script ──► shell на Mac: git, docker build, xcodebuild, pytest
|
||||
└─ Human ───► пауза, ответ реплаем в треде MM
|
||||
▼
|
||||
bd (Beads) — трекинг Story → Tasks, живёт между сессиями
|
||||
```
|
||||
|
||||
### Кто есть кто
|
||||
|
||||
| Компонент | Где | Что это |
|
||||
|---|---|---|
|
||||
| Балда | Kraken | Оркестратор верхнего уровня: понимает смысл задачи |
|
||||
| balda-executor-mcp | Kraken | Проброс по HTTP, логики нет |
|
||||
| мост `:8790` | Mac | Идемпотентность, таймаут, лимит 1, логики нет |
|
||||
| **callee** | Mac | Движок воркфлоу. Граф, роли, циклы. **Не модель** |
|
||||
| Role / DynamicRole | Mac | Узел, который зовёт модель |
|
||||
| **ACP** | Mac | Протокол «редактор ↔ агент». Транспорт, не модель |
|
||||
| **dsh / dsh-acp** | Mac | Адаптер: отдаёт DeepSeek по протоколу ACP |
|
||||
| **Codex / Claude CLI** | Mac | Агент-харнесс: модель + умение править файлы и запускать команды |
|
||||
| **bd (Beads)** | Mac | Память задач: что сделано, что нет |
|
||||
| **prism** | Mac | Воркфлоу: specify → design → breakdown → human → apply → verify |
|
||||
| tunnels | — | Cloudflare: Kraken→Mac по HTTP. **Не VPN** |
|
||||
| **lume** | Mac | macOS-виртуалки. Только для задач, требующих настоящую macOS |
|
||||
|
||||
📌 **`callee` не умеет ничего сам** — ни думать, ни писать код. Он берёт описание графа,
|
||||
проверяет его и по шагам вызывает: роль → модель, скрипт → shell, human → пауза.
|
||||
Вся содержательная работа — либо в модели через Role, либо в shell через Script.
|
||||
|
||||
📌 **Модель ≠ агент-харнесс.** `dsh-acp` только отдаёт DeepSeek. `codex` — харнесс:
|
||||
модель плюс умение править файлы, запускать команды, искать. Через ACP callee зовёт и то,
|
||||
и другое.
|
||||
|
||||
### Разбор сценариев
|
||||
|
||||
| Сценарий | Механизм | Где исполняется | Статус |
|
||||
|---|---|---|---|
|
||||
| Настроить на **Mac** | `Script` → локальный shell | контейнер, только `~/agents` | ⚠️ `~/Developer` не смонтирован |
|
||||
| Настроить на **TrueNAS** | `Script` → `ssh truenas_admin@mallexxx.duckdns.org` | контейнер | ❌ `~/.ssh` не смонтирован |
|
||||
| Настроить на **Kraken** | `Script` → `ssh kraken` | контейнер | ❌ ssh не настроен; 🔴 риск потерять канал управления |
|
||||
| Собрать **Xcode** | `Script` → `xcodebuild` | **lume VM с macOS** | ❌ в Linux-контейнере невозможно |
|
||||
| Тесты в **lume** | `Script` → `lume` | **хост Mac** | ❌ `lume` стоит на хосте, не в контейнере |
|
||||
| Собрать **докер-образ** | `Script` → `docker build` | **хост Mac** | ❌ `docker.sock` не смонтирован |
|
||||
|
||||
🔴 **Корень:** шесть сценариев делятся на две группы, и текущая схема закрывает одну.
|
||||
|
||||
| Группа | Сценарии | Где |
|
||||
|---|---|---|
|
||||
| В контейнере | файлы Mac, git, Linux-сборки | `balda-executor` |
|
||||
| **Вне контейнера** | TrueNAS/Kraken по ssh, Xcode, lume, docker build | нужен доступ к хосту |
|
||||
|
||||
**Причина одна:** контейнер изолирован. Нет `docker.sock`, `~/.ssh`, `lume`, Xcode, `~/Developer`.
|
||||
|
||||
### Как закрывать: роли по исполнителям
|
||||
|
||||
| Вариант | Суть | Оценка |
|
||||
|---|---|---|
|
||||
| **A. Роли по исполнителям** ✅ | контейнер чистый для Linux-задач; для остального роли ходят через `ssh` на хост и узлы. Требует `~/.ssh:ro` в контейнер + `ssh admin@host.docker.internal` | изоляция сохраняется; роли явно описаны в графе: «linux-задача», «macOS-задача», «удалённый хост» |
|
||||
| B. Дать контейнеру больше прав | смонтировать `docker.sock`, `lume`, `~/Developer` | проще, но контейнер теряет изоляцию — одну из причин своего существования |
|
||||
|
||||
**Решение: A.**
|
||||
|
||||
### Чего нет в схеме (докрутить в C1)
|
||||
|
||||
| Нужно | Статус |
|
||||
|---|---|
|
||||
| `~/.ssh` в контейнере | ❌ |
|
||||
| `docker.sock` | ❌ |
|
||||
| `lume` в контейнере | ❌ (стоит на хосте, v0.5.3) |
|
||||
| ssh с контейнера на Kraken/TrueNAS | ❌ |
|
||||
| lume VM как исполнитель | ❌ VM есть (`macos-15-golden`, `macos-27-golden`, `uitest-26.4.1-golden`, `pdf-hud-macos27`), интеграции нет |
|
||||
| Разделение ролей по хостам | ❌ в графе не описано |
|
||||
|
||||
---
|
||||
|
||||
## 3. Prism — таск-трекинг
|
||||
|
||||
### 3.1 Callee и prism — независимые установки
|
||||
|
||||
Reference in new issue
Block a user