dsh-mask 0.2.2 → 0.2.3

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 CHANGED
@@ -1,10 +1,16 @@
1
- # Changelog
1
+ # Changelog
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
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.3] - 2026-09-04
9
+
10
+ ### Changed
11
+
12
+ - Align the devDependency pins to the published dsh `0.1.2-rc.1` line, move the compat CI probes from `0.1.1-rc.2` to `0.1.2-rc.1`, and re-verify the adaptive audit gate (unchanged: the gate stays closed on rc.1); no behavior change.
13
+
8
14
  ## [0.2.2] - 2026-09-01
9
15
 
10
16
  ### Changed
@@ -59,7 +65,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
59
65
 
60
66
  ### Added
61
67
 
62
- - PII masking middleware for DeepSeek Harness: request-time anonymization at the `agent/pre-step` boundary (phones, emails, ID cards, bank cards, keys, and opt-in IPs become `<TYPE_N>` placeholders), a `placeholder → original` restore table kept only in memory and the controlled `dsh_mask` storage domain, and a `mask/applied` audit session event that records counts + type distribution only.
68
+ - PII masking middleware for DeepSeek Harness: request-time anonymization at the `agent/pre-step` boundary (phones, emails, ID cards, bank cards, keys, and opt-in IPs become `<TYPE_N>` placeholders), a `placeholder 鈫?original` restore table kept only in memory and the controlled `dsh_mask` storage domain, and a `mask/applied` audit session event that records counts + type distribution only.
63
69
  - The `/mask` command (`status`/`on`/`off`/`restore <text>`/`help`) and the `mask_test` model tool (mask a snippet, never reveal the original).
64
70
  - The regex PII detector ported from Pii-Stripper-Middleware (`lib/strip.mjs`), plus a `key` detector for the spec's secret-type PII.
65
71
  - Pure display/log sanitizers (`lib/sanitize.mjs`) with extreme-case coverage: PII plaintext and the mapping table never leak into logs or results.
package/README.es.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Superficie | Estado |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.3` (adaptado el 2026-09-01): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
29
29
  | Node | `^22.19.0 \|\| >=24.0.0` |
30
30
  | Plataformas | Donde corra DSH (host puro, regex sin dependencias; sin mitad de navegador) |
31
31
  | Modelo | Modelos de texto totalmente soportados |
@@ -121,7 +121,7 @@ Todas las opciones son campos Schemastery `Config` (modificables desde cordis.ym
121
121
 
122
122
  - **Solo regex.** `person` y `address` requieren un reconocedor NER externo; fallan al cargar. Cubierto de serie: teléfono, correo, documento, tarjeta, clave e IP (opt-in).
123
123
  - **La restauración visual necesita una mitad de cliente.** Enmascarar es host-side; desenmascarar burbujas en la UI es una función de navegador que esta forma host puro no incluye. La tabla y `restore()` son el seam host-side completo.
124
- - **Eventos en `0.1.2-alpha.3`.** El host aún no registra `mask/*`, así que los appends de auditoría se omiten (las sesiones siguen cargando).
124
+ - **Eventos en `0.1.2-rc.1`.** El host aún no registra `mask/*`, así que los appends de auditoría se omiten (las sesiones siguen cargando).
125
125
 
126
126
  ## Development
127
127
 
@@ -191,3 +191,7 @@ Este proyecto es uno de los [33 complementos de DeepSeek Harness](https://github
191
191
  ## License
192
192
 
193
193
  [LICENSE](LICENSE) (Apache License 2.0) © 2026 dsh-mask contributors
194
+
195
+ ### Instalar desde el mercado de DSH Desktop
196
+
197
+ Todos los plugins de PerryLink pueden explorarse en el mercado integrado de DSH Desktop: **Market → Sources → add source → pegar** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ seleccionarlo**. La instalación sigue pasando por la verificación de identidad npm del mercado y tu confirmación.
package/README.hi.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | सतह | स्थिति |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.3` (2026-09-01 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
29
29
  | Node | `^22.19.0 \|\| >=24.0.0` |
30
30
  | प्लेटफ़ॉर्म | जहाँ DSH चले (शुद्ध host, शून्य-निर्भरता regex; कोई ब्राउज़र आधा नहीं) |
31
31
  | मॉडल | टेक्स्ट मॉडल पूर्ण रूप से समर्थित |
@@ -121,7 +121,7 @@ dsh --profile web --dump-config | grep -A2 'id: mask'
121
121
 
122
122
  - **केवल regex।** `person` और `address` को बाहरी NER पहचानकर्ता चाहिए; लोड पर विफल। बॉक्स में: फ़ोन, ईमेल, आईडी कार्ड, बैंक कार्ड, कुंजी और IP (opt-in)।
123
123
  - **डिस्प्ले-लेयर पुनर्स्थापना को क्लाइंट आधा चाहिए।** मास्किंग host-side है; UI बुलबुलों को खोलना एक ब्राउज़र-आधा सुविधा है जो यह शुद्ध-host रूप नहीं देता। तालिका और `restore()` पूर्ण host-side seam हैं।
124
- - **`0.1.2-alpha.3` इवेंट।** host अभी `mask/*` दर्ज नहीं करता, इसलिए ऑडिट appends छोड़े जाते हैं (सत्र लोड होते रहते हैं)।
124
+ - **`0.1.2-rc.1` इवेंट।** host अभी `mask/*` दर्ज नहीं करता, इसलिए ऑडिट appends छोड़े जाते हैं (सत्र लोड होते रहते हैं)।
125
125
 
126
126
  ## Development
127
127
 
@@ -191,3 +191,7 @@ PII बेंचमार्क (108 सिंथेटिक नमूनों
191
191
  ## License
192
192
 
193
193
  [LICENSE](LICENSE) (Apache License 2.0) © 2026 dsh-mask contributors
194
+
195
+ ### DSH Desktop मार्केट से इंस्टॉल करें
196
+
197
+ सभी PerryLink प्लगइन DSH Desktop के बिल्ट-इन मार्केट में देखे जा सकते हैं: **Market → Sources → add source → पेस्ट करें** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ चुनें**। इंस्टॉलेशन मार्केट के npm-identity सत्यापन और आपकी पुष्टि से ही होता है।
package/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  | Surface | Status |
28
28
  |---|---|
29
- | Harness | DeepSeek Harness `0.1.2-alpha.3` (adapted 2026-09-01): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
29
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
30
30
  | Node | `^22.19.0 \|\| >=24.0.0` |
31
31
  | Platforms | Anywhere DSH runs (pure host, zero-dependency regex; no browser half) |
32
32
  | Model | Text models fully supported; no extra model capability required |
@@ -142,13 +142,13 @@ Example override in your profile patch:
142
142
 
143
143
  - **Regex only.** Name (`person`) and address (`address`) recognition needs an external NER recognizer, which the pure-host zero-dependency form does not bundle; `mode: regex+ner` and those entities fail loudly at load. The PII types covered out of the box are phone, email, ID card, bank card, key, and (opt-in) IP.
144
144
  - **Display-layer restore needs a client half.** Masking is fully host-side, but transparently un-masking the assistant bubbles in the client UI is a browser-half feature this pure-host form does not ship; the restore table and `restore()` are the complete host-side seam a client plugin would consume, and `/mask restore` covers interactive needs today.
145
- - **Session events on `0.1.2-alpha.3`.** The harness does not yet record `mask/*` event types, and its `Session.append` does not stamp the `ignorable` envelope, so on alpha.3 the session-log audit appends are skipped (sessions keep loading); the plugin enables them automatically once a host records the types or supports the `ignorable` envelope.
145
+ - **Session events on `0.1.2-rc.1`.** The harness does not yet record `mask/*` event types, and its `Session.append` does not stamp the `ignorable` envelope, so on alpha.3 the session-log audit appends are skipped (sessions keep loading); the plugin enables them automatically once a host records the types or supports the `ignorable` envelope.
146
146
 
147
147
  ## Development
148
148
 
149
149
  ```sh
150
150
  pnpm install # node ^22.19 || >=24
151
- pnpm run typecheck && pnpm run typecheck:ci # tsc --checkJs against the published 0.1.2-alpha.3 peers
151
+ pnpm run typecheck && pnpm run typecheck:ci # tsc --checkJs against the published 0.1.2-rc.1 peers
152
152
  pnpm test # node --test
153
153
  pnpm run verify:self-contained # dependency specs resolve from the registry
154
154
  pnpm run verify:artifacts # shipped files present + index.mjs importable
@@ -209,6 +209,10 @@ This project is one of the [33 DeepSeek Harness plugins](https://github.com/Perr
209
209
  | **[dsh-dsh-test-drive](https://github.com/PerryLink/dsh-dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
210
210
  | **[dsh-dsh-translate](https://github.com/PerryLink/dsh-dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
211
211
 
212
+ ### Install from the DSH Desktop Market
213
+
214
+ All PerryLink plugins are browsable in the built-in DSH Desktop Market: **Market → Sources → add source → paste** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ select it**. Installation still goes through the Market's npm-identity verification and your confirmation.
215
+
212
216
  ## License
213
217
 
214
218
  [LICENSE](LICENSE) (Apache License 2.0) © 2026 dsh-mask contributors
package/README.pt.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | Superfície | Estado |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.3` (adaptado em 2026-09-01): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
29
29
  | Node | `^22.19.0 \|\| >=24.0.0` |
30
30
  | Plataformas | Onde o DSH rodar (host puro, regex sem dependências; sem metade de navegador) |
31
31
  | Modelo | Modelos de texto totalmente suportados |
@@ -121,7 +121,7 @@ Todas as opções são campos Schemastery `Config` (alteráveis via cordis.yml).
121
121
 
122
122
  - **Somente regex.** `person` e `address` exigem um reconhecedor NER externo; falham ao carregar. Coberto de série: telefone, e-mail, documento, cartão, chave e IP (opt-in).
123
123
  - **A restauração visual precisa de uma metade de cliente.** Mascarar é host-side; desmascarar bolhas na UI é uma função de navegador que esta forma host puro não inclui. A tabela e `restore()` são o seam host-side completo.
124
- - **Eventos em `0.1.2-alpha.3`.** O host ainda não registra `mask/*`, então os appends de auditoria são omitidos (sessões continuam carregando).
124
+ - **Eventos em `0.1.2-rc.1`.** O host ainda não registra `mask/*`, então os appends de auditoria são omitidos (sessões continuam carregando).
125
125
 
126
126
  ## Development
127
127
 
@@ -191,3 +191,7 @@ Este projeto é um dos [33 plugins de DeepSeek Harness](https://github.com/Perry
191
191
  ## License
192
192
 
193
193
  [LICENSE](LICENSE) (Apache License 2.0) © 2026 dsh-mask contributors
194
+
195
+ ### Instalar a partir do mercado do DSH Desktop
196
+
197
+ Todos os plugins PerryLink podem ser explorados no mercado integrado do DSH Desktop: **Market → Sources → add source → colar** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ selecionar**. A instalação continua passando pela verificação de identidade npm do mercado e pela sua confirmação.
package/README.zh.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  | 维度 | 状态 |
27
27
  |---|---|
28
- | Harness | DeepSeek Harness `0.1.2-alpha.3`(2026-09-01 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
28
+ | Harness | DeepSeek Harness `0.1.2-rc.1`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
29
29
  | Node | `^22.19.0 \|\| >=24.0.0` |
30
30
  | 平台 | 任何 DSH 可运行处(纯 host、零依赖正则;无浏览器半) |
31
31
  | 模型 | 文本模型完全支持;无需额外模型能力 |
@@ -139,13 +139,13 @@ profile patch 覆盖示例:
139
139
 
140
140
  - **仅正则。** 姓名(`person`)与地址(`address`)识别需要外部 NER 识别器,纯 host 零依赖形态未捆绑;`mode: regex+ner` 与这些实体在加载期响亮失败。开箱即用覆盖电话、邮箱、身份证、银行卡、密钥与(可选)IP。
141
141
  - **展示层还原需要浏览器半。** 遮罩完全在 host 侧,但客户端 UI 中透明还原助手气泡属于浏览器半功能,本纯 host 形态未交付;恢复表与 `restore()` 是供客户端插件消费的完整 host 侧 seam,交互需求现由 `/mask restore` 覆盖。
142
- - **`0.1.2-alpha.3` 会话事件。** 宿主尚未收录 `mask/*` 事件类型,且其 `Session.append` 不盖章 `ignorable` 信封,因此 alpha.3 上会话日志审计 append 被跳过(会话仍可加载);宿主收录类型或支持 `ignorable` 信封后自动开启。
142
+ - **`0.1.2-rc.1` 会话事件。** 宿主尚未收录 `mask/*` 事件类型,且其 `Session.append` 不盖章 `ignorable` 信封,因此 alpha.3 上会话日志审计 append 被跳过(会话仍可加载);宿主收录类型或支持 `ignorable` 信封后自动开启。
143
143
 
144
144
  ## Development
145
145
 
146
146
  ```sh
147
147
  pnpm install # node ^22.19 || >=24
148
- pnpm run typecheck && pnpm run typecheck:ci # tsc --checkJs(对照 0.1.2-alpha.3 peers)
148
+ pnpm run typecheck && pnpm run typecheck:ci # tsc --checkJs(对照 0.1.2-rc.1 peers)
149
149
  pnpm test # node --test
150
150
  pnpm run verify:self-contained # 依赖 spec 均来自 registry
151
151
  pnpm run verify:artifacts # 发布文件齐全 + index.mjs 可 import
@@ -209,3 +209,7 @@ PII 基准(108 个合成样本的逐类 P/R/F1)见 [`benchmark/RESULTS.md`](
209
209
  ## License
210
210
 
211
211
  [LICENSE](LICENSE)(Apache License 2.0)© 2026 dsh-mask contributors
212
+
213
+ ### 从 DSH Desktop 市场安装
214
+
215
+ 所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:**市场 → 来源 → 添加来源 → 粘贴** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ 选中**。安装仍需通过市场的 npm 身份校验与你的确认。
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-mask",
3
3
  "description": "PII masking middleware for DeepSeek Harness: anonymize names, phones, emails, ID cards, bank cards, keys, and addresses to placeholders before they reach the model, restore them at the display layer, keep the restore table only in memory and a controlled storage domain, never log plaintext, and expose /mask and the mask_test tool",
4
- "version": "0.2.2",
4
+ "version": "0.2.3",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/PerryLink/dsh-mask.git"
@@ -70,7 +70,7 @@
70
70
  ],
71
71
  "compatibility": {
72
72
  "dshVersions": [
73
- "0.1.2-alpha.3"
73
+ "0.1.2-rc.1"
74
74
  ]
75
75
  },
76
76
  "capability": {
@@ -99,18 +99,19 @@
99
99
  "dependencies": {
100
100
  "zod": "^4.4.3"
101
101
  },
102
- "devDependencies": {"@deepseek-ai/dsh-attachment": "0.1.2-alpha.3",
102
+ "devDependencies": {
103
+ "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
103
104
  "@deepseek-ai/cordis": "^4.0.2",
104
- "@deepseek-ai/cordis-plugin-include": "1.0.6",
105
- "@deepseek-ai/cordis-plugin-loader": "1.0.2",
106
- "@deepseek-ai/dsh-agent": "0.1.2-alpha.3",
107
- "@deepseek-ai/dsh-commands": "0.1.2-alpha.3",
108
- "@deepseek-ai/dsh-session": "0.1.2-alpha.3",
109
- "@deepseek-ai/dsh-storage": "0.1.2-alpha.3",
110
- "@deepseek-ai/dsh-storage-domain": "0.1.2-alpha.3",
111
- "@deepseek-ai/dsh-storage-json": "0.1.2-alpha.3",
112
- "@deepseek-ai/dsh-system-prompt": "0.1.2-alpha.3",
113
- "@deepseek-ai/dsh-tools": "0.1.2-alpha.3",
105
+ "@deepseek-ai/cordis-plugin-include": "^1.0.7",
106
+ "@deepseek-ai/cordis-plugin-loader": "^1.0.3",
107
+ "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
108
+ "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
109
+ "@deepseek-ai/dsh-session": "0.1.2-rc.1",
110
+ "@deepseek-ai/dsh-storage": "0.1.2-rc.1",
111
+ "@deepseek-ai/dsh-storage-domain": "0.1.2-rc.1",
112
+ "@deepseek-ai/dsh-storage-json": "0.1.2-rc.1",
113
+ "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
114
+ "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
114
115
  "@deepseek-ai/schemastery": "^3.18.2",
115
116
  "@types/node": "^22.19.0",
116
117
  "oxlint": "0.18.1",