@vercel/agent-eval 0.6.1 → 0.7.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 (40) hide show
  1. package/dist/lib/agents/claude-code.js +1 -1
  2. package/dist/lib/agents/claude-code.js.map +1 -1
  3. package/dist/lib/agents/cursor.d.ts +10 -0
  4. package/dist/lib/agents/cursor.d.ts.map +1 -0
  5. package/dist/lib/agents/cursor.js +199 -0
  6. package/dist/lib/agents/cursor.js.map +1 -0
  7. package/dist/lib/agents/gemini.d.ts +10 -0
  8. package/dist/lib/agents/gemini.d.ts.map +1 -0
  9. package/dist/lib/agents/gemini.js +202 -0
  10. package/dist/lib/agents/gemini.js.map +1 -0
  11. package/dist/lib/agents/index.d.ts.map +1 -1
  12. package/dist/lib/agents/index.js +4 -0
  13. package/dist/lib/agents/index.js.map +1 -1
  14. package/dist/lib/agents/shared.d.ts +12 -0
  15. package/dist/lib/agents/shared.d.ts.map +1 -1
  16. package/dist/lib/agents/shared.js +13 -1
  17. package/dist/lib/agents/shared.js.map +1 -1
  18. package/dist/lib/config.d.ts.map +1 -1
  19. package/dist/lib/config.js +2 -0
  20. package/dist/lib/config.js.map +1 -1
  21. package/dist/lib/o11y/index.d.ts +2 -0
  22. package/dist/lib/o11y/index.d.ts.map +1 -1
  23. package/dist/lib/o11y/index.js +2 -0
  24. package/dist/lib/o11y/index.js.map +1 -1
  25. package/dist/lib/o11y/parsers/cursor.d.ts +21 -0
  26. package/dist/lib/o11y/parsers/cursor.d.ts.map +1 -0
  27. package/dist/lib/o11y/parsers/cursor.js +226 -0
  28. package/dist/lib/o11y/parsers/cursor.js.map +1 -0
  29. package/dist/lib/o11y/parsers/gemini.d.ts +21 -0
  30. package/dist/lib/o11y/parsers/gemini.d.ts.map +1 -0
  31. package/dist/lib/o11y/parsers/gemini.js +241 -0
  32. package/dist/lib/o11y/parsers/gemini.js.map +1 -0
  33. package/dist/lib/o11y/parsers/index.d.ts +5 -1
  34. package/dist/lib/o11y/parsers/index.d.ts.map +1 -1
  35. package/dist/lib/o11y/parsers/index.js +4 -0
  36. package/dist/lib/o11y/parsers/index.js.map +1 -1
  37. package/dist/lib/types.d.ts +1 -1
  38. package/dist/lib/types.d.ts.map +1 -1
  39. package/dist/lib/types.js.map +1 -1
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,6 @@ export type { ParseableAgent } from './parsers/index.js';
8
8
  export { parseClaudeCodeTranscript } from './parsers/claude-code.js';
9
9
  export { parseCodexTranscript } from './parsers/codex.js';
10
10
  export { parseOpenCodeTranscript } from './parsers/opencode.js';
11
+ export { parseGeminiTranscript } from './parsers/gemini.js';
12
+ export { parseCursorTranscript } from './parsers/cursor.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/o11y/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/o11y/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -8,4 +8,6 @@ export { parseTranscript, parseTranscriptSummary, loadTranscript, SUPPORTED_AGEN
8
8
  export { parseClaudeCodeTranscript } from './parsers/claude-code.js';
9
9
  export { parseCodexTranscript } from './parsers/codex.js';
10
10
  export { parseOpenCodeTranscript } from './parsers/opencode.js';
11
+ export { parseGeminiTranscript } from './parsers/gemini.js';
12
+ export { parseCursorTranscript } from './parsers/cursor.js';
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/o11y/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,yBAAyB;AACzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/G,wCAAwC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/o11y/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,yBAAyB;AACzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/G,wCAAwC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Parser for Cursor CLI transcript format.
3
+ * Cursor CLI outputs JSONL events when run with --print.
4
+ *
5
+ * Format reference (based on Cursor CLI output):
6
+ * - Events have "type" + optional "subtype" fields
7
+ * - Tool calls: type "tool_call" with subtype "started"|"completed"
8
+ * - Tool type determined by key name in tool_call object (e.g. readToolCall, shellToolCall)
9
+ * - Timestamps in "timestamp_ms" field (epoch milliseconds)
10
+ * - Messages: type "assistant"|"user" with nested message.content array
11
+ * - Thinking: type "thinking" with subtype "delta"|"completed"
12
+ */
13
+ import type { TranscriptEvent } from '../types.js';
14
+ /**
15
+ * Parse Cursor JSONL transcript into normalized events.
16
+ */
17
+ export declare function parseCursorTranscript(raw: string): {
18
+ events: TranscriptEvent[];
19
+ errors: string[];
20
+ };
21
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AAoM7D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAqCA"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Parser for Cursor CLI transcript format.
3
+ * Cursor CLI outputs JSONL events when run with --print.
4
+ *
5
+ * Format reference (based on Cursor CLI output):
6
+ * - Events have "type" + optional "subtype" fields
7
+ * - Tool calls: type "tool_call" with subtype "started"|"completed"
8
+ * - Tool type determined by key name in tool_call object (e.g. readToolCall, shellToolCall)
9
+ * - Timestamps in "timestamp_ms" field (epoch milliseconds)
10
+ * - Messages: type "assistant"|"user" with nested message.content array
11
+ * - Thinking: type "thinking" with subtype "delta"|"completed"
12
+ */
13
+ /**
14
+ * Map Cursor tool call key names to canonical tool names.
15
+ */
16
+ const CURSOR_TOOL_MAP = {
17
+ readToolCall: 'file_read',
18
+ editToolCall: 'file_edit',
19
+ deleteToolCall: 'file_write',
20
+ lsToolCall: 'list_dir',
21
+ globToolCall: 'glob',
22
+ shellToolCall: 'shell',
23
+ readLintsToolCall: 'unknown',
24
+ updateTodosToolCall: 'agent_task',
25
+ writeToolCall: 'file_write',
26
+ grepToolCall: 'grep',
27
+ searchToolCall: 'web_search',
28
+ fetchToolCall: 'web_fetch',
29
+ };
30
+ /**
31
+ * Convert epoch milliseconds to ISO string.
32
+ */
33
+ function toISO(ms) {
34
+ if (typeof ms === 'number')
35
+ return new Date(ms).toISOString();
36
+ return undefined;
37
+ }
38
+ /**
39
+ * Detect the tool key and extract args/result from a Cursor tool_call object.
40
+ */
41
+ function extractToolInfo(toolCall) {
42
+ for (const key of Object.keys(toolCall)) {
43
+ if (key.endsWith('ToolCall')) {
44
+ const inner = toolCall[key];
45
+ if (!inner)
46
+ continue;
47
+ return {
48
+ key,
49
+ canonicalName: CURSOR_TOOL_MAP[key] || 'unknown',
50
+ args: inner.args || {},
51
+ result: inner.result,
52
+ };
53
+ }
54
+ }
55
+ return null;
56
+ }
57
+ /**
58
+ * Extract file path from Cursor tool arguments.
59
+ */
60
+ function extractFilePath(args) {
61
+ return (args.path || args.filePath || args.file);
62
+ }
63
+ /**
64
+ * Extract command from shell tool arguments.
65
+ */
66
+ function extractCommand(args) {
67
+ if (typeof args.command === 'string')
68
+ return args.command;
69
+ if (typeof args.cmd === 'string')
70
+ return args.cmd;
71
+ return undefined;
72
+ }
73
+ /**
74
+ * Extract text content from a Cursor message content array.
75
+ */
76
+ function extractMessageText(content) {
77
+ if (typeof content === 'string')
78
+ return content;
79
+ if (!Array.isArray(content))
80
+ return undefined;
81
+ return content
82
+ .filter((c) => c.type === 'text' && c.text)
83
+ .map((c) => c.text)
84
+ .join('');
85
+ }
86
+ /**
87
+ * Parse a single JSONL line from a Cursor transcript.
88
+ */
89
+ function parseCursorLine(line) {
90
+ const events = [];
91
+ try {
92
+ const data = JSON.parse(line);
93
+ const eventType = data.type;
94
+ const subtype = data.subtype;
95
+ switch (eventType) {
96
+ case 'tool_call': {
97
+ const toolCallObj = data.tool_call;
98
+ if (!toolCallObj)
99
+ break;
100
+ const info = extractToolInfo(toolCallObj);
101
+ if (!info)
102
+ break;
103
+ if (subtype === 'started') {
104
+ events.push({
105
+ timestamp: toISO(data.timestamp_ms),
106
+ type: 'tool_call',
107
+ tool: {
108
+ name: info.canonicalName,
109
+ originalName: info.key,
110
+ args: info.args,
111
+ },
112
+ raw: data,
113
+ });
114
+ }
115
+ else if (subtype === 'completed') {
116
+ const resultObj = info.result;
117
+ const success = resultObj ? 'success' in resultObj : undefined;
118
+ const error = resultObj ? 'error' in resultObj : false;
119
+ events.push({
120
+ timestamp: toISO(data.timestamp_ms),
121
+ type: 'tool_result',
122
+ tool: {
123
+ name: info.canonicalName,
124
+ originalName: info.key,
125
+ result: info.result,
126
+ success: success === true || (success === undefined && !error),
127
+ },
128
+ raw: data,
129
+ });
130
+ }
131
+ break;
132
+ }
133
+ case 'assistant': {
134
+ const msg = data.message;
135
+ if (!msg)
136
+ break;
137
+ const text = extractMessageText(msg.content);
138
+ if (text && text.trim()) {
139
+ events.push({
140
+ timestamp: toISO(data.timestamp_ms),
141
+ type: 'message',
142
+ role: 'assistant',
143
+ content: text,
144
+ raw: data,
145
+ });
146
+ }
147
+ break;
148
+ }
149
+ case 'user': {
150
+ const msg = data.message;
151
+ if (!msg)
152
+ break;
153
+ const text = extractMessageText(msg.content);
154
+ if (text && text.trim()) {
155
+ events.push({
156
+ timestamp: toISO(data.timestamp_ms),
157
+ type: 'message',
158
+ role: 'user',
159
+ content: text,
160
+ raw: data,
161
+ });
162
+ }
163
+ break;
164
+ }
165
+ case 'thinking': {
166
+ // Only emit for completed thinking, skip deltas
167
+ if (subtype === 'completed') {
168
+ events.push({
169
+ timestamp: toISO(data.timestamp_ms),
170
+ type: 'thinking',
171
+ content: data.text || '',
172
+ raw: data,
173
+ });
174
+ }
175
+ break;
176
+ }
177
+ case 'system':
178
+ case 'result':
179
+ // Metadata events — skip
180
+ break;
181
+ default:
182
+ break;
183
+ }
184
+ }
185
+ catch {
186
+ // Skip unparseable lines
187
+ }
188
+ return events;
189
+ }
190
+ /**
191
+ * Parse Cursor JSONL transcript into normalized events.
192
+ */
193
+ export function parseCursorTranscript(raw) {
194
+ const events = [];
195
+ const errors = [];
196
+ const lines = raw.split('\n').filter((line) => line.trim());
197
+ for (const line of lines) {
198
+ try {
199
+ const lineEvents = parseCursorLine(line);
200
+ events.push(...lineEvents);
201
+ }
202
+ catch (e) {
203
+ errors.push(`Failed to parse line: ${e instanceof Error ? e.message : String(e)}`);
204
+ }
205
+ }
206
+ // Post-process: extract metadata into tool args
207
+ for (const event of events) {
208
+ if (event.type === 'tool_call' && event.tool) {
209
+ const args = event.tool.args || {};
210
+ if (['file_read', 'file_write', 'file_edit'].includes(event.tool.name)) {
211
+ const path = extractFilePath(args);
212
+ if (path) {
213
+ event.tool.args = { ...args, _extractedPath: path };
214
+ }
215
+ }
216
+ if (event.tool.name === 'shell') {
217
+ const command = extractCommand(args);
218
+ if (command) {
219
+ event.tool.args = { ...args, _extractedCommand: command };
220
+ }
221
+ }
222
+ }
223
+ }
224
+ return { events, errors };
225
+ }
226
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/cursor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Parser for Gemini CLI transcript format.
3
+ * Supports two output formats:
4
+ *
5
+ * 1. CLI format (--output-format stream-json via OpenCode framework):
6
+ * - Events: step_start, tool_use (with part.tool/part.state), text, step_finish
7
+ * - Timestamps: epoch milliseconds
8
+ *
9
+ * 2. Direct-API format (custom agent runner):
10
+ * - Events: init, message (with delta), tool_use (with tool_name/parameters), tool_result
11
+ * - Timestamps: ISO strings
12
+ */
13
+ import type { TranscriptEvent } from '../types.js';
14
+ /**
15
+ * Parse Gemini JSONL transcript into normalized events.
16
+ */
17
+ export declare function parseGeminiTranscript(raw: string): {
18
+ events: TranscriptEvent[];
19
+ errors: string[];
20
+ };
21
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/gemini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AAmM7D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAyDA"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Parser for Gemini CLI transcript format.
3
+ * Supports two output formats:
4
+ *
5
+ * 1. CLI format (--output-format stream-json via OpenCode framework):
6
+ * - Events: step_start, tool_use (with part.tool/part.state), text, step_finish
7
+ * - Timestamps: epoch milliseconds
8
+ *
9
+ * 2. Direct-API format (custom agent runner):
10
+ * - Events: init, message (with delta), tool_use (with tool_name/parameters), tool_result
11
+ * - Timestamps: ISO strings
12
+ */
13
+ /**
14
+ * Map Gemini tool names to canonical names.
15
+ */
16
+ function normalizeToolName(name) {
17
+ const toolMap = {
18
+ // CLI format tools
19
+ read: 'file_read',
20
+ write: 'file_write',
21
+ edit: 'file_edit',
22
+ bash: 'shell',
23
+ glob: 'glob',
24
+ // Direct-API format tools
25
+ read_file: 'file_read',
26
+ write_file: 'file_write',
27
+ list_directory: 'list_dir',
28
+ run_shell_command: 'shell',
29
+ // Common aliases
30
+ shell: 'shell',
31
+ grep: 'grep',
32
+ ls: 'list_dir',
33
+ search: 'web_search',
34
+ web_search: 'web_search',
35
+ fetch: 'web_fetch',
36
+ web_fetch: 'web_fetch',
37
+ };
38
+ return toolMap[name.toLowerCase()] || 'unknown';
39
+ }
40
+ /**
41
+ * Convert a timestamp value to ISO string.
42
+ * Handles epoch milliseconds (number) and ISO strings.
43
+ */
44
+ function toISO(ts) {
45
+ if (typeof ts === 'number')
46
+ return new Date(ts).toISOString();
47
+ if (typeof ts === 'string')
48
+ return ts;
49
+ return undefined;
50
+ }
51
+ /**
52
+ * Extract file path from tool arguments.
53
+ */
54
+ function extractFilePath(args) {
55
+ return (args.path || args.file_path || args.filePath || args.file || args.filename);
56
+ }
57
+ /**
58
+ * Extract command from tool arguments.
59
+ */
60
+ function extractCommand(args) {
61
+ if (typeof args.command === 'string')
62
+ return args.command;
63
+ if (typeof args.cmd === 'string')
64
+ return args.cmd;
65
+ return undefined;
66
+ }
67
+ /**
68
+ * Parse a single JSONL line from a Gemini transcript.
69
+ * Handles both CLI and direct-API formats.
70
+ */
71
+ function parseGeminiLine(line) {
72
+ const events = [];
73
+ try {
74
+ const data = JSON.parse(line);
75
+ const eventType = data.type;
76
+ // --- CLI format: tool_use with part.tool / part.state ---
77
+ if (eventType === 'tool_use' && data.part?.tool) {
78
+ const part = data.part;
79
+ const state = part.state;
80
+ const name = part.tool;
81
+ const args = state?.input || {};
82
+ const output = state?.output;
83
+ const status = state?.status;
84
+ events.push({
85
+ timestamp: toISO(data.timestamp),
86
+ type: 'tool_call',
87
+ tool: {
88
+ name: normalizeToolName(name),
89
+ originalName: name,
90
+ args,
91
+ },
92
+ raw: data,
93
+ });
94
+ if (status === 'completed' && output !== undefined) {
95
+ const metadata = state?.metadata;
96
+ const exitCode = metadata?.exit;
97
+ const isShell = normalizeToolName(name) === 'shell';
98
+ const success = isShell
99
+ ? exitCode === 0 || exitCode === undefined
100
+ : status === 'completed' && !state?.error;
101
+ events.push({
102
+ timestamp: toISO(data.timestamp),
103
+ type: 'tool_result',
104
+ tool: {
105
+ name: normalizeToolName(name),
106
+ originalName: name,
107
+ result: output,
108
+ success,
109
+ },
110
+ raw: state,
111
+ });
112
+ }
113
+ return events;
114
+ }
115
+ // --- Direct-API format: tool_use with tool_name / parameters ---
116
+ if (eventType === 'tool_use' && data.tool_name) {
117
+ const name = data.tool_name;
118
+ const args = data.parameters || {};
119
+ events.push({
120
+ timestamp: toISO(data.timestamp),
121
+ type: 'tool_call',
122
+ tool: {
123
+ name: normalizeToolName(name),
124
+ originalName: name,
125
+ args,
126
+ },
127
+ raw: data,
128
+ });
129
+ return events;
130
+ }
131
+ // --- Direct-API format: separate tool_result event ---
132
+ if (eventType === 'tool_result') {
133
+ const toolId = data.tool_id;
134
+ // Infer original tool name from tool_id prefix (e.g. "read_file-1770...")
135
+ const originalName = toolId?.split('-')[0] || 'unknown';
136
+ const status = data.status;
137
+ const hasError = status === 'error' || !!data.error;
138
+ events.push({
139
+ timestamp: toISO(data.timestamp),
140
+ type: 'tool_result',
141
+ tool: {
142
+ name: normalizeToolName(originalName),
143
+ originalName,
144
+ result: data.output,
145
+ success: !hasError,
146
+ },
147
+ raw: data,
148
+ });
149
+ return events;
150
+ }
151
+ // --- CLI format: text with part.text ---
152
+ if (eventType === 'text' && data.part?.text) {
153
+ const text = data.part.text;
154
+ if (text.trim()) {
155
+ events.push({
156
+ timestamp: toISO(data.timestamp),
157
+ type: 'message',
158
+ role: 'assistant',
159
+ content: text,
160
+ raw: data,
161
+ });
162
+ }
163
+ return events;
164
+ }
165
+ // --- Direct-API format: message with role/content ---
166
+ if (eventType === 'message') {
167
+ const role = data.role;
168
+ const content = data.content;
169
+ if (role && content) {
170
+ events.push({
171
+ timestamp: toISO(data.timestamp),
172
+ type: 'message',
173
+ role: role,
174
+ content,
175
+ raw: { ...data, _delta: !!data.delta },
176
+ });
177
+ }
178
+ return events;
179
+ }
180
+ // --- Metadata events — skip ---
181
+ // init, step_start, step_finish
182
+ }
183
+ catch {
184
+ // Skip unparseable lines
185
+ }
186
+ return events;
187
+ }
188
+ /**
189
+ * Parse Gemini JSONL transcript into normalized events.
190
+ */
191
+ export function parseGeminiTranscript(raw) {
192
+ const events = [];
193
+ const errors = [];
194
+ const lines = raw.split('\n').filter((line) => line.trim());
195
+ for (const line of lines) {
196
+ try {
197
+ const lineEvents = parseGeminiLine(line);
198
+ events.push(...lineEvents);
199
+ }
200
+ catch (e) {
201
+ errors.push(`Failed to parse line: ${e instanceof Error ? e.message : String(e)}`);
202
+ }
203
+ }
204
+ // Post-process: aggregate contiguous assistant delta messages into single events.
205
+ // This avoids inflating turn counts while still counting actual turns.
206
+ const aggregated = [];
207
+ for (const event of events) {
208
+ const isDelta = event.raw?._delta === true;
209
+ if (event.type === 'message' && event.role === 'assistant' && isDelta) {
210
+ const prev = aggregated[aggregated.length - 1];
211
+ if (prev?.type === 'message' &&
212
+ prev.role === 'assistant' &&
213
+ prev.raw?._delta === true) {
214
+ // Merge into previous delta message
215
+ prev.content = (prev.content || '') + (event.content || '');
216
+ continue;
217
+ }
218
+ }
219
+ aggregated.push(event);
220
+ }
221
+ // Post-process: extract metadata into tool args
222
+ for (const event of aggregated) {
223
+ if (event.type === 'tool_call' && event.tool) {
224
+ const args = event.tool.args || {};
225
+ if (['file_read', 'file_write', 'file_edit'].includes(event.tool.name)) {
226
+ const path = extractFilePath(args);
227
+ if (path) {
228
+ event.tool.args = { ...args, _extractedPath: path };
229
+ }
230
+ }
231
+ if (event.tool.name === 'shell') {
232
+ const command = extractCommand(args);
233
+ if (command) {
234
+ event.tool.args = { ...args, _extractedCommand: command };
235
+ }
236
+ }
237
+ }
238
+ }
239
+ return { events: aggregated, errors };
240
+ }
241
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/gemini.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,12 @@ import type { Transcript, TranscriptSummary } from '../types.js';
6
6
  import { parseClaudeCodeTranscript } from './claude-code.js';
7
7
  import { parseCodexTranscript } from './codex.js';
8
8
  import { parseOpenCodeTranscript } from './opencode.js';
9
+ import { parseGeminiTranscript } from './gemini.js';
10
+ import { parseCursorTranscript } from './cursor.js';
9
11
  /**
10
12
  * Supported agent types for parsing.
11
13
  */
12
- export type ParseableAgent = 'vercel-ai-gateway/claude-code' | 'claude-code' | 'vercel-ai-gateway/codex' | 'codex' | 'vercel-ai-gateway/opencode';
14
+ export type ParseableAgent = 'vercel-ai-gateway/claude-code' | 'claude-code' | 'vercel-ai-gateway/codex' | 'codex' | 'vercel-ai-gateway/opencode' | 'gemini' | 'cursor';
13
15
  /**
14
16
  * Parser registry mapping agent key patterns to their parsers.
15
17
  */
@@ -17,6 +19,8 @@ declare const AGENT_PARSERS: {
17
19
  readonly 'claude-code': typeof parseClaudeCodeTranscript;
18
20
  readonly codex: typeof parseCodexTranscript;
19
21
  readonly opencode: typeof parseOpenCodeTranscript;
22
+ readonly gemini: typeof parseGeminiTranscript;
23
+ readonly cursor: typeof parseCursorTranscript;
20
24
  };
21
25
  /**
22
26
  * List of supported agent keys for error messages.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,+BAA+B,GAC/B,aAAa,GACb,yBAAyB,GACzB,OAAO,GACP,4BAA4B,CAAC;AAEjC;;GAEG;AACH,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAiC,KAAK,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AA2IhG;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAiFZ;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,iBAAiB,CAGnB;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAyBZ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,+BAA+B,GAC/B,aAAa,GACb,yBAAyB,GACzB,OAAO,GACP,4BAA4B,GAC5B,QAAQ,GACR,QAAQ,CAAC;AAEb;;GAEG;AACH,QAAA,MAAM,aAAa;;;;;;CAMT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAiC,KAAK,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AA2IhG;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAiFZ;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,iBAAiB,CAGnB;AAiBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAyBZ"}
@@ -5,6 +5,8 @@
5
5
  import { parseClaudeCodeTranscript } from './claude-code.js';
6
6
  import { parseCodexTranscript } from './codex.js';
7
7
  import { parseOpenCodeTranscript } from './opencode.js';
8
+ import { parseGeminiTranscript } from './gemini.js';
9
+ import { parseCursorTranscript } from './cursor.js';
8
10
  /**
9
11
  * Parser registry mapping agent key patterns to their parsers.
10
12
  */
@@ -12,6 +14,8 @@ const AGENT_PARSERS = {
12
14
  'claude-code': parseClaudeCodeTranscript,
13
15
  'codex': parseCodexTranscript,
14
16
  'opencode': parseOpenCodeTranscript,
17
+ 'gemini': parseGeminiTranscript,
18
+ 'cursor': parseCursorTranscript,
15
19
  };
16
20
  /**
17
21
  * List of supported agent keys for error messages.