@principles/core 1.174.0 → 1.176.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__/architecture-regression.test.js +39 -0
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts +13 -0
- package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.d.ts.map +1 -0
- package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js +111 -0
- package/dist/runtime-v2/detection/__tests__/detection-funnel-policy.test.js.map +1 -0
- package/dist/runtime-v2/detection/detection-funnel-policy.d.ts +103 -0
- package/dist/runtime-v2/detection/detection-funnel-policy.d.ts.map +1 -0
- package/dist/runtime-v2/detection/detection-funnel-policy.js +135 -0
- package/dist/runtime-v2/detection/detection-funnel-policy.js.map +1 -0
- package/dist/runtime-v2/detection/index.d.ts +10 -0
- package/dist/runtime-v2/detection/index.d.ts.map +1 -0
- package/dist/runtime-v2/detection/index.js +9 -0
- package/dist/runtime-v2/detection/index.js.map +1 -0
- package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts +12 -0
- package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.d.ts.map +1 -0
- package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js +137 -0
- package/dist/runtime-v2/evidence-triage/__tests__/observation-resolver.test.js.map +1 -0
- package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js +104 -1
- package/dist/runtime-v2/evidence-triage/__tests__/triage-policy.test.js.map +1 -1
- package/dist/runtime-v2/evidence-triage/index.d.ts +3 -0
- package/dist/runtime-v2/evidence-triage/index.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-triage/index.js +3 -0
- package/dist/runtime-v2/evidence-triage/index.js.map +1 -1
- package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts +107 -0
- package/dist/runtime-v2/evidence-triage/observation-resolver.d.ts.map +1 -0
- package/dist/runtime-v2/evidence-triage/observation-resolver.js +175 -0
- package/dist/runtime-v2/evidence-triage/observation-resolver.js.map +1 -0
- package/dist/runtime-v2/evidence-triage/triage-policy.d.ts +4 -0
- package/dist/runtime-v2/evidence-triage/triage-policy.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-triage/triage-policy.js +66 -9
- package/dist/runtime-v2/evidence-triage/triage-policy.js.map +1 -1
- package/dist/runtime-v2/evidence-triage/types.d.ts +14 -0
- package/dist/runtime-v2/evidence-triage/types.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-triage/types.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +8 -4
- 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/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts +15 -0
- package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.d.ts.map +1 -0
- package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js +179 -0
- package/dist/runtime-v2/pain-gate/__tests__/pain-diagnostic-gate-policy.test.js.map +1 -0
- package/dist/runtime-v2/pain-gate/index.d.ts +10 -0
- package/dist/runtime-v2/pain-gate/index.d.ts.map +1 -0
- package/dist/runtime-v2/pain-gate/index.js +9 -0
- package/dist/runtime-v2/pain-gate/index.js.map +1 -0
- package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts +110 -0
- package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.d.ts.map +1 -0
- package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js +146 -0
- package/dist/runtime-v2/pain-gate/pain-diagnostic-gate-policy.js.map +1 -0
- package/dist/runtime-v2/types/event-types.d.ts +0 -27
- package/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/dist/runtime-v2/types/event-types.js +2 -17
- 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 +3 -1
- package/dist/runtime-v2/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* - ERR-024/025/048: Tests exercise the production evaluateTriage path.
|
|
11
11
|
*/
|
|
12
12
|
import { describe, it, expect } from 'vitest';
|
|
13
|
-
import { evaluateTriage } from '../triage-policy.js';
|
|
13
|
+
import { evaluateTriage, RISKY_HIGH_SCORE_THRESHOLD, REPEATED_FAILURE_THRESHOLD } from '../triage-policy.js';
|
|
14
14
|
import { isSourceKind } from '../types.js';
|
|
15
15
|
import { getSourceDescriptor, SOURCE_DESCRIPTORS } from '../source-descriptors.js';
|
|
16
16
|
// ── Helper ──────────────────────────────────────────────────────────────────
|
|
@@ -158,6 +158,109 @@ describe('rulehost_block', () => {
|
|
|
158
158
|
expect(result.decision).toBe('evidence_only');
|
|
159
159
|
});
|
|
160
160
|
});
|
|
161
|
+
// ── PRI-446: migrated upgrade rules (risky high-score, repeated failure) ────
|
|
162
|
+
describe('PRI-446 upgrade thresholds', () => {
|
|
163
|
+
it('RISKY_HIGH_SCORE_THRESHOLD is 70 (matches prior plugin magic number)', () => {
|
|
164
|
+
expect(RISKY_HIGH_SCORE_THRESHOLD).toBe(70);
|
|
165
|
+
});
|
|
166
|
+
it('REPEATED_FAILURE_THRESHOLD is 4 (matches prior plugin magic number)', () => {
|
|
167
|
+
expect(REPEATED_FAILURE_THRESHOLD).toBe(4);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('PRI-446 risky high-score upgrade', () => {
|
|
171
|
+
it('upgrades tool_failure to admit when isRisky && score >= 70', () => {
|
|
172
|
+
const result = evaluateTriage(makeInput({
|
|
173
|
+
sourceKind: 'tool_failure',
|
|
174
|
+
score: 70,
|
|
175
|
+
isRisky: true,
|
|
176
|
+
}));
|
|
177
|
+
expect(result.decision).toBe('admit');
|
|
178
|
+
// Verbatim string from the prior plugin triage-adapter
|
|
179
|
+
expect(result.reason).toBe('Risky high-score operation overrides evidence-only decision. Immediate diagnosis required.');
|
|
180
|
+
expect(result.nextAction).toBe('create_diagnostic_task');
|
|
181
|
+
});
|
|
182
|
+
it('stays evidence_only when score is below 70 even if risky', () => {
|
|
183
|
+
const result = evaluateTriage(makeInput({
|
|
184
|
+
sourceKind: 'tool_failure',
|
|
185
|
+
score: 69,
|
|
186
|
+
isRisky: true,
|
|
187
|
+
}));
|
|
188
|
+
expect(result.decision).toBe('evidence_only');
|
|
189
|
+
});
|
|
190
|
+
it('stays evidence_only when not risky even with high score', () => {
|
|
191
|
+
const result = evaluateTriage(makeInput({
|
|
192
|
+
sourceKind: 'tool_failure',
|
|
193
|
+
score: 95,
|
|
194
|
+
isRisky: false,
|
|
195
|
+
}));
|
|
196
|
+
expect(result.decision).toBe('evidence_only');
|
|
197
|
+
});
|
|
198
|
+
it('upgrades any evidence_only kind, not just tool_failure', () => {
|
|
199
|
+
const result = evaluateTriage(makeInput({
|
|
200
|
+
sourceKind: 'semantic',
|
|
201
|
+
score: 75,
|
|
202
|
+
isRisky: true,
|
|
203
|
+
}));
|
|
204
|
+
expect(result.decision).toBe('admit');
|
|
205
|
+
});
|
|
206
|
+
it('never upgrades a non-evidence_only kind (health_only stays health_only)', () => {
|
|
207
|
+
const result = evaluateTriage(makeInput({
|
|
208
|
+
sourceKind: 'provider_failure',
|
|
209
|
+
score: 90,
|
|
210
|
+
isRisky: true,
|
|
211
|
+
}));
|
|
212
|
+
expect(result.decision).toBe('health_only');
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
describe('PRI-446 repeated-failure upgrade', () => {
|
|
216
|
+
it('upgrades tool_failure to admit when consecutiveErrors >= 4', () => {
|
|
217
|
+
const result = evaluateTriage(makeInput({
|
|
218
|
+
sourceKind: 'tool_failure',
|
|
219
|
+
score: 50,
|
|
220
|
+
consecutiveErrors: 4,
|
|
221
|
+
}));
|
|
222
|
+
expect(result.decision).toBe('admit');
|
|
223
|
+
// Verbatim string from the prior plugin triage-adapter
|
|
224
|
+
expect(result.reason).toBe('Repeated failures override evidence-only decision. Pattern suggests systemic issue requiring diagnosis.');
|
|
225
|
+
expect(result.nextAction).toBe('create_diagnostic_task');
|
|
226
|
+
});
|
|
227
|
+
it('stays evidence_only when consecutiveErrors is below 4', () => {
|
|
228
|
+
const result = evaluateTriage(makeInput({
|
|
229
|
+
sourceKind: 'tool_failure',
|
|
230
|
+
score: 50,
|
|
231
|
+
consecutiveErrors: 3,
|
|
232
|
+
}));
|
|
233
|
+
expect(result.decision).toBe('evidence_only');
|
|
234
|
+
});
|
|
235
|
+
it('stays evidence_only when consecutiveErrors is undefined', () => {
|
|
236
|
+
const result = evaluateTriage(makeInput({
|
|
237
|
+
sourceKind: 'tool_failure',
|
|
238
|
+
score: 50,
|
|
239
|
+
}));
|
|
240
|
+
expect(result.decision).toBe('evidence_only');
|
|
241
|
+
});
|
|
242
|
+
it('upgrades even at low score when consecutiveErrors >= 4', () => {
|
|
243
|
+
const result = evaluateTriage(makeInput({
|
|
244
|
+
sourceKind: 'tool_failure',
|
|
245
|
+
score: 5,
|
|
246
|
+
consecutiveErrors: 10,
|
|
247
|
+
}));
|
|
248
|
+
expect(result.decision).toBe('admit');
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
describe('PRI-446 upgrade rule precedence', () => {
|
|
252
|
+
it('risky high-score takes precedence (checked first) when both conditions hold', () => {
|
|
253
|
+
// Both risky-high-score and repeated-failure are true; risky reason wins.
|
|
254
|
+
const result = evaluateTriage(makeInput({
|
|
255
|
+
sourceKind: 'tool_failure',
|
|
256
|
+
score: 80,
|
|
257
|
+
isRisky: true,
|
|
258
|
+
consecutiveErrors: 10,
|
|
259
|
+
}));
|
|
260
|
+
expect(result.decision).toBe('admit');
|
|
261
|
+
expect(result.reason).toBe('Risky high-score operation overrides evidence-only decision. Immediate diagnosis required.');
|
|
262
|
+
});
|
|
263
|
+
});
|
|
161
264
|
// ── Empathy Inferred ─────────────────────────────────────────────────────────
|
|
162
265
|
describe('empathy_inferred', () => {
|
|
163
266
|
it('defaults to owner_confirm — never directly creates diagnosis', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage-policy.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/evidence-triage/__tests__/triage-policy.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"triage-policy.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/evidence-triage/__tests__/triage-policy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ export { isSourceKind } from './types.js';
|
|
|
9
9
|
export type { SourceDescriptor } from './source-descriptors.js';
|
|
10
10
|
export { SOURCE_DESCRIPTORS, getSourceDescriptor } from './source-descriptors.js';
|
|
11
11
|
export { evaluateTriage } from './triage-policy.js';
|
|
12
|
+
export { RISKY_HIGH_SCORE_THRESHOLD, REPEATED_FAILURE_THRESHOLD } from './triage-policy.js';
|
|
13
|
+
export type { RawObservation } from './observation-resolver.js';
|
|
14
|
+
export { resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation, } from './observation-resolver.js';
|
|
12
15
|
export type { TriggerOutcome, TriggerDecision, TriggerControllerInput, } from './trigger-controller.js';
|
|
13
16
|
export { evaluateTriggerController, shouldCreateTask, isAdmittedOutcome, isSkippedOutcome, } from './trigger-controller.js';
|
|
14
17
|
export type { AdmissionDecisionEvent, DiagnosisTaskCreatedEvent, EvidenceOnlyRecordedEvent, SkippedRefusedEvent, AdmissionEvent, } from './admission-events.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAG5F,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
|
|
@@ -8,6 +8,9 @@ export { isSourceKind } from './types.js';
|
|
|
8
8
|
export { SOURCE_DESCRIPTORS, getSourceDescriptor } from './source-descriptors.js';
|
|
9
9
|
// Triage policy
|
|
10
10
|
export { evaluateTriage } from './triage-policy.js';
|
|
11
|
+
// PRI-446: upgrade thresholds (single source of truth, migrated from plugin)
|
|
12
|
+
export { RISKY_HIGH_SCORE_THRESHOLD, REPEATED_FAILURE_THRESHOLD } from './triage-policy.js';
|
|
13
|
+
export { resolveSourceKind, buildToolFailureObservation, buildLlmDetectionObservation, } from './observation-resolver.js';
|
|
11
14
|
export { evaluateTriggerController, shouldCreateTask, isAdmittedOutcome, isSkippedOutcome, } from './trigger-controller.js';
|
|
12
15
|
export { createAdmissionDecisionEvent, createDiagnosisTaskCreatedEvent, createEvidenceOnlyRecordedEvent, createSkippedRefusedEvent, serializeAdmissionEvent, validateEventPrivacy, } from './admission-events.js';
|
|
13
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAElF,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAElF,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,6EAA6E;AAC7E,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAI5F,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation Resolver — PRI-446 (migrated from the plugin adapter)
|
|
3
|
+
*
|
|
4
|
+
* Unified source-kind resolution from RawObservation.
|
|
5
|
+
*
|
|
6
|
+
* Pure data mapping — no I/O, no plugin imports, no side effects. This module
|
|
7
|
+
* replaces the scattered resolveSourceKindFrom* helpers that previously lived in
|
|
8
|
+
* the plugin-side raw-observation-adapter.ts. The plugin file now re-exports
|
|
9
|
+
* these symbols so existing callers and source-string characterization tests
|
|
10
|
+
* keep working unchanged.
|
|
11
|
+
*
|
|
12
|
+
* Field precedence (highest to lowest):
|
|
13
|
+
* 1. isManualEntry → owner_reported
|
|
14
|
+
* 2. isGateBlock → rulehost_block
|
|
15
|
+
* 3. isSubagentError → subagent_error
|
|
16
|
+
* 4. isRateLimit → rate_limit / provider_failure
|
|
17
|
+
* 5. toolName === 'pain' / 'skill:pain' → agent_on_owner_request / owner_reported
|
|
18
|
+
* 6. isGfiTriggered → gfi_threshold
|
|
19
|
+
* 7. failureSource → tool_failure / dispatch_error
|
|
20
|
+
* 8. detectionSource → llm_paralysis / semantic / empathy_inferred / unknown
|
|
21
|
+
* 9. Fallback → unknown
|
|
22
|
+
*
|
|
23
|
+
* ERR checklist:
|
|
24
|
+
* - ERR-001: Source kind resolved from runtime values, no `as` casts.
|
|
25
|
+
* - ERR-002: Every path returns a valid SourceKind (fallback to 'unknown').
|
|
26
|
+
* - EP-01: Runtime values validated before use.
|
|
27
|
+
*/
|
|
28
|
+
import type { SourceKind } from './types.js';
|
|
29
|
+
/**
|
|
30
|
+
* Raw observation from a source adapter.
|
|
31
|
+
*
|
|
32
|
+
* This is the input to resolveSourceKind. It contains all possible
|
|
33
|
+
* context fields that different sources may provide. The resolver
|
|
34
|
+
* reads only the fields it needs based on the observation source.
|
|
35
|
+
*/
|
|
36
|
+
export interface RawObservation {
|
|
37
|
+
/** When the observation was made (ISO timestamp) */
|
|
38
|
+
readonly observedAt: string;
|
|
39
|
+
/** Workspace identifier */
|
|
40
|
+
readonly workspaceId?: string;
|
|
41
|
+
/** Session identifier */
|
|
42
|
+
readonly sessionId?: string;
|
|
43
|
+
/** Trace identifier for correlation */
|
|
44
|
+
readonly traceId?: string;
|
|
45
|
+
/** Tool name (for after_tool_call hook) */
|
|
46
|
+
readonly toolName?: string;
|
|
47
|
+
/** Failure source classification */
|
|
48
|
+
readonly failureSource?: 'tool_failure' | 'dispatch_error';
|
|
49
|
+
/** Whether the tool call exited with non-zero code */
|
|
50
|
+
readonly nonZeroExit?: boolean;
|
|
51
|
+
/** Whether the tool call timed out */
|
|
52
|
+
readonly timedOut?: boolean;
|
|
53
|
+
/** Whether the tool does not exist */
|
|
54
|
+
readonly toolNotFound?: boolean;
|
|
55
|
+
/** Detection source identifier */
|
|
56
|
+
readonly detectionSource?: string;
|
|
57
|
+
/** Whether GFI threshold was crossed */
|
|
58
|
+
readonly isGfiTriggered?: boolean;
|
|
59
|
+
/** Whether the failure was a rate limit (429) */
|
|
60
|
+
readonly isRateLimit?: boolean;
|
|
61
|
+
/** Whether this observation came from a gate block */
|
|
62
|
+
readonly isGateBlock?: boolean;
|
|
63
|
+
/** Whether this was a manual CLI entry */
|
|
64
|
+
readonly isManualEntry?: boolean;
|
|
65
|
+
/** Provenance: how trustworthy and context-bound is the observation */
|
|
66
|
+
readonly provenance?: 'openclaw_context_bound' | 'owner_reported_no_host_trace' | 'automatic_hook';
|
|
67
|
+
/** Whether this observation came from a subagent error */
|
|
68
|
+
readonly isSubagentError?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Raw payload from the source.
|
|
71
|
+
*
|
|
72
|
+
* This is always `unknown` (ERR-005). Source adapters validate only
|
|
73
|
+
* enough to identify the source and capture bounded context.
|
|
74
|
+
*/
|
|
75
|
+
readonly payload?: unknown;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Resolve SourceKind from a unified RawObservation.
|
|
79
|
+
*
|
|
80
|
+
* This function replaces the scattered resolveSourceKindFrom* functions
|
|
81
|
+
* and provides a single entry point for source-kind classification.
|
|
82
|
+
*
|
|
83
|
+
* Field precedence is explicitly defined in the function body to ensure
|
|
84
|
+
* deterministic behavior and make the logic easy to understand and test.
|
|
85
|
+
*/
|
|
86
|
+
export declare function resolveSourceKind(observation: RawObservation): SourceKind;
|
|
87
|
+
/**
|
|
88
|
+
* Build a RawObservation for a tool failure context.
|
|
89
|
+
*
|
|
90
|
+
* This replaces classifyToolFailureSource and the inline classification
|
|
91
|
+
* in after-tool-call-helpers. All tool error → dispatch/tool_failure
|
|
92
|
+
* classification is centralized here.
|
|
93
|
+
*/
|
|
94
|
+
export declare function buildToolFailureObservation(options: {
|
|
95
|
+
toolName: string | undefined;
|
|
96
|
+
error: unknown;
|
|
97
|
+
exitCode?: number;
|
|
98
|
+
provenance?: RawObservation['provenance'];
|
|
99
|
+
}): RawObservation;
|
|
100
|
+
/**
|
|
101
|
+
* Build a RawObservation for an LLM detection context.
|
|
102
|
+
*/
|
|
103
|
+
export declare function buildLlmDetectionObservation(options: {
|
|
104
|
+
detectionSource: string;
|
|
105
|
+
isGfiTriggered: boolean;
|
|
106
|
+
}): RawObservation;
|
|
107
|
+
//# sourceMappingURL=observation-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/observation-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yBAAyB;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;IAC3D,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAGhC,kCAAkC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,wCAAwC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAGlC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAG/B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAG/B,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,wBAAwB,GAAG,8BAA8B,GAAG,gBAAgB,CAAC;IAGnG,0DAA0D;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAGnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,cAAc,GAAG,UAAU,CAkGzE;AAwBD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CAC3C,GAAG,cAAc,CA0BjB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,cAAc,CAMjB"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation Resolver — PRI-446 (migrated from the plugin adapter)
|
|
3
|
+
*
|
|
4
|
+
* Unified source-kind resolution from RawObservation.
|
|
5
|
+
*
|
|
6
|
+
* Pure data mapping — no I/O, no plugin imports, no side effects. This module
|
|
7
|
+
* replaces the scattered resolveSourceKindFrom* helpers that previously lived in
|
|
8
|
+
* the plugin-side raw-observation-adapter.ts. The plugin file now re-exports
|
|
9
|
+
* these symbols so existing callers and source-string characterization tests
|
|
10
|
+
* keep working unchanged.
|
|
11
|
+
*
|
|
12
|
+
* Field precedence (highest to lowest):
|
|
13
|
+
* 1. isManualEntry → owner_reported
|
|
14
|
+
* 2. isGateBlock → rulehost_block
|
|
15
|
+
* 3. isSubagentError → subagent_error
|
|
16
|
+
* 4. isRateLimit → rate_limit / provider_failure
|
|
17
|
+
* 5. toolName === 'pain' / 'skill:pain' → agent_on_owner_request / owner_reported
|
|
18
|
+
* 6. isGfiTriggered → gfi_threshold
|
|
19
|
+
* 7. failureSource → tool_failure / dispatch_error
|
|
20
|
+
* 8. detectionSource → llm_paralysis / semantic / empathy_inferred / unknown
|
|
21
|
+
* 9. Fallback → unknown
|
|
22
|
+
*
|
|
23
|
+
* ERR checklist:
|
|
24
|
+
* - ERR-001: Source kind resolved from runtime values, no `as` casts.
|
|
25
|
+
* - ERR-002: Every path returns a valid SourceKind (fallback to 'unknown').
|
|
26
|
+
* - EP-01: Runtime values validated before use.
|
|
27
|
+
*/
|
|
28
|
+
// ── Source Kind Resolution ──────────────────────────────────────────────────
|
|
29
|
+
/**
|
|
30
|
+
* Resolve SourceKind from a unified RawObservation.
|
|
31
|
+
*
|
|
32
|
+
* This function replaces the scattered resolveSourceKindFrom* functions
|
|
33
|
+
* and provides a single entry point for source-kind classification.
|
|
34
|
+
*
|
|
35
|
+
* Field precedence is explicitly defined in the function body to ensure
|
|
36
|
+
* deterministic behavior and make the logic easy to understand and test.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveSourceKind(observation) {
|
|
39
|
+
const { isManualEntry, isGateBlock, isSubagentError, isRateLimit, toolName, failureSource, isGfiTriggered, detectionSource, nonZeroExit, timedOut, toolNotFound, } = observation;
|
|
40
|
+
// Priority 1: Manual entry (CLI, owner-reported)
|
|
41
|
+
if (isManualEntry) {
|
|
42
|
+
return 'owner_reported';
|
|
43
|
+
}
|
|
44
|
+
// Priority 2: Gate block
|
|
45
|
+
if (isGateBlock) {
|
|
46
|
+
return 'rulehost_block';
|
|
47
|
+
}
|
|
48
|
+
// Priority 3: Subagent error
|
|
49
|
+
if (isSubagentError) {
|
|
50
|
+
return 'subagent_error';
|
|
51
|
+
}
|
|
52
|
+
// Priority 4: Provider rate limit (explicit true/false)
|
|
53
|
+
if (isRateLimit === true) {
|
|
54
|
+
return 'rate_limit';
|
|
55
|
+
}
|
|
56
|
+
if (isRateLimit === false) {
|
|
57
|
+
return 'provider_failure';
|
|
58
|
+
}
|
|
59
|
+
// Priority 5: Manual pain tool
|
|
60
|
+
if (toolName === 'pain' || toolName === 'skill:pain') {
|
|
61
|
+
// Match resolveSourceKindFromToolFailure behavior:
|
|
62
|
+
// openclaw_context_bound → agent_on_owner_request
|
|
63
|
+
// other provenance or undefined → owner_reported
|
|
64
|
+
if (observation.provenance === 'openclaw_context_bound') {
|
|
65
|
+
return 'agent_on_owner_request';
|
|
66
|
+
}
|
|
67
|
+
return 'owner_reported';
|
|
68
|
+
}
|
|
69
|
+
// Priority 6: GFI threshold (must check before failure source for LLM detection path)
|
|
70
|
+
if (isGfiTriggered) {
|
|
71
|
+
return 'gfi_threshold';
|
|
72
|
+
}
|
|
73
|
+
// Priority 7: Tool failure / dispatch error
|
|
74
|
+
if (failureSource) {
|
|
75
|
+
// Match resolveSourceKindFromToolFailure behavior:
|
|
76
|
+
// dispatch_error → dispatch_error, anything else → tool_failure
|
|
77
|
+
if (failureSource === 'dispatch_error') {
|
|
78
|
+
return 'dispatch_error';
|
|
79
|
+
}
|
|
80
|
+
return 'tool_failure';
|
|
81
|
+
}
|
|
82
|
+
// Infer failureSource from tool failure indicators if not explicitly set
|
|
83
|
+
if (toolNotFound) {
|
|
84
|
+
return 'dispatch_error';
|
|
85
|
+
}
|
|
86
|
+
// Match classifyToolFailureSource behavior: unknown tool name → dispatch_error
|
|
87
|
+
// BUT only if this looks like a tool failure context (has other tool fields)
|
|
88
|
+
// Otherwise, this is likely a non-tool observation (e.g., LLM detection)
|
|
89
|
+
const hasToolContext = toolName !== undefined || nonZeroExit || timedOut || toolNotFound;
|
|
90
|
+
if (hasToolContext && (!toolName || toolName.trim() === '')) {
|
|
91
|
+
return 'dispatch_error';
|
|
92
|
+
}
|
|
93
|
+
// Exit code-based detection: non-zero exit or timeout → tool_failure
|
|
94
|
+
if (nonZeroExit || timedOut) {
|
|
95
|
+
return 'tool_failure';
|
|
96
|
+
}
|
|
97
|
+
// Priority 8: LLM detection source
|
|
98
|
+
if (detectionSource) {
|
|
99
|
+
// Match resolveSourceKindFromLlmDetection behavior:
|
|
100
|
+
if (detectionSource === 'llm_paralysis') {
|
|
101
|
+
return 'llm_paralysis';
|
|
102
|
+
}
|
|
103
|
+
if (detectionSource.startsWith('llm_')) {
|
|
104
|
+
return 'semantic';
|
|
105
|
+
}
|
|
106
|
+
if (detectionSource === 'user_empathy') {
|
|
107
|
+
return 'empathy_inferred';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Fallback: unknown
|
|
111
|
+
return 'unknown';
|
|
112
|
+
}
|
|
113
|
+
// ── Builder Functions ──────────────────────────────────────────────────────
|
|
114
|
+
//
|
|
115
|
+
// PRI-360 S1: These builders construct RawObservation from specific contexts,
|
|
116
|
+
// centralizing source classification rules in the adapter layer.
|
|
117
|
+
// Hooks should NOT hold source classification logic — use these builders.
|
|
118
|
+
/**
|
|
119
|
+
* Classify error message as dispatch_error vs tool_failure.
|
|
120
|
+
*
|
|
121
|
+
* This centralizes the regex-based classification that was previously
|
|
122
|
+
* scattered in classifyToolFailureSource and after-tool-call-helpers.
|
|
123
|
+
* Now hooks call this builder + resolveSourceKind instead of holding rules.
|
|
124
|
+
*/
|
|
125
|
+
function classifyErrorForDispatch(error) {
|
|
126
|
+
if (!error)
|
|
127
|
+
return 'tool_failure';
|
|
128
|
+
const msg = String(error);
|
|
129
|
+
if (/\btool\s+(?:\S+\s+)?not\s+found\b/i.test(msg) || /\bunknown\s+tool\b/i.test(msg)) {
|
|
130
|
+
return 'dispatch_error';
|
|
131
|
+
}
|
|
132
|
+
return 'tool_failure';
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Build a RawObservation for a tool failure context.
|
|
136
|
+
*
|
|
137
|
+
* This replaces classifyToolFailureSource and the inline classification
|
|
138
|
+
* in after-tool-call-helpers. All tool error → dispatch/tool_failure
|
|
139
|
+
* classification is centralized here.
|
|
140
|
+
*/
|
|
141
|
+
export function buildToolFailureObservation(options) {
|
|
142
|
+
const { toolName, error, provenance } = options;
|
|
143
|
+
const nonZeroExit = typeof options.exitCode === 'number' && options.exitCode !== 0;
|
|
144
|
+
// Classify dispatch vs tool_failure centrally
|
|
145
|
+
let failureSource;
|
|
146
|
+
if (!toolName || toolName.trim() === '') {
|
|
147
|
+
// Empty/whitespace tool name → dispatch error
|
|
148
|
+
failureSource = 'dispatch_error';
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
failureSource = classifyErrorForDispatch(error);
|
|
152
|
+
}
|
|
153
|
+
// If neither error nor non-zero exit, this is not a failure context
|
|
154
|
+
if (!error && !nonZeroExit) {
|
|
155
|
+
failureSource = undefined;
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
observedAt: new Date().toISOString(),
|
|
159
|
+
toolName,
|
|
160
|
+
failureSource,
|
|
161
|
+
nonZeroExit,
|
|
162
|
+
provenance,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Build a RawObservation for an LLM detection context.
|
|
167
|
+
*/
|
|
168
|
+
export function buildLlmDetectionObservation(options) {
|
|
169
|
+
return {
|
|
170
|
+
observedAt: new Date().toISOString(),
|
|
171
|
+
detectionSource: options.detectionSource,
|
|
172
|
+
isGfiTriggered: options.isGfiTriggered,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=observation-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observation-resolver.js","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/observation-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
* - ERR-005: Input is unknown, validated field-by-field.
|
|
15
15
|
*/
|
|
16
16
|
import type { TriageInput, TriageResult } from './types.js';
|
|
17
|
+
/** Pain score at or above which a risky action upgrades to admit. */
|
|
18
|
+
export declare const RISKY_HIGH_SCORE_THRESHOLD = 70;
|
|
19
|
+
/** Consecutive failures at or above which a tool failure upgrades to admit. */
|
|
20
|
+
export declare const REPEATED_FAILURE_THRESHOLD = 4;
|
|
17
21
|
/**
|
|
18
22
|
* Evaluate triage policy for incoming evidence.
|
|
19
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/triage-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAA8B,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"triage-policy.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/evidence-triage/triage-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAA8B,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWxF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAyF5C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA4C/D"}
|
|
@@ -15,33 +15,82 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { isSourceKind } from './types.js';
|
|
17
17
|
import { getSourceDescriptor } from './source-descriptors.js';
|
|
18
|
+
// ── Upgrade Thresholds (PRI-446 — migrated verbatim from the plugin adapter) ──
|
|
19
|
+
//
|
|
20
|
+
// These constants previously lived inline in the plugin-side triage-adapter
|
|
21
|
+
// as magic numbers `70` and `4`. They are moved here byte-for-byte so the
|
|
22
|
+
// upgrade decision has a single source of truth. The adapter now passes
|
|
23
|
+
// isRisky / consecutiveErrors through to core instead of overriding the result.
|
|
24
|
+
/** Pain score at or above which a risky action upgrades to admit. */
|
|
25
|
+
export const RISKY_HIGH_SCORE_THRESHOLD = 70;
|
|
26
|
+
/** Consecutive failures at or above which a tool failure upgrades to admit. */
|
|
27
|
+
export const REPEATED_FAILURE_THRESHOLD = 4;
|
|
18
28
|
// ── Upgrade Rules ───────────────────────────────────────────────────────────
|
|
19
29
|
/**
|
|
20
30
|
* Apply upgrade rules for upgradable source kinds.
|
|
21
31
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
32
|
+
* Three rules (PRI-446 consolidated all of them into core):
|
|
33
|
+
* 1. rulehost_block + isUnsafeHighConfidence → admit
|
|
34
|
+
* 2. tool_failure (or any evidence_only upgradeable kind) + isRisky + score >= 70 → admit
|
|
35
|
+
* 3. tool_failure (or any evidence_only upgradeable kind) + consecutiveErrors >= 4 → admit
|
|
24
36
|
*
|
|
25
37
|
* This is the ONLY place where context-dependent upgrades happen in core.
|
|
26
|
-
* The plugin adapter sets
|
|
38
|
+
* The plugin adapter sets the context flags based on hook context.
|
|
39
|
+
*
|
|
40
|
+
* Rule precedence matches the prior plugin implementation: risky high-score is
|
|
41
|
+
* checked before repeated failure, but since both produce the same upgraded
|
|
42
|
+
* decision with the same nextAction, the order is only observable via the
|
|
43
|
+
* reason string. We preserve the plugin's prior order (risky first).
|
|
27
44
|
*/
|
|
28
45
|
function applyUpgradeRules(input, defaultDecision) {
|
|
46
|
+
if (defaultDecision !== 'evidence_only') {
|
|
47
|
+
return defaultDecision;
|
|
48
|
+
}
|
|
49
|
+
// Rule 1: rulehost_block unsafe action (pre-existing).
|
|
29
50
|
if (input.sourceKind === 'rulehost_block' && input.isUnsafeHighConfidence === true) {
|
|
30
51
|
return 'admit';
|
|
31
52
|
}
|
|
53
|
+
// Rule 2: risky high-score (migrated from plugin, PRI-446).
|
|
54
|
+
if (input.isRisky === true && input.score >= RISKY_HIGH_SCORE_THRESHOLD) {
|
|
55
|
+
return 'admit';
|
|
56
|
+
}
|
|
57
|
+
// Rule 3: repeated failure (migrated from plugin, PRI-446).
|
|
58
|
+
if (input.consecutiveErrors !== undefined && input.consecutiveErrors >= REPEATED_FAILURE_THRESHOLD) {
|
|
59
|
+
return 'admit';
|
|
60
|
+
}
|
|
32
61
|
return defaultDecision;
|
|
33
62
|
}
|
|
34
63
|
function getUpgradeReason(sourceKind, decision, input) {
|
|
35
|
-
if (
|
|
64
|
+
if (decision !== 'admit') {
|
|
65
|
+
return `Upgraded decision for ${sourceKind}: ${decision}`;
|
|
66
|
+
}
|
|
67
|
+
if (sourceKind === 'rulehost_block' && input.isUnsafeHighConfidence === true) {
|
|
36
68
|
return `RuleHost blocked a high-confidence unsafe action (score=${input.score}). Upgrading to direct diagnosis.`;
|
|
37
69
|
}
|
|
70
|
+
// PRI-446: verbatim string from the plugin triage-adapter
|
|
71
|
+
if (input.isRisky === true && input.score >= RISKY_HIGH_SCORE_THRESHOLD) {
|
|
72
|
+
return 'Risky high-score operation overrides evidence-only decision. Immediate diagnosis required.';
|
|
73
|
+
}
|
|
74
|
+
// PRI-446: verbatim string from the plugin triage-adapter
|
|
75
|
+
if (input.consecutiveErrors !== undefined && input.consecutiveErrors >= REPEATED_FAILURE_THRESHOLD) {
|
|
76
|
+
return 'Repeated failures override evidence-only decision. Pattern suggests systemic issue requiring diagnosis.';
|
|
77
|
+
}
|
|
38
78
|
// Should not reach here — fallback
|
|
39
79
|
return `Upgraded decision for ${sourceKind}: ${decision}`;
|
|
40
80
|
}
|
|
41
|
-
function getUpgradeNextAction(sourceKind, decision) {
|
|
42
|
-
if (
|
|
81
|
+
function getUpgradeNextAction(sourceKind, decision, input) {
|
|
82
|
+
if (decision !== 'admit') {
|
|
43
83
|
return 'none';
|
|
44
84
|
}
|
|
85
|
+
if (sourceKind === 'rulehost_block' && input.isUnsafeHighConfidence === true) {
|
|
86
|
+
return 'none';
|
|
87
|
+
}
|
|
88
|
+
// PRI-446: verbatim nextAction from the plugin triage-adapter
|
|
89
|
+
// (both risky-high-score and repeated-failure used 'create_diagnostic_task').
|
|
90
|
+
if ((input.isRisky === true && input.score >= RISKY_HIGH_SCORE_THRESHOLD) ||
|
|
91
|
+
(input.consecutiveErrors !== undefined && input.consecutiveErrors >= REPEATED_FAILURE_THRESHOLD)) {
|
|
92
|
+
return 'create_diagnostic_task';
|
|
93
|
+
}
|
|
45
94
|
return 'none';
|
|
46
95
|
}
|
|
47
96
|
// ── Evaluation ──────────────────────────────────────────────────────────────
|
|
@@ -73,15 +122,23 @@ export function evaluateTriage(input) {
|
|
|
73
122
|
nextAction: 'classify_source_kind_and_store_as_evidence',
|
|
74
123
|
};
|
|
75
124
|
}
|
|
76
|
-
// Apply upgrade rules
|
|
77
|
-
|
|
125
|
+
// Apply upgrade rules. PRI-446: rule 1 (rulehost_block) is gated by
|
|
126
|
+
// descriptor.canUpgrade; rules 2/3 (risky high-score / repeated failure) are
|
|
127
|
+
// context-driven and apply to any evidence_only kind when the relevant flag is
|
|
128
|
+
// present, matching the prior plugin behavior. applyUpgradeRules internally
|
|
129
|
+
// guards on defaultDecision === 'evidence_only', so non-upgradeable kinds
|
|
130
|
+
// (admit/health_only/owner_confirm) are never affected.
|
|
131
|
+
const upgradeable = descriptor.canUpgrade ||
|
|
132
|
+
input.isRisky !== undefined ||
|
|
133
|
+
input.consecutiveErrors !== undefined;
|
|
134
|
+
if (upgradeable) {
|
|
78
135
|
const upgraded = applyUpgradeRules(input, descriptor.defaultDecision);
|
|
79
136
|
if (upgraded !== descriptor.defaultDecision) {
|
|
80
137
|
return {
|
|
81
138
|
decision: upgraded,
|
|
82
139
|
sourceKind,
|
|
83
140
|
reason: getUpgradeReason(sourceKind, upgraded, input),
|
|
84
|
-
nextAction: getUpgradeNextAction(sourceKind, upgraded),
|
|
141
|
+
nextAction: getUpgradeNextAction(sourceKind, upgraded, input),
|
|
85
142
|
};
|
|
86
143
|
}
|
|
87
144
|
}
|