@principles/core 1.161.0 → 1.163.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.
- package/dist/runtime-v2/__tests__/adversarial-loop.test.js +24 -78
- package/dist/runtime-v2/__tests__/adversarial-loop.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/architecture-regression.test.js +9 -5
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +32 -80
- package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js +2 -2
- package/dist/runtime-v2/__tests__/full-chain-real-llm.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/principle-compiler-core.test.js +7 -7
- package/dist/runtime-v2/__tests__/principle-compiler-core.test.js.map +1 -1
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js +24 -1
- package/dist/runtime-v2/activation/__tests__/production-gate-deps.test.js.map +1 -1
- package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
- package/dist/runtime-v2/activation/production-gate-deps.js +18 -1
- package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js +277 -475
- package/dist/runtime-v2/adapter/__tests__/artificer-l2-adapter.test.js.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts +14 -34
- package/dist/runtime-v2/adapter/artificer-l2-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js +182 -222
- package/dist/runtime-v2/adapter/artificer-l2-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +2 -2
- package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
- package/dist/runtime-v2/adversarial-loop.d.ts.map +1 -1
- package/dist/runtime-v2/adversarial-loop.js +5 -27
- package/dist/runtime-v2/adversarial-loop.js.map +1 -1
- package/dist/runtime-v2/golden-trace-replay-validator.d.ts +8 -0
- package/dist/runtime-v2/golden-trace-replay-validator.d.ts.map +1 -1
- package/dist/runtime-v2/golden-trace-replay-validator.js +3 -3
- package/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
- package/dist/runtime-v2/golden-trace.d.ts +16 -1
- package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
- package/dist/runtime-v2/golden-trace.js +13 -4
- package/dist/runtime-v2/golden-trace.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +8 -5
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +11 -4
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +3 -2
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts +2 -0
- package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/{artificer-output-v2.test.js → artificer-rule-output.test.js} +126 -127
- package/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts +2 -0
- package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js +270 -0
- package/dist/runtime-v2/internalization/__tests__/rule-code-dialect.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts +2 -0
- package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js +180 -0
- package/dist/runtime-v2/internalization/__tests__/rule-host-input-builder.test.js.map +1 -0
- package/dist/runtime-v2/internalization/artificer-output.d.ts +33 -51
- package/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-output.js +48 -87
- package/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js +5 -17
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.d.ts +8 -8
- package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.js +5 -5
- package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +2 -2
- package/dist/runtime-v2/internalization/index.d.ts +9 -4
- package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/index.js +8 -3
- package/dist/runtime-v2/internalization/index.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-code-validator.d.ts +16 -0
- package/dist/runtime-v2/internalization/rule-code-validator.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rule-code-validator.js +50 -1
- package/dist/runtime-v2/internalization/rule-code-validator.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts +62 -0
- package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/rule-host-input-builder.js +182 -0
- package/dist/runtime-v2/internalization/rule-host-input-builder.js.map +1 -0
- package/dist/runtime-v2/internalization/rule-host-validator.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rule-host-validator.js +22 -1
- package/dist/runtime-v2/internalization/rule-host-validator.js.map +1 -1
- package/dist/runtime-v2/internalization/template-generator.d.ts +7 -2
- package/dist/runtime-v2/internalization/template-generator.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/template-generator.js +10 -5
- package/dist/runtime-v2/internalization/template-generator.js.map +1 -1
- package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts +2 -0
- package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.d.ts.map +1 -0
- package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +322 -0
- package/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +1 -0
- package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts +2 -0
- package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.d.ts.map +1 -0
- package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js +149 -0
- package/dist/runtime-v2/tools/__tests__/artificer-output-typebox.test.js.map +1 -0
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts +72 -0
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -0
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.js +275 -0
- package/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -0
- package/dist/runtime-v2/tools/artificer-output-typebox.d.ts +78 -0
- package/dist/runtime-v2/tools/artificer-output-typebox.d.ts.map +1 -0
- package/dist/runtime-v2/tools/artificer-output-typebox.js +70 -0
- package/dist/runtime-v2/tools/artificer-output-typebox.js.map +1 -0
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +5 -3
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts +0 -2
- package/dist/runtime-v2/internalization/__tests__/artificer-output-v2.test.d.ts.map +0 -1
- 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":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,YAAY,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;
|
|
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,
|
|
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":"AAAA;;;;;;GAMG;AAaH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAIxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;
|
|
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;
|
|
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: /\
|
|
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":"AAAA;;;;;;;;;GASG;AAQH,MAAM,kBAAkB,GAAyC;IAC/D,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;IAC/C,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3C,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;IACzC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE;IACjD,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE;IACpD,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IAClD,6GAA6G;IAC7G,EAAE,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtD,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5C,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;IACxC,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE;IACpD,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC1C,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE;IAClD,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE;IACpD,EAAE,OAAO,EAAE,
|
|
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":"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"}
|
|
@@ -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;
|
|
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' || !
|
|
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":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAOtE,MAAM,eAAe,
|
|
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 `
|
|
6
|
-
* `
|
|
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
|
|
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 `
|
|
6
|
-
* `
|
|
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
|
-
`
|
|
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
|
-
`
|
|
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
|
|
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 @@
|
|
|
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":""}
|