agent-eval-opencode 0.10.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 (129) hide show
  1. package/dist/cli.d.ts +6 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +590 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/index.d.ts +30 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +29 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/lib/agents/claude-code.d.ts +12 -0
  10. package/dist/lib/agents/claude-code.d.ts.map +1 -0
  11. package/dist/lib/agents/claude-code.js +231 -0
  12. package/dist/lib/agents/claude-code.js.map +1 -0
  13. package/dist/lib/agents/codex.d.ts +12 -0
  14. package/dist/lib/agents/codex.d.ts.map +1 -0
  15. package/dist/lib/agents/codex.js +267 -0
  16. package/dist/lib/agents/codex.js.map +1 -0
  17. package/dist/lib/agents/cursor.d.ts +10 -0
  18. package/dist/lib/agents/cursor.d.ts.map +1 -0
  19. package/dist/lib/agents/cursor.js +204 -0
  20. package/dist/lib/agents/cursor.js.map +1 -0
  21. package/dist/lib/agents/gemini.d.ts +10 -0
  22. package/dist/lib/agents/gemini.d.ts.map +1 -0
  23. package/dist/lib/agents/gemini.js +207 -0
  24. package/dist/lib/agents/gemini.js.map +1 -0
  25. package/dist/lib/agents/index.d.ts +7 -0
  26. package/dist/lib/agents/index.d.ts.map +1 -0
  27. package/dist/lib/agents/index.js +20 -0
  28. package/dist/lib/agents/index.js.map +1 -0
  29. package/dist/lib/agents/opencode.d.ts +11 -0
  30. package/dist/lib/agents/opencode.d.ts.map +1 -0
  31. package/dist/lib/agents/opencode.js +245 -0
  32. package/dist/lib/agents/opencode.js.map +1 -0
  33. package/dist/lib/agents/registry.d.ts +23 -0
  34. package/dist/lib/agents/registry.d.ts.map +1 -0
  35. package/dist/lib/agents/registry.js +35 -0
  36. package/dist/lib/agents/registry.js.map +1 -0
  37. package/dist/lib/agents/shared.d.ts +83 -0
  38. package/dist/lib/agents/shared.d.ts.map +1 -0
  39. package/dist/lib/agents/shared.js +192 -0
  40. package/dist/lib/agents/shared.js.map +1 -0
  41. package/dist/lib/agents/types.d.ts +73 -0
  42. package/dist/lib/agents/types.d.ts.map +1 -0
  43. package/dist/lib/agents/types.js +5 -0
  44. package/dist/lib/agents/types.js.map +1 -0
  45. package/dist/lib/classifier.d.ts +89 -0
  46. package/dist/lib/classifier.d.ts.map +1 -0
  47. package/dist/lib/classifier.js +285 -0
  48. package/dist/lib/classifier.js.map +1 -0
  49. package/dist/lib/config.d.ts +37 -0
  50. package/dist/lib/config.d.ts.map +1 -0
  51. package/dist/lib/config.js +187 -0
  52. package/dist/lib/config.js.map +1 -0
  53. package/dist/lib/dashboard.d.ts +65 -0
  54. package/dist/lib/dashboard.d.ts.map +1 -0
  55. package/dist/lib/dashboard.js +237 -0
  56. package/dist/lib/dashboard.js.map +1 -0
  57. package/dist/lib/docker-sandbox.d.ts +92 -0
  58. package/dist/lib/docker-sandbox.d.ts.map +1 -0
  59. package/dist/lib/docker-sandbox.js +375 -0
  60. package/dist/lib/docker-sandbox.js.map +1 -0
  61. package/dist/lib/fingerprint.d.ts +15 -0
  62. package/dist/lib/fingerprint.d.ts.map +1 -0
  63. package/dist/lib/fingerprint.js +59 -0
  64. package/dist/lib/fingerprint.js.map +1 -0
  65. package/dist/lib/fixture.d.ts +55 -0
  66. package/dist/lib/fixture.d.ts.map +1 -0
  67. package/dist/lib/fixture.js +215 -0
  68. package/dist/lib/fixture.js.map +1 -0
  69. package/dist/lib/housekeeping.d.ts +26 -0
  70. package/dist/lib/housekeeping.d.ts.map +1 -0
  71. package/dist/lib/housekeeping.js +170 -0
  72. package/dist/lib/housekeeping.js.map +1 -0
  73. package/dist/lib/init.d.ts +21 -0
  74. package/dist/lib/init.d.ts.map +1 -0
  75. package/dist/lib/init.js +275 -0
  76. package/dist/lib/init.js.map +1 -0
  77. package/dist/lib/o11y/index.d.ts +13 -0
  78. package/dist/lib/o11y/index.d.ts.map +1 -0
  79. package/dist/lib/o11y/index.js +13 -0
  80. package/dist/lib/o11y/index.js.map +1 -0
  81. package/dist/lib/o11y/parsers/claude-code.d.ts +18 -0
  82. package/dist/lib/o11y/parsers/claude-code.d.ts.map +1 -0
  83. package/dist/lib/o11y/parsers/claude-code.js +343 -0
  84. package/dist/lib/o11y/parsers/claude-code.js.map +1 -0
  85. package/dist/lib/o11y/parsers/codex.d.ts +17 -0
  86. package/dist/lib/o11y/parsers/codex.d.ts.map +1 -0
  87. package/dist/lib/o11y/parsers/codex.js +364 -0
  88. package/dist/lib/o11y/parsers/codex.js.map +1 -0
  89. package/dist/lib/o11y/parsers/cursor.d.ts +21 -0
  90. package/dist/lib/o11y/parsers/cursor.d.ts.map +1 -0
  91. package/dist/lib/o11y/parsers/cursor.js +226 -0
  92. package/dist/lib/o11y/parsers/cursor.js.map +1 -0
  93. package/dist/lib/o11y/parsers/gemini.d.ts +21 -0
  94. package/dist/lib/o11y/parsers/gemini.d.ts.map +1 -0
  95. package/dist/lib/o11y/parsers/gemini.js +241 -0
  96. package/dist/lib/o11y/parsers/gemini.js.map +1 -0
  97. package/dist/lib/o11y/parsers/index.d.ts +55 -0
  98. package/dist/lib/o11y/parsers/index.d.ts.map +1 -0
  99. package/dist/lib/o11y/parsers/index.js +284 -0
  100. package/dist/lib/o11y/parsers/index.js.map +1 -0
  101. package/dist/lib/o11y/parsers/opencode.d.ts +17 -0
  102. package/dist/lib/o11y/parsers/opencode.d.ts.map +1 -0
  103. package/dist/lib/o11y/parsers/opencode.js +320 -0
  104. package/dist/lib/o11y/parsers/opencode.js.map +1 -0
  105. package/dist/lib/o11y/types.d.ts +113 -0
  106. package/dist/lib/o11y/types.d.ts.map +1 -0
  107. package/dist/lib/o11y/types.js +6 -0
  108. package/dist/lib/o11y/types.js.map +1 -0
  109. package/dist/lib/results.d.ts +91 -0
  110. package/dist/lib/results.d.ts.map +1 -0
  111. package/dist/lib/results.js +361 -0
  112. package/dist/lib/results.js.map +1 -0
  113. package/dist/lib/runner.d.ts +71 -0
  114. package/dist/lib/runner.d.ts.map +1 -0
  115. package/dist/lib/runner.js +267 -0
  116. package/dist/lib/runner.js.map +1 -0
  117. package/dist/lib/sandbox.d.ts +173 -0
  118. package/dist/lib/sandbox.d.ts.map +1 -0
  119. package/dist/lib/sandbox.js +337 -0
  120. package/dist/lib/sandbox.js.map +1 -0
  121. package/dist/lib/types.d.ts +258 -0
  122. package/dist/lib/types.d.ts.map +1 -0
  123. package/dist/lib/types.js +15 -0
  124. package/dist/lib/types.js.map +1 -0
  125. package/dist/test-setup.d.ts +2 -0
  126. package/dist/test-setup.d.ts.map +1 -0
  127. package/dist/test-setup.js +6 -0
  128. package/dist/test-setup.js.map +1 -0
  129. package/package.json +72 -0
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Parser for OpenCode CLI transcript format.
3
+ * OpenCode outputs JSON events to stdout when run with --format json.
4
+ *
5
+ * Format reference (based on OpenCode CLI output):
6
+ * - Events have a "kind" field indicating the event type
7
+ * - Messages, tool calls, and results are separate events
8
+ */
9
+ /**
10
+ * Map OpenCode tool names to canonical names.
11
+ */
12
+ function normalizeToolName(name) {
13
+ const toolMap = {
14
+ // File operations
15
+ read: 'file_read',
16
+ read_file: 'file_read',
17
+ file_read: 'file_read',
18
+ write: 'file_write',
19
+ write_file: 'file_write',
20
+ file_write: 'file_write',
21
+ create: 'file_write',
22
+ edit: 'file_edit',
23
+ edit_file: 'file_edit',
24
+ file_edit: 'file_edit',
25
+ patch: 'file_edit',
26
+ // Shell
27
+ bash: 'shell',
28
+ shell: 'shell',
29
+ exec: 'shell',
30
+ execute: 'shell',
31
+ run: 'shell',
32
+ command: 'shell',
33
+ // Web
34
+ fetch: 'web_fetch',
35
+ http: 'web_fetch',
36
+ request: 'web_fetch',
37
+ web_fetch: 'web_fetch',
38
+ search: 'web_search',
39
+ web_search: 'web_search',
40
+ // Search/navigation
41
+ glob: 'glob',
42
+ find: 'glob',
43
+ list: 'glob',
44
+ grep: 'grep',
45
+ rg: 'grep',
46
+ ripgrep: 'grep',
47
+ ls: 'list_dir',
48
+ dir: 'list_dir',
49
+ list_dir: 'list_dir',
50
+ };
51
+ return toolMap[name.toLowerCase()] || 'unknown';
52
+ }
53
+ /**
54
+ * Extract file path from tool arguments.
55
+ */
56
+ function extractFilePath(args) {
57
+ return (args.path || args.filePath || args.file || args.filename || args.target);
58
+ }
59
+ /**
60
+ * Extract URL from tool arguments.
61
+ */
62
+ function extractUrl(args) {
63
+ return (args.url || args.uri || args.href || args.endpoint);
64
+ }
65
+ /**
66
+ * Extract command from tool arguments.
67
+ */
68
+ function extractCommand(args) {
69
+ if (typeof args.command === 'string')
70
+ return args.command;
71
+ if (typeof args.cmd === 'string')
72
+ return args.cmd;
73
+ if (typeof args.script === 'string')
74
+ return args.script;
75
+ if (Array.isArray(args.args)) {
76
+ const program = args.program || args.bin || args.executable || '';
77
+ return `${program} ${args.args.join(' ')}`.trim();
78
+ }
79
+ return undefined;
80
+ }
81
+ /**
82
+ * Parse a single JSONL line from OpenCode transcript.
83
+ * Handles the real OpenCode format:
84
+ * - type: "tool_use" | "text" | "step_start" | "step_finish"
85
+ * - Tool info in part.tool, part.state.input, part.state.output
86
+ * - Text in part.text
87
+ */
88
+ function parseOpenCodeLine(line) {
89
+ const events = [];
90
+ try {
91
+ const data = JSON.parse(line);
92
+ // OpenCode uses "type" for event type
93
+ const eventType = data.type || data.kind || data.event;
94
+ const part = data.part;
95
+ const state = part?.state;
96
+ switch (eventType) {
97
+ // Real OpenCode format: tool_use with part.tool
98
+ case 'tool_use': {
99
+ if (part && part.tool) {
100
+ const name = part.tool;
101
+ const args = state?.input || {};
102
+ const output = state?.output;
103
+ const status = state?.status;
104
+ // Emit tool_call event
105
+ events.push({
106
+ timestamp: data.timestamp ? new Date(data.timestamp).toISOString() : undefined,
107
+ type: 'tool_call',
108
+ tool: {
109
+ name: normalizeToolName(name),
110
+ originalName: name,
111
+ args,
112
+ },
113
+ raw: data,
114
+ });
115
+ // If completed, also emit tool_result
116
+ if (status === 'completed' && output !== undefined) {
117
+ const metadata = state?.metadata;
118
+ const exitCode = metadata?.exit;
119
+ // For shell commands, check exit code; for others, check status and error
120
+ const isShellCommand = name === 'bash' || name === 'shell' || name === 'exec';
121
+ const success = isShellCommand
122
+ ? (exitCode === 0 || exitCode === undefined)
123
+ : (status === 'completed' && !state?.error);
124
+ events.push({
125
+ timestamp: data.timestamp ? new Date(data.timestamp).toISOString() : undefined,
126
+ type: 'tool_result',
127
+ tool: {
128
+ name: normalizeToolName(name),
129
+ originalName: name,
130
+ result: output,
131
+ success,
132
+ },
133
+ raw: state,
134
+ });
135
+ }
136
+ }
137
+ break;
138
+ }
139
+ // Real OpenCode format: text with part.text
140
+ case 'text': {
141
+ const text = part?.text;
142
+ if (text && text.trim()) {
143
+ events.push({
144
+ timestamp: data.timestamp ? new Date(data.timestamp).toISOString() : undefined,
145
+ type: 'message',
146
+ role: 'assistant',
147
+ content: text,
148
+ raw: data,
149
+ });
150
+ }
151
+ break;
152
+ }
153
+ // Step events - extract cost/token info if needed
154
+ case 'step_start':
155
+ case 'step_finish': {
156
+ // These are metadata events, skip for now
157
+ // Could extract token usage from step_finish if needed
158
+ break;
159
+ }
160
+ // Legacy/fallback formats
161
+ case 'message':
162
+ case 'response':
163
+ case 'assistant':
164
+ case 'user': {
165
+ const role = data.role || eventType === 'assistant'
166
+ ? 'assistant'
167
+ : eventType === 'user'
168
+ ? 'user'
169
+ : 'assistant';
170
+ const content = data.message?.content || data.content || data.text;
171
+ if (content) {
172
+ events.push({
173
+ timestamp: data.timestamp || data.time,
174
+ type: 'message',
175
+ role: role,
176
+ content,
177
+ raw: data,
178
+ });
179
+ }
180
+ // Check for tool calls within the message
181
+ const toolCalls = data.message?.tool_calls || data.tool_calls || [];
182
+ for (const call of toolCalls) {
183
+ const name = call.function?.name || call.name;
184
+ const args = call.function?.arguments
185
+ ? typeof call.function.arguments === 'string'
186
+ ? JSON.parse(call.function.arguments)
187
+ : call.function.arguments
188
+ : call.arguments || call.input || {};
189
+ events.push({
190
+ timestamp: data.timestamp || data.time,
191
+ type: 'tool_call',
192
+ tool: {
193
+ name: normalizeToolName(name),
194
+ originalName: name,
195
+ args,
196
+ },
197
+ raw: call,
198
+ });
199
+ }
200
+ break;
201
+ }
202
+ case 'tool_call':
203
+ case 'function_call':
204
+ case 'action': {
205
+ const name = data.tool || data.function || data.name || data.action;
206
+ const args = data.input || data.arguments || data.params || {};
207
+ events.push({
208
+ timestamp: data.timestamp || data.time,
209
+ type: 'tool_call',
210
+ tool: {
211
+ name: normalizeToolName(name),
212
+ originalName: name,
213
+ args,
214
+ },
215
+ raw: data,
216
+ });
217
+ break;
218
+ }
219
+ case 'tool_result':
220
+ case 'function_result':
221
+ case 'action_result':
222
+ case 'result': {
223
+ events.push({
224
+ timestamp: data.timestamp || data.time,
225
+ type: 'tool_result',
226
+ tool: {
227
+ name: 'unknown',
228
+ originalName: data.tool || data.function || 'unknown',
229
+ result: data.output || data.result || data.content,
230
+ success: data.success !== false && !data.error,
231
+ },
232
+ raw: data,
233
+ });
234
+ break;
235
+ }
236
+ case 'thinking':
237
+ case 'reasoning': {
238
+ events.push({
239
+ timestamp: data.timestamp || data.time,
240
+ type: 'thinking',
241
+ content: data.content || data.text || data.thinking,
242
+ raw: data,
243
+ });
244
+ break;
245
+ }
246
+ case 'error': {
247
+ events.push({
248
+ timestamp: data.timestamp || data.time,
249
+ type: 'error',
250
+ content: data.error?.message || data.message || data.content,
251
+ raw: data,
252
+ });
253
+ break;
254
+ }
255
+ default: {
256
+ // Try to infer from structure
257
+ if (data.message && typeof data.message === 'object') {
258
+ const role = data.message.role || 'assistant';
259
+ events.push({
260
+ timestamp: data.timestamp || data.time,
261
+ type: 'message',
262
+ role: role,
263
+ content: data.message.content,
264
+ raw: data,
265
+ });
266
+ }
267
+ }
268
+ }
269
+ }
270
+ catch {
271
+ // Skip unparseable lines
272
+ }
273
+ return events;
274
+ }
275
+ /**
276
+ * Parse OpenCode JSONL transcript into normalized events.
277
+ */
278
+ export function parseOpenCodeTranscript(raw) {
279
+ const events = [];
280
+ const errors = [];
281
+ const lines = raw.split('\n').filter((line) => line.trim());
282
+ for (const line of lines) {
283
+ try {
284
+ const lineEvents = parseOpenCodeLine(line);
285
+ events.push(...lineEvents);
286
+ }
287
+ catch (e) {
288
+ errors.push(`Failed to parse line: ${e instanceof Error ? e.message : String(e)}`);
289
+ }
290
+ }
291
+ // Post-process to extract additional metadata
292
+ for (const event of events) {
293
+ if (event.type === 'tool_call' && event.tool) {
294
+ const args = event.tool.args || {};
295
+ // Extract file paths for file operations
296
+ if (['file_read', 'file_write', 'file_edit'].includes(event.tool.name)) {
297
+ const path = extractFilePath(args);
298
+ if (path) {
299
+ event.tool.args = { ...args, _extractedPath: path };
300
+ }
301
+ }
302
+ // Extract URLs for web fetches
303
+ if (event.tool.name === 'web_fetch') {
304
+ const url = extractUrl(args);
305
+ if (url) {
306
+ event.tool.args = { ...args, _extractedUrl: url };
307
+ }
308
+ }
309
+ // Extract commands for shell operations
310
+ if (event.tool.name === 'shell') {
311
+ const command = extractCommand(args);
312
+ if (command) {
313
+ event.tool.args = { ...args, _extractedCommand: command };
314
+ }
315
+ }
316
+ }
317
+ }
318
+ return { events, errors };
319
+ }
320
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Observability types for cross-agent transcript analysis.
3
+ * Provides a unified schema regardless of which agent produced the transcript.
4
+ */
5
+ /**
6
+ * Canonical tool names across agents.
7
+ * Maps agent-specific tool names to standardized names.
8
+ */
9
+ export type ToolName = 'file_read' | 'file_write' | 'file_edit' | 'shell' | 'web_fetch' | 'web_search' | 'glob' | 'grep' | 'list_dir' | 'agent_task' | 'unknown';
10
+ /**
11
+ * An event in the transcript.
12
+ */
13
+ export interface TranscriptEvent {
14
+ /** ISO timestamp of the event */
15
+ timestamp?: string;
16
+ /** Event type */
17
+ type: 'message' | 'tool_call' | 'tool_result' | 'thinking' | 'error';
18
+ /** For message events: the role */
19
+ role?: 'user' | 'assistant' | 'system';
20
+ /** Text content (for messages, thinking, errors) */
21
+ content?: string;
22
+ /** For tool_call and tool_result events */
23
+ tool?: {
24
+ /** Canonical tool name */
25
+ name: ToolName;
26
+ /** Original tool name from the agent */
27
+ originalName: string;
28
+ /** Tool arguments */
29
+ args?: Record<string, unknown>;
30
+ /** Tool result (for tool_result events) */
31
+ result?: unknown;
32
+ /** Duration in milliseconds (if available) */
33
+ durationMs?: number;
34
+ /** Whether the tool call succeeded */
35
+ success?: boolean;
36
+ };
37
+ /** Raw event data from the agent (for debugging) */
38
+ raw?: unknown;
39
+ }
40
+ /**
41
+ * Web fetch information extracted from tool calls.
42
+ */
43
+ export interface WebFetchInfo {
44
+ /** The URL that was fetched */
45
+ url: string;
46
+ /** HTTP method (if known) */
47
+ method?: string;
48
+ /** HTTP status code (if available) */
49
+ status?: number;
50
+ /** Whether the fetch succeeded */
51
+ success?: boolean;
52
+ }
53
+ /**
54
+ * File operation information.
55
+ */
56
+ export interface FileOperationInfo {
57
+ /** File path */
58
+ path: string;
59
+ /** Operation type */
60
+ operation: 'read' | 'write' | 'edit';
61
+ }
62
+ /**
63
+ * Shell command information.
64
+ */
65
+ export interface ShellCommandInfo {
66
+ /** The command that was run */
67
+ command: string;
68
+ /** Exit code (if available) */
69
+ exitCode?: number;
70
+ /** Whether the command succeeded */
71
+ success?: boolean;
72
+ }
73
+ /**
74
+ * Summary statistics derived from the transcript.
75
+ */
76
+ export interface TranscriptSummary {
77
+ /** Total number of conversation turns */
78
+ totalTurns: number;
79
+ /** Count of each tool type used */
80
+ toolCalls: Record<ToolName, number>;
81
+ /** Total tool calls */
82
+ totalToolCalls: number;
83
+ /** Web fetches made during the run */
84
+ webFetches: WebFetchInfo[];
85
+ /** Files that were read */
86
+ filesRead: string[];
87
+ /** Files that were written or edited */
88
+ filesModified: string[];
89
+ /** Shell commands executed */
90
+ shellCommands: ShellCommandInfo[];
91
+ /** Errors encountered */
92
+ errors: string[];
93
+ /** Thinking/reasoning blocks (if available) */
94
+ thinkingBlocks: number;
95
+ }
96
+ /**
97
+ * A parsed transcript with events and summary.
98
+ */
99
+ export interface Transcript {
100
+ /** Agent that produced this transcript */
101
+ agent: string;
102
+ /** Model used (if known) */
103
+ model?: string;
104
+ /** All events in order */
105
+ events: TranscriptEvent[];
106
+ /** Derived summary statistics */
107
+ summary: TranscriptSummary;
108
+ /** Whether parsing succeeded fully */
109
+ parseSuccess: boolean;
110
+ /** Any parsing warnings/errors */
111
+ parseErrors?: string[];
112
+ }
113
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/o11y/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Observability types for cross-agent transcript analysis.
3
+ * Provides a unified schema regardless of which agent produced the transcript.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/o11y/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Results storage and reporting for eval experiments.
3
+ */
4
+ import type { EvalRunResult, EvalRunData, EvalSummary, ExperimentResults, RunnableExperimentConfig } from './types.js';
5
+ import type { AgentRunResult } from './agents/types.js';
6
+ /**
7
+ * Convert AgentRunResult to EvalRunData (result + transcript).
8
+ */
9
+ export declare function agentResultToEvalRunData(agentResult: AgentRunResult): EvalRunData;
10
+ /**
11
+ * Create a summary from multiple run data.
12
+ */
13
+ export declare function createEvalSummary(name: string, runData: EvalRunData[]): EvalSummary;
14
+ /**
15
+ * Create experiment results from eval summaries.
16
+ */
17
+ export declare function createExperimentResults(config: RunnableExperimentConfig, evals: EvalSummary[], startedAt: Date, completedAt: Date): ExperimentResults;
18
+ /**
19
+ * Options for saving results.
20
+ */
21
+ export interface SaveResultsOptions {
22
+ /** Base directory for results */
23
+ resultsDir: string;
24
+ /** Experiment name (used for subdirectory) */
25
+ experimentName: string;
26
+ /** Per-eval fingerprints (eval name -> fingerprint hash) */
27
+ fingerprints?: Record<string, string>;
28
+ /** Per-eval validity flags (eval name -> valid). Defaults to true. */
29
+ validity?: Record<string, boolean>;
30
+ /** Whether this is a smoke test run. Smoke results are excluded from reuse. */
31
+ smoke?: boolean;
32
+ /** Per-eval fixture paths (eval name -> absolute path). Required when copyFiles is 'all'. */
33
+ fixturePaths?: Record<string, string>;
34
+ }
35
+ /**
36
+ * Save experiment results to disk.
37
+ *
38
+ * Creates a directory structure per design:
39
+ * results/
40
+ * experiment-name/
41
+ * 2024-01-26T12-00-00Z/
42
+ * eval-1/
43
+ * run-1/
44
+ * result.json
45
+ * transcript.json (parsed/structured - primary format)
46
+ * transcript-raw.jsonl (raw agent output - for debugging)
47
+ * outputs/
48
+ * summary.json
49
+ */
50
+ export declare function saveResults(results: ExperimentResults, options: SaveResultsOptions): string;
51
+ /**
52
+ * Format results for terminal display.
53
+ */
54
+ export declare function formatResultsTable(results: ExperimentResults): string;
55
+ /**
56
+ * Format a single eval result for terminal display (used during progress).
57
+ */
58
+ export declare function formatRunResult(evalName: string, runNumber: number, totalRuns: number, result: EvalRunResult, context?: {
59
+ experimentName?: string;
60
+ model?: string;
61
+ agent?: string;
62
+ }): string;
63
+ /**
64
+ * Create a progress indicator for running evals.
65
+ */
66
+ export declare function createProgressDisplay(evalName: string, runNumber: number, totalRuns: number, context?: {
67
+ experimentName?: string;
68
+ model?: string;
69
+ agent?: string;
70
+ }): string;
71
+ /**
72
+ * A reusable result found by the scanner.
73
+ */
74
+ export interface ReusableResult {
75
+ evalName: string;
76
+ fingerprint: string;
77
+ passRate: string;
78
+ timestamp: string;
79
+ }
80
+ /**
81
+ * Scan existing results for an experiment to find reusable eval results.
82
+ *
83
+ * A result is reusable if:
84
+ * 1. Its fingerprint matches the current fingerprint
85
+ * 2. It is "valid" (not marked as invalid by the classifier)
86
+ * 3. It has passedRuns > 0 (successful result worth reusing)
87
+ *
88
+ * Scans all timestamps newest-first and returns the latest match per eval.
89
+ */
90
+ export declare function scanReusableResults(resultsDir: string, experimentName: string, fingerprints: Record<string, string>): Map<string, ReusableResult>;
91
+ //# sourceMappingURL=results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/lib/results.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,KAAK,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,WAAW,EAAE,cAAc,GACzB,WAAW,CAoCb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EAAE,GACpB,WAAW,CAab;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,WAAW,EAAE,EACpB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,IAAI,GACf,iBAAiB,CAOnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,kBAAkB,GACzB,MAAM,CAwLR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA8DrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CAwBR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,MAAM,CASR;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA4E7B"}