dsh-permission-rules 0.2.0 → 0.3.0

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.
@@ -52,6 +52,13 @@ export interface Config {
52
52
  searchUp?: boolean;
53
53
  /** Hard cap on unbounded `*`/`**` quantifiers per glob pattern (backtracking-degree bound). */
54
54
  maxGlobStars?: number;
55
+ /**
56
+ * Whether decisions are enforced: `false` puts the plugin in dry-run
57
+ * mode — deny/ask hits are audit-logged with a `dryRun` marker and every
58
+ * call is delegated via `next()` untouched. Useful for evaluating a new
59
+ * policy in production before enforcing it.
60
+ */
61
+ enforce?: boolean;
55
62
  }
56
63
  /** Config after {@link resolveConfig}: every optional field has its explicit default. */
57
64
  export interface ResolvedConfig {
@@ -68,14 +75,17 @@ export interface ResolvedConfig {
68
75
  readonly audit: AuditGranularity;
69
76
  readonly searchUp: boolean;
70
77
  readonly maxGlobStars: number;
78
+ readonly enforce: boolean;
71
79
  }
72
80
  /** Schemastery schema: the loader validates and fills defaults before `apply`. */
73
81
  export declare const Config: z<Config>;
74
82
  /**
75
83
  * Validate raw values and fill explicit defaults. A `maxRules`,
76
84
  * `maxCachedWorkspaces`, or `maxGlobStars` that is not a positive safe
77
- * integer, a non-positive stability window, or `searchUp` combined with an
78
- * absolute `rulesFile` throws here — misconfiguration fails loud at mount.
85
+ * integer, a non-positive stability window, `searchUp` combined with an
86
+ * absolute `rulesFile`, a value outside a closed enum, or a non-boolean
87
+ * flag throws here — misconfiguration fails loud at mount even when the
88
+ * plugin is mounted without the Schemastery loader.
79
89
  * @param config - raw (possibly partial) plugin config.
80
90
  * @returns the fully resolved config.
81
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,wFAAwF;AACxF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,qBAAqB,CAAA;AAE1D,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,CAAA;AAE7C,sFAAsF;AACtF,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uGAAuG;IACvG,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,iHAAiH;IACjH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,oGAAoG;IACpG,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAc3B,CAAA;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAW,GAAG,cAAc,CAqCjE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,wFAAwF;AACxF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,qBAAqB,CAAA;AAE1D,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,CAAA;AAE7C,sFAAsF;AACtF,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,uGAAuG;IACvG,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC,oGAAoG;IACpG,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,iHAAiH;IACjH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,oGAAoG;IACpG,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAe3B,CAAA;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAW,GAAG,cAAc,CA8CjE"}
@@ -22,12 +22,15 @@ export const Config = z.object({
22
22
  audit: z.union(['all', 'hits']).default('all'),
23
23
  searchUp: z.boolean().default(false),
24
24
  maxGlobStars: z.number().default(2),
25
+ enforce: z.boolean().default(true),
25
26
  });
26
27
  /**
27
28
  * Validate raw values and fill explicit defaults. A `maxRules`,
28
29
  * `maxCachedWorkspaces`, or `maxGlobStars` that is not a positive safe
29
- * integer, a non-positive stability window, or `searchUp` combined with an
30
- * absolute `rulesFile` throws here — misconfiguration fails loud at mount.
30
+ * integer, a non-positive stability window, `searchUp` combined with an
31
+ * absolute `rulesFile`, a value outside a closed enum, or a non-boolean
32
+ * flag throws here — misconfiguration fails loud at mount even when the
33
+ * plugin is mounted without the Schemastery loader.
31
34
  * @param config - raw (possibly partial) plugin config.
32
35
  * @returns the fully resolved config.
33
36
  */
@@ -53,6 +56,14 @@ export function resolveConfig(config = {}) {
53
56
  if (!Number.isSafeInteger(maxGlobStars) || maxGlobStars <= 0) {
54
57
  throw new TypeError(`maxGlobStars must be a positive safe integer, got ${String(config.maxGlobStars)}`);
55
58
  }
59
+ assertEnum('badFilePolicy', config.badFilePolicy ?? 'fail', ['fail', 'ignore-with-warning']);
60
+ assertEnum('patternMode', config.patternMode ?? 'glob', ['glob', 'regex']);
61
+ assertEnum('language', config.language ?? 'en', ['en', 'zh', 'es', 'pt', 'hi']);
62
+ assertEnum('audit', config.audit ?? 'all', ['all', 'hits']);
63
+ assertBoolean('watch', config.watch ?? true);
64
+ assertBoolean('searchUp', searchUp);
65
+ assertBoolean('caseInsensitivePaths', config.caseInsensitivePaths ?? process.platform === 'win32');
66
+ assertBoolean('enforce', config.enforce ?? true);
56
67
  return {
57
68
  rulesFile,
58
69
  fallbackPath: config.fallbackPath,
@@ -67,6 +78,19 @@ export function resolveConfig(config = {}) {
67
78
  audit: config.audit ?? 'all',
68
79
  searchUp,
69
80
  maxGlobStars,
81
+ enforce: config.enforce ?? true,
70
82
  };
71
83
  }
84
+ /** Throw unless `key` is one of `allowed` (TypeScript's closed enums are not runtime checks). */
85
+ function assertEnum(key, value, allowed) {
86
+ if (!allowed.includes(value)) {
87
+ throw new TypeError(`${key} must be one of ${allowed.map(item => JSON.stringify(item)).join(' | ')}, got ${JSON.stringify(value)}`);
88
+ }
89
+ }
90
+ /** Throw unless `key` is a boolean (plain-JS mounts bypass the Schemastery coercion). */
91
+ function assertBoolean(key, value) {
92
+ if (typeof value !== 'boolean') {
93
+ throw new TypeError(`${key} must be a boolean, got ${typeof value}`);
94
+ }
95
+ }
72
96
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@
11
11
  * passthrough it carries the downstream listeners' decision, so the audit
12
12
  * never claims a call was allowed when a later listener denied it.
13
13
  *
14
+ * Under `enforce: false` (dry-run mode) the plugin matches but NEVER
15
+ * short-circuits: the record keeps the WOULD-BE `action` and marks
16
+ * `dryRun: true`, while `outcome` carries what actually happened
17
+ * downstream — an auditable "what would the policy have done" trail.
18
+ *
14
19
  * The event is appended with the envelope's `ignorable: true` marker (see
15
20
  * {@link AuditAppend}), so a harness build whose generated event vocabulary
16
21
  * does not include this out-of-repo type still loads the log — it skips the
@@ -28,7 +33,9 @@ declare module '@deepseek-ai/dsh-session/types' {
28
33
  * `reason` appear only on hits. `source` is the absolute rule file of
29
34
  * the matched rule, or the nearest effective file on a passthrough, or
30
35
  * `''` when no rule file was active. `outcome` is the final pre-execute
31
- * decision the waterfall settled on.
36
+ * decision the waterfall settled on. `cwd` names the workspace the
37
+ * rules were resolved for. `dryRun` marks audit-only dry-run records
38
+ * (`enforce: false`): the plugin matched but did not enforce.
32
39
  */
33
40
  'permissionRules/decision': {
34
41
  toolName: string;
@@ -38,6 +45,8 @@ declare module '@deepseek-ai/dsh-session/types' {
38
45
  outcome?: 'allow' | 'deny' | 'ask';
39
46
  ruleIndex?: number;
40
47
  reason?: string;
48
+ cwd: string;
49
+ dryRun?: true;
41
50
  };
42
51
  }
43
52
  }
@@ -54,6 +63,10 @@ export interface AuditDecision {
54
63
  outcome?: DecisionOutcome;
55
64
  ruleIndex?: number;
56
65
  reason?: string;
66
+ /** The workspace cwd the rule chain was resolved for. */
67
+ cwd: string;
68
+ /** `true` on dry-run records (`enforce: false`) — matched but never enforced. */
69
+ dryRun?: true;
57
70
  }
58
71
  /**
59
72
  * `Session.append` narrowed to this plugin's audit event. The options bag
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,eAAe;QACvB;;;;;;;;WAQG;QACH,0BAA0B,EAAE;YAC1B,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;YAChD,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;YAClC,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,MAAM,CAAC,EAAE,MAAM,CAAA;SAChB,CAAA;KACF;CACF;AAED,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAErE,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;AAErD,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,0BAA0B,EAChC,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,KAC3B,OAAO,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,QAAQ,gCAAgC,CAAC;IAC9C,UAAU,eAAe;QACvB;;;;;;;;;;WAUG;QACH,0BAA0B,EAAE;YAC1B,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;YAChD,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;YAClC,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,GAAG,EAAE,MAAM,CAAA;YACX,MAAM,CAAC,EAAE,IAAI,CAAA;SACd,CAAA;KACF;CACF;AAED,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAErE,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;AAErD,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAA;IACX,iFAAiF;IACjF,MAAM,CAAC,EAAE,IAAI,CAAA;CACd;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,IAAI,EAAE,0BAA0B,EAChC,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,KAC3B,OAAO,CAAA"}
@@ -11,6 +11,11 @@
11
11
  * passthrough it carries the downstream listeners' decision, so the audit
12
12
  * never claims a call was allowed when a later listener denied it.
13
13
  *
14
+ * Under `enforce: false` (dry-run mode) the plugin matches but NEVER
15
+ * short-circuits: the record keeps the WOULD-BE `action` and marks
16
+ * `dryRun: true`, while `outcome` carries what actually happened
17
+ * downstream — an auditable "what would the policy have done" trail.
18
+ *
14
19
  * The event is appended with the envelope's `ignorable: true` marker (see
15
20
  * {@link AuditAppend}), so a harness build whose generated event vocabulary
16
21
  * does not include this out-of-repo type still loads the log — it skips the
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * `dsh-permission-rules` — Claude Code-style declarative permission rules
3
3
  * for DeepSeek Harness. A `tools/pre-execute` waterfall listener evaluates
4
- * an ordered `allow`/`deny`/`ask` rule list (tool-name globs, argument
5
- * glob/regex matching, workspace-path matching) per session cwd; deny and
6
- * ask decisions short-circuit the chain, while allow and passthrough always
7
- * delegate via `next()`. `ask` rides the official approval seam, where
8
- * answerers such as `dsh-auto-review` or a human UI decide — the plugin
9
- * itself never runs a reviewer. Every decision is audit-logged.
4
+ * an ordered `allow`/`deny`/`ask` rule list (tool-name globs, agent
5
+ * selectors, argument glob/regex matching, workspace-path matching) per
6
+ * session cwd; deny and ask decisions short-circuit the chain, while allow
7
+ * and passthrough always delegate via `next()`. Under `enforce: false` the
8
+ * plugin audits what it WOULD decide and lets everything through (dry-run
9
+ * policy rollout). `ask` rides the official approval seam, where answerers
10
+ * such as `dsh-auto-review` or a human UI decide — the plugin itself never
11
+ * runs a reviewer. Every decision is audit-logged.
10
12
  *
11
13
  * Function plugin — no default export (the Loader unwraps
12
14
  * `exports.default ?? exports`, and a stray default would discard
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,eAAO,MAAM,IAAI,qBAAqB,CAAA;AACtC,eAAO,MAAM,MAAM,UAAwB,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,eAAO,MAAM,IAAI,qBAAqB,CAAA;AACtC,eAAO,MAAM,MAAM,UAAwB,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * `dsh-permission-rules` — Claude Code-style declarative permission rules
3
3
  * for DeepSeek Harness. A `tools/pre-execute` waterfall listener evaluates
4
- * an ordered `allow`/`deny`/`ask` rule list (tool-name globs, argument
5
- * glob/regex matching, workspace-path matching) per session cwd; deny and
6
- * ask decisions short-circuit the chain, while allow and passthrough always
7
- * delegate via `next()`. `ask` rides the official approval seam, where
8
- * answerers such as `dsh-auto-review` or a human UI decide — the plugin
9
- * itself never runs a reviewer. Every decision is audit-logged.
4
+ * an ordered `allow`/`deny`/`ask` rule list (tool-name globs, agent
5
+ * selectors, argument glob/regex matching, workspace-path matching) per
6
+ * session cwd; deny and ask decisions short-circuit the chain, while allow
7
+ * and passthrough always delegate via `next()`. Under `enforce: false` the
8
+ * plugin audits what it WOULD decide and lets everything through (dry-run
9
+ * policy rollout). `ask` rides the official approval seam, where answerers
10
+ * such as `dsh-auto-review` or a human UI decide — the plugin itself never
11
+ * runs a reviewer. Every decision is audit-logged.
10
12
  *
11
13
  * Function plugin — no default export (the Loader unwraps
12
14
  * `exports.default ?? exports`, and a stray default would discard
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAA;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAA;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -22,6 +22,8 @@ export interface UiProse {
22
22
  reloadFailed: (error: string) => string;
23
23
  /** Warning appended to a listing whose last reload failed. */
24
24
  lastReloadWarning: (error: string) => string;
25
+ /** Notice appended to a listing when dry-run mode (`enforce: false`) is active. */
26
+ dryRunNotice: string;
25
27
  /** Rejection of an unknown `/rules` argument. */
26
28
  unknownArg: (arg: string) => string;
27
29
  /** Usage hint. */
@@ -32,14 +34,18 @@ export interface UiProse {
32
34
  noDecisions: string;
33
35
  /** Rejection of a malformed decisions count. */
34
36
  invalidDecisionsCount: (arg: string) => string;
35
- /** One audit-decision row. */
36
- decisionLine: (seq: number, action: string, toolName: string, ruleIndex: number | undefined, reason: string | undefined) => string;
37
+ /** One audit-decision row (dry-run rows mark the actual outcome). */
38
+ decisionLine: (seq: number, action: string, toolName: string, ruleIndex: number | undefined, reason: string | undefined, dryRun: boolean, outcome: string | undefined) => string;
37
39
  /** Hit line of `/rules test`. */
38
40
  testHit: (tool: string, ruleIndex: number, action: string, reason: string) => string;
39
41
  /** No-match line of `/rules test`. */
40
42
  testNoMatch: (tool: string) => string;
41
43
  /** Rejection of unparseable `/rules test` JSON arguments. */
42
44
  testBadJson: (text: string) => string;
45
+ /** Rejection of an unknown `/rules test` flag. */
46
+ testUnknownFlag: (flag: string) => string;
47
+ /** Rejection of a malformed `/rules test` flag (missing value, bad KEY=VALUE). */
48
+ testBadFlag: (flag: string) => string;
43
49
  /** Usage hint of `/rules test`. */
44
50
  testUsage: string;
45
51
  /** Warning naming shadowed (unreachable) rules by 1-based number. */
@@ -51,6 +57,7 @@ export interface UiProse {
51
57
  export interface DescribeTokens {
52
58
  allTools: string;
53
59
  tools: string;
60
+ agents: string;
54
61
  params: string;
55
62
  paths: string;
56
63
  absent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEzD,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,6EAA6E;IAC7E,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/E,iDAAiD;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;IACtD,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB,uCAAuC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACnD,qCAAqC;IACrC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C,iDAAiD;IACjD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACzD,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9C,8BAA8B;IAC9B,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAA;IAClI,iCAAiC;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACpF,sCAAsC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,6DAA6D;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,qEAAqE;IACrE,kBAAkB,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAA;IAC1D,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAoID,8CAA8C;AAC9C,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAA8C,CAAA;AAEzG,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAMxE,CAAA"}
1
+ {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"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"}
@@ -17,20 +17,24 @@ const EN = {
17
17
  reloaded: (count, source) => `Reloaded ${count} rule(s) from ${source}.`,
18
18
  reloadFailed: error => `Reload failed: ${error}. The previous rules are still active.`,
19
19
  lastReloadWarning: error => `Warning: the last reload failed (${error}); the rules listed above are the previous ones.`,
20
+ dryRunNotice: 'Dry-run mode (enforce: false): deny/ask hits are audit-logged only — every call is passed through.',
20
21
  unknownArg: arg => `Unknown /rules argument "${arg}". ${EN.usage}`,
21
22
  usage: 'Usage: /rules [reload | decisions [n] | test <tool> <json-args>]',
22
23
  decisionsHeader: (shown, total) => `Last ${shown} of ${total} permission decision(s) for this session:`,
23
24
  noDecisions: 'No permission decisions recorded in this session yet.',
24
25
  invalidDecisionsCount: arg => `Invalid decisions count "${arg}": give a positive integer (default 10).`,
25
- decisionLine: (seq, action, toolName, ruleIndex, reason) => {
26
+ decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
26
27
  const rule = ruleIndex === undefined ? '' : ` (rule ${ruleIndex + 1})`;
28
+ const dry = dryRun ? (outcome === undefined ? ' (dry-run)' : ` (dry-run → ${outcome})`) : '';
27
29
  const why = reason === undefined ? '' : `: ${short(reason)}`;
28
- return `- #${seq} ${action} ${toolName}${rule}${why}`;
30
+ return `- #${seq} ${action} ${toolName}${rule}${dry}${why}`;
29
31
  },
30
32
  testHit: (tool, ruleIndex, action, reason) => `"${tool}" matches rule ${ruleIndex + 1} (${action}): ${short(reason)}`,
31
33
  testNoMatch: tool => `"${tool}" matches no rule — the call passes through.`,
32
34
  testBadJson: text => `Invalid JSON arguments "${text}": the arguments must parse as JSON.`,
33
- testUsage: 'Usage: /rules test <tool> <json-args>, e.g. /rules test bash {"command":"git push origin main"}',
35
+ testUnknownFlag: flag => `Unknown /rules test flag "${flag}". ${EN.testUsage}`,
36
+ testBadFlag: flag => `Invalid /rules test flag "${flag}": expected a value. ${EN.testUsage}`,
37
+ testUsage: 'Usage: /rules test [--cwd <dir>] [--env KEY=VALUE]... [--agent <selector>]... <tool> <json-args>, e.g. /rules test bash {"command":"git push origin main"}',
34
38
  unreachableWarning: numbers => `Warning: rule${numbers.length > 1 ? 's' : ''} ${numbers.join(', ')} ${numbers.length > 1 ? 'are' : 'is'} unreachable (shadowed by an earlier catch-all rule).`,
35
39
  emptySource: '(no rule file — empty rule set)',
36
40
  };
@@ -41,20 +45,24 @@ const ZH = {
41
45
  reloaded: (count, source) => `已重载 ${count} 条规则,来自 ${source}。`,
42
46
  reloadFailed: error => `重载失败:${error}。之前的规则仍然生效。`,
43
47
  lastReloadWarning: error => `警告:上次重载失败(${error});以上列出的是之前的规则。`,
48
+ dryRunNotice: '干跑模式(enforce: false):deny/ask 命中仅写入审计日志——所有调用照常透传。',
44
49
  unknownArg: arg => `未知的 /rules 参数 "${arg}"。${ZH.usage}`,
45
50
  usage: '用法:/rules [reload | decisions [n] | test <工具名> <json-参数>]',
46
51
  decisionsHeader: (shown, total) => `本会话最近 ${shown}/${total} 条权限裁决:`,
47
52
  noDecisions: '本会话还没有记录任何权限裁决。',
48
53
  invalidDecisionsCount: arg => `无效的裁决条数 "${arg}":请给正整数(默认 10)。`,
49
- decisionLine: (seq, action, toolName, ruleIndex, reason) => {
54
+ decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
50
55
  const rule = ruleIndex === undefined ? '' : `(规则 ${ruleIndex + 1})`;
56
+ const dry = dryRun ? (outcome === undefined ? '(干跑)' : `(干跑 → ${outcome})`) : '';
51
57
  const why = reason === undefined ? '' : `:${short(reason)}`;
52
- return `- #${seq} ${action} ${toolName}${rule}${why}`;
58
+ return `- #${seq} ${action} ${toolName}${rule}${dry}${why}`;
53
59
  },
54
60
  testHit: (tool, ruleIndex, action, reason) => `"${tool}" 命中规则 ${ruleIndex + 1}(${action}):${short(reason)}`,
55
61
  testNoMatch: tool => `"${tool}" 未命中任何规则——该调用将透传。`,
56
62
  testBadJson: text => `无效的 JSON 参数 "${text}":参数必须能被解析为 JSON。`,
57
- testUsage: '用法:/rules test <工具名> <json-参数>,例如 /rules test bash {"command":"git push origin main"}',
63
+ testUnknownFlag: flag => `未知的 /rules test 标志 "${flag}"。${ZH.testUsage}`,
64
+ testBadFlag: flag => `无效的 /rules test 标志 "${flag}":缺少取值。${ZH.testUsage}`,
65
+ testUsage: '用法:/rules test [--cwd <目录>] [--env 键=值]... [--agent <选择器>]... <工具名> <json-参数>,例如 /rules test bash {"command":"git push origin main"}',
58
66
  unreachableWarning: numbers => `警告:规则 ${numbers.join('、')} 不可达(被前面的通配规则遮蔽)。`,
59
67
  emptySource: '(无规则文件——空规则集)',
60
68
  };
@@ -65,20 +73,24 @@ const ES = {
65
73
  reloaded: (count, source) => `Recargadas ${count} regla(s) desde ${source}.`,
66
74
  reloadFailed: error => `Error de recarga: ${error}. Las reglas anteriores siguen activas.`,
67
75
  lastReloadWarning: error => `Aviso: la última recarga falló (${error}); las reglas mostradas son las anteriores.`,
76
+ dryRunNotice: 'Modo simulación (enforce: false): los aciertos deny/ask solo se registran en auditoría — todas las llamadas pasan.',
68
77
  unknownArg: arg => `Argumento de /rules desconocido "${arg}". ${ES.usage}`,
69
78
  usage: 'Uso: /rules [reload | decisions [n] | test <herramienta> <json-args>]',
70
79
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisión(es) de permiso de esta sesión:`,
71
80
  noDecisions: 'Esta sesión aún no registra decisiones de permiso.',
72
81
  invalidDecisionsCount: arg => `Cantidad de decisiones inválida "${arg}": indique un entero positivo (por defecto 10).`,
73
- decisionLine: (seq, action, toolName, ruleIndex, reason) => {
82
+ decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
74
83
  const rule = ruleIndex === undefined ? '' : ` (regla ${ruleIndex + 1})`;
84
+ const dry = dryRun ? (outcome === undefined ? ' (simulación)' : ` (simulación → ${outcome})`) : '';
75
85
  const why = reason === undefined ? '' : `: ${short(reason)}`;
76
- return `- #${seq} ${action} ${toolName}${rule}${why}`;
86
+ return `- #${seq} ${action} ${toolName}${rule}${dry}${why}`;
77
87
  },
78
88
  testHit: (tool, ruleIndex, action, reason) => `"${tool}" coincide con la regla ${ruleIndex + 1} (${action}): ${short(reason)}`,
79
89
  testNoMatch: tool => `"${tool}" no coincide con ninguna regla — la llamada pasa sin restricciones.`,
80
90
  testBadJson: text => `Argumentos JSON inválidos "${text}": los argumentos deben poderse analizar como JSON.`,
81
- testUsage: 'Uso: /rules test <herramienta> <json-args>, p. ej. /rules test bash {"command":"git push origin main"}',
91
+ testUnknownFlag: flag => `Bandera de /rules test desconocida "${flag}". ${ES.testUsage}`,
92
+ testBadFlag: flag => `Bandera de /rules test inválida "${flag}": falta un valor. ${ES.testUsage}`,
93
+ testUsage: 'Uso: /rules test [--cwd <dir>] [--env CLAVE=VALOR]... [--agent <selector>]... <herramienta> <json-args>, p. ej. /rules test bash {"command":"git push origin main"}',
82
94
  unreachableWarning: numbers => `Aviso: ${numbers.length > 1 ? 'las reglas' : 'la regla'} ${numbers.join(', ')} ${numbers.length > 1 ? 'son inalcanzables' : 'es inalcanzable'} (tapada por una regla general anterior).`,
83
95
  emptySource: '(sin archivo de reglas — conjunto vacío)',
84
96
  };
@@ -89,20 +101,24 @@ const PT = {
89
101
  reloaded: (count, source) => `Recarregadas ${count} regra(s) de ${source}.`,
90
102
  reloadFailed: error => `Falha ao recarregar: ${error}. As regras anteriores continuam ativas.`,
91
103
  lastReloadWarning: error => `Aviso: a última recarga falhou (${error}); as regras listadas são as anteriores.`,
104
+ dryRunNotice: 'Modo simulação (enforce: false): acertos deny/ask são apenas registrados na auditoria — todas as chamadas passam.',
92
105
  unknownArg: arg => `Argumento de /rules desconhecido "${arg}". ${PT.usage}`,
93
106
  usage: 'Uso: /rules [reload | decisions [n] | test <ferramenta> <json-args>]',
94
107
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisão(ões) de permissão desta sessão:`,
95
108
  noDecisions: 'Esta sessão ainda não registrou decisões de permissão.',
96
109
  invalidDecisionsCount: arg => `Quantidade de decisões inválida "${arg}": informe um inteiro positivo (padrão 10).`,
97
- decisionLine: (seq, action, toolName, ruleIndex, reason) => {
110
+ decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
98
111
  const rule = ruleIndex === undefined ? '' : ` (regra ${ruleIndex + 1})`;
112
+ const dry = dryRun ? (outcome === undefined ? ' (simulação)' : ` (simulação → ${outcome})`) : '';
99
113
  const why = reason === undefined ? '' : `: ${short(reason)}`;
100
- return `- #${seq} ${action} ${toolName}${rule}${why}`;
114
+ return `- #${seq} ${action} ${toolName}${rule}${dry}${why}`;
101
115
  },
102
116
  testHit: (tool, ruleIndex, action, reason) => `"${tool}" corresponde à regra ${ruleIndex + 1} (${action}): ${short(reason)}`,
103
117
  testNoMatch: tool => `"${tool}" não corresponde a nenhuma regra — a chamada passa livremente.`,
104
118
  testBadJson: text => `Argumentos JSON inválidos "${text}": os argumentos precisam ser JSON analisável.`,
105
- testUsage: 'Uso: /rules test <ferramenta> <json-args>, ex.: /rules test bash {"command":"git push origin main"}',
119
+ testUnknownFlag: flag => `Sinalizador de /rules test desconhecido "${flag}". ${PT.testUsage}`,
120
+ testBadFlag: flag => `Sinalizador de /rules test inválido "${flag}": falta um valor. ${PT.testUsage}`,
121
+ testUsage: 'Uso: /rules test [--cwd <dir>] [--env CHAVE=VALOR]... [--agent <seletor>]... <ferramenta> <json-args>, ex.: /rules test bash {"command":"git push origin main"}',
106
122
  unreachableWarning: numbers => `Aviso: ${numbers.length > 1 ? 'as regras' : 'a regra'} ${numbers.join(', ')} ${numbers.length > 1 ? 'são inalcançáveis' : 'é inalcançável'} (encoberta por uma regra geral anterior).`,
107
123
  emptySource: '(sem arquivo de regras — conjunto vazio)',
108
124
  };
@@ -113,20 +129,24 @@ const HI = {
113
129
  reloaded: (count, source) => `${count} नियम पुनः लोड किए गए, स्रोत ${source}।`,
114
130
  reloadFailed: error => `पुनः लोड विफल: ${error}। पिछले नियम अब भी सक्रिय हैं।`,
115
131
  lastReloadWarning: error => `चेतावनी: अंतिम पुनः लोड विफल रहा (${error}); ऊपर सूचीबद्ध नियम पिछले वाले हैं।`,
132
+ dryRunNotice: 'ड्राई-रन मोड (enforce: false): deny/ask हिट केवल ऑडिट में दर्ज होते हैं — हर कॉल पास हो जाती है।',
116
133
  unknownArg: arg => `अज्ञात /rules तर्क "${arg}"। ${HI.usage}`,
117
134
  usage: 'उपयोग: /rules [reload | decisions [n] | test <टूल> <json-args>]',
118
135
  decisionsHeader: (shown, total) => `इस सत्र के अंतिम ${shown}/${total} अनुमति निर्णय:`,
119
136
  noDecisions: 'इस सत्र में अभी कोई अनुमति निर्णय दर्ज नहीं है।',
120
137
  invalidDecisionsCount: arg => `अमान्य निर्णय-संख्या "${arg}": एक धनात्मक पूर्णांक दें (डिफ़ॉल्ट 10)।`,
121
- decisionLine: (seq, action, toolName, ruleIndex, reason) => {
138
+ decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
122
139
  const rule = ruleIndex === undefined ? '' : ` (नियम ${ruleIndex + 1})`;
140
+ const dry = dryRun ? (outcome === undefined ? ' (ड्राई-रन)' : ` (ड्राई-रन → ${outcome})`) : '';
123
141
  const why = reason === undefined ? '' : `: ${short(reason)}`;
124
- return `- #${seq} ${action} ${toolName}${rule}${why}`;
142
+ return `- #${seq} ${action} ${toolName}${rule}${dry}${why}`;
125
143
  },
126
144
  testHit: (tool, ruleIndex, action, reason) => `"${tool}" नियम ${ruleIndex + 1} से मेल खाता है (${action}): ${short(reason)}`,
127
145
  testNoMatch: tool => `"${tool}" किसी नियम से मेल नहीं खाता — कॉल बिना रोक पास होगी।`,
128
146
  testBadJson: text => `अमान्य JSON तर्क "${text}": तर्क JSON के रूप में पार्स होने चाहिए।`,
129
- testUsage: 'उपयोग: /rules test <टूल> <json-args>, जैसे /rules test bash {"command":"git push origin main"}',
147
+ testUnknownFlag: flag => `अज्ञात /rules test फ़्लैग "${flag}"। ${HI.testUsage}`,
148
+ testBadFlag: flag => `अमान्य /rules test फ़्लैग "${flag}": मान गायब है। ${HI.testUsage}`,
149
+ testUsage: 'उपयोग: /rules test [--cwd <dir>] [--env KEY=मान]... [--agent <चयनकर्ता>]... <टूल> <json-args>, जैसे /rules test bash {"command":"git push origin main"}',
130
150
  unreachableWarning: numbers => `चेतावनी: नियम ${numbers.join(', ')} अप्राप्य हैं (पहले वाले सर्व-मिलान नियम से ढके हुए)।`,
131
151
  emptySource: '(कोई नियम फ़ाइल नहीं — खाली नियम-समूह)',
132
152
  };
@@ -134,10 +154,10 @@ const HI = {
134
154
  export const UI_PROSE = { en: EN, zh: ZH, es: ES, pt: PT, hi: HI };
135
155
  /** `describeRule` match-dimension tokens by language. */
136
156
  export const DESCRIBE_TOKENS = {
137
- en: { allTools: 'all tools', tools: 'tools', params: 'params', paths: 'paths', absent: 'absent', when: 'when', platform: 'platform', disabled: 'disabled', tags: 'tags' },
138
- zh: { allTools: '全部工具', tools: '工具', params: '参数', paths: '路径', absent: '缺省键', when: '条件', platform: '平台', disabled: '已禁用', tags: '标签' },
139
- es: { allTools: 'todas las herramientas', tools: 'herramientas', params: 'parámetros', paths: 'rutas', absent: 'ausentes', when: 'cuándo', platform: 'plataforma', disabled: 'deshabilitada', tags: 'etiquetas' },
140
- pt: { allTools: 'todas as ferramentas', tools: 'ferramentas', params: 'parâmetros', paths: 'caminhos', absent: 'ausentes', when: 'quando', platform: 'plataforma', disabled: 'desativada', tags: 'etiquetas' },
141
- hi: { allTools: 'सभी टूल', tools: 'टूल', params: 'पैरामीटर', paths: 'पथ', absent: 'अनुपस्थित', when: 'शर्त', platform: 'प्लेटफ़ॉर्म', disabled: 'अक्षम', tags: 'टैग' },
157
+ en: { allTools: 'all tools', tools: 'tools', agents: 'agents', params: 'params', paths: 'paths', absent: 'absent', when: 'when', platform: 'platform', disabled: 'disabled', tags: 'tags' },
158
+ zh: { allTools: '全部工具', tools: '工具', agents: '代理', params: '参数', paths: '路径', absent: '缺省键', when: '条件', platform: '平台', disabled: '已禁用', tags: '标签' },
159
+ es: { allTools: 'todas las herramientas', tools: 'herramientas', agents: 'agentes', params: 'parámetros', paths: 'rutas', absent: 'ausentes', when: 'cuándo', platform: 'plataforma', disabled: 'deshabilitada', tags: 'etiquetas' },
160
+ pt: { allTools: 'todas as ferramentas', tools: 'ferramentas', agents: 'agentes', params: 'parâmetros', paths: 'caminhos', absent: 'ausentes', when: 'quando', platform: 'plataforma', disabled: 'desativada', tags: 'etiquetas' },
161
+ hi: { allTools: 'सभी टूल', tools: 'टूल', agents: 'एजेंट', params: 'पैरामीटर', paths: 'पथ', absent: 'अनुपस्थित', when: 'शर्त', platform: 'प्लेटफ़ॉर्म', disabled: 'अक्षम', tags: 'टैग' },
142
162
  };
143
163
  //# sourceMappingURL=prose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prose.js","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prose.js","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,14 @@ export interface RuleMatchDoc {
48
48
  paths: string[];
49
49
  /** Argument keys that must be ABSENT; every listed key must be missing. */
50
50
  absent: string[];
51
+ /**
52
+ * Agent-identity selectors (globs against the calling agent's session
53
+ * header: `main`, `subagent`, and `preset:<name>` candidates); ANY
54
+ * selector matching ANY candidate satisfies the dimension. Empty matches
55
+ * every agent. Unknown agent identity never matches, so agent-scoped
56
+ * rules fail closed.
57
+ */
58
+ agents: string[];
51
59
  /** Environment/platform conditions; every listed env key must be present and match. */
52
60
  when: WhenDoc;
53
61
  }
@@ -70,6 +78,8 @@ export interface CompiledRule {
70
78
  readonly description?: string;
71
79
  readonly tags: readonly string[];
72
80
  readonly tools: readonly RegExp[];
81
+ /** Agent-selector globs; empty = every agent. */
82
+ readonly agents: readonly RegExp[];
73
83
  /** Param key → positive/negative pattern lists. */
74
84
  readonly params: ReadonlyMap<string, {
75
85
  positive: readonly RegExp[];
@@ -114,6 +124,12 @@ export interface MatchContext {
114
124
  readonly platform?: string;
115
125
  /** Environment table; defaults to `process.env` when omitted. */
116
126
  readonly env?: Readonly<Record<string, string | undefined>>;
127
+ /**
128
+ * Agent-identity candidate strings the `agents` dimension matches
129
+ * against (`main`, `subagent`, `preset:<name>`); omitted (or empty)
130
+ * means the identity is unknown and agent-scoped rules never match.
131
+ */
132
+ readonly agents?: readonly string[];
117
133
  }
118
134
  /**
119
135
  * Parse one rules file body. Unknown document/rule/match fields, invalid
@@ -187,6 +203,7 @@ export declare function describeRule(rule: CompiledRule, tokens: DescribeTokens)
187
203
  export interface DescribeTokens {
188
204
  readonly allTools: string;
189
205
  readonly tools: string;
206
+ readonly agents: string;
190
207
  readonly params: string;
191
208
  readonly paths: string;
192
209
  readonly absent: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"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"}