@tangle-network/agent-eval 0.117.0 → 0.118.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.
Files changed (143) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/analyst/index.d.ts +2772 -21
  3. package/dist/analyst/index.js +7 -6
  4. package/dist/analyst/index.js.map +1 -1
  5. package/dist/belief-state/index.d.ts +706 -10
  6. package/dist/belief-state/index.js +2 -1
  7. package/dist/belief-state/index.js.map +1 -1
  8. package/dist/benchmarks/index.d.ts +958 -14
  9. package/dist/benchmarks/index.js +12 -10
  10. package/dist/builder-eval/index.d.ts +449 -4
  11. package/dist/builder-eval/index.js +4 -3
  12. package/dist/builder-eval/index.js.map +1 -1
  13. package/dist/campaign/index.d.ts +4276 -74
  14. package/dist/campaign/index.js +12 -10
  15. package/dist/{chunk-VF3XSYTI.js → chunk-33JA4TFA.js} +6 -6
  16. package/dist/{chunk-4JLWXDYA.js → chunk-3EHHMC6E.js} +2 -2
  17. package/dist/{chunk-CCZIVI3F.js → chunk-BFW56GTT.js} +2 -2
  18. package/dist/{chunk-YZPO4UHR.js → chunk-DP3BBMYJ.js} +100 -143
  19. package/dist/chunk-DP3BBMYJ.js.map +1 -0
  20. package/dist/{chunk-E4BUPP7Z.js → chunk-HKUCJ437.js} +38 -66
  21. package/dist/chunk-HKUCJ437.js.map +1 -0
  22. package/dist/{chunk-HZHNRYHK.js → chunk-K6N6XJJX.js} +2 -2
  23. package/dist/chunk-KSDQVPLR.js +286 -0
  24. package/dist/chunk-KSDQVPLR.js.map +1 -0
  25. package/dist/chunk-MA6HLL3S.js +65 -0
  26. package/dist/chunk-MA6HLL3S.js.map +1 -0
  27. package/dist/{chunk-MGEHEHSN.js → chunk-OIIMMLRB.js} +11 -11
  28. package/dist/{chunk-DXZRATT5.js → chunk-OYZAPX5G.js} +3 -3
  29. package/dist/chunk-PXE2VKMX.js +140 -0
  30. package/dist/chunk-PXE2VKMX.js.map +1 -0
  31. package/dist/{chunk-ZUXV7UWZ.js → chunk-Q442S5AS.js} +73 -19
  32. package/dist/{chunk-ZUXV7UWZ.js.map → chunk-Q442S5AS.js.map} +1 -1
  33. package/dist/{chunk-ODVOOEWQ.js → chunk-QBRSJK47.js} +2 -2
  34. package/dist/{chunk-S2F4J57L.js → chunk-QKEGNI5B.js} +77 -32
  35. package/dist/chunk-QKEGNI5B.js.map +1 -0
  36. package/dist/{chunk-5UF54T55.js → chunk-S3UZOQ5Y.js} +34 -7
  37. package/dist/chunk-S3UZOQ5Y.js.map +1 -0
  38. package/dist/{chunk-FQNLDL4D.js → chunk-SVH2ANFD.js} +136 -4
  39. package/dist/chunk-SVH2ANFD.js.map +1 -0
  40. package/dist/{chunk-GQCZRZ7L.js → chunk-U5CHZ5M3.js} +9 -9
  41. package/dist/{chunk-TVVP3ZZQ.js → chunk-VQMK5FMP.js} +2 -1
  42. package/dist/{chunk-TVVP3ZZQ.js.map → chunk-VQMK5FMP.js.map} +1 -1
  43. package/dist/chunk-WDHBCA3M.js +31 -0
  44. package/dist/chunk-WDHBCA3M.js.map +1 -0
  45. package/dist/{chunk-HQPHZGL6.js → chunk-YLMUS4MM.js} +9 -9
  46. package/dist/{chunk-LQUTGLOZ.js → chunk-ZET2UAYW.js} +15 -65
  47. package/dist/chunk-ZET2UAYW.js.map +1 -0
  48. package/dist/contract/index.d.ts +4012 -38
  49. package/dist/contract/index.js +56 -29
  50. package/dist/contract/index.js.map +1 -1
  51. package/dist/control.d.ts +1013 -9
  52. package/dist/control.js +4 -3
  53. package/dist/fuzz.d.ts +194 -4
  54. package/dist/fuzz.js +3 -3
  55. package/dist/hosted/index.d.ts +498 -17
  56. package/dist/index.d.ts +10982 -1286
  57. package/dist/index.js +97 -80
  58. package/dist/index.js.map +1 -1
  59. package/dist/matrix/index.d.ts +139 -4
  60. package/dist/meta-eval/index.d.ts +862 -15
  61. package/dist/meta-eval/index.js +2 -1
  62. package/dist/meta-eval/index.js.map +1 -1
  63. package/dist/multishot/index.d.ts +214 -14
  64. package/dist/openapi.json +1 -1
  65. package/dist/pipelines/index.d.ts +392 -7
  66. package/dist/pipelines/index.js +5 -3
  67. package/dist/pipelines/index.js.map +1 -1
  68. package/dist/reporting.d.ts +1277 -17
  69. package/dist/rl.d.ts +2359 -28
  70. package/dist/rl.js +6 -5
  71. package/dist/rl.js.map +1 -1
  72. package/dist/storyboard/index.d.ts +86 -1
  73. package/dist/trace-attributes.d.ts +16 -0
  74. package/dist/trace-attributes.js +32 -0
  75. package/dist/trace-attributes.js.map +1 -0
  76. package/dist/traces.d.ts +1970 -697
  77. package/dist/traces.js +49 -32
  78. package/dist/wire/index.d.ts +655 -9
  79. package/docs/insight-report.md +44 -0
  80. package/package.json +9 -3
  81. package/dist/adversarial-B7loGVVX.d.ts +0 -19
  82. package/dist/analyst-C8HHvfJp.d.ts +0 -88
  83. package/dist/analyze-runs--2x39HZ7.d.ts +0 -81
  84. package/dist/baseline-DKq3gJpP.d.ts +0 -141
  85. package/dist/calibration-C8MTS7cw.d.ts +0 -101
  86. package/dist/chunk-5UF54T55.js.map +0 -1
  87. package/dist/chunk-E4BUPP7Z.js.map +0 -1
  88. package/dist/chunk-FQNLDL4D.js.map +0 -1
  89. package/dist/chunk-LQUTGLOZ.js.map +0 -1
  90. package/dist/chunk-S2F4J57L.js.map +0 -1
  91. package/dist/chunk-YZPO4UHR.js.map +0 -1
  92. package/dist/code-agent-session-CjZsVd19.d.ts +0 -87
  93. package/dist/control-6vuGfmDH.d.ts +0 -258
  94. package/dist/cost-ledger-DWy3XdJc.d.ts +0 -183
  95. package/dist/dataset-NENEzRgk.d.ts +0 -115
  96. package/dist/default-registry-DaK8b3fv.d.ts +0 -155
  97. package/dist/emitter-CjD7vUwv.d.ts +0 -122
  98. package/dist/errors-oeQrLqXC.d.ts +0 -74
  99. package/dist/failure-cluster-DOAcSJ87.d.ts +0 -76
  100. package/dist/feedback-trajectory-BUnM58xL.d.ts +0 -348
  101. package/dist/gepa-eESocoDi.d.ts +0 -642
  102. package/dist/index-PdX4VnPA.d.ts +0 -423
  103. package/dist/insight-report-DY4nDW9Q.d.ts +0 -310
  104. package/dist/integrity-DqlBiLyK.d.ts +0 -81
  105. package/dist/judge-calibration-7C-IDmKr.d.ts +0 -145
  106. package/dist/kind-factory-ClZmO25A.d.ts +0 -171
  107. package/dist/llm-client-qoDd18Qz.d.ts +0 -289
  108. package/dist/multi-layer-verifier-BsqKuLyN.d.ts +0 -150
  109. package/dist/off-policy-DiwuKKg7.d.ts +0 -132
  110. package/dist/outcome-store-rnXLEqSn.d.ts +0 -63
  111. package/dist/policy-edit-wG9uFEFm.d.ts +0 -455
  112. package/dist/pre-registration-BWQhJ3vz.d.ts +0 -761
  113. package/dist/provenance-DpjwyseI.d.ts +0 -541
  114. package/dist/query-CF7PG61p.d.ts +0 -35
  115. package/dist/raw-provider-sink-C46HDghv.d.ts +0 -132
  116. package/dist/release-report-C8G2i5Xi.d.ts +0 -236
  117. package/dist/researcher-C8XyxQsu.d.ts +0 -387
  118. package/dist/rubric-predictive-validity-p49lLVrE.d.ts +0 -105
  119. package/dist/run-record-BDH49H2E.d.ts +0 -360
  120. package/dist/runtime-trajectory-DGBIUt4B.d.ts +0 -49
  121. package/dist/schema-B3Q3l9Z_.d.ts +0 -201
  122. package/dist/semantic-concept-judge-CXnPEJbf.d.ts +0 -723
  123. package/dist/sequential-5iSVfzl2.d.ts +0 -139
  124. package/dist/series-convergence-D5OWMBg6.d.ts +0 -33
  125. package/dist/statistics-KUnG73jH.d.ts +0 -494
  126. package/dist/storage-DrX3v_5B.d.ts +0 -50
  127. package/dist/store-C1YxJDEK.d.ts +0 -248
  128. package/dist/store-DGqD0Pyo.d.ts +0 -116
  129. package/dist/summary-report-C5bKFfm-.d.ts +0 -445
  130. package/dist/test-graded-scenario-B0ybnPY7.d.ts +0 -166
  131. package/dist/types-BSw1rOUB.d.ts +0 -634
  132. package/dist/types-BUxNaJ8c.d.ts +0 -108
  133. package/dist/types-BkfcQnxV.d.ts +0 -313
  134. package/dist/verdict-C9MlYujm.d.ts +0 -35
  135. /package/dist/{chunk-VF3XSYTI.js.map → chunk-33JA4TFA.js.map} +0 -0
  136. /package/dist/{chunk-4JLWXDYA.js.map → chunk-3EHHMC6E.js.map} +0 -0
  137. /package/dist/{chunk-CCZIVI3F.js.map → chunk-BFW56GTT.js.map} +0 -0
  138. /package/dist/{chunk-HZHNRYHK.js.map → chunk-K6N6XJJX.js.map} +0 -0
  139. /package/dist/{chunk-MGEHEHSN.js.map → chunk-OIIMMLRB.js.map} +0 -0
  140. /package/dist/{chunk-DXZRATT5.js.map → chunk-OYZAPX5G.js.map} +0 -0
  141. /package/dist/{chunk-ODVOOEWQ.js.map → chunk-QBRSJK47.js.map} +0 -0
  142. /package/dist/{chunk-GQCZRZ7L.js.map → chunk-U5CHZ5M3.js.map} +0 -0
  143. /package/dist/{chunk-HQPHZGL6.js.map → chunk-YLMUS4MM.js.map} +0 -0
@@ -1,108 +0,0 @@
1
- import { D as DefaultVerdict } from './verdict-C9MlYujm.js';
2
-
3
- /**
4
- * N-axis cartesian matrix over substrate types — types module.
5
- *
6
- * The matrix is a runner + aggregator. It iterates the cartesian product of
7
- * caller-provided axes (any value type — `AgentProfile` from agent-interface,
8
- * `Driver` / `Validator` from agent-runtime, rubric records, thinking levels, anything)
9
- * and aggregates per-axis pass/score/cost summaries. Substrate types are
10
- * imported at the boundary by JSDoc only; the matrix never wraps them.
11
- */
12
-
13
- /** One axis = one dimension to iterate. `V` is the value type — pass any
14
- * substrate type (AgentProfile, Driver, Validator, rubric record). */
15
- interface MatrixAxis<V> {
16
- /** Axis name. Becomes the key in `MatrixResult.byAxis`. */
17
- name: string;
18
- /** Stable id per value. Used as the bucket key in aggregation. */
19
- values: Array<{
20
- id: string;
21
- value: V;
22
- }>;
23
- /** Optional bucket label override. Receives the same `(value, id)` the
24
- * runner stored on the cell; default label is `id`. */
25
- label?: (value: V, id: string) => string;
26
- }
27
- /** A cell carries one picked value from each axis, keyed by axis name. */
28
- interface MatrixCell {
29
- axes: Record<string, {
30
- id: string;
31
- value: unknown;
32
- }>;
33
- /** 0-based replicate index within the same axis combination. */
34
- rep: number;
35
- /** Stable sort key — preserves cartesian order across concurrent execution. */
36
- ordinal: number;
37
- }
38
- interface CellResult<Output> {
39
- output: Output;
40
- verdict: DefaultVerdict;
41
- costUsd: number;
42
- durationMs: number;
43
- runId?: string;
44
- /** Populated when `runCell` threw. The cell contributes 0 to passRate AND
45
- * meanScore regardless of `verdict`. */
46
- error?: {
47
- message: string;
48
- kind: string;
49
- };
50
- }
51
- interface AxisSummary {
52
- axisName: string;
53
- axisValue: string;
54
- cells: number;
55
- passRate: number;
56
- meanScore: number;
57
- p50Score: number;
58
- p90Score: number;
59
- totalCostUsd: number;
60
- meanDurationMs: number;
61
- }
62
- interface MatrixResult<Output> {
63
- cells: Array<{
64
- cell: MatrixCell;
65
- runs: CellResult<Output>[];
66
- }>;
67
- /** `byAxis[axisName][axisValueId] = summary`. Populated only for axes
68
- * named in `aggregateBy` (default = every axis in `axes`). */
69
- byAxis: Record<string, Record<string, AxisSummary>>;
70
- summary: {
71
- totalCells: number;
72
- runsExecuted: number;
73
- /** Cells removed by `filter` plus cells unscheduled after the cost
74
- * ceiling or abort signal tripped. */
75
- cellsSkipped: number;
76
- overallPassRate: number;
77
- overallMeanScore: number;
78
- totalCostUsd: number;
79
- durationMs: number;
80
- };
81
- /** Stable id-like string generated at the end of the run. */
82
- matrixId: string;
83
- }
84
- interface RunAgentMatrixOptions<Output> {
85
- axes: MatrixAxis<unknown>[];
86
- /** User-supplied cell executor. May throw; the matrix captures throws as
87
- * `CellResult.error` and continues. */
88
- runCell: (cell: MatrixCell) => Promise<CellResult<Output>>;
89
- /** Replicates per cell. Default 1. */
90
- reps?: number;
91
- /** Prune cells from the cartesian BEFORE rep expansion. */
92
- filter?: (cell: Omit<MatrixCell, 'rep' | 'ordinal'>) => boolean;
93
- /** Axes to aggregate into `byAxis`. Default: every axis in `axes`. */
94
- aggregateBy?: string[];
95
- /** Max concurrent in-flight `runCell` invocations. Default 4. */
96
- maxConcurrency?: number;
97
- /** Cumulative-cost abort threshold (USD). When the running sum of
98
- * `result.costUsd` crosses this value, no new cells are scheduled.
99
- * In-flight cells finish. Default `Infinity`. */
100
- costCeiling?: number;
101
- /** Fires once per executed cell, after its promise settles. */
102
- onCellComplete?: (cell: MatrixCell, result: CellResult<Output>) => void;
103
- /** External cancellation. Aborts in-flight cells via a forwarded signal
104
- * and suppresses scheduling of new ones. */
105
- signal?: AbortSignal;
106
- }
107
-
108
- export type { AxisSummary as A, CellResult as C, MatrixResult as M, RunAgentMatrixOptions as R, MatrixAxis as a, MatrixCell as b };
@@ -1,313 +0,0 @@
1
- import { C as CostLedger, b as CostLedgerSummary } from './cost-ledger-DWy3XdJc.js';
2
- import { TCloud } from '@tangle-network/tcloud';
3
-
4
- interface Scenario {
5
- id: string;
6
- persona: string;
7
- label: string;
8
- thesis: string;
9
- dimensions: string[];
10
- turns: Turn[];
11
- artifactChecks: ArtifactCheck[];
12
- systemPromptAppend?: string;
13
- }
14
- interface Turn {
15
- user: string;
16
- expectedBehaviors: string[];
17
- adversarial?: boolean;
18
- feedbackType?: 'correction' | 'rejection' | 'vague' | 'contradictory' | 'escalation';
19
- }
20
- interface ArtifactCheck {
21
- type: 'vault_file_exists' | 'vault_file_contains' | 'block_extracted' | 'code_valid' | 'generation_produced' | 'tool_created' | string;
22
- target: string;
23
- contains?: string;
24
- minCount?: number;
25
- description: string;
26
- }
27
- interface JudgeConfig {
28
- model: string;
29
- temperature: number;
30
- rubric: JudgeRubric;
31
- }
32
- interface JudgeRubric {
33
- name: string;
34
- description: string;
35
- dimensions: RubricDimension[];
36
- }
37
- interface RubricDimension {
38
- name: string;
39
- description: string;
40
- anchor_low: string;
41
- anchor_high: string;
42
- weight: number;
43
- }
44
- interface ScenarioResult {
45
- scenarioId: string;
46
- persona: string;
47
- turns: TurnResult[];
48
- artifactResults: ArtifactResult[];
49
- judgeScores: JudgeScore[];
50
- judgeErrors: number;
51
- overallScore: number;
52
- totalDurationMs: number;
53
- artifacts: CollectedArtifacts;
54
- /** Agent and judge spend attributed to this scenario. */
55
- cost?: CostLedgerSummary;
56
- }
57
- interface TurnResult {
58
- turnIndex: number;
59
- userMessage: string;
60
- agentResponse: string;
61
- durationMs: number;
62
- blocksExtracted: {
63
- type: string;
64
- title: string;
65
- }[];
66
- containsCode: boolean;
67
- containsToolCall: boolean;
68
- }
69
- interface ArtifactResult {
70
- check: ArtifactCheck;
71
- passed: boolean;
72
- detail?: string;
73
- }
74
- interface JudgeScore {
75
- judgeName: string;
76
- dimension: string;
77
- score: number;
78
- reasoning: string;
79
- evidence?: string;
80
- }
81
- interface CollectedArtifacts {
82
- vaultFiles: {
83
- path: string;
84
- content: string;
85
- }[];
86
- blocksExtracted: {
87
- type: string;
88
- fields: Record<string, string>;
89
- }[];
90
- codeBlocks: {
91
- language: string;
92
- code: string;
93
- }[];
94
- toolCalls: string[];
95
- }
96
- interface BenchmarkReport {
97
- timestamp: string;
98
- generation: number;
99
- promptVersion: string;
100
- scenarioCount: number;
101
- results: ScenarioResult[];
102
- cost?: CostLedgerSummary;
103
- summary: {
104
- overallAvg: number;
105
- byPersona: Record<string, {
106
- avg: number;
107
- passed: number;
108
- total: number;
109
- }>;
110
- byDimension: Record<string, {
111
- avg: number;
112
- scores: number[];
113
- }>;
114
- weakest: {
115
- scenario: string;
116
- score: number;
117
- reason: string;
118
- }[];
119
- strongest: {
120
- scenario: string;
121
- score: number;
122
- reason: string;
123
- }[];
124
- };
125
- }
126
- interface RouteMap {
127
- signup?: string;
128
- login?: string;
129
- workspaces?: string;
130
- threads?: string;
131
- chat?: string;
132
- tasks?: string;
133
- events?: string;
134
- approvals?: string;
135
- vault?: string;
136
- generations?: string;
137
- [key: string]: string | undefined;
138
- }
139
- interface ProductClientConfig {
140
- baseUrl: string;
141
- routes: RouteMap;
142
- /** Per-request timeout in ms before the request is aborted. Default 30s. */
143
- timeoutMs?: number;
144
- }
145
- interface ScenarioFile {
146
- id: string;
147
- category: string;
148
- persona: string;
149
- label: string;
150
- thesis: string;
151
- isControl?: boolean;
152
- rubric?: {
153
- dimensions: {
154
- name: string;
155
- description: string;
156
- weight: number;
157
- }[];
158
- };
159
- turns: Turn[];
160
- artifactChecks: ArtifactCheck[];
161
- }
162
- interface CompletionCriterion {
163
- name: string;
164
- check: (state: DriverState) => boolean;
165
- progress?: (state: DriverState) => number;
166
- }
167
- interface FeedbackPattern {
168
- trigger: string;
169
- response: string;
170
- }
171
- /**
172
- * How hard the simulated user pushes back. The driver LLM scales its tone
173
- * and follow-up aggression to this:
174
- * cooperative — forgiving early adopter; accepts reasonable answers.
175
- * demanding — experienced professional; rejects vague or hedged answers.
176
- * relentless — senior partner reviewing for a client who will litigate;
177
- * interrogates every claim, accepts nothing undefended.
178
- */
179
- type PersonaRigor = 'cooperative' | 'demanding' | 'relentless';
180
- interface PersonaConfig {
181
- id: string;
182
- role: string;
183
- goal: string;
184
- completionCriteria: CompletionCriterion[];
185
- feedbackPatterns?: FeedbackPattern[];
186
- maxTurns: number;
187
- driverModel?: string;
188
- /** How adversarial the simulated user is. Defaults to 'demanding'. */
189
- rigor?: PersonaRigor;
190
- /**
191
- * Domain expertise the simulated user holds — quoted into the driver
192
- * prompt so it challenges the agent with authority instead of vague
193
- * dissatisfaction. e.g. "a 15-year M&A partner who knows GAAP
194
- * working-capital mechanics cold".
195
- */
196
- expertise?: string;
197
- /**
198
- * Substantive issues a senior professional in this role would
199
- * interrogate — traps the scenario hides, claims that must be defended.
200
- * The driver probes these without revealing them verbatim; the agent
201
- * must surface them on its own.
202
- */
203
- pressurePoints?: string[];
204
- /**
205
- * Curveballs the driver may inject once the agent is coasting — changed
206
- * facts, a hostile counterparty position, a new constraint. Forces the
207
- * agent to re-derive rather than recite.
208
- */
209
- curveballs?: string[];
210
- }
211
- interface DriverState {
212
- tasks: number;
213
- events: number;
214
- proposals: {
215
- pending: number;
216
- approved: number;
217
- rejected: number;
218
- };
219
- vaultFiles: string[];
220
- codeBlocks: number;
221
- generations: number;
222
- }
223
- interface TurnMetrics {
224
- turn: number;
225
- timestamp: string;
226
- tasks: number;
227
- events: number;
228
- proposals: {
229
- pending: number;
230
- approved: number;
231
- rejected: number;
232
- };
233
- vaultFiles: number;
234
- responseLatencyMs: number;
235
- responseChars: number;
236
- codeBlocksProduced: number;
237
- blocksExtracted: number;
238
- qualityScore?: number;
239
- inputTokens: number;
240
- outputTokens: number;
241
- estimatedCostUsd: number;
242
- totalCostUsd: number;
243
- completionPercent: number;
244
- }
245
- interface DriverResult {
246
- personaId: string;
247
- /** True when the simulated user professionally signed off (driver said DONE). */
248
- completed: boolean;
249
- /** Turn at which the simulated user signed off, or null if it never did. */
250
- turnsToCompletion: number | null;
251
- /**
252
- * Turn at which nominal completionCriteria were first all met, or null.
253
- * Distinct from turnsToCompletion: criteria can be met while the
254
- * simulated professional is still unsatisfied with the work's rigor.
255
- */
256
- criteriaMetAtTurn: number | null;
257
- totalTurns: number;
258
- metrics: TurnMetrics[];
259
- finalState: DriverState;
260
- convergenceCurve: number[];
261
- totalCostUsd: number;
262
- finalQualityScore: number | null;
263
- }
264
- interface BenchmarkRunnerConfig {
265
- scenarios: Scenario[];
266
- judges: JudgeFn[];
267
- systemPrompt: string;
268
- model?: string;
269
- judgeModel?: string;
270
- passThreshold?: number;
271
- generation?: number;
272
- promptVersion?: string;
273
- /** Shared ledger for agent and judge calls made by the benchmark. */
274
- costLedger?: CostLedger;
275
- /** Exact maximum provider attempts configured on the supplied TCloud client. */
276
- tcloudMaximumAttempts?: number;
277
- }
278
- interface JudgeInput {
279
- scenario: Scenario;
280
- turns: TurnResult[];
281
- artifacts: CollectedArtifacts;
282
- /** Shared ledger for paid built-in judges. Direct calls default to an uncapped ledger. */
283
- costLedger?: CostLedger;
284
- costPhase?: string;
285
- costTags?: Record<string, string>;
286
- signal?: AbortSignal;
287
- /** Exact maximum provider attempts configured on the supplied TCloud client. */
288
- tcloudMaximumAttempts?: number;
289
- }
290
- type JudgeFn = (tc: TCloud, input: JudgeInput) => Promise<JudgeScore[]>;
291
-
292
- interface TestResult {
293
- name: string;
294
- passed: boolean;
295
- duration: number;
296
- detail?: string;
297
- checks: CheckResult[];
298
- }
299
- interface CheckResult {
300
- name: string;
301
- passed: boolean;
302
- expected: string;
303
- actual: string;
304
- }
305
- interface EvalResult {
306
- scenario: string;
307
- status: 'pass' | 'fail' | 'skip';
308
- duration: number;
309
- detail?: string;
310
- artifact?: string;
311
- }
312
-
313
- export type { ArtifactCheck as A, BenchmarkRunnerConfig as B, CheckResult as C, DriverResult as D, EvalResult as E, FeedbackPattern as F, JudgeScore as J, ProductClientConfig as P, RouteMap as R, Scenario as S, TestResult as T, JudgeInput as a, JudgeFn as b, BenchmarkReport as c, PersonaConfig as d, DriverState as e, CollectedArtifacts as f, ScenarioResult as g, TurnMetrics as h, ScenarioFile as i, CompletionCriterion as j, ArtifactResult as k, JudgeConfig as l, JudgeRubric as m, PersonaRigor as n, RubricDimension as o, Turn as p, TurnResult as q };
@@ -1,35 +0,0 @@
1
- /**
2
- * Validator-output verdict — substrate primitive for "did this output pass,
3
- * and how well?"
4
- *
5
- * Used by:
6
- * - `@tangle-network/agent-eval/matrix` — verdict per cell in the cartesian.
7
- * - `@tangle-network/agent-runtime` — Validator<Output, Verdict = DefaultVerdict>.
8
- * Runtime keeps `Validator` because it's coupled to runtime-shaped
9
- * `ValidationCtx` (iteration, signal, traceEmitter); the verdict TYPE
10
- * itself is a substrate concept and lives here.
11
- *
12
- * Repo layering: agent-eval is the substrate (no upward deps). Both
13
- * agent-runtime and agent-knowledge consume this type FROM agent-eval —
14
- * never the other way around. See CLAUDE.md "Repo layering" for the rule.
15
- */
16
- /**
17
- * Minimal verdict shape — `valid` + `score` are required; `scores` +
18
- * `notes` are optional surface. Validators that need richer shapes
19
- * parameterise `Validator<Output, MyVerdict>` with their own type.
20
- *
21
- * Need structured extras? Extend DefaultVerdict with typed fields — never
22
- * serialize extras into `notes`.
23
- */
24
- interface DefaultVerdict {
25
- /** Whether the output meets the validator's pass criteria. */
26
- valid: boolean;
27
- /** Aggregate score in [0, 1]. Drivers use this for winner selection. */
28
- score: number;
29
- /** Per-dimension scores. Free-form; weighted into `score` by the validator. */
30
- scores?: Record<string, number>;
31
- /** Human-readable rationale; surfaces in trace + final-result `winner.verdict`. */
32
- notes?: string;
33
- }
34
-
35
- export type { DefaultVerdict as D };