@principles/core 1.161.0 → 1.162.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.
Files changed (102) hide show
  1. package/dist/runtime-v2/__tests__/adversarial-loop.test.js +24 -78
  2. package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/architecture-regression.test.js +8 -5
  4. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +32 -80
  6. package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
  7. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js +2 -2
  8. package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js.map +1 -1
  9. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js +7 -7
  10. package/dist/runtime-v2/__tests__/principle-compiler-core.test.js.map +1 -1
  11. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +24 -1
  12. package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +1 -1
  13. package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
  14. package/dist/runtime-v2/activation/production-gate-deps.js +18 -1
  15. package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
  16. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +277 -475
  17. package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +1 -1
  18. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +14 -34
  19. package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
  20. package/dist/runtime-v2/adapter/artificer-l2-adapter.js +182 -222
  21. package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
  22. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +2 -2
  23. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  24. package/dist/runtime-v2/adversarial-loop.d.ts.map +1 -1
  25. package/dist/runtime-v2/adversarial-loop.js +5 -27
  26. package/dist/runtime-v2/adversarial-loop.js.map +1 -1
  27. package/dist/runtime-v2/golden-trace-replay-validator.d.ts +8 -0
  28. package/dist/runtime-v2/golden-trace-replay-validator.d.ts.map +1 -1
  29. package/dist/runtime-v2/golden-trace-replay-validator.js +3 -3
  30. package/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
  31. package/dist/runtime-v2/golden-trace.d.ts +16 -1
  32. package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  33. package/dist/runtime-v2/golden-trace.js +13 -4
  34. package/dist/runtime-v2/golden-trace.js.map +1 -1
  35. package/dist/runtime-v2/index.d.ts +8 -5
  36. package/dist/runtime-v2/index.d.ts.map +1 -1
  37. package/dist/runtime-v2/index.js +11 -4
  38. package/dist/runtime-v2/index.js.map +1 -1
  39. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts +2 -0
  40. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts.map +1 -0
  41. package/dist/runtime-v2/internalization/__tests__/{artificer-output-v2.test.js → artificer-rule-output.test.js} +126 -127
  42. package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +1 -0
  43. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts +2 -0
  44. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts.map +1 -0
  45. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js +270 -0
  46. package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js.map +1 -0
  47. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts +2 -0
  48. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts.map +1 -0
  49. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js +180 -0
  50. package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js.map +1 -0
  51. package/dist/runtime-v2/internalization/artificer-output.d.ts +33 -51
  52. package/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
  53. package/dist/runtime-v2/internalization/artificer-output.js +48 -87
  54. package/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
  55. package/dist/runtime-v2/internalization/artificer-runner.d.ts +8 -8
  56. package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
  57. package/dist/runtime-v2/internalization/artificer-runner.js +5 -5
  58. package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
  59. package/dist/runtime-v2/internalization/evaluator-runner.js +2 -2
  60. package/dist/runtime-v2/internalization/index.d.ts +9 -4
  61. package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
  62. package/dist/runtime-v2/internalization/index.js +8 -3
  63. package/dist/runtime-v2/internalization/index.js.map +1 -1
  64. package/dist/runtime-v2/internalization/rule-code-validator.d.ts +16 -0
  65. package/dist/runtime-v2/internalization/rule-code-validator.d.ts.map +1 -1
  66. package/dist/runtime-v2/internalization/rule-code-validator.js +50 -1
  67. package/dist/runtime-v2/internalization/rule-code-validator.js.map +1 -1
  68. package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts +62 -0
  69. package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts.map +1 -0
  70. package/dist/runtime-v2/internalization/rule-host-input-builder.js +182 -0
  71. package/dist/runtime-v2/internalization/rule-host-input-builder.js.map +1 -0
  72. package/dist/runtime-v2/internalization/rule-host-validator.d.ts.map +1 -1
  73. package/dist/runtime-v2/internalization/rule-host-validator.js +22 -1
  74. package/dist/runtime-v2/internalization/rule-host-validator.js.map +1 -1
  75. package/dist/runtime-v2/internalization/template-generator.d.ts +7 -2
  76. package/dist/runtime-v2/internalization/template-generator.d.ts.map +1 -1
  77. package/dist/runtime-v2/internalization/template-generator.js +10 -5
  78. package/dist/runtime-v2/internalization/template-generator.js.map +1 -1
  79. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts +2 -0
  80. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts.map +1 -0
  81. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +322 -0
  82. package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +1 -0
  83. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts +2 -0
  84. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts.map +1 -0
  85. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js +149 -0
  86. package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js.map +1 -0
  87. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts +72 -0
  88. package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -0
  89. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +275 -0
  90. package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -0
  91. package/dist/runtime-v2/tools/artificer-output-typebox.d.ts +78 -0
  92. package/dist/runtime-v2/tools/artificer-output-typebox.d.ts.map +1 -0
  93. package/dist/runtime-v2/tools/artificer-output-typebox.js +70 -0
  94. package/dist/runtime-v2/tools/artificer-output-typebox.js.map +1 -0
  95. package/dist/telemetry-event.d.ts +2 -2
  96. package/dist/telemetry-event.d.ts.map +1 -1
  97. package/dist/telemetry-event.js +5 -3
  98. package/dist/telemetry-event.js.map +1 -1
  99. package/package.json +1 -1
  100. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts +0 -2
  101. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts.map +0 -1
  102. package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/index.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,10 @@
6
6
  * by pd-cli and future non-OpenClaw hosts.
7
7
  */
8
8
  export { createRuleHostHelpers } from './rule-host-helpers.js';
9
+ export { normalizePathPure, extractFilePathFromParams, buildRuleHostAction } from './rule-host-input-builder.js';
9
10
  export { decideInternalizationRoute } from './internalization-route.js';
10
11
  export { generateFromTemplate } from './template-generator.js';
11
- export { checkForbiddenPatterns, checkReturnStatementsMissingFields } from './rule-code-validator.js';
12
+ export { checkForbiddenPatterns, checkReturnStatementsMissingFields, checkMatchedFalseDecisions } from './rule-code-validator.js';
12
13
  export { mergeDecisions } from './rule-host-evaluator.js';
13
14
  export { validateRuleHostResult } from './rule-host-validator.js';
14
15
  export { computeRuleMetrics, computePrincipleAdherence } from './lifecycle-metrics.js';
@@ -30,7 +31,7 @@ export { DefaultPhilosopherValidator, } from './philosopher-output.js';
30
31
  export { PhilosopherRunner, resolvePhilosopherRunnerOptions, DEFAULT_PHILOSOPHER_RUNNER_OPTIONS, } from './philosopher-runner.js';
31
32
  export { DefaultScribeValidator, } from './scribe-output.js';
32
33
  export { ScribeRunner, resolveScribeRunnerOptions, DEFAULT_SCRIBE_RUNNER_OPTIONS, } from './scribe-runner.js';
33
- export { DefaultArtificerValidator, ArtificerOutputV1Schema, ArtificerImplementationPlanSchema, ArtificerSourceTraceSchema, isArtificerOutputV2, } from './artificer-output.js';
34
+ export { DefaultArtificerValidator, ArtificerRuleOutputSchema, ArtificerSourceTraceSchema, } from './artificer-output.js';
34
35
  export { ArtificerRunner, resolveArtificerRunnerOptions, DEFAULT_ARTIFICER_RUNNER_OPTIONS, } from './artificer-runner.js';
35
36
  export { DefaultEvaluatorValidator, EvaluatorOutputV1Schema, EvaluatorEvaluationSchema, EvaluatorSourceTraceSchema, EVALUATOR_DECISIONS, isEvaluatorOutputV2, } from './evaluator-output.js';
36
37
  export { EvaluatorRunner, resolveEvaluatorRunnerOptions, DEFAULT_EVALUATOR_RUNNER_OPTIONS, } from './evaluator-runner.js';
@@ -46,7 +47,11 @@ export { MemoryPIArtifactStore } from './pi-artifact-store.js';
46
47
  export { SqlitePIArtifactStore } from '../store/artifact/sqlite-pi-artifact-store.js';
47
48
  export { adversarialCasesToGoldenTrace } from './adversarial-case.js';
48
49
  export { formatAdversarialFeedback } from './adversarial-feedback.js';
49
- // ── Artificer L2 Adapter (PRI-424) ─────────────────────────────────────────
50
+ // ── Artificer L2 Adapter (PRI-424 / PRI-439 Phase 4) ───────────────────────
50
51
  export { ArtificerL2Adapter } from '../adapter/artificer-l2-adapter.js';
52
+ // ── Artificer L2 Agent Loop Tools (PRI-439 Phase 4) ────────────────────────
53
+ // TypeBox redeclaration + 4-tool contract used by ArtificerL2Adapter.
54
+ export { ArtificerRuleOutputTypebox, ArtificerSourceTraceTypebox, GoldenTraceCaseInputTypebox, } from '../tools/artificer-output-typebox.js';
55
+ export { buildArtificerL2Tools, ARTIFICER_L2_TOOL_WHITELIST, RULECODE_SPEC_TEXT, } from '../tools/artificer-l2-tool-contract.js';
51
56
  export { ROUTE_CHANNEL_MAP, MVP_ENABLED_CHANNELS, CANDIDATE_KIND_TO_ROUTE, computeBridgeDecision, buildDreamerTaskSeed, buildDreamerSeedFromCandidate, seedIntakeTask, } from './intake-to-internalization-bridge.js';
52
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,22 @@ export interface ValidationResult {
18
18
  * No VM, no filesystem, no side effects.
19
19
  */
20
20
  export declare function checkForbiddenPatterns(code: string): string[];
21
+ /**
22
+ * Best-effort static check: find `return { ... }` statements where
23
+ * `matched: false` is paired with a decision other than 'allow'.
24
+ *
25
+ * PRI-439 Phase 2: when matched=false, the only valid decision is 'allow'.
26
+ * A `return { matched: false, decision: 'block' }` is contradictory —
27
+ * "the rule did not match, but I want to block" makes no sense.
28
+ *
29
+ * Only matches simple return objects without nested braces (same limitation
30
+ * as checkReturnStatementsMissingFields). Complex returns with nested braces
31
+ * are skipped — no false positives. The runtime validator
32
+ * (validateRuleHostResult) is the authoritative check.
33
+ *
34
+ * Returns an array of violation messages (empty if no violations found).
35
+ */
36
+ export declare function checkMatchedFalseDecisions(code: string): string[];
21
37
  /**
22
38
  * Best-effort static check: find `return { ... }` statements in rule code that
23
39
  * are missing required RuleHostResult fields (decision, matched, reason).
@@ -1 +1 @@
1
- {"version":3,"file":"rule-code-validator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-code-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBzE"}
1
+ {"version":3,"file":"rule-code-validator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-code-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAkCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBzE"}
@@ -11,6 +11,11 @@
11
11
  const FORBIDDEN_PATTERNS = [
12
12
  { pattern: /\brequire\s*\(/, label: 'require' },
13
13
  { pattern: /\bimport\s+/, label: 'import' },
14
+ // PRI-439 Phase 2: export forbidden — canonical form is bare `function evaluate(input, helpers)`
15
+ { pattern: /\bexport\b/, label: 'export' },
16
+ // PRI-439 Phase 2: async/await forbidden — canonical form is synchronous
17
+ { pattern: /\basync\b/, label: 'async' },
18
+ { pattern: /\bawait\b/, label: 'await' },
14
19
  { pattern: /\bfetch\s*\(/, label: 'fetch' },
15
20
  { pattern: /\beval\s*\(/, label: 'eval' },
16
21
  { pattern: /\bFunction\s*\(/, label: 'Function' },
@@ -22,9 +27,17 @@ const FORBIDDEN_PATTERNS = [
22
27
  { pattern: /\bProxy\b/, label: 'Proxy' },
23
28
  { pattern: /\bconstructor\b/, label: 'constructor' },
24
29
  { pattern: /\bBuffer\b/, label: 'Buffer' },
30
+ // Timers (PRI-439 Phase 2: added setImmediate, queueMicrotask)
25
31
  { pattern: /\bsetTimeout\b/, label: 'setTimeout' },
26
32
  { pattern: /\bsetInterval\b/, label: 'setInterval' },
27
- { pattern: /\[\s*['"](require|import|fetch|eval|process|globalThis|global|Reflect|Proxy|Buffer|Function)\s*['"]\s*\]/, label: 'bracket access to forbidden global' },
33
+ { pattern: /\bsetImmediate\b/, label: 'setImmediate' },
34
+ { pattern: /\bqueueMicrotask\b/, label: 'queueMicrotask' },
35
+ // Network (PRI-439 Phase 2: added XMLHttpRequest)
36
+ { pattern: /\bXMLHttpRequest\b/, label: 'XMLHttpRequest' },
37
+ // Random / non-deterministic (PRI-439 Phase 2)
38
+ { pattern: /Math\.random/, label: 'Math.random' },
39
+ { pattern: /\bcrypto\b/, label: 'crypto' },
40
+ { pattern: /\[\s*['"](require|import|fetch|eval|process|globalThis|global|Reflect|Proxy|Buffer|Function|setImmediate|queueMicrotask|XMLHttpRequest|crypto)\s*['"]\s*\]/, label: 'bracket access to forbidden global' },
28
41
  ];
29
42
  /**
30
43
  * Pure forbidden-pattern check — returns labels of all forbidden patterns found.
@@ -39,6 +52,42 @@ export function checkForbiddenPatterns(code) {
39
52
  }
40
53
  return labels;
41
54
  }
55
+ /**
56
+ * Best-effort static check: find `return { ... }` statements where
57
+ * `matched: false` is paired with a decision other than 'allow'.
58
+ *
59
+ * PRI-439 Phase 2: when matched=false, the only valid decision is 'allow'.
60
+ * A `return { matched: false, decision: 'block' }` is contradictory —
61
+ * "the rule did not match, but I want to block" makes no sense.
62
+ *
63
+ * Only matches simple return objects without nested braces (same limitation
64
+ * as checkReturnStatementsMissingFields). Complex returns with nested braces
65
+ * are skipped — no false positives. The runtime validator
66
+ * (validateRuleHostResult) is the authoritative check.
67
+ *
68
+ * Returns an array of violation messages (empty if no violations found).
69
+ */
70
+ export function checkMatchedFalseDecisions(code) {
71
+ const violations = [];
72
+ const returnPattern = /return\s*\{([^{}]+)\}/g;
73
+ let match;
74
+ while ((match = returnPattern.exec(code)) !== null) {
75
+ const content = match[1] ?? '';
76
+ const hasMatchedFalse = /\bmatched\s*:\s*false\b/.test(content);
77
+ if (!hasMatchedFalse)
78
+ continue;
79
+ // Extract the decision value from the return object.
80
+ // Matches: decision: 'block', decision: "block", decision: `block`
81
+ const decisionMatch = /\bdecision\s*:\s*['"`]([^'"`]+)['"`]/.exec(content);
82
+ if (decisionMatch === null)
83
+ continue;
84
+ const [, decisionValue] = decisionMatch;
85
+ if (decisionValue !== undefined && decisionValue !== 'allow') {
86
+ violations.push(`matched=false requires decision 'allow', got '${decisionValue}' — found: return { ${content.trim()} }`);
87
+ }
88
+ }
89
+ return violations;
90
+ }
42
91
  /**
43
92
  * Best-effort static check: find `return { ... }` statements in rule code that
44
93
  * are missing required RuleHostResult fields (decision, matched, reason).
@@ -1 +1 @@
1
- {"version":3,"file":"rule-code-validator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-code-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-code-validator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-code-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Rule Host Input Builder — Pure action snapshot construction (PRI-439 Phase 3)
3
+ *
4
+ * PURPOSE: Provide a single pure function that both Golden Trace replay and
5
+ * the production OpenClaw Gate use to construct the `action` field of
6
+ * RuleHostInput. This eliminates the divergence where Golden Trace produced
7
+ * `normalizedPath: null` while production produced a non-null string.
8
+ *
9
+ * ARCHITECTURE: Pure logic — no node:path, no node:fs, no platform-dependent
10
+ * APIs. Path normalization is implemented via manual string operations,
11
+ * following the pattern established in correction-proposal.ts.
12
+ *
13
+ * The 6 path types handled:
14
+ * 1. Absolute POSIX (/project/src/index.ts, /project)
15
+ * 2. Absolute Windows (D:\project\src\index.ts, D:\project)
16
+ * 3. Relative bare (src/index.ts, /project)
17
+ * 4. Relative ./ (./src/index.ts, /project)
18
+ * 5. Relative ../ (../src/index.ts, /project) — escapes project
19
+ * 6. Empty/null (null / '' / undefined, /project)
20
+ */
21
+ import type { RuleHostInput } from './rule-host-contracts.js';
22
+ /**
23
+ * Normalize a file path to a project-relative POSIX-style path.
24
+ *
25
+ * Returns '' for empty/null/undefined input.
26
+ * Returns the original path (with separators normalized to /) if the path
27
+ * escapes the project directory (starts with ../ after relativization).
28
+ *
29
+ * This function is deterministic — the same inputs produce the same output
30
+ * regardless of the host platform.
31
+ */
32
+ export declare function normalizePathPure(filePath: string | null | undefined, projectDir: string): string;
33
+ export interface ExtractFilePathOptions {
34
+ /** Whether the tool is a write/edit tool (triggers synthetic <tool:...> path). */
35
+ isWriteTool?: boolean;
36
+ /** Whether the tool is a bash tool (triggers command mutation regex). */
37
+ isBashTool?: boolean;
38
+ /** The tool name (used for synthetic path generation). */
39
+ toolName?: string;
40
+ }
41
+ /**
42
+ * Extract the file path from tool call params, using the same heuristic
43
+ * as the production OpenClaw Gate (gate.ts).
44
+ *
45
+ * Extraction order:
46
+ * 1. params.file_path || params.path || params.file || params.target
47
+ * 2. Bash command mutation regex (for bash tools without a file_path)
48
+ * 3. Synthetic <tool:${toolName}> (for write tools without any path)
49
+ *
50
+ * Returns null if no path can be extracted.
51
+ */
52
+ export declare function extractFilePathFromParams(params: Record<string, unknown>, options?: ExtractFilePathOptions): string | null;
53
+ export type BuildRuleHostActionOptions = ExtractFilePathOptions;
54
+ /**
55
+ * Build the `action` field of RuleHostInput — the unified snapshot used by
56
+ * both Golden Trace replay and the production OpenClaw Gate.
57
+ *
58
+ * This function combines file path extraction + path normalization into a
59
+ * single pure call, ensuring both paths produce the same `normalizedPath`.
60
+ */
61
+ export declare function buildRuleHostAction(toolName: string, params: Record<string, unknown>, projectDir: string, options?: BuildRuleHostActionOptions): RuleHostInput['action'];
62
+ //# sourceMappingURL=rule-host-input-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-host-input-builder.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-input-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,UAAU,EAAE,MAAM,GACjB,MAAM,CAqDR;AA8DD,MAAM,WAAW,sBAAsB;IACrC,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,IAAI,CA4Bf;AAID,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAEhE;;;;;;GAMG;AAEH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,0BAA+B,GACvC,aAAa,CAAC,QAAQ,CAAC,CAQzB"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Rule Host Input Builder — Pure action snapshot construction (PRI-439 Phase 3)
3
+ *
4
+ * PURPOSE: Provide a single pure function that both Golden Trace replay and
5
+ * the production OpenClaw Gate use to construct the `action` field of
6
+ * RuleHostInput. This eliminates the divergence where Golden Trace produced
7
+ * `normalizedPath: null` while production produced a non-null string.
8
+ *
9
+ * ARCHITECTURE: Pure logic — no node:path, no node:fs, no platform-dependent
10
+ * APIs. Path normalization is implemented via manual string operations,
11
+ * following the pattern established in correction-proposal.ts.
12
+ *
13
+ * The 6 path types handled:
14
+ * 1. Absolute POSIX (/project/src/index.ts, /project)
15
+ * 2. Absolute Windows (D:\project\src\index.ts, D:\project)
16
+ * 3. Relative bare (src/index.ts, /project)
17
+ * 4. Relative ./ (./src/index.ts, /project)
18
+ * 5. Relative ../ (../src/index.ts, /project) — escapes project
19
+ * 6. Empty/null (null / '' / undefined, /project)
20
+ */
21
+ // ── Path normalization (pure, no node:path) ─────────────────────────────────
22
+ /**
23
+ * Normalize a file path to a project-relative POSIX-style path.
24
+ *
25
+ * Returns '' for empty/null/undefined input.
26
+ * Returns the original path (with separators normalized to /) if the path
27
+ * escapes the project directory (starts with ../ after relativization).
28
+ *
29
+ * This function is deterministic — the same inputs produce the same output
30
+ * regardless of the host platform.
31
+ */
32
+ export function normalizePathPure(filePath, projectDir) {
33
+ if (!filePath || typeof filePath !== 'string')
34
+ return '';
35
+ // Normalize separators to POSIX
36
+ const file = filePath.replace(/\\/g, '/');
37
+ const project = projectDir.replace(/\\/g, '/');
38
+ // Detect Windows drive letters (e.g. D:/path)
39
+ const fileHasDrive = file.length >= 2 && file[1] === ':';
40
+ const projectHasDrive = project.length >= 2 && project[1] === ':';
41
+ // If file has drive but project doesn't, convert file to WSL-style path
42
+ // (D:/path -> /mnt/d/path) so both are in the same coordinate system.
43
+ let fileNormalized = file;
44
+ if (fileHasDrive && !projectHasDrive) {
45
+ fileNormalized = `/mnt/${file.charAt(0).toLowerCase()}${file.slice(2)}`;
46
+ }
47
+ // Strip drive letter prefix for segment-based comparison
48
+ const fileBody = fileHasDrive && projectHasDrive
49
+ ? fileNormalized.slice(2)
50
+ : fileNormalized;
51
+ const projectBody = projectHasDrive
52
+ ? project.slice(2)
53
+ : project;
54
+ const fileIsAbsolute = fileBody.startsWith('/');
55
+ const projectIsAbsolute = projectBody.startsWith('/');
56
+ if (fileIsAbsolute && projectIsAbsolute) {
57
+ // Both absolute — compute relative path
58
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
59
+ const rel = posixRelative(projectBody, fileBody);
60
+ if (rel.startsWith('../')) {
61
+ return fileNormalized;
62
+ }
63
+ return rel;
64
+ }
65
+ if (!fileIsAbsolute) {
66
+ // File is relative — join with project body, then compute relative
67
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
68
+ const joined = posixJoin(projectBody, fileBody);
69
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
70
+ const rel = posixRelative(projectBody, joined);
71
+ if (rel.startsWith('../')) {
72
+ return fileNormalized;
73
+ }
74
+ return rel;
75
+ }
76
+ // File is absolute but project is not (or vice versa) — can't relativize
77
+ return fileNormalized;
78
+ }
79
+ /**
80
+ * Compute the relative path from `from` to `to` using POSIX semantics.
81
+ * Both inputs must use / as separator.
82
+ */
83
+ function posixRelative(from, to) {
84
+ const fromSegs = from.split('/').filter((s) => s.length > 0);
85
+ const toSegs = to.split('/').filter((s) => s.length > 0);
86
+ // Find common prefix length
87
+ let commonLen = 0;
88
+ while (commonLen < fromSegs.length &&
89
+ commonLen < toSegs.length &&
90
+ fromSegs[commonLen] === toSegs[commonLen]) {
91
+ commonLen++;
92
+ }
93
+ const upCount = fromSegs.length - commonLen;
94
+ const downSegs = toSegs.slice(commonLen);
95
+ const parts = [];
96
+ for (let i = 0; i < upCount; i++) {
97
+ parts.push('..');
98
+ }
99
+ parts.push(...downSegs);
100
+ return parts.length === 0 ? '.' : parts.join('/');
101
+ }
102
+ /**
103
+ * Join a base path and a relative path using POSIX semantics.
104
+ * Resolves . and .. segments. The result always starts with /.
105
+ */
106
+ function posixJoin(base, rel) {
107
+ const baseSegs = base.split('/').filter((s) => s.length > 0);
108
+ const relSegs = rel.split('/').filter((s) => s.length > 0);
109
+ const result = [];
110
+ for (const seg of baseSegs) {
111
+ if (seg === '..') {
112
+ if (result.length > 0)
113
+ result.pop();
114
+ }
115
+ else if (seg !== '.') {
116
+ result.push(seg);
117
+ }
118
+ }
119
+ for (const seg of relSegs) {
120
+ if (seg === '..') {
121
+ if (result.length > 0)
122
+ result.pop();
123
+ }
124
+ else if (seg !== '.') {
125
+ result.push(seg);
126
+ }
127
+ }
128
+ return '/' + result.join('/');
129
+ }
130
+ /**
131
+ * Extract the file path from tool call params, using the same heuristic
132
+ * as the production OpenClaw Gate (gate.ts).
133
+ *
134
+ * Extraction order:
135
+ * 1. params.file_path || params.path || params.file || params.target
136
+ * 2. Bash command mutation regex (for bash tools without a file_path)
137
+ * 3. Synthetic <tool:${toolName}> (for write tools without any path)
138
+ *
139
+ * Returns null if no path can be extracted.
140
+ */
141
+ export function extractFilePathFromParams(params, options = {}) {
142
+ // 1. Direct path-like params
143
+ const directPath = params.file_path || params.path || params.file || params.target;
144
+ if (typeof directPath === 'string' && directPath.length > 0) {
145
+ return directPath;
146
+ }
147
+ // 2. Bash command mutation regex
148
+ if (options.isBashTool) {
149
+ const command = String(params.command || params.args || '');
150
+ if (command) {
151
+ const mutationMatch = /(?:>|>>|sed\s+-i|rm|mv|mkdir|touch|cp)\s+(?:-[a-zA-Z]+\s+)*([^\s;&|<>]+)/.exec(command);
152
+ if (mutationMatch && mutationMatch[1]) {
153
+ return mutationMatch[1];
154
+ }
155
+ // Bash command without a clear file target — return the full command
156
+ return command;
157
+ }
158
+ }
159
+ // 3. Synthetic path for pathless write tools
160
+ if (options.isWriteTool && options.toolName) {
161
+ return `<tool:${options.toolName}>`;
162
+ }
163
+ return null;
164
+ }
165
+ /**
166
+ * Build the `action` field of RuleHostInput — the unified snapshot used by
167
+ * both Golden Trace replay and the production OpenClaw Gate.
168
+ *
169
+ * This function combines file path extraction + path normalization into a
170
+ * single pure call, ensuring both paths produce the same `normalizedPath`.
171
+ */
172
+ // eslint-disable-next-line @typescript-eslint/max-params
173
+ export function buildRuleHostAction(toolName, params, projectDir, options = {}) {
174
+ const filePath = extractFilePathFromParams(params, { ...options, toolName });
175
+ const normalizedPath = normalizePathPure(filePath, projectDir);
176
+ return {
177
+ toolName,
178
+ normalizedPath,
179
+ paramsSummary: { ...params },
180
+ };
181
+ }
182
+ //# sourceMappingURL=rule-host-input-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-host-input-builder.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-input-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAmC,EACnC,UAAkB;IAElB,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzD,gCAAgC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IACzD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAElE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,cAAc,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,YAAY,IAAI,eAAe;QAC9C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEtD,IAAI,cAAc,IAAI,iBAAiB,EAAE,CAAC;QACxC,wCAAwC;QACxC,mEAAmE;QACnE,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,mEAAmE;QACnE,mEAAmE;QACnE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,mEAAmE;QACnE,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,yEAAyE;IACzE,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,EAAU;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OACE,SAAS,GAAG,QAAQ,CAAC,MAAM;QAC3B,SAAS,GAAG,MAAM,CAAC,MAAM;QACzB,QAAQ,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,EACzC,CAAC;QACD,SAAS,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAExB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,GAAW;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAaD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAA+B,EAC/B,UAAkC,EAAE;IAEpC,6BAA6B;IAC7B,MAAM,UAAU,GACd,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;IAClE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,aAAa,GACjB,0EAA0E,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3F,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,qEAAqE;YACrE,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,SAAS,OAAO,CAAC,QAAQ,GAAG,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAMD;;;;;;GAMG;AACH,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,MAA+B,EAC/B,UAAkB,EAClB,UAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,OAAO;QACL,QAAQ;QACR,cAAc;QACd,aAAa,EAAE,EAAE,GAAG,MAAM,EAAE;KAC7B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-host-validator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAuBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,8BAA8B,CAwFrF"}
1
+ {"version":3,"file":"rule-host-validator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA+BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,8BAA8B,CA2GrF"}
@@ -32,6 +32,13 @@ const PROTOTYPE_POLLUTION_KEYS = new Set(['__proto__', 'constructor', 'prototype
32
32
  function isRecordLike(value) {
33
33
  return typeof value === 'object' && value !== null && !Array.isArray(value);
34
34
  }
35
+ /**
36
+ * Type guard for RuleHostDecision (ERR-001: no `as` bypass).
37
+ * Checks typeof string + membership in VALID_DECISIONS without a cast.
38
+ */
39
+ function isRuleHostDecision(value) {
40
+ return typeof value === 'string' && VALID_DECISIONS.has(value);
41
+ }
35
42
  /**
36
43
  * Validate that an untrusted value conforms to the RuleHostResult contract.
37
44
  *
@@ -69,7 +76,7 @@ export function validateRuleHostResult(value) {
69
76
  }
70
77
  else {
71
78
  const { decision } = value;
72
- if (typeof decision !== 'string' || !VALID_DECISIONS.has(decision)) {
79
+ if (typeof decision !== 'string' || !isRuleHostDecision(decision)) {
73
80
  errors.push(`decision must be one of allow|block|requireApproval|auto_correct, got ${String(decision)}`);
74
81
  }
75
82
  }
@@ -80,6 +87,20 @@ export function validateRuleHostResult(value) {
80
87
  else if (typeof value.matched !== 'boolean') {
81
88
  errors.push(`matched must be a boolean, got ${typeof value.matched}`);
82
89
  }
90
+ // PRI-439 Phase 2: when matched=false, decision must be 'allow'.
91
+ // A `matched=false, decision='block'` result is contradictory —
92
+ // "the rule did not match, but I want to block" makes no sense.
93
+ // This is checked AFTER both matched and decision are individually validated
94
+ // so we only run the cross-field check when both fields are present and valid.
95
+ if (Object.hasOwn(value, 'matched') &&
96
+ typeof value.matched === 'boolean' &&
97
+ value.matched === false &&
98
+ Object.hasOwn(value, 'decision') &&
99
+ typeof value.decision === 'string' &&
100
+ isRuleHostDecision(value.decision) &&
101
+ value.decision !== 'allow') {
102
+ errors.push(`matched=false requires decision 'allow', got '${value.decision}'`);
103
+ }
83
104
  // reason — required, must be string
84
105
  if (!Object.hasOwn(value, 'reason')) {
85
106
  errors.push('reason is required');
@@ -1 +1 @@
1
- {"version":3,"file":"rule-host-validator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-host-validator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-validator.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,13 @@
2
2
  * Template Generator for Principle Compiler
3
3
  *
4
4
  * Generates RuleHost sandbox code from PainPattern descriptors.
5
- * Produces self-contained JS modules with `export const meta` and
6
- * `export function evaluate(input)` that can be loaded at runtime.
5
+ * Produces self-contained JS modules with `const meta` and
6
+ * `function evaluate(input, helpers)` that can be loaded at runtime.
7
+ *
8
+ * PRI-439 Phase 2: canonical dialect is bare `function evaluate(input, helpers)`
9
+ * — no ESM `export` keyword (forbidden by checkForbiddenPatterns).
10
+ * Default return is `{ decision: 'allow', matched: false, reason: '...' }`
11
+ * (matched=false requires decision='allow').
7
12
  *
8
13
  * SECURITY: All interpolated values use JSON.stringify or safe helpers
9
14
  * to prevent code injection through principleId, coversCondition, or regex patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,GAAG,IAAI,CA4Bf"}
1
+ {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,GAAG,IAAI,CA4Bf"}
@@ -2,8 +2,13 @@
2
2
  * Template Generator for Principle Compiler
3
3
  *
4
4
  * Generates RuleHost sandbox code from PainPattern descriptors.
5
- * Produces self-contained JS modules with `export const meta` and
6
- * `export function evaluate(input)` that can be loaded at runtime.
5
+ * Produces self-contained JS modules with `const meta` and
6
+ * `function evaluate(input, helpers)` that can be loaded at runtime.
7
+ *
8
+ * PRI-439 Phase 2: canonical dialect is bare `function evaluate(input, helpers)`
9
+ * — no ESM `export` keyword (forbidden by checkForbiddenPatterns).
10
+ * Default return is `{ decision: 'allow', matched: false, reason: '...' }`
11
+ * (matched=false requires decision='allow').
7
12
  *
8
13
  * SECURITY: All interpolated values use JSON.stringify or safe helpers
9
14
  * to prevent code injection through principleId, coversCondition, or regex patterns.
@@ -45,7 +50,7 @@ export function generateFromTemplate(principleId, coversCondition, patterns) {
45
50
  .map((p) => buildBranch(principleId, p))
46
51
  .join('\n');
47
52
  return (`// Auto-generated by Principle Compiler\n` +
48
- `export const meta = {\n` +
53
+ `const meta = {\n` +
49
54
  ` name: ${JSON.stringify(name)},\n` +
50
55
  ` version: '1.0.0',\n` +
51
56
  ` ruleId: ${JSON.stringify(ruleId)},\n` +
@@ -53,9 +58,9 @@ export function generateFromTemplate(principleId, coversCondition, patterns) {
53
58
  ` compiledAt: ${JSON.stringify(compiledAt)},\n` +
54
59
  ` sourcePrincipleId: ${JSON.stringify(principleId)},\n` +
55
60
  `};\n\n` +
56
- `export function evaluate(input) {\n` +
61
+ `function evaluate(input, helpers) {\n` +
57
62
  `${branches}\n` +
58
- ` return { matched: false };\n` +
63
+ ` return { decision: 'allow', matched: false, reason: 'rule not applicable' };\n` +
59
64
  `}\n`);
60
65
  }
61
66
  //# sourceMappingURL=template-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,QAAQ,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO,KAAK,WAAW,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,OAAoB;IAC5D,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,UAAU,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAC;IACxH,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,2FAA2F,CAC9I,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,WAAW,kCAAkC,CAAC;IAEjE,OAAO,CACL,SAAS,KAAK,OAAO;QACrB,0DAA0D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;QACvF,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,eAAuB,EACvB,QAAuB;IAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE5C,MAAM,QAAQ,GAAG,QAAQ;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,CACL,2CAA2C;QAC3C,yBAAyB;QACzB,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;QACpC,uBAAuB;QACvB,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;QACxC,sBAAsB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK;QAC1D,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK;QAChD,wBAAwB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK;QACxD,QAAQ;QACR,qCAAqC;QACrC,GAAG,QAAQ,IAAI;QACf,gCAAgC;QAChC,KAAK,CACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/template-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,QAAQ,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB;IACvC,OAAO,KAAK,WAAW,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,OAAoB;IAC5D,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,UAAU,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEjF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kDAAkD,CAAC,CAAC;IACxH,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,UAAU,CAAC,IAAI,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,2FAA2F,CAC9I,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,WAAW,kCAAkC,CAAC;IAEjE,OAAO,CACL,SAAS,KAAK,OAAO;QACrB,0DAA0D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;QACvF,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,eAAuB,EACvB,QAAuB;IAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE5C,MAAM,QAAQ,GAAG,QAAQ;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,CACL,2CAA2C;QAC3C,kBAAkB;QAClB,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;QACpC,uBAAuB;QACvB,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;QACxC,sBAAsB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK;QAC1D,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK;QAChD,wBAAwB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK;QACxD,QAAQ;QACR,uCAAuC;QACvC,GAAG,QAAQ,IAAI;QACf,kFAAkF;QAClF,KAAK,CACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=artificer-l2-tool-contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artificer-l2-tool-contract.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.ts"],"names":[],"mappings":""}