@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.pt.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>Um plugin do <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a>: envie trabalho para agentes DSH a partir do Claude Code / Codex, sem abrir mão da UI nativa de subagent do host.</strong><br />
|
|
9
|
+
<sub>UI de progresso nativa • Política de Tier & Escalonamento • Sessões DSH no Host • Visão & Geração de Imagens • Instalação em Um Clique</sub>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<sub>GitHub: <code>Ran-sh/dsh-crew</code> · Versão atual do plugin: <code>0.1.0-rc.1</code> · Testado com 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"><b>Português</b></a> · <a href="./README.ru.md">Русский</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="Licença" /></a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<br />
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="./docs/images/dsh-crew-overview.png" alt="DSH Crew — página de configurações" width="100%" />
|
|
28
|
+
</p>
|
|
29
|
+
<p align="center"><sub>A página de configurações do DSH Crew — integrações do host, política de despacho, execução e a ponte multimodal</sub></p>
|
|
30
|
+
|
|
31
|
+
## Por que DSH Crew
|
|
32
|
+
|
|
33
|
+
O DSH Crew é um plugin para [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) — um harness de agente open-source. Ele torna os agentes DSH despacháveis a partir do Claude Code e do Codex: o orchestrator mantém seu próprio modelo, o trabalho é executado em um agente DSH real com as ferramentas, o sandbox, os presets e o histórico de sessão desse harness, e o host continua exibindo-o como um subagent nativo com progresso ao vivo.
|
|
34
|
+
|
|
35
|
+
O que executa o trabalho é um agente DSH, não uma chamada de modelo pura. Os tiers (`flash` / `pro`) selecionam quanta capacidade esse agente recebe do roster configurado do harness — DeepSeek V4 Flash e V4 Pro hoje — portanto, uma mudança de modelo no DSH não exige mudança aqui.
|
|
36
|
+
|
|
37
|
+
<table>
|
|
38
|
+
<tr>
|
|
39
|
+
<td width="50%">
|
|
40
|
+
|
|
41
|
+
### 🧵 UI de Progresso Nativa
|
|
42
|
+
|
|
43
|
+
Workers aparecem como subagents regulares no Claude Code / Codex — contagem de despachos, etapa em execução, chamadas de ferramenta e uso de tokens aparecem no painel de tarefas do próprio host, além de um segmento de statusline do claude-hud: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3`.
|
|
44
|
+
|
|
45
|
+
</td>
|
|
46
|
+
<td width="50%">
|
|
47
|
+
|
|
48
|
+
### 🎚️ Política de Tier e Escalonamento
|
|
49
|
+
|
|
50
|
+
`flash` para trabalho mecânico, `pro` para raciocínio, `effort` de `off` a `max`. O `tier_policy` pode fixar cada despacho em um único tier na camada de ferramenta, e o `escalate_on_failure` tenta novamente uma execução flash com falha uma vez no pro — com base em evidências, não em adivinhar a dificuldade antecipadamente.
|
|
51
|
+
|
|
52
|
+
</td>
|
|
53
|
+
</tr>
|
|
54
|
+
<tr>
|
|
55
|
+
<td width="50%">
|
|
56
|
+
|
|
57
|
+
### 🏛️ Sessões DSH no Host
|
|
58
|
+
|
|
59
|
+
Com o bundle instalado em um perfil DSH, cada worker é uma sessão DSH de primeira classe: visível na Web UI, agrupada por diretório de trabalho e montada com o preset de Agent que você escolhe por tier. Sem o DSH em execução, o despacho volta para um runtime DSH standalone, então ambientes CI e headless continuam funcionando.
|
|
60
|
+
|
|
61
|
+
</td>
|
|
62
|
+
<td width="50%">
|
|
63
|
+
|
|
64
|
+
### 👁️ Visão e Geração de Imagens
|
|
65
|
+
|
|
66
|
+
Os modelos do DSH são somente texto. `describe_image` e `generate_image` usam os olhos e o pincel das CLIs que você já tem — Claude, Codex, Grok, Antigravity — ou de qualquer API compatível com OpenAI que você configurar. Imagens coladas permanecem visíveis na conversa e chegam ao modelo como texto.
|
|
67
|
+
|
|
68
|
+
</td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td width="50%">
|
|
72
|
+
|
|
73
|
+
### 🔌 Provedores Personalizados
|
|
74
|
+
|
|
75
|
+
Traga seu próprio endpoint (Base URL + API Key + modelos) ou um modelo de comando local. Cada provedor tem um teste de conectividade que verifica alcance e autenticação e depois faz uma chamada real de visão, para você descobrir agora, não no meio da tarefa.
|
|
76
|
+
|
|
77
|
+
</td>
|
|
78
|
+
<td width="50%">
|
|
79
|
+
|
|
80
|
+
### 📦 Instalação em Um Clique
|
|
81
|
+
|
|
82
|
+
A página de configurações instala e atualiza o plugin do Claude Code e os arquivos de role do Codex para você — registro no marketplace, allowlist de permissões, integração com HUD, caminhos absolutos renderizados para esta máquina — e também os restaura facilmente. Todos os arquivos de configuração têm backup antes de qualquer alteração.
|
|
83
|
+
|
|
84
|
+
</td>
|
|
85
|
+
</tr>
|
|
86
|
+
</table>
|
|
87
|
+
|
|
88
|
+
## Como funciona
|
|
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
|
+
## Uma execução, duas visões
|
|
100
|
+
|
|
101
|
+
O despacho se espalha. Abaixo, dezoito workers traduzem este README em paralelo: o host os conta como seus próprios subagents, enquanto o harness os executa como sessões reais.
|
|
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>No Claude Code, os workers do dsh-crew são subagents nativos; o segmento da statusline acompanha os tiers em execução, o tempo decorrido e os tokens.</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>O painel do DSH Crew mostra a mesma execução pelo lado do harness: qual host despachou cada job, seu tier e effort, o progresso ao vivo e o uso de tokens.</sub></p>
|
|
112
|
+
|
|
113
|
+
## Instalação
|
|
114
|
+
|
|
115
|
+
Instalar do GitHub em um perfil do 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
|
+
Ou, para desenvolvimento local a partir do código-fonte:
|
|
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
|
+
O protocolo `link:` cria um symlink da dependência do perfil para este repositório, então cada rebuild aparece imediatamente.
|
|
132
|
+
|
|
133
|
+
### Configurar credenciais do DeepSeek (apenas standalone)
|
|
134
|
+
|
|
135
|
+
No modo hub — a instalação anterior — os workers são executados dentro da instância DSH e usam as credenciais do DeepSeek já configuradas. Nada mais para configurar.
|
|
136
|
+
|
|
137
|
+
Apenas o fallback standalone precisa de sua própria key: despachando do Claude Code / Codex sem uma instância DSH em execução inicia um worker runtime como um processo separado. Obtenha uma API key em [platform.deepseek.com](https://platform.deepseek.com) e escreva em `~/.config/dsh-crew/.env`:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
DEEPSEEK_API_KEY=sk-...
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Verificar
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
node scripts/smoke.mjs
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
O smoke test despacha uma tarefa econômica por qualquer caminho disponível — o hub se uma instância DSH está em execução, caso contrário standalone — e imprime qual foi utilizado. Em cerca de dez segundos você deve ver `smoke test passed — configuration OK`. Em caso de falha o motivo é impresso, limitado ao caminho que foi testado.
|
|
150
|
+
|
|
151
|
+
Depois abra Configurações → DSH Crew e instale as integrações do Claude Code / Codex com um clique.
|
|
152
|
+
|
|
153
|
+
## Contexto e terminologia
|
|
154
|
+
|
|
155
|
+
- **DSH** (DeepSeek Harness): o harness de agente open-source da DeepSeek, um agente de código na forma de Web UI, semelhante ao Claude Code, mas que utiliza modelos DeepSeek.
|
|
156
|
+
- **MCP** (Model Context Protocol): o protocolo de integração de ferramentas de IA da Anthropic, que permite que LLMs chamem ferramentas externas e fontes de dados com segurança.
|
|
157
|
+
- **Cordis bundle**: o formato de plugin do DSH; este projeto pode ser executado standalone como um serviço MCP ou instalado no DSH Web como modo hub.
|
|
158
|
+
- **tier**: tier de capacidade — qual slot do roster de modelos configurado do DSH um worker recebe. `flash` é rápido e barato (tarefas simples), `pro` raciocina com mais profundidade (problemas complexos). Hoje eles mapeiam para DeepSeek V4 Flash e V4 Pro; troque os modelos no DSH e nada muda aqui.
|
|
159
|
+
- **worker**: o agente DSH que executa o trabalho — uma sessão completa com suas próprias ferramentas, sandbox e preset, não uma chamada de modelo pura.
|
|
160
|
+
- **effort**: intensidade de raciocínio, `off` = sem raciocínio, `high` = alto investimento de raciocínio, `max` = investimento máximo de raciocínio.
|
|
161
|
+
|
|
162
|
+
## Claude Code
|
|
163
|
+
|
|
164
|
+
### Instalação
|
|
165
|
+
|
|
166
|
+
Instalação em um clique (escolha uma opção):
|
|
167
|
+
|
|
168
|
+
- **Página de configurações do DSH** (quando o modo hub está instalado): Configurações → DSH Crew → "Install to Claude Code"
|
|
169
|
+
- **Linha de comando**: `node src/install/cli.mjs all`
|
|
170
|
+
|
|
171
|
+
Ambas fazem a mesma coisa: registrar o marketplace local (diretório pai `dsh-plugins/` como raiz do marketplace) + `claude plugin install` + allowlist de permissões das ferramentas MCP + configuração do segmento de status do worker no claude-hud (backup automático do settings.json antes de alterações, idempotente). **Reinicie a sessão após a instalação para que as alterações entrem em vigor.**
|
|
172
|
+
|
|
173
|
+
### Uso
|
|
174
|
+
|
|
175
|
+
- Diretamente na conversa, diga "dispatch X to ds-flash" ou "dispatch X to ds-pro", e o subagent executa a tarefa
|
|
176
|
+
- A contagem de despachos e o progresso em tempo real aparecem na interface de tarefas do Claude Code
|
|
177
|
+
- **Segmento da linha de status do HUD**: `⚙dsh 1▶pro 2m14s 21.7k/606 ✓3` (tier atual / tempo decorrido / uso de tokens / contagem de conclusões)
|
|
178
|
+
- Para desenvolvimento local, `statusline/statusline.sh` ou `statusline/worker-segment.sh` podem ser integrados de forma independente
|
|
179
|
+
- **Tarefas de longa duração**: o CC tem limites de timeout em chamadas MCP (`MCP_TOOL_TIMEOUT` ajustável); tarefas longas podem fazer o orchestrator usar `dsh_spawn_worker` + polling com `dsh_worker_result(wait_seconds)`
|
|
180
|
+
- **Desenvolvimento e depuração locais**: `claude --plugin-dir /path/to/dsh-crew` para carregar temporariamente
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
### Comandos de sessão
|
|
184
|
+
|
|
185
|
+
Substituem os padrões globais apenas na sessão atual e são aplicados na camada de ferramentas, não por prompt:
|
|
186
|
+
|
|
187
|
+
| Comando | O que faz |
|
|
188
|
+
|---|---|
|
|
189
|
+
| `/dsh-crew:config` | Mostrar ou definir os padrões da sessão: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=<segundos>`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` |
|
|
190
|
+
| `/dsh-crew:on` · `/dsh-crew:off` | Ligar ou desligar o despacho nesta sessão (desligado é chave rígida: a ferramenta recusa) |
|
|
191
|
+
| `/dsh-crew:status` | Status ao vivo dos jobs de worker: tier, progresso, tokens, ferramenta atual |
|
|
192
|
+
|
|
193
|
+
## Codex
|
|
194
|
+
|
|
195
|
+
### Instalação
|
|
196
|
+
|
|
197
|
+
Recomenda-se usar o instalador (renderiza automaticamente os caminhos para esta máquina e copia os comandos `/dsh-config`, `/dsh-status`):
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
node src/install/cli.mjs codex
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Ou copie manualmente (exige modificação manual dos caminhos após copiar):
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
cp codex/agents/*.toml ~/.codex/agents/ # global or project-level .codex/agents/
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Os arquivos de role já vêm pré-configurados com:
|
|
210
|
+
|
|
211
|
+
- Configuração de montagem do servidor MCP
|
|
212
|
+
- `default_tools_approval_mode = "approve"` (**obrigatório**, caso contrário as chamadas de ferramenta são canceladas automaticamente no modo exec)
|
|
213
|
+
- `tool_timeout_sec = 3600`
|
|
214
|
+
|
|
215
|
+
**Nota**: Ao copiar manualmente, os caminhos absolutos no campo `args` devem ser atualizados para corresponder ao local real da instalação; o instalador faz isso automaticamente.
|
|
216
|
+
|
|
217
|
+
### Uso
|
|
218
|
+
|
|
219
|
+
- No TUI interativo, selecione "spawn ds-pro to ..." para despachar tarefas; os painéis Active/Done mostram o progresso
|
|
220
|
+
- O modo `codex exec` também pode chamar diretamente `dsh_run_worker`
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
### Comandos de sessão
|
|
224
|
+
|
|
225
|
+
Os mesmos dois prompts são instalados para o Codex:
|
|
226
|
+
|
|
227
|
+
| Comando | O que faz |
|
|
228
|
+
|---|---|
|
|
229
|
+
| `/dsh-config` | Mostrar ou definir os padrões da sessão: `tier=flash\|pro`, `effort=off\|high\|max`, `mode=auto\|hub\|standalone`, `timeout=<segundos>`, `policy=auto\|flash-only\|pro-only`, `escalate=true\|false`, `reset` |
|
|
230
|
+
| `/dsh-status` | Status ao vivo dos jobs de worker: tier, progresso, tokens, ferramenta atual |
|
|
231
|
+
|
|
232
|
+
## Ferramentas MCP
|
|
233
|
+
|
|
234
|
+
| Ferramenta | Descrição |
|
|
235
|
+
|---|---|
|
|
236
|
+
| `dsh_run_worker` | Despacho síncrono de tarefa (`tier`: flash/pro, `effort`: off/high/max, `cwd`), aguarda o resultado |
|
|
237
|
+
| `dsh_spawn_worker` | Despacho assíncrono de tarefa, retorna o id do job (para fan-out paralelo) |
|
|
238
|
+
| `dsh_worker_status` | Consulta o progresso em tempo real de todos os jobs (turn/step/ferramenta atual/token) |
|
|
239
|
+
| `dsh_worker_result` | Busca o resultado; pode especificar `wait_seconds` para aguardar |
|
|
240
|
+
| `dsh_worker_cancel` | Cancela o job especificado e encerra o processo do runtime |
|
|
241
|
+
|
|
242
|
+
O progresso também é espelhado em `~/.config/dsh-crew/status.d/` (um arquivo shard por escritor, que pode ser lido por statusline / monitoramento externo).
|
|
243
|
+
|
|
244
|
+
## Multimodal: visão e geração de imagens
|
|
245
|
+
|
|
246
|
+
**DeepSeek é um modelo somente texto** e não suporta entrada ou geração de imagens. Este plugin obtém essas capacidades externamente por meio de ferramentas MCP:
|
|
247
|
+
|
|
248
|
+
| Ferramenta | Descrição |
|
|
249
|
+
|---|---|
|
|
250
|
+
| `describe_image` | Responde perguntas analisando imagens (capturas de tela, designs, gráficos etc.); resultados em cache por provedor + modelo + imagem + pergunta |
|
|
251
|
+
| `generate_image` | Gera imagem a partir de uma descrição em texto e salva no caminho absoluto especificado; a saída é um bitmap plano (requer OpenPencil para edição de camadas) |
|
|
252
|
+
|
|
253
|
+
**Colar imagens na sessão**: No DSH, mude o modelo para `DeepSeek (vision) ◉` para colar imagens diretamente. As imagens permanecem na sessão e são exibidas normalmente; o plugin acrescenta o texto transcrito após elas e remove as imagens antes do envio — você vê a imagem, o modelo lê o texto.
|
|
254
|
+
|
|
255
|
+
### Configuração
|
|
256
|
+
|
|
257
|
+
Na **página de configurações do DSH → DSH Crew → Multimodal** (ou edite diretamente `~/.config/dsh-crew/config.json`):
|
|
258
|
+
|
|
259
|
+
**Provedor de visão** (visualização de imagens):
|
|
260
|
+
|
|
261
|
+
- `claude-code` (padrão, usa haiku, barato)
|
|
262
|
+
- `codex` (usa GPT, pode especificar um modelo específico)
|
|
263
|
+
- `grok` (usa Grok)
|
|
264
|
+
- `agy` (Antigravity)
|
|
265
|
+
- `custom` (API compatível com OpenAI ou comando local)
|
|
266
|
+
- `off` (desativado)
|
|
267
|
+
|
|
268
|
+
**Provedor de geração de imagens** (geração de imagens):
|
|
269
|
+
|
|
270
|
+
- `codex` (`$imagegen`, gpt-image-2)
|
|
271
|
+
- `agy` (Nano Banana)
|
|
272
|
+
- `grok` (Imagine)
|
|
273
|
+
- `custom` (API compatível com OpenAI ou comando local)
|
|
274
|
+
- `off` (desativado)
|
|
275
|
+
|
|
276
|
+
### Provedor personalizado
|
|
277
|
+
|
|
278
|
+
Dois métodos de integração:
|
|
279
|
+
|
|
280
|
+
**API**: qualquer endpoint compatível com OpenAI
|
|
281
|
+
- Preencha Base URL, API Key e lista de modelos
|
|
282
|
+
- Visão usa `/chat/completions` com imagens base64 inline
|
|
283
|
+
- Geração de imagens usa `/images/generations`
|
|
284
|
+
- **É obrigatório especificar o "modelo de geração de imagens" para ter capacidade de geração**; caso contrário, o provedor só aparece na seleção de visão
|
|
285
|
+
|
|
286
|
+
**CLI**: modelo de comando local, com placeholders substituídos por referências seguras
|
|
287
|
+
- Visão: `{image} {question} {model}` → stdout como resposta
|
|
288
|
+
- Geração de imagens: `{prompt} {output} {size}` → o comando deve gravar o arquivo em `{output}`
|
|
289
|
+
- Preencha pelo menos um comando; o que for preenchido determina a capacidade
|
|
290
|
+
|
|
291
|
+
**Teste de conectividade**: cada provedor personalizado tem um botão de teste
|
|
292
|
+
- API: verifica alcance do endpoint, autenticação e envia uma requisição real de visão para confirmar
|
|
293
|
+
- CLI: verifica o arquivo executável e executa um comando real para confirmar
|
|
294
|
+
- Geração de imagens: valida apenas a configuração, sem gerar imagem de fato
|
|
295
|
+
|
|
296
|
+
**CLIs de assinatura emprestadas** (claude / codex / grok / agy) exigem que você esteja conectado localmente; o plugin não contorna as permissões delas por você.
|
|
297
|
+
|
|
298
|
+
## Modo hub
|
|
299
|
+
|
|
300
|
+
Este pacote também é um bundle DSH válido (`dsh.bundle` + `cordis.patch.yml`). Após instalar no perfil do DSH Web com `dsh plugin add dsh-crew`:
|
|
301
|
+
|
|
302
|
+
- **Sessões de worker se tornam cidadãs de primeira classe**: são executadas como sessões de primeira classe no host DSH (`agents.create` + waterfall de model/effort por sessão + preset padrão), aparecem na lista de sessões da Web UI e podem ser abertas a qualquer momento para ver a execução completa
|
|
303
|
+
- **Organize por diretório de trabalho**: gerencie sessões de worker por cwd na Web UI
|
|
304
|
+
- **Loopback API**:
|
|
305
|
+
- `POST/GET /_dsh/dsh-crew/jobs`: cria tarefas, lista, faz long-poll de resultados e cancela
|
|
306
|
+
- `GET /_dsh/dsh-crew/ping`: verificação de saúde (o shim MCP usa isso para detectar se o hub está em execução)
|
|
307
|
+
- `POST /_dsh/dsh-crew/install`: instalação em um clique da integração com Claude Code / Codex (backend de `src/install/`)
|
|
308
|
+
- **Detecção automática**: o shim MCP do CC/Codex detecta automaticamente o hub (`DSH_CREW_HUB` env var, padrão `http://127.0.0.1:3080`)
|
|
309
|
+
- DSH Web em execução → os jobs entram no modo hub (`mode: "hub"`)
|
|
310
|
+
- Sem execução → volta para o runtime standalone
|
|
311
|
+
|
|
312
|
+
## Seleção de solução e limitações
|
|
313
|
+
|
|
314
|
+
### Assinantes regulares → abordagem de shell subagent (recomendada)
|
|
315
|
+
|
|
316
|
+
- **Estado atual**: o shell de subagent do Claude Code usa haiku como intermediário; cada despacho adiciona centenas a milhares de tokens
|
|
317
|
+
- **Trade-off**: use uma pequena quantidade de tokens Anthropic em troca da interface de tarefas nativa, exibição de progresso em tempo real e nenhuma configuração extra
|
|
318
|
+
- **Recomendação**: se você já assina o Claude Pro ou usa o Claude Code, use esta abordagem — conveniente e transparente
|
|
319
|
+
|
|
320
|
+
### Ambientes pay-as-you-go / CI → abordagem de router direto
|
|
321
|
+
|
|
322
|
+
- **Estado atual**: o frontmatter de subagent do Claude Code não suporta conexão direta com modelos de terceiros; o experimento de router deste repositório no scratchpad exige credenciais de API key para o Claude Code, mas o OAuth de assinatura é bloqueado upstream pela Anthropic com 403
|
|
323
|
+
- **Recomendação**:
|
|
324
|
+
- Se você usa credenciais de API key (não OAuth) e quer economizar tokens Anthropic, pode executar um router local para conexão direta com DeepSeek
|
|
325
|
+
- Ambientes CI normalmente também usam API keys; esta abordagem é mais econômica (todos os tokens DeepSeek)
|
|
326
|
+
- Exige autoteste da integração do router (não é oficialmente suportado)
|
|
327
|
+
|
|
328
|
+
### DSH Web em execução → modo hub ativado automaticamente
|
|
329
|
+
|
|
330
|
+
- **Estado atual**: se `dsh plugin add dsh-crew` foi instalado no perfil do DSH Web, os jobs são executados como sessões de primeira classe no host e aparecem na lista de sessões da Web UI
|
|
331
|
+
- **Recomendação**: durante a iteração de desenvolvimento local, recomenda-se ativar o modo hub; o progresso dos workers pode ser totalmente observado na Web UI; para colaboração entre máquinas ou ambientes sem Web UI, use a abordagem de shell do Claude Code / Codex
|
|
332
|
+
|
|
333
|
+
### Itens conhecidos
|
|
334
|
+
|
|
335
|
+
- O role do Codex pode, teoricamente, tentar `model_provider` apontando diretamente para DeepSeek (não verificado); esta ponte não depende disso
|
|
336
|
+
- A saída da geração de imagens é um bitmap plano; a edição de camadas requer OpenPencil
|
|
337
|
+
- **Dependências de runtime**: apenas `@modelcontextprotocol/sdk` e `zod`; `@deepseek-ai/*` são peerDependencies (fornecidas pelo host DSH)
|
|
338
|
+
- **O Codex deve configurar**: `default_tools_approval_mode = "approve"`, caso contrário as chamadas de ferramenta são canceladas automaticamente
|
|
339
|
+
|
|
340
|
+
## Desenvolvimento
|
|
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
|
+
As dependências de runtime são apenas `@modelcontextprotocol/sdk` e `zod`; todo pacote `@deepseek-ai/*` é uma dependência peer fornecida pelo host DSH, o que mantém o plugin dentro do realm de módulo único do host.
|
|
351
|
+
|
|
352
|
+
## Ecossistema
|
|
353
|
+
|
|
354
|
+
- [DSH Noema](https://github.com/ZSeven-W/dsh-noema) — memória de longo prazo para DSH
|
|
355
|
+
- [DSH OpenPencil](https://github.com/ZSeven-W/dsh-openpencil) — inspecione e edite documentos de design `.op` dentro de uma conversa
|
|
356
|
+
|
|
357
|
+
## Licença
|
|
358
|
+
|
|
359
|
+
MIT
|