From 710702f358cb7391de399c4571fedb113490d5cc Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Mon, 28 Sep 2026 12:15:20 +0600 Subject: [PATCH] [2026-09-28] eagle: personal/plans/balda-callee-prism-plan.md --- personal/plans/balda-callee-prism-plan.md | 72 ++++++++++++++++++++--- 1 file changed, 63 insertions(+), 9 deletions(-) diff --git a/personal/plans/balda-callee-prism-plan.md b/personal/plans/balda-callee-prism-plan.md index dd0f4281..8aa1e323 100644 --- a/personal/plans/balda-callee-prism-plan.md +++ b/personal/plans/balda-callee-prism-plan.md @@ -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:` когда провайдеров несколько | +| 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/%2f`. + +**Гейт пройден:** решение «адаптер готов» зафиксировано в §1.6. ### Фаза C1 — установка на Mac (1-2 ч)