[2026-09-28] eagle: personal/plans/balda-callee-prism-plan.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-28 12:15:20 +06:00
1 parent 1e44c429ff
commit 710702f358
1 file changed
+63 -9
+63 -9
View File
@@ -137,6 +137,57 @@ code. Do not copy untrusted model output into them.» — `cmd` это **одн
| `Apply` | 🔴 **каждый переход требует явной авторизации человека** |
| Одобрение Epic → Story | **не переносится** («approval never transfers from an Epic to a Story») |
### 1.6 ✅ C0 ЗАКРЫТ (2026-09-28): ACP-адаптер к DeepSeek СУЩЕСТВУЕТ
Разведка npm-реестра (§3 Фаза C0). **Свой адаптер писать НЕ надо** — найдено два
готовых, выбран один.
| | `@deepseek-ai/dsh-acp` | **`@openma/deepseek-harness-acp`** ✅ ВЫБРАН |
|---|---|---|
| Версия | `0.0.1-rc.1` (`latest`) | **`0.4.33`** |
| dist-tags | `latest: 0.0.1-rc.1`, `alpha: 0.1.7-alpha.2`, `next: 0.1.7-rc.2` | — |
| Родословная | официальный DeepSeek | обёртка вокруг **официального** DeepSeek Harness |
| `bin` | **`null`** — это библиотека | **`dsh-acp` → `dist/bin.js`** — запускаемый сервер |
| Родословная/зрелость | pre-release: последние 8 версий сплошь `-rc`/`-alpha`, стабильных нет | 33 патча, обкатан |
| Зависимости | `@agentclientprotocol/sdk 0.25.1`, `@deepseek-ai/schemastery` | `@agentclientprotocol/sdk 1.4.0`, `tar`, `zod` |
| Node | — | `>= 22.15` (в контейнере 24.21.0 ✅) |
| Лицензия | — | Apache-2.0 |
**Почему официальный пакет не подошёл:** `@deepseek-ai/dsh-acp` в статусе pre-release
(стабильных версий нет), `bin: null` → это библиотека для сборки, а не запускаемый
ACP-сервер. `@openma`-версия даёт готовый исполняемый файл.
**Как передаются креды (проверено по README пакета):** приоритет
**флаги → переменные окружения → дефолты**. Поддержаны:
| Способ | Значение |
|---|---|
| Флаг | `api-key`, либо `api-key:<provider>` когда провайдеров несколько |
| Env | **`DEEPSEEK_API_KEY`** |
| Env | **`DEEPSEEK_BASE_URL`** — «OpenAI-compatible endpoint override» |
📌 **Следствие для Colex:** `DEEPSEEK_BASE_URL` — это OpenAI-совместимый override,
значит смена провайдера на Colex сводится к смене одной переменной, без правки графа.
**Ключ у нас есть:** `DEEPSEEK_API_KEY` лежит в `~/.hermes/hermes-whale/.env`
(длина 35 символов, проверено; значение в чат не выводилось).
**Два способа установки (из README пакета):**
| | A · dsh profile plugin (рекомендуемый) | B · Standalone server |
|---|---|---|
| Для чего | обычная установка и апгрейды | подключение ACP-клиента без управления профилем |
| Установка | `dsh plugin --profile acp add @openma/deepseek-harness-acp@latest` | `npm i -g @openma/deepseek-harness-acp` |
| Запуск | `dsh --profile acp` | `dsh-acp` |
📌 Для callee (`generic_acp` + непустой `cmd`) подходит **вариант B**: `cmd: dsh-acp`.
📌 Креды не попадают в конфиг клиента: адаптер переиспользует ключ из credential store
(`dsh web` или `dsh-acp login`), либо берёт `DEEPSEEK_API_KEY` из окружения процесса.
🔴 **Node-требование:** пакет требует Node `>= 22.15` — учитывать при сборке образа.
В текущем `balda-executor:0.1.0` стоит Node **24.21.0** ✅.
---
## 2. Целевая архитектура
@@ -183,18 +234,21 @@ Codex подключается **позже** заменой `State.provider` в
## 3. Фазы работ
### Фаза C0 — предварительная проверка (30-40 мин)
### Фаза C0 — ✅ ЗАКРЫТА 2026-09-28 (разведка npm, ~20 мин)
Цель: понять, существует ли готовый ACP-адаптер к DeepSeek. Если да — план короче
на целую фазу.
**Результат: готовый ACP-адаптер к DeepSeek существует.** Выбран
`@openma/deepseek-harness-acp@0.4.33` (детали и сравнение — §1.6). Свой адаптер
(C2-B) **не нужен**, опора на патч `norma-local` не потребуется.
1. Разведка: есть ли ACP-адаптер, принимающий OpenAI-совместимый endpoint.
Кандидаты для проверки: `@normahq/*acp*`, `@zed-industries/*acp*`, npm-поиск по `acp`.
2. Если готового нет — оценить объём своего (см. C2).
3. Проверить актуальную версию callee и что `0.22.2` умеет `generic_acp`
(документация говорит «да», версия из npm — свежая).
Что проверялось: npm-поиск по `acp agent`, `deepseek acp agent`,
`acp openai compatible agent`; метаданные и `bin`/`dependencies`/`engines`
кандидатов; README выбранного пакета.
**Гейт:** решение «адаптер готов / пишем свой» зафиксировать в этом доке до C2.
⛔ **Не сработало:** `npm search` по scope `scope:normahq` и `scope:baldaworks`
вернул **пусто** — эти scoped-пакеты через search-API не индексируются.
Искать только по прямым URL `registry.npmjs.org/<scope>%2f<name>`.
**Гейт пройден:** решение «адаптер готов» зафиксировано в §1.6.
### Фаза C1 — установка на Mac (1-2 ч)