@tangle-network/agent-eval 0.220.1 → 0.221.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/CHANGELOG.md +37 -0
- package/dist/adapters/http.d.ts +2 -2
- package/dist/{agent-profile-D01Io2Xw.d.ts → agent-profile-Bc7ADJY4.d.ts} +2 -2
- package/dist/{agent-profile-D01Io2Xw.d.ts.map → agent-profile-Bc7ADJY4.d.ts.map} +1 -1
- package/dist/analyst/index.d.ts +77 -78
- package/dist/analyst/index.d.ts.map +1 -1
- package/dist/analyst/index.js +204 -25
- package/dist/analyst/index.js.map +1 -1
- package/dist/{analyze-runs-DqPJaJ4X.js → analyze-runs-CHmsykNJ.js} +4 -4
- package/dist/{analyze-runs-DqPJaJ4X.js.map → analyze-runs-CHmsykNJ.js.map} +1 -1
- package/dist/{analyze-runs-BWAHBDAw.d.ts → analyze-runs-D7In4c3z.d.ts} +2 -2
- package/dist/{analyze-runs-BWAHBDAw.d.ts.map → analyze-runs-D7In4c3z.d.ts.map} +1 -1
- package/dist/{benchmark-command-BzmMTnvC.js → benchmark-command-8XQfpUK3.js} +13 -11
- package/dist/benchmark-command-8XQfpUK3.js.map +1 -0
- package/dist/benchmarks/index.d.ts +4 -4
- package/dist/benchmarks/index.js +3 -3
- package/dist/calibration-CTwxpJ-t.js +197 -0
- package/dist/calibration-CTwxpJ-t.js.map +1 -0
- package/dist/campaign/index.d.ts +6 -6
- package/dist/campaign/index.js +5 -5
- package/dist/{campaign-BVPC6ODQ.js → campaign-Bt6rbWIU.js} +9 -8
- package/dist/{campaign-BVPC6ODQ.js.map → campaign-Bt6rbWIU.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{completion-verifier-Cigap8CG.js → completion-verifier-YwoeujPl.js} +2 -2
- package/dist/{completion-verifier-Cigap8CG.js.map → completion-verifier-YwoeujPl.js.map} +1 -1
- package/dist/contract/index.d.ts +10 -10
- package/dist/contract/index.js +7 -7
- package/dist/decision-point-Co3u3W8k.js +831 -0
- package/dist/decision-point-Co3u3W8k.js.map +1 -0
- package/dist/default-registry-BMHqNR6_.d.ts +257 -0
- package/dist/default-registry-BMHqNR6_.d.ts.map +1 -0
- package/dist/{default-registry-BrKmT01n.js → default-registry-BbFCkqvB.js} +608 -15
- package/dist/default-registry-BbFCkqvB.js.map +1 -0
- package/dist/{define-agent-eval-C2nFhHPu.d.ts → define-agent-eval-Bsoi2GUV.d.ts} +7 -7
- package/dist/{define-agent-eval-C2nFhHPu.d.ts.map → define-agent-eval-Bsoi2GUV.d.ts.map} +1 -1
- package/dist/{define-agent-eval-UQY3VbJ2.js → define-agent-eval-CJhECJNL.js} +4 -4
- package/dist/{define-agent-eval-UQY3VbJ2.js.map → define-agent-eval-CJhECJNL.js.map} +1 -1
- package/dist/diagnosis/index.d.ts +2 -2
- package/dist/diagnosis/index.js +1 -1
- package/dist/{dspy-rlm-engine-Bn_Mt_LW.js → dspy-rlm-engine-BTy7u0jQ.js} +3 -3
- package/dist/{dspy-rlm-engine-Bn_Mt_LW.js.map → dspy-rlm-engine-BTy7u0jQ.js.map} +1 -1
- package/dist/{engine-BpGGw6cd.d.ts → engine-BF95CWzH.d.ts} +2 -2
- package/dist/{engine-BpGGw6cd.d.ts.map → engine-BF95CWzH.d.ts.map} +1 -1
- package/dist/{eval-campaign-BUMIxKTE.js → eval-campaign-DoX5vz3E.js} +2 -2
- package/dist/{eval-campaign-BUMIxKTE.js.map → eval-campaign-DoX5vz3E.js.map} +1 -1
- package/dist/{evaluation-CBdQt_kr.d.ts → evaluation-D1PGzkPR.d.ts} +3 -3
- package/dist/{evaluation-CBdQt_kr.d.ts.map → evaluation-D1PGzkPR.d.ts.map} +1 -1
- package/dist/evaluation-wdGyZ7jV.js +147 -0
- package/dist/evaluation-wdGyZ7jV.js.map +1 -0
- package/dist/evaluation.d.ts +1 -1
- package/dist/evaluation.js +1 -136
- package/dist/{exact-types-BYFmYq44.d.ts → exact-types-CVn1QxFO.d.ts} +2 -2
- package/dist/{exact-types-BYFmYq44.d.ts.map → exact-types-CVn1QxFO.d.ts.map} +1 -1
- package/dist/experiment/index.d.ts +3 -3
- package/dist/experiment/index.js +2 -2
- package/dist/{external-optimizer-process-wOLfzsCC.js → external-optimizer-process-E5yY2SYS.js} +2 -2
- package/dist/{external-optimizer-process-wOLfzsCC.js.map → external-optimizer-process-E5yY2SYS.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-D670Oxf2.js → external-optimizer-subprocess-DA02c_L6.js} +12 -19
- package/dist/{external-optimizer-subprocess-D670Oxf2.js.map → external-optimizer-subprocess-DA02c_L6.js.map} +1 -1
- package/dist/{feedback-trajectory-DhB9WzYg.d.ts → feedback-trajectory-BZhVCWuz.d.ts} +3 -3
- package/dist/{feedback-trajectory-DhB9WzYg.d.ts.map → feedback-trajectory-BZhVCWuz.d.ts.map} +1 -1
- package/dist/finding-composition-8n0fFgVI.js +131 -0
- package/dist/finding-composition-8n0fFgVI.js.map +1 -0
- package/dist/{findings-store-CvNo712L.js → findings-store-DRiFdoid.js} +4 -4
- package/dist/{findings-store-CvNo712L.js.map → findings-store-DRiFdoid.js.map} +1 -1
- package/dist/{index-CVFStrQD.d.ts → index-BJZ7s-sv.d.ts} +7 -58
- package/dist/index-BJZ7s-sv.d.ts.map +1 -0
- package/dist/{index-Q6DvdcwI.d.ts → index-BvX3CFNS.d.ts} +6 -6
- package/dist/{index-Q6DvdcwI.d.ts.map → index-BvX3CFNS.d.ts.map} +1 -1
- package/dist/index-DWd1gUwR.d.ts +1086 -0
- package/dist/index-DWd1gUwR.d.ts.map +1 -0
- package/dist/{index-DAXfpVf7.d.ts → index-y7i8l6Y_.d.ts} +8 -8
- package/dist/{index-DAXfpVf7.d.ts.map → index-y7i8l6Y_.d.ts.map} +1 -1
- package/dist/index.d.ts +18 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -15
- package/dist/{integrity-C8oUeB0g.js → integrity-D-s2iHiT.js} +2 -2
- package/dist/{integrity-C8oUeB0g.js.map → integrity-D-s2iHiT.js.map} +1 -1
- package/dist/{kind-factory-BhxbtUsQ.js → kind-factory-Dl0PmNQL.js} +2 -2
- package/dist/{kind-factory-BhxbtUsQ.js.map → kind-factory-Dl0PmNQL.js.map} +1 -1
- package/dist/{llm-judge-Cc8vDJh_.js → llm-judge-3uAeRawE.js} +4 -4
- package/dist/{llm-judge-Cc8vDJh_.js.map → llm-judge-3uAeRawE.js.map} +1 -1
- package/dist/{matrix-Cf-AGxGh.d.ts → matrix-BXo3PSqM.d.ts} +2 -2
- package/dist/{matrix-Cf-AGxGh.d.ts.map → matrix-BXo3PSqM.d.ts.map} +1 -1
- package/dist/meta-eval/index.d.ts +3 -638
- package/dist/meta-eval/index.js +3 -193
- package/dist/meta-eval/index.js.map +1 -1
- package/dist/multishot/golden/index.d.ts +1 -1
- package/dist/multishot/index.d.ts +2 -2
- package/dist/openapi.json +1 -1
- package/dist/outcome-observations-FLmRpgYa.js +78 -0
- package/dist/outcome-observations-FLmRpgYa.js.map +1 -0
- package/dist/{paired-arms-Ct4LTKc1.js → paired-arms-B2ttLc0_.js} +108 -31
- package/dist/paired-arms-B2ttLc0_.js.map +1 -0
- package/dist/{power-and-mde-N5nU4_Ly.js → power-and-mde-CQX-0weG.js} +2 -2
- package/dist/{power-and-mde-N5nU4_Ly.js.map → power-and-mde-CQX-0weG.js.map} +1 -1
- package/dist/{prime-protocol-CckHBxGu.d.ts → prime-protocol-BEaqBoQE.d.ts} +2 -2
- package/dist/{prime-protocol-CckHBxGu.d.ts.map → prime-protocol-BEaqBoQE.d.ts.map} +1 -1
- package/dist/{proposal-findings-E1aSC_cU.js → proposal-findings-D0_zkQ2l.js} +2 -2
- package/dist/{proposal-findings-E1aSC_cU.js.map → proposal-findings-D0_zkQ2l.js.map} +1 -1
- package/dist/{registry-B_yG-1jh.d.ts → registry-DDKaUrmM.d.ts} +3 -3
- package/dist/{registry-B_yG-1jh.d.ts.map → registry-DDKaUrmM.d.ts.map} +1 -1
- package/dist/{render-Cs34y0iX.js → render-BhJqXoBH.js} +15 -11
- package/dist/render-BhJqXoBH.js.map +1 -0
- package/dist/reporting.d.ts +1 -1
- package/dist/reporting.js +3 -3
- package/dist/rl.d.ts +4 -5
- package/dist/rl.d.ts.map +1 -1
- package/dist/rl.js +5 -4
- package/dist/rl.js.map +1 -1
- package/dist/{rubric-predictive-validity-noY7uE03.d.ts → rubric-predictive-validity-Cd5SCtAf.d.ts} +58 -3
- package/dist/rubric-predictive-validity-Cd5SCtAf.d.ts.map +1 -0
- package/dist/{rubric-predictive-validity-D3_oI72N.js → rubric-predictive-validity-CeKW2GQN.js} +3 -77
- package/dist/rubric-predictive-validity-CeKW2GQN.js.map +1 -0
- package/dist/search/index.d.ts +2 -2
- package/dist/{search-kernel-Dloxd6gs.d.ts → search-kernel-C6__V0IS.d.ts} +2 -2
- package/dist/{search-kernel-Dloxd6gs.d.ts.map → search-kernel-C6__V0IS.d.ts.map} +1 -1
- package/dist/{skillopt-optimization-method-DLKqdhcR.js → skillopt-optimization-method-D21dH_Bh.js} +4 -4
- package/dist/{skillopt-optimization-method-DLKqdhcR.js.map → skillopt-optimization-method-D21dH_Bh.js.map} +1 -1
- package/dist/{statistical-heldout-3z3I-kJN.d.ts → statistical-heldout-pD1Yah-0.d.ts} +58 -8
- package/dist/statistical-heldout-pD1Yah-0.d.ts.map +1 -0
- package/dist/{store-otlp-dyWE3wAG.js → store-otlp-BVZfR168.js} +2 -2
- package/dist/{store-otlp-dyWE3wAG.js.map → store-otlp-BVZfR168.js.map} +1 -1
- package/dist/{store-tool-spans-DIUgZbzu.js → store-tool-spans-CjYiF4fF.js} +3 -3
- package/dist/{store-tool-spans-DIUgZbzu.js.map → store-tool-spans-CjYiF4fF.js.map} +1 -1
- package/dist/{store-tool-spans-DPwXHQkH.d.ts → store-tool-spans-DfnwWMFR.d.ts} +4 -4
- package/dist/{store-tool-spans-DPwXHQkH.d.ts.map → store-tool-spans-DfnwWMFR.d.ts.map} +1 -1
- package/dist/{summary-report-BsXJoYX5.js → summary-report-DHDWxe6p.js} +3 -3
- package/dist/{summary-report-BsXJoYX5.js.map → summary-report-DHDWxe6p.js.map} +1 -1
- package/dist/supervisor-run/index.d.ts +6 -5
- package/dist/supervisor-run/index.d.ts.map +1 -1
- package/dist/supervisor-run/index.js +3 -3
- package/dist/systemone-D3MrW63C.d.ts +400 -0
- package/dist/systemone-D3MrW63C.d.ts.map +1 -0
- package/dist/{systemone-protocol-DKoi1NdK.d.ts → systemone-protocol-Bl2EI2KQ.d.ts} +4 -2
- package/dist/{systemone-protocol-DKoi1NdK.d.ts.map → systemone-protocol-Bl2EI2KQ.d.ts.map} +1 -1
- package/dist/systemone-protocol.d.ts +2 -2
- package/dist/systemone-protocol.js +7 -7
- package/dist/systemone-protocol.js.map +1 -1
- package/dist/{systemone-review-CUBMuTLi.d.ts → systemone-review-C8DRiT_-.d.ts} +3 -3
- package/dist/{systemone-review-CUBMuTLi.d.ts.map → systemone-review-C8DRiT_-.d.ts.map} +1 -1
- package/dist/{systemone-review-DzdOJ8I6.js → systemone-review-DFGtIUcf.js} +2 -2
- package/dist/{systemone-review-DzdOJ8I6.js.map → systemone-review-DFGtIUcf.js.map} +1 -1
- package/dist/systemone.d.ts +5 -5
- package/dist/systemone.js +5 -343
- package/dist/{terminal-record-D4Rv-j1W.js → terminal-record-CB9BFtjS.js} +77 -29
- package/dist/terminal-record-CB9BFtjS.js.map +1 -0
- package/dist/{tool-groups-LISbBWCg.d.ts → tool-groups-DK1bu5TD.d.ts} +3 -3
- package/dist/tool-groups-DK1bu5TD.d.ts.map +1 -0
- package/dist/{trace-questions-C42fYEE4.d.ts → trace-questions-D_OKYZ6u.d.ts} +3 -3
- package/dist/{trace-questions-C42fYEE4.d.ts.map → trace-questions-D_OKYZ6u.d.ts.map} +1 -1
- package/dist/trace-repair/index.d.ts +1 -1
- package/dist/traces.d.ts +3 -3
- package/dist/traces.js +3 -3
- package/dist/{types-DqFMNTgK.js → types-CnWmj8NW.js} +19 -6
- package/dist/types-CnWmj8NW.js.map +1 -0
- package/dist/{types-CHfn1zg5.d.ts → types-DDKfH-N6.d.ts} +2 -2
- package/dist/{types-CHfn1zg5.d.ts.map → types-DDKfH-N6.d.ts.map} +1 -1
- package/dist/{types-8yQzNm8u.d.ts → types-DGImvHIr.d.ts} +150 -4
- package/dist/types-DGImvHIr.d.ts.map +1 -0
- package/dist/{types-D8GXK9Z5.d.ts → types-IERw_HxR.d.ts} +2 -2
- package/dist/{types-D8GXK9Z5.d.ts.map → types-IERw_HxR.d.ts.map} +1 -1
- package/dist/wire/index.d.ts +1 -1
- package/docs/behavioral-trace-questions.md +99 -0
- package/docs/experiment.md +27 -0
- package/docs/finding-layers.md +54 -1
- package/docs/rollout.md +9 -0
- package/docs/systemone.md +107 -0
- package/package.json +1 -1
- package/dist/benchmark-command-BzmMTnvC.js.map +0 -1
- package/dist/default-registry-BrKmT01n.js.map +0 -1
- package/dist/default-registry-Cwg_QN3d.d.ts +0 -70
- package/dist/default-registry-Cwg_QN3d.d.ts.map +0 -1
- package/dist/evaluation.js.map +0 -1
- package/dist/index-CVFStrQD.d.ts.map +0 -1
- package/dist/judge-gate-Dc_mXQsL.d.ts +0 -453
- package/dist/judge-gate-Dc_mXQsL.d.ts.map +0 -1
- package/dist/meta-eval/index.d.ts.map +0 -1
- package/dist/outcome-store-CNt4iZ67.d.ts +0 -58
- package/dist/outcome-store-CNt4iZ67.d.ts.map +0 -1
- package/dist/paired-arms-Ct4LTKc1.js.map +0 -1
- package/dist/render-Cs34y0iX.js.map +0 -1
- package/dist/rubric-predictive-validity-D3_oI72N.js.map +0 -1
- package/dist/rubric-predictive-validity-noY7uE03.d.ts.map +0 -1
- package/dist/statistical-heldout-3z3I-kJN.d.ts.map +0 -1
- package/dist/systemone-DVA7t76V.d.ts +0 -135
- package/dist/systemone-DVA7t76V.d.ts.map +0 -1
- package/dist/systemone.js.map +0 -1
- package/dist/terminal-record-D4Rv-j1W.js.map +0 -1
- package/dist/tool-groups-LISbBWCg.d.ts.map +0 -1
- package/dist/types-8yQzNm8u.d.ts.map +0 -1
- package/dist/types-DqFMNTgK.js.map +0 -1
|
@@ -287,6 +287,79 @@ interface BoundedTraceAnalysisStoreOptions {
|
|
|
287
287
|
/** Apply the public validation, cancellation, not-found, and size rules to any adapter. */
|
|
288
288
|
declare function createBoundedTraceAnalysisStore(source: TraceAnalysisStore, options?: BoundedTraceAnalysisStoreOptions): TraceAnalysisStore;
|
|
289
289
|
//#endregion
|
|
290
|
+
//#region src/analyst/finding-composition.d.ts
|
|
291
|
+
/** What was deliberately changed; this is separate from a finding's event-to-meta scope. */
|
|
292
|
+
declare const TREATMENT_LAYERS: readonly ['Task', 'Model', 'Budget', 'Team', 'Roles', 'Tools', 'Memory', 'Process', 'Oversight'];
|
|
293
|
+
type TreatmentLayer = (typeof TREATMENT_LAYERS)[number];
|
|
294
|
+
declare const findingTreatmentSchema: z.ZodObject<{
|
|
295
|
+
id: z.ZodString;
|
|
296
|
+
definition_digest: z.ZodString;
|
|
297
|
+
definition_refs: z.ZodArray<z.ZodObject<{
|
|
298
|
+
kind: z.ZodEnum<{
|
|
299
|
+
artifact: "artifact";
|
|
300
|
+
event: "event";
|
|
301
|
+
finding: "finding";
|
|
302
|
+
metric: "metric";
|
|
303
|
+
span: "span";
|
|
304
|
+
}>;
|
|
305
|
+
uri: z.ZodString;
|
|
306
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
307
|
+
}, z.core.$strict>>;
|
|
308
|
+
layers: z.ZodArray<z.ZodEnum<{
|
|
309
|
+
Budget: "Budget";
|
|
310
|
+
Memory: "Memory";
|
|
311
|
+
Model: "Model";
|
|
312
|
+
Oversight: "Oversight";
|
|
313
|
+
Process: "Process";
|
|
314
|
+
Roles: "Roles";
|
|
315
|
+
Task: "Task";
|
|
316
|
+
Team: "Team";
|
|
317
|
+
Tools: "Tools";
|
|
318
|
+
}>>;
|
|
319
|
+
}, z.core.$strict>;
|
|
320
|
+
/** Required nullable values distinguish an unavailable observation from observed absence. */
|
|
321
|
+
declare const findingConditionsSchema: z.ZodObject<{
|
|
322
|
+
id: z.ZodString;
|
|
323
|
+
population: z.ZodArray<z.ZodString>;
|
|
324
|
+
observed_at: z.ZodString;
|
|
325
|
+
evidence_refs: z.ZodArray<z.ZodObject<{
|
|
326
|
+
kind: z.ZodEnum<{
|
|
327
|
+
artifact: "artifact";
|
|
328
|
+
event: "event";
|
|
329
|
+
finding: "finding";
|
|
330
|
+
metric: "metric";
|
|
331
|
+
span: "span";
|
|
332
|
+
}>;
|
|
333
|
+
uri: z.ZodString;
|
|
334
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
335
|
+
}, z.core.$strict>>;
|
|
336
|
+
runtime_version: z.ZodNullable<z.ZodString>;
|
|
337
|
+
lab_commit: z.ZodNullable<z.ZodString>;
|
|
338
|
+
model_version: z.ZodNullable<z.ZodString>;
|
|
339
|
+
provider_version: z.ZodNullable<z.ZodString>;
|
|
340
|
+
seat: z.ZodNullable<z.ZodString>;
|
|
341
|
+
host_load: z.ZodNullable<z.ZodNumber>;
|
|
342
|
+
started_at: z.ZodNullable<z.ZodString>;
|
|
343
|
+
operator_steers: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
344
|
+
id: z.ZodString;
|
|
345
|
+
at: z.ZodNullable<z.ZodString>;
|
|
346
|
+
planned: z.ZodNullable<z.ZodBoolean>;
|
|
347
|
+
evidence_ref: z.ZodObject<{
|
|
348
|
+
kind: z.ZodEnum<{
|
|
349
|
+
artifact: "artifact";
|
|
350
|
+
event: "event";
|
|
351
|
+
finding: "finding";
|
|
352
|
+
metric: "metric";
|
|
353
|
+
span: "span";
|
|
354
|
+
}>;
|
|
355
|
+
uri: z.ZodString;
|
|
356
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
357
|
+
}, z.core.$strict>;
|
|
358
|
+
}, z.core.$strict>>>;
|
|
359
|
+
}, z.core.$strict>;
|
|
360
|
+
type FindingTreatment = z.infer<typeof findingTreatmentSchema>;
|
|
361
|
+
type FindingConditions = z.infer<typeof findingConditionsSchema>;
|
|
362
|
+
//#endregion
|
|
290
363
|
//#region src/analyst/finding-scope.d.ts
|
|
291
364
|
/**
|
|
292
365
|
* The layer ladder, lowest first. `problem` is what discovery-lab calls a
|
|
@@ -444,6 +517,71 @@ declare const ProposalFindingSchema: z.ZodObject<{
|
|
|
444
517
|
}>;
|
|
445
518
|
derived_from: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
446
519
|
}, z.core.$strict>>>;
|
|
520
|
+
treatment: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
521
|
+
id: z.ZodString;
|
|
522
|
+
definition_digest: z.ZodString;
|
|
523
|
+
definition_refs: z.ZodArray<z.ZodObject<{
|
|
524
|
+
kind: z.ZodEnum<{
|
|
525
|
+
artifact: "artifact";
|
|
526
|
+
event: "event";
|
|
527
|
+
finding: "finding";
|
|
528
|
+
metric: "metric";
|
|
529
|
+
span: "span";
|
|
530
|
+
}>;
|
|
531
|
+
uri: z.ZodString;
|
|
532
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
533
|
+
}, z.core.$strict>>;
|
|
534
|
+
layers: z.ZodArray<z.ZodEnum<{
|
|
535
|
+
Budget: "Budget";
|
|
536
|
+
Memory: "Memory";
|
|
537
|
+
Model: "Model";
|
|
538
|
+
Oversight: "Oversight";
|
|
539
|
+
Process: "Process";
|
|
540
|
+
Roles: "Roles";
|
|
541
|
+
Task: "Task";
|
|
542
|
+
Team: "Team";
|
|
543
|
+
Tools: "Tools";
|
|
544
|
+
}>>;
|
|
545
|
+
}, z.core.$strict>>>;
|
|
546
|
+
conditions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
547
|
+
id: z.ZodString;
|
|
548
|
+
population: z.ZodArray<z.ZodString>;
|
|
549
|
+
observed_at: z.ZodString;
|
|
550
|
+
evidence_refs: z.ZodArray<z.ZodObject<{
|
|
551
|
+
kind: z.ZodEnum<{
|
|
552
|
+
artifact: "artifact";
|
|
553
|
+
event: "event";
|
|
554
|
+
finding: "finding";
|
|
555
|
+
metric: "metric";
|
|
556
|
+
span: "span";
|
|
557
|
+
}>;
|
|
558
|
+
uri: z.ZodString;
|
|
559
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
560
|
+
}, z.core.$strict>>;
|
|
561
|
+
runtime_version: z.ZodNullable<z.ZodString>;
|
|
562
|
+
lab_commit: z.ZodNullable<z.ZodString>;
|
|
563
|
+
model_version: z.ZodNullable<z.ZodString>;
|
|
564
|
+
provider_version: z.ZodNullable<z.ZodString>;
|
|
565
|
+
seat: z.ZodNullable<z.ZodString>;
|
|
566
|
+
host_load: z.ZodNullable<z.ZodNumber>;
|
|
567
|
+
started_at: z.ZodNullable<z.ZodString>;
|
|
568
|
+
operator_steers: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
569
|
+
id: z.ZodString;
|
|
570
|
+
at: z.ZodNullable<z.ZodString>;
|
|
571
|
+
planned: z.ZodNullable<z.ZodBoolean>;
|
|
572
|
+
evidence_ref: z.ZodObject<{
|
|
573
|
+
kind: z.ZodEnum<{
|
|
574
|
+
artifact: "artifact";
|
|
575
|
+
event: "event";
|
|
576
|
+
finding: "finding";
|
|
577
|
+
metric: "metric";
|
|
578
|
+
span: "span";
|
|
579
|
+
}>;
|
|
580
|
+
uri: z.ZodString;
|
|
581
|
+
excerpt: z.ZodOptional<z.ZodString>;
|
|
582
|
+
}, z.core.$strict>;
|
|
583
|
+
}, z.core.$strict>>>;
|
|
584
|
+
}, z.core.$strict>>>;
|
|
447
585
|
proposal_origin: z.ZodEnum<{
|
|
448
586
|
production: "production";
|
|
449
587
|
search: "search";
|
|
@@ -497,7 +635,7 @@ declare function independentUnitCount(units: ReadonlyArray<FindingEvidenceUnit>)
|
|
|
497
635
|
*
|
|
498
636
|
* 1.1.0 adds what a finding is about and what it was measured on: `layer`,
|
|
499
637
|
* `scope`, `method`, `measure`, `confounders`, `valid_for`, `claim_id` and
|
|
500
|
-
* `evidence_units
|
|
638
|
+
* `evidence_units`, with optional `treatment` and `conditions` composition. They are all optional, and a 1.0.0 finding carries none of
|
|
501
639
|
* them; `readFindingScope` reads such a finding as layer and n unknown.
|
|
502
640
|
* `parseAnalystFinding` (finding-scope.ts) is the one validator for both.
|
|
503
641
|
*/
|
|
@@ -561,6 +699,10 @@ interface AnalystFinding {
|
|
|
561
699
|
* `scope.population` must match them and no unit may sit above `layer`.
|
|
562
700
|
*/
|
|
563
701
|
evidence_units?: FindingEvidenceUnit[];
|
|
702
|
+
/** Deliberately assigned bundles; every bundle may touch several treatment layers. */
|
|
703
|
+
treatment?: FindingTreatment[];
|
|
704
|
+
/** Observed condition snapshots with population and observation-time provenance. */
|
|
705
|
+
conditions?: FindingConditions[];
|
|
564
706
|
}
|
|
565
707
|
/** Every finding schema this package reads. Writers emit 1.1.0 only when a 1.1.0 field is set. */
|
|
566
708
|
declare const ANALYST_FINDING_SCHEMA_VERSIONS: readonly ['1.0.0', '1.1.0'];
|
|
@@ -767,7 +909,9 @@ interface AnalystUsageReceipt {
|
|
|
767
909
|
}
|
|
768
910
|
/**
|
|
769
911
|
* Compute the stable finding_id from the identity-defining fields.
|
|
770
|
-
*
|
|
912
|
+
* Legacy identity hashes {analyst_id, area, subject, normalized claim}. Supplied
|
|
913
|
+
* composition adds normalized treatment/fixed-condition identity; covariate provenance
|
|
914
|
+
* remains on the record without making every observation time a different claim.
|
|
771
915
|
* Analysts that emit findings whose claim text varies per run (timestamps,
|
|
772
916
|
* counts) SHOULD either: (a) pass an explicit `id_basis` to fix the hash,
|
|
773
917
|
* or (b) move the variable part into `rationale`/`metadata` and keep the
|
|
@@ -780,6 +924,8 @@ declare function computeFindingId(input: {
|
|
|
780
924
|
claim: string;
|
|
781
925
|
/** Override the claim for hashing — use when the displayed claim has run-specific bits. */
|
|
782
926
|
id_basis?: string;
|
|
927
|
+
treatment?: FindingTreatment[];
|
|
928
|
+
conditions?: FindingConditions[];
|
|
783
929
|
}): string;
|
|
784
930
|
/**
|
|
785
931
|
* Convenience factory: produce a fully-formed AnalystFinding with the
|
|
@@ -861,5 +1007,5 @@ type AnalystRunEvent = {
|
|
|
861
1007
|
result: AnalystRunResult;
|
|
862
1008
|
};
|
|
863
1009
|
//#endregion
|
|
864
|
-
export {
|
|
865
|
-
//# sourceMappingURL=types-
|
|
1010
|
+
export { QueryTracesPage as $, FindingReaderLabel as A, TREATMENT_LAYERS as B, FINDING_LAYERS as C, FindingMeasure as D, FindingLayer as E, lineageRoots as F, ReadSpanSourceResult as G, createBoundedTraceAnalysisStore as H, parseAnalystFinding as I, TraceAnalysisStore as J, SpanSourceReader as K, readFindingScope as L, FindingScopeReading as M, ProposalFindingSchema as N, FindingMethod as O, independentUnitCount as P, ErrorCluster as Q, FindingConditions as R, makeProposalFinding as S, FindingEvidenceUnit as T, BoundedTraceAnalysisStoreOptions as U, TreatmentLayer as V, ReadSpanSourceInput as W, DEFAULT_TRACE_ANALYST_BUDGETS as X, TraceAnalysisStoreContext as Y, DatasetOverview as Z, ExecutionProbeRequest as _, AnalystFindingSchemaVersion as a, TraceAnalystSpan as at, computeFindingId as b, AnalystRunEvent as c, TraceAnalystTraceSummary as ct, AnalystRunSummary as d, ViewTraceResult as dt, SearchSpanResult as et, AnalystSeverity as f, ExecutionProbeOutcome as g, ExecutionProbe as h, AnalystFinding as i, TraceAnalystFilters as it, FindingScope as j, FindingParseOutcome as k, AnalystRunInputs as l, ViewSpansResult as lt, EvidenceRef as m, AnalystContext as n, SpanMatchRecord as nt, AnalystInputKind as o, TraceAnalystSpanKind as ot, AnalystUsageReceipt as p, TRACE_ANALYSIS_LIMITS as q, AnalystCost as r, TraceAnalystByteBudgets as rt, AnalystRequirements as s, TraceAnalystSpanStatus as st, Analyst as t, SearchTraceResult as tt, AnalystRunResult as u, ViewTraceOversized as ut, ProposalFinding as v, FindingCalibration as w, makeFinding as x, ProposalFindingOrigin as y, FindingTreatment as z };
|
|
1011
|
+
//# sourceMappingURL=types-DGImvHIr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-DGImvHIr.d.ts","names":[],"sources":["../src/trace-analyst/types.ts","../src/trace-analyst/store-contract.ts","../src/trace-analyst/store-boundary.ts","../src/analyst/finding-composition.ts","../src/analyst/finding-scope.ts","../src/analyst/types.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as RunSplitTag } from "./run-record-C3awiXPf.js";
|
|
2
|
-
import { R as Scenario, d as DispatchContext } from "./types-
|
|
2
|
+
import { R as Scenario, d as DispatchContext } from "./types-DDKfH-N6.js";
|
|
3
3
|
//#region src/benchmarks/types.d.ts
|
|
4
4
|
type BenchmarkTaskKind = 'retrieval' | 'rag-answer' | 'hallucination' | 'kb-improvement' | 'routing' | 'custom';
|
|
5
5
|
type BenchmarkFamily = 'beir' | 'mteb-retrieval' | 'msmarco' | 'trec-dl' | 'miracl' | 'lotte' | 'bright' | 'crag' | 'hotpotqa' | 'kilt' | 'ragtruth' | 'faithbench' | 'first-party' | 'custom';
|
|
@@ -99,4 +99,4 @@ declare const BENCHMARK_SPLIT_SEED = "agent-eval-v1";
|
|
|
99
99
|
declare function deterministicSplit(itemId: string, seed?: string): RunSplitTag;
|
|
100
100
|
//#endregion
|
|
101
101
|
export { BenchmarkFamily as a, BenchmarkSource as c, BenchmarkEvaluation as i, BenchmarkTaskKind as l, BenchmarkAdapter as n, BenchmarkResponder as o, BenchmarkDatasetItem as r, BenchmarkScenario as s, BENCHMARK_SPLIT_SEED as t, deterministicSplit as u };
|
|
102
|
-
//# sourceMappingURL=types-
|
|
102
|
+
//# sourceMappingURL=types-IERw_HxR.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-IERw_HxR.d.ts","names":[],"sources":["../src/benchmarks/types.ts"],"mappings":";;;KASY;KAQA;UAgBK,qBAAqB;;;EAGpC;;EAEA,SAAS;;EAET,QAAQ;;EAER,SAAS;;EAET,WAAW;;EAEX;;EAEA,SAAS;EACT,WAAW;;UAGI;;;;EAIf;;EAEA;;EAEA,aAAa;;;EAGb,KAAK;EACL;;UAGe;EACf;EACA;EACA;;EAEA;EACA;EACA;;EAEA;;;;;EAKA;;;UAQe,iBAAiB,kBAAkB,oBAAoB;;EAEtE;EACA,SAAS;EACT,WAAW;EACX;EACA,SAAS;EACT;;;;;EAKA,YAAY,OAAO,cAAc,QAAQ,qBAAqB;;EAE9D,SAAS,MAAM,qBAAqB,WAAW,UAAU,YAAY,QAAQ;;;;EAI7E,YAAY,iBAAiB;;UAGd,kBAAkB,4BAA4B;EAC7D;EACA;EACA,QAAQ;EACR,UAAU;EACV,UAAU;EACV,MAAM,qBAAqB;;KAGjB,mBAAmB,oBAAoB,uBAAuB;EACxE,UAAU,kBAAkB;EAC5B,MAAM,qBAAqB;EAC3B,SAAS;MACL,QAAQ,aAAa;;;cAoBd;;;;;;;;;iBAUG,mBACd,gBACA,gBACC"}
|
package/dist/wire/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { m as CustomTokenPricing, o as CostLedgerHandle } from "../cost-ledger-C1W3ICmP.js";
|
|
2
2
|
import { x as ChatClient } from "../types-eMhdacVp.js";
|
|
3
3
|
import { s as TraceStore } from "../store-B3nWRy3B.js";
|
|
4
|
-
import { m as FeedbackTrajectoryStore } from "../feedback-trajectory-
|
|
4
|
+
import { m as FeedbackTrajectoryStore } from "../feedback-trajectory-BZhVCWuz.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { ServerType } from "@hono/node-server";
|
|
7
7
|
import { Hono } from "hono";
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Bounded behavioral trace questions
|
|
2
|
+
|
|
3
|
+
`behavioralAnalyst` on `@tangle-network/agent-eval/analyst` retains its call-free arithmetic
|
|
4
|
+
pass. Its optional `traceQuestions` field adds explicitly selected event, turn and agent
|
|
5
|
+
windows. Callers supply a model, evaluator, its explicit `ExactExecutionComponentIdentity`, the existing findings ledger and a named,
|
|
6
|
+
versioned window extraction policy. The option refuses excess windows or bytes; it never
|
|
7
|
+
silently samples or truncates input. The default limits and fixed questions live in
|
|
8
|
+
`src/analyst/behavioral-trace-validation.ts` and `behavioral-trace-questions.ts`.
|
|
9
|
+
|
|
10
|
+
Each window includes a nonempty bounded `events` list of `{ id, content, evidenceRefs }`.
|
|
11
|
+
IDs are unique within the window; `unresolved` is reserved. `content` is the sanitized event
|
|
12
|
+
text or JSON actually available to the judge. References must resolve retained immutable
|
|
13
|
+
source artifacts; the caller owns their retention and faithful extraction. The stored content
|
|
14
|
+
digest binds the supplied sanitized event, but does not certify an external artifact's availability.
|
|
15
|
+
The window byte cap covers these events as well as the rest of the window. `maxRequestBytes`
|
|
16
|
+
also bounds the canonical native body, including all questions and retained mapping, before
|
|
17
|
+
any dispatch. Neither cap truncates input.
|
|
18
|
+
|
|
19
|
+
Each window names a source trace in the analyzed store, a subject, source references,
|
|
20
|
+
immutable timestamps and capture limitations. The caller owns extracting and sanitizing
|
|
21
|
+
the actual source content and resolving the references; membership in the trace store
|
|
22
|
+
does not certify that an arbitrary supplied excerpt faithfully represents that trace.
|
|
23
|
+
Native capture gaps stay explicit. Root-stream attempt numbers do not establish turns.
|
|
24
|
+
Selection policy settings belong in `windowPolicy.config`, so changing extraction changes
|
|
25
|
+
calibration identity. Never include labels, rewards, expected outputs or test answers in
|
|
26
|
+
`state`; independent gold travels only to the calibration reader.
|
|
27
|
+
|
|
28
|
+
The fixed battery has nine observations per window, including negative, unsure and
|
|
29
|
+
unavailable answers. Eight semantic questions and eight ancillary supporting-event choices share one native
|
|
30
|
+
SystemOne request via `decisionPoint`, following DomainMatch's finite source-choice pattern.
|
|
31
|
+
Each support choice has the supplied event IDs plus an explicit `unresolved` option. It is
|
|
32
|
+
an independent classification of relevant evidence, not a generated rationale, causal grounding,
|
|
33
|
+
or a guarantee that another answer is justified. Unresolved support does not relabel a semantic
|
|
34
|
+
Yes/No or change its existing alarm eligibility. Ancillary policies are explicitly record-only;
|
|
35
|
+
they have no independent routing authority or calibration certificate.
|
|
36
|
+
|
|
37
|
+
The exact ordered `sourceMap` (window and trace IDs, event IDs, sanitized-content digests and
|
|
38
|
+
references) and its digest live in the persisted decision definition's support-question
|
|
39
|
+
instructions of `evidence.unverified-completion`; other support questions reference that
|
|
40
|
+
map owner and digest rather than copying the map. Replay reconstructs that map from the durable record and returns it in each
|
|
41
|
+
observation's `metadata.behavioral_trace_question.support`, including selected IDs, unresolved,
|
|
42
|
+
unavailable and probabilities. Source event content remains in the supplied state, so retain
|
|
43
|
+
the referenced artifacts to inspect the selected source. State/input digests alone are not
|
|
44
|
+
source retention. Changing IDs, content, references or map order under the same invocation
|
|
45
|
+
conflicts before dispatch. The versioned request contract invalidates old calibration certificates.
|
|
46
|
+
|
|
47
|
+
Exact tool repetition is computed from tool names and canonical arguments
|
|
48
|
+
on distinct physical attempt IDs. Each attempt also requires an explicit `eventId` in the
|
|
49
|
+
window. Computed positive support returns the matching attempts' source event IDs; a computed
|
|
50
|
+
absence or incomplete capture has unresolved support rather than an invented event. Duplicate capture rows are deduplicated; conflicting
|
|
51
|
+
payloads for one attempt are refused. An incomplete tool capture can establish observed
|
|
52
|
+
repetition, but cannot establish its absence. Repetition alone makes no claim about waste.
|
|
53
|
+
The computed observation has no fabricated model identity, probabilities or paid receipt.
|
|
54
|
+
|
|
55
|
+
Decision intents, native records and question observations share the supplied findings
|
|
56
|
+
journal. A repeated analysis with the same run, explicit durable `analysisId`, configuration and windows
|
|
57
|
+
replays without another inference. Changing those inputs under the same invocation is a
|
|
58
|
+
conflict; use a new `analysisId` for an intentional new analysis. Observation times come from the
|
|
59
|
+
source window, so replays do not conflict merely because the wall clock advanced.
|
|
60
|
+
A concurrent reader of an unresolved intent cannot finalize observations. Registry logging correlation IDs may change across restarts without spending again.
|
|
61
|
+
Cancellation and deadlines suppress delivery while retaining paid work and durable records.
|
|
62
|
+
The existing analyst adapter supplies one shared budget and forwards every provider receipt;
|
|
63
|
+
missing usage remains unknown. A replay reports zero new physical calls, not a free model
|
|
64
|
+
receipt for a previous call.
|
|
65
|
+
|
|
66
|
+
## Independent calibration and alarms
|
|
67
|
+
|
|
68
|
+
`calibrateBehavioralTraceQuestions` joins independent `{questionId, windowId, label, source}`
|
|
69
|
+
gold rows to the emitted findings. It returns all nine per-question rows with exact n,
|
|
70
|
+
source counts, missing/unsure labels, missing predictions, abstentions, confusion counts,
|
|
71
|
+
agreement and Cohen's kappa from the existing statistics owner. Its `disagreements` list
|
|
72
|
+
shows every wrong, unsure or missing prediction with the selected event IDs/unresolved and
|
|
73
|
+
complete scoped map; historical findings without captured support return null. It never
|
|
74
|
+
invents pointers for old decisions. Semantic question digests stay independent of the event-ID
|
|
75
|
+
set, so this reader aggregates multiple windows/maps. Generic decision-point `reliability()`
|
|
76
|
+
instead groups the exact definition, which includes the map and can yield one-map samples;
|
|
77
|
+
that output is not a cross-map probability calibration or threshold-tuning claim. Gold unsure/null labels
|
|
78
|
+
are exclusions, never No; missing predictions remain disagreements. Empty and degenerate
|
|
79
|
+
samples have null kappa. A missing prediction or one-class gold set cannot issue a routing
|
|
80
|
+
certificate. The minimum kappa is owned by `DECISION_POINT_MIN_KAPPA` on `/systemone`.
|
|
81
|
+
|
|
82
|
+
The evaluator identity covers transport, normalization, receipt interpretation, pricing and spending policy; it must change when those semantics change. It is captured once and bound in exact execution and calibration identities.
|
|
83
|
+
|
|
84
|
+
Certificates bind the exact question, option order, implementation version, evaluator identity, layer,
|
|
85
|
+
window policy, requested model and served model. Computed certificates bind the extractor
|
|
86
|
+
and policy with a null served model. Store their validation evidence in observation metadata;
|
|
87
|
+
`method.calibration` remains exclusive to judged findings. A label file is evidence only
|
|
88
|
+
for its declared scope: AgentRx root-cause categories are not labels for every question,
|
|
89
|
+
turn or agent, and an absent failure category is not a negative label.
|
|
90
|
+
|
|
91
|
+
Install returned certificates explicitly in `traceQuestions.calibrations` by layer and
|
|
92
|
+
question. Uncalibrated, mismatched, uncertain or failed judgments cannot alarm. A qualifying
|
|
93
|
+
positive recommends only `coordinator-alarm` for reversible investigation. This surface
|
|
94
|
+
has no pass/fail acceptance authority and performs no coordinator action itself.
|
|
95
|
+
Integration fixture labels test wiring only; they are never scientific calibration.
|
|
96
|
+
|
|
97
|
+
Before enabling real alarms, retain independent human/compatible AgentRx labels and the
|
|
98
|
+
per-question report. Diagnostic development anchors are not a sealed holdout or prevalence
|
|
99
|
+
estimate. Keep unseen calibration evidence for judging a changed rubric or extraction policy.
|
package/docs/experiment.md
CHANGED
|
@@ -302,3 +302,30 @@ separation or equivalence. Their numeric point estimates remain `0` for compatib
|
|
|
302
302
|
this is a placeholder, not a measured zero. Retain the trial count with Wilson
|
|
303
303
|
results, and use the returned `n` for paired results, before displaying an estimate.
|
|
304
304
|
Nonempty-sample estimators retain their existing semantics and limitations.
|
|
305
|
+
|
|
306
|
+
### As-assigned and as-formed arm populations
|
|
307
|
+
|
|
308
|
+
Supply `assignments` to the existing `comparePairedArms(rows, options)` reader when the
|
|
309
|
+
expected seed population is known. Each roster entry names `arm`, `pairKey`, optional
|
|
310
|
+
`repKey` and optional treatment array. Build this roster independently of completed run
|
|
311
|
+
records; a roster inferred from successful runs cannot reveal missing assignments.
|
|
312
|
+
|
|
313
|
+
Observation rows retain `pass` and `metrics` independently of their optional
|
|
314
|
+
`formation: { formed, reason? }` verdict. The execution owner defines formation; this
|
|
315
|
+
reader consumes its boolean or explicit null. Null or absent outcomes/metrics are unknown,
|
|
316
|
+
while false and zero are measurements. A team-not-formed record can still have an observed
|
|
317
|
+
acceptance result and cost, and those stay in the as-assigned summary.
|
|
318
|
+
|
|
319
|
+
With a roster, `armPopulations` reports each arm's assignments, missing observations,
|
|
320
|
+
formed/not-formed/unknown counts and both `asAssigned` and `asFormed` summaries. Only an
|
|
321
|
+
explicit true formation verdict enters as-formed. Each summary reports all its units,
|
|
322
|
+
passes, failures, missing outcomes and metric-specific observed/missing denominators.
|
|
323
|
+
`passRate` is null when any outcome is missing; metric sums/means are null when no reading
|
|
324
|
+
exists. This prevents an absent result from becoming a measured failure or zero cost.
|
|
325
|
+
|
|
326
|
+
The same left join supplies matched-pair statistics: missing seeds carry identity-only
|
|
327
|
+
placeholder rows, so pair coverage includes declared seed identities while correctness
|
|
328
|
+
and metric statistics still require actual observations on both sides. Duplicate
|
|
329
|
+
assignments, results outside the roster and corrupt metrics fail loudly. Without a roster,
|
|
330
|
+
the existing observed-pair behavior remains and `armPopulations` is absent: the assignment
|
|
331
|
+
population is unknown, never inferred from completed rows.
|
package/docs/finding-layers.md
CHANGED
|
@@ -65,5 +65,58 @@ Event, turn, agent, team and meta findings are never placed on the ladder.
|
|
|
65
65
|
## Analysts
|
|
66
66
|
|
|
67
67
|
- `team-shape` (computed, `team`) reads a Runtime spawn journal and coordination log: `teamShapeInputFromSources` takes them from `readRuntimeSupervisorRun`, and the same parser reads the structure-only reductions `extract.py` writes. E (command) edges come from the id path (`R:s1:s0` is a child of `R:s1`), G (governance) edges from the journal holding each `settled` row plus each delivered steer's sender, and C (communication) edges from coordination rows naming a receiver, sent by `from`/`by` or else the log owner's digest. Classes, version 1, checked in order: single, governed swarm, fleet, partition, `hive depth N`, star with sub-leads, flat star (`root integrates`, `root does not integrate` or `integration unknown`, from the caller's optional `integrations`). The 50% and 20% thresholds are provisional and carried in `method.version`. Every class check is reported as yes, no or `not observable from this record`; an owner digest is not an agent id, so lateral C and steer governance are usually not observable, and the record never reads them as absent. The four recorded Magnetar runs under `tests/fixtures/team-shape`, with the lead's gold labels, are the acceptance fixtures.
|
|
68
|
-
- `failure-modes` (judged, `agent`, `team` or `run`) asks fixed-choice questions through `systemOneAnalyst`: a MAST-adapted failure mode, delegation-brief completeness and steer handling. `createFailureModesAnalyst` refuses a rubric whose recorded calibration κ is below `FAILURE_MODES_MIN_KAPPA
|
|
68
|
+
- `failure-modes` (judged, `agent`, `team` or `run`) asks fixed-choice questions through `systemOneAnalyst`: a MAST-adapted failure mode, delegation-brief completeness and steer handling. `createFailureModesAnalyst` refuses a rubric whose recorded calibration κ is below the source-owned `FAILURE_MODES_MIN_KAPPA`. `loadFailureModeGold` reads public AgentRx annotations through `loadPublicBenchmarkRows` plus a caller's gold file; `calibrateFailureModes` scores the judge's labels against that gold. The full AgentRx dataset is external; [recorded boundary fixtures](../tests/fixtures/agentrx-actor-boundary/README.md) retain only the cases needed to check admission and historical receipt preservation.
|
|
69
69
|
- `rollup` (computed) pools run findings per play with a lineage-clustered bootstrap, then lets `promote` decide what climbs. Each lifted finding gets the pooled interval over every run beneath it and its observation and cluster counts.
|
|
70
|
+
|
|
71
|
+
### Failure-mode gold admission
|
|
72
|
+
|
|
73
|
+
[`loadFailureModeGold`](../src/analyst/failure-modes.ts) owns AgentRx's projection onto agent/team root-cause labels. It reads the annotated root failure, including its actor; it does not infer an assistant fault from a user's behavior. User-origin underspecification has no counterpart in the agent's `fail-to-ask-for-clarification` label. The source owns the recognized agent roles; unfamiliar or missing actors cannot silently become agents.
|
|
74
|
+
|
|
75
|
+
A successful load reports `eligibility`, `agentRxMapping`, eligible `gold`, and `unmapped` rows. The existing `unmapped` field retains each source id/category and adds its root failure id, step, actor, and a typed reason: `unsupported-root-actor`, `unknown-root-actor`, or `category-without-counterpart`. `agentRxMapping` records the mapping version and `agent-or-team-root-cause` target, or is null for caller-only gold. Consumers must carry that provenance and the actual exclusion reasons into a **new** calibration receipt, rather than treating every exclusion as an unmapped category.
|
|
76
|
+
|
|
77
|
+
An all-excluded, otherwise valid AgentRx file returns `eligibility: 'unknown'`, no gold labels, and the exclusion evidence. That is a parsed source without calibration evidence, not a successful empty calibration or a measured absence of failures. Invalid input still returns a failed outcome. Caller-supplied gold remains the caller's assertion and is not certified as independent by this loader.
|
|
78
|
+
|
|
79
|
+
Caller gold ids must be disjoint from **all** AgentRx source ids, including excluded rows. A caller cannot reintroduce an excluded source id as eligible gold; overlapping ids are invalid. Caller ids with surrounding whitespace are invalid, so whitespace cannot disguise an overlapping source id. Valid caller ids are preserved exactly. Caller-only gold and disjoint caller ids remain supported.
|
|
80
|
+
|
|
81
|
+
Existing receipt rows, source hashes, labels and verdicts are historical evidence. Loading a new mapping never regrades, relabels or filters a stored receipt. A new mapping, selection policy, question or input representation requires a new calibration configuration with its rule fixed before judging.
|
|
82
|
+
|
|
83
|
+
### Calibration and runtime contract
|
|
84
|
+
|
|
85
|
+
The maintained [`FAILURE_MODES_QUESTIONS`](../src/analyst/failure-modes.ts) object is the one question/criteria owner. `createFailureModesAnalyst` currently sends all its questions; calibration of `failure_mode` alone does not qualify the other outputs.
|
|
86
|
+
|
|
87
|
+
| Output | Target and required evidence |
|
|
88
|
+
| --- | --- |
|
|
89
|
+
| `failure_mode` | The causal agent/team failure explaining the observed shortfall, rather than an arbitrary downstream symptom or a user-origin annotation. AgentRx gold targets the annotated root. Inputs need the applicable task/policy, observed actions and tool results, actor identity, and an independently established outcome where available. A user ambiguity alone does not establish an agent's failure to clarify. |
|
|
90
|
+
| `delegation_brief` | The actual delivered briefs and whether they include the goal, constraints, expected output and check; not an inferred brief from child creation. |
|
|
91
|
+
| `steer_handling` | The delivered correction and the agent's subsequent behavior; lack of a correction record is not proof that none arrived. |
|
|
92
|
+
|
|
93
|
+
Before the next calibration, the consuming owner must use this full shared question object on the same declared target and evidence representation as runtime, and report independent gold, paired counts and reliability **per output**. Unknown or missing required observations stay outside the judge's measured population with an explicit reason. `none`, `no-delegation` and `no-steer` are observed classifications, not substitutes for unavailable evidence. Merely requesting all questions does not create independent labels for them.
|
|
94
|
+
|
|
95
|
+
This is the required consumer migration, not a claim that it has shipped: Lab's existing calibration asks only `failure_mode` over public trajectories, while its runtime reads coordination/spawn logs and asks all outputs. Lab owns reconciling those inputs and recording the target, mapping version, selection/exclusions, questions, model/served identity and source hashes in its next receipt. An applicable task/policy may be supplied as observation context; expected benchmark actions/outputs, root annotations, category rationales and other gold must remain outside the judged state. No old receipt is promoted by this source correction.
|
|
96
|
+
|
|
97
|
+
## Treatment and recorded conditions
|
|
98
|
+
|
|
99
|
+
Optional `treatment` and `conditions` arrays on a 1.1.0 finding preserve run composition.
|
|
100
|
+
A treatment is a named bundle with an immutable definition digest, source references and
|
|
101
|
+
all applicable `TREATMENT_LAYERS` tags. These input tags are separate from `FindingLayer`,
|
|
102
|
+
which says how far a claim holds. Arms and findings may carry several bundles.
|
|
103
|
+
|
|
104
|
+
Each conditions snapshot names its measured population, observation time and evidence.
|
|
105
|
+
Runtime/Lab/model/provider versions, seat, host load, start time and operator steers are
|
|
106
|
+
explicit nullable readings. Null means unavailable; an empty observed steer list means
|
|
107
|
+
none were observed. A snapshot ID identifies an immutable record; rollup and promotion reject conflicting content for the same ID anywhere in their input, before grouping. Capture conditions from
|
|
108
|
+
execution evidence; do not ask a judge to invent them or infer formation from an assignment.
|
|
109
|
+
The public types are on `@tangle-network/agent-eval/analyst`.
|
|
110
|
+
|
|
111
|
+
The finding identity includes the treatment definitions and fixed environment conditions
|
|
112
|
+
when composition is supplied. The finding factory normalizes unordered composition arrays, so reordering bundles, layer tags or condition snapshots preserves both identity and ledger replay payload.
|
|
113
|
+
Absent legacy composition and explicitly empty arrays remain distinguishable. Existing
|
|
114
|
+
findings without composition retain their old identity and remain readable.
|
|
115
|
+
|
|
116
|
+
`rollupFindings` and `promote` use the same composition identity for grouping and output
|
|
117
|
+
IDs, including the underlying-run re-pooling after promotion. Different bundles, fixed
|
|
118
|
+
versions, seats or unplanned/unknown steering states do not silently pool. Varying load,
|
|
119
|
+
observation time and source references retain their population-linked provenance without
|
|
120
|
+
splitting an otherwise matching group. Matching recorded conditions do not establish
|
|
121
|
+
that every possible confounder was observed; experiment owners still enforce declared
|
|
122
|
+
factors and interleaving before execution.
|
package/docs/rollout.md
CHANGED
|
@@ -54,6 +54,15 @@ Where each invariant lives:
|
|
|
54
54
|
|
|
55
55
|
## Runtime capture receipts
|
|
56
56
|
|
|
57
|
+
Runtime spawn journals accept historical `event` envelopes and atomic `events` envelopes.
|
|
58
|
+
`readRuntimeSupervisorRun()` and the direct `parseSupervisorTree()` analyzer expand each group in order.
|
|
59
|
+
Every group member must be an object with a non-empty event kind; a malformed group contributes no events.
|
|
60
|
+
The file reader throws on corruption, while the direct analyzer counts the whole group as one invalid input row.
|
|
61
|
+
Empty groups are valid no-ops; the direct analyzer counts them under `journalIgnoredRowsByKind.events`.
|
|
62
|
+
`journalRows` counts non-empty input lines, while event counters count each member of a valid group.
|
|
63
|
+
Grouped resource evidence names its member as `journal.rows[N].events[I]`.
|
|
64
|
+
Flat analyzer journals remain supported, and unknown usage flags are preserved.
|
|
65
|
+
|
|
57
66
|
`readRuntimeSupervisorRun()` reads output references in journal order.
|
|
58
67
|
It reads retained execution results and terminal outputs through the same projector.
|
|
59
68
|
It projects duplicate references to the same node and address once.
|
package/docs/systemone.md
CHANGED
|
@@ -96,6 +96,26 @@ probabilities are not calibrated domain confidence, and a result never authorize
|
|
|
96
96
|
sending, deletion, or another effect. Re-assessing the same prepared input and retained answer is
|
|
97
97
|
an offline replay, not new inference.
|
|
98
98
|
|
|
99
|
+
## Rationale and evidence limits
|
|
100
|
+
|
|
101
|
+
The native request and answer types in [`systemone-protocol.ts`](../src/systemone-protocol.ts)
|
|
102
|
+
declare no free-form rationale, generated evidence URI, or extracted text-span field.
|
|
103
|
+
Instructions asking for an explanation do not establish a supported output contract.
|
|
104
|
+
Do not issue a second explanation call to fill this gap.
|
|
105
|
+
|
|
106
|
+
The same request can include another named `choice` question whose criteria keys are
|
|
107
|
+
caller-supplied evidence IDs, including an explicit unresolved option. DomainMatch already
|
|
108
|
+
uses this pattern for source selection. The answer selects from that finite set; it does
|
|
109
|
+
not establish that the selected source caused or justifies another answer. Persist the
|
|
110
|
+
immutable ID-to-source mapping with the decision (as behavioral trace definitions do), or in
|
|
111
|
+
retained evidence referenced by the invocation's `evidenceRefs`.
|
|
112
|
+
The journal stores state/input digests, so a mapping held only in `state` cannot support
|
|
113
|
+
later inspection. Grounding and calibration require independent checks.
|
|
114
|
+
|
|
115
|
+
Native response extensions may survive parsing into the evaluator's returned raw value.
|
|
116
|
+
That does not promise the provider generates them or that downstream records retain them.
|
|
117
|
+
The declared protocol and each consumer's persistence schema determine what survives.
|
|
118
|
+
|
|
99
119
|
## Providers, rounding and confidence
|
|
100
120
|
|
|
101
121
|
The wire format is the same for every provider; how each reports its numbers is not. A
|
|
@@ -236,3 +256,90 @@ rubric lives in `examples/`, not the generic implementation, and is not a defaul
|
|
|
236
256
|
Protocol: https://docs.typesafe.ai/api
|
|
237
257
|
Clef: https://developers.cloudflare.com/workers-ai/models/clef/
|
|
238
258
|
SDK (optional builders): https://github.com/typesafe-ai/typesafe-sdk-js
|
|
259
|
+
|
|
260
|
+
## Decision points
|
|
261
|
+
|
|
262
|
+
`decisionPoint` from `/systemone` adds durable routing to the evaluator. A point
|
|
263
|
+
serves many `layers`; each invocation names its current layer and consumer.
|
|
264
|
+
The same layer can use many points. Questions use typed choices; policies map
|
|
265
|
+
every option to `act` (with a route), `escalate`, or `record`, with probability
|
|
266
|
+
and margin thresholds per question. These are recommendations; the consumer
|
|
267
|
+
performs and records the actual action. An escalation in any question takes
|
|
268
|
+
precedence over `act`, which takes precedence over `record`.
|
|
269
|
+
|
|
270
|
+
Use this for judgment over unstructured state only when a wrong recommendation
|
|
271
|
+
is cheap and reversible and uncertainty can reach an agent or a human. It never
|
|
272
|
+
grants authority to delete, deploy, merge, retire, lift a stand-down, or override
|
|
273
|
+
an acceptance check. Code continues to read objective facts directly. Sample or
|
|
274
|
+
trigger these calls instead of evaluating every event. Existing DomainMatch
|
|
275
|
+
continues to supply its domain-specific request and assessment; this primitive
|
|
276
|
+
uses the same native evaluator and answer validation, not another model adapter.
|
|
277
|
+
|
|
278
|
+
A policy may drive a route only with independent labeled evidence: positive
|
|
279
|
+
`gold_n`, finite Cohen κ meeting `DECISION_POINT_MIN_KAPPA` (owned in
|
|
280
|
+
[`decision-point.ts`](../src/decision-point.ts)) and `evidenceRefs`.
|
|
281
|
+
`decisionQuestionDigest({ id, version, model, servedModel, name, question })` binds that
|
|
282
|
+
evidence to the authored question, option order and model. Changed served model
|
|
283
|
+
identity, absent/stale calibration, ties and below-threshold answers escalate.
|
|
284
|
+
κ measures label agreement; the joined outcome curve measures probability
|
|
285
|
+
reliability. Do not describe one as proof of the other.
|
|
286
|
+
|
|
287
|
+
Supply `ledger: openFindingsLedger({ path })` from `/analyst` and the existing
|
|
288
|
+
`SystemOneEvaluatorOptions` as `evaluator`. `decide` accepts `runId`,
|
|
289
|
+
`invocationId`, `layer`, `consumer`, `state`, `scope`, `at`, and `evidenceRefs`,
|
|
290
|
+
plus the existing evaluation context for cancellation, spending and receipts.
|
|
291
|
+
Inspect the typed `succeeded` result before reading its `value`.
|
|
292
|
+
|
|
293
|
+
The findings ledger is the sole persistence owner. Every invocation first
|
|
294
|
+
appends a 1.1.0 intent with a unique owner token. Competing callers cannot both
|
|
295
|
+
infer. Completed calls record state/input/definition digests, the policy and
|
|
296
|
+
calibration identity, requested/served model, probabilities, recommendation and
|
|
297
|
+
receipt. Failed or cancelled evaluations record escalation with accounting when
|
|
298
|
+
available. A persistence failure returns a typed error and withholds action.
|
|
299
|
+
Exact `(point id, runId, invocationId)` replay reuses the original result, across
|
|
300
|
+
restart; changed inputs or definitions conflict. The input includes its original
|
|
301
|
+
`at`, so callers retain it. An intent without a result remains explicit and
|
|
302
|
+
escalates; deliberate recovery uses a new invocation id instead of silently
|
|
303
|
+
repeating a possibly paid call. The journal's normal lock/dead-owner rules apply.
|
|
304
|
+
|
|
305
|
+
Decision records persist each named choice and its probabilities, so an explicit
|
|
306
|
+
evidence-ID question uses the same ledger and replay path. They do not automatically
|
|
307
|
+
retain arbitrary native response extensions or convert a selected ID into an `EvidenceRef`.
|
|
308
|
+
The record's `reason` (for example, `uncalibrated`) is a computed policy reason, not a
|
|
309
|
+
model-authored rationale; the receipt records accounting. Each additional routing question
|
|
310
|
+
needs its own policy and calibration, and an uncalibrated routing question escalates the invocation.
|
|
311
|
+
An explicitly `recordOnly: true` policy captures an ancillary choice without routing authority:
|
|
312
|
+
all its options must use `action: 'record'`, and it cannot carry a calibration certificate.
|
|
313
|
+
Its answer has `reason: 'record-only'`; provider failures still escalate. This policy does
|
|
314
|
+
not bypass the calibration or thresholds of another question. Reliability lists these questions
|
|
315
|
+
in `recordOnlyQuestions` and excludes them from outcome completeness and calibration curves;
|
|
316
|
+
a fully labeled decision needs at least one answered routing question.
|
|
317
|
+
|
|
318
|
+
`reliability()` groups the exact `definitionDigest`, including option sets and any retained
|
|
319
|
+
source map. Distinct window maps therefore do not form a cross-window probability curve.
|
|
320
|
+
For behavioral trace questions, use `calibrateBehavioralTraceQuestions` for semantic nominal
|
|
321
|
+
agreement across maps; it binds the stable semantic question digest and reports each disagreement's
|
|
322
|
+
selected event and map. A one-map result does not justify probability threshold tuning.
|
|
323
|
+
|
|
324
|
+
Call `observe({ runId, invocationId, labels, at, evidenceRefs })` later to join
|
|
325
|
+
independently observed option labels to a decision. This is the answer's truth,
|
|
326
|
+
not whether a downstream workflow happened to succeed. Retain the original
|
|
327
|
+
observation timestamp for exact replay. Conflicting labels refuse append.
|
|
328
|
+
`reliability()` reads the same ledger and returns total decisions, labeled and
|
|
329
|
+
missing outcomes, and per-question sample counts, empirical curves and threshold
|
|
330
|
+
accuracy. A curve needs two labels; otherwise it is `null`. Threshold tables are
|
|
331
|
+
development evidence for an explicit policy revision and fresh confirmation,
|
|
332
|
+
not automatic tuning or activation. Failed calls remain in the denominator.
|
|
333
|
+
|
|
334
|
+
Decision findings retain their measured layer and scope. The existing `/analyst`
|
|
335
|
+
`promote` is the only owner for generalizing claims; it does not authorize
|
|
336
|
+
routing and does not lift event/turn findings directly into run-level claims.
|
|
337
|
+
|
|
338
|
+
The data model permits many-to-many associations. The only intentional
|
|
339
|
+
one-to-one rules are one primary measure per hypothesis (to prevent choosing
|
|
340
|
+
a winner after seeing outcomes), with any number of secondary measures, and
|
|
341
|
+
one implementation per code concept (to prevent divergent owners).
|
|
342
|
+
|
|
343
|
+
Decision-point construction validates the complete calibration object, including nonempty structured evidence references, before any inference. Malformed configuration throws; well-formed evidence below the calibration bar still escalates. `observe()` returns a typed `invalid` result for uncloneable, noncanonical or malformed observation data without appending an outcome. A provider identity with surrounding whitespace is rejected as a failed evaluation; its durable escalation replays and remains readable by reliability reporting.
|
|
344
|
+
|
|
345
|
+
The existing behavioral analyst optionally applies bounded [trace questions](behavioral-trace-questions.md) through decision points; exact repeated tool calls stay computed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/agent-eval",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.221.0",
|
|
4
4
|
"description": "Evaluate and improve AI agents from runs, traces, judges, and feedback. Compare candidates, cluster failures, measure lift, and gate releases.",
|
|
5
5
|
"homepage": "https://github.com/tangle-network/agent-eval#readme",
|
|
6
6
|
"repository": {
|