@assemblyline-agents/cli 0.1.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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/dist/add.d.ts +23 -0
  4. package/dist/add.d.ts.map +1 -0
  5. package/dist/add.js +352 -0
  6. package/dist/add.js.map +1 -0
  7. package/dist/args.d.ts +14 -0
  8. package/dist/args.d.ts.map +1 -0
  9. package/dist/args.js +95 -0
  10. package/dist/args.js.map +1 -0
  11. package/dist/auth.d.ts +8 -0
  12. package/dist/auth.d.ts.map +1 -0
  13. package/dist/auth.js +74 -0
  14. package/dist/auth.js.map +1 -0
  15. package/dist/channels.d.ts +25 -0
  16. package/dist/channels.d.ts.map +1 -0
  17. package/dist/channels.js +76 -0
  18. package/dist/channels.js.map +1 -0
  19. package/dist/checkpoints.d.ts +3 -0
  20. package/dist/checkpoints.d.ts.map +1 -0
  21. package/dist/checkpoints.js +60 -0
  22. package/dist/checkpoints.js.map +1 -0
  23. package/dist/deploy-definition.d.ts +14 -0
  24. package/dist/deploy-definition.d.ts.map +1 -0
  25. package/dist/deploy-definition.js +92 -0
  26. package/dist/deploy-definition.js.map +1 -0
  27. package/dist/deploy-lifecycle.d.ts +17 -0
  28. package/dist/deploy-lifecycle.d.ts.map +1 -0
  29. package/dist/deploy-lifecycle.js +25 -0
  30. package/dist/deploy-lifecycle.js.map +1 -0
  31. package/dist/deploy.d.ts +20 -0
  32. package/dist/deploy.d.ts.map +1 -0
  33. package/dist/deploy.js +462 -0
  34. package/dist/deploy.js.map +1 -0
  35. package/dist/dev.d.ts +13 -0
  36. package/dist/dev.d.ts.map +1 -0
  37. package/dist/dev.js +157 -0
  38. package/dist/dev.js.map +1 -0
  39. package/dist/eval-assertions.d.ts +5 -0
  40. package/dist/eval-assertions.d.ts.map +1 -0
  41. package/dist/eval-assertions.js +99 -0
  42. package/dist/eval-assertions.js.map +1 -0
  43. package/dist/eval-case-runner.d.ts +38 -0
  44. package/dist/eval-case-runner.d.ts.map +1 -0
  45. package/dist/eval-case-runner.js +247 -0
  46. package/dist/eval-case-runner.js.map +1 -0
  47. package/dist/eval-cases.d.ts +6 -0
  48. package/dist/eval-cases.d.ts.map +1 -0
  49. package/dist/eval-cases.js +151 -0
  50. package/dist/eval-cases.js.map +1 -0
  51. package/dist/eval-comparison.d.ts +8 -0
  52. package/dist/eval-comparison.d.ts.map +1 -0
  53. package/dist/eval-comparison.js +90 -0
  54. package/dist/eval-comparison.js.map +1 -0
  55. package/dist/eval-custom.d.ts +15 -0
  56. package/dist/eval-custom.d.ts.map +1 -0
  57. package/dist/eval-custom.js +118 -0
  58. package/dist/eval-custom.js.map +1 -0
  59. package/dist/eval-experiment.d.ts +19 -0
  60. package/dist/eval-experiment.d.ts.map +1 -0
  61. package/dist/eval-experiment.js +122 -0
  62. package/dist/eval-experiment.js.map +1 -0
  63. package/dist/eval-fixtures.d.ts +17 -0
  64. package/dist/eval-fixtures.d.ts.map +1 -0
  65. package/dist/eval-fixtures.js +59 -0
  66. package/dist/eval-fixtures.js.map +1 -0
  67. package/dist/eval-gateway-host.d.ts +34 -0
  68. package/dist/eval-gateway-host.d.ts.map +1 -0
  69. package/dist/eval-gateway-host.js +127 -0
  70. package/dist/eval-gateway-host.js.map +1 -0
  71. package/dist/eval-judge.d.ts +35 -0
  72. package/dist/eval-judge.d.ts.map +1 -0
  73. package/dist/eval-judge.js +105 -0
  74. package/dist/eval-judge.js.map +1 -0
  75. package/dist/eval-mocks.d.ts +10 -0
  76. package/dist/eval-mocks.d.ts.map +1 -0
  77. package/dist/eval-mocks.js +57 -0
  78. package/dist/eval-mocks.js.map +1 -0
  79. package/dist/eval-report.d.ts +7 -0
  80. package/dist/eval-report.d.ts.map +1 -0
  81. package/dist/eval-report.js +89 -0
  82. package/dist/eval-report.js.map +1 -0
  83. package/dist/eval-retry.d.ts +10 -0
  84. package/dist/eval-retry.d.ts.map +1 -0
  85. package/dist/eval-retry.js +37 -0
  86. package/dist/eval-retry.js.map +1 -0
  87. package/dist/eval-trajectory.d.ts +7 -0
  88. package/dist/eval-trajectory.d.ts.map +1 -0
  89. package/dist/eval-trajectory.js +92 -0
  90. package/dist/eval-trajectory.js.map +1 -0
  91. package/dist/eval-turns.d.ts +66 -0
  92. package/dist/eval-turns.d.ts.map +1 -0
  93. package/dist/eval-turns.js +187 -0
  94. package/dist/eval-turns.js.map +1 -0
  95. package/dist/eval-types.d.ts +271 -0
  96. package/dist/eval-types.d.ts.map +1 -0
  97. package/dist/eval-types.js +4 -0
  98. package/dist/eval-types.js.map +1 -0
  99. package/dist/eval.d.ts +26 -0
  100. package/dist/eval.d.ts.map +1 -0
  101. package/dist/eval.js +218 -0
  102. package/dist/eval.js.map +1 -0
  103. package/dist/help.d.ts +12 -0
  104. package/dist/help.d.ts.map +1 -0
  105. package/dist/help.js +323 -0
  106. package/dist/help.js.map +1 -0
  107. package/dist/hosts.d.ts +3 -0
  108. package/dist/hosts.d.ts.map +1 -0
  109. package/dist/hosts.js +51 -0
  110. package/dist/hosts.js.map +1 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +318 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/init.d.ts +13 -0
  116. package/dist/init.d.ts.map +1 -0
  117. package/dist/init.js +79 -0
  118. package/dist/init.js.map +1 -0
  119. package/dist/legacy-bin.d.ts +3 -0
  120. package/dist/legacy-bin.d.ts.map +1 -0
  121. package/dist/legacy-bin.js +8 -0
  122. package/dist/legacy-bin.js.map +1 -0
  123. package/dist/models.d.ts +5 -0
  124. package/dist/models.d.ts.map +1 -0
  125. package/dist/models.js +20 -0
  126. package/dist/models.js.map +1 -0
  127. package/dist/operator-client.d.ts +7 -0
  128. package/dist/operator-client.d.ts.map +1 -0
  129. package/dist/operator-client.js +62 -0
  130. package/dist/operator-client.js.map +1 -0
  131. package/dist/pm.d.ts +20 -0
  132. package/dist/pm.d.ts.map +1 -0
  133. package/dist/pm.js +70 -0
  134. package/dist/pm.js.map +1 -0
  135. package/dist/project-env.d.ts +8 -0
  136. package/dist/project-env.d.ts.map +1 -0
  137. package/dist/project-env.js +51 -0
  138. package/dist/project-env.js.map +1 -0
  139. package/dist/secrets.d.ts +3 -0
  140. package/dist/secrets.d.ts.map +1 -0
  141. package/dist/secrets.js +48 -0
  142. package/dist/secrets.js.map +1 -0
  143. package/dist/state.d.ts +3 -0
  144. package/dist/state.d.ts.map +1 -0
  145. package/dist/state.js +85 -0
  146. package/dist/state.js.map +1 -0
  147. package/package.json +67 -0
@@ -0,0 +1,271 @@
1
+ import type { JsonObject, JsonValue } from "@assemblyline-agents/core";
2
+ import type { RunStatus, RunTimeline } from "@assemblyline-agents/runtime";
3
+ export type EvalOutcome = "passed" | "failed" | "errored";
4
+ export type EvalTrajectoryMode = "contains" | "ordered" | "exact" | "forbid";
5
+ export type EvalValueMatchMode = "partial" | "exact";
6
+ export interface EvalTrajectoryStep {
7
+ tool: string;
8
+ arguments?: unknown;
9
+ argumentsMatch?: EvalValueMatchMode;
10
+ status?: string;
11
+ result?: unknown;
12
+ resultMatch?: EvalValueMatchMode;
13
+ }
14
+ export interface EvalCustomEvaluatorExpectation {
15
+ name: string;
16
+ config?: JsonObject;
17
+ /** Metric key used by minScore when the evaluator returns several metrics. */
18
+ metric?: string;
19
+ /** Require at least one numeric metric at or above this value. */
20
+ minScore?: number;
21
+ /** Defaults to true; fail when any returned metric explicitly has pass=false. */
22
+ requirePass?: boolean;
23
+ }
24
+ export interface EvalOutputExpectation {
25
+ contains?: string[];
26
+ matches?: string;
27
+ equals?: string;
28
+ json?: {
29
+ valid?: boolean;
30
+ jsonSchema?: unknown;
31
+ fields?: Record<string, unknown>;
32
+ };
33
+ }
34
+ /** Assertions that need no model call; usable per case and per conversation turn. */
35
+ export interface EvalDeterministicExpectations {
36
+ status?: RunStatus;
37
+ output?: EvalOutputExpectation;
38
+ toolsCalled?: string[];
39
+ toolsNotCalled?: string[];
40
+ trajectory?: {
41
+ mode: EvalTrajectoryMode;
42
+ steps: EvalTrajectoryStep[];
43
+ };
44
+ maxCostUsd?: number;
45
+ }
46
+ export interface EvalTurn {
47
+ message: string;
48
+ approve?: boolean;
49
+ tool?: string;
50
+ toolInput?: unknown;
51
+ /** Deterministic assertions against this turn alone; failures are prefixed `turn N:`. */
52
+ expect?: EvalDeterministicExpectations;
53
+ }
54
+ /** Exactly one of `result`, `results` (consumed per call, last repeats), or `error`. */
55
+ export interface EvalToolMock {
56
+ result?: JsonValue;
57
+ results?: JsonValue[];
58
+ error?: string;
59
+ }
60
+ export interface EvalMocks {
61
+ tools: Record<string, EvalToolMock>;
62
+ }
63
+ export interface EvalFixtures {
64
+ /** Sandbox files seeded before the first turn; relative paths land under /workspace. */
65
+ sandbox?: Record<string, string>;
66
+ /** Memory documents (path starting with /memory/) seeded at agent scope. */
67
+ memory?: Record<string, string>;
68
+ }
69
+ export interface EvalCase {
70
+ name: string;
71
+ description?: string;
72
+ tags?: string[];
73
+ /** Attempts for this case (1..100); wins over the --repetitions suite flag. */
74
+ repetitions?: number;
75
+ input: {
76
+ /** Single-turn message; mutually exclusive with `turns`. */
77
+ message?: string;
78
+ /** Scripted conversation; mutually exclusive with `message`. */
79
+ turns?: EvalTurn[];
80
+ channel?: string;
81
+ tool?: string;
82
+ toolInput?: unknown;
83
+ approve?: boolean;
84
+ recentHistory?: string[];
85
+ };
86
+ mocks?: EvalMocks;
87
+ fixtures?: EvalFixtures;
88
+ expect: EvalDeterministicExpectations & {
89
+ evaluators?: EvalCustomEvaluatorExpectation[];
90
+ judge?: {
91
+ criteria: string;
92
+ model?: string;
93
+ threshold?: number;
94
+ };
95
+ };
96
+ }
97
+ export interface DiscoveredEvalCase {
98
+ path: string;
99
+ name: string;
100
+ evalCase?: EvalCase;
101
+ error?: string;
102
+ }
103
+ export interface EvalTurnRecord {
104
+ message: string;
105
+ status: RunStatus;
106
+ response: string;
107
+ output?: JsonValue;
108
+ toolsCalled: string[];
109
+ costUsd: number;
110
+ runId: string;
111
+ }
112
+ export interface EvalActual {
113
+ status: RunStatus;
114
+ response: string;
115
+ output?: JsonValue;
116
+ toolsCalled: string[];
117
+ toolCalls?: RunTimeline["toolCalls"];
118
+ /** False when any model transaction lacks a provider-reported/reconciled cash receipt. */
119
+ costComplete: boolean;
120
+ costUsd: number;
121
+ /** Per-turn records for conversation cases; status/response/output reflect the final turn. */
122
+ turns?: EvalTurnRecord[];
123
+ }
124
+ export interface EvalMetric {
125
+ key: string;
126
+ score?: number;
127
+ value?: JsonValue;
128
+ pass?: boolean;
129
+ comment?: string;
130
+ evaluator?: string;
131
+ }
132
+ export type EvalModelComplete = (input: {
133
+ prompt: string;
134
+ systemPrompt?: string;
135
+ model?: string;
136
+ }) => Promise<{
137
+ text: string;
138
+ costUsd: number;
139
+ }>;
140
+ export interface EvalEvaluatorContext {
141
+ evalCase: EvalCase;
142
+ actual: EvalActual;
143
+ /** Final-turn timeline; `timelines` has one entry per conversation turn. */
144
+ timeline: RunTimeline;
145
+ timelines: RunTimeline[];
146
+ config: JsonObject;
147
+ repetition: number;
148
+ attempt: number;
149
+ /**
150
+ * Model completer bound to the suite judge configuration (defaults to the
151
+ * judge model). Cost is accounted into the case's judgeCostUsd.
152
+ */
153
+ complete: EvalModelComplete;
154
+ }
155
+ export interface EvalEvaluator {
156
+ name: string;
157
+ description?: string;
158
+ evaluate(context: EvalEvaluatorContext): EvalMetric | EvalMetric[] | Promise<EvalMetric | EvalMetric[]>;
159
+ }
160
+ export declare function defineEvaluator<T extends EvalEvaluator>(evaluator: T): T;
161
+ export interface EvalJudgeResult {
162
+ score: number;
163
+ pass: boolean;
164
+ reasoning: string;
165
+ costUsd: number;
166
+ model: string;
167
+ }
168
+ export interface EvalCaseResult {
169
+ caseId: string;
170
+ name: string;
171
+ path: string;
172
+ tags: string[];
173
+ outcome: EvalOutcome;
174
+ repetition: number;
175
+ /** Planned repetitions for this case (case field or suite flag) — the pass-distribution denominator. */
176
+ repetitionsPlanned?: number;
177
+ attempts: number;
178
+ durationMs: number;
179
+ runCostUsd: number;
180
+ judgeCostUsd: number;
181
+ failures: string[];
182
+ error?: string;
183
+ runId?: string;
184
+ status?: RunStatus;
185
+ response?: string;
186
+ output?: JsonValue;
187
+ turns?: EvalTurnRecord[];
188
+ judge?: EvalJudgeResult;
189
+ metrics?: EvalMetric[];
190
+ }
191
+ export interface EvalExecutionConfig {
192
+ filter?: string;
193
+ tag?: string;
194
+ judgeModel: string;
195
+ concurrency: number;
196
+ timeoutMs: number;
197
+ approve: boolean;
198
+ failFast: boolean;
199
+ repetitions: number;
200
+ retryAttempts: number;
201
+ retryBackoffMs: number;
202
+ }
203
+ export interface EvalExperimentManifest {
204
+ schemaVersion: 1;
205
+ id: string;
206
+ startedAt: string;
207
+ frameworkVersion: string;
208
+ agentRevision: string;
209
+ suiteFingerprint: string;
210
+ configFingerprint: string;
211
+ caseCount: number;
212
+ executionCount: number;
213
+ config: EvalExecutionConfig;
214
+ }
215
+ export interface EvalRegression {
216
+ caseId: string;
217
+ name: string;
218
+ baselinePassRate: number;
219
+ currentPassRate: number;
220
+ }
221
+ export interface EvalComparison {
222
+ baselineExperimentId: string;
223
+ regressions: EvalRegression[];
224
+ improvements: EvalRegression[];
225
+ addedCaseIds: string[];
226
+ removedCaseIds: string[];
227
+ passRateDelta: number;
228
+ costDeltaUsd: number;
229
+ costDeltaPercent?: number;
230
+ /** actual=null represents an unbounded percentage (zero-cost baseline to positive cost). */
231
+ gates: Array<{
232
+ name: string;
233
+ passed: boolean;
234
+ actual: number | null;
235
+ limit: number;
236
+ }>;
237
+ passed: boolean;
238
+ }
239
+ export interface EvalReport {
240
+ schemaVersion: 1;
241
+ experiment: EvalExperimentManifest;
242
+ startedAt: string;
243
+ durationMs: number;
244
+ agentRevision: string;
245
+ results: EvalCaseResult[];
246
+ comparison?: EvalComparison;
247
+ artifacts?: {
248
+ root: string;
249
+ experimentPath: string;
250
+ resultsPath: string;
251
+ };
252
+ summary: {
253
+ total: number;
254
+ uniqueCases: number;
255
+ repetitions: number;
256
+ passed: number;
257
+ failed: number;
258
+ errored: number;
259
+ passRate: number;
260
+ runCostUsd: number;
261
+ judgeCostUsd: number;
262
+ totalCostUsd: number;
263
+ byTag: Record<string, {
264
+ total: number;
265
+ passed: number;
266
+ failed: number;
267
+ errored: number;
268
+ }>;
269
+ };
270
+ }
271
+ //# sourceMappingURL=eval-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-types.d.ts","sourceRoot":"","sources":["../src/eval-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export function defineEvaluator(evaluator) {
2
+ return evaluator;
3
+ }
4
+ //# sourceMappingURL=eval-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-types.js","sourceRoot":"","sources":["../src/eval-types.ts"],"names":[],"mappings":"AAuKA,MAAM,UAAU,eAAe,CAA0B,SAAY;IACnE,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/eval.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import { type ParsedArgs } from "./args.js";
2
+ import { type EvalCaseRuntimeDependencies } from "./eval-case-runner.js";
3
+ import type { EvalEvaluator, EvalReport } from "./eval-types.js";
4
+ export { evaluateCase, evaluateExpectations } from "./eval-assertions.js";
5
+ export { discoverCases } from "./eval-cases.js";
6
+ export { compareEvalReports, loadBaselineReport } from "./eval-comparison.js";
7
+ export { EvalEvaluatorLoader, evaluateCustomExpectations } from "./eval-custom.js";
8
+ export { seedEvalFixtures, validateFixtures } from "./eval-fixtures.js";
9
+ export { createToolStubs, validateMocks } from "./eval-mocks.js";
10
+ export { conversationIdForCase, EVAL_CONVERSATION_ID, normalizeTurns, runConversation, type EvalRuntimeHost } from "./eval-turns.js";
11
+ export { createGatewayEvalHost, remoteEvalIncompatibilities } from "./eval-gateway-host.js";
12
+ export { createExperimentArtifacts, createExperimentManifest, fingerprintEvalSuite, fingerprintValue, writeExperimentManifest, writeExperimentReport } from "./eval-experiment.js";
13
+ export { createDefaultJudgeCompleter, EvalJudgeResponseError, judgeCase, robustParseJudge } from "./eval-judge.js";
14
+ export { createEvalReport, formatEvalReport } from "./eval-report.js";
15
+ export { isTransientProviderError, retryTransient } from "./eval-retry.js";
16
+ export { evaluateTrajectory } from "./eval-trajectory.js";
17
+ export { defineEvaluator } from "./eval-types.js";
18
+ export type * from "./eval-types.js";
19
+ export interface EvalCommandDependencies extends EvalCaseRuntimeDependencies {
20
+ evaluators?: Record<string, EvalEvaluator>;
21
+ env?: Record<string, string | undefined>;
22
+ now?: () => Date;
23
+ log?: (line: string) => void;
24
+ }
25
+ export declare function runEvalCommand(agentRoot: string, parsed: ParsedArgs, dependencies?: EvalCommandDependencies): Promise<EvalReport>;
26
+ //# sourceMappingURL=eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAA0B,KAAK,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAejG,OAAO,KAAK,EAGV,aAAa,EAEb,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,mBAAmB,iBAAiB,CAAC;AAErC,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAQD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,EAClB,YAAY,GAAE,uBAA4B,GACzC,OAAO,CAAC,UAAU,CAAC,CAuHrB"}
package/dist/eval.js ADDED
@@ -0,0 +1,218 @@
1
+ import { relative, resolve } from "node:path";
2
+ import { buildAgent } from "@assemblyline-agents/compiler";
3
+ import { booleanFlag, stringFlag } from "./args.js";
4
+ import { runEvalCaseWithRetries } from "./eval-case-runner.js";
5
+ import { discoverCases } from "./eval-cases.js";
6
+ import { createGatewayEvalHost, remoteEvalIncompatibilities } from "./eval-gateway-host.js";
7
+ import { compareEvalReports, loadBaselineReport } from "./eval-comparison.js";
8
+ import { EvalEvaluatorLoader } from "./eval-custom.js";
9
+ import { createExperimentArtifacts, createExperimentManifest, writeExperimentManifest, writeExperimentReport } from "./eval-experiment.js";
10
+ import { createDefaultJudgeCompleter } from "./eval-judge.js";
11
+ import { createEvalReport, formatEvalReport } from "./eval-report.js";
12
+ export { evaluateCase, evaluateExpectations } from "./eval-assertions.js";
13
+ export { discoverCases } from "./eval-cases.js";
14
+ export { compareEvalReports, loadBaselineReport } from "./eval-comparison.js";
15
+ export { EvalEvaluatorLoader, evaluateCustomExpectations } from "./eval-custom.js";
16
+ export { seedEvalFixtures, validateFixtures } from "./eval-fixtures.js";
17
+ export { createToolStubs, validateMocks } from "./eval-mocks.js";
18
+ export { conversationIdForCase, EVAL_CONVERSATION_ID, normalizeTurns, runConversation } from "./eval-turns.js";
19
+ export { createGatewayEvalHost, remoteEvalIncompatibilities } from "./eval-gateway-host.js";
20
+ export { createExperimentArtifacts, createExperimentManifest, fingerprintEvalSuite, fingerprintValue, writeExperimentManifest, writeExperimentReport } from "./eval-experiment.js";
21
+ export { createDefaultJudgeCompleter, EvalJudgeResponseError, judgeCase, robustParseJudge } from "./eval-judge.js";
22
+ export { createEvalReport, formatEvalReport } from "./eval-report.js";
23
+ export { isTransientProviderError, retryTransient } from "./eval-retry.js";
24
+ export { evaluateTrajectory } from "./eval-trajectory.js";
25
+ export { defineEvaluator } from "./eval-types.js";
26
+ export async function runEvalCommand(agentRoot, parsed, dependencies = {}) {
27
+ const env = dependencies.env ?? process.env;
28
+ const now = dependencies.now ?? (() => new Date());
29
+ const started = now();
30
+ const filter = stringFlag(parsed, "filter");
31
+ const tag = stringFlag(parsed, "tag");
32
+ const discovered = discoverCases(agentRoot, {
33
+ ...(filter ? { filter } : {}),
34
+ ...(tag ? { tag } : {})
35
+ });
36
+ const concurrency = positiveIntegerFlag(parsed, "concurrency", 1);
37
+ const timeoutMs = positiveIntegerFlag(parsed, "timeout", 120) * 1_000;
38
+ const repetitions = positiveIntegerFlag(parsed, "repetitions", 1);
39
+ const retryAttempts = nonnegativeIntegerFlag(parsed, "retry-attempts", 2);
40
+ const retryBackoffMs = nonnegativeIntegerFlag(parsed, "retry-backoff-ms", 250);
41
+ const approve = booleanFlag(parsed, "approve");
42
+ const failFast = booleanFlag(parsed, "fail-fast");
43
+ const outDir = stringFlag(parsed, "out");
44
+ const artifact = buildAgent({ root: agentRoot, ...(outDir ? { outDir } : {}) });
45
+ const judgeModel = stringFlag(parsed, "judge-model") ?? env.OPENEVE_EVAL_JUDGE_MODEL ?? artifact.manifest.agent.model;
46
+ const config = {
47
+ ...(filter ? { filter } : {}),
48
+ ...(tag ? { tag } : {}),
49
+ judgeModel,
50
+ concurrency,
51
+ timeoutMs,
52
+ approve,
53
+ failFast,
54
+ repetitions,
55
+ retryAttempts,
56
+ retryBackoffMs
57
+ };
58
+ const experiment = createExperimentManifest({
59
+ startedAt: started.toISOString(),
60
+ agentRevision: artifact.manifest.agentRevision,
61
+ agentRoot,
62
+ cases: discovered,
63
+ config
64
+ });
65
+ const artifacts = createExperimentArtifacts(artifact.root, experiment);
66
+ writeExperimentManifest(experiment, artifacts);
67
+ const evaluatorLoader = new EvalEvaluatorLoader(agentRoot, resolve(artifacts.root, "evaluator-cache"), dependencies.evaluators);
68
+ const executions = expandExecutions(discovered, repetitions);
69
+ const judgeComplete = dependencies.judgeComplete ?? createDefaultJudgeCompleter(env);
70
+ // --url targets a deployed gateway instead of the in-process runtime. Cases
71
+ // that depend on local adapters (fixtures, mocks) or run() inputs the HTTP
72
+ // surface lacks (multi-turn, seeded history) are refused upfront rather than
73
+ // silently graded against a runtime that never saw them.
74
+ const gatewayUrl = stringFlag(parsed, "url");
75
+ let createRuntime = dependencies.createRuntime;
76
+ if (gatewayUrl && !createRuntime) {
77
+ const token = stringFlag(parsed, "token") ?? env.OPENEVE_ADMIN_TOKEN;
78
+ if (!token)
79
+ throw new Error("Remote eval targets require --token or ASSEMBLY_LINE_ADMIN_TOKEN.");
80
+ const host = createGatewayEvalHost({ url: gatewayUrl, token });
81
+ const capabilities = await host.capabilities().catch(() => []);
82
+ const incompatible = discovered.flatMap((item) => {
83
+ const reasons = item.evalCase ? remoteEvalIncompatibilities(item.evalCase, capabilities) : [];
84
+ return reasons.length > 0 ? [`${item.name} (${reasons.join(", ")})`] : [];
85
+ });
86
+ if (incompatible.length > 0) {
87
+ throw new Error(`${incompatible.length} eval case(s) need the in-process runtime and cannot run against --url:\n- ${incompatible.join("\n- ")}\nRun them without --url, or exclude them with --tag/--filter.`);
88
+ }
89
+ createRuntime = () => host;
90
+ }
91
+ const results = await executePool(executions, concurrency, failFast, async (execution, index) => {
92
+ const { item, repetition, repetitionsPlanned } = execution;
93
+ const caseId = caseIdentifier(agentRoot, item.path);
94
+ if (!item.evalCase)
95
+ return malformedResult(item, caseId);
96
+ const caseRoot = resolve(artifacts.root, "cases", `${String(index + 1).padStart(4, "0")}-${safeName(item.name)}`, `repetition-${String(repetition).padStart(2, "0")}`);
97
+ return runEvalCaseWithRetries({
98
+ item: { ...item, evalCase: item.evalCase },
99
+ caseId,
100
+ repetition,
101
+ repetitionsPlanned,
102
+ caseRoot,
103
+ artifactRoot: artifact.root,
104
+ evaluatorLoader,
105
+ approve,
106
+ timeoutMs,
107
+ judgeModel,
108
+ retryAttempts,
109
+ retryBackoffMs,
110
+ env,
111
+ dependencies: {
112
+ ...(createRuntime ? { createRuntime } : {}),
113
+ judgeComplete,
114
+ ...(dependencies.sleep ? { sleep: dependencies.sleep } : {})
115
+ }
116
+ });
117
+ });
118
+ const durationMs = Math.max(0, now().getTime() - started.getTime());
119
+ const reportArtifacts = {
120
+ root: artifacts.root,
121
+ experimentPath: artifacts.experimentPath,
122
+ resultsPath: artifacts.resultsPath
123
+ };
124
+ let report = createEvalReport(experiment, durationMs, results, { artifacts: reportArtifacts });
125
+ const baselinePath = stringFlag(parsed, "baseline");
126
+ if (baselinePath) {
127
+ const baseline = loadBaselineReport(baselinePath);
128
+ const comparison = compareEvalReports(baseline, report, {
129
+ maxRegressions: nonnegativeIntegerFlag(parsed, "max-regressions", 0),
130
+ ...(parsed.flags["max-cost-increase-percent"] === undefined
131
+ ? {}
132
+ : { maxCostIncreasePercent: nonnegativeNumberFlag(parsed, "max-cost-increase-percent") })
133
+ });
134
+ report = createEvalReport(experiment, durationMs, results, { artifacts: reportArtifacts, comparison });
135
+ }
136
+ writeExperimentReport(report, artifacts);
137
+ (dependencies.log ?? console.log)(booleanFlag(parsed, "json") ? JSON.stringify(report, null, 2) : formatEvalReport(report));
138
+ if (report.summary.failed + report.summary.errored > 0 || report.comparison?.passed === false)
139
+ process.exitCode = 1;
140
+ return report;
141
+ }
142
+ async function executePool(cases, concurrency, failFast, execute) {
143
+ const results = new Array(cases.length);
144
+ let next = 0;
145
+ let stopped = false;
146
+ const workers = Array.from({ length: Math.min(concurrency, Math.max(1, cases.length)) }, async () => {
147
+ while (!stopped) {
148
+ const index = next;
149
+ next += 1;
150
+ const item = cases[index];
151
+ if (!item)
152
+ return;
153
+ const result = await execute(item, index);
154
+ results[index] = result;
155
+ if (failFast && result.outcome !== "passed")
156
+ stopped = true;
157
+ }
158
+ });
159
+ await Promise.all(workers);
160
+ return results.filter((result) => result !== undefined);
161
+ }
162
+ function expandExecutions(cases, repetitions) {
163
+ return cases.flatMap((item) => {
164
+ if (!item.evalCase)
165
+ return [{ item, repetition: 1, repetitionsPlanned: 1 }];
166
+ const planned = item.evalCase.repetitions ?? repetitions;
167
+ return Array.from({ length: planned }, (_unused, index) => ({ item, repetition: index + 1, repetitionsPlanned: planned }));
168
+ });
169
+ }
170
+ function malformedResult(item, caseId) {
171
+ return {
172
+ caseId,
173
+ name: item.name,
174
+ path: item.path,
175
+ tags: [],
176
+ outcome: "errored",
177
+ repetition: 1,
178
+ repetitionsPlanned: 1,
179
+ attempts: 1,
180
+ durationMs: 0,
181
+ runCostUsd: 0,
182
+ judgeCostUsd: 0,
183
+ failures: [],
184
+ error: `Invalid eval case: ${item.error ?? "unknown error"}`
185
+ };
186
+ }
187
+ function positiveIntegerFlag(parsed, name, fallback) {
188
+ const raw = parsed.flags[name];
189
+ if (raw === undefined)
190
+ return fallback;
191
+ const value = typeof raw === "string" ? Number(raw) : Number.NaN;
192
+ if (!Number.isInteger(value) || value <= 0)
193
+ throw new Error(`--${name} must be a positive integer.`);
194
+ return value;
195
+ }
196
+ function nonnegativeIntegerFlag(parsed, name, fallback) {
197
+ const raw = parsed.flags[name];
198
+ if (raw === undefined)
199
+ return fallback;
200
+ const value = typeof raw === "string" ? Number(raw) : Number.NaN;
201
+ if (!Number.isInteger(value) || value < 0)
202
+ throw new Error(`--${name} must be a non-negative integer.`);
203
+ return value;
204
+ }
205
+ function nonnegativeNumberFlag(parsed, name) {
206
+ const raw = parsed.flags[name];
207
+ const value = typeof raw === "string" ? Number(raw) : Number.NaN;
208
+ if (!Number.isFinite(value) || value < 0)
209
+ throw new Error(`--${name} must be a non-negative number.`);
210
+ return value;
211
+ }
212
+ function caseIdentifier(agentRoot, path) {
213
+ return relative(agentRoot, path).replaceAll("\\", "/");
214
+ }
215
+ function safeName(value) {
216
+ return value.toLocaleLowerCase().replace(/[^a-z0-9._-]+/gu, "-").replace(/^-+|-+$/gu, "").slice(0, 80) || "case";
217
+ }
218
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
package/dist/help.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export declare function printHelp(command?: string): void;
2
+ export declare function printCommandHelp(command: string): void;
3
+ export declare function isKnownCommand(command: string): boolean;
4
+ export declare function printIssues(issues: {
5
+ level: string;
6
+ code: string;
7
+ message: string;
8
+ path?: string;
9
+ }[], options?: {
10
+ agentRoot?: string;
11
+ }): void;
12
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAoQA,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAuBhD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAsBtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EACzE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,IAAI,CAQN"}