dsh-doublecheck 0.9.29 → 0.9.30

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +0 -0
  3. package/PRIVACY.md +11 -0
  4. package/README-es.md +53 -6
  5. package/README-hi.md +53 -6
  6. package/README-pt.md +53 -6
  7. package/README-zh.md +53 -6
  8. package/README.md +54 -8
  9. package/cordis.patch.yml +0 -0
  10. package/icon.svg +1 -0
  11. package/lib/ci.d.ts +0 -0
  12. package/lib/ci.js +0 -0
  13. package/lib/domain/evidence.d.ts +7 -6
  14. package/lib/domain/evidence.js +15 -21
  15. package/lib/domain/gate.d.ts +0 -0
  16. package/lib/domain/gate.js +0 -0
  17. package/lib/domain/projection.d.ts +0 -0
  18. package/lib/domain/projection.js +0 -0
  19. package/lib/domain/report.d.ts +0 -0
  20. package/lib/domain/report.js +0 -0
  21. package/lib/domain/stages.d.ts +0 -0
  22. package/lib/domain/stages.js +0 -0
  23. package/lib/domain/vagueness.d.ts +0 -0
  24. package/lib/domain/vagueness.js +0 -0
  25. package/lib/domain/vocabulary.d.ts +0 -0
  26. package/lib/domain/vocabulary.js +0 -0
  27. package/lib/events.d.ts +0 -0
  28. package/lib/events.js +0 -0
  29. package/lib/grill/index.d.ts +0 -0
  30. package/lib/grill/index.js +0 -0
  31. package/lib/grill/provider.d.ts +0 -0
  32. package/lib/grill/provider.js +0 -0
  33. package/lib/guard/activation.d.ts +0 -0
  34. package/lib/guard/activation.js +0 -0
  35. package/lib/guard/command.d.ts +0 -0
  36. package/lib/guard/command.js +0 -0
  37. package/lib/guard/gate.d.ts +0 -0
  38. package/lib/guard/gate.js +0 -0
  39. package/lib/guard/index.d.ts +0 -0
  40. package/lib/guard/index.js +30 -25
  41. package/lib/guard/prose.d.ts +0 -0
  42. package/lib/guard/prose.js +0 -0
  43. package/lib/guard/review.d.ts +0 -0
  44. package/lib/guard/review.js +0 -0
  45. package/lib/index.d.ts +0 -0
  46. package/lib/index.js +0 -0
  47. package/lib/invariant.d.ts +0 -0
  48. package/lib/invariant.js +0 -0
  49. package/lib/session-events.d.ts +0 -0
  50. package/lib/session-events.js +0 -0
  51. package/lib/types.d.ts +0 -0
  52. package/lib/types.js +0 -0
  53. package/package.json +38 -29
  54. package/skills/delivery-proof/SKILL.md +0 -0
  55. package/skills/delivery-review/SKILL.md +0 -0
  56. package/skills/grill-requirements/SKILL.md +0 -0
  57. package/skills/red-green-tdd/SKILL.md +0 -0
  58. package/strict.patch.yml +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.30] - 2026-11-05
4
+
5
+ ### Changed
6
+
7
+ - Align with the DSH **0.2.2** host line. Every `@deepseek-ai/dsh-*` devDependency that publishes a 0.2.2 release moves from `0.2.1-rc.2` to `0.2.2-rc.1`; `@deepseek-ai/dsh-invariants` stays at `0.2.0-rc.2` because that package has no 0.2.2 release. The cordis family moves to the vendors of 0.2.2 (`^4.1.0` / `^1.1.0`), `@deepseek-ai/schemastery` moves to `~3.19.0`, and `@deepseek-ai/dsh-package-manifest@0.2.2-rc.1` joins the devDependencies (0.2.2's published `dsh-llm` types import it without declaring it). `engines.dsh` gains the `>=0.2.2-0 <0.3.0` clause and `engines.node` gains the `>=24.9.0` clause. Peer ranges only widen: no host line is dropped, and the cordis/schemastery peer ranges stay at their old loose values.
8
+ - Add `@deepseek-ai/dsh-tool-executor-native@0.2.2-rc.1` as a devDependency. 0.2.2 moved raw batch execution behind a pluggable executor, so the test harnesses mount it after `ToolRuntime`.
9
+
10
+ ### Fixed
11
+
12
+ - `ctx.tools.execute()` in the grill and guard test harnesses uses the 0.2.2 batch contract (`calls: [{ type: 'tool-call', … }]` plus `signal`/`agent`, settling through `batch.results[0].result`). The batch-level `additionalContexts` is asserted where the removed single-call field used to carry it.
13
+ - The `doublecheck` session projection awaits the now-asynchronous `ctx.sessionProjections.register()` inside its effect, holds the returned handle, and releases it with `handle.dispose()` on unload. A new regression test mounts the REAL 0.2.2 registry and proves the key goes live and disappears on dispose.
14
+ - `ptcSettle()` matches both `tool/ptc-dispatch` and its predecessor `tool/code-dispatch` structurally. The 0.2.2 tools contract retires the typed PTC event while persistence still recognizes both labels, so a restored pre-upgrade log keeps folding.
15
+
3
16
  ## [0.9.29] - 2026-10-19
4
17
 
5
18
  ### Fixed
package/LICENSE CHANGED
File without changes
package/PRIVACY.md ADDED
@@ -0,0 +1,11 @@
1
+ # Privacy
2
+
3
+ `dsh-doublecheck` is a local DeepSeek Harness plugin.
4
+
5
+ - It reads only the workspace files, configuration and tool inputs needed for its documented features.
6
+ - It does not add telemetry, analytics, advertising or a hosted account, and it sends no data to PerryLink.
7
+ - Any network access or external service used by the plugin is documented in its README and is controlled by the user's own configuration.
8
+ - It writes no data outside the DSH profile, the workspace, and the host's own session/log storage. The host controls that storage and its retention.
9
+ - Removing the package removes its code; it does not delete host logs, workspace files or documents you already created.
10
+
11
+ This statement covers the npm package, not the DSH host or any other plugin in the profile.
package/README-es.md CHANGED
@@ -55,9 +55,10 @@ La puerta de calidad de entrega para DeepSeek Harness: interroga los requisitos,
55
55
 
56
56
  Los requisitos se interrogan antes de la primera edición; la entrega se demuestra, nunca se afirma.
57
57
 
58
- ![Demostración de terminal de dsh-doublecheck: dsh-doublecheck — /gate report (example block from the README)](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-hero.png)
58
+ ![Diagrama de flujo de dsh-doublecheck: solicitud → política/revisión → veredicto.](docs/assets/dsh-doublecheck-flow.svg)
59
+
60
+ *Resumen del flujo: solicitud → política/revisión → veredicto. Los ejemplos siguientes usan la superficie de comandos real.*
59
61
 
60
- ![Animated terminal demo of dsh-doublecheck](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-demo.gif)
61
62
 
62
63
  *La misma ejecución, animada.*
63
64
 
@@ -65,8 +66,8 @@ Los requisitos se interrogan antes de la primera edición; la entrega se demuest
65
66
 
66
67
  | Superficie | Estado |
67
68
  |---|---|
68
- | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (verified 2026-10-18): `engines.dsh >=0.2.1-0 <0.3.0`; the gate and projection paths are covered by the rc.2 test suite. |
69
- | Node | `^22.19.0 \|\| >=24.0.0` |
69
+ | Harness | DeepSeek Harness `dsh-v0.2.2-rc.1` (adapted 2026-11-05): `engines.dsh` gains `>=0.2.2-0 <0.3.0` (every earlier line stays admitted); the gate and projection paths are covered by the rc.1 test suite. |
70
+ | Node | `^22.19.0 \|\| >=24.9.0` |
70
71
  | Plataformas | Todas (host puro; sin código nativo, sin solicitudes de red directas propias) |
71
72
  | Modelo | Cualquiera (el guard nunca llama a un modelo; las fases de crítico y revisor se ejecutan como subagentes del harness) |
72
73
 
@@ -114,6 +115,50 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
114
115
 
115
116
  Ambas filas (`doublecheck-grill` y `doublecheck-guard`) se activan automáticamente con el perfil.
116
117
 
118
+ ### Ejemplos
119
+
120
+ Son los puntos de entrada reales; instala y llama a uno.
121
+
122
+ #### Ejemplo detallado
123
+
124
+ **Comando**
125
+
126
+ ~~~sh
127
+ /gate run
128
+ ~~~
129
+
130
+ **Salida**
131
+
132
+ ~~~text
133
+ # Delivery gate report
134
+
135
+ > **Verdict: rework required** — 2 red item(s)
136
+ > The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
137
+ ~~~
138
+
139
+ *Observado en `README.md §Example report (lines 243-251)`*
140
+
141
+ #### Rama de fallo
142
+
143
+ **Entrada**
144
+
145
+ ~~~text
146
+ /doublecheck maybe
147
+ ~~~
148
+
149
+ **Salida**
150
+
151
+ ~~~text
152
+ Unknown /doublecheck argument "maybe". Usage: /doublecheck status|report|on|off
153
+ ~~~
154
+
155
+ *Observado en `plugins/dsh-doublecheck/src/guard/prose.ts:191-192; plugins/dsh-doublecheck/src/guard/command.ts:156; plugins/dsh-doublecheck/tests/command.spec.ts:201-208`*
156
+
157
+ #### Ejemplos breves
158
+
159
+ - `doublecheck_skills`
160
+ - `doublecheck_spec`
161
+
117
162
  ## Configuración
118
163
 
119
164
  Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.yml). Una sobrescritura dirigida por id reemplaza la fila completa — vuelve a declarar cada clave que necesites. `cordis.patch.yml` documenta cada clave en línea; los valores por defecto del Schema son la única fuente de los valores de ajuste.
@@ -339,7 +384,7 @@ Este plugin **no interfiere** con otros plugins, incluidos los de más estrellas
339
384
 
340
385
  Evidencia estática: `dsh-plugin-doctor` K10–K13 dan `pass` en todas las comprobaciones de este repositorio.
341
386
 
342
- ## Familia de plugins DSH de PerryLink
387
+ ## PerryLink DSH Plugin Family
343
388
 
344
389
  Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [PerryLink](https://github.com/PerryLink). El registro permanece plegado abajo para que cada README conserve una primera pantalla corta; expándelo para ver cada fila y su estado.
345
390
 
@@ -444,6 +489,8 @@ Este proyecto forma parte de la familia de plugins de DeepSeek Harness de [Perry
444
489
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver el README del repositorio |
445
490
  | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver el README del repositorio |
446
491
 
447
- </details>## Licencia
492
+ </details>
493
+
494
+ ## Licencia
448
495
 
449
496
  [Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
package/README-hi.md CHANGED
@@ -55,9 +55,10 @@ DeepSeek Harness के लिए डिलीवरी गुणवत्ता
55
55
 
56
56
  पहली एडिट से पहले आवश्यकताओं की पड़ताल होती है; डिलीवरी साबित की जाती है, दावा नहीं किया जाता।
57
57
 
58
- ![dsh-doublecheck का टर्मिनल डेमो: dsh-doublecheck — /gate report (example block from the README)](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-hero.png)
58
+ ![dsh-doublecheck कार्यप्रवाह आरेख: अनुरोध → नीति/समीक्षा → निर्णय।](docs/assets/dsh-doublecheck-flow.svg)
59
+
60
+ *कार्यप्रवाह: अनुरोध → नीति/समीक्षा → निर्णय। नीचे के उदाहरण वास्तविक कमांड सतह का उपयोग करते हैं।*
59
61
 
60
- ![Animated terminal demo of dsh-doublecheck](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-demo.gif)
61
62
 
62
63
  *वही रन, एनिमेटेड।*
63
64
 
@@ -65,8 +66,8 @@ DeepSeek Harness के लिए डिलीवरी गुणवत्ता
65
66
 
66
67
  | सतह | स्थिति |
67
68
  |---|---|
68
- | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (verified 2026-10-18): `engines.dsh >=0.2.1-0 <0.3.0`; the gate and projection paths are covered by the rc.2 test suite. |
69
- | Node | `^22.19.0 \|\| >=24.0.0` |
69
+ | Harness | DeepSeek Harness `dsh-v0.2.2-rc.1` (adapted 2026-11-05): `engines.dsh` gains `>=0.2.2-0 <0.3.0` (every earlier line stays admitted); the gate and projection paths are covered by the rc.1 test suite. |
70
+ | Node | `^22.19.0 \|\| >=24.9.0` |
70
71
  | प्लेटफ़ॉर्म | सभी (शुद्ध host; कोई नेटिव कोड नहीं, स्वयं का कोई सीधा नेटवर्क अनुरोध नहीं) |
71
72
  | मॉडल | कोई भी (guard स्वयं कभी मॉडल नहीं बुलाता; critic और reviewer चरण harness subagent के रूप में चलते हैं) |
72
73
 
@@ -114,6 +115,50 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
114
115
 
115
116
  दोनों पंक्तियाँ (`doublecheck-grill` और `doublecheck-guard`) प्रोफ़ाइल के साथ स्वतः सक्रिय हो जाती हैं।
116
117
 
118
+ ### उदाहरण
119
+
120
+ ये वास्तविक प्रवेश बिंदु हैं; इंस्टॉल के बाद एक चलाएँ।
121
+
122
+ #### विस्तृत उदाहरण
123
+
124
+ **कमांड**
125
+
126
+ ~~~sh
127
+ /gate run
128
+ ~~~
129
+
130
+ **आउटपुट**
131
+
132
+ ~~~text
133
+ # Delivery gate report
134
+
135
+ > **Verdict: rework required** — 2 red item(s)
136
+ > The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
137
+ ~~~
138
+
139
+ *स्रोत `README.md §Example report (lines 243-251)`*
140
+
141
+ #### विफलता शाखा
142
+
143
+ **इनपुट**
144
+
145
+ ~~~text
146
+ /doublecheck maybe
147
+ ~~~
148
+
149
+ **आउटपुट**
150
+
151
+ ~~~text
152
+ Unknown /doublecheck argument "maybe". Usage: /doublecheck status|report|on|off
153
+ ~~~
154
+
155
+ *स्रोत `plugins/dsh-doublecheck/src/guard/prose.ts:191-192; plugins/dsh-doublecheck/src/guard/command.ts:156; plugins/dsh-doublecheck/tests/command.spec.ts:201-208`*
156
+
157
+ #### संक्षिप्त उदाहरण
158
+
159
+ - `doublecheck_skills`
160
+ - `doublecheck_spec`
161
+
117
162
  ## कॉन्फ़िगरेशन
118
163
 
119
164
  सभी ट्यून करने योग्य चीज़ें Schemastery `Config` फ़ील्ड हैं (cordis.yml से बदलने योग्य)। id-लक्षित ओवरराइड पूरी पंक्ति बदल देता है — आपको जो भी कुंजी चाहिए उसे दोबारा घोषित करें। `cordis.patch.yml` हर कुंजी को इनलाइन दस्तावेज़ित करता है; Schema डिफ़ॉल्ट ही ट्यूनिंग डिफ़ॉल्ट का एकमात्र स्रोत हैं।
@@ -339,7 +384,7 @@ pnpm run pack:check # build + pack the tarball
339
384
 
340
385
  स्थैतिक प्रमाण: इस रिपॉज़िटरी पर `dsh-plugin-doctor` के K10–K13 सभी `pass` हैं।
341
386
 
342
- ## PerryLink DSH प्लगइन परिवार
387
+ ## PerryLink DSH Plugin Family
343
388
 
344
389
  यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) के DeepSeek Harness प्लगइन परिवार का हिस्सा है। पूरी सूची नीचे संक्षिप्त रखी गई है ताकि हर README की पहली स्क्रीन छोटी रहे; हर पंक्ति और उसकी स्थिति देखने के लिए इसे खोलें।
345
390
 
@@ -444,6 +489,8 @@ pnpm run pack:check # build + pack the tarball
444
489
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 सेवानिवृत्त — रिपॉज़िटरी README देखें |
445
490
  | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 सेवानिवृत्त — रिपॉज़िटरी README देखें |
446
491
 
447
- </details>## लाइसेंस
492
+ </details>
493
+
494
+ ## लाइसेंस
448
495
 
449
496
  [Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
package/README-pt.md CHANGED
@@ -46,9 +46,10 @@ O portão de qualidade de entrega para o DeepSeek Harness: interrogue os requisi
46
46
 
47
47
  Os requisitos são interrogados antes da primeira edição; a entrega é comprovada, nunca afirmada.
48
48
 
49
- ![Demonstração de terminal do dsh-doublecheck: dsh-doublecheck — /gate report (example block from the README)](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-hero.png)
49
+ ![Diagrama de fluxo de dsh-doublecheck: solicitação → política/revisão → veredito.](docs/assets/dsh-doublecheck-flow.svg)
50
+
51
+ *Visão geral do fluxo: solicitação → política/revisão → veredito. Os exemplos abaixo usam a superfície real de comandos.*
50
52
 
51
- ![Animated terminal demo of dsh-doublecheck](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-demo.gif)
52
53
 
53
54
  *A mesma execução, animada.*
54
55
 
@@ -56,8 +57,8 @@ Os requisitos são interrogados antes da primeira edição; a entrega é comprov
56
57
 
57
58
  | Superfície | Status |
58
59
  |---|---|
59
- | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (verified 2026-10-18): `engines.dsh >=0.2.1-0 <0.3.0`; the gate and projection paths are covered by the rc.2 test suite. |
60
- | Node | `^22.19.0 \|\| >=24.0.0` |
60
+ | Harness | DeepSeek Harness `dsh-v0.2.2-rc.1` (adapted 2026-11-05): `engines.dsh` gains `>=0.2.2-0 <0.3.0` (every earlier line stays admitted); the gate and projection paths are covered by the rc.1 test suite. |
61
+ | Node | `^22.19.0 \|\| >=24.9.0` |
61
62
  | Plataformas | Todas (host puro; sem código nativo, sem requisições de rede diretas próprias) |
62
63
  | Modelo | Qualquer (o guard nunca chama um modelo; as fases de crítico e revisor rodam como subagentes do harness) |
63
64
 
@@ -114,6 +115,50 @@ Ambas as linhas (`doublecheck-grill` e `doublecheck-guard`) são ativadas automa
114
115
 
115
116
  Para um modo estrito sem configuração (cada portão ativo com intensidade `block`, cobertura do portão exigida), aplique a camada de sobreposição incluída sobre o patch do bundle: `dsh --profile web --patch ./node_modules/dsh-doublecheck/strict.patch.yml`.
116
117
 
118
+ ### Exemplos
119
+
120
+ São os pontos de entrada reais; instale e chame um.
121
+
122
+ #### Exemplo detalhado
123
+
124
+ **Comando**
125
+
126
+ ~~~sh
127
+ /gate run
128
+ ~~~
129
+
130
+ **Saída**
131
+
132
+ ~~~text
133
+ # Delivery gate report
134
+
135
+ > **Verdict: rework required** — 2 red item(s)
136
+ > The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
137
+ ~~~
138
+
139
+ *Observado em `README.md §Example report (lines 243-251)`*
140
+
141
+ #### Ramo de falha
142
+
143
+ **Entrada**
144
+
145
+ ~~~text
146
+ /doublecheck maybe
147
+ ~~~
148
+
149
+ **Saída**
150
+
151
+ ~~~text
152
+ Unknown /doublecheck argument "maybe". Usage: /doublecheck status|report|on|off
153
+ ~~~
154
+
155
+ *Observado em `plugins/dsh-doublecheck/src/guard/prose.ts:191-192; plugins/dsh-doublecheck/src/guard/command.ts:156; plugins/dsh-doublecheck/tests/command.spec.ts:201-208`*
156
+
157
+ #### Exemplos breves
158
+
159
+ - `doublecheck_skills`
160
+ - `doublecheck_spec`
161
+
117
162
  ## Configuração
118
163
 
119
164
  Todos os ajustes são campos `Config` do Schemastery (alteráveis a partir do cordis.yml). Uma sobrescrita direcionada por id substitui a linha inteira — redeclare cada chave de que você precisa. `cordis.patch.yml` documenta cada chave inline; os padrões do Schema são a única fonte dos padrões de ajuste.
@@ -339,7 +384,7 @@ Este plugin **não interfere** em outros plugins, incluindo os de mais estrelas:
339
384
 
340
385
  Evidência estática: `dsh-plugin-doctor` K10–K13 retornam `pass` em todas as verificações deste repositório.
341
386
 
342
- ## Família de plugins DSH da PerryLink
387
+ ## PerryLink DSH Plugin Family
343
388
 
344
389
  Este projeto faz parte da família de plugins do DeepSeek Harness da [PerryLink](https://github.com/PerryLink). O registro fica recolhido abaixo para que cada README mantenha uma primeira tela curta; expanda para ver cada linha e seu status.
345
390
 
@@ -444,6 +489,8 @@ Este projeto faz parte da família de plugins do DeepSeek Harness da [PerryLink]
444
489
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRADO — ver o README do repositório |
445
490
  | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRADO — ver o README do repositório |
446
491
 
447
- </details>## Licença
492
+ </details>
493
+
494
+ ## Licença
448
495
 
449
496
  [Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
package/README-zh.md CHANGED
@@ -46,9 +46,10 @@ DeepSeek Harness 的交付质量门禁:先拷问需求,再测试实现,最
46
46
 
47
47
  需求在第一次改动之前就被拷问清楚;交付是被证明的,而不是被口头宣称的。
48
48
 
49
- ![dsh-doublecheck 终端演示:dsh-doublecheck — /gate report (example block from the README)](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-hero.png)
49
+ ![dsh-doublecheck 工作流图:请求 → 策略/复核 → 判定。](docs/assets/dsh-doublecheck-flow.svg)
50
+
51
+ *工作流概览:请求 → 策略/复核 → 判定。下面的示例使用实际命令面。*
50
52
 
51
- ![Animated terminal demo of dsh-doublecheck](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-demo.gif)
52
53
 
53
54
  *同一次运行,动图版。*
54
55
 
@@ -56,8 +57,8 @@ DeepSeek Harness 的交付质量门禁:先拷问需求,再测试实现,最
56
57
 
57
58
  | 方面 | 状态 |
58
59
  |---|---|
59
- | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (verified 2026-10-18): `engines.dsh >=0.2.1-0 <0.3.0`; the gate and projection paths are covered by the rc.2 test suite. |
60
- | Node | `^22.19.0 \|\| >=24.0.0` |
60
+ | Harness | DeepSeek Harness `dsh-v0.2.2-rc.1` (adapted 2026-11-05): `engines.dsh` gains `>=0.2.2-0 <0.3.0` (every earlier line stays admitted); the gate and projection paths are covered by the rc.1 test suite. |
61
+ | Node | `^22.19.0 \|\| >=24.9.0` |
61
62
  | 平台 | 全部(纯宿主;无原生代码,自身无直接网络请求) |
62
63
  | 模型 | 任意(守卫本身从不调用模型;评审与批评阶段作为宿主 subagent 运行) |
63
64
 
@@ -114,6 +115,50 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
114
115
 
115
116
  如需零配置的严格模式(每个门禁都以 `block` 强度开启、要求门禁覆盖率),在捆绑补丁之上应用随附的覆盖层:`dsh --profile web --patch ./node_modules/dsh-doublecheck/strict.patch.yml`。
116
117
 
118
+ ### 示例
119
+
120
+ 以下为插件真实入口;安装后调用一个即可。
121
+
122
+ #### 详细示例
123
+
124
+ **命令**
125
+
126
+ ~~~sh
127
+ /gate run
128
+ ~~~
129
+
130
+ **输出**
131
+
132
+ ~~~text
133
+ # Delivery gate report
134
+
135
+ > **Verdict: rework required** — 2 red item(s)
136
+ > The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
137
+ ~~~
138
+
139
+ *来源 `README.md §Example report (lines 243-251)`*
140
+
141
+ #### 失败分支
142
+
143
+ **输入**
144
+
145
+ ~~~text
146
+ /doublecheck maybe
147
+ ~~~
148
+
149
+ **输出**
150
+
151
+ ~~~text
152
+ Unknown /doublecheck argument "maybe". Usage: /doublecheck status|report|on|off
153
+ ~~~
154
+
155
+ *来源 `plugins/dsh-doublecheck/src/guard/prose.ts:191-192; plugins/dsh-doublecheck/src/guard/command.ts:156; plugins/dsh-doublecheck/tests/command.spec.ts:201-208`*
156
+
157
+ #### 简短示例
158
+
159
+ - `doublecheck_skills`
160
+ - `doublecheck_spec`
161
+
117
162
  ## 配置
118
163
 
119
164
  所有可调项都是 Schemastery 的 `Config` 字段(可在 cordis.yml 中修改)。按 id 定位的覆盖会替换整行——请重新声明你需要的每一个键。`cordis.patch.yml` 逐键内联说明;Schema 默认值是调优默认值的唯一来源。
@@ -339,7 +384,7 @@ pnpm run pack:check # build + pack the tarball
339
384
 
340
385
  静态证据:`dsh-plugin-doctor` 的 K10–K13 在本仓全部为 `pass`。
341
386
 
342
- ## PerryLink DSH 插件家族
387
+ ## PerryLink DSH Plugin Family
343
388
 
344
389
  本项目是 [PerryLink](https://github.com/PerryLink) 维护的 DeepSeek Harness 插件家族成员。完整名单默认折叠,避免每个 README 的首屏被长表淹没;点击展开可查看每一行及其状态。
345
390
 
@@ -444,6 +489,8 @@ pnpm run pack:check # build + pack the tarball
444
489
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 已退役 — 见仓库 README |
445
490
  | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 已退役 — 见仓库 README |
446
491
 
447
- </details>## 许可证
492
+ </details>
493
+
494
+ ## 许可证
448
495
 
449
496
  [Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
package/README.md CHANGED
@@ -56,18 +56,18 @@ The delivery quality gate for DeepSeek Harness: grill the requirements, test the
56
56
 
57
57
  Requirements get interrogated before the first edit; delivery is proven, never claimed.
58
58
 
59
- ![Terminal demo of dsh-doublecheck: dsh-doublecheck — /gate report (example block from the README)](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-hero.png)
59
+ ![Workflow diagram for dsh-doublecheck: request → policy / review → verdict.](docs/assets/dsh-doublecheck-flow.svg)
60
+
61
+ *Workflow overview: request → policy / review → verdict. The examples below use the real command surface.*
60
62
 
61
- ![Animated terminal demo of dsh-doublecheck](https://raw.githubusercontent.com/PerryLink/dsh-doublecheck/main/docs/assets/dsh-doublecheck-demo.gif)
62
63
 
63
- *The same run, animated.*
64
64
 
65
65
  ## Compatibility
66
66
 
67
67
  | Surface | Status |
68
68
  |---|---|
69
- | Harness | DeepSeek Harness `dsh-v0.2.1-rc.2` (verified 2026-10-18): `engines.dsh >=0.2.1-0 <0.3.0`; the gate and projection paths are covered by the rc.2 test suite. |
70
- | Node | `^22.19.0 \|\| >=24.0.0` |
69
+ | Harness | DeepSeek Harness `dsh-v0.2.2-rc.1` (adapted 2026-11-05): `engines.dsh` gains `>=0.2.2-0 <0.3.0` (every earlier line stays admitted); the gate and projection paths are covered by the rc.1 test suite. |
70
+ | Node | `^22.19.0 \|\| >=24.9.0` |
71
71
  | Platforms | All (pure host; no native code, no direct network requests of its own) |
72
72
  | Model | Any (the guard itself never calls a model; the critic and reviewer phases run as harness subagents) |
73
73
 
@@ -115,6 +115,50 @@ dsh --profile web --dump-config | grep -E -A3 'id: doublecheck-(grill|guard)'
115
115
 
116
116
  Both rows (`doublecheck-grill` and `doublecheck-guard`) activate automatically with the profile.
117
117
 
118
+ ### Examples
119
+
120
+ These are the plugin's real entry points; install once, then call one.
121
+
122
+ #### Detailed example
123
+
124
+ **Command**
125
+
126
+ ~~~sh
127
+ /gate run
128
+ ~~~
129
+
130
+ **Output**
131
+
132
+ ~~~text
133
+ # Delivery gate report
134
+
135
+ > **Verdict: rework required** — 2 red item(s)
136
+ > The gate is red. Re-open the work in plan mode to re-check the open items before delivering.
137
+ ~~~
138
+
139
+ *Observed from `README.md §Example report (lines 243-251)`*
140
+
141
+ #### Failure branch
142
+
143
+ **Input**
144
+
145
+ ~~~text
146
+ /doublecheck maybe
147
+ ~~~
148
+
149
+ **Output**
150
+
151
+ ~~~text
152
+ Unknown /doublecheck argument "maybe". Usage: /doublecheck status|report|on|off
153
+ ~~~
154
+
155
+ *Observed from `plugins/dsh-doublecheck/src/guard/prose.ts:191-192; plugins/dsh-doublecheck/src/guard/command.ts:156; plugins/dsh-doublecheck/tests/command.spec.ts:201-208`*
156
+
157
+ #### Brief examples
158
+
159
+ - `doublecheck_skills`
160
+ - `doublecheck_spec`
161
+
118
162
  ## Configuration
119
163
 
120
164
  All tunables are Schemastery `Config` fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. `cordis.patch.yml` documents each key inline; Schema defaults are the single source of tuning defaults.
@@ -359,10 +403,10 @@ This project is part of the DeepSeek Harness plugin family from [PerryLink](http
359
403
  | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
360
404
  | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
361
405
  | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
362
- | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
406
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | 🧊 FROZEN — see the repo README |
363
407
  | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
364
408
  | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
365
- | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
409
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | 🧊 FROZEN — see the repo README |
366
410
  | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
367
411
  | **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
368
412
  | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
@@ -452,6 +496,8 @@ This project is part of the DeepSeek Harness plugin family from [PerryLink](http
452
496
  | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRED — see the repo README |
453
497
  | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRED — see the repo README |
454
498
 
455
- </details>## License
499
+ </details>
500
+
501
+ ## License
456
502
 
457
503
  [Apache License 2.0](LICENSE) © 2026 dsh-doublecheck contributors
package/cordis.patch.yml CHANGED
File without changes
package/icon.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="dsh-doublecheck"><rect width="128" height="128" rx="24" fill="#0f172a"/><circle cx="64" cy="64" r="44" fill="none" stroke="#ce3ebb" stroke-width="6"/><text x="64" y="78" fill="#f8fafc" text-anchor="middle" font-family="ui-monospace,monospace" font-size="38" font-weight="700">D</text></svg>
package/lib/ci.d.ts CHANGED
File without changes
package/lib/ci.js CHANGED
File without changes
@@ -67,12 +67,13 @@ export interface PtcSettle {
67
67
  * Normalize one settled PTC sub-dispatch event, across the event-vocabulary
68
68
  * rename at the session-format V2→V3 edge.
69
69
  *
70
- * The current line names the settled sub-dispatch `tool/ptc-dispatch` (the
71
- * host's V2→V3 migration renames the predecessor `tool/code-dispatch`, keeping
72
- * the payload values), so a stored V2 log arrives under the new label. A host
73
- * on the older release line still emits the predecessor label, which is outside
74
- * this line's `SessionEventMap`; it is matched structurally instead of as a
75
- * switch case, so the fold never depends on which generation wrote the log.
70
+ * The V3 line names the settled sub-dispatch `tool/ptc-dispatch` (the host's
71
+ * V2→V3 migration renames the predecessor `tool/code-dispatch`, keeping the
72
+ * payload values), so a stored V2 log arrives under the new label. Neither
73
+ * label is a member of this host line's `SessionEventMap` — the 0.2.2 tools
74
+ * contract retires the PTC declaration while persistence still recognizes both
75
+ * names — so both are matched structurally instead of as switch cases. The
76
+ * fold therefore never depends on which generation wrote the log.
76
77
  *
77
78
  * @param event - one committed session event.
78
79
  * @returns the settled payload, or `undefined` when the event is not a settled sub-dispatch.
@@ -60,35 +60,29 @@ export function emptyDetection() {
60
60
  * Normalize one settled PTC sub-dispatch event, across the event-vocabulary
61
61
  * rename at the session-format V2→V3 edge.
62
62
  *
63
- * The current line names the settled sub-dispatch `tool/ptc-dispatch` (the
64
- * host's V2→V3 migration renames the predecessor `tool/code-dispatch`, keeping
65
- * the payload values), so a stored V2 log arrives under the new label. A host
66
- * on the older release line still emits the predecessor label, which is outside
67
- * this line's `SessionEventMap`; it is matched structurally instead of as a
68
- * switch case, so the fold never depends on which generation wrote the log.
63
+ * The V3 line names the settled sub-dispatch `tool/ptc-dispatch` (the host's
64
+ * V2→V3 migration renames the predecessor `tool/code-dispatch`, keeping the
65
+ * payload values), so a stored V2 log arrives under the new label. Neither
66
+ * label is a member of this host line's `SessionEventMap` — the 0.2.2 tools
67
+ * contract retires the PTC declaration while persistence still recognizes both
68
+ * names — so both are matched structurally instead of as switch cases. The
69
+ * fold therefore never depends on which generation wrote the log.
69
70
  *
70
71
  * @param event - one committed session event.
71
72
  * @returns the settled payload, or `undefined` when the event is not a settled sub-dispatch.
72
73
  */
73
74
  export function ptcSettle(event) {
74
- if (event.type === 'tool/ptc-dispatch') {
75
- return {
76
- name: event.data.name,
77
- arguments: event.data.arguments,
78
- isError: event.data.isError,
79
- content: event.data.content,
80
- };
81
- }
82
- if (event.type !== 'tool/code-dispatch')
75
+ const type = event.type;
76
+ if (type !== 'tool/ptc-dispatch' && type !== 'tool/code-dispatch')
83
77
  return undefined;
84
- const legacy = event.data;
85
- if (legacy === null || legacy === undefined || typeof legacy.name !== 'string')
78
+ const settled = event.data;
79
+ if (settled === null || settled === undefined || typeof settled.name !== 'string')
86
80
  return undefined;
87
81
  return {
88
- name: legacy.name,
89
- arguments: legacy.arguments,
90
- isError: legacy.isError === true,
91
- content: Array.isArray(legacy.content) ? legacy.content : [],
82
+ name: settled.name,
83
+ arguments: settled.arguments,
84
+ isError: settled.isError === true,
85
+ content: Array.isArray(settled.content) ? settled.content : [],
92
86
  };
93
87
  }
94
88
  /**
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/events.d.ts CHANGED
File without changes
package/lib/events.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/guard/gate.js CHANGED
File without changes
File without changes
@@ -585,31 +585,36 @@ export function apply(ctx, config) {
585
585
  const registry = projectionCtx.get('sessionProjections');
586
586
  if (registry === undefined)
587
587
  return;
588
- // The registry returns the disposer that unregisters this projection; it
589
- // MUST be owned by an effect. Registering without holding it left the old
590
- // closure live after a config hot-reload: turning `gate` (or any detection
591
- // knob) off and on again kept judging with the stale definitions — a
592
- // silent false-safety window, and a hard throw once the state version moved.
593
- projectionCtx.effect(() => registry.register({
594
- key: 'doublecheck',
595
- stateSchema: doublecheckStateSchema,
596
- init: emptyDoublecheckState,
597
- apply: (state, event) => applyDoublecheckEvent(state, event, detection),
598
- wire: {
599
- viewSchema: doublecheckViewSchema,
600
- view: viewDoublecheck,
601
- },
602
- // v3: the wire value changed type (object -> one bounded line). The
603
- // bump is the persisted-cache invalidation the registry documents, and
604
- // it IS the backward-compatibility story: the state fields themselves
605
- // are unchanged and still pass `doublecheckStateSchema`, but a row
606
- // written at `ver: 2` is discarded on a `ver: 3` unit and the key
607
- // refolds from `init` over the full log (the host's `restoreFloor`
608
- // drops to seq 0 on any version mismatch). No migration code, and a
609
- // pre-upgrade session degrades to a recomputed line instead of a
610
- // stale one or a crash.
611
- stateVersion: 3,
612
- }), 'dsh-doublecheck: projection');
588
+ // Registration is asynchronous on the 0.2.2 line and returns a ready
589
+ // handle; awaiting it inside the effect keeps the fiber from publishing a
590
+ // half-registered unit. The handle's `dispose()` is the unregistration
591
+ // path and MUST be owned by an effect. Registering without holding it left
592
+ // the old closure live after a config hot-reload: turning `gate` (or any
593
+ // detection knob) off and on again kept judging with the stale
594
+ // definitions — a silent false-safety window, and a hard throw once the
595
+ // state version moved.
596
+ projectionCtx.effect(async () => {
597
+ const handle = await registry.register({
598
+ key: 'doublecheck',
599
+ stateSchema: doublecheckStateSchema,
600
+ init: emptyDoublecheckState,
601
+ apply: (state, event) => applyDoublecheckEvent(state, event, detection),
602
+ wire: {
603
+ viewSchema: doublecheckViewSchema,
604
+ view: viewDoublecheck,
605
+ },
606
+ // stateVersion is the persisted-cache invalidation the registry
607
+ // documents, and it IS the backward-compatibility story: the state
608
+ // fields themselves are unchanged and still pass
609
+ // `doublecheckStateSchema`, but a row written at `ver: 2` is
610
+ // discarded on a `ver: 3` unit and the key refolds from `init` over
611
+ // the full log (the host's `restoreFloor` drops to seq 0 on any
612
+ // version mismatch). No migration code, and a pre-upgrade session
613
+ // degrades to a recomputed line instead of a stale one or a crash.
614
+ stateVersion: 3,
615
+ });
616
+ return () => handle.dispose();
617
+ }, 'dsh-doublecheck: projection');
613
618
  });
614
619
  // The invariant companion, registered from the main plugin so its checks
615
620
  // see the live detection knobs. Activates only when an invariant registry
File without changes
File without changes
File without changes
File without changes
package/lib/index.d.ts CHANGED
File without changes
package/lib/index.js CHANGED
File without changes
File without changes
package/lib/invariant.js CHANGED
File without changes
File without changes
File without changes
package/lib/types.d.ts CHANGED
File without changes
package/lib/types.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-doublecheck",
3
- "version": "0.9.29",
3
+ "version": "0.9.30",
4
4
  "description": "Delivery quality gate for DeepSeek Harness: grill the requirements, test the implementation, prove the delivery, and gate the handoff with a deliverable/rework decision.",
5
5
  "packageManager": "pnpm@11.7.0",
6
6
  "repository": {
@@ -51,7 +51,9 @@
51
51
  "README-es.md",
52
52
  "README-pt.md",
53
53
  "README-hi.md",
54
- "LICENSE"
54
+ "LICENSE",
55
+ "PRIVACY.md",
56
+ "icon.svg"
55
57
  ],
56
58
  "scripts": {
57
59
  "build": "tsc --noEmitOnError && node scripts/fix-dts.mjs",
@@ -83,14 +85,18 @@
83
85
  "author": "PerryLink",
84
86
  "license": "Apache-2.0",
85
87
  "engines": {
86
- "node": "^22.19.0 || >=24.0.0",
87
- "dsh": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0"
88
+ "node": "^22.19.0 || >=24.9.0",
89
+ "dsh": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0"
88
90
  },
89
91
  "dsh": {
90
92
  "manifestVersion": 1,
91
93
  "bundle": {
92
94
  "patch": "./cordis.patch.yml"
93
- }
95
+ },
96
+ "capabilities": [
97
+ "tools:register"
98
+ ],
99
+ "labels": []
94
100
  },
95
101
  "dshWorkshop": {
96
102
  "schema": "omdsh-workshop-package/v1",
@@ -137,46 +143,49 @@
137
143
  },
138
144
  "peerDependencies": {
139
145
  "@deepseek-ai/cordis": "^4.0.5-alpha.1",
140
- "@deepseek-ai/dsh-agent": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
141
- "@deepseek-ai/dsh-commands": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
146
+ "@deepseek-ai/dsh-agent": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
147
+ "@deepseek-ai/dsh-commands": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
142
148
  "@deepseek-ai/dsh-invariants": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
143
- "@deepseek-ai/dsh-llm": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
144
- "@deepseek-ai/dsh-session": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
145
- "@deepseek-ai/dsh-session-projection": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
146
- "@deepseek-ai/dsh-skill": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
147
- "@deepseek-ai/dsh-tools": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0",
149
+ "@deepseek-ai/dsh-llm": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
150
+ "@deepseek-ai/dsh-session": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
151
+ "@deepseek-ai/dsh-session-projection": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
152
+ "@deepseek-ai/dsh-skill": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
153
+ "@deepseek-ai/dsh-tools": ">=0.1.6-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0",
148
154
  "@deepseek-ai/schemastery": "^3.18.5-alpha.1"
149
155
  },
150
156
  "dependencies": {
151
157
  "zod": "^4.4.3"
152
158
  },
153
159
  "devDependencies": {
154
- "@deepseek-ai/cordis": "^4.0.5-alpha.1",
155
- "@deepseek-ai/cordis-plugin-loader": "^1.0.6-alpha.1",
156
- "@deepseek-ai/dsh-agent": "0.2.1-rc.2",
157
- "@deepseek-ai/dsh-commands": "0.2.1-rc.2",
158
- "@deepseek-ai/dsh-fs": "0.2.1-rc.2",
160
+ "@deepseek-ai/cordis": "^4.1.0",
161
+ "@deepseek-ai/cordis-plugin-loader": "^1.1.0",
162
+ "@deepseek-ai/dsh-agent": "0.2.2-rc.1",
163
+ "@deepseek-ai/dsh-commands": "0.2.2-rc.1",
164
+ "@deepseek-ai/dsh-fs": "0.2.2-rc.1",
159
165
  "@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
160
- "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
161
- "@deepseek-ai/dsh-session": "0.2.1-rc.2",
162
- "@deepseek-ai/dsh-session-projection": "0.2.1-rc.2",
163
- "@deepseek-ai/dsh-settings": "0.2.1-rc.2",
164
- "@deepseek-ai/dsh-skill": "0.2.1-rc.2",
165
- "@deepseek-ai/dsh-subagent": "0.2.1-rc.2",
166
- "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
167
- "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
168
- "@deepseek-ai/dsh-workflow": "0.2.1-rc.2",
169
- "@deepseek-ai/schemastery": "^3.18.5-alpha.1",
166
+ "@deepseek-ai/dsh-llm": "0.2.2-rc.1",
167
+ "@deepseek-ai/dsh-session": "0.2.2-rc.1",
168
+ "@deepseek-ai/dsh-session-projection": "0.2.2-rc.1",
169
+ "@deepseek-ai/dsh-settings": "0.2.2-rc.1",
170
+ "@deepseek-ai/dsh-skill": "0.2.2-rc.1",
171
+ "@deepseek-ai/dsh-subagent": "0.2.2-rc.1",
172
+ "@deepseek-ai/dsh-system-prompt": "0.2.2-rc.1",
173
+ "@deepseek-ai/dsh-tool-executor-native": "0.2.2-rc.1",
174
+ "@deepseek-ai/dsh-tools": "0.2.2-rc.1",
175
+ "@deepseek-ai/dsh-workflow": "0.2.2-rc.1",
176
+ "@deepseek-ai/schemastery": "~3.19.0",
170
177
  "@eslint/js": "^9.30.0",
171
178
  "@types/node": "^22.15.0",
172
179
  "@vitest/coverage-v8": "^3.2.0",
173
180
  "eslint": "^9.30.0",
174
181
  "typescript-eslint": "^8.35.0",
175
182
  "vitest": "^3.2.0",
176
- "typescript": "^5.7.0"
183
+ "typescript": "^5.7.0",
184
+ "@deepseek-ai/dsh-package-manifest": "0.2.2-rc.1"
177
185
  },
178
186
  "funding": {
179
187
  "type": "individual",
180
188
  "url": "https://github.com/sponsors/PerryLink"
181
- }
189
+ },
190
+ "icon": "icon.svg"
182
191
  }
File without changes
File without changes
File without changes
File without changes
package/strict.patch.yml CHANGED
File without changes