dsh-permission-rules 0.4.0 → 0.4.2

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/lib/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { createRequire } from "node:module";
1
2
  import { existsSync, readFileSync } from "node:fs";
2
3
  import { dirname, isAbsolute, join, resolve } from "node:path";
3
4
  import chokidar from "chokidar";
@@ -32,7 +33,8 @@ const Config = z.object({
32
33
  audit: z.union(["all", "hits"]).default("all"),
33
34
  searchUp: z.boolean().default(false),
34
35
  maxGlobStars: z.number().default(2),
35
- enforce: z.boolean().default(true)
36
+ enforce: z.boolean().default(true),
37
+ allowUnmarkedAudit: z.boolean().default(false)
36
38
  });
37
39
  /**
38
40
  * Validate raw values and fill explicit defaults. A `maxRules`,
@@ -70,6 +72,7 @@ function resolveConfig(config = {}) {
70
72
  assertBoolean("searchUp", searchUp);
71
73
  assertBoolean("caseInsensitivePaths", config.caseInsensitivePaths ?? process.platform === "win32");
72
74
  assertBoolean("enforce", config.enforce ?? true);
75
+ assertBoolean("allowUnmarkedAudit", config.allowUnmarkedAudit ?? false);
73
76
  return {
74
77
  rulesFile,
75
78
  fallbackPath: config.fallbackPath,
@@ -84,7 +87,8 @@ function resolveConfig(config = {}) {
84
87
  audit: config.audit ?? "all",
85
88
  searchUp,
86
89
  maxGlobStars,
87
- enforce: config.enforce ?? true
90
+ enforce: config.enforce ?? true,
91
+ allowUnmarkedAudit: config.allowUnmarkedAudit ?? false
88
92
  };
89
93
  }
90
94
  /** Throw unless `key` is one of `allowed` (TypeScript's closed enums are not runtime checks). */
@@ -934,6 +938,7 @@ const EN = {
934
938
  usage: "Usage: /rules [list | reload | decisions [n] | test <tool> <json-args>]",
935
939
  decisionsHeader: (shown, total) => `Last ${shown} of ${total} permission decision(s) for this session:`,
936
940
  noDecisions: "No permission decisions recorded in this session yet.",
941
+ auditDisabledNotice: "Session-log audit is disabled on this host: its Session.append predates the ignorable marker and would make sessions unresumable elsewhere (set allowUnmarkedAudit: true to opt back in).",
937
942
  invalidDecisionsCount: (arg) => `Invalid decisions count "${arg}": give a positive integer (default 10).`,
938
943
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
939
944
  return `- #${seq} ${action} ${toolName}${ruleIndex === void 0 ? "" : ` (rule ${ruleIndex + 1})`}${dryRun ? outcome === void 0 ? " (dry-run)" : ` (dry-run → ${outcome})` : ""}${reason === void 0 ? "" : `: ${short(reason)}`}`;
@@ -960,6 +965,7 @@ const ZH = {
960
965
  usage: "用法:/rules [list | reload | decisions [n] | test <工具名> <json-参数>]",
961
966
  decisionsHeader: (shown, total) => `本会话最近 ${shown}/${total} 条权限裁决:`,
962
967
  noDecisions: "本会话还没有记录任何权限裁决。",
968
+ auditDisabledNotice: "本宿主上会话日志审计已停用:其 Session.append 早于 ignorable 标记支持,会令会话在其他宿主上无法恢复(设 allowUnmarkedAudit: true 可重新开启)。",
963
969
  invalidDecisionsCount: (arg) => `无效的裁决条数 "${arg}":请给正整数(默认 10)。`,
964
970
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
965
971
  return `- #${seq} ${action} ${toolName}${ruleIndex === void 0 ? "" : `(规则 ${ruleIndex + 1})`}${dryRun ? outcome === void 0 ? "(干跑)" : `(干跑 → ${outcome})` : ""}${reason === void 0 ? "" : `:${short(reason)}`}`;
@@ -986,6 +992,7 @@ const ES = {
986
992
  usage: "Uso: /rules [list | reload | decisions [n] | test <herramienta> <json-args>]",
987
993
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisión(es) de permiso de esta sesión:`,
988
994
  noDecisions: "Esta sesión aún no registra decisiones de permiso.",
995
+ auditDisabledNotice: "La auditoría del registro de sesión está desactivada en este host: su Session.append es anterior al marcador ignorable y haría las sesiones irrecuperables en otros hosts (establece allowUnmarkedAudit: true para reactivarla).",
989
996
  invalidDecisionsCount: (arg) => `Cantidad de decisiones inválida "${arg}": indique un entero positivo (por defecto 10).`,
990
997
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
991
998
  return `- #${seq} ${action} ${toolName}${ruleIndex === void 0 ? "" : ` (regla ${ruleIndex + 1})`}${dryRun ? outcome === void 0 ? " (simulación)" : ` (simulación → ${outcome})` : ""}${reason === void 0 ? "" : `: ${short(reason)}`}`;
@@ -1012,6 +1019,7 @@ const PT = {
1012
1019
  usage: "Uso: /rules [list | reload | decisions [n] | test <ferramenta> <json-args>]",
1013
1020
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisão(ões) de permissão desta sessão:`,
1014
1021
  noDecisions: "Esta sessão ainda não registrou decisões de permissão.",
1022
+ auditDisabledNotice: "A auditoria do registro da sessão está desativada neste host: seu Session.append é anterior ao marcador ignorable e tornaria as sessões irrecuperáveis em outros hosts (defina allowUnmarkedAudit: true para reativar).",
1015
1023
  invalidDecisionsCount: (arg) => `Quantidade de decisões inválida "${arg}": informe um inteiro positivo (padrão 10).`,
1016
1024
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
1017
1025
  return `- #${seq} ${action} ${toolName}${ruleIndex === void 0 ? "" : ` (regra ${ruleIndex + 1})`}${dryRun ? outcome === void 0 ? " (simulação)" : ` (simulação → ${outcome})` : ""}${reason === void 0 ? "" : `: ${short(reason)}`}`;
@@ -1038,6 +1046,7 @@ const HI = {
1038
1046
  usage: "उपयोग: /rules [list | reload | decisions [n] | test <टूल> <json-args>]",
1039
1047
  decisionsHeader: (shown, total) => `इस सत्र के अंतिम ${shown}/${total} अनुमति निर्णय:`,
1040
1048
  noDecisions: "इस सत्र में अभी कोई अनुमति निर्णय दर्ज नहीं है।",
1049
+ auditDisabledNotice: "इस होस्ट पर सत्र-लॉग ऑडिट अक्षम है: इसका Session.append ignorable मार्कर से पुराना है और सत्र अन्य होस्ट पर अप्राप्य बन जाते (पुनः चालू करने के लिए allowUnmarkedAudit: true सेट करें)।",
1041
1050
  invalidDecisionsCount: (arg) => `अमान्य निर्णय-संख्या "${arg}": एक धनात्मक पूर्णांक दें (डिफ़ॉल्ट 10)।`,
1042
1051
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
1043
1052
  return `- #${seq} ${action} ${toolName}${ruleIndex === void 0 ? "" : ` (नियम ${ruleIndex + 1})`}${dryRun ? outcome === void 0 ? " (ड्राई-रन)" : ` (ड्राई-रन → ${outcome})` : ""}${reason === void 0 ? "" : `: ${short(reason)}`}`;
@@ -1129,6 +1138,20 @@ const DESCRIBE_TOKENS = {
1129
1138
  }
1130
1139
  };
1131
1140
  //#endregion
1141
+ //#region src/events.ts
1142
+ /**
1143
+ * Whether an `append` call actually honored the `ignorable` marker: the
1144
+ * logged event returned by the host carries `ignorable === true` on
1145
+ * marker-aware builds and nothing on pre-marker builds. `false` (or any
1146
+ * non-event return) means the host dropped the marker and the event landed
1147
+ * unmarked — the runtime then degrades instead of polluting further logs.
1148
+ * @param result - the return value of the audit append.
1149
+ * @returns true only when the marker is present on the returned envelope.
1150
+ */
1151
+ function isMarkedAuditEvent(result) {
1152
+ return typeof result === "object" && result !== null && result.ignorable === true;
1153
+ }
1154
+ //#endregion
1132
1155
  //#region src/runtime.ts
1133
1156
  /**
1134
1157
  * Runtime of `dsh-permission-rules`: per-workspace rule loading (project
@@ -1155,6 +1178,8 @@ var PermissionRulesRuntime = class {
1155
1178
  watchers = /* @__PURE__ */ new Map();
1156
1179
  /** Debounce timers per rule-file path. */
1157
1180
  timers = /* @__PURE__ */ new Map();
1181
+ /** Whether the host honors the audit envelope's `ignorable` marker: unknown until the first decision (or peer-version check). */
1182
+ auditSupport = "unknown";
1158
1183
  constructor(ctx, config) {
1159
1184
  this.ctx = ctx;
1160
1185
  this.config = config;
@@ -1395,13 +1420,17 @@ var PermissionRulesRuntime = class {
1395
1420
  * Append the log-only `permissionRules/decision` audit event for every
1396
1421
  * decision (passthrough included unless `audit: 'hits'`), requesting the
1397
1422
  * envelope's `ignorable: true` marker so any harness build can load the
1398
- * log (readers that do not know the type skip the audit record instead of
1399
- * refusing the session). `source` names the matched rule's file, or the
1400
- * nearest effective file on a passthrough; `cwd` names the workspace the
1401
- * rules were resolved for; `dryRun` marks would-be deny/ask hits under
1402
- * `enforce: false`. Agentless calls have no session to audit; append
1403
- * failures are contained so an audit hiccup can never change a
1404
- * permission decision.
1423
+ * log. Hosts whose `Session.append` predates the marker (the rc.6 line)
1424
+ * silently drop it, leaving sessions unresumable on stricter hosts — the
1425
+ * runtime therefore detects such hosts BEFORE the first append (peer
1426
+ * version) and re-checks after the first append (returned envelope), then
1427
+ * degrades: session-log audit is disabled with a one-time warning unless
1428
+ * `allowUnmarkedAudit: true` opts back in. `source` names the matched
1429
+ * rule's file, or the nearest effective file on a passthrough; `cwd`
1430
+ * names the workspace the rules were resolved for; `dryRun` marks
1431
+ * would-be deny/ask hits under `enforce: false`. Agentless calls have no
1432
+ * session to audit; append failures are contained so an audit hiccup can
1433
+ * never change a permission decision.
1405
1434
  * @param exec - the pending call.
1406
1435
  * @param loaded - the rules in effect.
1407
1436
  * @param hit - the first matching rule, or undefined for passthrough.
@@ -1412,8 +1441,17 @@ var PermissionRulesRuntime = class {
1412
1441
  if (this.config.audit === "hits" && hit === void 0) return;
1413
1442
  const agent = exec.agent;
1414
1443
  if (agent === void 0) return;
1444
+ if (this.auditSupport === "unsupported") return;
1445
+ if (this.auditSupport === "unknown" && !this.config.allowUnmarkedAudit) {
1446
+ const version = this.peerVersion();
1447
+ if (version !== null && isUnmarkedHostVersion(version)) {
1448
+ this.auditSupport = "unsupported";
1449
+ this.warnUnmarkedAuditHost();
1450
+ return;
1451
+ }
1452
+ }
1415
1453
  try {
1416
- agent.session.append("permissionRules/decision", {
1454
+ const result = this.appendAudit(agent, {
1417
1455
  toolName: exec.name,
1418
1456
  callId: exec.callId,
1419
1457
  source: hit === void 0 ? loaded.sources[0] ?? "" : loaded.sources[hit.rule.sourceIndex] ?? "",
@@ -1425,11 +1463,35 @@ var PermissionRulesRuntime = class {
1425
1463
  reason: hit.rule.reason
1426
1464
  } : {},
1427
1465
  ...dryRun ? { dryRun: true } : {}
1428
- }, { ignorable: true });
1466
+ });
1467
+ if (this.auditSupport === "unknown" && !this.config.allowUnmarkedAudit) {
1468
+ if (isMarkedAuditEvent(result)) this.auditSupport = "supported";
1469
+ else {
1470
+ this.auditSupport = "unsupported";
1471
+ this.warnUnmarkedAuditHost();
1472
+ }
1473
+ }
1429
1474
  } catch (error) {
1430
1475
  this.ctx.logger.warn(`permission-rules: audit append failed: ${String(error)}`);
1431
1476
  }
1432
1477
  }
1478
+ /** Append one audit event through the session surface; the probe seam for host-capability detection. */
1479
+ appendAudit(agent, data) {
1480
+ return agent.session.append("permissionRules/decision", data, { ignorable: true });
1481
+ }
1482
+ /** The installed `@deepseek-ai/dsh-session` version, or `null` when unresolvable (falls back to the append probe). */
1483
+ peerVersion() {
1484
+ try {
1485
+ const pkg = createRequire(import.meta.url)("@deepseek-ai/dsh-session/package.json");
1486
+ return typeof pkg.version === "string" ? pkg.version : null;
1487
+ } catch {
1488
+ return null;
1489
+ }
1490
+ }
1491
+ /** One-time warning that session-log audit was disabled to keep session logs loadable. */
1492
+ warnUnmarkedAuditHost() {
1493
+ this.ctx.logger.warn("permission-rules: this host drops the ignorable marker on audit events (Session.append predates it), which would make sessions unresumable on stricter harness builds — session-log audit is disabled; set allowUnmarkedAudit: true to opt back in, and repair existing logs with scripts/repair-session-logs.mjs (see https://github.com/PerryLink/dsh-permission-rules/issues/2)");
1494
+ }
1433
1495
  /**
1434
1496
  * Execute the `/rules` command: bare `/rules` lists the active rules and
1435
1497
  * their sources; `/rules reload` re-reads the chain; `/rules decisions
@@ -1615,16 +1677,17 @@ var PermissionRulesRuntime = class {
1615
1677
  /** Render the session's `permissionRules/decision` audit trail, newest last. */
1616
1678
  decisionsCommand(invocation, count, prose) {
1617
1679
  const decisions = invocation.agent.session.events.filter((event) => event.type === "permissionRules/decision");
1618
- if (decisions.length === 0) return {
1619
- kind: "success",
1620
- text: prose.noDecisions
1621
- };
1622
- const shown = decisions.slice(-count);
1623
- const lines = [prose.decisionsHeader(shown.length, decisions.length)];
1624
- for (const event of shown) {
1625
- const data = event.data;
1626
- lines.push(prose.decisionLine(event.seq, data.action, data.toolName, data.ruleIndex, data.reason, data.dryRun === true, data.outcome));
1680
+ const lines = [];
1681
+ if (decisions.length === 0) lines.push(prose.noDecisions);
1682
+ else {
1683
+ const shown = decisions.slice(-count);
1684
+ lines.push(prose.decisionsHeader(shown.length, decisions.length));
1685
+ for (const event of shown) {
1686
+ const data = event.data;
1687
+ lines.push(prose.decisionLine(event.seq, data.action, data.toolName, data.ruleIndex, data.reason, data.dryRun === true, data.outcome));
1688
+ }
1627
1689
  }
1690
+ if (this.auditSupport === "unsupported") lines.push(prose.auditDisabledNotice);
1628
1691
  return {
1629
1692
  kind: "success",
1630
1693
  text: lines.join("\n")
@@ -1868,6 +1931,21 @@ function apply(ctx, config) {
1868
1931
  });
1869
1932
  }
1870
1933
  /**
1934
+ * Whether a `@deepseek-ai/dsh-session` version line predates the
1935
+ * `ignorable` envelope-marker surface: the `0.1.0-rc.6` line and earlier
1936
+ * silently drop the marker from `Session.append` options, so audit events
1937
+ * written by those builds land unmarked and break resume on stricter
1938
+ * hosts. Non-matching (post-rc.6, stable, or unresolvable) versions are
1939
+ * treated as possibly-marker-aware and verified by the append probe.
1940
+ * @param version - the installed peer version string.
1941
+ * @returns true for the known-unmarked rc.1–rc.6 lines.
1942
+ */
1943
+ function isUnmarkedHostVersion(version) {
1944
+ const match = /^0\.1\.0-rc\.(\d+)$/.exec(version.trim());
1945
+ if (match === null) return false;
1946
+ return Number(match[1]) <= 6;
1947
+ }
1948
+ /**
1871
1949
  * Identity candidates for the `agents` match dimension, derived from the
1872
1950
  * caller agent's session header: `main` for top-level sessions, `subagent`
1873
1951
  * for subagent children (`header.origin === 'subagent'`), and
@@ -1942,4 +2020,4 @@ function nextToken(text) {
1942
2020
  const name = "permission-rules";
1943
2021
  const inject = ["commands", "tools"];
1944
2022
  //#endregion
1945
- export { Config, GlobError, PATH_CANDIDATE_KEYS, PLATFORMS, PermissionRulesRuntime, RULE_ACTIONS, RuleError, apply, compileGlob, compilePatternRegex, compileRules, compileRulesChain, describeRule, extractPathCandidates, findUnreachableRules, inject, matchRules, name, normalizeWorkspacePath, parseRulesDocument, resolveConfig };
2023
+ export { Config, GlobError, PATH_CANDIDATE_KEYS, PLATFORMS, PermissionRulesRuntime, RULE_ACTIONS, RuleError, apply, compileGlob, compilePatternRegex, compileRules, compileRulesChain, describeRule, extractPathCandidates, findUnreachableRules, inject, isMarkedAuditEvent, isUnmarkedHostVersion, matchRules, name, normalizeWorkspacePath, parseRulesDocument, resolveConfig };
@@ -59,6 +59,17 @@ export interface Config {
59
59
  * policy in production before enforcing it.
60
60
  */
61
61
  enforce?: boolean;
62
+ /**
63
+ * Whether to keep appending audit events to the session log on hosts
64
+ * whose `Session.append` predates the `ignorable` envelope marker
65
+ * (the `0.1.0-rc.6` line). Defaults to `false`: such hosts write the
66
+ * events UNMARKED, which makes the session unresumable on stricter
67
+ * hosts, so the runtime detects the host and disables session-log audit
68
+ * with a one-time warning instead. Set `true` to opt back into the
69
+ * in-session audit trail (and accept that those sessions may need
70
+ * `scripts/repair-session-logs.mjs` before loading on a newer harness).
71
+ */
72
+ allowUnmarkedAudit?: boolean;
62
73
  }
63
74
  /** Config after {@link resolveConfig}: every optional field has its explicit default. */
64
75
  export interface ResolvedConfig {
@@ -76,6 +87,7 @@ export interface ResolvedConfig {
76
87
  readonly searchUp: boolean;
77
88
  readonly maxGlobStars: number;
78
89
  readonly enforce: boolean;
90
+ readonly allowUnmarkedAudit: boolean;
79
91
  }
80
92
  /** Schemastery schema: the loader validates and fills defaults before `apply`. */
81
93
  export declare const Config: z<Config>;
@@ -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;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"}
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;IACjB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;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;IACzB,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;CACrC;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAgB3B,CAAA;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAW,GAAG,cAAc,CAgDjE"}
@@ -23,6 +23,7 @@ export const Config = z.object({
23
23
  searchUp: z.boolean().default(false),
24
24
  maxGlobStars: z.number().default(2),
25
25
  enforce: z.boolean().default(true),
26
+ allowUnmarkedAudit: z.boolean().default(false),
26
27
  });
27
28
  /**
28
29
  * Validate raw values and fill explicit defaults. A `maxRules`,
@@ -64,6 +65,7 @@ export function resolveConfig(config = {}) {
64
65
  assertBoolean('searchUp', searchUp);
65
66
  assertBoolean('caseInsensitivePaths', config.caseInsensitivePaths ?? process.platform === 'win32');
66
67
  assertBoolean('enforce', config.enforce ?? true);
68
+ assertBoolean('allowUnmarkedAudit', config.allowUnmarkedAudit ?? false);
67
69
  return {
68
70
  rulesFile,
69
71
  fallbackPath: config.fallbackPath,
@@ -79,6 +81,7 @@ export function resolveConfig(config = {}) {
79
81
  searchUp,
80
82
  maxGlobStars,
81
83
  enforce: config.enforce ?? true,
84
+ allowUnmarkedAudit: config.allowUnmarkedAudit ?? false,
82
85
  };
83
86
  }
84
87
  /** Throw unless `key` is one of `allowed` (TypeScript's closed enums are not runtime checks). */
@@ -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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"}
@@ -17,9 +17,16 @@
17
17
  * downstream — an auditable "what would the policy have done" trail.
18
18
  *
19
19
  * The event is appended with the envelope's `ignorable: true` marker (see
20
- * {@link AuditAppend}), so a harness build whose generated event vocabulary
21
- * does not include this out-of-repo type still loads the log — it skips the
22
- * audit record instead of refusing the whole session.
20
+ * {@link AuditAppend}). Harness builds that honor the marker (post-rc.6)
21
+ * stamp it on the envelope and skip unknown ignorable records when loading,
22
+ * so the audit can never refuse a session. Builds whose `Session.append`
23
+ * predates the marker — the `0.1.0-rc.6` line — silently DROP the options
24
+ * bag: the event then lands UNMARKED and makes the session unresumable on
25
+ * hosts with required-on-read semantics (`SessionFormatUnsupportedError`).
26
+ * The runtime detects this at first use (peer version pre-check plus a
27
+ * probe of the appended envelope) and disables session-log audit on such
28
+ * hosts with a one-time warning; `allowUnmarkedAudit: true` opts back in,
29
+ * and `scripts/repair-session-logs.mjs` repairs already-polluted logs.
23
30
  * @module dsh-permission-rules/events
24
31
  */
25
32
  import type { CallId } from '@deepseek-ai/dsh-llm';
@@ -71,11 +78,23 @@ export interface AuditDecision {
71
78
  /**
72
79
  * `Session.append` narrowed to this plugin's audit event. The options bag
73
80
  * exists only on host builds that expose the `ignorable` envelope-marker
74
- * surface (post-rc.6 `@deepseek-ai/dsh-session`); an rc.6 host accepts and
75
- * ignores the third argument, appending the identical event without the
76
- * marker — no behavior change, no failure either way.
81
+ * surface (post-rc.6 `@deepseek-ai/dsh-session`); an rc.6 host accepts the
82
+ * call but silently drops the third argument — the event is appended
83
+ * WITHOUT the marker, which is exactly what breaks later resume on stricter
84
+ * hosts. The runtime treats the marker as optional-but-probed: see
85
+ * {@link isMarkedAuditEvent}.
77
86
  */
78
87
  export type AuditAppend = (type: 'permissionRules/decision', data: AuditDecision, options?: {
79
88
  ignorable?: true;
80
89
  }) => unknown;
90
+ /**
91
+ * Whether an `append` call actually honored the `ignorable` marker: the
92
+ * logged event returned by the host carries `ignorable === true` on
93
+ * marker-aware builds and nothing on pre-marker builds. `false` (or any
94
+ * non-event return) means the host dropped the marker and the event landed
95
+ * unmarked — the runtime then degrades instead of polluting further logs.
96
+ * @param result - the return value of the audit append.
97
+ * @returns true only when the marker is present on the returned envelope.
98
+ */
99
+ export declare function isMarkedAuditEvent(result: unknown): boolean;
81
100
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;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;;;;;;;;GAQG;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;AAEZ;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAE3D"}
@@ -17,10 +17,28 @@
17
17
  * downstream — an auditable "what would the policy have done" trail.
18
18
  *
19
19
  * The event is appended with the envelope's `ignorable: true` marker (see
20
- * {@link AuditAppend}), so a harness build whose generated event vocabulary
21
- * does not include this out-of-repo type still loads the log — it skips the
22
- * audit record instead of refusing the whole session.
20
+ * {@link AuditAppend}). Harness builds that honor the marker (post-rc.6)
21
+ * stamp it on the envelope and skip unknown ignorable records when loading,
22
+ * so the audit can never refuse a session. Builds whose `Session.append`
23
+ * predates the marker — the `0.1.0-rc.6` line — silently DROP the options
24
+ * bag: the event then lands UNMARKED and makes the session unresumable on
25
+ * hosts with required-on-read semantics (`SessionFormatUnsupportedError`).
26
+ * The runtime detects this at first use (peer version pre-check plus a
27
+ * probe of the appended envelope) and disables session-log audit on such
28
+ * hosts with a one-time warning; `allowUnmarkedAudit: true` opts back in,
29
+ * and `scripts/repair-session-logs.mjs` repairs already-polluted logs.
23
30
  * @module dsh-permission-rules/events
24
31
  */
25
- export {};
32
+ /**
33
+ * Whether an `append` call actually honored the `ignorable` marker: the
34
+ * logged event returned by the host carries `ignorable === true` on
35
+ * marker-aware builds and nothing on pre-marker builds. `false` (or any
36
+ * non-event return) means the host dropped the marker and the event landed
37
+ * unmarked — the runtime then degrades instead of polluting further logs.
38
+ * @param result - the return value of the audit append.
39
+ * @returns true only when the marker is present on the returned envelope.
40
+ */
41
+ export function isMarkedAuditEvent(result) {
42
+ return typeof result === 'object' && result !== null && result.ignorable === true;
43
+ }
26
44
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAoEH;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAK,MAAkC,CAAC,SAAS,KAAK,IAAI,CAAA;AAChH,CAAC"}
@@ -19,7 +19,7 @@ import { apply } from './runtime.ts';
19
19
  export declare const name = "permission-rules";
20
20
  export declare const inject: string[];
21
21
  export { apply };
22
- export { PermissionRulesRuntime } from './runtime.ts';
22
+ export { PermissionRulesRuntime, isUnmarkedHostVersion } from './runtime.ts';
23
23
  export * from './config.ts';
24
24
  export * from './events.ts';
25
25
  export * from './rules.ts';
@@ -1 +1 @@
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
+ {"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,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC5E,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -19,7 +19,7 @@ import { apply } from "./runtime.js";
19
19
  export const name = 'permission-rules';
20
20
  export const inject = ['commands', 'tools'];
21
21
  export { apply };
22
- export { PermissionRulesRuntime } from "./runtime.js";
22
+ export { PermissionRulesRuntime, isUnmarkedHostVersion } from "./runtime.js";
23
23
  export * from "./config.js";
24
24
  export * from "./events.js";
25
25
  export * from "./rules.js";
@@ -1 +1 @@
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"}
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,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC5E,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
@@ -32,6 +32,8 @@ export interface UiProse {
32
32
  decisionsHeader: (shown: number, total: number) => string;
33
33
  /** Line shown when the session log holds no audit decisions. */
34
34
  noDecisions: string;
35
+ /** Notice appended to `/rules decisions` when session-log audit is disabled on this host (ignorable marker not honored). */
36
+ auditDisabledNotice: string;
35
37
  /** Rejection of a malformed decisions count. */
36
38
  invalidDecisionsCount: (arg: string) => string;
37
39
  /** One audit-decision row (dry-run rows mark the actual outcome). */
@@ -1 +1 @@
1
- {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../src/prose.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ const EN = {
22
22
  usage: 'Usage: /rules [list | reload | decisions [n] | test <tool> <json-args>]',
23
23
  decisionsHeader: (shown, total) => `Last ${shown} of ${total} permission decision(s) for this session:`,
24
24
  noDecisions: 'No permission decisions recorded in this session yet.',
25
+ auditDisabledNotice: 'Session-log audit is disabled on this host: its Session.append predates the ignorable marker and would make sessions unresumable elsewhere (set allowUnmarkedAudit: true to opt back in).',
25
26
  invalidDecisionsCount: arg => `Invalid decisions count "${arg}": give a positive integer (default 10).`,
26
27
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
27
28
  const rule = ruleIndex === undefined ? '' : ` (rule ${ruleIndex + 1})`;
@@ -51,6 +52,7 @@ const ZH = {
51
52
  usage: '用法:/rules [list | reload | decisions [n] | test <工具名> <json-参数>]',
52
53
  decisionsHeader: (shown, total) => `本会话最近 ${shown}/${total} 条权限裁决:`,
53
54
  noDecisions: '本会话还没有记录任何权限裁决。',
55
+ auditDisabledNotice: '本宿主上会话日志审计已停用:其 Session.append 早于 ignorable 标记支持,会令会话在其他宿主上无法恢复(设 allowUnmarkedAudit: true 可重新开启)。',
54
56
  invalidDecisionsCount: arg => `无效的裁决条数 "${arg}":请给正整数(默认 10)。`,
55
57
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
56
58
  const rule = ruleIndex === undefined ? '' : `(规则 ${ruleIndex + 1})`;
@@ -80,6 +82,7 @@ const ES = {
80
82
  usage: 'Uso: /rules [list | reload | decisions [n] | test <herramienta> <json-args>]',
81
83
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisión(es) de permiso de esta sesión:`,
82
84
  noDecisions: 'Esta sesión aún no registra decisiones de permiso.',
85
+ auditDisabledNotice: 'La auditoría del registro de sesión está desactivada en este host: su Session.append es anterior al marcador ignorable y haría las sesiones irrecuperables en otros hosts (establece allowUnmarkedAudit: true para reactivarla).',
83
86
  invalidDecisionsCount: arg => `Cantidad de decisiones inválida "${arg}": indique un entero positivo (por defecto 10).`,
84
87
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
85
88
  const rule = ruleIndex === undefined ? '' : ` (regla ${ruleIndex + 1})`;
@@ -109,6 +112,7 @@ const PT = {
109
112
  usage: 'Uso: /rules [list | reload | decisions [n] | test <ferramenta> <json-args>]',
110
113
  decisionsHeader: (shown, total) => `Últimas ${shown} de ${total} decisão(ões) de permissão desta sessão:`,
111
114
  noDecisions: 'Esta sessão ainda não registrou decisões de permissão.',
115
+ auditDisabledNotice: 'A auditoria do registro da sessão está desativada neste host: seu Session.append é anterior ao marcador ignorable e tornaria as sessões irrecuperáveis em outros hosts (defina allowUnmarkedAudit: true para reativar).',
112
116
  invalidDecisionsCount: arg => `Quantidade de decisões inválida "${arg}": informe um inteiro positivo (padrão 10).`,
113
117
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
114
118
  const rule = ruleIndex === undefined ? '' : ` (regra ${ruleIndex + 1})`;
@@ -138,6 +142,7 @@ const HI = {
138
142
  usage: 'उपयोग: /rules [list | reload | decisions [n] | test <टूल> <json-args>]',
139
143
  decisionsHeader: (shown, total) => `इस सत्र के अंतिम ${shown}/${total} अनुमति निर्णय:`,
140
144
  noDecisions: 'इस सत्र में अभी कोई अनुमति निर्णय दर्ज नहीं है।',
145
+ auditDisabledNotice: 'इस होस्ट पर सत्र-लॉग ऑडिट अक्षम है: इसका Session.append ignorable मार्कर से पुराना है और सत्र अन्य होस्ट पर अप्राप्य बन जाते (पुनः चालू करने के लिए allowUnmarkedAudit: true सेट करें)।',
141
146
  invalidDecisionsCount: arg => `अमान्य निर्णय-संख्या "${arg}": एक धनात्मक पूर्णांक दें (डिफ़ॉल्ट 10)।`,
142
147
  decisionLine: (seq, action, toolName, ruleIndex, reason, dryRun, outcome) => {
143
148
  const rule = ruleIndex === undefined ? '' : ` (नियम ${ruleIndex + 1})`;
@@ -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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"}