[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:
1 parent
9838285ff2
commit
5f17b01c4f
5 files changed
+137
-8
No files matched your search
@@ -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]].
|
||||
@@ -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 сам по себе не считается приёмкой конкурентной работы БД.
|
||||
Reference in new issue
Block a user