@ran-sh/dsh-crew 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +17 -0
- package/.claude-plugin/plugin.json +8 -0
- package/.mcp.json +8 -0
- package/LICENSE +21 -0
- package/README.de.md +359 -0
- package/README.es.md +359 -0
- package/README.fr.md +359 -0
- package/README.hi.md +359 -0
- package/README.id.md +359 -0
- package/README.ja.md +359 -0
- package/README.ko.md +359 -0
- package/README.md +360 -0
- package/README.pt.md +359 -0
- package/README.ru.md +359 -0
- package/README.th.md +359 -0
- package/README.tr.md +359 -0
- package/README.vi.md +359 -0
- package/README.zh-TW.md +359 -0
- package/README.zh.md +305 -0
- package/agents/ds-flash.md +26 -0
- package/agents/ds-pro.md +32 -0
- package/agents/ds-reviewer.md +23 -0
- package/agents/ds-worker.md +22 -0
- package/codex/agents/ds-flash.toml +30 -0
- package/codex/agents/ds-pro.toml +31 -0
- package/codex/agents/ds-reviewer.toml +28 -0
- package/codex/agents/ds-worker.toml +28 -0
- package/codex/prompts/dsh-config.md +3 -0
- package/codex/prompts/dsh-status.md +1 -0
- package/commands/config.md +11 -0
- package/commands/off.md +5 -0
- package/commands/on.md +5 -0
- package/commands/status.md +5 -0
- package/cordis.patch.yml +4 -0
- package/docs/images/dsh-crew-host.png +0 -0
- package/docs/images/dsh-crew-jobs.png +0 -0
- package/docs/images/dsh-crew-logo.png +0 -0
- package/docs/images/dsh-crew-overview.png +0 -0
- package/lib/client.js +2765 -0
- package/package.json +125 -0
- package/scripts/build-client.mjs +28 -0
- package/scripts/live-crew-smoke.mjs +39 -0
- package/scripts/live-policy-matrix.mjs +177 -0
- package/scripts/policy-probe.mjs +101 -0
- package/scripts/setup.mjs +294 -0
- package/scripts/smoke-real.mjs +110 -0
- package/scripts/smoke.mjs +78 -0
- package/scripts/verify-installer-fix.mjs +26 -0
- package/src/adaptive-routing.mjs +260 -0
- package/src/client/activation-summary.tsx +64 -0
- package/src/client/entry.tsx +236 -0
- package/src/client/index.tsx +1120 -0
- package/src/config-readiness.mjs +59 -0
- package/src/delivery.mjs +205 -0
- package/src/dsh-cli-runtime.mjs +251 -0
- package/src/failure-classification.mjs +172 -0
- package/src/hub/entry.mjs +98 -0
- package/src/hub/index.mjs +757 -0
- package/src/hub-client.mjs +132 -0
- package/src/hub-compatibility.mjs +49 -0
- package/src/i18n.mjs +19 -0
- package/src/install/cli.mjs +28 -0
- package/src/install/install-legacy.mjs +460 -0
- package/src/install/install.mjs +451 -0
- package/src/jobs.mjs +275 -0
- package/src/mcp-runtime.mjs +257 -0
- package/src/model-catalog.mjs +173 -0
- package/src/model-routing.mjs +391 -0
- package/src/multimodal.mjs +0 -0
- package/src/policy-legacy.mjs +830 -0
- package/src/policy.mjs +197 -0
- package/src/readiness-matrix.mjs +169 -0
- package/src/runtime-controls.mjs +90 -0
- package/src/runtime-identity.mjs +108 -0
- package/src/server.mjs +477 -0
- package/src/status-shard.mjs +52 -0
- package/src/structured-error-code.mjs +39 -0
- package/src/vision-route.mjs +138 -0
- package/src/workflow-runtime.mjs +567 -0
- package/src/workflow.mjs +160 -0
- package/src/workspace-audit.mjs +231 -0
- package/src/workspace-isolation.mjs +306 -0
- package/statusline/statusline.sh +14 -0
- package/statusline/worker-segment.sh +35 -0
- package/worker.cordis.yml +77 -0
package/README.ru.md
ADDED
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./docs/images/dsh-crew-logo.png" alt="DSH Crew" width="120" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">DSH Crew</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Плагин <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a>: отправляйте работу агентам DSH из Claude Code / Codex, не отказываясь от встроенного интерфейса субагентов хоста.</strong><br />
|
|
9
|
+
<sub>Встроенный интерфейс прогресса • Политика уровней и эскалация • Сессии DSH внутри хоста • Зрение и генерация изображений • Установка в один клик</sub>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<sub>GitHub: <code>Ran-sh/dsh-crew</code> · Текущий релиз плагина: <code>0.1.0-rc.1</code> · Проверено с DSH <code>0.1.0-rc.6</code></sub>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="./README.md">English</a> · <a href="./README.zh.md">简体中文</a> · <a href="./README.zh-TW.md">繁體中文</a> · <a href="./README.ja.md">日本語</a> · <a href="./README.ko.md">한국어</a> · <a href="./README.fr.md">Français</a> · <a href="./README.es.md">Español</a> · <a href="./README.de.md">Deutsch</a> · <a href="./README.pt.md">Português</a> · <a href="./README.ru.md"><b>Русский</b></a> · <a href="./README.hi.md">हिन्दी</a> · <a href="./README.tr.md">Türkçe</a> · <a href="./README.th.md">ไทย</a> · <a href="./README.vi.md">Tiếng Việt</a> · <a href="./README.id.md">Bahasa Indonesia</a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<p align="center">
|
|
21
|
+
<a href="https://github.com/Ran-sh/dsh-crew/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Ran-sh/dsh-crew?color=64748b" alt="License" /></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<br />
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="./docs/images/dsh-crew-overview.png" alt="DSH Crew — settings page" width="100%" />
|
|
28
|
+
</p>
|
|
29
|
+
<p align="center"><sub>Страница настроек DSH Crew — интеграции хоста, политика отправки, выполнение и мультимодальный мост</sub></p>
|
|
30
|
+
|
|
31
|
+
## Зачем нужен DSH Crew
|
|
32
|
+
|
|
33
|
+
DSH Crew — плагин для [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH), опенсорсного агентского харнесса. Он позволяет отправлять работу агентам DSH из Claude Code и Codex: оркестратор сохраняет собственную модель, работа выполняется на настоящем агенте DSH с инструментами, песочницей, пресетами и историей сессий этого харнесса, а хост по-прежнему отображает его как встроенного субагента с живым прогрессом.
|
|
34
|
+
|
|
35
|
+
Работу выполняет агент DSH, а не голый вызов модели. Уровни (`flash` / `pro`) определяют, какой объём возможностей получает агент из настроенного списка моделей харнесса — сегодня это DeepSeek V4 Flash и V4 Pro, — поэтому смена модели в DSH не требует изменений здесь.
|
|
36
|
+
|
|
37
|
+
<table>
|
|
38
|
+
<tr>
|
|
39
|
+
<td width="50%">
|
|
40
|
+
|
|
41
|
+
### 🧵 Встроенный интерфейс прогресса
|
|
42
|
+
|
|
43
|
+
Воркеры отображаются как обычные субагенты в Claude Code / Codex — счётчик отправок, текущий шаг, вызовы инструментов и расход токенов видны в собственной панели задач хоста, а также сегмент статусной строки claude-hud: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3`.
|
|
44
|
+
|
|
45
|
+
</td>
|
|
46
|
+
<td width="50%">
|
|
47
|
+
|
|
48
|
+
### 🎚️ Политика уровней и эскалация
|
|
49
|
+
|
|
50
|
+
`flash` для механической работы, `pro` для решения сложных задач, `effort` от `off` до `max`. `tier_policy` может ограничить каждую отправку одним уровнем на уровне инструмента, а `escalate_on_failure` один раз повторяет неудачный запуск flash на pro — на основе фактов, а не предположений о сложности заранее.
|
|
51
|
+
|
|
52
|
+
</td>
|
|
53
|
+
</tr>
|
|
54
|
+
<tr>
|
|
55
|
+
<td width="50%">
|
|
56
|
+
|
|
57
|
+
### 🏛️ Сессии DSH внутри хоста
|
|
58
|
+
|
|
59
|
+
Когда бандл установлен в профиле DSH, каждый воркер — это полноценная сессия DSH: она видна в веб-интерфейсе, сгруппирована по рабочей директории и подключена с выбранным вами пресетом Agent для каждого уровня. Если DSH не запущен, отправка переключается на автономный рантайм DSH, поэтому CI и среды без графического интерфейса продолжают работать.
|
|
60
|
+
|
|
61
|
+
</td>
|
|
62
|
+
<td width="50%">
|
|
63
|
+
|
|
64
|
+
### 👁️ Зрение и генерация изображений
|
|
65
|
+
|
|
66
|
+
Модели DSH работают только с текстом. `describe_image` и `generate_image` заимствуют «глаза» и «кисть» у уже имеющихся у вас CLI — Claude, Codex, Grok, Antigravity — или у любого настроенного вами OpenAI-совместимого API. Вставленные изображения остаются видимыми в диалоге и доходят до модели в виде текста.
|
|
67
|
+
|
|
68
|
+
</td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td width="50%">
|
|
72
|
+
|
|
73
|
+
### 🔌 Собственные провайдеры
|
|
74
|
+
|
|
75
|
+
Подключите собственную конечную точку (Base URL + API-ключ + модели) или шаблон локальной команды. У каждого провайдера есть тест подключения: он проверяет доступность и авторизацию, а затем делает один реальный вызов зрения — чтобы вы узнали о проблемах сейчас, а не посреди задачи.
|
|
76
|
+
|
|
77
|
+
</td>
|
|
78
|
+
<td width="50%">
|
|
79
|
+
|
|
80
|
+
### 📦 Установка в один клик
|
|
81
|
+
|
|
82
|
+
Страница настроек устанавливает и обновляет за вас плагин Claude Code и файлы ролей Codex — регистрация маркетплейса, список разрешений, подключение HUD, абсолютные пути, сформированные для этой машины, — и так же легко их восстанавливает. Перед изменениями все файлы настроек резервируются.
|
|
83
|
+
|
|
84
|
+
</td>
|
|
85
|
+
</tr>
|
|
86
|
+
</table>
|
|
87
|
+
|
|
88
|
+
## Как это работает
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Claude Code / Codex (orchestrator, keeps its own model)
|
|
92
|
+
└─ ds-flash / ds-pro ← native subagent shell (progress shows in the host's task UI)
|
|
93
|
+
└─ MCP: dsh_run_worker(tier, effort, cwd)
|
|
94
|
+
├─ hub reachable → session inside DSH (visible in the Web UI, grouped by cwd)
|
|
95
|
+
└─ otherwise → dsh-jsonrpc-agent runtime (worker.cordis.yml)
|
|
96
|
+
└─ DeepSeek V4 Flash / Pro (DSH SDK, event stream → progress and token stats)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Один запуск, два взгляда
|
|
100
|
+
|
|
101
|
+
Диспетчеризация масштабируется вширь. Ниже восемнадцать worker'ов параллельно переводят этот README: хост считает их своими субагентами, а harness выполняет их как настоящие сессии.
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
<img src="./docs/images/dsh-crew-host.png" alt="Claude Code" width="100%" />
|
|
105
|
+
</p>
|
|
106
|
+
<p align="center"><sub>В Claude Code worker'ы dsh-crew выглядят как нативные субагенты; сегмент statusline показывает работающие tier'ы, время и токены.</sub></p>
|
|
107
|
+
|
|
108
|
+
<p align="center">
|
|
109
|
+
<img src="./docs/images/dsh-crew-jobs.png" alt="DSH Crew" width="100%" />
|
|
110
|
+
</p>
|
|
111
|
+
<p align="center"><sub>Панель DSH Crew показывает тот же запуск со стороны harness: какой хост отправил задачу, её tier и effort, прогресс и расход токенов.</sub></p>
|
|
112
|
+
|
|
113
|
+
## Установка
|
|
114
|
+
|
|
115
|
+
Установить из GitHub в профиль DSH:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
node scripts/setup.mjs install # Safe install: see the canonical Install section of README.md (dedicated Crew home/profile; official web profile is never modified).
|
|
119
|
+
Repository source: github:Ran-sh/dsh-crew
|
|
120
|
+
npx -y @deepseek-ai/dsh web
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Или для локальной разработки прямо из исходников:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
node scripts/setup.mjs install # Safe install: see the canonical Install section of README.md (dedicated Crew home/profile; official web profile is never modified).
|
|
127
|
+
Repository source: github:Ran-sh/dsh-crew
|
|
128
|
+
npx -y @deepseek-ai/dsh web
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Протокол `link:` делает симлинк зависимости профиля на этот репозиторий, поэтому пересборка видна сразу.
|
|
132
|
+
|
|
133
|
+
### Настроить учётные данные DeepSeek (только standalone)
|
|
134
|
+
|
|
135
|
+
В режиме hub — установке выше — воркеры работают внутри экземпляра DSH и используют учётные данные DeepSeek, которые уже для него настроены. Ничего больше не нужно настраивать.
|
|
136
|
+
|
|
137
|
+
Только standalone-режим (резервный вариант) требует собственного ключа: отправка из Claude Code / Codex без запущенного экземпляра DSH запускает worker runtime в отдельном процессе. Получите API-ключ на [platform.deepseek.com](https://platform.deepseek.com) и запишите его в `~/.config/dsh-crew/.env`:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
DEEPSEEK_API_KEY=sk-...
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Проверка
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
node scripts/smoke.mjs
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Smoke test отправляет одно дешёвое задание по доступному пути — hub, если запущен экземпляр DSH, иначе standalone — и выводит, какой из них был использован. Примерно через десять секунд должно появиться `smoke test passed — configuration OK`. При ошибке печатается причина, относящаяся к проверенному пути.
|
|
150
|
+
|
|
151
|
+
Затем откройте Настройки → DSH Crew и установите интеграции Claude Code / Codex одним щелчком.
|
|
152
|
+
|
|
153
|
+
## Контекст и терминология
|
|
154
|
+
|
|
155
|
+
- **DSH** (DeepSeek Harness): опенсорсный агентский харнесс DeepSeek, кодовый агент в форме веб-интерфейса, похожий на Claude Code, но работающий на моделях DeepSeek.
|
|
156
|
+
- **MCP** (Model Context Protocol): протокол интеграции ИИ-инструментов от Anthropic, позволяет LLM безопасно вызывать внешние инструменты и источники данных.
|
|
157
|
+
- **Cordis bundle**: формат плагинов DSH; этот проект может работать автономно как MCP-сервис или устанавливаться в DSH Web в режиме hub.
|
|
158
|
+
- **tier**: уровень возможностей — какой слот из настроенного списка моделей DSH получает воркер. `flash` — быстрый и дешёвый (простые задачи), `pro` — глубже рассуждает (сложные задачи). Сейчас они соответствуют DeepSeek V4 Flash и V4 Pro; поменяйте модели в DSH — и здесь ничего менять не нужно.
|
|
159
|
+
- **worker**: агент DSH, выполняющий работу, — полноценная сессия со своими инструментами, песочницей и пресетом, а не голый вызов модели.
|
|
160
|
+
- **effort**: сила рассуждений, `off` = без рассуждений, `high` = высокие вложения в рассуждения, `max` = максимальные вложения в рассуждения.
|
|
161
|
+
|
|
162
|
+
## Claude Code
|
|
163
|
+
|
|
164
|
+
### Установка
|
|
165
|
+
|
|
166
|
+
Установка в один клик (выберите один вариант):
|
|
167
|
+
|
|
168
|
+
- **Страница настроек DSH** (когда установлен режим hub): Settings → DSH Crew → "Install to Claude Code"
|
|
169
|
+
- **Командная строка**: `node src/install/cli.mjs all`
|
|
170
|
+
|
|
171
|
+
Оба варианта делают одно и то же: регистрируют локальный маркетплейс (родительская директория `dsh-plugins/` как корень маркетплейса) + `claude plugin install` + список разрешений инструментов MCP + настройка сегмента статуса воркеров claude-hud (автоматическое резервное копирование settings.json перед изменениями, идемпотентно). **После установки перезапустите сессию, чтобы изменения вступили в силу.**
|
|
172
|
+
|
|
173
|
+
### Использование
|
|
174
|
+
|
|
175
|
+
- Прямо в диалоге скажите "dispatch X to ds-flash" или "dispatch X to ds-pro", и субагент выполнит задачу
|
|
176
|
+
- Счётчик отправок и прогресс в реальном времени отображаются в интерфейсе задач Claude Code
|
|
177
|
+
- **Сегмент статусной строки HUD**: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3` (текущий уровень / затраченное время / расход токенов / количество завершённых)
|
|
178
|
+
- При локальной разработке `statusline/statusline.sh` или `statusline/worker-segment.sh` можно интегрировать отдельно
|
|
179
|
+
- **Длительные задачи**: у CC есть лимиты таймаута для вызовов MCP (`MCP_TOOL_TIMEOUT` настраивается); для долгих задач оркестратор может использовать `dsh_spawn_worker` + опрос через `dsh_worker_result(wait_seconds)`
|
|
180
|
+
- **Локальная разработка и отладка**: `claude --plugin-dir /path/to/dsh-crew` для временной загрузки
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
### Команды сессии
|
|
184
|
+
|
|
185
|
+
Переопределяют глобальные значения только для текущей сессии и применяются на уровне инструмента, а не через промпт:
|
|
186
|
+
|
|
187
|
+
| Команда | Что делает |
|
|
188
|
+
|---|---|
|
|
189
|
+
| `/dsh-crew:config` | Показать или задать значения по умолчанию для сессии: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=<секунды>`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` |
|
|
190
|
+
| `/dsh-crew:on` · `/dsh-crew:off` | Включить или выключить диспетчеризацию в этой сессии (выключено — жёсткий запрет: инструмент отказывает) |
|
|
191
|
+
| `/dsh-crew:status` | Статус worker-задач в реальном времени: tier, прогресс, токены, текущий инструмент |
|
|
192
|
+
|
|
193
|
+
## Codex
|
|
194
|
+
|
|
195
|
+
### Установка
|
|
196
|
+
|
|
197
|
+
Рекомендуется использовать установщик (автоматически формирует пути для этой машины, копирует команды `/dsh-config`, `/dsh-status`):
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
node src/install/cli.mjs codex
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Либо скопируйте вручную (после копирования потребуется вручную исправить пути):
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
cp codex/agents/*.toml ~/.codex/agents/ # global or project-level .codex/agents/
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Файлы ролей поставляются с готовыми настройками:
|
|
210
|
+
|
|
211
|
+
- конфигурация подключения MCP-сервера
|
|
212
|
+
- `default_tools_approval_mode = "approve"` (**обязательно**, иначе вызовы инструментов автоматически отменяются в режиме exec)
|
|
213
|
+
- `tool_timeout_sec = 3600`
|
|
214
|
+
|
|
215
|
+
**Примечание**: при ручном копировании абсолютные пути в поле `args` нужно привести в соответствие с фактическим расположением установки; установщик делает это автоматически.
|
|
216
|
+
|
|
217
|
+
### Использование
|
|
218
|
+
|
|
219
|
+
- В интерактивном TUI выберите "spawn ds-pro to ...", чтобы отправить задачи; панели Active/Done показывают прогресс
|
|
220
|
+
- Режим `codex exec` также может напрямую вызывать `dsh_run_worker`
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
### Команды сессии
|
|
224
|
+
|
|
225
|
+
Для Codex устанавливаются те же два промпта:
|
|
226
|
+
|
|
227
|
+
| Команда | Что делает |
|
|
228
|
+
|---|---|
|
|
229
|
+
| `/dsh-config` | Показать или задать значения по умолчанию для сессии: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=<секунды>`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` |
|
|
230
|
+
| `/dsh-status` | Статус worker-задач в реальном времени: tier, прогресс, токены, текущий инструмент |
|
|
231
|
+
|
|
232
|
+
## Инструменты MCP
|
|
233
|
+
|
|
234
|
+
| Инструмент | Описание |
|
|
235
|
+
|---|---|
|
|
236
|
+
| `dsh_run_worker` | Синхронная отправка задачи (`tier`: flash/pro, `effort`: off/high/max, `cwd`), ожидает результат |
|
|
237
|
+
| `dsh_spawn_worker` | Асинхронная отправка задачи, возвращает id задания (для параллельного веера) |
|
|
238
|
+
| `dsh_worker_status` | Запрос прогресса всех заданий в реальном времени (ход/шаг/текущий инструмент/токены) |
|
|
239
|
+
| `dsh_worker_result` | Получение результата, можно указать `wait_seconds` для ожидания |
|
|
240
|
+
| `dsh_worker_cancel` | Отмена указанного задания и завершение его процесса рантайма |
|
|
241
|
+
|
|
242
|
+
Прогресс одновременно зеркалируется в `~/.config/dsh-crew/status.d/` (по одному файлу-шарду на источник записи; его может читать statusline или внешний мониторинг).
|
|
243
|
+
|
|
244
|
+
## Мультимодальность: зрение и генерация изображений
|
|
245
|
+
|
|
246
|
+
**DeepSeek — текстовая модель**, не поддерживающая ввод и генерацию изображений. Этот плагин получает эти возможности извне через инструменты MCP:
|
|
247
|
+
|
|
248
|
+
| Инструмент | Описание |
|
|
249
|
+
|---|---|
|
|
250
|
+
| `describe_image` | Отвечает на вопросы, просматривая изображения (скриншоты, макеты, диаграммы и т. д.), результаты кэшируются по ключу провайдер + модель + изображение + вопрос |
|
|
251
|
+
| `generate_image` | Генерирует изображение по текстовому описанию, сохраняет по указанному абсолютному пути; результат — плоский растр (для редактирования слоёв требуется OpenPencil) |
|
|
252
|
+
|
|
253
|
+
**Вставка изображений в сессию**: в DSH переключите модель на `DeepSeek (vision) ◉`, чтобы вставлять изображения напрямую. Изображения остаются в сессии и отображаются как обычно; плагин добавляет распознанный текст после них и удаляет изображения перед отправкой — вы видите изображение, модель читает текст.
|
|
254
|
+
|
|
255
|
+
### Конфигурация
|
|
256
|
+
|
|
257
|
+
На **странице настроек DSH → DSH Crew → Multimodal** (или отредактируйте `~/.config/dsh-crew/config.json` напрямую):
|
|
258
|
+
|
|
259
|
+
**Провайдер зрения** (просмотр изображений):
|
|
260
|
+
|
|
261
|
+
- `claude-code` (по умолчанию, использует haiku, недорого)
|
|
262
|
+
- `codex` (использует GPT, можно указать конкретную модель)
|
|
263
|
+
- `grok` (использует Grok)
|
|
264
|
+
- `agy` (Antigravity)
|
|
265
|
+
- `custom` (OpenAI-совместимый API или локальная команда)
|
|
266
|
+
- `off` (отключено)
|
|
267
|
+
|
|
268
|
+
**Провайдер генерации изображений** (генерация изображений):
|
|
269
|
+
|
|
270
|
+
- `codex` (`$imagegen`, gpt-image-2)
|
|
271
|
+
- `agy` (Nano Banana)
|
|
272
|
+
- `grok` (Imagine)
|
|
273
|
+
- `custom` (OpenAI-совместимый API или локальная команда)
|
|
274
|
+
- `off` (отключено)
|
|
275
|
+
|
|
276
|
+
### Собственный провайдер
|
|
277
|
+
|
|
278
|
+
Два способа интеграции:
|
|
279
|
+
|
|
280
|
+
**API**: любая OpenAI-совместимая конечная точка
|
|
281
|
+
- Заполните Base URL, API Key, список моделей
|
|
282
|
+
- Зрение использует `/chat/completions` со встроенными base64-изображениями
|
|
283
|
+
- Генерация изображений использует `/images/generations`
|
|
284
|
+
- **Чтобы получить возможность генерации, необходимо указать "image generation model"**, иначе провайдер появится только в списке выбора зрения
|
|
285
|
+
|
|
286
|
+
**CLI**: шаблон локальной команды, плейсхолдеры подставляются безопасными ссылками
|
|
287
|
+
- Зрение: `{image} {question} {model}` → ответ из stdout
|
|
288
|
+
- Генерация изображений: `{prompt} {output} {size}` → команда должна записать файл в `{output}`
|
|
289
|
+
- Заполните хотя бы одну команду; какая из них заполнена — та и определяет возможность
|
|
290
|
+
|
|
291
|
+
**Тест подключения**: у каждого собственного провайдера есть кнопка проверки
|
|
292
|
+
- API: проверка доступности конечной точки и авторизации, отправка реального запроса зрения для проверки
|
|
293
|
+
- CLI: проверка исполняемого файла, запуск реальной команды для проверки
|
|
294
|
+
- Генерация изображений: только валидация конфигурации, без реального вывода изображения
|
|
295
|
+
|
|
296
|
+
**Заимствованные CLI по подписке** (claude / codex / grok / agy) требуют локального входа в систему; плагин не будет обходить их разрешения за вас.
|
|
297
|
+
|
|
298
|
+
## Режим hub
|
|
299
|
+
|
|
300
|
+
Этот пакет также является полноценным бандлом DSH (`dsh.bundle` + `cordis.patch.yml`). После установки в профиль DSH Web командой `dsh plugin add dsh-crew`:
|
|
301
|
+
|
|
302
|
+
- **Сессии воркеров становятся полноценными**: выполняются как полноценные сессии в хосте DSH (`agents.create` + каскад модель/effort для каждой сессии + пресет по умолчанию), появляются в списке сессий веб-интерфейса, их можно открыть в любой момент, чтобы просмотреть полный ход выполнения
|
|
303
|
+
- **Организация по рабочей директории**: управление сессиями воркеров по cwd в веб-интерфейсе
|
|
304
|
+
- **Loopback API**:
|
|
305
|
+
- `POST/GET /_dsh/dsh-crew/jobs`: запуск задач, список, ожидание результатов (long-poll), отмена
|
|
306
|
+
- `GET /_dsh/dsh-crew/ping`: проверка работоспособности (MCP-прослойка использует её, чтобы определить, запущен ли hub)
|
|
307
|
+
- `POST /_dsh/dsh-crew/install`: установка интеграции Claude Code / Codex в один клик (бэкенд `src/install/`)
|
|
308
|
+
- **Автоопределение**: MCP-прослойка CC/Codex автоматически определяет hub (переменная окружения `DSH_CREW_HUB`, по умолчанию `http://127.0.0.1:3080`)
|
|
309
|
+
- DSH Web запущен → задания выполняются в режиме hub (`mode: "hub"`)
|
|
310
|
+
- Не запущен → переключение на автономный рантайм
|
|
311
|
+
|
|
312
|
+
## Выбор решения и ограничения
|
|
313
|
+
|
|
314
|
+
### Обычные подписчики → подход с субагентом-оболочкой (рекомендуется)
|
|
315
|
+
|
|
316
|
+
- **Текущее положение**: оболочка субагента Claude Code использует haiku как посредника; каждая отправка добавляет от сотен до тысяч токенов
|
|
317
|
+
- **Компромисс**: небольшое количество токенов Anthropic в обмен на встроенный интерфейс задач, отображение прогресса в реальном времени и отсутствие дополнительной настройки
|
|
318
|
+
- **Рекомендация**: если у вас уже есть подписка Claude Pro или вы используете Claude Code, выбирайте этот подход — удобно и прозрачно
|
|
319
|
+
|
|
320
|
+
### Оплата по факту / CI-среды → подход с прямым роутером
|
|
321
|
+
|
|
322
|
+
- **Текущее положение**: frontmatter субагента Claude Code не поддерживает прямое подключение сторонних моделей; эксперимент с роутером в scratchpad этого репозитория требует учётных данных API-ключа для Claude Code, но OAuth по подписке блокируется на стороне Anthropic ошибкой 403
|
|
323
|
+
- **Рекомендации**:
|
|
324
|
+
- Если вы используете учётные данные API-ключа (не OAuth) и хотите экономить токены Anthropic, можно запустить локальный роутер для прямого подключения к DeepSeek
|
|
325
|
+
- CI-среды обычно тоже используют API-ключи; этот подход экономичнее (все токены — DeepSeek)
|
|
326
|
+
- Требуется самостоятельная проверка интеграции роутера (официально не поддерживается)
|
|
327
|
+
|
|
328
|
+
### Запущенный DSH Web → режим hub включается автоматически
|
|
329
|
+
|
|
330
|
+
- **Текущее положение**: если `dsh plugin add dsh-crew` установлен в профиль DSH Web, задания выполняются как полноценные сессии в хосте и появляются в списке сессий веб-интерфейса
|
|
331
|
+
- **Рекомендация**: при итерациях локальной разработки рекомендуется включать режим hub — прогресс воркеров можно полностью наблюдать в веб-интерфейсе; для совместной работы на разных машинах или сред без веб-интерфейса используйте подход с оболочкой Claude Code / Codex
|
|
332
|
+
|
|
333
|
+
### Известные моменты
|
|
334
|
+
|
|
335
|
+
- Роль Codex теоретически может попробовать `model_provider`, указывающий напрямую на DeepSeek (не проверено); этот мост от него не зависит
|
|
336
|
+
- Результат генерации изображений — плоский растр; для редактирования слоёв требуется OpenPencil
|
|
337
|
+
- **Зависимости рантайма**: только `@modelcontextprotocol/sdk` и `zod`; `@deepseek-ai/*` — peerDependencies (предоставляются хостом DSH)
|
|
338
|
+
- **Для Codex обязательно настроить**: `default_tools_approval_mode = "approve"`, иначе вызовы инструментов автоматически отменяются
|
|
339
|
+
|
|
340
|
+
## Разработка
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
pnpm install
|
|
344
|
+
node_modules/.bin/tsdown src/client/index.tsx --format cjs --platform browser \
|
|
345
|
+
--target es2022 --tsconfig tsconfig.client.json --out-dir .client-build --clean
|
|
346
|
+
node scripts/build-client.mjs # wraps the bundle for the DSH module loader
|
|
347
|
+
node scripts/smoke.mjs # dispatches one real flash task end to end
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Зависимости рантайма — только `@modelcontextprotocol/sdk` и `zod`; каждый пакет `@deepseek-ai/*` является peer dependency, предоставляемой хостом DSH, что удерживает плагин в едином пространстве модулей хоста.
|
|
351
|
+
|
|
352
|
+
## Экосистема
|
|
353
|
+
|
|
354
|
+
- [DSH Noema](https://github.com/ZSeven-W/dsh-noema) — долговременная память для DSH
|
|
355
|
+
- [DSH OpenPencil](https://github.com/ZSeven-W/dsh-openpencil) — просмотр и редактирование дизайн-документов `.op` прямо в диалоге
|
|
356
|
+
|
|
357
|
+
## Лицензия
|
|
358
|
+
|
|
359
|
+
MIT
|