dsh-permission-rules 0.6.8 → 0.6.10
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 +25 -0
- package/README.es.md +6 -2
- package/README.hi.md +6 -2
- package/README.md +6 -2
- package/README.pt.md +6 -2
- package/README.zh.md +6 -2
- package/lib/index.js +22 -8
- package/lib/types/runtime.d.ts +19 -5
- package/lib/types/runtime.d.ts.map +1 -1
- package/package.json +22 -22
- package/scripts/repair-session-logs.mjs +27 -7
- package/src/runtime.ts +22 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
## v0.6.10 - 2026-09-04
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
|
|
5
|
+
- `isUnmarkedHostVersion` now classifies the `0.1.2-rc` line as non-stamping: `0.1.2-rc.1` ships the alpha.5 surface (the third `Session.append` parameter is `SurfaceIntent` for surface event types only, so no rc build in the `0.1.2` minor stamps the marker). Previously `0.1.2-rc.1` fell through both regexes and was probed as marker-aware, so the first decision appended an unmarked event that pollutes the session log before the probe degrades audit.
|
|
6
|
+
- `isUnmarkedHostVersion` now also classifies the `0.1.3-alpha` line as non-stamping (it keeps the same surface-only append signature, verified against the `dsh-v0.1.3-alpha.1` tag) and every rc build in minor 2 and later (defensive; over-refusal is harmless because `allowUnmarkedAudit` opts back in).
|
|
7
|
+
- `scripts/repair-session-logs.mjs` syncs its `KNOWN_SESSION_EVENT_TYPES` copy with the harness catalog (adds `model/selection`, `session-log-deepseek/delivery-accepted`, `subagent/model-selection-policy`, `team/member`, `team/message/delivered`, `team/message/queued`, `team/task`) so `scan` stops misreporting those rows as foreign.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Dev pins move from the published dsh `0.1.2-alpha.5` line to `0.1.2-rc.1` (17 `@deepseek-ai/dsh-*` packages); `dshWorkshop.compatibility.dshVersions` and the compat workflow's CLI/base/headless installs now target `0.1.2-rc.1`.
|
|
12
|
+
- Repack the vendored `dsh-auto-review` sibling tarball at `0.10.3` and repoint the `file:` devDependency.
|
|
13
|
+
- `scripts/repair-session-logs.mjs` discovers v2 log generations (`session.v2.jsonl[.zstd]`, written by the `0.1.3-alpha` line) and carries the `assistant/attempt` type alongside `assistant/chunk` (the harness v2 catalog swapped the two). Its docs now state that v1 logs must be `strip`ped before a v2 host opens them: the v1→v2 migration refuses unknown v1 events even when marked `ignorable: true`, while v2 logs accept `repair`-stamped rows.
|
|
14
|
+
|
|
15
|
+
### Docs
|
|
16
|
+
|
|
17
|
+
- Five-language READMEs: the harness compatibility row states `0.1.2-rc.1` and the audit-marker limitation covers the `0.1.2-rc` and `0.1.3-alpha` lines (plus the v1-strip-before-v2-migration guidance); AGENTS.md facts updated (pinned rc.1 dev peers, 0.10.3 tarball, 0.1.3-alpha pre-check, v2 repair semantics).
|
|
18
|
+
|
|
19
|
+
## v0.6.9 - 2026-09-03
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Vendor the `dsh-auto-review 0.10.2` integration tarball (its runtime dependencies now pin the published dsh `0.1.2-alpha.5` line; `dsh-agent-spine-demo` moved to devDependencies) and update the `file:` devDependency.
|
|
24
|
+
- Dev pins `@deepseek-ai/cordis-plugin-loader ^1.0.3` / `@deepseek-ai/cordis-plugin-include ^1.0.7` aligned with the `cordis 4.0.2` peer ranges.
|
|
25
|
+
|
|
1
26
|
## v0.6.8 - 2026-09-03
|
|
2
27
|
|
|
3
28
|
### Fixed
|
package/README.es.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.2-
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado el 2026-09-04): 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 y la línea `0.1.2-rc` se preverifica como no marcada. |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | Todas (host + cliente web de settings) |
|
|
31
31
|
| Model | Cualquiera (las razones deny/ask se muestran a través de los resultados de herramienta) |
|
|
@@ -169,7 +169,7 @@ Todos los parámetros son campos Schemastery `Config` (modificables desde cordis
|
|
|
169
169
|
|
|
170
170
|
## Known limitations
|
|
171
171
|
|
|
172
|
-
- **Marcador de auditoría en hosts previos al marcador o que rechazan eventos.** `permissionRules/decision` se anexa con `ignorable: true`; los hosts cuyo `Session.append` es anterior al marcador (las líneas `0.1.0-rc.1`–`rc.7` y `0.1.1-rc.1`–`rc.7`) lo descartan silenciosamente,
|
|
172
|
+
- **Marcador de auditoría en hosts previos al marcador o que rechazan eventos.** `permissionRules/decision` se anexa con `ignorable: true`; los hosts cuyo `Session.append` es anterior al marcador (las líneas `0.1.0-rc.1`–`rc.7` y `0.1.1-rc.1`–`rc.7`) lo descartan silenciosamente, la línea `0.1.2-rc` trae la superficie alpha.5 (ninguna opción de append escribe el marcador), la línea `0.1.2-alpha` rechaza eventos de plugin al leerlos incluso marcados, y la línea `0.1.3-alpha` mantiene la misma firma de append surface-only — el runtime detecta todas antes del primer append y desactiva la auditoría de registro con una advertencia única. La migración de registro v1→v2 de la línea `0.1.3-alpha` también rechaza eventos v1 desconocidos incluso marcados, así que aplica `strip` a las filas de auditoría v1 antes de que un host 0.1.3 abra el registro. Pon `allowUnmarkedAudit: true` para reactivar; repara registros ya escritos con `scripts/repair-session-logs.mjs` (su modo `strip` elimina filas de auditoría donde el marcador no ayuda).
|
|
173
173
|
- **Los candidatos de ruta son heurísticos.** Solo las claves de argumento documentadas alimentan el emparejamiento de rutas, y el emparejamiento relativo al workspace es insensible a mayúsculas ASCII solo con `caseInsensitivePaths` activado.
|
|
174
174
|
- **Los globs son un subconjunto conservador.** Sin expansión de llaves — escribe dos patrones, o usa modo regex.
|
|
175
175
|
- **La guardia de backtracking de regex es estructural, no exhaustiva.** Prefiere el modo glob para archivos no confiables.
|
|
@@ -262,3 +262,7 @@ Este proyecto es uno de los [33 complementos de DeepSeek Harness](https://github
|
|
|
262
262
|
## License
|
|
263
263
|
|
|
264
264
|
[Apache License 2.0](LICENSE) © 2026 dsh-permission-rules contributors
|
|
265
|
+
|
|
266
|
+
### Instalar desde el mercado de DSH Desktop
|
|
267
|
+
|
|
268
|
+
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
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.2-
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-rc.1` (2026-09-04 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है और `0.1.2-rc` पंक्ति की पहले append से पहले ही अनमार्क्ड के रूप में पूर्व-जाँच होती है। |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | सभी (host + वेब settings क्लाइंट) |
|
|
31
31
|
| Model | कोई भी (deny/ask कारण टूल परिणामों के माध्यम से दिखते हैं) |
|
|
@@ -169,7 +169,7 @@ dsh --profile web --dump-config | grep -A4 'id: permission-rules'
|
|
|
169
169
|
|
|
170
170
|
## Known limitations
|
|
171
171
|
|
|
172
|
-
- **पूर्व-मार्कर hosts और घटना-अस्वीकार hosts पर ऑडिट मार्कर।** `permissionRules/decision` `ignorable: true` से जोड़ा जाता है; जिन hosts का `Session.append` मार्कर से पहले का है (`0.1.0-rc.1`–`rc.7` और `0.1.1-rc.1`–`rc.7` पंक्तियाँ) वे इसे चुपचाप छोड़ देते हैं,
|
|
172
|
+
- **पूर्व-मार्कर hosts और घटना-अस्वीकार hosts पर ऑडिट मार्कर।** `permissionRules/decision` `ignorable: true` से जोड़ा जाता है; जिन hosts का `Session.append` मार्कर से पहले का है (`0.1.0-rc.1`–`rc.7` और `0.1.1-rc.1`–`rc.7` पंक्तियाँ) वे इसे चुपचाप छोड़ देते हैं, `0.1.2-rc` पंक्ति alpha.5 सतह लाती है (append का कोई विकल्प मार्कर नहीं लिखता), `0.1.2-alpha` पंक्ति पढ़ने पर चिह्नित प्लगइन घटनाओं को भी अस्वीकारती है, और `0.1.3-alpha` पंक्ति वही surface-only append हस्ताक्षर रखती है — runtime पहले append से पहले इन सबका पता लगाकर एक बार की चेतावनी से सत्र-लॉग ऑडिट अक्षम कर देता है। `0.1.3-alpha` पंक्ति का v1→v2 लॉग प्रवासन चिह्नित अज्ञात v1 घटनाओं को भी अस्वीकारता है, इसलिए 0.1.3 host के लॉग खोलने से पहले v1 ऑडिट पंक्तियों को `strip` करें। पुनः सक्षम के लिए `allowUnmarkedAudit: true`; पहले से लिखे लॉग `scripts/repair-session-logs.mjs` से मरम्मत करें (जहाँ मार्कर मदद नहीं करता वहाँ इसका `strip` मोड ऑडिट पंक्तियाँ हटाता है)।
|
|
173
173
|
- **पथ उम्मीदवार अनुमानी हैं।** केवल दस्तावेज़ित तर्क कुंजियाँ पथ मिलान को खिलाती हैं, और कार्यक्षेत्र-सापेक्ष मिलान केवल `caseInsensitivePaths` चालू होने पर ASCII-केस-असंवेदी है।
|
|
174
174
|
- **globs एक रूढ़िवादी उपसमुच्चय हैं।** कोई ब्रेस विस्तार नहीं — दो पैटर्न लिखें, या regex मोड उपयोग करें।
|
|
175
175
|
- **regex बैकट्रैकिंग गार्ड संरचनात्मक है, संपूर्ण नहीं।** अविश्वसनीय फ़ाइलों के लिए glob मोड पसंद करें।
|
|
@@ -262,3 +262,7 @@ node scripts/check-readme-sync.mjs # five-language README sync gate (also in C
|
|
|
262
262
|
## License
|
|
263
263
|
|
|
264
264
|
[Apache License 2.0](LICENSE) © 2026 dsh-permission-rules contributors
|
|
265
|
+
|
|
266
|
+
### DSH Desktop मार्केट से इंस्टॉल करें
|
|
267
|
+
|
|
268
|
+
सभी 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-
|
|
29
|
+
| Harness | DeepSeek Harness `0.1.2-rc.1` (adapted 2026-09-04): 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 and the `0.1.2-rc` line is pre-checked as unmarked. The `0.1.3-alpha` line (checkout pre-verified 2026-09-04) keeps the same surface-only append signature and is pre-checked as unmarked too; its v1→v2 log migration refuses unknown v1 events even when marked, so strip v1 audit rows before a 0.1.3 host opens the log. |
|
|
30
30
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
31
31
|
| Platforms | All (host + web settings client) |
|
|
32
32
|
| Model | Any (deny/ask reasons surface through tool results) |
|
|
@@ -170,7 +170,7 @@ All tunables are Schemastery `Config` fields (changeable from cordis.yml). An id
|
|
|
170
170
|
|
|
171
171
|
## Known limitations
|
|
172
172
|
|
|
173
|
-
- **Audit marker on pre-marker and refusing hosts.** `permissionRules/decision` is appended with `ignorable: true`; hosts whose `Session.append` predates the marker (the `0.1.0-rc.1`–`rc.7` and `0.1.1-rc.1`–`rc.7` lines) silently drop it,
|
|
173
|
+
- **Audit marker on pre-marker and refusing hosts.** `permissionRules/decision` is appended with `ignorable: true`; hosts whose `Session.append` predates the marker (the `0.1.0-rc.1`–`rc.7` and `0.1.1-rc.1`–`rc.7` lines) silently drop it, the `0.1.2-rc` line ships the alpha.5 surface (no append option writes the marker), the `0.1.2-alpha` line refuses plugin events on read even when marked, and the `0.1.3-alpha` line keeps the same surface-only append signature — the runtime detects all of these before the first append and disables session-log audit with a one-time warning. The `0.1.3-alpha` line's v1→v2 log migration also refuses unknown v1 events even when marked, so `strip` v1 audit rows before a 0.1.3 host opens the log. Set `allowUnmarkedAudit: true` to opt back in; repair already-written logs with `scripts/repair-session-logs.mjs` (its `strip` mode removes audit rows where the marker cannot help).
|
|
174
174
|
- **Path candidates are heuristic.** Only the documented argument keys feed path matching, and workspace-relative matching is ASCII-case-insensitive only when `caseInsensitivePaths` is on.
|
|
175
175
|
- **Globs are a conservative subset.** No brace expansion — write two patterns, or use regex mode.
|
|
176
176
|
- **The regex backtracking guard is structural, not exhaustive.** Prefer glob mode for untrusted files.
|
|
@@ -260,6 +260,10 @@ This project is one of the [33 DeepSeek Harness plugins](https://github.com/Perr
|
|
|
260
260
|
| **[dsh-dsh-test-drive](https://github.com/PerryLink/dsh-dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
|
|
261
261
|
| **[dsh-dsh-translate](https://github.com/PerryLink/dsh-dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
|
|
262
262
|
|
|
263
|
+
### Install from the DSH Desktop Market
|
|
264
|
+
|
|
265
|
+
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.
|
|
266
|
+
|
|
263
267
|
## License
|
|
264
268
|
|
|
265
269
|
[Apache License 2.0](LICENSE) © 2026 dsh-permission-rules contributors
|
package/README.pt.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.2-
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-rc.1` (adaptado em 2026-09-04): 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 e a linha `0.1.2-rc` é pré-verificada como não marcada. |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | Todas (host + cliente web de settings) |
|
|
31
31
|
| Model | Qualquer (razões deny/ask aparecem pelos resultados de ferramenta) |
|
|
@@ -169,7 +169,7 @@ Todos os parâmetros são campos Schemastery `Config` (alteráveis pelo cordis.y
|
|
|
169
169
|
|
|
170
170
|
## Known limitations
|
|
171
171
|
|
|
172
|
-
- **Marcador de auditoria em hosts anteriores ao marcador ou que rejeitam eventos.** `permissionRules/decision` é anexado com `ignorable: true`; hosts cujo `Session.append` é anterior ao marcador (as linhas `0.1.0-rc.1`–`rc.7` e `0.1.1-rc.1`–`rc.7`) o descartam silenciosamente,
|
|
172
|
+
- **Marcador de auditoria em hosts anteriores ao marcador ou que rejeitam eventos.** `permissionRules/decision` é anexado com `ignorable: true`; hosts cujo `Session.append` é anterior ao marcador (as linhas `0.1.0-rc.1`–`rc.7` e `0.1.1-rc.1`–`rc.7`) o descartam silenciosamente, a linha `0.1.2-rc` traz a superfície alpha.5 (nenhuma opção de append escreve o marcador), a linha `0.1.2-alpha` rejeita eventos de plugin na leitura mesmo marcados, e a linha `0.1.3-alpha` mantém a mesma assinatura de append surface-only — o runtime detecta todas antes do primeiro append e desativa a auditoria de log com um aviso único. A migração de log v1→v2 da linha `0.1.3-alpha` também rejeita eventos v1 desconhecidos mesmo marcados, então aplique `strip` às linhas de auditoria v1 antes de um host 0.1.3 abrir o log. Ponha `allowUnmarkedAudit: true` para reativar; repare logs já escritos com `scripts/repair-session-logs.mjs` (seu modo `strip` remove linhas de auditoria onde o marcador não ajuda).
|
|
173
173
|
- **Candidatos de caminho são heurísticos.** Somente as chaves de argumento documentadas alimentam a correspondência de caminho, e a correspondência relativa ao workspace é insensível a maiúsculas ASCII apenas com `caseInsensitivePaths` ativado.
|
|
174
174
|
- **Globs são um subconjunto conservador.** Sem expansão de chaves — escreva dois padrões, ou use o modo regex.
|
|
175
175
|
- **A guarda de backtracking de regex é estrutural, não exaustiva.** Prefira o modo glob para arquivos não confiáveis.
|
|
@@ -262,3 +262,7 @@ Este projeto é um dos [33 plugins de DeepSeek Harness](https://github.com/Perry
|
|
|
262
262
|
## License
|
|
263
263
|
|
|
264
264
|
[Apache License 2.0](LICENSE) © 2026 dsh-permission-rules contributors
|
|
265
|
+
|
|
266
|
+
### Instalar a partir do mercado do DSH Desktop
|
|
267
|
+
|
|
268
|
+
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
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.2-
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-rc.1`(2026-09-04 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变,`0.1.2-rc` 线在首次追加前即被预检为未盖章。 |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | 全部(host + Web 设置客户端) |
|
|
31
31
|
| Model | 任意(deny/ask 原因经工具结果呈现) |
|
|
@@ -169,7 +169,7 @@ dsh --profile web --dump-config | grep -A4 'id: permission-rules'
|
|
|
169
169
|
|
|
170
170
|
## Known limitations
|
|
171
171
|
|
|
172
|
-
- **前标记宿主与拒绝型宿主上的审计标记。** `permissionRules/decision` 以 `ignorable: true` 追加;`Session.append` 早于该标记的宿主(`0.1.0-rc.1`–`rc.7` 与 `0.1.1-rc.1`–`rc.7`
|
|
172
|
+
- **前标记宿主与拒绝型宿主上的审计标记。** `permissionRules/decision` 以 `ignorable: true` 追加;`Session.append` 早于该标记的宿主(`0.1.0-rc.1`–`rc.7` 与 `0.1.1-rc.1`–`rc.7` 线)静默丢弃它,`0.1.2-rc` 线沿用 alpha.5 表面(append 无任何选项能写该标记),`0.1.2-alpha` 线在读取时连已标记的插件事件也拒绝,`0.1.3-alpha` 线同样沿用 surface-only 追加签名——运行时在首次追加前检测这些线并以一次性警告禁用会话日志审计。`0.1.3-alpha` 线的 v1→v2 日志迁移连已标记的未知 v1 事件也拒绝,故在 0.1.3 宿主打开日志前需先 `strip` 掉 v1 审计行。设 `allowUnmarkedAudit: true` 重新启用;用 `scripts/repair-session-logs.mjs` 修复已写日志(标记无济于事的宿主用其 `strip` 模式移除审计行)。
|
|
173
173
|
- **路径候选是启发式的。** 只有文档化的参数键参与路径匹配,且工作区相对匹配仅在 `caseInsensitivePaths` 开启时忽略 ASCII 大小写。
|
|
174
174
|
- **glob 是保守子集。** 无花括号展开——写两个模式,或用正则模式。
|
|
175
175
|
- **正则回溯守卫是结构性的、非穷尽的。** 对不可信文件优先用 glob 模式。
|
|
@@ -262,3 +262,7 @@ node scripts/check-readme-sync.mjs # five-language README sync gate (also in C
|
|
|
262
262
|
## License
|
|
263
263
|
|
|
264
264
|
[Apache License 2.0](LICENSE) © 2026 dsh-permission-rules contributors
|
|
265
|
+
|
|
266
|
+
### 从 DSH Desktop 市场安装
|
|
267
|
+
|
|
268
|
+
所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:**市场 → 来源 → 添加来源 → 粘贴** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **→ 选中**。安装仍需通过市场的 npm 身份校验与你的确认。
|
package/lib/index.js
CHANGED
|
@@ -3712,6 +3712,14 @@ async function apply(ctx, config) {
|
|
|
3712
3712
|
* later stamp the marker. The `0.1.1-rc` line regressed the same way
|
|
3713
3713
|
* (verified on `0.1.1-rc.2` — the stamping fix exists only on harness
|
|
3714
3714
|
* master), so `0.1.1-rc.1`–`0.1.1-rc.7` are treated as unmarked too.
|
|
3715
|
+
* - The `0.1.2-rc` line ships the alpha.5 surface: the third
|
|
3716
|
+
* `Session.append` parameter is `SurfaceIntent` for surface event types
|
|
3717
|
+
* only, so no rc build in the `0.1.2` minor stamps the marker either
|
|
3718
|
+
* (verified against the `dsh-v0.1.2-rc.1` tag). The whole rc line is
|
|
3719
|
+
* treated as unmarked.
|
|
3720
|
+
* - The `0.1.3-alpha` line keeps that surface-only append signature
|
|
3721
|
+
* (verified against the `dsh-v0.1.3-alpha.1` tag), so its builds stamp
|
|
3722
|
+
* the marker no more than rc.1 does and the line is treated as unmarked.
|
|
3715
3723
|
* - The `0.1.2-alpha` line refuses to interpret logs containing plugin
|
|
3716
3724
|
* event types even when the envelope carries `ignorable: true` (verified
|
|
3717
3725
|
* on `0.1.2-alpha-1`, reported by @rgw87 in issue #15), so audit events
|
|
@@ -3719,19 +3727,25 @@ async function apply(ctx, config) {
|
|
|
3719
3727
|
* whole alpha line is treated as unsafe; over-refusal is harmless because
|
|
3720
3728
|
* `allowUnmarkedAudit: true` opts back in, and
|
|
3721
3729
|
* `scripts/repair-session-logs.mjs strip` removes already-written audit
|
|
3722
|
-
* rows for hosts where the marker cannot help. On 0.1.2-alpha.2 the
|
|
3723
|
-
*
|
|
3724
|
-
*
|
|
3725
|
-
*
|
|
3730
|
+
* rows for hosts where the marker cannot help. On `0.1.2-alpha.2` the
|
|
3731
|
+
* envelope field is restored for stored-log read compatibility only — its
|
|
3732
|
+
* `Session.append` still cannot stamp the marker, so the gate behavior is
|
|
3733
|
+
* unchanged.
|
|
3734
|
+
* - Every rc build in minor 2 and later is treated as unmarked too
|
|
3735
|
+
* (defensive: a future `0.1.3-rc` line would ship at least the same
|
|
3736
|
+
* surface, and over-refusal is harmless for the reasons above).
|
|
3737
|
+
* Non-matching (later stable or unresolvable) versions are treated as
|
|
3738
|
+
* possibly-marker-aware and verified by the append probe.
|
|
3726
3739
|
* @param version - the installed peer version string.
|
|
3727
3740
|
* @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
|
|
3728
|
-
* `0.1.1`, and the `0.1.2-alpha`
|
|
3741
|
+
* `0.1.1`, every rc build in minor 2 and later, and the `0.1.2-alpha`
|
|
3742
|
+
* and `0.1.3-alpha` lines.
|
|
3729
3743
|
*/
|
|
3730
3744
|
function isUnmarkedHostVersion(version) {
|
|
3731
3745
|
const v = version.trim();
|
|
3732
|
-
const rc = /^0\.1\.[
|
|
3733
|
-
if (rc !== null) return Number(rc[1]) <= 7;
|
|
3734
|
-
return /^0\.1\.
|
|
3746
|
+
const rc = /^0\.1\.([0-9]+)-rc\.(\d+)$/.exec(v);
|
|
3747
|
+
if (rc !== null) return Number(rc[1]) >= 2 || Number(rc[2]) <= 7;
|
|
3748
|
+
return /^0\.1\.[23]-alpha[.-]\d+$/.test(v);
|
|
3735
3749
|
}
|
|
3736
3750
|
/**
|
|
3737
3751
|
* Identity candidates for the `agents` match dimension, derived from the
|
package/lib/types/runtime.d.ts
CHANGED
|
@@ -427,6 +427,14 @@ export declare function apply(ctx: Context, config: Config): Promise<void>;
|
|
|
427
427
|
* later stamp the marker. The `0.1.1-rc` line regressed the same way
|
|
428
428
|
* (verified on `0.1.1-rc.2` — the stamping fix exists only on harness
|
|
429
429
|
* master), so `0.1.1-rc.1`–`0.1.1-rc.7` are treated as unmarked too.
|
|
430
|
+
* - The `0.1.2-rc` line ships the alpha.5 surface: the third
|
|
431
|
+
* `Session.append` parameter is `SurfaceIntent` for surface event types
|
|
432
|
+
* only, so no rc build in the `0.1.2` minor stamps the marker either
|
|
433
|
+
* (verified against the `dsh-v0.1.2-rc.1` tag). The whole rc line is
|
|
434
|
+
* treated as unmarked.
|
|
435
|
+
* - The `0.1.3-alpha` line keeps that surface-only append signature
|
|
436
|
+
* (verified against the `dsh-v0.1.3-alpha.1` tag), so its builds stamp
|
|
437
|
+
* the marker no more than rc.1 does and the line is treated as unmarked.
|
|
430
438
|
* - The `0.1.2-alpha` line refuses to interpret logs containing plugin
|
|
431
439
|
* event types even when the envelope carries `ignorable: true` (verified
|
|
432
440
|
* on `0.1.2-alpha-1`, reported by @rgw87 in issue #15), so audit events
|
|
@@ -434,13 +442,19 @@ export declare function apply(ctx: Context, config: Config): Promise<void>;
|
|
|
434
442
|
* whole alpha line is treated as unsafe; over-refusal is harmless because
|
|
435
443
|
* `allowUnmarkedAudit: true` opts back in, and
|
|
436
444
|
* `scripts/repair-session-logs.mjs strip` removes already-written audit
|
|
437
|
-
* rows for hosts where the marker cannot help. On 0.1.2-alpha.2 the
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
*
|
|
445
|
+
* rows for hosts where the marker cannot help. On `0.1.2-alpha.2` the
|
|
446
|
+
* envelope field is restored for stored-log read compatibility only — its
|
|
447
|
+
* `Session.append` still cannot stamp the marker, so the gate behavior is
|
|
448
|
+
* unchanged.
|
|
449
|
+
* - Every rc build in minor 2 and later is treated as unmarked too
|
|
450
|
+
* (defensive: a future `0.1.3-rc` line would ship at least the same
|
|
451
|
+
* surface, and over-refusal is harmless for the reasons above).
|
|
452
|
+
* Non-matching (later stable or unresolvable) versions are treated as
|
|
453
|
+
* possibly-marker-aware and verified by the append probe.
|
|
441
454
|
* @param version - the installed peer version string.
|
|
442
455
|
* @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
|
|
443
|
-
* `0.1.1`, and the `0.1.2-alpha`
|
|
456
|
+
* `0.1.1`, every rc build in minor 2 and later, and the `0.1.2-alpha`
|
|
457
|
+
* and `0.1.3-alpha` lines.
|
|
444
458
|
*/
|
|
445
459
|
export declare function isUnmarkedHostVersion(version: string): boolean;
|
|
446
460
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-permission-rules",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.10",
|
|
4
4
|
"description": "Declarative Claude Code-style permission rules plus a Codex-style process-level network policy for DeepSeek Harness: ordered allow/deny/ask rules with tool-name, argument (glob/regex), workspace-path, and network-target (domain/ip/port/scheme) matching on the tools/pre-execute waterfall, a built-in local HTTP/CONNECT proxy governing shell subprocess traffic, three network modes mapped onto the official sandbox presets, full session-log audit, HMR rule reload, and a settings page with a rule editor, block counters, and recent interception lists.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
],
|
|
78
78
|
"compatibility": {
|
|
79
79
|
"dshVersions": [
|
|
80
|
-
"0.1.2-
|
|
80
|
+
"0.1.2-rc.1"
|
|
81
81
|
]
|
|
82
82
|
},
|
|
83
83
|
"capability": {
|
|
@@ -155,31 +155,31 @@
|
|
|
155
155
|
"yaml": "^2.8.0",
|
|
156
156
|
"zod": "^4.4.3"
|
|
157
157
|
},
|
|
158
|
-
"devDependencies": {"@deepseek-ai/dsh-attachment": "0.1.2-
|
|
158
|
+
"devDependencies": {"@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
|
|
159
159
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
160
|
-
"@deepseek-ai/cordis-plugin-include": "1.0.
|
|
161
|
-
"@deepseek-ai/cordis-plugin-loader": "1.0.
|
|
162
|
-
"@deepseek-ai/dsh-agent": "0.1.2-
|
|
163
|
-
"@deepseek-ai/dsh-brand": "0.1.2-
|
|
164
|
-
"@deepseek-ai/dsh-client-connection": "0.1.2-
|
|
165
|
-
"@deepseek-ai/dsh-client-locale": "0.1.2-
|
|
166
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-
|
|
167
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-
|
|
168
|
-
"@deepseek-ai/dsh-client-web": "0.1.2-
|
|
169
|
-
"@deepseek-ai/dsh-commands": "0.1.2-
|
|
170
|
-
"@deepseek-ai/dsh-invariants": "0.1.2-
|
|
171
|
-
"@deepseek-ai/dsh-llm": "0.1.2-
|
|
172
|
-
"@deepseek-ai/dsh-session": "0.1.2-
|
|
173
|
-
"@deepseek-ai/dsh-session-projection": "0.1.2-
|
|
174
|
-
"@deepseek-ai/dsh-subagent": "0.1.2-
|
|
175
|
-
"@deepseek-ai/dsh-tools": "0.1.2-
|
|
176
|
-
"@deepseek-ai/dsh-typert-protocol": "0.1.2-
|
|
177
|
-
"@deepseek-ai/dsh-user-approval": "0.1.2-
|
|
160
|
+
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
161
|
+
"@deepseek-ai/cordis-plugin-loader": "^1.0.3",
|
|
162
|
+
"@deepseek-ai/dsh-agent": "0.1.2-rc.1",
|
|
163
|
+
"@deepseek-ai/dsh-brand": "0.1.2-rc.1",
|
|
164
|
+
"@deepseek-ai/dsh-client-connection": "0.1.2-rc.1",
|
|
165
|
+
"@deepseek-ai/dsh-client-locale": "0.1.2-rc.1",
|
|
166
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-rc.1",
|
|
167
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-rc.1",
|
|
168
|
+
"@deepseek-ai/dsh-client-web": "0.1.2-rc.1",
|
|
169
|
+
"@deepseek-ai/dsh-commands": "0.1.2-rc.1",
|
|
170
|
+
"@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
|
|
171
|
+
"@deepseek-ai/dsh-llm": "0.1.2-rc.1",
|
|
172
|
+
"@deepseek-ai/dsh-session": "0.1.2-rc.1",
|
|
173
|
+
"@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
|
|
174
|
+
"@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
|
|
175
|
+
"@deepseek-ai/dsh-tools": "0.1.2-rc.1",
|
|
176
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.2-rc.1",
|
|
177
|
+
"@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
|
|
178
178
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
179
179
|
"@eslint/js": "^10.0.1",
|
|
180
180
|
"@types/node": "^22.19.0",
|
|
181
181
|
"@vitest/coverage-v8": "^3.2.0",
|
|
182
|
-
"dsh-auto-review": "file:vendor/dsh-auto-review-0.10.
|
|
182
|
+
"dsh-auto-review": "file:vendor/dsh-auto-review-0.10.3.tgz",
|
|
183
183
|
"eslint": "^10.8.1",
|
|
184
184
|
"globals": "^17.11.0",
|
|
185
185
|
"react": "18.3.1",
|
|
@@ -12,11 +12,17 @@
|
|
|
12
12
|
*
|
|
13
13
|
* `strip` removes the targeted rows entirely. It exists for harness lines
|
|
14
14
|
* whose read path refuses out-of-vocabulary event types even when the
|
|
15
|
-
* envelope is marked
|
|
16
|
-
* issue #15)
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
15
|
+
* envelope is marked — the `0.1.2-alpha` line (verified on `0.1.2-alpha-1`,
|
|
16
|
+
* issue #15) refuses them directly, and the `0.1.3-alpha.1` v1→v2 migration
|
|
17
|
+
* gate (`session-format-v1-to-v2/src/migration.ts`) refuses every v1 event
|
|
18
|
+
* type outside the released v0 vocabulary, audit rows included even when
|
|
19
|
+
* stamped, so a v1 log containing audit rows blocks the whole session load
|
|
20
|
+
* on that host: v1 logs must be `strip`ped before a v2 host first opens
|
|
21
|
+
* them, while v2 logs accept marked plugin rows and only need `repair`.
|
|
22
|
+
* There the marker cannot help, and dropping the log-only audit rows is the
|
|
23
|
+
* only repair. The target vocabulary is reconstruction-safe by construction
|
|
24
|
+
* (never injected into the model context), so removal does not change how
|
|
25
|
+
* the session replays.
|
|
20
26
|
*
|
|
21
27
|
* It understands both physical encodings of the JSONL backend:
|
|
22
28
|
* - `session.jsonl.zstd` — a concatenation of checksummed Zstandard frames
|
|
@@ -24,6 +30,10 @@
|
|
|
24
30
|
* frame is decompressed, filtered, and recompressed independently so
|
|
25
31
|
* frame boundaries survive.
|
|
26
32
|
* - `session.jsonl` — plaintext JSONL lines.
|
|
33
|
+
* v2 hosts (the `0.1.3-alpha` line) write `session.v2.jsonl(.zstd)`; both
|
|
34
|
+
* log generations are discovered. On a v2 host, strip v1 logs first — its
|
|
35
|
+
* v1→v2 migration refuses stamped plugin rows too — while v2 logs only
|
|
36
|
+
* need `repair` stamping.
|
|
27
37
|
*
|
|
28
38
|
* Usage:
|
|
29
39
|
* node scripts/repair-session-logs.mjs scan [--home DIR] # report foreign rows, change nothing
|
|
@@ -76,6 +86,9 @@ const KNOWN_SESSION_EVENT_TYPES = new Set([
|
|
|
76
86
|
'approval/asked',
|
|
77
87
|
'approval/decided',
|
|
78
88
|
'approval/policy',
|
|
89
|
+
// The v2 catalog swapped assistant/chunk for assistant/attempt; both stay
|
|
90
|
+
// listed so v1 and v2 logs scan clean (v1∪v2 union).
|
|
91
|
+
'assistant/attempt',
|
|
79
92
|
'assistant/chunk',
|
|
80
93
|
'assistant/message',
|
|
81
94
|
'command/done',
|
|
@@ -90,18 +103,25 @@ const KNOWN_SESSION_EVENT_TYPES = new Set([
|
|
|
90
103
|
'hook/result',
|
|
91
104
|
'llm/retry',
|
|
92
105
|
'llm/retry-started',
|
|
106
|
+
'model/selection',
|
|
93
107
|
'permission/preset',
|
|
94
108
|
'plan/mode',
|
|
95
109
|
'request/context',
|
|
96
110
|
'request/header',
|
|
97
111
|
'sandbox/mode',
|
|
98
112
|
'schedule/change',
|
|
113
|
+
'session-log-deepseek/delivery-accepted',
|
|
99
114
|
'session/end-seed',
|
|
100
115
|
'session/title',
|
|
101
116
|
'session/title-llm-request',
|
|
102
117
|
'step/end',
|
|
103
118
|
'step/start',
|
|
104
119
|
'subagent/descriptor',
|
|
120
|
+
'subagent/model-selection-policy',
|
|
121
|
+
'team/member',
|
|
122
|
+
'team/message/delivered',
|
|
123
|
+
'team/message/queued',
|
|
124
|
+
'team/task',
|
|
105
125
|
'todo/write',
|
|
106
126
|
'tool-workflow/agent-end',
|
|
107
127
|
'tool-workflow/agent-start',
|
|
@@ -230,7 +250,7 @@ function findLogs(root) {
|
|
|
230
250
|
const full = join(dir, entry)
|
|
231
251
|
const stat = statSync(full)
|
|
232
252
|
if (stat.isDirectory()) walk(full)
|
|
233
|
-
else if (entry === 'session.jsonl' || entry === 'session.jsonl.zstd') found.push(full)
|
|
253
|
+
else if (entry === 'session.jsonl' || entry === 'session.jsonl.zstd' || entry === 'session.v2.jsonl' || entry === 'session.v2.jsonl.zstd') found.push(full)
|
|
234
254
|
}
|
|
235
255
|
}
|
|
236
256
|
walk(root)
|
|
@@ -340,7 +360,7 @@ for (const path of logs) {
|
|
|
340
360
|
if (foreignSeen.size > 0) {
|
|
341
361
|
console.log('\nforeign (non-harness) event rows found by type:')
|
|
342
362
|
for (const [type, count] of [...foreignSeen.entries()].sort()) {
|
|
343
|
-
const action = targetTypes.has(type) ? 'targeted
|
|
363
|
+
const action = targetTypes.has(type) ? 'targeted — repair stamps ignorable; strip removes (v1 logs must be stripped before a v2 host loads them)' : 'NOT targeted — investigate before touching'
|
|
344
364
|
console.log(` ${type}: ${count} rows (${action})`)
|
|
345
365
|
}
|
|
346
366
|
}
|
package/src/runtime.ts
CHANGED
|
@@ -1307,6 +1307,14 @@ export async function apply(ctx: Context, config: Config): Promise<void> {
|
|
|
1307
1307
|
* later stamp the marker. The `0.1.1-rc` line regressed the same way
|
|
1308
1308
|
* (verified on `0.1.1-rc.2` — the stamping fix exists only on harness
|
|
1309
1309
|
* master), so `0.1.1-rc.1`–`0.1.1-rc.7` are treated as unmarked too.
|
|
1310
|
+
* - The `0.1.2-rc` line ships the alpha.5 surface: the third
|
|
1311
|
+
* `Session.append` parameter is `SurfaceIntent` for surface event types
|
|
1312
|
+
* only, so no rc build in the `0.1.2` minor stamps the marker either
|
|
1313
|
+
* (verified against the `dsh-v0.1.2-rc.1` tag). The whole rc line is
|
|
1314
|
+
* treated as unmarked.
|
|
1315
|
+
* - The `0.1.3-alpha` line keeps that surface-only append signature
|
|
1316
|
+
* (verified against the `dsh-v0.1.3-alpha.1` tag), so its builds stamp
|
|
1317
|
+
* the marker no more than rc.1 does and the line is treated as unmarked.
|
|
1310
1318
|
* - The `0.1.2-alpha` line refuses to interpret logs containing plugin
|
|
1311
1319
|
* event types even when the envelope carries `ignorable: true` (verified
|
|
1312
1320
|
* on `0.1.2-alpha-1`, reported by @rgw87 in issue #15), so audit events
|
|
@@ -1314,19 +1322,25 @@ export async function apply(ctx: Context, config: Config): Promise<void> {
|
|
|
1314
1322
|
* whole alpha line is treated as unsafe; over-refusal is harmless because
|
|
1315
1323
|
* `allowUnmarkedAudit: true` opts back in, and
|
|
1316
1324
|
* `scripts/repair-session-logs.mjs strip` removes already-written audit
|
|
1317
|
-
* rows for hosts where the marker cannot help. On 0.1.2-alpha.2 the
|
|
1318
|
-
*
|
|
1319
|
-
*
|
|
1320
|
-
*
|
|
1325
|
+
* rows for hosts where the marker cannot help. On `0.1.2-alpha.2` the
|
|
1326
|
+
* envelope field is restored for stored-log read compatibility only — its
|
|
1327
|
+
* `Session.append` still cannot stamp the marker, so the gate behavior is
|
|
1328
|
+
* unchanged.
|
|
1329
|
+
* - Every rc build in minor 2 and later is treated as unmarked too
|
|
1330
|
+
* (defensive: a future `0.1.3-rc` line would ship at least the same
|
|
1331
|
+
* surface, and over-refusal is harmless for the reasons above).
|
|
1332
|
+
* Non-matching (later stable or unresolvable) versions are treated as
|
|
1333
|
+
* possibly-marker-aware and verified by the append probe.
|
|
1321
1334
|
* @param version - the installed peer version string.
|
|
1322
1335
|
* @returns true for the known-unsafe rc.1–rc.7 lines of `0.1.0` and
|
|
1323
|
-
* `0.1.1`, and the `0.1.2-alpha`
|
|
1336
|
+
* `0.1.1`, every rc build in minor 2 and later, and the `0.1.2-alpha`
|
|
1337
|
+
* and `0.1.3-alpha` lines.
|
|
1324
1338
|
*/
|
|
1325
1339
|
export function isUnmarkedHostVersion(version: string): boolean {
|
|
1326
1340
|
const v = version.trim()
|
|
1327
|
-
const rc = /^0\.1\.[
|
|
1328
|
-
if (rc !== null) return Number(rc[1]) <= 7
|
|
1329
|
-
return /^0\.1\.
|
|
1341
|
+
const rc = /^0\.1\.([0-9]+)-rc\.(\d+)$/.exec(v)
|
|
1342
|
+
if (rc !== null) return Number(rc[1]) >= 2 || Number(rc[2]) <= 7
|
|
1343
|
+
return /^0\.1\.[23]-alpha[.-]\d+$/.test(v)
|
|
1330
1344
|
}
|
|
1331
1345
|
|
|
1332
1346
|
/**
|