@nocoo/pew 0.8.0 → 0.9.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 (81) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/commands/session-sync.d.ts +4 -0
  3. package/dist/commands/session-sync.d.ts.map +1 -1
  4. package/dist/commands/session-sync.js +97 -317
  5. package/dist/commands/session-sync.js.map +1 -1
  6. package/dist/commands/sync.d.ts.map +1 -1
  7. package/dist/commands/sync.js +112 -330
  8. package/dist/commands/sync.js.map +1 -1
  9. package/dist/drivers/registry.d.ts +63 -0
  10. package/dist/drivers/registry.d.ts.map +1 -0
  11. package/dist/drivers/registry.js +88 -0
  12. package/dist/drivers/registry.js.map +1 -0
  13. package/dist/drivers/session/claude-session-driver.d.ts +10 -0
  14. package/dist/drivers/session/claude-session-driver.d.ts.map +1 -0
  15. package/dist/drivers/session/claude-session-driver.js +29 -0
  16. package/dist/drivers/session/claude-session-driver.js.map +1 -0
  17. package/dist/drivers/session/codex-session-driver.d.ts +10 -0
  18. package/dist/drivers/session/codex-session-driver.d.ts.map +1 -0
  19. package/dist/drivers/session/codex-session-driver.js +29 -0
  20. package/dist/drivers/session/codex-session-driver.js.map +1 -0
  21. package/dist/drivers/session/gemini-session-driver.d.ts +10 -0
  22. package/dist/drivers/session/gemini-session-driver.d.ts.map +1 -0
  23. package/dist/drivers/session/gemini-session-driver.js +29 -0
  24. package/dist/drivers/session/gemini-session-driver.js.map +1 -0
  25. package/dist/drivers/session/openclaw-session-driver.d.ts +10 -0
  26. package/dist/drivers/session/openclaw-session-driver.d.ts.map +1 -0
  27. package/dist/drivers/session/openclaw-session-driver.js +29 -0
  28. package/dist/drivers/session/openclaw-session-driver.js.map +1 -0
  29. package/dist/drivers/session/opencode-json-session-driver.d.ts +14 -0
  30. package/dist/drivers/session/opencode-json-session-driver.d.ts.map +1 -0
  31. package/dist/drivers/session/opencode-json-session-driver.js +51 -0
  32. package/dist/drivers/session/opencode-json-session-driver.js.map +1 -0
  33. package/dist/drivers/session/opencode-sqlite-session-driver.d.ts +23 -0
  34. package/dist/drivers/session/opencode-sqlite-session-driver.d.ts.map +1 -0
  35. package/dist/drivers/session/opencode-sqlite-session-driver.js +88 -0
  36. package/dist/drivers/session/opencode-sqlite-session-driver.js.map +1 -0
  37. package/dist/drivers/token/claude-token-driver.d.ts +11 -0
  38. package/dist/drivers/token/claude-token-driver.d.ts.map +1 -0
  39. package/dist/drivers/token/claude-token-driver.js +42 -0
  40. package/dist/drivers/token/claude-token-driver.js.map +1 -0
  41. package/dist/drivers/token/codex-token-driver.d.ts +11 -0
  42. package/dist/drivers/token/codex-token-driver.d.ts.map +1 -0
  43. package/dist/drivers/token/codex-token-driver.js +59 -0
  44. package/dist/drivers/token/codex-token-driver.js.map +1 -0
  45. package/dist/drivers/token/gemini-token-driver.d.ts +11 -0
  46. package/dist/drivers/token/gemini-token-driver.d.ts.map +1 -0
  47. package/dist/drivers/token/gemini-token-driver.js +57 -0
  48. package/dist/drivers/token/gemini-token-driver.js.map +1 -0
  49. package/dist/drivers/token/openclaw-token-driver.d.ts +11 -0
  50. package/dist/drivers/token/openclaw-token-driver.d.ts.map +1 -0
  51. package/dist/drivers/token/openclaw-token-driver.js +42 -0
  52. package/dist/drivers/token/openclaw-token-driver.js.map +1 -0
  53. package/dist/drivers/token/opencode-json-token-driver.d.ts +15 -0
  54. package/dist/drivers/token/opencode-json-token-driver.d.ts.map +1 -0
  55. package/dist/drivers/token/opencode-json-token-driver.js +73 -0
  56. package/dist/drivers/token/opencode-json-token-driver.js.map +1 -0
  57. package/dist/drivers/token/opencode-sqlite-token-driver.d.ts +25 -0
  58. package/dist/drivers/token/opencode-sqlite-token-driver.d.ts.map +1 -0
  59. package/dist/drivers/token/opencode-sqlite-token-driver.js +99 -0
  60. package/dist/drivers/token/opencode-sqlite-token-driver.js.map +1 -0
  61. package/dist/drivers/types.d.ts +202 -0
  62. package/dist/drivers/types.d.ts.map +1 -0
  63. package/dist/drivers/types.js +12 -0
  64. package/dist/drivers/types.js.map +1 -0
  65. package/dist/storage/base-cursor-store.d.ts +16 -0
  66. package/dist/storage/base-cursor-store.d.ts.map +1 -0
  67. package/dist/storage/base-cursor-store.js +33 -0
  68. package/dist/storage/base-cursor-store.js.map +1 -0
  69. package/dist/storage/cursor-store.d.ts +2 -6
  70. package/dist/storage/cursor-store.d.ts.map +1 -1
  71. package/dist/storage/cursor-store.js +4 -25
  72. package/dist/storage/cursor-store.js.map +1 -1
  73. package/dist/storage/session-cursor-store.d.ts +2 -6
  74. package/dist/storage/session-cursor-store.d.ts.map +1 -1
  75. package/dist/storage/session-cursor-store.js +4 -25
  76. package/dist/storage/session-cursor-store.js.map +1 -1
  77. package/dist/utils/file-changed.d.ts +35 -0
  78. package/dist/utils/file-changed.d.ts.map +1 -0
  79. package/dist/utils/file-changed.js +34 -0
  80. package/dist/utils/file-changed.js.map +1 -0
  81. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -338,7 +338,7 @@ const notifyCommand = defineCommand({
338
338
  openMessageDb,
339
339
  openSessionDb,
340
340
  openclawDir: paths.openclawDir,
341
- version: "0.8.0",
341
+ version: "0.9.0",
342
342
  });
343
343
  if (result.error) {
344
344
  consola.warn(`notify finished with warning: ${result.error}`);
@@ -522,7 +522,7 @@ async function runSessionUpload(stateDir, apiUrl, dev) {
522
522
  export const main = defineCommand({
523
523
  meta: {
524
524
  name: "pew",
525
- version: "0.8.0",
525
+ version: "0.9.0",
526
526
  description: "Track token usage from your local AI coding tools",
527
527
  },
528
528
  subCommands: {
@@ -5,6 +5,10 @@
5
5
  * dual-check), collects SessionSnapshots, converts to SessionQueueRecords,
6
6
  * deduplicates, and writes to session queue.
7
7
  *
8
+ * Uses the two-phase driver architecture:
9
+ * Phase 1: File-based drivers (generic discover → stat → skip → parse → cursor loop)
10
+ * Phase 2: DB-based drivers (single run() call)
11
+ *
8
12
  * Fully independent from the token sync pipeline — separate cursors,
9
13
  * separate queue, separate files.
10
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session-sync.d.ts","sourceRoot":"","sources":["../../src/commands/session-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAO3F,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAClC,aAAa,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACzD,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,iBAAiB,EAAE,CAAC;QACpE,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACpD;AAED,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AA+DD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CA4a5B"}
1
+ {"version":3,"file":"session-sync.d.ts","sourceRoot":"","sources":["../../src/commands/session-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAM3F,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAClC,aAAa,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACzD,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,iBAAiB,EAAE,CAAC;QACpE,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,GAAG,IAAI,CAAC;IACT,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACpD;AAED,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAuCD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CA0M5B"}
@@ -5,21 +5,18 @@
5
5
  * dual-check), collects SessionSnapshots, converts to SessionQueueRecords,
6
6
  * deduplicates, and writes to session queue.
7
7
  *
8
+ * Uses the two-phase driver architecture:
9
+ * Phase 1: File-based drivers (generic discover → stat → skip → parse → cursor loop)
10
+ * Phase 2: DB-based drivers (single run() call)
11
+ *
8
12
  * Fully independent from the token sync pipeline — separate cursors,
9
13
  * separate queue, separate files.
10
14
  */
11
- import { readdir, stat } from "node:fs/promises";
12
- import { join } from "node:path";
15
+ import { stat } from "node:fs/promises";
13
16
  import { SessionCursorStore } from "../storage/session-cursor-store.js";
14
17
  import { SessionQueue } from "../storage/session-queue.js";
15
- import { discoverClaudeFiles, discoverCodexFiles, discoverGeminiFiles, discoverOpenClawFiles, } from "../discovery/sources.js";
16
- import { collectClaudeSessions } from "../parsers/claude-session.js";
17
- import { collectCodexSessions } from "../parsers/codex-session.js";
18
- import { collectGeminiSessions } from "../parsers/gemini-session.js";
19
- import { collectOpenCodeSessions } from "../parsers/opencode-session.js";
20
- import { collectOpenClawSessions } from "../parsers/openclaw-session.js";
21
- import { collectOpenCodeSqliteSessions } from "../parsers/opencode-sqlite-session.js";
22
18
  import { deduplicateSessionRecords } from "./session-upload.js";
19
+ import { createSessionDrivers } from "../drivers/registry.js";
23
20
  // ---------------------------------------------------------------------------
24
21
  // Helpers
25
22
  // ---------------------------------------------------------------------------
@@ -40,33 +37,15 @@ function toQueueRecord(snap) {
40
37
  snapshot_at: snap.snapshotAt,
41
38
  };
42
39
  }
43
- /**
44
- * Check if a file has changed since the last cursor.
45
- * Returns true if the file should be re-scanned (full-scan).
46
- */
47
- function fileChanged(cursor, mtimeMs, size) {
48
- if (!cursor)
49
- return true;
50
- return cursor.mtimeMs !== mtimeMs || cursor.size !== size;
51
- }
52
- /**
53
- * Discover OpenCode session directories.
54
- *
55
- * Lists subdirectories under the message dir (e.g. ses_xxx/).
56
- * Returns absolute paths to session directories.
57
- */
58
- async function discoverOpenCodeSessionDirs(messageDir) {
59
- let entries;
60
- try {
61
- entries = await readdir(messageDir, { withFileTypes: true });
62
- }
63
- catch {
64
- return [];
40
+ /** Map Source type to short result key */
41
+ function sourceKey(source) {
42
+ switch (source) {
43
+ case "claude-code": return "claude";
44
+ case "gemini-cli": return "gemini";
45
+ case "opencode": return "opencode";
46
+ case "openclaw": return "openclaw";
47
+ case "codex": return "codex";
65
48
  }
66
- return entries
67
- .filter((e) => e.isDirectory())
68
- .map((e) => join(messageDir, e.name))
69
- .sort();
70
49
  }
71
50
  // ---------------------------------------------------------------------------
72
51
  // Main orchestrator
@@ -83,340 +62,141 @@ export async function executeSessionSync(opts) {
83
62
  const allSnapshots = [];
84
63
  const sourceCounts = { claude: 0, codex: 0, gemini: 0, opencode: 0, openclaw: 0 };
85
64
  const filesScanned = { claude: 0, codex: 0, gemini: 0, opencode: 0, openclaw: 0 };
86
- // ---------- Claude Code ----------
87
- if (opts.claudeDir) {
65
+ // Build driver sets from options
66
+ const { fileDrivers, dbDrivers } = createSessionDrivers(opts);
67
+ // Discovery options bag
68
+ const discoverOpts = {
69
+ claudeDir: opts.claudeDir,
70
+ codexSessionsDir: opts.codexSessionsDir,
71
+ geminiDir: opts.geminiDir,
72
+ openCodeMessageDir: opts.openCodeMessageDir,
73
+ openCodeDbPath: opts.openCodeDbPath,
74
+ openclawDir: opts.openclawDir,
75
+ };
76
+ // ---------- Phase 1: File-based drivers (generic loop) ----------
77
+ for (const driver of fileDrivers) {
78
+ const key = sourceKey(driver.source);
88
79
  onProgress?.({
89
- source: "claude-code",
80
+ source: driver.source,
90
81
  phase: "discover",
91
- message: "Discovering Claude Code session files...",
82
+ message: `Discovering ${driver.source} session files...`,
92
83
  });
93
- const files = await discoverClaudeFiles(opts.claudeDir);
94
- filesScanned.claude = files.length;
84
+ const files = await driver.discover(discoverOpts);
85
+ filesScanned[key] += files.length;
95
86
  onProgress?.({
96
- source: "claude-code",
87
+ source: driver.source,
97
88
  phase: "parse",
98
89
  total: files.length,
99
- message: `Scanning ${files.length} Claude session files...`,
90
+ message: `Scanning ${files.length} ${driver.source} session files...`,
100
91
  });
101
92
  for (let i = 0; i < files.length; i++) {
102
93
  const filePath = files[i];
103
94
  const st = await stat(filePath).catch(() => null);
104
95
  if (!st)
105
96
  continue;
97
+ const fingerprint = {
98
+ inode: st.ino,
99
+ mtimeMs: st.mtimeMs,
100
+ size: st.size,
101
+ };
106
102
  const cursor = cursors.files[filePath];
107
- if (!fileChanged(cursor, st.mtimeMs, st.size)) {
103
+ // Fast skip: file/dir unchanged since last cursor?
104
+ if (driver.shouldSkip(cursor, fingerprint)) {
108
105
  onProgress?.({
109
- source: "claude-code",
106
+ source: driver.source,
110
107
  phase: "parse",
111
108
  current: i + 1,
112
109
  total: files.length,
113
110
  });
114
111
  continue;
115
112
  }
116
- const snapshots = await collectClaudeSessions(filePath).catch((err) => {
113
+ // Full-scan parse
114
+ const snapshots = await driver.parse(filePath).catch((err) => {
117
115
  onProgress?.({
118
- source: "claude-code",
116
+ source: driver.source,
119
117
  phase: "warn",
120
118
  message: `Skipping ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
121
119
  });
122
120
  return [];
123
121
  });
124
- // Update cursor with new mtime+size
125
- cursors.files[filePath] = { mtimeMs: st.mtimeMs, size: st.size };
122
+ // Build and persist cursor (cast narrows the registry's
123
+ // SessionFileCursor | unknown union back to SessionFileCursor)
124
+ cursors.files[filePath] = driver.buildCursor(fingerprint);
126
125
  allSnapshots.push(...snapshots);
127
- sourceCounts.claude += snapshots.length;
126
+ sourceCounts[key] += snapshots.length;
128
127
  onProgress?.({
129
- source: "claude-code",
128
+ source: driver.source,
130
129
  phase: "parse",
131
130
  current: i + 1,
132
131
  total: files.length,
133
132
  });
134
133
  }
135
134
  }
136
- // ---------- Gemini CLI ----------
137
- if (opts.geminiDir) {
138
- onProgress?.({
139
- source: "gemini-cli",
140
- phase: "discover",
141
- message: "Discovering Gemini CLI session files...",
142
- });
143
- const files = await discoverGeminiFiles(opts.geminiDir);
144
- filesScanned.gemini = files.length;
145
- onProgress?.({
146
- source: "gemini-cli",
147
- phase: "parse",
148
- total: files.length,
149
- message: `Scanning ${files.length} Gemini session files...`,
150
- });
151
- for (let i = 0; i < files.length; i++) {
152
- const filePath = files[i];
153
- const st = await stat(filePath).catch(() => null);
154
- if (!st)
155
- continue;
156
- const cursor = cursors.files[filePath];
157
- if (!fileChanged(cursor, st.mtimeMs, st.size)) {
135
+ // ---------- Phase 2: DB-based drivers ----------
136
+ // SQLite warning paths are handled at the orchestrator level:
137
+ // - "bun:sqlite not available": registry doesn't create a driver (no openSessionDb)
138
+ // - "Failed to open": factory returns null, pre-probed here to emit warning
139
+ let activeDbDrivers = dbDrivers;
140
+ if (opts.openCodeDbPath) {
141
+ const dbStat = await stat(opts.openCodeDbPath).catch(() => null);
142
+ if (dbStat) {
143
+ if (!opts.openSessionDb) {
144
+ // Case 1: DB file exists but bun:sqlite adapter is missing
158
145
  onProgress?.({
159
- source: "gemini-cli",
160
- phase: "parse",
161
- current: i + 1,
162
- total: files.length,
146
+ source: "opencode-sqlite",
147
+ phase: "discover",
148
+ message: "Checking OpenCode SQLite database for sessions...",
163
149
  });
164
- continue;
165
- }
166
- const snapshots = await collectGeminiSessions(filePath).catch((err) => {
167
150
  onProgress?.({
168
- source: "gemini-cli",
151
+ source: "opencode-sqlite",
169
152
  phase: "warn",
170
- message: `Skipping ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
171
- });
172
- return [];
173
- });
174
- cursors.files[filePath] = { mtimeMs: st.mtimeMs, size: st.size };
175
- allSnapshots.push(...snapshots);
176
- sourceCounts.gemini += snapshots.length;
177
- onProgress?.({
178
- source: "gemini-cli",
179
- phase: "parse",
180
- current: i + 1,
181
- total: files.length,
182
- });
183
- }
184
- }
185
- // ---------- OpenCode ----------
186
- if (opts.openCodeMessageDir) {
187
- onProgress?.({
188
- source: "opencode",
189
- phase: "discover",
190
- message: "Discovering OpenCode session directories...",
191
- });
192
- const dirs = await discoverOpenCodeSessionDirs(opts.openCodeMessageDir);
193
- filesScanned.opencode += dirs.length;
194
- onProgress?.({
195
- source: "opencode",
196
- phase: "parse",
197
- total: dirs.length,
198
- message: `Scanning ${dirs.length} OpenCode session directories...`,
199
- });
200
- for (let i = 0; i < dirs.length; i++) {
201
- const dirPath = dirs[i];
202
- const st = await stat(dirPath).catch(() => null);
203
- if (!st)
204
- continue;
205
- // For directories, use mtimeMs as proxy for content changes.
206
- // Size for dirs isn't reliable across filesystems, so we use
207
- // mtimeMs only and set size to 0 as a sentinel.
208
- const cursor = cursors.files[dirPath];
209
- if (cursor && cursor.mtimeMs === st.mtimeMs) {
210
- onProgress?.({
211
- source: "opencode",
212
- phase: "parse",
213
- current: i + 1,
214
- total: dirs.length,
153
+ message: `OpenCode SQLite database found at ${opts.openCodeDbPath} but bun:sqlite is not available SQLite session data will NOT be synced`,
215
154
  });
216
- continue;
217
155
  }
218
- const snapshots = await collectOpenCodeSessions(dirPath).catch((err) => {
219
- onProgress?.({
220
- source: "opencode",
221
- phase: "warn",
222
- message: `Skipping ${dirPath}: ${err instanceof Error ? err.message : String(err)}`,
223
- });
224
- return [];
225
- });
226
- cursors.files[dirPath] = { mtimeMs: st.mtimeMs, size: 0 };
227
- allSnapshots.push(...snapshots);
228
- sourceCounts.opencode += snapshots.length;
229
- onProgress?.({
230
- source: "opencode",
231
- phase: "parse",
232
- current: i + 1,
233
- total: dirs.length,
234
- });
235
- }
236
- }
237
- // ---------- OpenCode SQLite Sessions ----------
238
- if (opts.openCodeDbPath) {
239
- onProgress?.({
240
- source: "opencode-sqlite",
241
- phase: "discover",
242
- message: "Checking OpenCode SQLite database for sessions...",
243
- });
244
- const dbStat = await stat(opts.openCodeDbPath).catch(() => null);
245
- if (dbStat && !opts.openSessionDb) {
246
- // DB file exists but adapter is missing (bun:sqlite not available)
247
- onProgress?.({
248
- source: "opencode-sqlite",
249
- phase: "warn",
250
- message: `OpenCode SQLite database found at ${opts.openCodeDbPath} but bun:sqlite is not available — SQLite session data will NOT be synced`,
251
- });
252
- }
253
- else if (dbStat && opts.openSessionDb) {
254
- filesScanned.opencode += 1;
255
- const dbInode = dbStat.ino;
256
- const prevSqlite = cursors.openCodeSqlite;
257
- // If inode changed (DB recreated), reset cursor
258
- const lastTimeUpdated = prevSqlite && prevSqlite.inode === dbInode
259
- ? prevSqlite.lastTimeUpdated
260
- : 0;
261
- const prevProcessedIds = new Set(prevSqlite && prevSqlite.inode === dbInode
262
- ? (prevSqlite.lastProcessedIds ?? [])
263
- : []);
264
- const handle = opts.openSessionDb(opts.openCodeDbPath);
265
- if (handle) {
266
- try {
267
- // Query uses >= to avoid missing same-millisecond rows.
268
- // We dedup previously-processed IDs from the prior batch.
269
- const rawSessions = handle.querySessions(lastTimeUpdated);
270
- const sessions = prevProcessedIds.size > 0
271
- ? rawSessions.filter((s) => !prevProcessedIds.has(s.id))
272
- : rawSessions;
273
- if (sessions.length > 0) {
274
- const sessionIds = sessions.map((s) => s.id);
275
- const messages = handle.querySessionMessages(sessionIds);
276
- const snapshots = collectOpenCodeSqliteSessions(sessions, messages);
277
- onProgress?.({
278
- source: "opencode-sqlite",
279
- phase: "parse",
280
- message: `Collected ${snapshots.length} sessions from ${rawSessions.length} SQLite session rows`,
281
- });
282
- allSnapshots.push(...snapshots);
283
- sourceCounts.opencode += snapshots.length;
284
- }
285
- else {
286
- onProgress?.({
287
- source: "opencode-sqlite",
288
- phase: "parse",
289
- message: "No new SQLite sessions found",
290
- });
291
- }
292
- // Update session cursor — advance past ALL queried sessions.
293
- // Sessions are ORDER BY time_updated ASC, so last has the max.
294
- // Track IDs at the max timestamp for same-millisecond dedup
295
- // on the next query.
296
- const maxTimeUpdated = rawSessions.length > 0
297
- ? rawSessions[rawSessions.length - 1].time_updated
298
- : lastTimeUpdated;
299
- const idsAtMax = rawSessions
300
- .filter((s) => s.time_updated === maxTimeUpdated)
301
- .map((s) => s.id);
302
- cursors.openCodeSqlite = {
303
- lastTimeUpdated: maxTimeUpdated,
304
- lastProcessedIds: idsAtMax,
305
- inode: dbInode,
306
- updatedAt: new Date().toISOString(),
307
- };
156
+ else {
157
+ // Case 2: Both provided — pre-probe if factory returns null
158
+ const handle = opts.openSessionDb(opts.openCodeDbPath);
159
+ if (!handle) {
160
+ onProgress?.({
161
+ source: "opencode-sqlite",
162
+ phase: "discover",
163
+ message: "Checking OpenCode SQLite database for sessions...",
164
+ });
165
+ onProgress?.({
166
+ source: "opencode-sqlite",
167
+ phase: "warn",
168
+ message: `Failed to open OpenCode SQLite database at ${opts.openCodeDbPath} — SQLite session data will NOT be synced`,
169
+ });
170
+ // Skip DB drivers — factory returns null, driver would return empty anyway
171
+ activeDbDrivers = [];
308
172
  }
309
- finally {
173
+ else {
310
174
  handle.close();
311
175
  }
312
176
  }
313
- else {
314
- // openSessionDb returned null — DB exists but couldn't be opened
315
- onProgress?.({
316
- source: "opencode-sqlite",
317
- phase: "warn",
318
- message: `Failed to open OpenCode SQLite database at ${opts.openCodeDbPath} — SQLite session data will NOT be synced`,
319
- });
320
- }
321
- }
322
- }
323
- // ---------- OpenClaw ----------
324
- if (opts.openclawDir) {
325
- onProgress?.({
326
- source: "openclaw",
327
- phase: "discover",
328
- message: "Discovering OpenClaw session files...",
329
- });
330
- const files = await discoverOpenClawFiles(opts.openclawDir);
331
- filesScanned.openclaw = files.length;
332
- onProgress?.({
333
- source: "openclaw",
334
- phase: "parse",
335
- total: files.length,
336
- message: `Scanning ${files.length} OpenClaw session files...`,
337
- });
338
- for (let i = 0; i < files.length; i++) {
339
- const filePath = files[i];
340
- const st = await stat(filePath).catch(() => null);
341
- if (!st)
342
- continue;
343
- const cursor = cursors.files[filePath];
344
- if (!fileChanged(cursor, st.mtimeMs, st.size)) {
345
- onProgress?.({
346
- source: "openclaw",
347
- phase: "parse",
348
- current: i + 1,
349
- total: files.length,
350
- });
351
- continue;
352
- }
353
- const snapshots = await collectOpenClawSessions(filePath).catch((err) => {
354
- onProgress?.({
355
- source: "openclaw",
356
- phase: "warn",
357
- message: `Skipping ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
358
- });
359
- return [];
360
- });
361
- cursors.files[filePath] = { mtimeMs: st.mtimeMs, size: st.size };
362
- allSnapshots.push(...snapshots);
363
- sourceCounts.openclaw += snapshots.length;
364
- onProgress?.({
365
- source: "openclaw",
366
- phase: "parse",
367
- current: i + 1,
368
- total: files.length,
369
- });
370
177
  }
371
178
  }
372
- // ---------- Codex CLI ----------
373
- if (opts.codexSessionsDir) {
179
+ for (const driver of activeDbDrivers) {
180
+ const key = sourceKey(driver.source);
374
181
  onProgress?.({
375
- source: "codex",
182
+ source: "opencode-sqlite",
376
183
  phase: "discover",
377
- message: "Discovering Codex CLI session files...",
184
+ message: "Checking OpenCode SQLite database for sessions...",
378
185
  });
379
- const files = await discoverCodexFiles(opts.codexSessionsDir);
380
- filesScanned.codex = files.length;
186
+ // Count DB as 1 file scanned for the source
187
+ filesScanned[key] += 1;
188
+ const prevCursor = cursors.openCodeSqlite;
189
+ const result = await driver.run(prevCursor, {});
190
+ cursors.openCodeSqlite = result.cursor;
191
+ allSnapshots.push(...result.snapshots);
192
+ sourceCounts[key] += result.snapshots.length;
381
193
  onProgress?.({
382
- source: "codex",
194
+ source: "opencode-sqlite",
383
195
  phase: "parse",
384
- total: files.length,
385
- message: `Scanning ${files.length} Codex session files...`,
196
+ message: result.snapshots.length > 0
197
+ ? `Collected ${result.snapshots.length} sessions from ${result.rowCount} SQLite session rows`
198
+ : "No new SQLite sessions found",
386
199
  });
387
- for (let i = 0; i < files.length; i++) {
388
- const filePath = files[i];
389
- const st = await stat(filePath).catch(() => null);
390
- if (!st)
391
- continue;
392
- const cursor = cursors.files[filePath];
393
- if (!fileChanged(cursor, st.mtimeMs, st.size)) {
394
- onProgress?.({
395
- source: "codex",
396
- phase: "parse",
397
- current: i + 1,
398
- total: files.length,
399
- });
400
- continue;
401
- }
402
- const snapshots = await collectCodexSessions(filePath).catch((err) => {
403
- onProgress?.({
404
- source: "codex",
405
- phase: "warn",
406
- message: `Skipping ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
407
- });
408
- return [];
409
- });
410
- cursors.files[filePath] = { mtimeMs: st.mtimeMs, size: st.size };
411
- allSnapshots.push(...snapshots);
412
- sourceCounts.codex += snapshots.length;
413
- onProgress?.({
414
- source: "codex",
415
- phase: "parse",
416
- current: i + 1,
417
- total: files.length,
418
- });
419
- }
420
200
  }
421
201
  // ---------- Convert snapshots to queue records ----------
422
202
  const records = allSnapshots.map(toQueueRecord);
@@ -1 +1 @@
1
- {"version":3,"file":"session-sync.js","sourceRoot":"","sources":["../../src/commands/session-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-sync.js","sourceRoot":"","sources":["../../src/commands/session-sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,aAAa,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjG,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,iCAAiC;AACjC,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,qCAAqC;IACrC,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAUD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmgBxE"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAMrE,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK;QAAE,aAAa,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjG,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,iCAAiC;AACjC,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,qCAAqC;IACrC,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAqBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmQxE"}