braindump 0.4.5 → 1.0.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 (61) hide show
  1. package/README.md +73 -22
  2. package/dist/adapters/claude-code/adapter.d.ts.map +1 -1
  3. package/dist/adapters/claude-code/adapter.js +30 -3
  4. package/dist/adapters/claude-code/adapter.js.map +1 -1
  5. package/dist/adapters/codex/adapter.d.ts +1 -0
  6. package/dist/adapters/codex/adapter.d.ts.map +1 -1
  7. package/dist/adapters/codex/adapter.js +27 -0
  8. package/dist/adapters/codex/adapter.js.map +1 -1
  9. package/dist/adapters/copilot/adapter.d.ts +29 -0
  10. package/dist/adapters/copilot/adapter.d.ts.map +1 -0
  11. package/dist/adapters/copilot/adapter.js +501 -0
  12. package/dist/adapters/copilot/adapter.js.map +1 -0
  13. package/dist/adapters/cursor/adapter.d.ts +28 -0
  14. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  15. package/dist/adapters/cursor/adapter.js +283 -71
  16. package/dist/adapters/cursor/adapter.js.map +1 -1
  17. package/dist/adapters/droid/adapter.d.ts +27 -0
  18. package/dist/adapters/droid/adapter.d.ts.map +1 -0
  19. package/dist/adapters/droid/adapter.js +507 -0
  20. package/dist/adapters/droid/adapter.js.map +1 -0
  21. package/dist/adapters/gemini/adapter.d.ts +29 -0
  22. package/dist/adapters/gemini/adapter.d.ts.map +1 -0
  23. package/dist/adapters/gemini/adapter.js +456 -0
  24. package/dist/adapters/gemini/adapter.js.map +1 -0
  25. package/dist/adapters/index.d.ts.map +1 -1
  26. package/dist/adapters/index.js +8 -0
  27. package/dist/adapters/index.js.map +1 -1
  28. package/dist/adapters/opencode/adapter.d.ts +32 -0
  29. package/dist/adapters/opencode/adapter.d.ts.map +1 -0
  30. package/dist/adapters/opencode/adapter.js +643 -0
  31. package/dist/adapters/opencode/adapter.js.map +1 -0
  32. package/dist/cli/index.js +219 -42
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/core/compression.d.ts.map +1 -1
  35. package/dist/core/compression.js +12 -0
  36. package/dist/core/compression.js.map +1 -1
  37. package/dist/core/launcher.d.ts +20 -0
  38. package/dist/core/launcher.d.ts.map +1 -0
  39. package/dist/core/launcher.js +87 -0
  40. package/dist/core/launcher.js.map +1 -0
  41. package/dist/core/prompt-builder.d.ts.map +1 -1
  42. package/dist/core/prompt-builder.js +15 -0
  43. package/dist/core/prompt-builder.js.map +1 -1
  44. package/dist/core/registry.d.ts.map +1 -1
  45. package/dist/core/registry.js +48 -0
  46. package/dist/core/registry.js.map +1 -1
  47. package/dist/core/session-cache.d.ts +17 -0
  48. package/dist/core/session-cache.d.ts.map +1 -0
  49. package/dist/core/session-cache.js +59 -0
  50. package/dist/core/session-cache.js.map +1 -0
  51. package/dist/core/tool-summarizer.d.ts +40 -0
  52. package/dist/core/tool-summarizer.d.ts.map +1 -0
  53. package/dist/core/tool-summarizer.js +73 -0
  54. package/dist/core/tool-summarizer.js.map +1 -0
  55. package/dist/core/validation.d.ts +21 -2
  56. package/dist/core/validation.d.ts.map +1 -1
  57. package/dist/core/validation.js +6 -1
  58. package/dist/core/validation.js.map +1 -1
  59. package/dist/types/index.d.ts +7 -1
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/package.json +7 -1
@@ -0,0 +1,456 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { glob } from "glob";
5
+ import { BaseAdapter } from "../base-adapter.js";
6
+ import { analyzeConversation } from "../../core/conversation-analyzer.js";
7
+ import { extractProjectContext } from "../../core/project-context.js";
8
+ import { SummaryCollector } from "../../core/tool-summarizer.js";
9
+ import { validateSession } from "../../core/validation.js";
10
+ export class GeminiAdapter extends BaseAdapter {
11
+ agentId = "gemini";
12
+ get sessionsDir() {
13
+ return path.join(os.homedir(), ".gemini", "tmp");
14
+ }
15
+ async detect() {
16
+ if (!fs.existsSync(this.sessionsDir)) {
17
+ return false;
18
+ }
19
+ const files = await glob("*/chats/session-*.json", {
20
+ cwd: this.sessionsDir,
21
+ nodir: true,
22
+ });
23
+ return files.length > 0;
24
+ }
25
+ async listSessions(projectPath) {
26
+ if (!fs.existsSync(this.sessionsDir)) {
27
+ return [];
28
+ }
29
+ const files = await glob("*/chats/session-*.json", {
30
+ cwd: this.sessionsDir,
31
+ nodir: true,
32
+ absolute: true,
33
+ });
34
+ const sessions = [];
35
+ for (const filePath of files) {
36
+ let payload;
37
+ try {
38
+ payload = JSON.parse(fs.readFileSync(filePath, "utf-8"));
39
+ }
40
+ catch {
41
+ continue;
42
+ }
43
+ const resolvedProjectPath = this.extractProjectPath(payload);
44
+ if (projectPath && resolvedProjectPath) {
45
+ if (!this.pathsEqual(projectPath, resolvedProjectPath)) {
46
+ continue;
47
+ }
48
+ }
49
+ else if (projectPath && !resolvedProjectPath) {
50
+ continue;
51
+ }
52
+ const id = this.extractSessionId(payload, filePath);
53
+ const startedAt = this.sessionStartedAt(payload);
54
+ const lastActiveAt = this.sessionLastActiveAt(payload, filePath);
55
+ const preview = this.preview(payload);
56
+ const sortValue = Date.parse(lastActiveAt ?? startedAt ?? "") || 0;
57
+ sessions.push({
58
+ id,
59
+ startedAt,
60
+ lastActiveAt,
61
+ messageCount: Array.isArray(payload.messages) ? payload.messages.length : 0,
62
+ projectPath: resolvedProjectPath,
63
+ preview,
64
+ sortValue,
65
+ });
66
+ }
67
+ sessions.sort((a, b) => b.sortValue - a.sortValue);
68
+ return sessions.map(({ sortValue, ...session }) => session);
69
+ }
70
+ async capture(sessionId) {
71
+ const filePath = await this.findSessionFile(sessionId);
72
+ if (!filePath) {
73
+ throw new Error(`Session not found: ${sessionId}`);
74
+ }
75
+ let payload;
76
+ try {
77
+ payload = JSON.parse(fs.readFileSync(filePath, "utf-8"));
78
+ }
79
+ catch {
80
+ throw new Error(`Invalid Gemini session file: ${filePath}`);
81
+ }
82
+ const messages = [];
83
+ const fileChanges = new Map();
84
+ const decisionsFromThoughts = [];
85
+ const remainingFromThoughts = [];
86
+ const collector = new SummaryCollector();
87
+ let sessionStartedAt;
88
+ let lastAssistantMessage = "";
89
+ if (Array.isArray(payload.messages)) {
90
+ for (const message of payload.messages) {
91
+ if (!message || typeof message !== "object") {
92
+ continue;
93
+ }
94
+ const role = this.mapRole(message.role);
95
+ const timestamp = this.normalizeTimestamp(message.timestamp ?? message.createdAt ?? message.time);
96
+ if (!sessionStartedAt && timestamp) {
97
+ sessionStartedAt = timestamp;
98
+ }
99
+ const text = this.extractMessageText(message.parts);
100
+ if (text) {
101
+ messages.push({
102
+ role,
103
+ content: text,
104
+ timestamp,
105
+ });
106
+ if (role === "assistant") {
107
+ lastAssistantMessage = text;
108
+ }
109
+ }
110
+ if (Array.isArray(message.toolCalls)) {
111
+ for (const call of message.toolCalls) {
112
+ if (!call || typeof call !== "object") {
113
+ continue;
114
+ }
115
+ const toolName = this.firstString(call.name, call.toolName) || "Tool";
116
+ const args = call.args ?? call.arguments ?? call.input;
117
+ messages.push({
118
+ role: "tool",
119
+ content: this.serializeUnknown(args ?? {}),
120
+ toolName,
121
+ timestamp,
122
+ });
123
+ collector.record(this.summaryName(toolName), this.summarySample(toolName, args, call.resultDisplay));
124
+ const change = this.fileChangeFromToolCall(toolName, call);
125
+ if (change) {
126
+ fileChanges.set(change.path, change);
127
+ }
128
+ if (call.result != null) {
129
+ messages.push({
130
+ role: "tool",
131
+ content: this.serializeUnknown(call.result),
132
+ timestamp,
133
+ });
134
+ }
135
+ }
136
+ }
137
+ if (Array.isArray(message.thoughts)) {
138
+ for (const thought of message.thoughts) {
139
+ const description = typeof thought === "string"
140
+ ? this.firstString(thought)
141
+ : this.firstString(thought?.description, thought?.subject);
142
+ if (!description) {
143
+ continue;
144
+ }
145
+ decisionsFromThoughts.push(description);
146
+ if (/(todo|next|remaining|follow up)/i.test(description)) {
147
+ remainingFromThoughts.push(description);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ const usage = payload.tokenUsage || {};
154
+ const totalTokens = (this.toNumber(usage.inputTokens ?? usage.input_tokens) || 0) +
155
+ (this.toNumber(usage.outputTokens ?? usage.output_tokens) || 0);
156
+ const projectPath = this.extractProjectPath(payload) || process.cwd();
157
+ const projectContext = await extractProjectContext(projectPath);
158
+ const analysis = analyzeConversation(messages);
159
+ const decisions = this.unique([
160
+ ...analysis.decisions,
161
+ ...decisionsFromThoughts,
162
+ ]);
163
+ const remaining = this.unique(remainingFromThoughts);
164
+ const session = {
165
+ version: "1.0",
166
+ source: this.agentId,
167
+ capturedAt: new Date().toISOString(),
168
+ sessionId: this.extractSessionId(payload, filePath),
169
+ sessionStartedAt,
170
+ project: {
171
+ ...projectContext,
172
+ path: projectContext.path || projectPath,
173
+ name: projectContext.name || path.basename(projectPath),
174
+ },
175
+ conversation: {
176
+ messageCount: messages.length,
177
+ estimatedTokens: totalTokens,
178
+ messages,
179
+ },
180
+ filesChanged: Array.from(fileChanges.values()),
181
+ decisions,
182
+ blockers: analysis.blockers,
183
+ task: {
184
+ description: analysis.taskDescription,
185
+ completed: analysis.completedSteps,
186
+ remaining,
187
+ inProgress: lastAssistantMessage
188
+ ? lastAssistantMessage.slice(0, 200)
189
+ : undefined,
190
+ blockers: analysis.blockers,
191
+ },
192
+ toolActivity: collector.getSummaries(),
193
+ };
194
+ return validateSession(session);
195
+ }
196
+ async captureLatest(projectPath) {
197
+ const sessions = await this.listSessions(projectPath);
198
+ if (sessions.length === 0) {
199
+ throw new Error(projectPath
200
+ ? `No Gemini sessions found for project: ${projectPath}`
201
+ : "No Gemini sessions found");
202
+ }
203
+ return this.capture(sessions[0].id);
204
+ }
205
+ async findSessionFile(sessionId) {
206
+ if (!fs.existsSync(this.sessionsDir)) {
207
+ return null;
208
+ }
209
+ const files = await glob("*/chats/session-*.json", {
210
+ cwd: this.sessionsDir,
211
+ nodir: true,
212
+ absolute: true,
213
+ });
214
+ const direct = files.find((file) => path.basename(file, ".json") === sessionId);
215
+ if (direct) {
216
+ return direct;
217
+ }
218
+ for (const filePath of files) {
219
+ try {
220
+ const payload = JSON.parse(fs.readFileSync(filePath, "utf-8"));
221
+ if (this.extractSessionId(payload, filePath) === sessionId) {
222
+ return filePath;
223
+ }
224
+ }
225
+ catch {
226
+ // Skip unreadable files.
227
+ }
228
+ }
229
+ return null;
230
+ }
231
+ extractSessionId(payload, filePath) {
232
+ const id = this.firstString(payload.sessionId, payload.id);
233
+ if (id) {
234
+ return id;
235
+ }
236
+ return path.basename(filePath, ".json");
237
+ }
238
+ sessionStartedAt(payload) {
239
+ const direct = this.normalizeTimestamp(payload.createdAt);
240
+ if (direct) {
241
+ return direct;
242
+ }
243
+ if (!Array.isArray(payload.messages)) {
244
+ return undefined;
245
+ }
246
+ for (const message of payload.messages) {
247
+ const ts = this.normalizeTimestamp(message?.timestamp ?? message?.createdAt ?? message?.time);
248
+ if (ts) {
249
+ return ts;
250
+ }
251
+ }
252
+ return undefined;
253
+ }
254
+ sessionLastActiveAt(payload, filePath) {
255
+ const direct = this.normalizeTimestamp(payload.updatedAt);
256
+ if (direct) {
257
+ return direct;
258
+ }
259
+ if (Array.isArray(payload.messages)) {
260
+ for (let i = payload.messages.length - 1; i >= 0; i -= 1) {
261
+ const ts = this.normalizeTimestamp(payload.messages[i]?.timestamp ??
262
+ payload.messages[i]?.createdAt ??
263
+ payload.messages[i]?.time);
264
+ if (ts) {
265
+ return ts;
266
+ }
267
+ }
268
+ }
269
+ return this.normalizeTimestampFromMs(fs.statSync(filePath).mtimeMs);
270
+ }
271
+ preview(payload) {
272
+ if (!Array.isArray(payload.messages)) {
273
+ return undefined;
274
+ }
275
+ for (const message of payload.messages) {
276
+ if (!message || typeof message !== "object") {
277
+ continue;
278
+ }
279
+ const text = this.extractMessageText(message.parts);
280
+ if (text) {
281
+ return text.slice(0, 200);
282
+ }
283
+ }
284
+ return undefined;
285
+ }
286
+ extractProjectPath(payload) {
287
+ return this.firstString(payload.workingDirectory, payload.projectPath, payload.cwd);
288
+ }
289
+ mapRole(raw) {
290
+ const role = typeof raw === "string" ? raw.toLowerCase() : "";
291
+ if (role === "user") {
292
+ return "user";
293
+ }
294
+ if (role === "model" || role === "assistant") {
295
+ return "assistant";
296
+ }
297
+ if (role === "system") {
298
+ return "system";
299
+ }
300
+ if (role === "tool") {
301
+ return "tool";
302
+ }
303
+ return "assistant";
304
+ }
305
+ extractMessageText(parts) {
306
+ if (!Array.isArray(parts)) {
307
+ return "";
308
+ }
309
+ const textParts = [];
310
+ for (const part of parts) {
311
+ if (typeof part === "string") {
312
+ textParts.push(part);
313
+ continue;
314
+ }
315
+ if (!part || typeof part !== "object") {
316
+ continue;
317
+ }
318
+ const block = part;
319
+ const text = this.firstString(block.text, block.content);
320
+ if (text) {
321
+ textParts.push(text);
322
+ }
323
+ }
324
+ return textParts.join("\n").trim();
325
+ }
326
+ summaryName(toolNameRaw) {
327
+ const toolName = toolNameRaw.toLowerCase();
328
+ if (toolName.includes("write") || toolName.includes("edit")) {
329
+ return "Edit";
330
+ }
331
+ if (toolName.includes("read")) {
332
+ return "Read";
333
+ }
334
+ if (toolName.includes("mcp")) {
335
+ return "MCP";
336
+ }
337
+ if (toolName.includes("bash") || toolName.includes("shell")) {
338
+ return "Bash";
339
+ }
340
+ return "Tool";
341
+ }
342
+ summarySample(toolName, args, resultDisplay) {
343
+ const argObj = args && typeof args === "object" ? args : null;
344
+ const filePath = this.firstString(resultDisplay?.filePath, resultDisplay?.fileName, argObj?.path, argObj?.file_path, argObj?.filePath);
345
+ if (filePath) {
346
+ const added = this.toNumber(resultDisplay?.diffStat?.model_added_lines) || 0;
347
+ const removed = this.toNumber(resultDisplay?.diffStat?.model_removed_lines) || 0;
348
+ if (added || removed) {
349
+ return `${toolName} ${filePath} (+${added} -${removed})`;
350
+ }
351
+ return `${toolName} ${filePath}`;
352
+ }
353
+ if (argObj?.command && typeof argObj.command === "string") {
354
+ return argObj.command;
355
+ }
356
+ return toolName;
357
+ }
358
+ fileChangeFromToolCall(toolNameRaw, call) {
359
+ const display = call.resultDisplay;
360
+ const argObj = call.args && typeof call.args === "object"
361
+ ? call.args
362
+ : call.arguments && typeof call.arguments === "object"
363
+ ? call.arguments
364
+ : call.input && typeof call.input === "object"
365
+ ? call.input
366
+ : null;
367
+ const filePath = this.firstString(display?.filePath, display?.fileName, argObj?.path, argObj?.file_path, argObj?.filePath);
368
+ if (!filePath) {
369
+ return null;
370
+ }
371
+ const normalizedToolName = toolNameRaw.toLowerCase();
372
+ const changeType = display?.isNewFile || normalizedToolName.includes("create")
373
+ ? "created"
374
+ : normalizedToolName.includes("delete")
375
+ ? "deleted"
376
+ : "modified";
377
+ const diffStat = display?.diffStat;
378
+ const added = this.toNumber(diffStat?.model_added_lines) || 0;
379
+ const removed = this.toNumber(diffStat?.model_removed_lines) || 0;
380
+ const diff = added || removed ? `+${added} -${removed}` : undefined;
381
+ const ext = path.extname(filePath).slice(1);
382
+ return {
383
+ path: filePath,
384
+ changeType,
385
+ diff,
386
+ language: ext || undefined,
387
+ };
388
+ }
389
+ normalizeTimestamp(value) {
390
+ if (typeof value === "number" && Number.isFinite(value)) {
391
+ return new Date(value).toISOString();
392
+ }
393
+ if (typeof value === "string" && value.trim()) {
394
+ const ts = Date.parse(value);
395
+ if (!Number.isNaN(ts)) {
396
+ return new Date(ts).toISOString();
397
+ }
398
+ }
399
+ return undefined;
400
+ }
401
+ normalizeTimestampFromMs(value) {
402
+ if (!Number.isFinite(value)) {
403
+ return undefined;
404
+ }
405
+ return new Date(value).toISOString();
406
+ }
407
+ toNumber(value) {
408
+ if (typeof value === "number" && Number.isFinite(value)) {
409
+ return value;
410
+ }
411
+ if (typeof value === "string") {
412
+ const parsed = Number(value);
413
+ if (Number.isFinite(parsed)) {
414
+ return parsed;
415
+ }
416
+ }
417
+ return undefined;
418
+ }
419
+ serializeUnknown(value) {
420
+ if (typeof value === "string") {
421
+ return value;
422
+ }
423
+ try {
424
+ return JSON.stringify(value);
425
+ }
426
+ catch {
427
+ return String(value);
428
+ }
429
+ }
430
+ firstString(...values) {
431
+ for (const value of values) {
432
+ if (typeof value === "string" && value.trim()) {
433
+ return value.trim();
434
+ }
435
+ }
436
+ return undefined;
437
+ }
438
+ pathsEqual(a, b) {
439
+ const normalize = (value) => path.resolve(value).replace(/[\\/]+/g, "/").toLowerCase();
440
+ return normalize(a) === normalize(b);
441
+ }
442
+ unique(values) {
443
+ const seen = new Set();
444
+ const result = [];
445
+ for (const value of values) {
446
+ const trimmed = value.trim();
447
+ if (!trimmed || seen.has(trimmed)) {
448
+ continue;
449
+ }
450
+ seen.add(trimmed);
451
+ result.push(trimmed);
452
+ }
453
+ return result;
454
+ }
455
+ }
456
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/gemini/adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAc3B;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAqB5D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgCzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAsB3B;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,EAAE,CAE/C;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAqB5D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgCzF"}
@@ -1,6 +1,10 @@
1
1
  import { ClaudeCodeAdapter } from "./claude-code/adapter.js";
2
2
  import { CursorAdapter } from "./cursor/adapter.js";
3
3
  import { CodexAdapter } from "./codex/adapter.js";
4
+ import { CopilotAdapter } from "./copilot/adapter.js";
5
+ import { GeminiAdapter } from "./gemini/adapter.js";
6
+ import { DroidAdapter } from "./droid/adapter.js";
7
+ import { OpenCodeAdapter } from "./opencode/adapter.js";
4
8
  /**
5
9
  * Registry of all available adapters.
6
10
  */
@@ -8,6 +12,10 @@ const adapters = {
8
12
  "claude-code": new ClaudeCodeAdapter(),
9
13
  cursor: new CursorAdapter(),
10
14
  codex: new CodexAdapter(),
15
+ copilot: new CopilotAdapter(),
16
+ gemini: new GeminiAdapter(),
17
+ opencode: new OpenCodeAdapter(),
18
+ droid: new DroidAdapter(),
11
19
  };
12
20
  /**
13
21
  * Get an adapter by agent ID.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { BaseAdapter } from "../base-adapter.js";
2
+ import type { AgentId, CapturedSession, SessionInfo } from "../../types/index.js";
3
+ export declare class OpenCodeAdapter extends BaseAdapter {
4
+ agentId: AgentId;
5
+ private get rootDir();
6
+ private get sqlitePath();
7
+ private get storageDir();
8
+ detect(): Promise<boolean>;
9
+ listSessions(projectPath?: string): Promise<SessionInfo[]>;
10
+ capture(sessionId: string): Promise<CapturedSession>;
11
+ captureLatest(projectPath?: string): Promise<CapturedSession>;
12
+ private listSessionsFromDb;
13
+ private listSessionsFromJson;
14
+ private captureFromDb;
15
+ private captureFromJson;
16
+ private buildCapturedSession;
17
+ private openDatabase;
18
+ private parseJsonObject;
19
+ private parsePartPayload;
20
+ private mapRole;
21
+ private summaryName;
22
+ private summarySample;
23
+ private fileChangeFromTool;
24
+ private extractUsageTokens;
25
+ private normalizeTimestamp;
26
+ private normalizeTimestampFromMs;
27
+ private toNumber;
28
+ private firstString;
29
+ private serializeUnknown;
30
+ private pathsEqual;
31
+ }
32
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EAGf,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,OAAO,EAAE,OAAO,CAAc;IAE9B,OAAO,KAAK,OAAO,GAelB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAEK,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAc1B,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQ1D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYpD,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYnE,OAAO,CAAC,kBAAkB;YAuDZ,oBAAoB;YAqDpB,aAAa;YAsJb,eAAe;YA8Kf,oBAAoB;IA+ClC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,UAAU;CAMnB"}