dsh-library 0.2.10 → 0.2.12
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/CHANGELOG.md +19 -1
- package/{README.es.md → README-es.md} +16 -5
- package/{README.hi.md → README-hi.md} +16 -5
- package/{README.pt.md → README-pt.md} +16 -5
- package/{README.zh.md → README-zh.md} +16 -5
- package/README.md +15 -5
- package/lib/index.js +108 -15
- package/lib/types/events.d.ts +43 -11
- package/lib/types/events.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +34 -29
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,25 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [0.2.12] - 2026-09-18
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- The mount no longer loses its registrations when the fiber is disposed inside the dependency-resolution await: the storage-domain effect closes the handle with the fiber, and the tool/command registrations are skipped instead of throwing `INACTIVE_EFFECT` halfway through `apply`.
|
|
13
|
+
|
|
14
|
+
- The audit gate now decides whether this host can carry `library/inject` / `library/purge` from an **observed** probe instead of an append implementation's source text. At mount the plugin appends one audit event on a throwaway session and reads the returned record back; a host that stamps `ignorable === true` gets the marked appends, and every other host (including the `0.1.6-alpha.2` line, whose third append parameter is a `SurfaceIntent` that exists only for surface-eligible types) gets no append **plus one visible warning** instead of a silent skip. The three branch semantics are unchanged; the probe fails closed to "unsupported" on any error, and the test contract injects the verdict explicitly.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Declare `dsh.manifestVersion: 1` and the canonical three-clause `engines.dsh` (G-3).
|
|
19
|
+
- The CI workflow already runs both rulers (published peers + the alpha.2 checkout face with a freshness assertion); no change was needed there.
|
|
20
|
+
|
|
21
|
+
## [0.2.11] - 2026-09-12
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Rename the four translated READMEs to `README-<lang>.md`. npm selects the package-page readme as the first markdown file matching its `{README,README.*}` glob (`@npmcli/package-json`, publish path), and that glob order puts `README.<lang>.md` ahead of `README.md` — so npm was serving the Simplified-Chinese file for this package too (measured on 15/15 sampled packages of the family). The new names sit outside the glob, so the English source is served again. No content changed apart from the language-switcher link each translation holds to its siblings, and the repo readme gate still passes. Takes effect with the next release; an already-published version cannot gain a corrected readme retroactively.
|
|
26
|
+
- Pin the `@deepseek-ai/dsh-*` dev/test dependencies to the published `0.1.5-rc.2` line and record `0.1.5-rc.2` in `dshWorkshop.compatibility.dshVersions`; the monthly Compat workflow now runs against `0.1.5-rc.2`. The peer range `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0` is unchanged, so no supported host line is dropped.
|
|
9
27
|
|
|
10
28
|
## [0.2.10] - 2026-09-10
|
|
11
29
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*Importa, recupera, verifica — búsqueda híbrida con citas que tu agente puede comprobar.*
|
|
9
9
|
|
|
10
10
|
[](LICENSE)
|
|
11
|
+
[](https://gitee.com/perrylink/dsh-library)
|
|
11
12
|
[](https://github.com/topics/dsh-plugin)
|
|
12
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
13
14
|
[](#)
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
[](https://www.npmjs.com/package/dsh-library)
|
|
17
18
|
[](https://www.npmjs.com/package/dsh-library)
|
|
18
19
|
|
|
19
|
-
[English](README.md) · [简体中文](README
|
|
20
|
+
[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
|
|
20
21
|
|
|
21
22
|
</div>
|
|
22
23
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
|
|
27
28
|
| Superficie | Estado |
|
|
28
29
|
|---|---|
|
|
29
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (verificado el 2026-09-18: doble typecheck + 89 pruebas + puertas self-contained/artifacts; rango de peers `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`). Único paquete de la familia con un smoke real de host alpha.2 (2026-09-11). |
|
|
30
31
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
32
|
| Almacenamiento | Cualquier backend de storage-domain (JSON o SQLite); el índice vive en el dominio de almacenamiento del host |
|
|
32
33
|
| Modelos | Ninguno requerido — el embedder integrado es hash determinista (cero descargas) |
|
|
@@ -143,7 +144,7 @@ Todos los ajustes son campos `Config` de Schemastery (modificables desde cordis.
|
|
|
143
144
|
```sh
|
|
144
145
|
pnpm install # node ^22.19 || >=24
|
|
145
146
|
pnpm run typecheck # tsc: src + tests contra el checkout local del harness
|
|
146
|
-
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.5-rc.
|
|
147
|
+
pnpm run typecheck:ci # tsc contra los tipos publicados 0.1.5-rc.2 (sin paths)
|
|
147
148
|
pnpm test # vitest: puertos de calidad, vocabulario núcleo, ensamblaje con pila real
|
|
148
149
|
pnpm run build # bundle tsdown + declaraciones tsc (lib/)
|
|
149
150
|
pnpm run verify:self-contained # las especificaciones de dependencias resuelven desde el registry
|
|
@@ -161,7 +162,7 @@ pnpm pack # el tarball publicado
|
|
|
161
162
|
|
|
162
163
|
## PerryLink DSH Plugin Family
|
|
163
164
|
|
|
164
|
-
Este proyecto es uno de los [
|
|
165
|
+
Este proyecto es uno de los [40 complementos de DeepSeek Harness](https://github.com/PerryLink) mantenidos por [PerryLink](https://github.com/PerryLink). Si este te ayuda, probablemente los demás también:
|
|
165
166
|
|
|
166
167
|
| Plugin | One-liner |
|
|
167
168
|
|---|---|
|
|
@@ -190,6 +191,7 @@ Este proyecto es uno de los [37 complementos de DeepSeek Harness](https://github
|
|
|
190
191
|
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Reglas de permisos declarativas allow/deny/ask estilo Claude Code con auditoría | |
|
|
191
192
|
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Inyector de directivas personales con interruptor en la barra superior (edición framework) |
|
|
192
193
|
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Base de conocimiento de desarrollo de plugins como habilidad de agente bajo demanda | |
|
|
194
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
193
195
|
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Puente multicanal de aprobación/preguntas: WeChat/Telegram/Feishu, consola de sesión |
|
|
194
196
|
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Motor de informes de investigación verificables con evidencia direccionada por contenido | |
|
|
195
197
|
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Puntuación de calidad multidimensional para plugins de DeepSeek Harness. | |
|
|
@@ -200,7 +202,16 @@ Este proyecto es uno de los [37 complementos de DeepSeek Harness](https://github
|
|
|
200
202
|
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Pruebas de instalación y humo aisladas para plugins de DeepSeek Harness. | |
|
|
201
203
|
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | Puente de tareas TickTick/Dida365: panel de cabecera de sesión + 11 herramientas |
|
|
202
204
|
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. | |
|
|
203
|
-
| **[dsh-wechat](https://github.com/
|
|
205
|
+
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | Puente WeChat ↔ DSH (bot Tencent iLink): texto/imagen/archivo/voz, aprobaciones en el chat |
|
|
206
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
207
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
208
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
209
|
+
| **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
|
|
210
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
211
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
212
|
+
| **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
|
|
213
|
+
| **[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 | |
|
|
214
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
204
215
|
|
|
205
216
|
## License
|
|
206
217
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*आयात करें, पुनर्प्राप्त करें, सत्यापित करें — उद्धरण-युक्त हाइब्रिड खोज जिसे आपका एजेंट जाँच सकता है।*
|
|
9
9
|
|
|
10
10
|
[](LICENSE)
|
|
11
|
+
[](https://gitee.com/perrylink/dsh-library)
|
|
11
12
|
[](https://github.com/topics/dsh-plugin)
|
|
12
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
13
14
|
[](#)
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
[](https://www.npmjs.com/package/dsh-library)
|
|
17
18
|
[](https://www.npmjs.com/package/dsh-library)
|
|
18
19
|
|
|
19
|
-
[English](README.md) · [简体中文](README
|
|
20
|
+
[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
|
|
20
21
|
|
|
21
22
|
</div>
|
|
22
23
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
|
|
27
28
|
| सतह | स्थिति |
|
|
28
29
|
|---|---|
|
|
29
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (2026-09-18 को सत्यापित: दोहरा typecheck + 89 टेस्ट + self-contained/artifacts गेट; peer रेंज `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`)। परिवार का एकमात्र पैकेज जिसका वास्तविक alpha.2 होस्ट स्मोक चला है (2026-09-11)। |
|
|
30
31
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
32
|
| भंडारण | कोई भी storage-domain बैकएंड (JSON या SQLite); सूचकांक होस्ट के भंडारण डोमेन में रहता है |
|
|
32
33
|
| मॉडल | किसी की आवश्यकता नहीं — अंतर्निहित एम्बेडर नियतात्मक हैश है (शून्य डाउनलोड) |
|
|
@@ -143,7 +144,7 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-library'
|
|
|
143
144
|
```sh
|
|
144
145
|
pnpm install # node ^22.19 || >=24
|
|
145
146
|
pnpm run typecheck # tsc: src + tests स्थानीय हार्नेस चेकआउट के विरुद्ध
|
|
146
|
-
pnpm run typecheck:ci # tsc प्रकाशित 0.1.5-rc.
|
|
147
|
+
pnpm run typecheck:ci # tsc प्रकाशित 0.1.5-rc.2 प्रकारों के विरुद्ध (बिना paths)
|
|
147
148
|
pnpm test # vitest: गुणवत्ता पोर्ट, मूल शब्दावली, वास्तविक-स्टैक संयोजन
|
|
148
149
|
pnpm run build # tsdown बंडल + tsc घोषणाएँ (lib/)
|
|
149
150
|
pnpm run verify:self-contained # निर्भरता स्पेक registry से हल होती हैं
|
|
@@ -161,7 +162,7 @@ pnpm pack # प्रकाशित tarball
|
|
|
161
162
|
|
|
162
163
|
## PerryLink DSH Plugin Family
|
|
163
164
|
|
|
164
|
-
यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [
|
|
165
|
+
यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित [40 DeepSeek Harness प्लगइनों](https://github.com/PerryLink) में से एक है। अगर यह आपकी मदद करता है, तो बाकी भी करेंगे:
|
|
165
166
|
|
|
166
167
|
| Plugin | One-liner |
|
|
167
168
|
|---|---|
|
|
@@ -190,6 +191,7 @@ pnpm pack # प्रकाशित tarball
|
|
|
190
191
|
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | ऑडिट के साथ Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम | |
|
|
191
192
|
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | शीर्ष-बार टॉगल के साथ व्यक्तिगत निर्देश इंजेक्टर (फ्रेमवर्क संस्करण) |
|
|
192
193
|
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | माँग पर एजेंट कौशल के रूप में प्लगइन-विकास ज्ञान आधार | |
|
|
194
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
193
195
|
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | मल्टी-चैनल अनुमोदन/प्रश्न ब्रिज: WeChat/Telegram/Feishu, सत्र कंसोल |
|
|
194
196
|
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | सामग्री-पता साक्ष्य और सीलबंद संस्करणों वाला सत्यापन-योग्य अनुसंधान-रिपोर्ट इंजन | |
|
|
195
197
|
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness प्लगिनों की बहु-आयामी गुणवत्ता स्कोरिंग। | |
|
|
@@ -200,7 +202,16 @@ pnpm pack # प्रकाशित tarball
|
|
|
200
202
|
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness प्लगिनों के लिए पृथक इंस्टॉल-एंड-स्मोक टेस्ट ड्राइव। | |
|
|
201
203
|
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 कार्य ब्रिज: सत्र-हेडर पैनल + 11 टूल |
|
|
202
204
|
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness के लिए वेंडर पैरामीटर अनुवाद और नियतात्मक JSON मरम्मत। | |
|
|
203
|
-
| **[dsh-wechat](https://github.com/
|
|
205
|
+
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat ↔ DSH ब्रिज (Tencent iLink bot): टेक्स्ट/इमेज/फ़ाइल/आवाज़, चैट में अनुमोदन |
|
|
206
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
207
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
208
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
209
|
+
| **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
|
|
210
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
211
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
212
|
+
| **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
|
|
213
|
+
| **[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 | |
|
|
214
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
204
215
|
|
|
205
216
|
## License
|
|
206
217
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*Importe, recupere, verifique — busca híbrida com citações que seu agente pode conferir.*
|
|
9
9
|
|
|
10
10
|
[](LICENSE)
|
|
11
|
+
[](https://gitee.com/perrylink/dsh-library)
|
|
11
12
|
[](https://github.com/topics/dsh-plugin)
|
|
12
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
13
14
|
[](#)
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
[](https://www.npmjs.com/package/dsh-library)
|
|
17
18
|
[](https://www.npmjs.com/package/dsh-library)
|
|
18
19
|
|
|
19
|
-
[English](README.md) · [简体中文](README
|
|
20
|
+
[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
|
|
20
21
|
|
|
21
22
|
</div>
|
|
22
23
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
|
|
27
28
|
| Superfície | Status |
|
|
28
29
|
|---|---|
|
|
29
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (verificado em 2026-09-18: typecheck duplo + 89 testes + portas self-contained/artifacts; intervalo de peers `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`). Único pacote da família com smoke real de host alpha.2 (2026-09-11). |
|
|
30
31
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
32
|
| Armazenamento | Qualquer backend de storage-domain (JSON ou SQLite); o índice vive no domínio de armazenamento do host |
|
|
32
33
|
| Modelos | Nenhum necessário — o embedder integrado é hash determinístico (zero downloads) |
|
|
@@ -143,7 +144,7 @@ Todos os ajustes são campos `Config` do Schemastery (alteráveis pelo cordis.ym
|
|
|
143
144
|
```sh
|
|
144
145
|
pnpm install # node ^22.19 || >=24
|
|
145
146
|
pnpm run typecheck # tsc: src + tests contra o checkout local do harness
|
|
146
|
-
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.5-rc.
|
|
147
|
+
pnpm run typecheck:ci # tsc contra os tipos publicados 0.1.5-rc.2 (sem paths)
|
|
147
148
|
pnpm test # vitest: portas de qualidade, vocabulário núcleo, montagem com pilha real
|
|
148
149
|
pnpm run build # bundle tsdown + declarações tsc (lib/)
|
|
149
150
|
pnpm run verify:self-contained # especificações de dependências resolvem pelo registry
|
|
@@ -161,7 +162,7 @@ pnpm pack # o tarball publicado
|
|
|
161
162
|
|
|
162
163
|
## PerryLink DSH Plugin Family
|
|
163
164
|
|
|
164
|
-
Este projeto é um dos [
|
|
165
|
+
Este projeto é um dos [40 plugins de DeepSeek Harness](https://github.com/PerryLink) mantidos por [PerryLink](https://github.com/PerryLink). Se este ajuda você, os outros provavelmente também:
|
|
165
166
|
|
|
166
167
|
| Plugin | One-liner |
|
|
167
168
|
|---|---|
|
|
@@ -190,6 +191,7 @@ Este projeto é um dos [37 plugins de DeepSeek Harness](https://github.com/Perry
|
|
|
190
191
|
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Regras de permissão declarativas allow/deny/ask estilo Claude Code com auditoria | |
|
|
191
192
|
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Injetor de diretivas pessoais com alternância na barra superior (edição framework) |
|
|
192
193
|
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Base de conhecimento de desenvolvimento de plugins como habilidade de agente sob demanda | |
|
|
194
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
193
195
|
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Ponte multicanal de aprovação/perguntas: WeChat/Telegram/Feishu, console de sessão |
|
|
194
196
|
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Motor de relatórios de pesquisa verificáveis com evidência endereçada por conteúdo | |
|
|
195
197
|
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Pontuação de qualidade multidimensional para plugins de DeepSeek Harness. | |
|
|
@@ -200,7 +202,16 @@ Este projeto é um dos [37 plugins de DeepSeek Harness](https://github.com/Perry
|
|
|
200
202
|
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Test drives isolados de instalação e smoke para plugins de DeepSeek Harness. | |
|
|
201
203
|
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | Ponte de tarefas TickTick/Dida365: painel no cabeçalho da sessão + 11 ferramentas |
|
|
202
204
|
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Tradução de parâmetros entre fornecedores e reparo determinístico de JSON para DeepSeek Harness. | |
|
|
203
|
-
| **[dsh-wechat](https://github.com/
|
|
205
|
+
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | Ponte WeChat ↔ DSH (bot Tencent iLink): texto/imagem/arquivo/voz, aprovações no chat |
|
|
206
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
207
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
208
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
209
|
+
| **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
|
|
210
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
211
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
212
|
+
| **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
|
|
213
|
+
| **[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 | |
|
|
214
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
204
215
|
|
|
205
216
|
## License
|
|
206
217
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*导入、检索、核验 —— 带引用标记的混合检索,agent 可以自证引用。*
|
|
9
9
|
|
|
10
10
|
[](LICENSE)
|
|
11
|
+
[](https://gitee.com/perrylink/dsh-library)
|
|
11
12
|
[](https://github.com/topics/dsh-plugin)
|
|
12
13
|
[](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)
|
|
13
14
|
[](#)
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
[](https://www.npmjs.com/package/dsh-library)
|
|
17
18
|
[](https://www.npmjs.com/package/dsh-library)
|
|
18
19
|
|
|
19
|
-
[English](README.md) · [简体中文](README
|
|
20
|
+
[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
|
|
20
21
|
|
|
21
22
|
</div>
|
|
22
23
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
|
|
27
28
|
| 方面 | 状态 |
|
|
28
29
|
|---|---|
|
|
29
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2`(2026-09-18 核验:双 typecheck 尺子 + 89 项测试 + self-contained/artifacts 门;peer 三段式 `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`)。全族唯一已实跑 alpha.2 宿主冒烟的仓(2026-09-11)。 |
|
|
30
31
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
31
32
|
| 存储 | 任意 storage-domain 后端(JSON 或 SQLite);索引存放在宿主的存储域中 |
|
|
32
33
|
| 模型 | 无需任何模型 —— 内置嵌入为确定性哈希(零下载) |
|
|
@@ -143,7 +144,7 @@ dsh --profile web --dump-config | grep -A2 'id: dsh-library'
|
|
|
143
144
|
```sh
|
|
144
145
|
pnpm install # node ^22.19 || >=24
|
|
145
146
|
pnpm run typecheck # tsc:src + tests 对照本地 harness checkout
|
|
146
|
-
pnpm run typecheck:ci # tsc:对照已发布的 0.1.5-rc.
|
|
147
|
+
pnpm run typecheck:ci # tsc:对照已发布的 0.1.5-rc.2 类型(无 paths)
|
|
147
148
|
pnpm test # vitest:八移植回归、核心词汇、真实栈装配
|
|
148
149
|
pnpm run build # tsdown bundle + tsc 声明(lib/)
|
|
149
150
|
pnpm run verify:self-contained # 依赖声明全部来自 registry
|
|
@@ -161,7 +162,7 @@ pnpm pack # 发布用 tarball
|
|
|
161
162
|
|
|
162
163
|
## PerryLink DSH Plugin Family
|
|
163
164
|
|
|
164
|
-
这是 [PerryLink](https://github.com/PerryLink) 维护的 [
|
|
165
|
+
这是 [PerryLink](https://github.com/PerryLink) 维护的 [40 个 DeepSeek Harness 插件](https://github.com/PerryLink) 之一。如果它能帮到你,其他的也会:
|
|
165
166
|
|
|
166
167
|
| Plugin | One-liner |
|
|
167
168
|
|---|---|
|
|
@@ -190,6 +191,7 @@ pnpm pack # 发布用 tarball
|
|
|
190
191
|
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code 风格声明式 allow/deny/ask 权限规则,带审计 | |
|
|
191
192
|
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | 个人指令注入器:顶栏开关(框架版) |
|
|
192
193
|
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | 作为按需代理技能的插件开发知识库 | |
|
|
194
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
193
195
|
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台 |
|
|
194
196
|
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | 可验证研究报告引擎:内容寻址证据账本与封存版本 | |
|
|
195
197
|
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness 插件的多维质量评分。 | |
|
|
@@ -200,7 +202,16 @@ pnpm pack # 发布用 tarball
|
|
|
200
202
|
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness 插件的隔离试装冒烟。 | |
|
|
201
203
|
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/滴答清单任务桥接:会话头面板 + 11 个工具 |
|
|
202
204
|
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。 | |
|
|
203
|
-
| **[dsh-wechat](https://github.com/
|
|
205
|
+
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | 微信 ↔ DSH 桥接(Tencent iLink 机器人):文本/图片/文件/语音,聊天内审批卡片 |
|
|
206
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
207
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
208
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
209
|
+
| **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
|
|
210
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
211
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
212
|
+
| **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
|
|
213
|
+
| **[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 | |
|
|
214
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
204
215
|
|
|
205
216
|
## License
|
|
206
217
|
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
[](https://www.npmjs.com/package/dsh-library)
|
|
18
18
|
[](https://www.npmjs.com/package/dsh-library)
|
|
19
19
|
|
|
20
|
-
[English](README.md) · [简体中文](README
|
|
20
|
+
[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
|
|
21
21
|
|
|
22
22
|
</div>
|
|
23
23
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
| Surface | Status |
|
|
29
29
|
|---|---|
|
|
30
|
-
| Harness | DeepSeek Harness `dsh-v0.1.
|
|
30
|
+
| Harness | DeepSeek Harness `dsh-v0.1.6-alpha.2` (verified 2026-09-18: dual typecheck rulers + 89 tests + self-contained/artifacts gates; peer range `>=0.1.2-rc.1 <0.2.0 \|\| >=0.1.5-alpha.1 <0.2.0 \|\| >=0.1.6-0 <0.2.0`). Home of the family's only exercised alpha.2 host smoke (2026-09-11). |
|
|
31
31
|
| Node | `^22.19.0 \|\| >=24.0.0` |
|
|
32
32
|
| Storage | Any storage-domain backend (JSON or SQLite); the index lives in the host's storage domain |
|
|
33
33
|
| Models | None required — the built-in embedder is deterministic hashing (zero downloads) |
|
|
@@ -144,7 +144,7 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). An id
|
|
|
144
144
|
```sh
|
|
145
145
|
pnpm install # node ^22.19 || >=24
|
|
146
146
|
pnpm run typecheck # tsc: src + tests against the local harness checkout
|
|
147
|
-
pnpm run typecheck:ci # tsc against the published 0.1.5-rc.
|
|
147
|
+
pnpm run typecheck:ci # tsc against the published 0.1.5-rc.2 types (no paths)
|
|
148
148
|
pnpm test # vitest: quality ports, core vocabulary, real-stack assembly
|
|
149
149
|
pnpm run build # tsdown bundle + tsc declarations (lib/)
|
|
150
150
|
pnpm run verify:self-contained # dependency specs resolve from the registry
|
|
@@ -162,7 +162,7 @@ pnpm pack # the published tarball
|
|
|
162
162
|
|
|
163
163
|
## PerryLink DSH Plugin Family
|
|
164
164
|
|
|
165
|
-
This project is one of the [
|
|
165
|
+
This project is one of the [40 DeepSeek Harness plugins](https://github.com/PerryLink) maintained by [PerryLink](https://github.com/PerryLink). If this one helps you, the others likely will too:
|
|
166
166
|
|
|
167
167
|
| Plugin | One-liner |
|
|
168
168
|
|---|---|
|
|
@@ -191,6 +191,7 @@ This project is one of the [37 DeepSeek Harness plugins](https://github.com/Perr
|
|
|
191
191
|
| **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
|
|
192
192
|
| **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | Personal directive injector with top-bar toggle (framework edition) |
|
|
193
193
|
| **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
|
|
194
|
+
| **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
|
|
194
195
|
| **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console |
|
|
195
196
|
| **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
|
|
196
197
|
| **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
|
|
@@ -201,7 +202,16 @@ This project is one of the [37 DeepSeek Harness plugins](https://github.com/Perr
|
|
|
201
202
|
| **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
202
203
|
| **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools |
|
|
203
204
|
| **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
204
|
-
| **[dsh-wechat](https://github.com/
|
|
205
|
+
| **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat |
|
|
206
|
+
| **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
|
|
207
|
+
| **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
|
|
208
|
+
| **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
|
|
209
|
+
| **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | |
|
|
210
|
+
| **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
|
|
211
|
+
| **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
|
|
212
|
+
| **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | |
|
|
213
|
+
| **[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 | |
|
|
214
|
+
| **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | |
|
|
205
215
|
|
|
206
216
|
### Install from the DSH Desktop Market
|
|
207
217
|
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { Context } from "@deepseek-ai/cordis";
|
|
2
|
+
import SessionStore, { KNOWN_SESSION_EVENT_TYPES, SessionId } from "@deepseek-ai/dsh-session";
|
|
1
3
|
import { defineDomain } from "@deepseek-ai/dsh-storage-domain";
|
|
2
4
|
import { MessageId } from "@deepseek-ai/dsh-llm";
|
|
3
5
|
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
4
6
|
import z from "@deepseek-ai/schemastery";
|
|
5
7
|
import { createHash, randomUUID } from "node:crypto";
|
|
6
|
-
import { KNOWN_SESSION_EVENT_TYPES } from "@deepseek-ai/dsh-session";
|
|
7
8
|
//#region node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
|
|
8
9
|
var _a$1;
|
|
9
10
|
function $constructor(name, initializer, params) {
|
|
@@ -5410,13 +5411,19 @@ function verifyPurge(remaining, removedContent, options = {}) {
|
|
|
5410
5411
|
* exist outside them: the inject id linking the injected marker text back to
|
|
5411
5412
|
* the search that produced it, and each purge-verification verdict.
|
|
5412
5413
|
*
|
|
5413
|
-
* The gate appends only when the host can carry the events safely
|
|
5414
|
+
* The gate appends only when the host can carry the events safely, and the
|
|
5415
|
+
* host's capability is OBSERVED at mount time rather than inferred from an
|
|
5416
|
+
* append implementation's source text:
|
|
5414
5417
|
* - hosts whose known-type set covers the vocabulary append plainly;
|
|
5415
|
-
* - hosts
|
|
5416
|
-
* with the marker, so builds that do not
|
|
5417
|
-
*
|
|
5418
|
-
*
|
|
5419
|
-
*
|
|
5418
|
+
* - hosts observed to stamp the `ignorable` envelope (see
|
|
5419
|
+
* {@link probeMarkerSupport}) append with the marker, so builds that do not
|
|
5420
|
+
* know the type skip the event on restore;
|
|
5421
|
+
* - every other host — envelope-less builds such as 0.1.0-rc.6/rc.8,
|
|
5422
|
+
* 0.1.1-rc.2 and the 0.1.2-alpha line, which fails closed on unknown types at
|
|
5423
|
+
* read, and the 0.1.6-alpha.2 line, whose third append parameter is a
|
|
5424
|
+
* `SurfaceIntent` that exists only for surface-eligible types — gets no
|
|
5425
|
+
* append, with one visible warning instead of a silent skip; the tool
|
|
5426
|
+
* results remain the reconstructable audit trail.
|
|
5420
5427
|
*
|
|
5421
5428
|
* @module dsh-library/events
|
|
5422
5429
|
*/
|
|
@@ -5425,22 +5432,79 @@ const INJECT_EVENT = "library/inject";
|
|
|
5425
5432
|
/** The purge audit event type. */
|
|
5426
5433
|
const PURGE_EVENT = "library/purge";
|
|
5427
5434
|
/**
|
|
5428
|
-
*
|
|
5429
|
-
*
|
|
5430
|
-
*
|
|
5431
|
-
|
|
5435
|
+
* The host capability, decided by {@link probeMarkerSupport} at mount time and
|
|
5436
|
+
* cached for the process (the append surface cannot change within one). Tests
|
|
5437
|
+
* adopt a verdict explicitly through {@link adoptMarkerSupport}.
|
|
5438
|
+
*/
|
|
5439
|
+
let markerSupport = "unknown";
|
|
5440
|
+
/** Whether the one-time skip notice has been emitted. */
|
|
5441
|
+
let warnedUnmarkedHost = false;
|
|
5442
|
+
/** Adopt the probed verdict (called once by `apply`; tests inject it directly). */
|
|
5443
|
+
function adoptMarkerSupport(verdict) {
|
|
5444
|
+
markerSupport = verdict;
|
|
5445
|
+
warnedUnmarkedHost = false;
|
|
5446
|
+
}
|
|
5447
|
+
/**
|
|
5448
|
+
* Observe whether this host stamps the `ignorable` envelope, by appending one
|
|
5449
|
+
* audit event on a scratch session and reading the returned record back. The
|
|
5450
|
+
* judgement is observed rather than inferred from an append implementation's
|
|
5451
|
+
* source text (a source-text probe cannot see through a wrapper, a minifier or
|
|
5452
|
+
* a future options bag), and it is safe: the scratch session is discarded, so
|
|
5453
|
+
* an unmarked write there harms nothing.
|
|
5454
|
+
*
|
|
5455
|
+
* Folded context: `Session.append` optionally returns the appended record; a
|
|
5456
|
+
* host that honours `{ ignorable: true }` returns it with `ignorable === true`,
|
|
5457
|
+
* one that drops the options bag returns a record without the field, and a
|
|
5458
|
+
* host that rejects the type outright throws — all three map to a verdict, and
|
|
5459
|
+
* anything ambiguous or throwing fails closed to `'unsupported'`.
|
|
5460
|
+
* @param createSession - builds the throwaway session to probe with.
|
|
5461
|
+
* @returns the observed capability.
|
|
5462
|
+
*/
|
|
5463
|
+
async function probeMarkerSupport(createSession) {
|
|
5464
|
+
try {
|
|
5465
|
+
const session = createSession();
|
|
5466
|
+
return isMarkedRecord(session.append.call(session, "library/inject", {
|
|
5467
|
+
injectId: "probe",
|
|
5468
|
+
library: "probe",
|
|
5469
|
+
query: "probe",
|
|
5470
|
+
chunks: [],
|
|
5471
|
+
chars: 0
|
|
5472
|
+
}, { ignorable: true })) ? "supported" : "unsupported";
|
|
5473
|
+
} catch {
|
|
5474
|
+
return "unsupported";
|
|
5475
|
+
}
|
|
5476
|
+
}
|
|
5477
|
+
/** Whether a returned append record carries the stamped marker. */
|
|
5478
|
+
function isMarkedRecord(record) {
|
|
5479
|
+
return typeof record === "object" && record !== null && record.ignorable === true;
|
|
5480
|
+
}
|
|
5481
|
+
/**
|
|
5482
|
+
* Append one dsh-library audit event when the host can carry it safely, and
|
|
5483
|
+
* report what happened instead of skipping silently (the `tool/call` +
|
|
5484
|
+
* `tool/result` events remain the model-visible log either way). The full rule
|
|
5485
|
+
* set lives in the module doc; in short: known-vocabulary hosts append
|
|
5486
|
+
* plainly, hosts observed to stamp the `ignorable` envelope append with the
|
|
5487
|
+
* marker, and every other host gets no append plus one visible warning.
|
|
5432
5488
|
* @param session - the calling session.
|
|
5433
5489
|
* @param type - the audit event type.
|
|
5434
5490
|
* @param data - the audit payload.
|
|
5491
|
+
* @returns which branch ran.
|
|
5435
5492
|
*/
|
|
5436
5493
|
function appendAuditEvent(session, type, data) {
|
|
5437
5494
|
if (KNOWN_SESSION_EVENT_TYPES.has(type)) {
|
|
5438
5495
|
if (type === "library/inject") session.append(type, data);
|
|
5439
5496
|
else session.append(type, data);
|
|
5440
|
-
return;
|
|
5497
|
+
return "appended";
|
|
5498
|
+
}
|
|
5499
|
+
if (markerSupport === "supported") {
|
|
5500
|
+
session.append.call(session, type, data, { ignorable: true });
|
|
5501
|
+
return "appended-marked";
|
|
5502
|
+
}
|
|
5503
|
+
if (!warnedUnmarkedHost) {
|
|
5504
|
+
warnedUnmarkedHost = true;
|
|
5505
|
+
console.warn("dsh-library: this host does not admit dsh-library audit events (its append surface cannot stamp the ignorable envelope and its vocabulary does not cover the type), so library/inject and library/purge are not written; the tool/call + tool/result events remain the audit trail");
|
|
5441
5506
|
}
|
|
5442
|
-
|
|
5443
|
-
if (Function.prototype.toString.call(append).includes("ignorable")) append.call(session, type, data, { ignorable: true });
|
|
5507
|
+
return "skipped-unmarked-host";
|
|
5444
5508
|
}
|
|
5445
5509
|
//#endregion
|
|
5446
5510
|
//#region src/quality/few-shot.ts
|
|
@@ -5499,6 +5563,21 @@ function formatFewShotPrompt(query, selected) {
|
|
|
5499
5563
|
}
|
|
5500
5564
|
//#endregion
|
|
5501
5565
|
//#region src/index.ts
|
|
5566
|
+
/**
|
|
5567
|
+
* `dsh-library` — the local-first knowledge base for DeepSeek Harness:
|
|
5568
|
+
* import md/txt documents into a storage-domain index, retrieve with a
|
|
5569
|
+
* hybrid semantic+keyword pipeline (diversity re-rank, relevance filter,
|
|
5570
|
+
* lost-in-the-middle avoidance), verify citations against retrieved chunks,
|
|
5571
|
+
* and diagnose chunk/retrieval quality. Everything model-visible carries a
|
|
5572
|
+
* source marker. The `library/inject` and `library/purge` audit events are
|
|
5573
|
+
* appended through the adaptive host gate (see `events.ts`); where the host
|
|
5574
|
+
* cannot carry them, the logged `tool/call` + `tool/result` events remain the
|
|
5575
|
+
* reconstructable trail. Document paths and embeddings never reach the log.
|
|
5576
|
+
*
|
|
5577
|
+
* Function plugin — no default export (the Loader unwraps
|
|
5578
|
+
* `exports.default ?? exports`).
|
|
5579
|
+
* @module dsh-library
|
|
5580
|
+
*/
|
|
5502
5581
|
const name = "dsh-library";
|
|
5503
5582
|
/** Hard services: the durable index lives in the storage domain; tools and the command register here. */
|
|
5504
5583
|
const inject = [
|
|
@@ -5840,7 +5919,21 @@ async function apply(ctx, config = {}) {
|
|
|
5840
5919
|
const resolved = resolveConfig(config);
|
|
5841
5920
|
const domain = await ctx.storageDomain.open(libraryDomainSpec);
|
|
5842
5921
|
ctx.effect(() => () => domain.close(), "dsh-library: storage domain");
|
|
5843
|
-
const
|
|
5922
|
+
const deps = await storeDepsOf(ctx, resolved);
|
|
5923
|
+
if (ctx.fiber.uid === null) return;
|
|
5924
|
+
try {
|
|
5925
|
+
const probeContext = new Context();
|
|
5926
|
+
const probeFiber = await probeContext.plugin(SessionStore);
|
|
5927
|
+
try {
|
|
5928
|
+
const probeSession = probeContext.sessions.create(SessionId("dsh-library-marker-probe"));
|
|
5929
|
+
adoptMarkerSupport(await probeMarkerSupport(() => probeSession));
|
|
5930
|
+
} finally {
|
|
5931
|
+
await probeFiber.dispose();
|
|
5932
|
+
}
|
|
5933
|
+
} catch {
|
|
5934
|
+
adoptMarkerSupport("unsupported");
|
|
5935
|
+
}
|
|
5936
|
+
const store = new LibraryStore(domain, resolved, deps);
|
|
5844
5937
|
const services = {
|
|
5845
5938
|
ctx,
|
|
5846
5939
|
config: resolved,
|
package/lib/types/events.d.ts
CHANGED
|
@@ -6,13 +6,19 @@
|
|
|
6
6
|
* exist outside them: the inject id linking the injected marker text back to
|
|
7
7
|
* the search that produced it, and each purge-verification verdict.
|
|
8
8
|
*
|
|
9
|
-
* The gate appends only when the host can carry the events safely
|
|
9
|
+
* The gate appends only when the host can carry the events safely, and the
|
|
10
|
+
* host's capability is OBSERVED at mount time rather than inferred from an
|
|
11
|
+
* append implementation's source text:
|
|
10
12
|
* - hosts whose known-type set covers the vocabulary append plainly;
|
|
11
|
-
* - hosts
|
|
12
|
-
* with the marker, so builds that do not
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* - hosts observed to stamp the `ignorable` envelope (see
|
|
14
|
+
* {@link probeMarkerSupport}) append with the marker, so builds that do not
|
|
15
|
+
* know the type skip the event on restore;
|
|
16
|
+
* - every other host — envelope-less builds such as 0.1.0-rc.6/rc.8,
|
|
17
|
+
* 0.1.1-rc.2 and the 0.1.2-alpha line, which fails closed on unknown types at
|
|
18
|
+
* read, and the 0.1.6-alpha.2 line, whose third append parameter is a
|
|
19
|
+
* `SurfaceIntent` that exists only for surface-eligible types — gets no
|
|
20
|
+
* append, with one visible warning instead of a silent skip; the tool
|
|
21
|
+
* results remain the reconstructable audit trail.
|
|
16
22
|
*
|
|
17
23
|
* @module dsh-library/events
|
|
18
24
|
*/
|
|
@@ -55,14 +61,40 @@ export interface LibraryPurgeEvent {
|
|
|
55
61
|
export declare const INJECT_EVENT: "library/inject";
|
|
56
62
|
/** The purge audit event type. */
|
|
57
63
|
export declare const PURGE_EVENT: "library/purge";
|
|
64
|
+
/** The observed marker capability of the mounted host. */
|
|
65
|
+
export type MarkerSupport = 'unknown' | 'supported' | 'unsupported';
|
|
66
|
+
/** The outcome of one audit append attempt. */
|
|
67
|
+
export type AuditAppendOutcome = 'appended' | 'appended-marked' | 'skipped-unmarked-host';
|
|
68
|
+
/** Adopt the probed verdict (called once by `apply`; tests inject it directly). */
|
|
69
|
+
export declare function adoptMarkerSupport(verdict: MarkerSupport): void;
|
|
58
70
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
71
|
+
* Observe whether this host stamps the `ignorable` envelope, by appending one
|
|
72
|
+
* audit event on a scratch session and reading the returned record back. The
|
|
73
|
+
* judgement is observed rather than inferred from an append implementation's
|
|
74
|
+
* source text (a source-text probe cannot see through a wrapper, a minifier or
|
|
75
|
+
* a future options bag), and it is safe: the scratch session is discarded, so
|
|
76
|
+
* an unmarked write there harms nothing.
|
|
77
|
+
*
|
|
78
|
+
* Folded context: `Session.append` optionally returns the appended record; a
|
|
79
|
+
* host that honours `{ ignorable: true }` returns it with `ignorable === true`,
|
|
80
|
+
* one that drops the options bag returns a record without the field, and a
|
|
81
|
+
* host that rejects the type outright throws — all three map to a verdict, and
|
|
82
|
+
* anything ambiguous or throwing fails closed to `'unsupported'`.
|
|
83
|
+
* @param createSession - builds the throwaway session to probe with.
|
|
84
|
+
* @returns the observed capability.
|
|
85
|
+
*/
|
|
86
|
+
export declare function probeMarkerSupport(createSession: () => Session): Promise<MarkerSupport>;
|
|
87
|
+
/**
|
|
88
|
+
* Append one dsh-library audit event when the host can carry it safely, and
|
|
89
|
+
* report what happened instead of skipping silently (the `tool/call` +
|
|
90
|
+
* `tool/result` events remain the model-visible log either way). The full rule
|
|
91
|
+
* set lives in the module doc; in short: known-vocabulary hosts append
|
|
92
|
+
* plainly, hosts observed to stamp the `ignorable` envelope append with the
|
|
93
|
+
* marker, and every other host gets no append plus one visible warning.
|
|
63
94
|
* @param session - the calling session.
|
|
64
95
|
* @param type - the audit event type.
|
|
65
96
|
* @param data - the audit payload.
|
|
97
|
+
* @returns which branch ran.
|
|
66
98
|
*/
|
|
67
|
-
export declare function appendAuditEvent(session: Session, type: typeof INJECT_EVENT | typeof PURGE_EVENT, data: LibraryInjectEvent | LibraryPurgeEvent):
|
|
99
|
+
export declare function appendAuditEvent(session: Session, type: typeof INJECT_EVENT | typeof PURGE_EVENT, data: LibraryInjectEvent | LibraryPurgeEvent): AuditAppendOutcome;
|
|
68
100
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElF,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,eAAe;QACvB,4FAA4F;QAC5F,gBAAgB,EAAE,kBAAkB,CAAA;QACpC,uDAAuD;QACvD,eAAe,EAAE,iBAAiB,CAAA;KACnC;CACF;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAA;IACf,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,sCAAsC;AACtC,eAAO,MAAM,YAAY,EAAG,gBAAyB,CAAA;AAErD,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAG,eAAwB,CAAA;AAEnD,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAA;AAEnE,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,iBAAiB,GAAG,uBAAuB,CAAA;AAYzF,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAG/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAe7F;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,YAAY,GAAG,OAAO,WAAW,EAC9C,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,GAC3C,kBAAkB,CAkBpB"}
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-library",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "Local document knowledge base for DeepSeek Harness: library_add/remove/list, hybrid semantic+keyword library_search with diversity re-ranking, relevance filtering and lost-in-the-middle avoidance, citation-aware injection, library_cite_check and library_diagnose —SQLite-backed index via the storage domain, local embedding, zero model downloads",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,13 +29,14 @@
|
|
|
29
29
|
"THIRD_PARTY_NOTICES.md",
|
|
30
30
|
"SECURITY.md",
|
|
31
31
|
"README.md",
|
|
32
|
-
"README
|
|
33
|
-
"README
|
|
34
|
-
"README
|
|
35
|
-
"README
|
|
32
|
+
"README-zh.md",
|
|
33
|
+
"README-es.md",
|
|
34
|
+
"README-pt.md",
|
|
35
|
+
"README-hi.md",
|
|
36
36
|
"LICENSE"
|
|
37
37
|
],
|
|
38
38
|
"dsh": {
|
|
39
|
+
"manifestVersion": 1,
|
|
39
40
|
"bundle": {
|
|
40
41
|
"patch": "./cordis.patch.yml"
|
|
41
42
|
}
|
|
@@ -66,7 +67,10 @@
|
|
|
66
67
|
"native-code:none"
|
|
67
68
|
],
|
|
68
69
|
"compatibility": {
|
|
69
|
-
"dshVersions": [
|
|
70
|
+
"dshVersions": [
|
|
71
|
+
"0.1.2-rc.1",
|
|
72
|
+
"0.1.5-rc.2"
|
|
73
|
+
]
|
|
70
74
|
},
|
|
71
75
|
"capability": {
|
|
72
76
|
"id": "local-knowledge-library",
|
|
@@ -96,20 +100,21 @@
|
|
|
96
100
|
"document-library"
|
|
97
101
|
],
|
|
98
102
|
"engines": {
|
|
99
|
-
"node": "^22.19.0 || >=24.0.0"
|
|
103
|
+
"node": "^22.19.0 || >=24.0.0",
|
|
104
|
+
"dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0"
|
|
100
105
|
},
|
|
101
106
|
"packageManager": "pnpm@11.7.0",
|
|
102
107
|
"peerDependencies": {
|
|
103
108
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
104
|
-
"@deepseek-ai/dsh-commands": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
105
|
-
"@deepseek-ai/dsh-fs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
106
|
-
"@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
107
|
-
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
108
|
-
"@deepseek-ai/dsh-storage": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
109
|
-
"@deepseek-ai/dsh-storage-domain": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
110
|
-
"@deepseek-ai/dsh-storage-json": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
111
|
-
"@deepseek-ai/dsh-subprocess": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
112
|
-
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
|
|
109
|
+
"@deepseek-ai/dsh-commands": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
110
|
+
"@deepseek-ai/dsh-fs": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
111
|
+
"@deepseek-ai/dsh-llm": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
112
|
+
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
113
|
+
"@deepseek-ai/dsh-storage": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
114
|
+
"@deepseek-ai/dsh-storage-domain": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
115
|
+
"@deepseek-ai/dsh-storage-json": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
116
|
+
"@deepseek-ai/dsh-subprocess": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
117
|
+
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
|
|
113
118
|
"@deepseek-ai/schemastery": "^3.18.2"
|
|
114
119
|
},
|
|
115
120
|
"dependencies": {
|
|
@@ -118,22 +123,22 @@
|
|
|
118
123
|
"zod": "^4.4.3"
|
|
119
124
|
},
|
|
120
125
|
"devDependencies": {
|
|
121
|
-
"@deepseek-ai/dsh-attachment": "0.1.5-rc.
|
|
126
|
+
"@deepseek-ai/dsh-attachment": "0.1.5-rc.2",
|
|
122
127
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
123
128
|
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
124
129
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
125
|
-
"@deepseek-ai/dsh-agent": "0.1.5-rc.
|
|
126
|
-
"@deepseek-ai/dsh-commands": "0.1.5-rc.
|
|
127
|
-
"@deepseek-ai/dsh-fs": "0.1.5-rc.
|
|
128
|
-
"@deepseek-ai/dsh-fs-local": "0.1.5-rc.
|
|
129
|
-
"@deepseek-ai/dsh-llm": "0.1.5-rc.
|
|
130
|
-
"@deepseek-ai/dsh-session": "0.1.5-rc.
|
|
131
|
-
"@deepseek-ai/dsh-storage": "0.1.5-rc.
|
|
132
|
-
"@deepseek-ai/dsh-storage-domain": "0.1.5-rc.
|
|
133
|
-
"@deepseek-ai/dsh-storage-json": "0.1.5-rc.
|
|
134
|
-
"@deepseek-ai/dsh-subprocess": "0.1.5-rc.
|
|
135
|
-
"@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.
|
|
136
|
-
"@deepseek-ai/dsh-tools": "0.1.5-rc.
|
|
130
|
+
"@deepseek-ai/dsh-agent": "0.1.5-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-commands": "0.1.5-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-fs": "0.1.5-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-fs-local": "0.1.5-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-llm": "0.1.5-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-session": "0.1.5-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-storage": "0.1.5-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-storage-domain": "0.1.5-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-storage-json": "0.1.5-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-subprocess": "0.1.5-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.5-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-tools": "0.1.5-rc.2",
|
|
137
142
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
138
143
|
"@types/node": "^22.19.0",
|
|
139
144
|
"@vitest/coverage-v8": "3.2.0",
|