dsh-permission-rules 0.6.5 → 0.6.7
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 +1 -1
- package/README.hi.md +1 -1
- package/README.md +1 -1
- package/README.pt.md +1 -1
- package/README.zh.md +1 -1
- package/lib/index.js +6 -1
- package/lib/types/runtime.d.ts +1 -3
- package/lib/types/runtime.d.ts.map +1 -1
- package/package.json +20 -20
- package/src/runtime.ts +9 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
## v0.6.7 - 2026-09-02
|
|
2
|
+
|
|
3
|
+
### Docs
|
|
4
|
+
|
|
5
|
+
- Sync the five-language READMEs to the 0.1.2-alpha.5 facts; no behavior change.
|
|
6
|
+
|
|
1
7
|
# Changelog
|
|
2
8
|
|
|
3
9
|
All notable changes to dsh-permission-rules are recorded here, newest first.
|
|
4
10
|
|
|
11
|
+
## v0.6.6 - 2026-09-02
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Re-verify the adaptation claims against the published dsh `0.1.2-alpha.5` line and refresh the devDependency pins and lockfile for it.
|
|
16
|
+
- Repack the vendored `dsh-auto-review` sibling tarball at `0.10.0` (alpha.5-adapted tree) and repoint the `file:` devDependency; the integration suite stays green (271/271).
|
|
17
|
+
|
|
5
18
|
## v0.6.5 - 2026-09-01
|
|
6
19
|
|
|
7
20
|
### Changed
|
package/README.es.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (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
|
| 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) |
|
package/README.hi.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | सभी (host + वेब settings क्लाइंट) |
|
|
31
31
|
| Model | कोई भी (deny/ask कारण टूल परिणामों के माध्यम से दिखते हैं) |
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
| Surface | Status |
|
|
28
28
|
|---|---|
|
|
29
|
-
| Harness | DeepSeek Harness `0.1.
|
|
29
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (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 | All (host + web settings client) |
|
|
32
32
|
| Model | Any (deny/ask reasons surface through tool results) |
|
package/README.pt.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5` (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
|
| Platforms | Todas (host + cliente web de settings) |
|
|
31
31
|
| Model | Qualquer (razões deny/ask aparecem pelos resultados de ferramenta) |
|
package/README.zh.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
| Surface | Status |
|
|
27
27
|
|---|---|
|
|
28
|
-
| Harness | DeepSeek Harness `0.1.
|
|
28
|
+
| Harness | DeepSeek Harness `0.1.2-alpha.5`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
|
|
29
29
|
| Node | `^22.19.0 || >=24.0.0` |
|
|
30
30
|
| Platforms | 全部(host + Web 设置客户端) |
|
|
31
31
|
| Model | 任意(deny/ask 原因经工具结果呈现) |
|
package/lib/index.js
CHANGED
|
@@ -2438,6 +2438,11 @@ function isMarkedAuditEvent(result) {
|
|
|
2438
2438
|
* registration is an effect.
|
|
2439
2439
|
* @module dsh-permission-rules/runtime
|
|
2440
2440
|
*/
|
|
2441
|
+
/** Session events with an old-host fallback: alpha.5 renamed the getter to snapshotEvents(). */
|
|
2442
|
+
function readSessionEvents(session) {
|
|
2443
|
+
if (typeof session.snapshotEvents === "function") return session.snapshotEvents();
|
|
2444
|
+
return session.events ?? [];
|
|
2445
|
+
}
|
|
2441
2446
|
/** The network-capable tools whose unlisted calls fall back to the mode default at `tools/pre-execute`. */
|
|
2442
2447
|
const WEB_TOOLS = ["web_fetch", "web_search"];
|
|
2443
2448
|
/** Stale in-flight entries are dropped after this many milliseconds (attribution is best-effort). */
|
|
@@ -3363,7 +3368,7 @@ var PermissionRulesRuntime = class {
|
|
|
3363
3368
|
}
|
|
3364
3369
|
/** Render the session's `permissionRules/decision` audit trail, newest last. */
|
|
3365
3370
|
decisionsCommand(invocation, count, prose) {
|
|
3366
|
-
const decisions = invocation.agent.session.
|
|
3371
|
+
const decisions = readSessionEvents(invocation.agent.session).filter((event) => event.type === "permissionRules/decision");
|
|
3367
3372
|
const lines = [];
|
|
3368
3373
|
if (decisions.length === 0) lines.push(prose.noDecisions);
|
|
3369
3374
|
else {
|
package/lib/types/runtime.d.ts
CHANGED
|
@@ -207,9 +207,7 @@ export declare class PermissionRulesRuntime {
|
|
|
207
207
|
* @param session - optional session whose override outranks the default.
|
|
208
208
|
* @returns the resolved mode plus the sandbox preset it came from.
|
|
209
209
|
*/
|
|
210
|
-
resolveNetworkMode(session?: {
|
|
211
|
-
events?: unknown;
|
|
212
|
-
}): {
|
|
210
|
+
resolveNetworkMode(session?: unknown): {
|
|
213
211
|
mode: NetworkMode;
|
|
214
212
|
sandboxMode: string | undefined;
|
|
215
213
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
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.7",
|
|
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-alpha.
|
|
80
|
+
"0.1.2-alpha.5"
|
|
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-alpha.
|
|
158
|
+
"devDependencies": {"@deepseek-ai/dsh-attachment": "0.1.2-alpha.5",
|
|
159
159
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
160
160
|
"@deepseek-ai/cordis-plugin-include": "1.0.6",
|
|
161
161
|
"@deepseek-ai/cordis-plugin-loader": "1.0.2",
|
|
162
|
-
"@deepseek-ai/dsh-agent": "0.1.2-alpha.
|
|
163
|
-
"@deepseek-ai/dsh-brand": "0.1.2-alpha.
|
|
164
|
-
"@deepseek-ai/dsh-client-connection": "0.1.2-alpha.
|
|
165
|
-
"@deepseek-ai/dsh-client-locale": "0.1.2-alpha.
|
|
166
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-alpha.
|
|
167
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-alpha.
|
|
168
|
-
"@deepseek-ai/dsh-client-web": "0.1.2-alpha.
|
|
169
|
-
"@deepseek-ai/dsh-commands": "0.1.2-alpha.
|
|
170
|
-
"@deepseek-ai/dsh-invariants": "0.1.2-alpha.
|
|
171
|
-
"@deepseek-ai/dsh-llm": "0.1.2-alpha.
|
|
172
|
-
"@deepseek-ai/dsh-session": "0.1.2-alpha.
|
|
173
|
-
"@deepseek-ai/dsh-session-projection": "0.1.2-alpha.
|
|
174
|
-
"@deepseek-ai/dsh-subagent": "0.1.2-alpha.
|
|
175
|
-
"@deepseek-ai/dsh-tools": "0.1.2-alpha.
|
|
176
|
-
"@deepseek-ai/dsh-typert-protocol": "0.1.2-alpha.
|
|
177
|
-
"@deepseek-ai/dsh-user-approval": "0.1.2-alpha.
|
|
162
|
+
"@deepseek-ai/dsh-agent": "0.1.2-alpha.5",
|
|
163
|
+
"@deepseek-ai/dsh-brand": "0.1.2-alpha.5",
|
|
164
|
+
"@deepseek-ai/dsh-client-connection": "0.1.2-alpha.5",
|
|
165
|
+
"@deepseek-ai/dsh-client-locale": "0.1.2-alpha.5",
|
|
166
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.2-alpha.5",
|
|
167
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.1.2-alpha.5",
|
|
168
|
+
"@deepseek-ai/dsh-client-web": "0.1.2-alpha.5",
|
|
169
|
+
"@deepseek-ai/dsh-commands": "0.1.2-alpha.5",
|
|
170
|
+
"@deepseek-ai/dsh-invariants": "0.1.2-alpha.5",
|
|
171
|
+
"@deepseek-ai/dsh-llm": "0.1.2-alpha.5",
|
|
172
|
+
"@deepseek-ai/dsh-session": "0.1.2-alpha.5",
|
|
173
|
+
"@deepseek-ai/dsh-session-projection": "0.1.2-alpha.5",
|
|
174
|
+
"@deepseek-ai/dsh-subagent": "0.1.2-alpha.5",
|
|
175
|
+
"@deepseek-ai/dsh-tools": "0.1.2-alpha.5",
|
|
176
|
+
"@deepseek-ai/dsh-typert-protocol": "0.1.2-alpha.5",
|
|
177
|
+
"@deepseek-ai/dsh-user-approval": "0.1.2-alpha.5",
|
|
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.
|
|
182
|
+
"dsh-auto-review": "file:vendor/dsh-auto-review-0.10.0.tgz",
|
|
183
183
|
"eslint": "^10.8.1",
|
|
184
184
|
"globals": "^17.11.0",
|
|
185
185
|
"react": "18.3.1",
|
package/src/runtime.ts
CHANGED
|
@@ -19,6 +19,7 @@ import chokidar from 'chokidar'
|
|
|
19
19
|
import type { Context } from '@deepseek-ai/cordis'
|
|
20
20
|
import type { CommandInvocation, CommandResult } from '@deepseek-ai/dsh-commands'
|
|
21
21
|
import type { PreToolDecision, ToolExecution } from '@deepseek-ai/dsh-tools'
|
|
22
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session'
|
|
22
23
|
import { resolveConfig } from './config.ts'
|
|
23
24
|
import type { Config, ResolvedConfig } from './config.ts'
|
|
24
25
|
import type { CallId } from './call-id.ts'
|
|
@@ -28,6 +29,12 @@ import { DESCRIBE_TOKENS, UI_PROSE } from './prose.ts'
|
|
|
28
29
|
import type { UiProse } from './prose.ts'
|
|
29
30
|
import { blockMessage, decideNetworkTarget, defaultDecision, networkModeForSandbox } from './network.ts'
|
|
30
31
|
import type { NetworkChain, NetworkDecision, NetworkMode } from './network.ts'
|
|
32
|
+
|
|
33
|
+
/** Session events with an old-host fallback: alpha.5 renamed the getter to snapshotEvents(). */
|
|
34
|
+
function readSessionEvents(session: { snapshotEvents?: () => readonly SessionEvent[]; events?: readonly SessionEvent[] }): readonly SessionEvent[] {
|
|
35
|
+
if (typeof session.snapshotEvents === 'function') return session.snapshotEvents()
|
|
36
|
+
return session.events ?? []
|
|
37
|
+
}
|
|
31
38
|
import { injectProxyEnv, NetworkProxy } from './proxy.ts'
|
|
32
39
|
import type { NetworkBlockRecord, ProxyAttribution } from './proxy.ts'
|
|
33
40
|
import { PermissionRulesRemoteService } from './remote-service.ts'
|
|
@@ -486,7 +493,7 @@ export class PermissionRulesRuntime {
|
|
|
486
493
|
* @param session - optional session whose override outranks the default.
|
|
487
494
|
* @returns the resolved mode plus the sandbox preset it came from.
|
|
488
495
|
*/
|
|
489
|
-
resolveNetworkMode(session?:
|
|
496
|
+
resolveNetworkMode(session?: unknown): { mode: NetworkMode; sandboxMode: string | undefined } {
|
|
490
497
|
const cfg = this.config.network
|
|
491
498
|
if (cfg.mode !== 'auto') return { mode: cfg.mode, sandboxMode: undefined }
|
|
492
499
|
const policy = this.ctx.get('sandboxPolicy') as { defaultMode?: string; resolve?: (request?: { session?: unknown }) => { mode?: string } } | undefined
|
|
@@ -932,7 +939,7 @@ export class PermissionRulesRuntime {
|
|
|
932
939
|
|
|
933
940
|
/** Render the session's `permissionRules/decision` audit trail, newest last. */
|
|
934
941
|
private decisionsCommand(invocation: CommandInvocation, count: number, prose: UiProse): CommandResult {
|
|
935
|
-
const decisions = invocation.agent.session.
|
|
942
|
+
const decisions = readSessionEvents(invocation.agent.session).filter(event => event.type === 'permissionRules/decision')
|
|
936
943
|
const lines: string[] = []
|
|
937
944
|
if (decisions.length === 0) {
|
|
938
945
|
lines.push(prose.noDecisions)
|