@tangle-network/agent-eval 0.117.1 → 0.118.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/analyst/index.d.ts +2772 -21
- package/dist/analyst/index.js +7 -6
- package/dist/analyst/index.js.map +1 -1
- package/dist/belief-state/index.d.ts +706 -10
- package/dist/belief-state/index.js +2 -1
- package/dist/belief-state/index.js.map +1 -1
- package/dist/benchmarks/index.d.ts +958 -14
- package/dist/benchmarks/index.js +12 -10
- package/dist/builder-eval/index.d.ts +449 -4
- package/dist/builder-eval/index.js +4 -3
- package/dist/builder-eval/index.js.map +1 -1
- package/dist/campaign/index.d.ts +4275 -73
- package/dist/campaign/index.js +12 -10
- package/dist/{chunk-VF3XSYTI.js → chunk-33JA4TFA.js} +6 -6
- package/dist/{chunk-4JLWXDYA.js → chunk-3EHHMC6E.js} +2 -2
- package/dist/{chunk-CCZIVI3F.js → chunk-BFW56GTT.js} +2 -2
- package/dist/{chunk-YZPO4UHR.js → chunk-FTUMG2U7.js} +124 -149
- package/dist/chunk-FTUMG2U7.js.map +1 -0
- package/dist/{chunk-E4BUPP7Z.js → chunk-HKUCJ437.js} +38 -66
- package/dist/chunk-HKUCJ437.js.map +1 -0
- package/dist/{chunk-HZHNRYHK.js → chunk-K6N6XJJX.js} +2 -2
- package/dist/chunk-KSDQVPLR.js +286 -0
- package/dist/chunk-KSDQVPLR.js.map +1 -0
- package/dist/chunk-MA6HLL3S.js +65 -0
- package/dist/chunk-MA6HLL3S.js.map +1 -0
- package/dist/{chunk-MGEHEHSN.js → chunk-OIIMMLRB.js} +11 -11
- package/dist/{chunk-DXZRATT5.js → chunk-OYZAPX5G.js} +3 -3
- package/dist/chunk-PXE2VKMX.js +140 -0
- package/dist/chunk-PXE2VKMX.js.map +1 -0
- package/dist/{chunk-JSJZ4PJ6.js → chunk-Q442S5AS.js} +17 -17
- package/dist/{chunk-ODVOOEWQ.js → chunk-QBRSJK47.js} +2 -2
- package/dist/{chunk-S2F4J57L.js → chunk-QKEGNI5B.js} +77 -32
- package/dist/chunk-QKEGNI5B.js.map +1 -0
- package/dist/{chunk-5UF54T55.js → chunk-S3UZOQ5Y.js} +34 -7
- package/dist/chunk-S3UZOQ5Y.js.map +1 -0
- package/dist/{chunk-FQNLDL4D.js → chunk-SVH2ANFD.js} +136 -4
- package/dist/chunk-SVH2ANFD.js.map +1 -0
- package/dist/{chunk-GQCZRZ7L.js → chunk-U5CHZ5M3.js} +9 -9
- package/dist/{chunk-TVVP3ZZQ.js → chunk-VQMK5FMP.js} +2 -1
- package/dist/{chunk-TVVP3ZZQ.js.map → chunk-VQMK5FMP.js.map} +1 -1
- package/dist/chunk-WDHBCA3M.js +31 -0
- package/dist/chunk-WDHBCA3M.js.map +1 -0
- package/dist/{chunk-HQPHZGL6.js → chunk-YLMUS4MM.js} +9 -9
- package/dist/{chunk-LQUTGLOZ.js → chunk-ZET2UAYW.js} +15 -65
- package/dist/chunk-ZET2UAYW.js.map +1 -0
- package/dist/contract/index.d.ts +4012 -38
- package/dist/contract/index.js +56 -29
- package/dist/contract/index.js.map +1 -1
- package/dist/control.d.ts +1013 -9
- package/dist/control.js +4 -3
- package/dist/fuzz.d.ts +194 -4
- package/dist/fuzz.js +3 -3
- package/dist/hosted/index.d.ts +498 -17
- package/dist/index.d.ts +10992 -1288
- package/dist/index.js +101 -80
- package/dist/index.js.map +1 -1
- package/dist/matrix/index.d.ts +139 -4
- package/dist/meta-eval/index.d.ts +862 -15
- package/dist/meta-eval/index.js +2 -1
- package/dist/meta-eval/index.js.map +1 -1
- package/dist/multishot/index.d.ts +214 -14
- package/dist/openapi.json +1 -1
- package/dist/pipelines/index.d.ts +392 -7
- package/dist/pipelines/index.js +5 -3
- package/dist/pipelines/index.js.map +1 -1
- package/dist/reporting.d.ts +1277 -17
- package/dist/rl.d.ts +2359 -28
- package/dist/rl.js +6 -5
- package/dist/rl.js.map +1 -1
- package/dist/storyboard/index.d.ts +86 -1
- package/dist/trace-attributes.d.ts +16 -0
- package/dist/trace-attributes.js +32 -0
- package/dist/trace-attributes.js.map +1 -0
- package/dist/traces.d.ts +1978 -697
- package/dist/traces.js +53 -32
- package/dist/wire/index.d.ts +655 -9
- package/docs/insight-report.md +44 -0
- package/package.json +9 -3
- package/dist/adversarial-B7loGVVX.d.ts +0 -19
- package/dist/analyst-C8HHvfJp.d.ts +0 -88
- package/dist/analyze-runs--2x39HZ7.d.ts +0 -81
- package/dist/baseline-DKq3gJpP.d.ts +0 -141
- package/dist/calibration-C8MTS7cw.d.ts +0 -101
- package/dist/chunk-5UF54T55.js.map +0 -1
- package/dist/chunk-E4BUPP7Z.js.map +0 -1
- package/dist/chunk-FQNLDL4D.js.map +0 -1
- package/dist/chunk-LQUTGLOZ.js.map +0 -1
- package/dist/chunk-S2F4J57L.js.map +0 -1
- package/dist/chunk-YZPO4UHR.js.map +0 -1
- package/dist/code-agent-session-CjZsVd19.d.ts +0 -87
- package/dist/control-6vuGfmDH.d.ts +0 -258
- package/dist/cost-ledger-DWy3XdJc.d.ts +0 -183
- package/dist/dataset-NENEzRgk.d.ts +0 -115
- package/dist/default-registry-DaK8b3fv.d.ts +0 -155
- package/dist/emitter-CjD7vUwv.d.ts +0 -122
- package/dist/errors-oeQrLqXC.d.ts +0 -74
- package/dist/failure-cluster-DOAcSJ87.d.ts +0 -76
- package/dist/feedback-trajectory-BUnM58xL.d.ts +0 -348
- package/dist/gepa-eESocoDi.d.ts +0 -642
- package/dist/index-PdX4VnPA.d.ts +0 -423
- package/dist/insight-report-DY4nDW9Q.d.ts +0 -310
- package/dist/integrity-DqlBiLyK.d.ts +0 -81
- package/dist/judge-calibration-7C-IDmKr.d.ts +0 -145
- package/dist/kind-factory-ClZmO25A.d.ts +0 -171
- package/dist/llm-client-qoDd18Qz.d.ts +0 -289
- package/dist/multi-layer-verifier-BsqKuLyN.d.ts +0 -150
- package/dist/off-policy-DiwuKKg7.d.ts +0 -132
- package/dist/outcome-store-rnXLEqSn.d.ts +0 -63
- package/dist/policy-edit-wG9uFEFm.d.ts +0 -455
- package/dist/pre-registration-BWQhJ3vz.d.ts +0 -761
- package/dist/provenance-DpjwyseI.d.ts +0 -541
- package/dist/query-CF7PG61p.d.ts +0 -35
- package/dist/raw-provider-sink-C46HDghv.d.ts +0 -132
- package/dist/release-report-C8G2i5Xi.d.ts +0 -236
- package/dist/researcher-C8XyxQsu.d.ts +0 -387
- package/dist/rubric-predictive-validity-p49lLVrE.d.ts +0 -105
- package/dist/run-record-BDH49H2E.d.ts +0 -360
- package/dist/runtime-trajectory-DGBIUt4B.d.ts +0 -49
- package/dist/schema-B3Q3l9Z_.d.ts +0 -201
- package/dist/semantic-concept-judge-CXnPEJbf.d.ts +0 -723
- package/dist/sequential-5iSVfzl2.d.ts +0 -139
- package/dist/series-convergence-D5OWMBg6.d.ts +0 -33
- package/dist/statistics-KUnG73jH.d.ts +0 -494
- package/dist/storage-DrX3v_5B.d.ts +0 -50
- package/dist/store-C1YxJDEK.d.ts +0 -248
- package/dist/store-DGqD0Pyo.d.ts +0 -116
- package/dist/summary-report-C5bKFfm-.d.ts +0 -445
- package/dist/test-graded-scenario-B0ybnPY7.d.ts +0 -166
- package/dist/types-BSw1rOUB.d.ts +0 -634
- package/dist/types-BUxNaJ8c.d.ts +0 -108
- package/dist/types-BkfcQnxV.d.ts +0 -313
- package/dist/verdict-C9MlYujm.d.ts +0 -35
- /package/dist/{chunk-VF3XSYTI.js.map → chunk-33JA4TFA.js.map} +0 -0
- /package/dist/{chunk-4JLWXDYA.js.map → chunk-3EHHMC6E.js.map} +0 -0
- /package/dist/{chunk-CCZIVI3F.js.map → chunk-BFW56GTT.js.map} +0 -0
- /package/dist/{chunk-HZHNRYHK.js.map → chunk-K6N6XJJX.js.map} +0 -0
- /package/dist/{chunk-MGEHEHSN.js.map → chunk-OIIMMLRB.js.map} +0 -0
- /package/dist/{chunk-DXZRATT5.js.map → chunk-OYZAPX5G.js.map} +0 -0
- /package/dist/{chunk-JSJZ4PJ6.js.map → chunk-Q442S5AS.js.map} +0 -0
- /package/dist/{chunk-ODVOOEWQ.js.map → chunk-QBRSJK47.js.map} +0 -0
- /package/dist/{chunk-GQCZRZ7L.js.map → chunk-U5CHZ5M3.js.map} +0 -0
- /package/dist/{chunk-HQPHZGL6.js.map → chunk-YLMUS4MM.js.map} +0 -0
package/dist/types-BUxNaJ8c.d.ts
DELETED
|
@@ -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 };
|
package/dist/types-BkfcQnxV.d.ts
DELETED
|
@@ -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 };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|