dsh-autotier 0.2.3 → 0.2.5
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/AGENTS.md +50 -21
- package/CHANGELOG.md +36 -0
- package/README-es.md +94 -13
- package/README-hi.md +93 -14
- package/README-pt.md +96 -16
- package/README-zh.md +83 -11
- package/README.md +110 -18
- package/cordis.patch.yml +2 -2
- package/lib/client.js +72 -40
- package/lib/client.js.map +1 -1
- package/lib/index.js +233 -66
- package/lib/typert.host.js +1 -1
- package/lib/types/client/TierSettingsCard.d.ts +14 -12
- package/lib/types/client/TierSettingsCard.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +5 -4
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/remote.d.ts +12 -12
- package/lib/types/config.d.ts +20 -9
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/index.d.ts +11 -8
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/judge.d.ts +17 -0
- package/lib/types/judge.d.ts.map +1 -1
- package/lib/types/preflight.d.ts +21 -1
- package/lib/types/preflight.d.ts.map +1 -1
- package/lib/types/routing.d.ts.map +1 -1
- package/lib/types/schema.d.ts +44 -2
- package/lib/types/schema.d.ts.map +1 -1
- package/lib/types/selection.d.ts +36 -10
- package/lib/types/selection.d.ts.map +1 -1
- package/lib/types/service.d.ts +16 -9
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/settings.d.ts +44 -0
- package/lib/types/settings.d.ts.map +1 -0
- package/lib/types/typert.host.d.ts +12 -12
- package/lib/types/wire.d.ts +24 -24
- package/lib/types/wire.d.ts.map +1 -1
- package/lib/{wire-BpKSOHgo.js → wire-BxsY8BiN.js} +22 -20
- package/package.json +58 -52
- package/src/client/TierSettingsCard.tsx +25 -12
- package/src/client/index.ts +29 -16
- package/src/config.ts +70 -12
- package/src/index.ts +23 -19
- package/src/judge.ts +30 -2
- package/src/preflight.ts +68 -1
- package/src/routing.ts +11 -0
- package/src/schema.ts +48 -9
- package/src/selection.ts +54 -20
- package/src/service.ts +20 -18
- package/src/settings.ts +80 -0
- package/src/wire.ts +19 -20
package/README-pt.md
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://github.com/topics/dsh-plugin)
|
|
6
6
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
7
|
+
[](https://dsh.market/)
|
|
7
8
|
[](#)
|
|
8
9
|
[](https://github.com/PerryLink/dsh-autotier/actions)
|
|
9
10
|
[](https://github.com/PerryLink/dsh-autotier/releases)
|
|
10
11
|
|
|
12
|
+
[English](README.md) | [简体中文](README-zh.md) | [Español](README-es.md) | **Português** | [हिन्दी](README-hi.md)
|
|
13
|
+
|
|
11
14
|
Roteamento automático por níveis de modelo para o DeepSeek Harness: entra uma
|
|
12
15
|
instrução do usuário, sai uma decisão de nível — sem trocar de modelo à mão.
|
|
13
16
|
|
|
@@ -26,13 +29,27 @@ retorno.
|
|
|
26
29
|
|
|
27
30
|
| Harness | Estado |
|
|
28
31
|
|---|---|
|
|
29
|
-
| `@deepseek-ai/dsh` `0.1.2-rc.1` |
|
|
30
|
-
| `@deepseek-ai/dsh` `0.1.5-rc.2` |
|
|
31
|
-
| `@deepseek-ai/
|
|
32
|
+
| `@deepseek-ai/dsh` `0.1.2-rc.1` | não é mais suportada; essa linha é anterior ao contrato `SettingsForms` que o plugin agora mira |
|
|
33
|
+
| `@deepseek-ai/dsh` `0.1.5-rc.2` | não é mais suportada; o contrato `settings.register` / `settings/updated` que ela expõe foi removido a montante |
|
|
34
|
+
| `@deepseek-ai/dsh` `0.1.6-alpha.2` | não é mais suportada; a mesma remoção, primeira linha com `SettingsForms` |
|
|
35
|
+
| `@deepseek-ai/dsh` `0.1.7-alpha.1` | **obrigatória**; verificada contra o checkout correspondente (`typecheck`) e os pacotes publicados (`typecheck:ci`, 214 testes) |
|
|
36
|
+
| `@deepseek-ai/cordis` `^4.0.3`, `@deepseek-ai/cosmokit` `^1.8.4`, `@deepseek-ai/schemastery` `^3.18.3` | base de peers |
|
|
32
37
|
|
|
33
|
-
Os ranges de peers nomeiam as
|
|
34
|
-
>=0.1.5-alpha.1 <0.2.0`), porque um range cujo único comparador de prerelease
|
|
38
|
+
Os ranges de peers nomeiam as quatro linhas publicadas (`>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0`), porque um range cujo único comparador de prerelease
|
|
35
39
|
está numa tupla anterior não admite um alpha posterior. São atualizados por onda.
|
|
40
|
+
O range declarado é deliberadamente mais amplo que o verificado: documenta o que o
|
|
41
|
+
manifesto aceita, não o que foi testado.
|
|
42
|
+
|
|
43
|
+
**Esta versão é uma adaptação que quebra compatibilidade.** O host da geração
|
|
44
|
+
`0.1.6` removeu a costura de *provider* de settings sobre a qual este plugin foi
|
|
45
|
+
construído: o pacote `@deepseek-ai/dsh-settings-file` não existe mais,
|
|
46
|
+
`ctx.settings` agora é `SettingsForms` (um projetor schema→formulário, sem
|
|
47
|
+
`register`), e `settings/updated` também não existe. Nenhuma superfície
|
|
48
|
+
compartilhada permite que um plugin observe o documento de configurações de
|
|
49
|
+
outro, então nenhuma versão deste plugin pode suportar os dois contratos ao mesmo
|
|
50
|
+
tempo. A configuração agora flui pelo mecanismo de configuração volátil do host;
|
|
51
|
+
o **modo de roteamento por sessão** — a configuração que de fato muda o
|
|
52
|
+
comportamento em tempo de execução — não muda.
|
|
36
53
|
|
|
37
54
|
O plugin vive apenas no plano host e não precisa de preset próprio: a linha host
|
|
38
55
|
vale para todas as sessões. Uma seção de prompt no *seu* preset é opcional e
|
|
@@ -108,9 +125,10 @@ modelo saiba em qual nível está, acrescente uma linha ao *seu* preset
|
|
|
108
125
|
dsh plugin --profile web remove dsh-autotier
|
|
109
126
|
```
|
|
110
127
|
|
|
111
|
-
A linha, seu
|
|
112
|
-
|
|
113
|
-
|
|
128
|
+
A linha, seu comando, suas ferramentas e seus listeners são removidos com o
|
|
129
|
+
plugin. A configuração que um usuário salvou pela página Plugins vive no patch do
|
|
130
|
+
perfil ativo e pertence àquele perfil, não a este plugin; remover a linha a deixa
|
|
131
|
+
ali intacta.
|
|
114
132
|
|
|
115
133
|
## Configuração
|
|
116
134
|
|
|
@@ -126,12 +144,12 @@ documenta as mesmas chaves em linha.
|
|
|
126
144
|
| `tiers.strong.followSession` | `false` | `false` = o effort deste nível substitui o da sessão. |
|
|
127
145
|
| `tiers.strong.fallback` | `[]` | Aterrissagens provider/model ordenadas se o nível estiver indisponível. |
|
|
128
146
|
| `tiers.cheap.provider` | `deepseek-official` | Provider do nível de implementação. |
|
|
129
|
-
| `tiers.cheap.model` | `deepseek-
|
|
147
|
+
| `tiers.cheap.model` | `deepseek-flash` | Id de catálogo do modelo cheap. |
|
|
130
148
|
| `tiers.cheap.effort` | `low` | Vocabulário do adaptador `off` \| `low` \| `high` \| `max`. |
|
|
131
149
|
| `tiers.cheap.followSession` | `true` | `true` = herda o effort da sessão e a escolha explícita vence. |
|
|
132
150
|
| `tiers.cheap.fallback` | `[]` | Aterrissagens provider/model ordenadas se o nível estiver indisponível. |
|
|
133
151
|
| `tiers.vision.provider` | `deepseek-official` | Provider para turnos com imagens. |
|
|
134
|
-
| `tiers.vision.model` | `deepseek-
|
|
152
|
+
| `tiers.vision.model` | `deepseek-flash` | O único modelo do catálogo com modalidade de imagem. |
|
|
135
153
|
| `intent.ruleThreshold` | `0.7` | Confiança a partir da qual a camada de regras decide sozinha. |
|
|
136
154
|
| `intent.attemptBand.enabled` | `false` | Começar a faixa média no cheap e escalar ao primeiro sinal. |
|
|
137
155
|
| `intent.attemptBand.tauLow` | `0.45` | Limite inferior da faixa attempt-first. |
|
|
@@ -159,9 +177,18 @@ documenta as mesmas chaves em linha.
|
|
|
159
177
|
| `escalation.signature` | `true` | Contar recorrências da mesma assinatura em vez de cada falha. |
|
|
160
178
|
| `routingMode` | `auto` | `auto` \| `strong` \| `cheap` \| `delegated` \| `off`. |
|
|
161
179
|
|
|
162
|
-
Todas as chaves também podem ser editadas a quente pelo
|
|
163
|
-
|
|
164
|
-
|
|
180
|
+
Todas as chaves também podem ser editadas a quente pelo cartão do plugin na
|
|
181
|
+
página Plugins: o Host valida o valor novo contra o schema e o confirma com
|
|
182
|
+
`loader/volatile-update`, e este plugin então rejulga a configuração inteira com
|
|
183
|
+
o mesmo juiz de campos cruzados que usa na montagem. Um valor que viole um
|
|
184
|
+
requisito cruzado (dois tiers caindo na mesma rota, um par de histerese que não
|
|
185
|
+
freia o piscar, uma regra sem pattern nem tool) deixa a última política válida
|
|
186
|
+
roteando em vez de instalar algo inroteável.
|
|
187
|
+
|
|
188
|
+
`routingMode` é a única chave que **não** é a quente: é o padrão da composição, e
|
|
189
|
+
o interruptor em tempo de execução é a sobreposição por sessão escrita por
|
|
190
|
+
`/tier`, pela pílula do compositor e pelo seletor do cartão. Torná-la a quente
|
|
191
|
+
também daria a um mesmo comportamento dois donos.
|
|
165
192
|
|
|
166
193
|
## Ferramentas e superfícies
|
|
167
194
|
|
|
@@ -176,8 +203,9 @@ cruzado é recusada ao salvar e a última política válida continua em vigor.
|
|
|
176
203
|
|
|
177
204
|
## Permissões e dados
|
|
178
205
|
|
|
179
|
-
- **Arquivos** — o plugin não lê nem escreve
|
|
180
|
-
|
|
206
|
+
- **Arquivos** — o plugin não lê nenhum arquivo nem escreve nenhum. A
|
|
207
|
+
configuração é do Host: um valor salvo na página Plugins é persistido pelo Host
|
|
208
|
+
no patch do perfil ativo, e este plugin apenas lê o snapshot vivo que recebe.
|
|
181
209
|
- **Rede** — o único tráfego de saída é a chamada ao juiz, que passa pelo caminho
|
|
182
210
|
normal de `ctx.llm` e pelo provider configurado.
|
|
183
211
|
- **Log de sessão** — o plugin não anexa eventos de sessão próprios. O rastro de
|
|
@@ -228,7 +256,7 @@ cruzado é recusada ao salvar e a última política válida continua em vigor.
|
|
|
228
256
|
```bash
|
|
229
257
|
pnpm install
|
|
230
258
|
pnpm run typecheck # contra as faces de tipo do checkout local do harness
|
|
231
|
-
pnpm run typecheck:ci # contra as faces publicadas 0.1.
|
|
259
|
+
pnpm run typecheck:ci # contra as faces publicadas 0.1.7-alpha.1 (o que a CI executa)
|
|
232
260
|
pnpm test
|
|
233
261
|
pnpm run build
|
|
234
262
|
pnpm run verify:self-contained
|
|
@@ -255,3 +283,55 @@ PerryLink. Issues e pull requests em
|
|
|
255
283
|
|
|
256
284
|
Apache-2.0. Veja [LICENSE](./LICENSE) e
|
|
257
285
|
[THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
|
|
286
|
+
|
|
287
|
+
## PerryLink DSH Plugin Family
|
|
288
|
+
|
|
289
|
+
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
290
|
+
|
|
291
|
+
| Plugin | One-liner |
|
|
292
|
+
|---|---|
|
|
293
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
|
|
294
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
295
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | |
|
|
296
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |
|
|
297
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
298
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
299
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
|
|
300
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | |
|
|
301
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
|
|
302
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
|
|
303
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
|
|
304
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | |
|
|
305
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
|
|
306
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | |
|
|
307
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
|
|
308
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
|
|
309
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
|
|
310
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
|
|
311
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
|
|
312
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
|
|
313
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
|
|
314
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
|
|
315
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
|
|
316
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
|
|
317
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
|
|
318
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
|
|
319
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
|
|
320
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
321
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
322
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
323
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
324
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
325
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
|
|
326
|
+
| **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | |
|
|
327
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | |
|
|
328
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
329
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
330
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
|
|
331
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
|
|
332
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
|
|
333
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
|
|
334
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
335
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
336
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
|
|
337
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
package/README-zh.md
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://github.com/topics/dsh-plugin)
|
|
6
6
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
7
|
+
[](https://dsh.market/)
|
|
7
8
|
[](#)
|
|
8
9
|
[](https://github.com/PerryLink/dsh-autotier/actions)
|
|
9
10
|
[](https://github.com/PerryLink/dsh-autotier/releases)
|
|
10
11
|
|
|
12
|
+
[English](README.md) | **简体中文** | [Español](README-es.md) | [Português](README-pt.md) | [हिन्दी](README-hi.md)
|
|
13
|
+
|
|
11
14
|
DeepSeek Harness 的自动模型分档路由:一条用户指令进来,一个档位决策出去 ——
|
|
12
15
|
无需手动切换模型。
|
|
13
16
|
|
|
@@ -22,13 +25,20 @@ DeepSeek Harness 的自动模型分档路由:一条用户指令进来,一个
|
|
|
22
25
|
|
|
23
26
|
| Harness | 状态 |
|
|
24
27
|
|---|---|
|
|
25
|
-
| `@deepseek-ai/dsh` `0.1.2-rc.1` |
|
|
26
|
-
| `@deepseek-ai/dsh` `0.1.5-rc.2` |
|
|
27
|
-
| `@deepseek-ai/
|
|
28
|
+
| `@deepseek-ai/dsh` `0.1.2-rc.1` | 不再支持;该线早于本插件现在对准的 `SettingsForms` 契约 |
|
|
29
|
+
| `@deepseek-ai/dsh` `0.1.5-rc.2` | 不再支持;它所暴露的 `settings.register` / `settings/updated` 契约已被上游删除 |
|
|
30
|
+
| `@deepseek-ai/dsh` `0.1.6-alpha.2` | 不再支持;同一处删除,首个带 `SettingsForms` 的版本 |
|
|
31
|
+
| `@deepseek-ai/dsh` `0.1.7-alpha.1` | **必需**;已对同版 checkout(`typecheck`)与已发布包(`typecheck:ci`、214 项测试)双向验证 |
|
|
32
|
+
| `@deepseek-ai/cordis` `^4.0.3`、`@deepseek-ai/cosmokit` `^1.8.4`、`@deepseek-ai/schemastery` `^3.18.3` | peer 基线 |
|
|
33
|
+
|
|
34
|
+
peer 范围显式列出四条已发布线(`>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0`)——因为仅含较早版本元组预发布比较符的 semver 范围无法接纳更晚的 alpha;
|
|
35
|
+
每次发布波同步刷新。声明的范围刻意宽于已验证范围:它记录清单接受什么,而不是测过什么。
|
|
28
36
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
**本次发布是破坏性适配。** `0.1.6` 代宿主移除了本插件赖以构建的 settings **provider** 缝:
|
|
38
|
+
`@deepseek-ai/dsh-settings-file` 整包消失,`ctx.settings` 现为 `SettingsForms`
|
|
39
|
+
(schema→表单投影器,没有 `register`),`settings/updated` 亦不复存在。没有任何共享面能让一个插件观察另一个插件的设置文档,
|
|
40
|
+
因此本插件无法同时支持两种契约。配置现在走宿主的 volatile 配置机制;真正在运行时改变行为的
|
|
41
|
+
**按会话路由模式**未变。
|
|
32
42
|
|
|
33
43
|
本插件只驻留 host 平面,不需要自带 agent preset:host 行对所有会话生效。
|
|
34
44
|
在你的 preset 中加一段提示是可选项,仅用于让模型看见路由决策
|
|
@@ -113,12 +123,12 @@ dsh plugin --profile web remove dsh-autotier
|
|
|
113
123
|
| `tiers.strong.followSession` | `false` | `false` = 本档 effort 覆盖会话自身的设置。 |
|
|
114
124
|
| `tiers.strong.fallback` | `[]` | 该档不可用时的有序 provider/model 落点。 |
|
|
115
125
|
| `tiers.cheap.provider` | `deepseek-official` | 实施档的 provider。 |
|
|
116
|
-
| `tiers.cheap.model` | `deepseek-
|
|
126
|
+
| `tiers.cheap.model` | `deepseek-flash` | 弱档模型的目录 id。 |
|
|
117
127
|
| `tiers.cheap.effort` | `low` | 适配器词表 `off` \| `low` \| `high` \| `max`。 |
|
|
118
128
|
| `tiers.cheap.followSession` | `true` | `true` = 继承会话 effort,让显式选择优先。 |
|
|
119
129
|
| `tiers.cheap.fallback` | `[]` | 该档不可用时的有序 provider/model 落点。 |
|
|
120
130
|
| `tiers.vision.provider` | `deepseek-official` | 含图 turn 的 provider。 |
|
|
121
|
-
| `tiers.vision.model` | `deepseek-
|
|
131
|
+
| `tiers.vision.model` | `deepseek-flash` | 目录中唯一支持图像模态的模型。 |
|
|
122
132
|
| `intent.ruleThreshold` | `0.7` | 规则层可独立决策的置信度下限。 |
|
|
123
133
|
| `intent.attemptBand.enabled` | `false` | 中间波段:先跑弱档,出现信号再升级。 |
|
|
124
134
|
| `intent.attemptBand.tauLow` | `0.45` | attempt-first 波段的下界。 |
|
|
@@ -146,8 +156,15 @@ dsh plugin --profile web remove dsh-autotier
|
|
|
146
156
|
| `escalation.signature` | `true` | 按同签名复发计数,而非统计每次失败。 |
|
|
147
157
|
| `routingMode` | `auto` | `auto` \| `strong` \| `cheap` \| `delegated` \| `off`。 |
|
|
148
158
|
|
|
149
|
-
|
|
150
|
-
|
|
159
|
+
所有键也可在 Plugins 页的本插件卡片上热改:Host 先按 schema 校验新值,
|
|
160
|
+
再以 `loader/volatile-update` 提交;本插件随后用与挂载期同一套跨字段判据
|
|
161
|
+
重新裁决整份配置。违反跨字段要求的值(两个 tier 落在同一路由、
|
|
162
|
+
无法止住抖动的滞回对、既无 pattern 也无 tool 的规则)会让**上一份可用策略**
|
|
163
|
+
继续生效,而不是换上一个无法路由的配置。
|
|
164
|
+
|
|
165
|
+
`routingMode` 是唯一**不**热更的键:它是组合默认值,运行时开关是由
|
|
166
|
+
`/tier`、输入框胶囊与卡片选择器写入的按会话覆盖。让它同时热更
|
|
167
|
+
会让同一行为有两个归属。
|
|
151
168
|
|
|
152
169
|
## 工具与表面
|
|
153
170
|
|
|
@@ -204,7 +221,7 @@ dsh plugin --profile web remove dsh-autotier
|
|
|
204
221
|
```bash
|
|
205
222
|
pnpm install
|
|
206
223
|
pnpm run typecheck # 对照本地 harness checkout 的类型面
|
|
207
|
-
pnpm run typecheck:ci # 对照已发布的 0.1.
|
|
224
|
+
pnpm run typecheck:ci # 对照已发布的 0.1.7-alpha.1 类型面(CI 实际执行)
|
|
208
225
|
pnpm test
|
|
209
226
|
pnpm run build
|
|
210
227
|
pnpm run verify:self-contained
|
|
@@ -230,3 +247,58 @@ PerryLink。欢迎在 <https://github.com/PerryLink/dsh-autotier/issues> 提 iss
|
|
|
230
247
|
|
|
231
248
|
Apache-2.0。见 [LICENSE](./LICENSE) 与
|
|
232
249
|
[THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md)。
|
|
250
|
+
|
|
251
|
+
**适用的 DSH 版本:** 已在 `dsh-v0.1.7-alpha.1`(本构建所针对的宿主版本)上验证;要求 `>=0.1.7-alpha.1 <0.2.0`。
|
|
252
|
+
|
|
253
|
+
## PerryLink DSH Plugin Family
|
|
254
|
+
|
|
255
|
+
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
256
|
+
|
|
257
|
+
| Plugin | One-liner |
|
|
258
|
+
|---|---|
|
|
259
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
|
|
260
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
261
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | |
|
|
262
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |
|
|
263
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
264
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
265
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
|
|
266
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | |
|
|
267
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
|
|
268
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
|
|
269
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
|
|
270
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | |
|
|
271
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
|
|
272
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | |
|
|
273
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
|
|
274
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
|
|
275
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
|
|
276
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
|
|
277
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
|
|
278
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
|
|
279
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
|
|
280
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
|
|
281
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
|
|
282
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
|
|
283
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
|
|
284
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
|
|
285
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
|
|
286
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
287
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
288
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
289
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
290
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
291
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
|
|
292
|
+
| **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | |
|
|
293
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | |
|
|
294
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
295
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
296
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
|
|
297
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
|
|
298
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
|
|
299
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
|
|
300
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
301
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
302
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
|
|
303
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
304
|
+
|
package/README.md
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
# dsh-autotier
|
|
2
2
|
|
|
3
3
|
[](https://gitee.com/perrylink/dsh-autotier)
|
|
4
|
+
[](https://api.securityscorecards.dev/projects/github.com/PerryLink/dsh-autotier)
|
|
4
5
|
[](LICENSE)
|
|
5
6
|
[](https://github.com/topics/dsh-plugin)
|
|
6
7
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
8
|
+
[](https://dsh.market/)
|
|
7
9
|
[](#)
|
|
8
10
|
[](https://github.com/PerryLink/dsh-autotier/actions)
|
|
9
11
|
[](https://github.com/PerryLink/dsh-autotier/releases)
|
|
10
12
|
|
|
13
|
+
**English** | [简体中文](README-zh.md) | [Español](README-es.md) | [Português](README-pt.md) | [हिन्दी](README-hi.md)
|
|
14
|
+
|
|
11
15
|
Automatic model-tier routing for DeepSeek Harness: one user instruction enters,
|
|
12
16
|
one tier decision comes out — no manual model switching.
|
|
13
17
|
|
|
@@ -25,14 +29,27 @@ escalate to the strong tier with a TTL fallback.
|
|
|
25
29
|
|
|
26
30
|
| Harness | Status |
|
|
27
31
|
|---|---|
|
|
28
|
-
| `@deepseek-ai/dsh` `0.1.2-rc.1` |
|
|
29
|
-
| `@deepseek-ai/dsh` `0.1.5-rc.2` |
|
|
30
|
-
| `@deepseek-ai/
|
|
32
|
+
| `@deepseek-ai/dsh` `0.1.2-rc.1` | no longer supported; that line predates the `SettingsForms` contract this plugin now targets |
|
|
33
|
+
| `@deepseek-ai/dsh` `0.1.5-rc.2` | no longer supported; the `settings.register` / `settings/updated` contract it exposes was removed upstream |
|
|
34
|
+
| `@deepseek-ai/dsh` `0.1.6-alpha.2` | no longer supported; same removal, first line to ship `SettingsForms` |
|
|
35
|
+
| `@deepseek-ai/dsh` `0.1.7-alpha.1` | **required**; verified against the matching checkout (`typecheck`) and the published packages (`typecheck:ci`, 214 tests) |
|
|
36
|
+
| `@deepseek-ai/cordis` `^4.0.3`, `@deepseek-ai/cosmokit` `^1.8.4`, `@deepseek-ai/schemastery` `^3.18.3` | peer baseline |
|
|
31
37
|
|
|
32
|
-
Peer ranges name
|
|
33
|
-
>=0.1.5-alpha.1 <0.2.0`), because a semver range whose only prerelease
|
|
38
|
+
Peer ranges name all published lines explicitly (`>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0`), because a semver range whose only prerelease
|
|
34
39
|
comparator sits on an earlier version tuple does not admit a later alpha.
|
|
35
|
-
They are refreshed per published wave.
|
|
40
|
+
They are refreshed per published wave. The declared range is deliberately wider
|
|
41
|
+
than the verified one: it documents what the manifest accepts, not what has been
|
|
42
|
+
tested.
|
|
43
|
+
|
|
44
|
+
**This release is a breaking adaptation.** The `0.1.6`-generation harness
|
|
45
|
+
removed the settings *provider* seam this plugin was built on: the
|
|
46
|
+
`@deepseek-ai/dsh-settings-file` package is gone, `ctx.settings` is now
|
|
47
|
+
`SettingsForms` (a schema→form projector, with no `register`), and
|
|
48
|
+
`settings/updated` no longer exists. There is no shared surface that lets one
|
|
49
|
+
plugin observe another plugin's settings document, so no version of this plugin
|
|
50
|
+
can support both contracts at once. Configuration now flows through the host's
|
|
51
|
+
volatile-config mechanism, and the per-session routing mode — the setting that
|
|
52
|
+
actually changes behaviour at runtime — is unchanged.
|
|
36
53
|
|
|
37
54
|
The plugin is host-plane only. It needs no agent preset of its own: the host
|
|
38
55
|
row applies to every session. A one-line prompt section in *your* preset is
|
|
@@ -66,6 +83,7 @@ optional and only makes the router's decisions visible to the model (see
|
|
|
66
83
|
## Quick start
|
|
67
84
|
|
|
68
85
|
```bash
|
|
86
|
+
dsh plugin --profile web add dsh-autotier
|
|
69
87
|
npm i -g dsh1024
|
|
70
88
|
dsh1024 plugin --profile web add dsh-autotier
|
|
71
89
|
```
|
|
@@ -78,6 +96,7 @@ Then start (or restart) the harness. The row is appended to your profile's
|
|
|
78
96
|
**npm channel**
|
|
79
97
|
|
|
80
98
|
```bash
|
|
99
|
+
dsh plugin --profile web add dsh-autotier
|
|
81
100
|
npm i -g dsh1024
|
|
82
101
|
dsh1024 plugin --profile web add dsh-autotier
|
|
83
102
|
```
|
|
@@ -85,6 +104,7 @@ dsh1024 plugin --profile web add dsh-autotier
|
|
|
85
104
|
**git channel**
|
|
86
105
|
|
|
87
106
|
```bash
|
|
107
|
+
dsh plugin --profile web add "github:PerryLink/dsh-autotier#main"
|
|
88
108
|
git clone https://github.com/PerryLink/dsh-autotier.git
|
|
89
109
|
cd dsh-autotier && pnpm install && pnpm run build
|
|
90
110
|
dsh plugin --profile web add .
|
|
@@ -107,8 +127,10 @@ model know which tier it is running on, add one row to *your* agent preset
|
|
|
107
127
|
dsh plugin --profile web remove dsh-autotier
|
|
108
128
|
```
|
|
109
129
|
|
|
110
|
-
The row, its
|
|
111
|
-
|
|
130
|
+
The row, its command, its tools and its listeners are all removed with the
|
|
131
|
+
plugin. Configuration a user saved through the Plugins page lives in the active
|
|
132
|
+
profile patch and belongs to that profile, not to this plugin; removing the row
|
|
133
|
+
leaves it there untouched.
|
|
112
134
|
|
|
113
135
|
## Configuration
|
|
114
136
|
|
|
@@ -124,12 +146,12 @@ same keys inline.
|
|
|
124
146
|
| `tiers.strong.followSession` | `false` | `false` = this tier's effort overrides the session's. |
|
|
125
147
|
| `tiers.strong.fallback` | `[]` | Ordered provider/model landings when the tier is unavailable. |
|
|
126
148
|
| `tiers.cheap.provider` | `deepseek-official` | Provider for the implementation tier. |
|
|
127
|
-
| `tiers.cheap.model` | `deepseek-
|
|
149
|
+
| `tiers.cheap.model` | `deepseek-flash` | Catalog id of the cheap model. |
|
|
128
150
|
| `tiers.cheap.effort` | `low` | Adapter vocabulary `off` \| `low` \| `high` \| `max`. |
|
|
129
151
|
| `tiers.cheap.followSession` | `true` | `true` = inherit the session's effort so an explicit choice wins. |
|
|
130
152
|
| `tiers.cheap.fallback` | `[]` | Ordered provider/model landings when the tier is unavailable. |
|
|
131
153
|
| `tiers.vision.provider` | `deepseek-official` | Provider for image-carrying turns. |
|
|
132
|
-
| `tiers.vision.model` | `deepseek-
|
|
154
|
+
| `tiers.vision.model` | `deepseek-flash` | The catalog's image-capable model. |
|
|
133
155
|
| `intent.ruleThreshold` | `0.7` | Confidence at or above which the rule layer decides alone. |
|
|
134
156
|
| `intent.attemptBand.enabled` | `false` | Start the middle band on the cheap tier and escalate on a signal. |
|
|
135
157
|
| `intent.attemptBand.tauLow` | `0.45` | Lower bound of the attempt-first band. |
|
|
@@ -157,9 +179,18 @@ same keys inline.
|
|
|
157
179
|
| `escalation.signature` | `true` | Count same-signature recurrences instead of every failure. |
|
|
158
180
|
| `routingMode` | `auto` | `auto` \| `strong` \| `cheap` \| `delegated` \| `off`. |
|
|
159
181
|
|
|
160
|
-
All keys can also be edited live from the
|
|
161
|
-
|
|
162
|
-
|
|
182
|
+
All keys can also be edited live from the plugin's card on the Plugins page; the
|
|
183
|
+
Host validates the new value against the schema and commits it with
|
|
184
|
+
`loader/volatile-update`, and this plugin then re-judges the whole configuration
|
|
185
|
+
through the same cross-field judge the mount path uses. A value that violates a
|
|
186
|
+
cross-field requirement (two tiers landing on the same route, a hysteresis pair
|
|
187
|
+
that cannot stop flapping, a rule with neither a pattern nor a tool) leaves the
|
|
188
|
+
last good policy routing instead of swapping in something unroutable.
|
|
189
|
+
|
|
190
|
+
`routingMode` is the one key that is **not** live: it is the composition
|
|
191
|
+
default, and the runtime switch is the session-scoped override written by
|
|
192
|
+
`/tier`, the composer pill and the card's selector. Making it live as well would
|
|
193
|
+
give the same behaviour two owners.
|
|
163
194
|
|
|
164
195
|
## Tools & surfaces
|
|
165
196
|
|
|
@@ -174,8 +205,10 @@ refused at save time and the last good policy stays in effect.
|
|
|
174
205
|
|
|
175
206
|
## Permissions & data
|
|
176
207
|
|
|
177
|
-
- **Files** — the plugin reads
|
|
178
|
-
|
|
208
|
+
- **Files** — the plugin reads no file and writes none. Configuration is the
|
|
209
|
+
host's: a value saved on the Plugins page is persisted by the Host into the
|
|
210
|
+
active profile patch, and this plugin only reads the live snapshot it is
|
|
211
|
+
handed.
|
|
179
212
|
- **Network** — the only outbound traffic is the judge call, which goes through
|
|
180
213
|
the normal `ctx.llm` path and the configured provider.
|
|
181
214
|
- **Session log** — the plugin appends no custom session events. The routing
|
|
@@ -228,7 +261,7 @@ refused at save time and the last good policy stays in effect.
|
|
|
228
261
|
```bash
|
|
229
262
|
pnpm install
|
|
230
263
|
pnpm run typecheck # against the local harness checkout type faces
|
|
231
|
-
pnpm run typecheck:ci # against the published 0.1.
|
|
264
|
+
pnpm run typecheck:ci # against the published 0.1.7-alpha.1 faces (what CI runs)
|
|
232
265
|
pnpm test
|
|
233
266
|
pnpm run build
|
|
234
267
|
pnpm run verify:self-contained
|
|
@@ -238,8 +271,12 @@ pnpm pack
|
|
|
238
271
|
|
|
239
272
|
`pnpm run build` emits `lib/types` (tsc declarations) and `lib/index.js`
|
|
240
273
|
(tsdown bundle). Tests use the published host packages directly — real
|
|
241
|
-
`Context`, real session/tools/commands
|
|
242
|
-
composition over a temporary `cordis.yml`.
|
|
274
|
+
`Context`, real session/tools/commands services — plus one real Loader
|
|
275
|
+
composition over a temporary `cordis.yml`. The `settings` service is the one
|
|
276
|
+
stand-in: the host's real `SettingsForms` binds to `configEditor`,
|
|
277
|
+
`profileContext` and the Loader's fiber graph, none of which this plugin
|
|
278
|
+
consumes, while the plugin's whole contract with it is `configure({ auto })`
|
|
279
|
+
plus the Loader's `loader/volatile-update` event.
|
|
243
280
|
|
|
244
281
|
## Topics
|
|
245
282
|
|
|
@@ -251,6 +288,61 @@ composition over a temporary `cordis.yml`.
|
|
|
251
288
|
PerryLink. Issues and pull requests are welcome at
|
|
252
289
|
<https://github.com/PerryLink/dsh-autotier/issues>.
|
|
253
290
|
|
|
291
|
+
**Applicable DSH version:** verified against `dsh-v0.1.7-alpha.1` (the host release this build targets); requires `>=0.1.7-alpha.1 <0.2.0`.
|
|
292
|
+
|
|
293
|
+
## PerryLink DSH Plugin Family
|
|
294
|
+
|
|
295
|
+
This project is one of the **45 DeepSeek Harness plugins** maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
296
|
+
|
|
297
|
+
| Plugin | One-liner |
|
|
298
|
+
|---|---|
|
|
299
|
+
| **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
|
|
300
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
301
|
+
| **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | |
|
|
302
|
+
| **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |
|
|
303
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
304
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
305
|
+
| **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
|
|
306
|
+
| **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | |
|
|
307
|
+
| **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
|
|
308
|
+
| **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
|
|
309
|
+
| **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
|
|
310
|
+
| **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | |
|
|
311
|
+
| **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
|
|
312
|
+
| **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | |
|
|
313
|
+
| **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
|
|
314
|
+
| **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
|
|
315
|
+
| **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
|
|
316
|
+
| **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
|
|
317
|
+
| **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
|
|
318
|
+
| **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
|
|
319
|
+
| **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
|
|
320
|
+
| **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
|
|
321
|
+
| **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
|
|
322
|
+
| **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
|
|
323
|
+
| **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
|
|
324
|
+
| **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
|
|
325
|
+
| **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
|
|
326
|
+
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
327
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
328
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
329
|
+
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
330
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
331
|
+
| **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
|
|
332
|
+
| **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | |
|
|
333
|
+
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | |
|
|
334
|
+
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
335
|
+
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
336
|
+
| **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | |
|
|
337
|
+
| **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
|
|
338
|
+
| **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
|
|
339
|
+
| **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
|
|
340
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
341
|
+
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
342
|
+
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
|
|
343
|
+
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
344
|
+
|
|
345
|
+
|
|
254
346
|
## License
|
|
255
347
|
|
|
256
348
|
Apache-2.0. See [LICENSE](./LICENSE) and
|
package/cordis.patch.yml
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
# The implementation tier.
|
|
32
32
|
cheap:
|
|
33
33
|
provider: deepseek-official
|
|
34
|
-
model: deepseek-
|
|
34
|
+
model: deepseek-flash
|
|
35
35
|
effort: low
|
|
36
36
|
# true = inherit the session's effort, so an explicit user choice
|
|
37
37
|
# still wins inside the cheap tier.
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
# because a text-only model silently substitutes image placeholders.
|
|
42
42
|
vision:
|
|
43
43
|
provider: deepseek-official
|
|
44
|
-
model: deepseek-
|
|
44
|
+
model: deepseek-flash
|
|
45
45
|
# ---- intent classification -----------------------------------------
|
|
46
46
|
intent:
|
|
47
47
|
# Confidence at or above which the deterministic rule layer decides
|