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 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/claude-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parser for OpenAI Codex CLI transcript format.
3
+ * Codex outputs JSONL to stdout when run with --json flag.
4
+ *
5
+ * Format reference (based on Codex CLI output):
6
+ * - Events have a "type" field indicating the event type
7
+ * - Messages, function calls, and results are separate events
8
+ */
9
+ import type { TranscriptEvent } from '../types.js';
10
+ /**
11
+ * Parse Codex JSONL transcript into events.
12
+ */
13
+ export declare function parseCodexTranscript(raw: string): {
14
+ events: TranscriptEvent[];
15
+ errors: string[];
16
+ };
17
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/codex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,aAAa,CAAC;AA2U7D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;IACjD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CA+CA"}
@@ -0,0 +1,364 @@
1
+ /**
2
+ * Parser for OpenAI Codex CLI transcript format.
3
+ * Codex outputs JSONL to stdout when run with --json flag.
4
+ *
5
+ * Format reference (based on Codex CLI output):
6
+ * - Events have a "type" field indicating the event type
7
+ * - Messages, function calls, and results are separate events
8
+ */
9
+ /**
10
+ * Map Codex tool names to canonical names.
11
+ */
12
+ function normalizeToolName(name) {
13
+ const toolMap = {
14
+ // File operations
15
+ read_file: 'file_read',
16
+ write_file: 'file_write',
17
+ edit_file: 'file_edit',
18
+ patch_file: 'file_edit',
19
+ create_file: 'file_write',
20
+ delete_file: 'file_write',
21
+ // Shell
22
+ shell: 'shell',
23
+ bash: 'shell',
24
+ execute: 'shell',
25
+ run: 'shell',
26
+ exec: 'shell',
27
+ terminal: 'shell',
28
+ // Web
29
+ fetch: 'web_fetch',
30
+ http_request: 'web_fetch',
31
+ curl: 'web_fetch',
32
+ web_search: 'web_search',
33
+ search: 'web_search',
34
+ // Search/navigation
35
+ glob: 'glob',
36
+ find_files: 'glob',
37
+ list_files: 'glob',
38
+ grep: 'grep',
39
+ search_files: 'grep',
40
+ ripgrep: 'grep',
41
+ ls: 'list_dir',
42
+ list_directory: 'list_dir',
43
+ dir: 'list_dir',
44
+ };
45
+ return toolMap[name.toLowerCase()] || 'unknown';
46
+ }
47
+ /**
48
+ * Extract file path from tool arguments.
49
+ */
50
+ function extractFilePath(args) {
51
+ return (args.path || args.file || args.filename || args.file_path);
52
+ }
53
+ /**
54
+ * Extract URL from tool arguments.
55
+ */
56
+ function extractUrl(args) {
57
+ return (args.url || args.uri || args.endpoint);
58
+ }
59
+ /**
60
+ * Extract command from tool arguments.
61
+ */
62
+ function extractCommand(args) {
63
+ if (typeof args.command === 'string')
64
+ return args.command;
65
+ if (Array.isArray(args.command))
66
+ return args.command.join(' ');
67
+ if (typeof args.cmd === 'string')
68
+ return args.cmd;
69
+ if (Array.isArray(args.args) && typeof args.program === 'string') {
70
+ return `${args.program} ${args.args.join(' ')}`;
71
+ }
72
+ return undefined;
73
+ }
74
+ /**
75
+ * Parse a single JSONL line from Codex transcript.
76
+ */
77
+ function parseCodexLine(line) {
78
+ const events = [];
79
+ try {
80
+ const data = JSON.parse(line);
81
+ // Codex uses various event type formats
82
+ const eventType = data.type || data.event || data.kind;
83
+ switch (eventType) {
84
+ case 'message':
85
+ case 'chat':
86
+ case 'response': {
87
+ const role = data.role || (data.from === 'assistant' ? 'assistant' : 'user');
88
+ events.push({
89
+ timestamp: data.timestamp || data.ts,
90
+ type: 'message',
91
+ role: role,
92
+ content: data.content || data.text || data.message,
93
+ raw: data,
94
+ });
95
+ break;
96
+ }
97
+ case 'function_call':
98
+ case 'tool_call':
99
+ case 'tool_use':
100
+ case 'action': {
101
+ const name = data.function?.name || data.name || data.tool || data.action;
102
+ const args = data.function?.arguments
103
+ ? typeof data.function.arguments === 'string'
104
+ ? JSON.parse(data.function.arguments)
105
+ : data.function.arguments
106
+ : data.arguments || data.input || data.params || {};
107
+ events.push({
108
+ timestamp: data.timestamp || data.ts,
109
+ type: 'tool_call',
110
+ tool: {
111
+ name: normalizeToolName(name),
112
+ originalName: name,
113
+ args,
114
+ },
115
+ raw: data,
116
+ });
117
+ break;
118
+ }
119
+ case 'function_result':
120
+ case 'tool_result':
121
+ case 'tool_response':
122
+ case 'action_result': {
123
+ events.push({
124
+ timestamp: data.timestamp || data.ts,
125
+ type: 'tool_result',
126
+ tool: {
127
+ name: 'unknown',
128
+ originalName: data.tool || data.function || 'unknown',
129
+ result: data.result || data.output || data.content,
130
+ success: data.success !== false && !data.error,
131
+ },
132
+ raw: data,
133
+ });
134
+ break;
135
+ }
136
+ case 'thinking':
137
+ case 'reasoning':
138
+ case 'thought': {
139
+ events.push({
140
+ timestamp: data.timestamp || data.ts,
141
+ type: 'thinking',
142
+ content: data.content || data.text || data.thought,
143
+ raw: data,
144
+ });
145
+ break;
146
+ }
147
+ case 'error': {
148
+ events.push({
149
+ timestamp: data.timestamp || data.ts,
150
+ type: 'error',
151
+ content: data.error?.message || data.message || data.content,
152
+ raw: data,
153
+ });
154
+ break;
155
+ }
156
+ // Codex Responses API events
157
+ case 'thread.started':
158
+ case 'thread.completed':
159
+ case 'turn.started':
160
+ case 'turn.completed':
161
+ case 'turn.failed': {
162
+ // These are control flow events, capture as metadata
163
+ events.push({
164
+ timestamp: data.timestamp || data.ts,
165
+ type: eventType === 'turn.failed' ? 'error' : 'message',
166
+ role: 'system',
167
+ content: eventType === 'turn.failed'
168
+ ? (data.error?.message || `Turn failed`)
169
+ : eventType,
170
+ raw: data,
171
+ });
172
+ break;
173
+ }
174
+ case 'response.created':
175
+ case 'response.completed':
176
+ case 'response.cancelled':
177
+ case 'response.failed': {
178
+ // Response lifecycle events
179
+ if (eventType === 'response.failed') {
180
+ events.push({
181
+ timestamp: data.timestamp || data.ts,
182
+ type: 'error',
183
+ content: data.error?.message || 'Response failed',
184
+ raw: data,
185
+ });
186
+ }
187
+ break;
188
+ }
189
+ case 'output_text.delta':
190
+ case 'output_text.done': {
191
+ // Text streaming events
192
+ if (data.text || data.delta) {
193
+ events.push({
194
+ timestamp: data.timestamp || data.ts,
195
+ type: 'message',
196
+ role: 'assistant',
197
+ content: data.text || data.delta,
198
+ raw: data,
199
+ });
200
+ }
201
+ break;
202
+ }
203
+ // Codex item events (item.started, item.completed)
204
+ case 'item.started':
205
+ case 'item.completed': {
206
+ const item = data.item;
207
+ if (!item)
208
+ break;
209
+ const itemType = item.type;
210
+ switch (itemType) {
211
+ case 'reasoning': {
212
+ // Reasoning is thinking
213
+ events.push({
214
+ timestamp: data.timestamp || data.ts,
215
+ type: 'thinking',
216
+ content: item.text || item.content,
217
+ raw: data,
218
+ });
219
+ break;
220
+ }
221
+ case 'command_execution': {
222
+ // Command execution is a shell tool call/result
223
+ if (eventType === 'item.started') {
224
+ events.push({
225
+ timestamp: data.timestamp || data.ts,
226
+ type: 'tool_call',
227
+ tool: {
228
+ name: 'shell',
229
+ originalName: 'command_execution',
230
+ args: {
231
+ command: item.command,
232
+ _extractedCommand: item.command,
233
+ },
234
+ },
235
+ raw: data,
236
+ });
237
+ }
238
+ else {
239
+ // item.completed
240
+ events.push({
241
+ timestamp: data.timestamp || data.ts,
242
+ type: 'tool_result',
243
+ tool: {
244
+ name: 'shell',
245
+ originalName: 'command_execution',
246
+ result: {
247
+ output: item.aggregated_output || item.output,
248
+ exitCode: item.exit_code,
249
+ },
250
+ success: item.status === 'completed' && (item.exit_code === 0 || item.exit_code === undefined),
251
+ },
252
+ raw: data,
253
+ });
254
+ }
255
+ break;
256
+ }
257
+ case 'agent_message': {
258
+ // Agent message is an assistant message
259
+ events.push({
260
+ timestamp: data.timestamp || data.ts,
261
+ type: 'message',
262
+ role: 'assistant',
263
+ content: item.text || item.content || item.message,
264
+ raw: data,
265
+ });
266
+ break;
267
+ }
268
+ }
269
+ break;
270
+ }
271
+ default: {
272
+ // Try to infer from structure
273
+ if (data.role === 'assistant' || data.role === 'user') {
274
+ events.push({
275
+ timestamp: data.timestamp || data.ts,
276
+ type: 'message',
277
+ role: data.role,
278
+ content: data.content || data.text,
279
+ raw: data,
280
+ });
281
+ }
282
+ else if (data.function || data.tool) {
283
+ // Looks like a tool call or result
284
+ if (data.result !== undefined || data.output !== undefined) {
285
+ events.push({
286
+ timestamp: data.timestamp || data.ts,
287
+ type: 'tool_result',
288
+ tool: {
289
+ name: 'unknown',
290
+ originalName: data.function || data.tool || 'unknown',
291
+ result: data.result || data.output,
292
+ success: !data.error,
293
+ },
294
+ raw: data,
295
+ });
296
+ }
297
+ else {
298
+ const name = data.function?.name || data.function || data.tool;
299
+ events.push({
300
+ timestamp: data.timestamp || data.ts,
301
+ type: 'tool_call',
302
+ tool: {
303
+ name: normalizeToolName(name),
304
+ originalName: name,
305
+ args: data.arguments || data.input || {},
306
+ },
307
+ raw: data,
308
+ });
309
+ }
310
+ }
311
+ }
312
+ }
313
+ }
314
+ catch {
315
+ // Skip unparseable lines
316
+ }
317
+ return events;
318
+ }
319
+ /**
320
+ * Parse Codex JSONL transcript into events.
321
+ */
322
+ export function parseCodexTranscript(raw) {
323
+ const events = [];
324
+ const errors = [];
325
+ const lines = raw.split('\n').filter((line) => line.trim());
326
+ for (const line of lines) {
327
+ try {
328
+ const lineEvents = parseCodexLine(line);
329
+ events.push(...lineEvents);
330
+ }
331
+ catch (e) {
332
+ errors.push(`Failed to parse line: ${e instanceof Error ? e.message : String(e)}`);
333
+ }
334
+ }
335
+ // Post-process to extract additional metadata
336
+ for (const event of events) {
337
+ if (event.type === 'tool_call' && event.tool) {
338
+ const args = event.tool.args || {};
339
+ // Extract file paths for file operations
340
+ if (['file_read', 'file_write', 'file_edit'].includes(event.tool.name)) {
341
+ const path = extractFilePath(args);
342
+ if (path) {
343
+ event.tool.args = { ...args, _extractedPath: path };
344
+ }
345
+ }
346
+ // Extract URLs for web fetches
347
+ if (event.tool.name === 'web_fetch') {
348
+ const url = extractUrl(args);
349
+ if (url) {
350
+ event.tool.args = { ...args, _extractedUrl: url };
351
+ }
352
+ }
353
+ // Extract commands for shell operations
354
+ if (event.tool.name === 'shell') {
355
+ const command = extractCommand(args);
356
+ if (command) {
357
+ event.tool.args = { ...args, _extractedCommand: command };
358
+ }
359
+ }
360
+ }
361
+ }
362
+ return { events, errors };
363
+ }
364
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/lib/o11y/parsers/codex.ts"],"names":[],"mappings":"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"}
@@ -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