# Balda — удалённый агент по SSH Обновлено: **2026-10-18**. Отдельный проект доступа к папкам: [[personal/plans/workspace-gateway|Workspace Gateway]], `/Users/admin/Developer/workspace-gateway`, начальный коммит `2bc6743`. Дополнительная проверка SSH и Seatbelt: [[personal/projects/balda/ssh-seatbelt-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. Я реализую и приму Workspace Gateway в отдельном проекте: листинг папок без файлов, подключение после подтверждения владельца, отключение и временный лизинг; сетевая файловая система обеспечит одни и те же исходные файлы Balda и агентам без перезапуска Balda при каждой выдаче. 2. Я настрою авторизованный SSH из контейнера в реальные среды, проверку host key, ограниченные credentials и штатный `generic_acp` с командой SSH; доступность порта и проверка протокола уже подтверждены, рабочая авторизация ещё не принята. 3. Я настрою запуск агентов и обычных команд на Mac под Seatbelt, начиная со штатных sandbox и готового `anthropics/sandbox-runtime`, и проверю запрет доступа к соседним проектам, секретам и обхода через другой SSH command. 4. Я настрою согласованные пути workspace, достижимые MCP, оригинальные skills/tools и единое состояние Beads для Balda и одновременных агентов, затем включу запросы разрешений у агентов и штатный `ask` Balda. 5. Я проведу реальную приёмку выбранных Codex/Claude/OpenCode и оригинального Prism: статус проекта, подтверждение и отказ, выполнение, отмена, продолжение сессии и прекращение доступа после отзыва или истечения лизинга. Это оставшаяся работа, а не уже выполненный deployment. SSH/Seatbelt/ACP и настройка Beads не расширяют четыре функции Workspace Gateway. ## Что подтверждено дополнительно - Docker работает через Colima, а не Docker Desktop. - Из основного контейнера получены SSH banners Mac и внешнего GitHub на TCP/22; логин и команды при этом не выполнялись. - Seatbelt на Mac 26.7.1 реально заблокировал чтение и запись в контрольную папку, в том числе дочерним shell; это не готовый production профиль. - Документация Beads описывает Dolt server mode для нескольких одновременных записывающих агентов: [первичный источник](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md). - Политика файлов и сети для реальных агентов, native approvals и полная работа Prism остаются открытыми. ## Права и репозитории Подтверждение подключения репозитория, подтверждение действия агента и файловая изоляция — три отдельные проверки. Агент не получает полномочий самостоятельно выдавать себе доступ к новому проекту. Весь каталог `Developer` не передаётся Balda или исполнителю. Исходная БД Beads соответствующего проекта остаётся источником статусов; Git-клон сам по себе не доказывает наличие актуального состояния Beads. Механизм выдачи доступа к реальным проектам и их БД ещё требует настройки и приёмки. ## Текущее состояние и границы Основная Balda получила оригинальные Prism/Prism Callee, `bd`, Callee и прямой Virfield MCP; это установка инструментов, а не приёмка удалённого исполнения. В рабочем конфиге остаётся `permissions.mode: allow_all`; SSH-проверка production-конфиг, историю и авторизацию не меняла. Полный Prism lifecycle с моделью и реальные удалённые Claude/Codex этой проверкой не приняты. Новый сервис создаётся в отдельном проекте `workspace-gateway`; его объём ограничен четырьмя функциями доступа к папкам. Прежняя ветка `broker-rebuild` в `/Users/admin/.codex/worktrees/broker-rebuild/execution-broker` — оставшийся каркас предыдущего обсуждения, а не место реализации Workspace Gateway. Старые `execution-broker`, `execution-prism` и plugin остаются в действующей Balda; очистка новой ветки не удаляла их из deployment. Историческая приёмка прежнего брокера: [[personal/plans/balda-callee-prism-plan]].