@opencode-trace/cli 0.0.4 → 0.0.6

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 (70) hide show
  1. package/README.md +2 -3
  2. package/dist/formatter.d.ts.map +1 -1
  3. package/dist/formatter.js +16 -6
  4. package/dist/formatter.js.map +1 -1
  5. package/dist/formatter.test.d.ts +2 -0
  6. package/dist/formatter.test.d.ts.map +1 -0
  7. package/dist/formatter.test.js +232 -0
  8. package/dist/formatter.test.js.map +1 -0
  9. package/dist/handlers/disable.test.d.ts +2 -0
  10. package/dist/handlers/disable.test.d.ts.map +1 -0
  11. package/dist/handlers/disable.test.js +115 -0
  12. package/dist/handlers/disable.test.js.map +1 -0
  13. package/dist/handlers/enable.d.ts.map +1 -1
  14. package/dist/handlers/enable.js +26 -17
  15. package/dist/handlers/enable.js.map +1 -1
  16. package/dist/handlers/enable.test.d.ts +2 -0
  17. package/dist/handlers/enable.test.d.ts.map +1 -0
  18. package/dist/handlers/enable.test.js +125 -0
  19. package/dist/handlers/enable.test.js.map +1 -0
  20. package/dist/handlers/export.d.ts.map +1 -1
  21. package/dist/handlers/export.js +8 -6
  22. package/dist/handlers/export.js.map +1 -1
  23. package/dist/handlers/export.test.d.ts +2 -0
  24. package/dist/handlers/export.test.d.ts.map +1 -0
  25. package/dist/handlers/export.test.js +492 -0
  26. package/dist/handlers/export.test.js.map +1 -0
  27. package/dist/handlers/list.d.ts.map +1 -1
  28. package/dist/handlers/list.js +4 -1
  29. package/dist/handlers/list.js.map +1 -1
  30. package/dist/handlers/list.test.d.ts +2 -0
  31. package/dist/handlers/list.test.d.ts.map +1 -0
  32. package/dist/handlers/list.test.js +154 -0
  33. package/dist/handlers/list.test.js.map +1 -0
  34. package/dist/handlers/show.d.ts.map +1 -1
  35. package/dist/handlers/show.js +1 -1
  36. package/dist/handlers/show.js.map +1 -1
  37. package/dist/handlers/show.test.d.ts +2 -0
  38. package/dist/handlers/show.test.d.ts.map +1 -0
  39. package/dist/handlers/show.test.js +322 -0
  40. package/dist/handlers/show.test.js.map +1 -0
  41. package/dist/handlers/status.d.ts.map +1 -1
  42. package/dist/handlers/status.js +23 -17
  43. package/dist/handlers/status.js.map +1 -1
  44. package/dist/handlers/status.test.d.ts +2 -0
  45. package/dist/handlers/status.test.d.ts.map +1 -0
  46. package/dist/handlers/status.test.js +141 -0
  47. package/dist/handlers/status.test.js.map +1 -0
  48. package/dist/handlers/sync.d.ts.map +1 -1
  49. package/dist/handlers/sync.js +5 -5
  50. package/dist/handlers/sync.js.map +1 -1
  51. package/dist/handlers/sync.test.d.ts +2 -0
  52. package/dist/handlers/sync.test.d.ts.map +1 -0
  53. package/dist/handlers/sync.test.js +120 -0
  54. package/dist/handlers/sync.test.js.map +1 -0
  55. package/dist/handlers/viewer.js +7 -7
  56. package/dist/handlers/viewer.js.map +1 -1
  57. package/dist/handlers/viewer.test.js +27 -23
  58. package/dist/handlers/viewer.test.js.map +1 -1
  59. package/dist/index.js +24 -16
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.test.js +4 -4
  62. package/dist/index.test.js.map +1 -1
  63. package/dist/utils.d.ts.map +1 -1
  64. package/dist/utils.js +20 -3
  65. package/dist/utils.js.map +1 -1
  66. package/dist/utils.test.d.ts +2 -0
  67. package/dist/utils.test.d.ts.map +1 -0
  68. package/dist/utils.test.js +250 -0
  69. package/dist/utils.test.js.map +1 -0
  70. package/package.json +3 -2
@@ -0,0 +1,492 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
+ import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join, resolve } from "node:path";
5
+ vi.mock("node:os", async (importOriginal) => {
6
+ const original = await importOriginal();
7
+ return {
8
+ ...original,
9
+ homedir: () => {
10
+ const testDir = process.env._TEST_DIR_;
11
+ if (testDir)
12
+ return testDir;
13
+ return original.homedir();
14
+ },
15
+ };
16
+ });
17
+ vi.mock("@opencode-trace/core", async (importOriginal) => {
18
+ const original = await importOriginal();
19
+ return {
20
+ ...original,
21
+ store: {
22
+ ...original.store,
23
+ getSessionRecords: vi.fn(),
24
+ exportSessionZip: vi.fn(),
25
+ readSessionMetadata: vi.fn(),
26
+ },
27
+ parse: {
28
+ ...original.parse,
29
+ detectAndParse: vi.fn(),
30
+ },
31
+ query: {
32
+ ...original.query,
33
+ buildSessionMetadata: vi.fn(),
34
+ buildSessionTimeline: vi.fn(),
35
+ },
36
+ record: {
37
+ ...original.record,
38
+ initStateManager: vi.fn().mockResolvedValue(undefined),
39
+ },
40
+ format: {
41
+ ...original.format,
42
+ collapseConversations: vi.fn(),
43
+ collapseDeltas: vi.fn(),
44
+ },
45
+ };
46
+ });
47
+ vi.mock("node:fs", async (importOriginal) => {
48
+ const original = await importOriginal();
49
+ return {
50
+ ...original,
51
+ writeFileSync: vi.fn(),
52
+ mkdirSync: vi.fn(),
53
+ };
54
+ });
55
+ import { cmdExport } from "./export.js";
56
+ import { LOCAL_TRACE_DIR } from "../utils.js";
57
+ import { store as mockedStore, parse as mockedParse, query as mockedQuery, record as mockedRecord, format as mockedFormat, } from "@opencode-trace/core";
58
+ const getSessionRecordsMock = vi.mocked(mockedStore.getSessionRecords);
59
+ const exportSessionZipMock = vi.mocked(mockedStore.exportSessionZip);
60
+ const readSessionMetadataMock = vi.mocked(mockedStore.readSessionMetadata);
61
+ const detectAndParseMock = vi.mocked(mockedParse.detectAndParse);
62
+ const buildSessionMetadataMock = vi.mocked(mockedQuery.buildSessionMetadata);
63
+ const buildSessionTimelineMock = vi.mocked(mockedQuery.buildSessionTimeline);
64
+ const initStateManagerMock = vi.mocked(mockedRecord.initStateManager);
65
+ const collapseConversationsMock = vi.mocked(mockedFormat.collapseConversations);
66
+ const collapseDeltasMock = vi.mocked(mockedFormat.collapseDeltas);
67
+ let testDir;
68
+ let logSpy;
69
+ let errSpy;
70
+ let exitSpy;
71
+ function makeRecord(id) {
72
+ return {
73
+ id,
74
+ purpose: "chat",
75
+ requestAt: `2024-01-01T00:00:0${id}Z`,
76
+ responseAt: `2024-01-01T00:00:0${id}Z`,
77
+ request: { method: "POST", url: "https://api.test/v1/chat", headers: {}, body: {} },
78
+ response: { status: 200, statusText: "OK", headers: {}, body: {} },
79
+ error: null,
80
+ };
81
+ }
82
+ function makeConversation(provider = "openai") {
83
+ return {
84
+ provider,
85
+ model: "gpt-4",
86
+ msgs: [
87
+ { id: "msg-1", role: "user", blocks: [{ type: "text", text: "hi" }] },
88
+ ],
89
+ usage: null,
90
+ stream: false,
91
+ };
92
+ }
93
+ function makeDelta() {
94
+ return {
95
+ msgs: [
96
+ { id: "msg-1", added: [{ type: "text", text: "hello" }], removed: [] },
97
+ ],
98
+ };
99
+ }
100
+ function makeTimeline(records) {
101
+ return {
102
+ sessionId: "my-session",
103
+ totalRequests: records.length,
104
+ changes: records.map((r) => ({
105
+ requestId: r.id,
106
+ delta: makeDelta(),
107
+ interRequestDuration: null,
108
+ isUserCall: r.id === 1,
109
+ })),
110
+ };
111
+ }
112
+ beforeEach(() => {
113
+ testDir = mkdtempSync(join(tmpdir(), "cli-export-test-"));
114
+ process.env._TEST_DIR_ = testDir;
115
+ vi.clearAllMocks();
116
+ logSpy = vi.spyOn(console, "log").mockImplementation(() => { });
117
+ errSpy = vi.spyOn(console, "error").mockImplementation(() => { });
118
+ exitSpy = vi.spyOn(process, "exit").mockImplementation(((code) => {
119
+ throw new Error(`exit_${code}`);
120
+ }));
121
+ // Default mocks: session is found via metadata; records are non-empty
122
+ readSessionMetadataMock.mockReturnValue({ sessionId: "my-session" });
123
+ getSessionRecordsMock.mockReturnValue([makeRecord(1)]);
124
+ detectAndParseMock.mockReturnValue(makeConversation());
125
+ buildSessionMetadataMock.mockReturnValue({
126
+ sessionId: "my-session",
127
+ tokenUsage: {
128
+ inputMissTokens: 0,
129
+ inputHitTokens: 0,
130
+ outputTokens: 0,
131
+ totalTokens: 0,
132
+ cacheHitRate: 0,
133
+ },
134
+ requestCount: 1,
135
+ subSessions: [],
136
+ parentSession: null,
137
+ createdAt: null,
138
+ updatedAt: null,
139
+ latencyStats: null,
140
+ durationStats: null,
141
+ });
142
+ buildSessionTimelineMock.mockReturnValue(makeTimeline([{ id: 1 }]));
143
+ initStateManagerMock.mockResolvedValue(undefined);
144
+ collapseConversationsMock.mockReturnValue({
145
+ main: "<root/>",
146
+ blocks: new Map(),
147
+ });
148
+ collapseDeltasMock.mockReturnValue({
149
+ main: "<root/>",
150
+ blocks: new Map(),
151
+ });
152
+ exportSessionZipMock.mockResolvedValue(Buffer.from("PKZIPDATA"));
153
+ });
154
+ afterEach(() => {
155
+ rmSync(testDir, { recursive: true, force: true });
156
+ delete process.env._TEST_DIR_;
157
+ vi.restoreAllMocks();
158
+ });
159
+ describe("cmdExport - error paths", () => {
160
+ it("exits with 1 when sessionId is missing", async () => {
161
+ await expect(cmdExport([])).rejects.toThrow("exit_1");
162
+ expect(errSpy).toHaveBeenCalledWith("Error: session-id is required");
163
+ expect(exitSpy).toHaveBeenCalledWith(1);
164
+ });
165
+ it("exits with 1 when -t or -o is missing", async () => {
166
+ await expect(cmdExport(["my-session"])).rejects.toThrow("exit_1");
167
+ expect(errSpy).toHaveBeenCalledWith("Error: -t <type> and -o <path> are required");
168
+ });
169
+ it("exits with 1 when only -t is provided (no -o)", async () => {
170
+ await expect(cmdExport(["my-session", "-t", "metadata"])).rejects.toThrow("exit_1");
171
+ });
172
+ it("exits with 1 when session not found", async () => {
173
+ readSessionMetadataMock.mockReturnValue(null);
174
+ getSessionRecordsMock.mockReturnValue([]);
175
+ await expect(cmdExport(["nonexistent", "-t", "metadata", "-o", "/tmp/out.json"])).rejects.toThrow("exit_1");
176
+ expect(errSpy).toHaveBeenCalledWith("Session not found: nonexistent");
177
+ });
178
+ it("exits with 1 when no records found", async () => {
179
+ getSessionRecordsMock.mockReturnValue([]);
180
+ await expect(cmdExport(["my-session", "-t", "metadata", "-o", "/tmp/out.json"])).rejects.toThrow("exit_1");
181
+ expect(errSpy).toHaveBeenCalledWith("No records found");
182
+ });
183
+ it("exits with 1 for unknown export type (caught by parseFlags)", async () => {
184
+ await expect(cmdExport(["my-session", "-t", "unknown", "-o", "/tmp/out"])).rejects.toThrow("exit_1");
185
+ expect(errSpy).toHaveBeenCalledWith("Error: Invalid export type: unknown. Valid: metadata, conversation, changes, raw");
186
+ });
187
+ it("exits with 1 for invalid --format value", async () => {
188
+ await expect(cmdExport([
189
+ "my-session",
190
+ "-t",
191
+ "metadata",
192
+ "-o",
193
+ "out.json",
194
+ "--format",
195
+ "invalid",
196
+ ])).rejects.toThrow("exit_1");
197
+ expect(errSpy).toHaveBeenCalledWith("Error: Invalid format: invalid. Valid: json, xml");
198
+ });
199
+ });
200
+ describe("cmdExport - metadata type", () => {
201
+ const META_OUT = resolve(join(tmpdir(), "metadata-out.json"));
202
+ const META_OUT_ALT = resolve(join(tmpdir(), "meta.json"));
203
+ it("writes the metadata to the output file as pretty JSON and reports success", async () => {
204
+ await cmdExport([
205
+ "my-session",
206
+ "-t",
207
+ "metadata",
208
+ "-o",
209
+ META_OUT,
210
+ ]);
211
+ expect(initStateManagerMock).toHaveBeenCalled();
212
+ expect(getSessionRecordsMock).toHaveBeenCalledWith("my-session", {
213
+ traceDir: LOCAL_TRACE_DIR,
214
+ });
215
+ expect(detectAndParseMock).toHaveBeenCalledTimes(1);
216
+ expect(buildSessionMetadataMock).toHaveBeenCalledTimes(1);
217
+ const args = buildSessionMetadataMock.mock.calls[0];
218
+ expect(args[0]).toBe("my-session");
219
+ expect(args[1]).toHaveLength(1);
220
+ expect(args[1][0].id).toBe(1);
221
+ expect(args[1][0].parsed).toBeDefined();
222
+ expect(writeFileSync).toHaveBeenCalledTimes(1);
223
+ expect(writeFileSync).toHaveBeenCalledWith(META_OUT, expect.stringContaining('"sessionId": "my-session"'), "utf-8");
224
+ expect(logSpy).toHaveBeenCalledWith(JSON.stringify({ success: true, path: META_OUT }));
225
+ });
226
+ it("merges createdAt, updatedAt, and enabled from sessionMeta when present", async () => {
227
+ readSessionMetadataMock.mockReturnValue({
228
+ sessionId: "my-session",
229
+ title: "Sample",
230
+ createdAt: "2024-05-01T00:00:00Z",
231
+ updatedAt: "2024-05-01T01:00:00Z",
232
+ enabled: true,
233
+ });
234
+ await cmdExport([
235
+ "my-session",
236
+ "-t",
237
+ "metadata",
238
+ "-o",
239
+ META_OUT_ALT,
240
+ ]);
241
+ expect(writeFileSync).toHaveBeenCalledTimes(1);
242
+ const written = writeFileSync.mock.calls[0][1];
243
+ const parsed = JSON.parse(written);
244
+ expect(parsed.createdAt).toBe("2024-05-01T00:00:00Z");
245
+ expect(parsed.updatedAt).toBe("2024-05-01T01:00:00Z");
246
+ expect(parsed.enabled).toBe(true);
247
+ });
248
+ it("falls back gracefully when sessionMeta is null (no enabled field added)", async () => {
249
+ // findSessionTraceDir uses readSessionMetadata first; let it return
250
+ // valid for the first call (LOCAL dir) to pick that dir, then null
251
+ // for the subsequent call from export.ts.
252
+ let callCount = 0;
253
+ readSessionMetadataMock.mockImplementation(() => {
254
+ callCount++;
255
+ if (callCount === 1)
256
+ return { sessionId: "my-session" };
257
+ return null;
258
+ });
259
+ await cmdExport([
260
+ "my-session",
261
+ "-t",
262
+ "metadata",
263
+ "-o",
264
+ META_OUT_ALT,
265
+ ]);
266
+ const written = writeFileSync.mock.calls[0][1];
267
+ const parsed = JSON.parse(written);
268
+ expect(parsed.sessionId).toBe("my-session");
269
+ expect(parsed.enabled).toBeUndefined();
270
+ });
271
+ });
272
+ describe("cmdExport - conversation type", () => {
273
+ const CONV_FOLDER = resolve(join(tmpdir(), "out-folder"));
274
+ const CONV_OUT = resolve(join(tmpdir(), "conv-out"));
275
+ const CONV_OUT_MAIN_XML = join(CONV_OUT, "main.xml");
276
+ const CONV_OUT_JSON_FORBIDDEN = resolve(join(tmpdir(), "out.json"));
277
+ const CONV_OUT_XML_FORBIDDEN = resolve(join(tmpdir(), "out.xml"));
278
+ it("calls collapseConversations and writeCollapsedExport, writes to folder", async () => {
279
+ await cmdExport([
280
+ "my-session",
281
+ "-t",
282
+ "conversation",
283
+ "-o",
284
+ CONV_FOLDER,
285
+ ]);
286
+ expect(collapseConversationsMock).toHaveBeenCalledTimes(1);
287
+ const convArgs = collapseConversationsMock.mock.calls[0];
288
+ // conversations map: last record id (1) only by default
289
+ expect(Object.keys(convArgs[0])).toEqual(["1"]);
290
+ expect(convArgs[1]).toMatchObject({
291
+ collapse: undefined,
292
+ collapseBlocks: undefined,
293
+ format: "json",
294
+ });
295
+ // writeCollapsedExport is the real function and calls writeFileSync + mkdirSync
296
+ expect(mkdirSync).toHaveBeenCalledWith(CONV_FOLDER, { recursive: true });
297
+ expect(writeFileSync).toHaveBeenCalledWith(join(CONV_FOLDER, "main.json"), "<root/>", "utf-8");
298
+ expect(logSpy).toHaveBeenCalledWith(JSON.stringify({ success: true, path: CONV_FOLDER, files: 1 }));
299
+ });
300
+ it("exits with 1 when -o ends with .json (must be folder)", async () => {
301
+ await expect(cmdExport([
302
+ "my-session",
303
+ "-t",
304
+ "conversation",
305
+ "-o",
306
+ CONV_OUT_JSON_FORBIDDEN,
307
+ ])).rejects.toThrow("exit_1");
308
+ expect(errSpy).toHaveBeenCalledWith("Error: Output path must be a folder for export");
309
+ });
310
+ it("exits with 1 when -o ends with .xml (must be folder)", async () => {
311
+ await expect(cmdExport([
312
+ "my-session",
313
+ "-t",
314
+ "conversation",
315
+ "-o",
316
+ CONV_OUT_XML_FORBIDDEN,
317
+ ])).rejects.toThrow("exit_1");
318
+ expect(errSpy).toHaveBeenCalledWith("Error: Output path must be a folder for export");
319
+ });
320
+ it("filters records by -r 1:3 (only records in range)", async () => {
321
+ getSessionRecordsMock.mockReturnValue([
322
+ makeRecord(1),
323
+ makeRecord(2),
324
+ makeRecord(3),
325
+ ]);
326
+ await cmdExport([
327
+ "my-session",
328
+ "-t",
329
+ "conversation",
330
+ "-o",
331
+ CONV_OUT,
332
+ "-r",
333
+ "1:3",
334
+ ]);
335
+ const convArgs = collapseConversationsMock.mock.calls[0];
336
+ const convMap = convArgs[0];
337
+ // inRange is half-open: 1:3 => ids 1, 2 only
338
+ expect(Object.keys(convMap).sort()).toEqual(["1", "2"]);
339
+ });
340
+ it("uses --collapse sys,msgs and passes parsed list to collapseConversations", async () => {
341
+ await cmdExport([
342
+ "my-session",
343
+ "-t",
344
+ "conversation",
345
+ "-o",
346
+ CONV_OUT,
347
+ "--collapse",
348
+ "sys,msgs",
349
+ ]);
350
+ const convArgs = collapseConversationsMock.mock.calls[0];
351
+ expect(convArgs[1]).toMatchObject({ collapse: ["sys", "msgs"] });
352
+ });
353
+ it("uses --collapse-blocks text,thinking and passes parsed list to collapseConversations", async () => {
354
+ await cmdExport([
355
+ "my-session",
356
+ "-t",
357
+ "conversation",
358
+ "-o",
359
+ CONV_OUT,
360
+ "--collapse-blocks",
361
+ "text,thinking",
362
+ ]);
363
+ const convArgs = collapseConversationsMock.mock.calls[0];
364
+ expect(convArgs[1]).toMatchObject({
365
+ collapseBlocks: ["text", "thinking"],
366
+ });
367
+ });
368
+ it("uses --format xml and writes main.xml with format=xml passed through", async () => {
369
+ await cmdExport([
370
+ "my-session",
371
+ "-t",
372
+ "conversation",
373
+ "-o",
374
+ CONV_OUT,
375
+ "--format",
376
+ "xml",
377
+ ]);
378
+ const convArgs = collapseConversationsMock.mock.calls[0];
379
+ expect(convArgs[1]).toMatchObject({ format: "xml" });
380
+ expect(writeFileSync).toHaveBeenCalledWith(CONV_OUT_MAIN_XML, "<root/>", "utf-8");
381
+ });
382
+ });
383
+ describe("cmdExport - changes type", () => {
384
+ const CHANGES_OUT = resolve(join(tmpdir(), "changes"));
385
+ const CHANGES_OUT_FORBIDDEN = resolve(join(tmpdir(), "out.json"));
386
+ it("calls buildSessionTimeline, collapseDeltas, and writeCollapsedExport", async () => {
387
+ getSessionRecordsMock.mockReturnValue([
388
+ makeRecord(1),
389
+ makeRecord(2),
390
+ makeRecord(3),
391
+ ]);
392
+ buildSessionTimelineMock.mockReturnValue(makeTimeline([{ id: 1 }, { id: 2 }, { id: 3 }]));
393
+ await cmdExport([
394
+ "my-session",
395
+ "-t",
396
+ "changes",
397
+ "-o",
398
+ CHANGES_OUT,
399
+ ]);
400
+ expect(buildSessionTimelineMock).toHaveBeenCalledTimes(1);
401
+ expect(collapseDeltasMock).toHaveBeenCalledTimes(1);
402
+ expect(mkdirSync).toHaveBeenCalledWith(CHANGES_OUT, { recursive: true });
403
+ expect(writeFileSync).toHaveBeenCalledWith(join(CHANGES_OUT, "main.json"), "<root/>", "utf-8");
404
+ expect(logSpy).toHaveBeenCalledWith(JSON.stringify({ success: true, path: CHANGES_OUT, files: 1 }));
405
+ });
406
+ it("exits with 1 when -o ends with .json", async () => {
407
+ await expect(cmdExport(["my-session", "-t", "changes", "-o", CHANGES_OUT_FORBIDDEN])).rejects.toThrow("exit_1");
408
+ expect(errSpy).toHaveBeenCalledWith("Error: Output path must be a folder for export");
409
+ });
410
+ it("with -r 2: (open end) includes changes from 2 to last (upper-exclusive)", async () => {
411
+ getSessionRecordsMock.mockReturnValue([
412
+ makeRecord(1),
413
+ makeRecord(2),
414
+ makeRecord(3),
415
+ ]);
416
+ buildSessionTimelineMock.mockReturnValue(makeTimeline([{ id: 1 }, { id: 2 }, { id: 3 }]));
417
+ await cmdExport([
418
+ "my-session",
419
+ "-t",
420
+ "changes",
421
+ "-o",
422
+ CHANGES_OUT,
423
+ "-r",
424
+ "2:",
425
+ ]);
426
+ const deltasArgs = collapseDeltasMock.mock.calls[0];
427
+ const deltasMap = deltasArgs[0];
428
+ // parseRange("2:", lastReqId=3) => {start:2, end:null}; includes 2,3
429
+ expect(Object.keys(deltasMap).sort()).toEqual(["2", "3"]);
430
+ });
431
+ it("without -r includes all changes (range is null)", async () => {
432
+ getSessionRecordsMock.mockReturnValue([
433
+ makeRecord(1),
434
+ makeRecord(2),
435
+ ]);
436
+ buildSessionTimelineMock.mockReturnValue(makeTimeline([{ id: 1 }, { id: 2 }]));
437
+ await cmdExport([
438
+ "my-session",
439
+ "-t",
440
+ "changes",
441
+ "-o",
442
+ CHANGES_OUT,
443
+ ]);
444
+ const deltasArgs = collapseDeltasMock.mock.calls[0];
445
+ const deltasMap = deltasArgs[0];
446
+ expect(Object.keys(deltasMap).sort()).toEqual(["1", "2"]);
447
+ });
448
+ });
449
+ describe("cmdExport - raw type", () => {
450
+ const RAW_OUT_ZIP = resolve(join(tmpdir(), "out.zip"));
451
+ it("calls exportSessionZip and writes the buffer via writeFileSync", async () => {
452
+ const buf = Buffer.from("PKZIPDATA");
453
+ exportSessionZipMock.mockResolvedValue(buf);
454
+ await cmdExport([
455
+ "my-session",
456
+ "-t",
457
+ "raw",
458
+ "-o",
459
+ RAW_OUT_ZIP,
460
+ ]);
461
+ expect(exportSessionZipMock).toHaveBeenCalledWith("my-session", {
462
+ traceDir: LOCAL_TRACE_DIR,
463
+ });
464
+ expect(writeFileSync).toHaveBeenCalledTimes(1);
465
+ expect(writeFileSync).toHaveBeenCalledWith(RAW_OUT_ZIP, buf);
466
+ expect(logSpy).toHaveBeenCalledWith(JSON.stringify({ success: true, path: RAW_OUT_ZIP }));
467
+ });
468
+ it("warns to console.error when -r is given with -t raw, but still exports", async () => {
469
+ const buf = Buffer.from("PKZIPDATA");
470
+ exportSessionZipMock.mockResolvedValue(buf);
471
+ await cmdExport([
472
+ "my-session",
473
+ "-t",
474
+ "raw",
475
+ "-o",
476
+ RAW_OUT_ZIP,
477
+ "-r",
478
+ "1:3",
479
+ ]);
480
+ expect(errSpy).toHaveBeenCalledWith("Warning: -r parameter is not applicable for raw export type");
481
+ expect(exportSessionZipMock).toHaveBeenCalledTimes(1);
482
+ expect(writeFileSync).toHaveBeenCalledWith(RAW_OUT_ZIP, buf);
483
+ expect(logSpy).toHaveBeenCalledWith(JSON.stringify({ success: true, path: RAW_OUT_ZIP }));
484
+ });
485
+ it("exits with 1 and logs error when exportSessionZip throws", async () => {
486
+ exportSessionZipMock.mockRejectedValue(new Error("zip failure"));
487
+ await expect(cmdExport(["my-session", "-t", "raw", "-o", RAW_OUT_ZIP])).rejects.toThrow("exit_1");
488
+ expect(errSpy).toHaveBeenCalledWith("Failed to export: zip failure");
489
+ expect(writeFileSync).not.toHaveBeenCalled();
490
+ });
491
+ });
492
+ //# sourceMappingURL=export.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.test.js","sourceRoot":"","sources":["../../src/handlers/export.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/handlers/list.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAc5C"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/handlers/list.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiB5C"}
@@ -1,7 +1,10 @@
1
1
  import { store } from "@opencode-trace/core";
2
2
  import { GLOBAL_TRACE_DIR, LOCAL_TRACE_DIR } from "../utils.js";
3
3
  export function cmdList(args) {
4
- const sessions = store.listSessionsFromBothDirs({ globalDir: GLOBAL_TRACE_DIR, localDir: LOCAL_TRACE_DIR });
4
+ const sessions = store.listSessionsFromBothDirs({
5
+ globalDir: GLOBAL_TRACE_DIR,
6
+ localDir: LOCAL_TRACE_DIR,
7
+ });
5
8
  if (sessions.length === 0) {
6
9
  console.log("No sessions found.");
7
10
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/handlers/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IAE5G,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,EAAE,IAAI,QAAQ,WAAW,CAAC,CAAC,KAAK,IAAI,GAAG,aAAa,CAAC,CAAC,SAAS,IAAI,GAAG,aAAa,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/handlers/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,wBAAwB,CAAC;QAC9C,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9D,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,EAAE,IAAI,QAAQ,WAAW,CAAC,CAAC,KAAK,IAAI,GAAG,aAAa,CAAC,CAAC,SAAS,IAAI,GAAG,aAAa,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=list.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../../src/handlers/list.test.ts"],"names":[],"mappings":""}