@principles/core 1.276.0 → 1.277.1
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__/replay-production-parity.test.d.ts +13 -0
- package/dist/runtime-v2/__tests__/replay-production-parity.test.d.ts.map +1 -0
- package/dist/runtime-v2/__tests__/replay-production-parity.test.js +133 -0
- package/dist/runtime-v2/__tests__/replay-production-parity.test.js.map +1 -0
- package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js +36 -0
- package/dist/runtime-v2/activation/__tests__/activation-dispatcher.test.js.map +1 -1
- package/dist/runtime-v2/activation/activation-dispatcher.d.ts.map +1 -1
- package/dist/runtime-v2/activation/activation-dispatcher.js +4 -0
- package/dist/runtime-v2/activation/activation-dispatcher.js.map +1 -1
- package/dist/runtime-v2/activation/activation-types.d.ts +11 -1
- package/dist/runtime-v2/activation/activation-types.d.ts.map +1 -1
- package/dist/runtime-v2/activation/activation-types.js.map +1 -1
- package/dist/runtime-v2/activation/production-gate-deps.d.ts +18 -1
- package/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
- package/dist/runtime-v2/activation/production-gate-deps.js +5 -1
- package/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
- package/dist/runtime-v2/activation/writers/rule-host-writer.d.ts +18 -0
- package/dist/runtime-v2/activation/writers/rule-host-writer.d.ts.map +1 -1
- package/dist/runtime-v2/activation/writers/rule-host-writer.js +36 -1
- package/dist/runtime-v2/activation/writers/rule-host-writer.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 +9 -3
- package/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
- package/dist/runtime-v2/golden-trace.d.ts +9 -0
- package/dist/runtime-v2/golden-trace.d.ts.map +1 -1
- package/dist/runtime-v2/golden-trace.js +7 -1
- package/dist/runtime-v2/golden-trace.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +7 -3
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +4 -2
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts +12 -0
- package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js +256 -0
- package/dist/runtime-v2/internalization/__tests__/rule-reliability-validation.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts +11 -0
- package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js +133 -0
- package/dist/runtime-v2/internalization/__tests__/tool-semantic-registry.test.js.map +1 -0
- package/dist/runtime-v2/internalization/evaluator-output.d.ts +10 -0
- package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +4 -0
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/index.d.ts +5 -1
- package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/index.js +3 -1
- package/dist/runtime-v2/internalization/index.js.map +1 -1
- package/dist/runtime-v2/internalization/refiner-rulehost-gate.d.ts +21 -0
- package/dist/runtime-v2/internalization/refiner-rulehost-gate.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/refiner-rulehost-gate.js +30 -9
- package/dist/runtime-v2/internalization/refiner-rulehost-gate.js.map +1 -1
- package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts +18 -0
- package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +11 -3
- package/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-context-v2.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rule-context-v2.js +6 -26
- package/dist/runtime-v2/internalization/rule-context-v2.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-host-contracts.d.ts +10 -1
- package/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts +21 -0
- package/dist/runtime-v2/internalization/rule-host-input-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/rule-host-input-builder.js +28 -1
- package/dist/runtime-v2/internalization/rule-host-input-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/rule-reliability-validation.d.ts +67 -0
- package/dist/runtime-v2/internalization/rule-reliability-validation.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/rule-reliability-validation.js +178 -0
- package/dist/runtime-v2/internalization/rule-reliability-validation.js.map +1 -0
- package/dist/runtime-v2/internalization/tool-semantic-baseline.d.ts +26 -0
- package/dist/runtime-v2/internalization/tool-semantic-baseline.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/tool-semantic-baseline.js +57 -0
- package/dist/runtime-v2/internalization/tool-semantic-baseline.js.map +1 -0
- package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts +76 -0
- package/dist/runtime-v2/internalization/tool-semantic-registry.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/tool-semantic-registry.js +113 -0
- package/dist/runtime-v2/internalization/tool-semantic-registry.js.map +1 -0
- package/dist/runtime-v2/types/event-types.d.ts +27 -3
- package/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/dist/runtime-v2/types/event-types.js +6 -0
- package/dist/runtime-v2/types/event-types.js.map +1 -1
- package/dist/runtime-v2/types/index.d.ts +2 -2
- package/dist/runtime-v2/types/index.d.ts.map +1 -1
- package/dist/runtime-v2/types/index.js +1 -1
- package/dist/runtime-v2/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { classifyReplayFailure } from './rule-reliability-validation.js';
|
|
1
2
|
const EMPTY_SANDBOX_RESULT = {
|
|
2
3
|
success: false,
|
|
3
4
|
failedCases: [],
|
|
@@ -54,42 +55,54 @@ export function evaluateRefinerRuleHostGate(input, deps) {
|
|
|
54
55
|
reasons.push('requestedMode=live is not supported in PRI-173; applicationMode forced to shadow');
|
|
55
56
|
}
|
|
56
57
|
if (input.goldenTrace.cases.length === 0) {
|
|
58
|
+
const decision = 'rejected_no_cases';
|
|
57
59
|
return {
|
|
58
|
-
decision
|
|
60
|
+
decision,
|
|
59
61
|
applicationMode: 'shadow',
|
|
60
62
|
sandboxResult: EMPTY_SANDBOX_RESULT,
|
|
61
63
|
reasons: ['goldenTrace.cases is empty — no test cases to validate against', ...reasons],
|
|
64
|
+
failure: classifyReplayFailure(decision, EMPTY_SANDBOX_RESULT),
|
|
62
65
|
};
|
|
63
66
|
}
|
|
64
|
-
const sandboxOpts =
|
|
67
|
+
const sandboxOpts = {
|
|
68
|
+
...(input.softTimeoutMs !== undefined ? { softTimeoutMs: input.softTimeoutMs } : {}),
|
|
69
|
+
...(input.toolSemantics !== undefined ? { toolSemantics: input.toolSemantics } : {}),
|
|
70
|
+
...(input.projectDir !== undefined ? { projectDir: input.projectDir } : {}),
|
|
71
|
+
};
|
|
65
72
|
const sandboxOutcome = invokeSandboxSafe(deps, { code: input.code, goldenTrace: input.goldenTrace, opts: sandboxOpts });
|
|
66
73
|
if (sandboxOutcome.threw) {
|
|
74
|
+
const decision = 'rejected_runtime_error';
|
|
67
75
|
return {
|
|
68
|
-
decision
|
|
76
|
+
decision,
|
|
69
77
|
applicationMode: 'shadow',
|
|
70
78
|
sandboxResult: sandboxOutcome.result,
|
|
71
79
|
reasons: ['sandbox adapter failure: evaluateInSandbox threw', ...reasons],
|
|
80
|
+
failure: classifyReplayFailure(decision, sandboxOutcome.result),
|
|
72
81
|
};
|
|
73
82
|
}
|
|
74
83
|
const sandboxResult = sandboxOutcome.result;
|
|
75
84
|
if (sandboxResult.forbiddenPatternViolations.length > 0) {
|
|
85
|
+
const decision = 'rejected_forbidden_pattern';
|
|
76
86
|
return {
|
|
77
|
-
decision
|
|
87
|
+
decision,
|
|
78
88
|
applicationMode: 'shadow',
|
|
79
89
|
sandboxResult,
|
|
80
90
|
reasons: [
|
|
81
91
|
`forbidden patterns detected: ${sandboxResult.forbiddenPatternViolations.join(', ')}`,
|
|
82
92
|
...reasons,
|
|
83
93
|
],
|
|
94
|
+
failure: classifyReplayFailure(decision, sandboxResult),
|
|
84
95
|
};
|
|
85
96
|
}
|
|
86
97
|
if (sandboxResult.failedCases.length === 0) {
|
|
87
98
|
if (!sandboxResult.success) {
|
|
99
|
+
const decision = 'rejected_runtime_error';
|
|
88
100
|
return {
|
|
89
|
-
decision
|
|
101
|
+
decision,
|
|
90
102
|
applicationMode: 'shadow',
|
|
91
103
|
sandboxResult,
|
|
92
104
|
reasons: ['sandbox reported success=false with no failedCases or forbiddenPatternViolations — fail closed', ...reasons],
|
|
105
|
+
failure: classifyReplayFailure(decision, sandboxResult),
|
|
93
106
|
};
|
|
94
107
|
}
|
|
95
108
|
return {
|
|
@@ -101,51 +114,59 @@ export function evaluateRefinerRuleHostGate(input, deps) {
|
|
|
101
114
|
}
|
|
102
115
|
const errorTypes = new Set(sandboxResult.failedCases.map((c) => c.errorType));
|
|
103
116
|
if (errorTypes.has('timeout')) {
|
|
117
|
+
const decision = 'rejected_timeout';
|
|
104
118
|
const timeoutCases = sandboxResult.failedCases.filter((c) => c.errorType === 'timeout');
|
|
105
119
|
return {
|
|
106
|
-
decision
|
|
120
|
+
decision,
|
|
107
121
|
applicationMode: 'shadow',
|
|
108
122
|
sandboxResult,
|
|
109
123
|
reasons: [
|
|
110
124
|
...timeoutCases.map((c) => `case ${c.caseId}: timeout — ${c.message}`),
|
|
111
125
|
...reasons,
|
|
112
126
|
],
|
|
127
|
+
failure: classifyReplayFailure(decision, sandboxResult),
|
|
113
128
|
};
|
|
114
129
|
}
|
|
115
130
|
const runtimeErrorTypes = new Set(['runtime_error', 'syntax_error', 'unknown']);
|
|
116
131
|
const hasRuntimeError = [...errorTypes].some((t) => runtimeErrorTypes.has(t));
|
|
117
132
|
if (hasRuntimeError) {
|
|
133
|
+
const decision = 'rejected_runtime_error';
|
|
118
134
|
const runtimeCases = sandboxResult.failedCases.filter((c) => runtimeErrorTypes.has(c.errorType));
|
|
119
135
|
return {
|
|
120
|
-
decision
|
|
136
|
+
decision,
|
|
121
137
|
applicationMode: 'shadow',
|
|
122
138
|
sandboxResult,
|
|
123
139
|
reasons: [
|
|
124
140
|
...runtimeCases.map((c) => `case ${c.caseId}: ${c.errorType} — ${c.message}`),
|
|
125
141
|
...reasons,
|
|
126
142
|
],
|
|
143
|
+
failure: classifyReplayFailure(decision, sandboxResult),
|
|
127
144
|
};
|
|
128
145
|
}
|
|
129
146
|
if (errorTypes.has('validation_failed')) {
|
|
147
|
+
const decision = 'rejected_validation_failed';
|
|
130
148
|
const validationCases = sandboxResult.failedCases.filter((c) => c.errorType === 'validation_failed');
|
|
131
149
|
return {
|
|
132
|
-
decision
|
|
150
|
+
decision,
|
|
133
151
|
applicationMode: 'shadow',
|
|
134
152
|
sandboxResult,
|
|
135
153
|
reasons: [
|
|
136
154
|
...validationCases.map((c) => `case ${c.caseId}: validation_failed — ${c.message}`),
|
|
137
155
|
...reasons,
|
|
138
156
|
],
|
|
157
|
+
failure: classifyReplayFailure(decision, sandboxResult),
|
|
139
158
|
};
|
|
140
159
|
}
|
|
160
|
+
const fallbackDecision = 'rejected_runtime_error';
|
|
141
161
|
return {
|
|
142
|
-
decision:
|
|
162
|
+
decision: fallbackDecision,
|
|
143
163
|
applicationMode: 'shadow',
|
|
144
164
|
sandboxResult,
|
|
145
165
|
reasons: [
|
|
146
166
|
...sandboxResult.failedCases.map((c) => `case ${c.caseId}: ${c.errorType} — ${c.message}`),
|
|
147
167
|
...reasons,
|
|
148
168
|
],
|
|
169
|
+
failure: classifyReplayFailure(fallbackDecision, sandboxResult),
|
|
149
170
|
};
|
|
150
171
|
}
|
|
151
172
|
//# sourceMappingURL=refiner-rulehost-gate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refiner-rulehost-gate.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-rulehost-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"refiner-rulehost-gate.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-rulehost-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { GoldenTrace, GoldenTraceDecision } from '../golden-trace.js';
|
|
2
2
|
import type { ReplayEvaluateFn } from '../golden-trace-replay-validator.js';
|
|
3
3
|
import type { RuleHostDecision } from './rule-host-contracts.js';
|
|
4
|
+
import type { ToolSemanticRegistry } from './tool-semantic-registry.js';
|
|
4
5
|
export type RefinerSandboxErrorType = 'forbidden_pattern' | 'syntax_error' | 'runtime_error' | 'timeout' | 'validation_failed' | 'unknown';
|
|
5
6
|
export interface RefinerSandboxFailedCase {
|
|
6
7
|
caseId: string;
|
|
@@ -33,6 +34,23 @@ export interface RefinerSandboxResult {
|
|
|
33
34
|
export interface RefinerSandboxOptions {
|
|
34
35
|
/** Elapsed-time classification threshold (NOT hard cancellation). See evaluateInRefinerSandbox JSDoc. */
|
|
35
36
|
softTimeoutMs?: number;
|
|
37
|
+
/**
|
|
38
|
+
* PRI-634-F Phase 2: the ToolSemanticRegistry used by the production gate.
|
|
39
|
+
* When provided, replay synthetic inputs resolve canonicalKind and
|
|
40
|
+
* bash/write extraction hints from the SAME registry, closing the
|
|
41
|
+
* replay/production divergence (baseline: replay built every input with
|
|
42
|
+
* no hints, so bash command extraction never fired and normalizedPath
|
|
43
|
+
* stayed null). Absent → legacy behavior.
|
|
44
|
+
*/
|
|
45
|
+
toolSemantics?: ToolSemanticRegistry;
|
|
46
|
+
/**
|
|
47
|
+
* PRI-634-F Phase 2: workspace root for path normalization. The production
|
|
48
|
+
* gate normalizes against the live workspace dir; replay normalizes against
|
|
49
|
+
* this. Same root + same pure function ⇒ identical normalizedPath for
|
|
50
|
+
* every case shape (absolute-under-root relativizes, escape paths return
|
|
51
|
+
* as-is, relative paths and synthetic <tool:X> paths are root-invariant).
|
|
52
|
+
*/
|
|
53
|
+
projectDir?: string;
|
|
36
54
|
}
|
|
37
55
|
export interface RefinerSandboxDependencies {
|
|
38
56
|
evaluateCode?: ReplayEvaluateFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refiner-sandbox-wrapper.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-sandbox-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAK5E,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"refiner-sandbox-wrapper.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-sandbox-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAmB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAK5E,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,MAAM,MAAM,uBAAuB,GAC/B,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,SAAS,GACT,mBAAmB,GACnB,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,uBAAuB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,cAAc,QAAQ,CAAC;AA0KpC;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,0BAA0B,GAAG,qBAAqB,GACvD,oBAAoB,CAyGtB"}
|
|
@@ -70,8 +70,12 @@ function resolveTimeoutMs(timeoutMs) {
|
|
|
70
70
|
}
|
|
71
71
|
return timeoutMs;
|
|
72
72
|
}
|
|
73
|
-
function evaluateCaseWithTimeout(evaluateFn, traceCase,
|
|
74
|
-
const
|
|
73
|
+
function evaluateCaseWithTimeout(evaluateFn, traceCase, replayContext) {
|
|
74
|
+
const { projectDir, toolSemantics, timeoutMs } = replayContext;
|
|
75
|
+
const hasOptions = projectDir !== undefined || toolSemantics !== undefined;
|
|
76
|
+
const input = createSyntheticRuleHostInput({ toolName: traceCase.toolName, params: traceCase.params }, traceCase.ruleContext !== undefined ? { context: traceCase.ruleContext } : {}, hasOptions
|
|
77
|
+
? { ...(projectDir !== undefined ? { projectDir } : {}), ...(toolSemantics !== undefined ? { toolSemantics } : {}) }
|
|
78
|
+
: {});
|
|
75
79
|
const helpers = {
|
|
76
80
|
isRiskPath: () => input.workspace.isRiskPath,
|
|
77
81
|
getToolName: () => input.action.toolName,
|
|
@@ -207,7 +211,11 @@ export function evaluateInRefinerSandbox(code, goldenTrace, deps) {
|
|
|
207
211
|
}
|
|
208
212
|
const failedCases = [];
|
|
209
213
|
for (const traceCase of goldenTrace.cases) {
|
|
210
|
-
const { result, error, timedOut, threw } = evaluateCaseWithTimeout(evaluateFn, traceCase,
|
|
214
|
+
const { result, error, timedOut, threw } = evaluateCaseWithTimeout(evaluateFn, traceCase, {
|
|
215
|
+
timeoutMs,
|
|
216
|
+
...(deps.projectDir !== undefined ? { projectDir: deps.projectDir } : {}),
|
|
217
|
+
...(deps.toolSemantics !== undefined ? { toolSemantics: deps.toolSemantics } : {}),
|
|
218
|
+
});
|
|
211
219
|
if (timedOut) {
|
|
212
220
|
failedCases.push({
|
|
213
221
|
caseId: traceCase.caseId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refiner-sandbox-wrapper.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-sandbox-wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACtG,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"refiner-sandbox-wrapper.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/refiner-sandbox-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-context-v2.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-context-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"rule-context-v2.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-context-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,aAAa,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAqDD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAUrE;AAID,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiC3E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAiC1E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CA2B1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAqDtE;AAID,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAClC,iBAAiB,CAuCnB;AAkCD,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,aAAa,CAAsB,CAAC"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* Spec: docs/superpowers/specs/2026-06-27-rulecode-context-vision-design.md §4.
|
|
19
19
|
*/
|
|
20
|
+
import { baselineToolAlias as TOOL_ALIAS } from './tool-semantic-baseline.js';
|
|
20
21
|
// ── internal constants ─────────────────────────────────────────────────────
|
|
21
22
|
const CANONICAL_KINDS = new Set([
|
|
22
23
|
'read',
|
|
@@ -50,33 +51,12 @@ function isFiniteNumber(value) {
|
|
|
50
51
|
function isNullOrNonNegativeFinite(value) {
|
|
51
52
|
return value === null || (typeof value === 'number' && Number.isFinite(value) && value >= 0);
|
|
52
53
|
}
|
|
53
|
-
// ── canonicalizeToolKind (
|
|
54
|
+
// ── canonicalizeToolKind (baseline alias table, spec §4.4) ──────────────────
|
|
54
55
|
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
// owns the CLOSED CanonicalKind enum + this pure lookup function.
|
|
60
|
-
const TOOL_ALIAS = {
|
|
61
|
-
read: 'read',
|
|
62
|
-
read_file: 'read',
|
|
63
|
-
read_many_files: 'read',
|
|
64
|
-
grep: 'search',
|
|
65
|
-
grep_search: 'search',
|
|
66
|
-
search_file_content: 'search',
|
|
67
|
-
glob: 'search',
|
|
68
|
-
write: 'write',
|
|
69
|
-
write_file: 'write',
|
|
70
|
-
edit: 'write',
|
|
71
|
-
edit_file: 'write',
|
|
72
|
-
replace: 'write',
|
|
73
|
-
apply_patch: 'write',
|
|
74
|
-
bash: 'execute',
|
|
75
|
-
exec: 'execute',
|
|
76
|
-
execute: 'execute',
|
|
77
|
-
run_shell_command: 'execute',
|
|
78
|
-
sessions_spawn: 'agent',
|
|
79
|
-
};
|
|
56
|
+
// PRI-634-F: the table moved to tool-semantic-baseline.ts (host-neutral
|
|
57
|
+
// generic vocabulary only) so canonicalizeToolKind and the host-layered
|
|
58
|
+
// ToolSemanticRegistry read ONE table. canonicalizeToolKind itself stays
|
|
59
|
+
// baseline-only — host-aware callers use buildToolSemanticRegistry().
|
|
80
60
|
export function canonicalizeToolKind(toolName) {
|
|
81
61
|
if (typeof toolName !== 'string')
|
|
82
62
|
return 'other';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-context-v2.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-context-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA+
|
|
1
|
+
{"version":3,"file":"rule-context-v2.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-context-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,21 @@
|
|
|
11
11
|
* - No filesystem, process, require, dynamic import, eval, or network access
|
|
12
12
|
*/
|
|
13
13
|
import type { CorrectionProposal } from './correction-proposal.js';
|
|
14
|
-
import type { RuleContextV2 } from './rule-context-v2.js';
|
|
14
|
+
import type { RuleContextV2, CanonicalKind } from './rule-context-v2.js';
|
|
15
15
|
export interface RuleHostInput {
|
|
16
16
|
action: {
|
|
17
17
|
toolName: string;
|
|
18
18
|
normalizedPath: string | null;
|
|
19
19
|
paramsSummary: Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* PRI-634-F Phase 2 (Replay/Production Input Parity): canonical tool kind
|
|
22
|
+
* resolved from the ToolSemanticRegistry (same registry instance for both
|
|
23
|
+
* replay and production). Optional on purpose — v1 rules that never read
|
|
24
|
+
* this field see `undefined` and behave exactly as before. Builders
|
|
25
|
+
* receiving a registry/kind populate it; unknown tools resolve to 'other',
|
|
26
|
+
* never throw.
|
|
27
|
+
*/
|
|
28
|
+
canonicalKind?: CanonicalKind;
|
|
20
29
|
};
|
|
21
30
|
workspace: {
|
|
22
31
|
isRiskPath: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-host-contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"rule-host-contracts.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-host-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMzE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC;;;;;;;WAOG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;IACF,SAAS,EAAE;QACT,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;KACvD,CAAC;IACF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAMD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,iBAAiB,GAAG,cAAc,CAAC;AAMtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAMD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,cAAc,CAAC;CACrD"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* 6. Empty/null (null / '' / undefined, /project)
|
|
20
20
|
*/
|
|
21
21
|
import type { RuleHostInput } from './rule-host-contracts.js';
|
|
22
|
+
import type { CanonicalKind } from './rule-context-v2.js';
|
|
22
23
|
/**
|
|
23
24
|
* Normalize a file path to a project-relative POSIX-style path.
|
|
24
25
|
*
|
|
@@ -37,6 +38,15 @@ export interface ExtractFilePathOptions {
|
|
|
37
38
|
isBashTool?: boolean;
|
|
38
39
|
/** The tool name (used for synthetic path generation). */
|
|
39
40
|
toolName?: string;
|
|
41
|
+
/**
|
|
42
|
+
* PRI-634-F: canonical kind from the ToolSemanticRegistry. When provided,
|
|
43
|
+
* unspecified isBashTool/isWriteTool hints are DERIVED from it
|
|
44
|
+
* (execute→isBashTool, write→isWriteTool) so extraction behavior is a pure
|
|
45
|
+
* function of (toolName, params, projectDir, registry) — identical in
|
|
46
|
+
* replay and production. Explicit hints keep precedence for callers that
|
|
47
|
+
* classify with their own host dispatch surface.
|
|
48
|
+
*/
|
|
49
|
+
canonicalKind?: CanonicalKind;
|
|
40
50
|
}
|
|
41
51
|
/**
|
|
42
52
|
* Extract the file path from tool call params, using the same heuristic
|
|
@@ -51,12 +61,23 @@ export interface ExtractFilePathOptions {
|
|
|
51
61
|
*/
|
|
52
62
|
export declare function extractFilePathFromParams(params: Record<string, unknown>, options?: ExtractFilePathOptions): string | null;
|
|
53
63
|
export type BuildRuleHostActionOptions = ExtractFilePathOptions;
|
|
64
|
+
/**
|
|
65
|
+
* PRI-634-F Phase 2: derive extraction hints from a canonical kind.
|
|
66
|
+
* execute → bash-tool extraction; write → write-tool synthetic path; all
|
|
67
|
+
* other kinds → no tool-specific extraction. Pure, total.
|
|
68
|
+
*/
|
|
69
|
+
export declare function deriveToolHintsFromCanonicalKind(canonicalKind: CanonicalKind): {
|
|
70
|
+
isBashTool: boolean;
|
|
71
|
+
isWriteTool: boolean;
|
|
72
|
+
};
|
|
54
73
|
/**
|
|
55
74
|
* Build the `action` field of RuleHostInput — the unified snapshot used by
|
|
56
75
|
* both Golden Trace replay and the production OpenClaw Gate.
|
|
57
76
|
*
|
|
58
77
|
* This function combines file path extraction + path normalization into a
|
|
59
78
|
* single pure call, ensuring both paths produce the same `normalizedPath`.
|
|
79
|
+
* When `options.canonicalKind` is provided it is echoed onto the action
|
|
80
|
+
* snapshot and drives hint derivation (see ExtractFilePathOptions).
|
|
60
81
|
*/
|
|
61
82
|
export declare function buildRuleHostAction(toolName: string, params: Record<string, unknown>, projectDir: string, options?: BuildRuleHostActionOptions): RuleHostInput['action'];
|
|
62
83
|
//# sourceMappingURL=rule-host-input-builder.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;;;;;;;;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;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;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;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,aAAa,GAC3B;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAK/C;AAYD;;;;;;;;GAQG;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,CAYzB"}
|
|
@@ -162,21 +162,48 @@ export function extractFilePathFromParams(params, options = {}) {
|
|
|
162
162
|
}
|
|
163
163
|
return null;
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* PRI-634-F Phase 2: derive extraction hints from a canonical kind.
|
|
167
|
+
* execute → bash-tool extraction; write → write-tool synthetic path; all
|
|
168
|
+
* other kinds → no tool-specific extraction. Pure, total.
|
|
169
|
+
*/
|
|
170
|
+
export function deriveToolHintsFromCanonicalKind(canonicalKind) {
|
|
171
|
+
return {
|
|
172
|
+
isBashTool: canonicalKind === 'execute',
|
|
173
|
+
isWriteTool: canonicalKind === 'write',
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function withDerivedHints(options) {
|
|
177
|
+
if (options.canonicalKind === undefined)
|
|
178
|
+
return options;
|
|
179
|
+
const derived = deriveToolHintsFromCanonicalKind(options.canonicalKind);
|
|
180
|
+
return {
|
|
181
|
+
...options,
|
|
182
|
+
isBashTool: options.isBashTool ?? derived.isBashTool,
|
|
183
|
+
isWriteTool: options.isWriteTool ?? derived.isWriteTool,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
165
186
|
/**
|
|
166
187
|
* Build the `action` field of RuleHostInput — the unified snapshot used by
|
|
167
188
|
* both Golden Trace replay and the production OpenClaw Gate.
|
|
168
189
|
*
|
|
169
190
|
* This function combines file path extraction + path normalization into a
|
|
170
191
|
* single pure call, ensuring both paths produce the same `normalizedPath`.
|
|
192
|
+
* When `options.canonicalKind` is provided it is echoed onto the action
|
|
193
|
+
* snapshot and drives hint derivation (see ExtractFilePathOptions).
|
|
171
194
|
*/
|
|
172
195
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
173
196
|
export function buildRuleHostAction(toolName, params, projectDir, options = {}) {
|
|
174
|
-
const
|
|
197
|
+
const effectiveOptions = withDerivedHints(options);
|
|
198
|
+
const filePath = extractFilePathFromParams(params, { ...effectiveOptions, toolName });
|
|
175
199
|
const normalizedPath = normalizePathPure(filePath, projectDir);
|
|
176
200
|
return {
|
|
177
201
|
toolName,
|
|
178
202
|
normalizedPath,
|
|
179
203
|
paramsSummary: { ...params },
|
|
204
|
+
...(effectiveOptions.canonicalKind !== undefined
|
|
205
|
+
? { canonicalKind: effectiveOptions.canonicalKind }
|
|
206
|
+
: {}),
|
|
180
207
|
};
|
|
181
208
|
}
|
|
182
209
|
//# sourceMappingURL=rule-host-input-builder.js.map
|
|
@@ -1 +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;
|
|
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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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule Reliability Validation & Failure Attribution — PRI-634-F Phase 3
|
|
3
|
+
*
|
|
4
|
+
* PURPOSE: answer "哪里错 / 为什么 / 谁负责" for rule reliability failures
|
|
5
|
+
* (SPEC §8) instead of free-text "replay failed". Two pure capabilities:
|
|
6
|
+
*
|
|
7
|
+
* 1. validateRuleReliability — deterministic pre-gate check (SPEC §7/§9 V1):
|
|
8
|
+
* every declared tool (affectedTools + goldenTraceCases toolName) must be
|
|
9
|
+
* known to the ToolSemanticRegistry, otherwise adapter/tool_alias_unknown.
|
|
10
|
+
*
|
|
11
|
+
* 2. classifyReplayFailure — map a RefinerRuleHostGate outcome to ONE
|
|
12
|
+
* FailureLayer with a stable reasonCode, bounded evidence and a next
|
|
13
|
+
* action. Routing only — no repair (SPEC §10).
|
|
14
|
+
*
|
|
15
|
+
* Layer semantics (SPEC §8):
|
|
16
|
+
* rule — the generated RuleCode itself is defective
|
|
17
|
+
* test — the golden trace material is deficient
|
|
18
|
+
* adapter — the tool mapping/host adapter surface is wrong
|
|
19
|
+
* runtime — the evaluation infrastructure/environment failed
|
|
20
|
+
* unknown — cannot be determined
|
|
21
|
+
*
|
|
22
|
+
* Pure logic — zero I/O. No new subsystem, no repair loop.
|
|
23
|
+
*/
|
|
24
|
+
import type { RefinerRuleHostGateDecision } from './refiner-rulehost-gate.js';
|
|
25
|
+
import type { RefinerSandboxResult } from './refiner-sandbox-wrapper.js';
|
|
26
|
+
import type { ToolSemanticRegistry } from './tool-semantic-registry.js';
|
|
27
|
+
export type FailureLayer = 'rule' | 'test' | 'adapter' | 'runtime' | 'unknown';
|
|
28
|
+
export interface RuleReliabilityFailure {
|
|
29
|
+
readonly layer: FailureLayer;
|
|
30
|
+
readonly reasonCode: string;
|
|
31
|
+
/** Bounded human-readable evidence (rc-8: never assume stringify of arbitrary values). */
|
|
32
|
+
readonly evidence: string;
|
|
33
|
+
readonly nextAction: string;
|
|
34
|
+
}
|
|
35
|
+
export interface RuleReliabilityValidationInput {
|
|
36
|
+
/** ArtificerRuleOutput.affectedTools (declared scope of the rule). */
|
|
37
|
+
readonly affectedTools: readonly string[];
|
|
38
|
+
/** Tool names used by the rule's goldenTraceCases. */
|
|
39
|
+
readonly goldenTraceCaseToolNames: readonly string[];
|
|
40
|
+
/** The registry the production gate resolves tool semantics with. */
|
|
41
|
+
readonly toolSemantics: ToolSemanticRegistry;
|
|
42
|
+
}
|
|
43
|
+
export interface RuleReliabilityValidationResult {
|
|
44
|
+
readonly valid: boolean;
|
|
45
|
+
readonly failure?: RuleReliabilityFailure;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* V1 validation (SPEC §9, revised in R2 per review): every tool name the rule
|
|
49
|
+
* declares or tests against must be HOST-DISPATCHABLE — resolvable is not
|
|
50
|
+
* enough. Three verdicts:
|
|
51
|
+
*
|
|
52
|
+
* tool_alias_unknown — resolves nowhere (not even baseline);
|
|
53
|
+
* tool_not_host_dispatchable — semantically classifiable (baseline generic
|
|
54
|
+
* vocabulary like `execute_command`, or a
|
|
55
|
+
* read/search family the host gate never
|
|
56
|
+
* routes) but NOT declared by the host layer.
|
|
57
|
+
* A rule matching this name passes replay
|
|
58
|
+
* against fictional inputs and never fires
|
|
59
|
+
* in production — reject (SC1).
|
|
60
|
+
* tool_registry_host_layer_missing — the registry carries no host
|
|
61
|
+
* declaration at all; existence cannot be
|
|
62
|
+
* verified. Configuration defect, fail loud
|
|
63
|
+
* rather than silently skipping the check.
|
|
64
|
+
*/
|
|
65
|
+
export declare function validateRuleReliability(input: RuleReliabilityValidationInput): RuleReliabilityValidationResult;
|
|
66
|
+
export declare function classifyReplayFailure(decision: Exclude<RefinerRuleHostGateDecision, 'accepted_shadow'>, sandboxResult: RefinerSandboxResult): RuleReliabilityFailure;
|
|
67
|
+
//# sourceMappingURL=rule-reliability-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-reliability-validation.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/rule-reliability-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAG,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAYD,MAAM,WAAW,8BAA8B;IAC7C,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sDAAsD;IACtD,QAAQ,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;CAC9C;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,8BAA8B,GACpC,+BAA+B,CA+DjC;AASD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,EACjE,aAAa,EAAE,oBAAoB,GAClC,sBAAsB,CAmExB"}
|