dsh-library 0.2.11 → 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 +13 -0
- package/README-es.md +14 -3
- package/README-hi.md +14 -3
- package/README-pt.md +14 -3
- package/README-zh.md +14 -3
- package/README.md +13 -3
- 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 +17 -12
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ 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
|
+
## [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
|
+
|
|
8
21
|
## [0.2.11] - 2026-09-12
|
|
9
22
|
|
|
10
23
|
### Changed
|
package/README-es.md
CHANGED
|
@@ -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
|
[](#)
|
|
@@ -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) |
|
|
@@ -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
|
|
package/README-hi.md
CHANGED
|
@@ -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
|
[](#)
|
|
@@ -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
|
| मॉडल | किसी की आवश्यकता नहीं — अंतर्निहित एम्बेडर नियतात्मक हैश है (शून्य डाउनलोड) |
|
|
@@ -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
|
|
package/README-pt.md
CHANGED
|
@@ -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
|
[](#)
|
|
@@ -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) |
|
|
@@ -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
|
|
package/README-zh.md
CHANGED
|
@@ -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
|
[](#)
|
|
@@ -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
|
| 模型 | 无需任何模型 —— 内置嵌入为确定性哈希(零下载) |
|
|
@@ -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
|
@@ -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) |
|
|
@@ -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",
|
|
@@ -36,6 +36,7 @@
|
|
|
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": {
|