62 lines
6.3 KiB
Markdown
62 lines
6.3 KiB
Markdown
# Balda — удалённый агент по SSH
|
||
|
||
Обновлено: **2026-10-18**.
|
||
Исходная задача: Balda работает с оригинальными Prism/Beads по подключённым проектам и запускает штатного агента в другой среде; подключение нового репозитория требует подтверждения владельца.
|
||
Проверка: [[personal/projects/balda/ssh-acp-verification-2026-10-18]].
|
||
Рабочая установка: [[personal/projects/balda/setup]].
|
||
|
||
## Принятая граница
|
||
|
||
Максимально использовать штатный стек Balda: провайдеры ACP, сессии, управление задачами, MCP, skills и подтверждения.
|
||
Prism, Prism Callee, Callee и Beads — оригинальные, с сохранением их собственных контрактов.
|
||
|
||
```text
|
||
Balda → штатный generic_acp → ssh -T → штатный ACP-агент в другой среде
|
||
```
|
||
|
||
Единый способ связи — SSH: контейнер, VM или физический хост отличаются окружением, а не протоколом запуска.
|
||
macOS-окружения предоставляет Virfield через его MCP.
|
||
Штатный агент выполняет работу в выданном workspace; Balda сохраняет управление беседой и сессией.
|
||
|
||
## Что проверено
|
||
|
||
- [x] Штатная фабрика Balda запускает `ssh` через `generic_acp.cmd` и передаёт ACP.
|
||
- [x] Реальный OpenCode создаёт и возобновляет сессию после повторного SSH.
|
||
- [x] Контрольный ACP-агент получает штатное решение Balda разрешить или отклонить действие.
|
||
- [x] Контрольный удалённый агент вызывает настоящий MCP-инструмент.
|
||
- [x] Штатные тесты Balda подтверждают Mattermost review, защиту от чужого ответа и timeout.
|
||
- [x] Воспроизведены локальная проверка cwd и требования к достижимости MCP.
|
||
|
||
Для передачи ACP новая реализация `broker-acp` не требуется: базовый путь уже проверен.
|
||
Дополнительный код допустим только для конкретного воспроизведённого пробела интеграции; прикладные сценарии и учёт фаз Prism остаются в штатном стеке.
|
||
|
||
## Следующие конкретные действия
|
||
|
||
1. Я настрою для выбранной среды SSH-профиль с отдельной identity, закреплённым host key и ограниченным пользователем.
|
||
2. Я предоставлю среде только подтверждённый проект и проверю фактический доступ к его файлам и исходному состоянию Beads; отдельно проверю отказ доступа к соседнему проекту и секретам хоста.
|
||
3. Я приведу пути workspace к совместимому виду и настрою достижимые из среды адреса выбранных MCP; проверю чтение статуса через `bd` и вызов MCP.
|
||
4. Я подготовлю в среде штатный ACP-агент, его собственную авторизацию и оригинальные skills/tools, затем добавлю в Balda отдельный `generic_acp` provider с командой SSH.
|
||
5. Я настрою запросы разрешений у агента и штатный `ask` в Balda, затем проверю реальный рабочий цикл Prism, отказ, отмену и продолжение той же сессии.
|
||
|
||
Это оставшаяся работа, а не уже выполненный deployment.
|
||
|
||
## Права и репозитории
|
||
|
||
Подтверждение подключения репозитория, подтверждение действия агента и файловая изоляция — три отдельные проверки.
|
||
Агент не получает полномочий самостоятельно выдавать себе доступ к новому проекту.
|
||
Весь каталог `Developer` не передаётся Balda или исполнителю.
|
||
Исходная БД Beads соответствующего проекта остаётся источником статусов; Git-клон сам по себе не доказывает наличие актуального состояния Beads.
|
||
Механизм выдачи доступа к реальным проектам и их БД ещё требует настройки и приёмки.
|
||
|
||
## Текущее состояние и границы
|
||
|
||
Основная Balda получила оригинальные Prism/Prism Callee, `bd`, Callee и прямой Virfield MCP; это установка инструментов, а не приёмка удалённого исполнения.
|
||
В рабочем конфиге остаётся `permissions.mode: allow_all`; SSH-проверка production-конфиг, историю и авторизацию не меняла.
|
||
Полный Prism lifecycle с моделью и реальные удалённые Claude/Codex этой проверкой не приняты.
|
||
|
||
Новая ветка: `broker-rebuild`, worktree `/Users/admin/.codex/worktrees/broker-rebuild/execution-broker`.
|
||
Она начата с пустого дерева коммитом `1fd7f57`; сейчас есть только незакоммиченный README, реализации нового брокера нет.
|
||
Старые `execution-broker`, `execution-prism` и plugin остаются в действующей Balda; очистка новой ветки не удаляла их из deployment.
|
||
|
||
Историческая приёмка прежнего брокера: [[personal/plans/balda-callee-prism-plan]].
|