[2026-10-18] eagle: personal/plans/balda-remote-agent.md personal/plans/workspace-gateway.md personal/projects/balda/balda.md personal/projects/balda/setup.md personal/projects/balda/ssh-seatbelt-2026-10-18.md

This commit is contained in:
Alexey Martemyanov committed 2026-10-18 16:39:04 +06:00
1 parent 9838285ff2
commit 5f17b01c4f
5 files changed
+137 -8

No files matched your search

+18 -7
View File
@@ -1,6 +1,8 @@
# 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]].
@@ -32,13 +34,22 @@ macOS-окружения предоставляет Virfield через его M
## Следующие конкретные действия
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, отказ, отмену и продолжение той же сессии.
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 остаются открытыми.
## Права и репозитории
@@ -54,8 +65,8 @@ macOS-окружения предоставляет Virfield через его M
В рабочем конфиге остаётся `permissions.mode: allow_all`; SSH-проверка production-конфиг, историю и авторизацию не меняла.
Полный Prism lifecycle с моделью и реальные удалённые Claude/Codex этой проверкой не приняты.
Новая ветка: `broker-rebuild`, worktree `/Users/admin/.codex/worktrees/broker-rebuild/execution-broker`.
Она начата с пустого дерева коммитом `1fd7f57`; сейчас есть только незакоммиченный README, реализации нового брокера нет.
Новый сервис создаётся в отдельном проекте `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]].
+53
View File
@@ -0,0 +1,53 @@
# Workspace Gateway — план
Обновлено: **2026-10-18**.
Проект: `/Users/admin/Developer/workspace-gateway`.
Git: `main`, начальный коммит `2bc6743`; создан каркас README/AGENTS/.gitignore, реализации сервиса пока нет.
Общий setup Balda: [[personal/plans/balda-remote-agent]].
## Назначение и четыре функции
Сервис выдаёт Balda и удалённым агентам доступ к исходным папкам через сетевую файловую систему.
Balda и агенты видят одни и те же файлы; копирование Git-репозитория не считается реализацией общего доступа.
1. **Папки:** листинг папок хоста, включая навигацию по дереву, без выдачи списка файлов и их содержимого.
2. **Подключение:** выбранная папка появляется в work dir после подтверждения владельцем точного пути, получателя, режима доступа и срока.
3. **Отключение:** фактический отзыв ранее выданного доступа.
4. **Лизинг:** статус и срок действия, автоматический отзыв после истечения срока, продление с подтверждением владельца.
Четыре пользовательские функции — согласованный объём проекта.
Обработка ответа владельца, журнал выданных разрешений и таймеры обслуживают эти функции, а не расширяют API прикладными сценариями.
## Границы
SSH-запуск, ACP-транспорт, исполнение команд на хосте и Seatbelt относятся к настройке Balda и среды, а не к Workspace Gateway.
Prism, Callee, Beads, управление задачами и сессиями используются штатно.
Сервис не реализует собственные Story workflows, собственный Prism и дублирующий scheduler.
Общий каталог Developer и домашний каталог не выдаются агентам.
Листинг папок даёт возможность запросить конкретный путь, а не право читать его файлы.
Ответ от модели или аргумент `approved=true` не является подтверждением владельца.
Отзыв и истечение срока должны прекращать реальный доступ, включая существующие соединения и открытые файловые дескрипторы.
## Конкретные шаги
1. Я проверю готовую сетевую файловую систему на текущем Docker/Colima и целевых средах: исходные файлы видны обоим клиентам, добавление разрешённой папки обходится без перезапуска Balda, соседняя папка недоступна, отзыв закрывает уже выданный доступ.
2. Я подключу постоянную точку сетевой файловой системы в work dir; это разовая настройка deployment, последующие выдачи и отзывы происходят в рантайме.
3. Я реализую листинг папок и запрос подключения, связав подтверждение владельца с точным путём, получателем, правами и сроком; сначала проверю пригодность штатных взаимодействий Balda.
4. Я реализую отключение и временный лизинг, сохранение состояния разрешений и обработку истечения срока после перезапуска сервиса; неполученное подтверждение оставляет доступ закрытым.
5. Я проведу приёмку с двумя клиентами: общие файлы, RO/RW, запрет соседних путей и обхода через ссылки, отказ владельца, отзыв, истечение, продление и повторный запуск сервиса.
NFS/SMB или другой backend ещё не выбран: поддержка протокола сама по себе не подтверждает нужные свойства прав и отзыва.
До выбора backend сохраняется ровно этот объём; общая копия всех репозиториев и ослабление изоляции не являются заменой выдаче доступа.
## Что уже проверено и что остаётся
- [x] Создан отдельный Git-проект с зафиксированной границей четырёх функций.
- [x] Проверена независимая возможность штатного ACP Balda поверх SSH: [[personal/projects/balda/ssh-acp-verification-2026-10-18]].
- [ ] Выбрана и испытана сетевая файловая система.
- [ ] Реализованы четыре функции, подтверждения и фактическое ограничение доступа.
- [ ] Настроено общее состояние Beads и принята работа реальных агентов через полученный workspace.
Доступ к исходникам и доступ к состоянию Beads — связанные, но отдельные пункты общей установки.
Для одновременной работы Balda и нескольких агентов Beads описывает server mode Dolt: [официальная архитектура](https://github.com/gastownhall/beads/blob/main/docs/architecture/index.md).
Сетевой mount сам по себе не считается приёмкой конкурентной работы БД.