@principles/core 1.86.0 → 1.88.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__/evaluator-runner-vslice.test.js +245 -1
- package/dist/runtime-v2/__tests__/evaluator-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +425 -2
- package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/telemetry-event.test.js +13 -0
- package/dist/runtime-v2/__tests__/telemetry-event.test.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.d.ts +2 -2
- package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.js +29 -23
- package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +74 -48
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +164 -444
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-output.d.ts +8 -2
- package/dist/runtime-v2/internalization/scribe-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-output.js +33 -17
- package/dist/runtime-v2/internalization/scribe-output.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.d.ts +56 -49
- package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.js +116 -398
- package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
- package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js +119 -0
- package/dist/runtime-v2/runner/__tests__/base-peer-runner-trust-boundary.test.js.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.d.ts +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.js +8 -0
- package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +1 -0
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +1 -1
|
@@ -40,6 +40,19 @@ describe('TelemetryEvent schema — runner event registration', () => {
|
|
|
40
40
|
expect(result.errors).toEqual([]);
|
|
41
41
|
expect(result.event?.eventType).toBe('scribe_principle_draft_generated');
|
|
42
42
|
});
|
|
43
|
+
it('accepts evaluator_decision_recorded event', () => {
|
|
44
|
+
const event = {
|
|
45
|
+
eventType: 'evaluator_decision_recorded',
|
|
46
|
+
traceId: 'trace-005',
|
|
47
|
+
timestamp: new Date().toISOString(),
|
|
48
|
+
sessionId: 'session-005',
|
|
49
|
+
payload: { decision: 'approved', score: 0.9 },
|
|
50
|
+
};
|
|
51
|
+
const result = validateTelemetryEvent(event);
|
|
52
|
+
expect(result.valid).toBe(true);
|
|
53
|
+
expect(result.errors).toEqual([]);
|
|
54
|
+
expect(result.event?.eventType).toBe('evaluator_decision_recorded');
|
|
55
|
+
});
|
|
43
56
|
it('rejects unknown event type artificer_nonexistent_event', () => {
|
|
44
57
|
const event = {
|
|
45
58
|
eventType: 'artificer_nonexistent_event',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-event.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/telemetry-event.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telemetry-event.test.js","sourceRoot":"","sources":["../../../src/runtime-v2/__tests__/telemetry-event.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,9 +63,9 @@ export interface EvaluatorValidationResult {
|
|
|
63
63
|
readonly errorCategory?: string;
|
|
64
64
|
}
|
|
65
65
|
export interface EvaluatorValidator {
|
|
66
|
-
validate(output:
|
|
66
|
+
validate(output: unknown, taskId: string, expectedSourceArtificerArtifactId?: string): Promise<EvaluatorValidationResult>;
|
|
67
67
|
}
|
|
68
68
|
export declare class DefaultEvaluatorValidator implements EvaluatorValidator {
|
|
69
|
-
validate(output:
|
|
69
|
+
validate(output: unknown, taskId: string, expectedSourceArtificerArtifactId?: string): Promise<EvaluatorValidationResult>;
|
|
70
70
|
}
|
|
71
71
|
//# sourceMappingURL=evaluator-output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,qDAAsD,CAAC;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;EAWpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"evaluator-output.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,qDAAsD,CAAC;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;EAWpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;EAKrC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAC3H;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IAE5D,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA8EhI"}
|
|
@@ -26,83 +26,89 @@ export const EvaluatorOutputV1Schema = Type.Object({
|
|
|
26
26
|
risks: Type.Array(Type.String()),
|
|
27
27
|
generatedAt: Type.String({ minLength: 1 }),
|
|
28
28
|
});
|
|
29
|
+
function isRecord(v) {
|
|
30
|
+
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
31
|
+
}
|
|
29
32
|
export class DefaultEvaluatorValidator {
|
|
30
33
|
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
31
34
|
async validate(output, taskId, expectedSourceArtificerArtifactId) {
|
|
32
35
|
const errors = [];
|
|
33
|
-
if (
|
|
36
|
+
if (!isRecord(output)) {
|
|
34
37
|
return { valid: false, errors: ['Output is not an object'], errorCategory: 'output_invalid' };
|
|
35
38
|
}
|
|
36
|
-
if (output
|
|
39
|
+
if (!Object.hasOwn(output, 'taskId')) {
|
|
40
|
+
errors.push('taskId is missing');
|
|
41
|
+
}
|
|
42
|
+
else if (output.taskId !== taskId) {
|
|
37
43
|
errors.push(`taskId mismatch: expected ${taskId}, got ${String(output.taskId)}`);
|
|
38
44
|
}
|
|
39
|
-
if (typeof output.sourceArtificerArtifactId !== 'string' || output.sourceArtificerArtifactId.trim() === '') {
|
|
45
|
+
if (!Object.hasOwn(output, 'sourceArtificerArtifactId') || typeof output.sourceArtificerArtifactId !== 'string' || output.sourceArtificerArtifactId.trim() === '') {
|
|
40
46
|
errors.push('sourceArtificerArtifactId must be non-empty string');
|
|
41
47
|
}
|
|
42
48
|
else if (expectedSourceArtificerArtifactId && output.sourceArtificerArtifactId !== expectedSourceArtificerArtifactId) {
|
|
43
49
|
errors.push(`sourceArtificerArtifactId mismatch: expected ${expectedSourceArtificerArtifactId}, got ${output.sourceArtificerArtifactId}`);
|
|
44
50
|
}
|
|
45
|
-
if (
|
|
51
|
+
if (!Object.hasOwn(output, 'evaluation') || !isRecord(output.evaluation)) {
|
|
46
52
|
errors.push('evaluation must be an object');
|
|
47
53
|
}
|
|
48
54
|
else {
|
|
49
55
|
const ev = output.evaluation;
|
|
50
|
-
if (!EVALUATOR_DECISIONS.includes(ev.decision)) {
|
|
56
|
+
if (!Object.hasOwn(ev, 'decision') || !EVALUATOR_DECISIONS.includes(ev.decision)) {
|
|
51
57
|
errors.push(`evaluation.decision must be one of ${EVALUATOR_DECISIONS.join('/')}, got ${String(ev.decision)}`);
|
|
52
58
|
}
|
|
53
|
-
if (typeof ev.summary !== 'string' || (ev.summary).trim() === '')
|
|
59
|
+
if (!Object.hasOwn(ev, 'summary') || typeof ev.summary !== 'string' || (ev.summary).trim() === '')
|
|
54
60
|
errors.push('evaluation.summary must be non-empty string');
|
|
55
|
-
if (typeof ev.score !== 'number' || !Number.isFinite(ev.score))
|
|
61
|
+
if (!Object.hasOwn(ev, 'score') || typeof ev.score !== 'number' || !Number.isFinite(ev.score))
|
|
56
62
|
errors.push('evaluation.score must be number');
|
|
57
63
|
else if (ev.score < 0 || ev.score > 1)
|
|
58
64
|
errors.push('evaluation.score must be in [0, 1]');
|
|
59
|
-
if (!Array.isArray(ev.strengths))
|
|
65
|
+
if (!Object.hasOwn(ev, 'strengths') || !Array.isArray(ev.strengths))
|
|
60
66
|
errors.push('evaluation.strengths must be an array');
|
|
61
|
-
else if (!ev.strengths.every(e => typeof e === 'string'))
|
|
67
|
+
else if (!ev.strengths.every((e) => typeof e === 'string'))
|
|
62
68
|
errors.push('evaluation.strengths must be an array of strings');
|
|
63
|
-
if (!Array.isArray(ev.concerns))
|
|
69
|
+
if (!Object.hasOwn(ev, 'concerns') || !Array.isArray(ev.concerns))
|
|
64
70
|
errors.push('evaluation.concerns must be an array');
|
|
65
|
-
else if (!ev.concerns.every(e => typeof e === 'string'))
|
|
71
|
+
else if (!ev.concerns.every((e) => typeof e === 'string'))
|
|
66
72
|
errors.push('evaluation.concerns must be an array of strings');
|
|
67
|
-
if (!Array.isArray(ev.requiredChanges))
|
|
73
|
+
if (!Object.hasOwn(ev, 'requiredChanges') || !Array.isArray(ev.requiredChanges))
|
|
68
74
|
errors.push('evaluation.requiredChanges must be an array');
|
|
69
|
-
else if (!ev.requiredChanges.every(e => typeof e === 'string'))
|
|
75
|
+
else if (!ev.requiredChanges.every((e) => typeof e === 'string'))
|
|
70
76
|
errors.push('evaluation.requiredChanges must be an array of strings');
|
|
71
77
|
}
|
|
72
|
-
if (
|
|
78
|
+
if (!Object.hasOwn(output, 'sourceTrace') || !isRecord(output.sourceTrace)) {
|
|
73
79
|
errors.push('sourceTrace must be an object');
|
|
74
80
|
}
|
|
75
81
|
else {
|
|
76
82
|
const st = output.sourceTrace;
|
|
77
|
-
if (typeof st.artificerArtifactId !== 'string' || (st.artificerArtifactId).trim() === '') {
|
|
83
|
+
if (!Object.hasOwn(st, 'artificerArtifactId') || typeof st.artificerArtifactId !== 'string' || (st.artificerArtifactId).trim() === '') {
|
|
78
84
|
errors.push('sourceTrace.artificerArtifactId must be non-empty string');
|
|
79
85
|
}
|
|
80
86
|
else if (expectedSourceArtificerArtifactId && st.artificerArtifactId !== expectedSourceArtificerArtifactId) {
|
|
81
87
|
errors.push(`sourceTrace.artificerArtifactId mismatch: expected ${expectedSourceArtificerArtifactId}, got ${st.artificerArtifactId}`);
|
|
82
88
|
}
|
|
83
|
-
if (st.scribeArtifactId !== undefined && typeof st.scribeArtifactId !== 'string') {
|
|
89
|
+
if (Object.hasOwn(st, 'scribeArtifactId') && st.scribeArtifactId !== undefined && typeof st.scribeArtifactId !== 'string') {
|
|
84
90
|
errors.push('sourceTrace.scribeArtifactId must be string if present');
|
|
85
91
|
}
|
|
86
|
-
if (st.philosopherArtifactId !== undefined && typeof st.philosopherArtifactId !== 'string') {
|
|
92
|
+
if (Object.hasOwn(st, 'philosopherArtifactId') && st.philosopherArtifactId !== undefined && typeof st.philosopherArtifactId !== 'string') {
|
|
87
93
|
errors.push('sourceTrace.philosopherArtifactId must be string if present');
|
|
88
94
|
}
|
|
89
|
-
if (st.dreamerArtifactId !== undefined && typeof st.dreamerArtifactId !== 'string') {
|
|
95
|
+
if (Object.hasOwn(st, 'dreamerArtifactId') && st.dreamerArtifactId !== undefined && typeof st.dreamerArtifactId !== 'string') {
|
|
90
96
|
errors.push('sourceTrace.dreamerArtifactId must be string if present');
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
|
-
if (!Array.isArray(output.risks)) {
|
|
99
|
+
if (!Object.hasOwn(output, 'risks') || !Array.isArray(output.risks)) {
|
|
94
100
|
errors.push('risks must be an array');
|
|
95
101
|
}
|
|
96
|
-
else if (!output.risks.every(e => typeof e === 'string')) {
|
|
102
|
+
else if (!output.risks.every((e) => typeof e === 'string')) {
|
|
97
103
|
errors.push('risks must be an array of strings');
|
|
98
104
|
}
|
|
99
105
|
if (typeof output.sourceArtificerArtifactId === 'string' && output.sourceArtificerArtifactId.trim() !== ''
|
|
100
|
-
&&
|
|
101
|
-
&& typeof output.sourceTrace.artificerArtifactId === 'string'
|
|
106
|
+
&& isRecord(output.sourceTrace)
|
|
107
|
+
&& Object.hasOwn(output.sourceTrace, 'artificerArtifactId') && typeof output.sourceTrace.artificerArtifactId === 'string'
|
|
102
108
|
&& output.sourceArtificerArtifactId !== output.sourceTrace.artificerArtifactId) {
|
|
103
109
|
errors.push('sourceArtificerArtifactId and sourceTrace.artificerArtifactId must match');
|
|
104
110
|
}
|
|
105
|
-
if (typeof output.generatedAt !== 'string' || output.generatedAt.trim() === '') {
|
|
111
|
+
if (!Object.hasOwn(output, 'generatedAt') || typeof output.generatedAt !== 'string' || output.generatedAt.trim() === '') {
|
|
106
112
|
errors.push('generatedAt must be non-empty string');
|
|
107
113
|
}
|
|
108
114
|
return errors.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AA2BtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAU,CAAC;AAEvF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;KACzB,CAAC;IACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACpC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAClD,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9C,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACrC,yBAAyB,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACxD,UAAU,EAAE,yBAAyB;IACrC,WAAW,EAAE,0BAA0B;IACvC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;CAC3C,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluator-output.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* EvaluatorRunner — Peer runner for principle evaluation (PRI-67).
|
|
3
|
+
*
|
|
4
|
+
* Migrated to extend BasePeerRunner (PRI-302). The shared lease → buildContext →
|
|
5
|
+
* invoke → poll → fetch → validate → succeed/fail pipeline is now in the base
|
|
6
|
+
* class. This file only contains Evaluator-specific logic.
|
|
7
|
+
*
|
|
8
|
+
* Key business semantics:
|
|
9
|
+
* - Evaluator approved → must validate the principle-bearing Scribe artifact,
|
|
10
|
+
* NOT the Artificer plan artifact. This is the critical lineage contract.
|
|
11
|
+
* - resolvePrincipleBearerArtifact uses sourceTrace.scribeArtifactId first,
|
|
12
|
+
* then falls back to lineage search. Ambiguous candidates → fail loud.
|
|
13
|
+
* - updateValidationStatus returning false → structured telemetry, no silent skip.
|
|
14
|
+
*
|
|
15
|
+
* ERR considerations:
|
|
16
|
+
* - ERR-001 / ERR-005: output is `unknown` until validateOutput passes.
|
|
17
|
+
* - ERR-004 / ERR-008: sourceTrace / scribeArtifactId / sourceArtificerArtifactId
|
|
18
|
+
* must be internally consistent.
|
|
19
|
+
* - ERR-018 / ERR-019: validationStatus update target must be the correct
|
|
20
|
+
* principle-bearing artifact, never stale or wrong.
|
|
21
|
+
* - ERR-025: tests must exercise real evaluator runner path.
|
|
22
|
+
* - ERR-048: activation write/read path must not break.
|
|
23
|
+
*
|
|
24
|
+
* @see docs/adr/0003-peer-agent-state-machine-orchestration.md
|
|
25
|
+
* @see BasePeerRunner in runner/base-peer-runner.ts
|
|
26
|
+
*/
|
|
27
|
+
import type { RunHandle } from '../runtime-protocol.js';
|
|
4
28
|
import type { EvaluatorOutputV1, EvaluatorValidator } from './evaluator-output.js';
|
|
5
|
-
import type {
|
|
29
|
+
import type { TaskRecord } from '../task-status.js';
|
|
6
30
|
import { type PDErrorCategory } from '../error-categories.js';
|
|
7
|
-
import {
|
|
31
|
+
import { BasePeerRunner } from '../runner/base-peer-runner.js';
|
|
32
|
+
import type { PeerRunnerOptions, PeerRunnerDeps, PeerRunnerResult, PeerRunnerValidationResult } from '../runner/peer-runner-types.js';
|
|
33
|
+
/** Context built by EvaluatorRunner.buildContext() and consumed by invokeRuntime(). */
|
|
34
|
+
interface EvaluatorContext {
|
|
35
|
+
readonly contextHash: string;
|
|
36
|
+
readonly artificerArtifact: string | null;
|
|
37
|
+
readonly sourceArtificerArtifactId: string | null;
|
|
38
|
+
}
|
|
8
39
|
export type EvaluatorRunnerResultStatus = 'succeeded' | 'failed' | 'retried';
|
|
9
40
|
export interface EvaluatorRunnerResult {
|
|
10
41
|
readonly status: EvaluatorRunnerResultStatus;
|
|
@@ -18,14 +49,7 @@ export interface EvaluatorRunnerResult {
|
|
|
18
49
|
readonly failureReason?: string;
|
|
19
50
|
readonly attemptCount: number;
|
|
20
51
|
}
|
|
21
|
-
export
|
|
22
|
-
readonly pollIntervalMs?: number;
|
|
23
|
-
readonly timeoutMs?: number;
|
|
24
|
-
readonly defaultMaxAttempts?: number;
|
|
25
|
-
readonly owner: string;
|
|
26
|
-
readonly runtimeKind: string;
|
|
27
|
-
readonly agentId?: string;
|
|
28
|
-
}
|
|
52
|
+
export type EvaluatorRunnerOptions = PeerRunnerOptions;
|
|
29
53
|
export interface ResolvedEvaluatorRunnerOptions {
|
|
30
54
|
readonly pollIntervalMs: number;
|
|
31
55
|
readonly timeoutMs: number;
|
|
@@ -34,47 +58,49 @@ export interface ResolvedEvaluatorRunnerOptions {
|
|
|
34
58
|
readonly runtimeKind: string;
|
|
35
59
|
readonly agentId: string;
|
|
36
60
|
}
|
|
37
|
-
declare const DEFAULT_EVALUATOR_RUNNER_OPTIONS: Readonly<Omit<ResolvedEvaluatorRunnerOptions, 'owner' | 'runtimeKind'>>;
|
|
61
|
+
export declare const DEFAULT_EVALUATOR_RUNNER_OPTIONS: Readonly<Omit<ResolvedEvaluatorRunnerOptions, 'owner' | 'runtimeKind'>>;
|
|
38
62
|
export declare function resolveEvaluatorRunnerOptions(options: EvaluatorRunnerOptions): ResolvedEvaluatorRunnerOptions;
|
|
39
|
-
export interface EvaluatorRunnerDeps {
|
|
40
|
-
readonly stateManager: RuntimeStateManager;
|
|
41
|
-
readonly runtimeAdapter: PDRuntimeAdapter;
|
|
42
|
-
readonly eventEmitter: StoreEventEmitter;
|
|
63
|
+
export interface EvaluatorRunnerDeps extends PeerRunnerDeps {
|
|
43
64
|
readonly validator: EvaluatorValidator;
|
|
44
|
-
readonly artifactStore: PIArtifactStore;
|
|
45
65
|
}
|
|
46
|
-
export declare class EvaluatorRunner {
|
|
47
|
-
private phase;
|
|
48
|
-
private readonly resolvedOptions;
|
|
49
|
-
private readonly stateManager;
|
|
50
|
-
private readonly runtimeAdapter;
|
|
51
|
-
private readonly eventEmitter;
|
|
66
|
+
export declare class EvaluatorRunner extends BasePeerRunner<EvaluatorContext, EvaluatorOutputV1> {
|
|
52
67
|
private readonly validator;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
constructor(deps: EvaluatorRunnerDeps, options: PeerRunnerOptions);
|
|
69
|
+
get permanentErrorCategories(): ReadonlySet<PDErrorCategory>;
|
|
70
|
+
buildContext(taskId: string): Promise<EvaluatorContext>;
|
|
71
|
+
invokeRuntime(taskId: string, context: EvaluatorContext): Promise<RunHandle>;
|
|
72
|
+
validateOutput(output: unknown, taskId: string, context: EvaluatorContext): Promise<PeerRunnerValidationResult>;
|
|
73
|
+
succeedTask(taskId: string, runId: string, output: EvaluatorOutputV1, task: TaskRecord, contextHash: string, context: EvaluatorContext): Promise<PeerRunnerResult<EvaluatorOutputV1>>;
|
|
74
|
+
/**
|
|
75
|
+
* Re-inject taskId if stripped by stripLineageFields (PRI-272 / ERR-008).
|
|
76
|
+
* Only fill when absent via Object.hasOwn — present-but-falsy values
|
|
77
|
+
* must reach validation and fail loud (Runtime Contract Rule 3).
|
|
78
|
+
*/
|
|
79
|
+
protected postFetchTransform(taskId: string, untrustedOutput: unknown): void;
|
|
80
|
+
protected emitSuccessTelemetry(taskId: string, output: EvaluatorOutputV1): void;
|
|
81
|
+
/**
|
|
82
|
+
* Check lineage strip contract after validation passes.
|
|
83
|
+
* Validates sourceTrace.scribeArtifactId consistency (ERR-004, ERR-008).
|
|
84
|
+
*/
|
|
85
|
+
protected checkLineageIntegrity(taskId: string, output: EvaluatorOutputV1): void;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the principle-bearing artifact that the evaluator should validate.
|
|
88
|
+
*
|
|
89
|
+
* Strategy 1: Use scribeArtifactId from sourceTrace (the Scribe artifact
|
|
90
|
+
* carries principleDraft).
|
|
91
|
+
* Strategy 2: Search lineage for principle-kind artifacts with principleDraft.
|
|
92
|
+
* Strategy 3: No principle-bearing artifact found → telemetry, return null.
|
|
93
|
+
*
|
|
94
|
+
* Ambiguous candidates (more than 1) → fail loud with telemetry, return null.
|
|
95
|
+
* Never silently pick the first candidate (ERR-018, ERR-019).
|
|
96
|
+
*/
|
|
73
97
|
private resolvePrincipleBearerArtifact;
|
|
74
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Check if an artifact's contentJson contains principle-bearing content.
|
|
100
|
+
* Uses Object.hasOwn (ERR-013) and runtime type checks (ERR-001, ERR-005).
|
|
101
|
+
*/
|
|
75
102
|
private hasPrincipleDraftContent;
|
|
76
103
|
private static isRecord;
|
|
77
|
-
private sleep;
|
|
78
104
|
}
|
|
79
|
-
export {
|
|
105
|
+
export {};
|
|
80
106
|
//# sourceMappingURL=evaluator-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"evaluator-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/evaluator-runner.ts"],"names":[],"mappings":"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"}
|