genbox-agent 1.0.95 → 1.0.96

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 (35) hide show
  1. package/dist/readers/jsonl-watcher.d.ts +45 -0
  2. package/dist/readers/jsonl-watcher.d.ts.map +1 -0
  3. package/dist/readers/jsonl-watcher.js +300 -0
  4. package/dist/readers/jsonl-watcher.js.map +1 -0
  5. package/dist/server/index.d.ts +5 -0
  6. package/dist/server/index.d.ts.map +1 -1
  7. package/dist/server/index.js +128 -82
  8. package/dist/server/index.js.map +1 -1
  9. package/dist/state-watchdog.d.ts +56 -0
  10. package/dist/state-watchdog.d.ts.map +1 -0
  11. package/dist/state-watchdog.js +136 -0
  12. package/dist/state-watchdog.js.map +1 -0
  13. package/dist/storage/index.d.ts.map +1 -1
  14. package/dist/storage/index.js +52 -2
  15. package/dist/storage/index.js.map +1 -1
  16. package/dist/storage/manager.d.ts +8 -12
  17. package/dist/storage/manager.d.ts.map +1 -1
  18. package/dist/storage/manager.js +61 -170
  19. package/dist/storage/manager.js.map +1 -1
  20. package/dist/storage/repositories/messages.js +2 -2
  21. package/dist/storage/repositories/sessions.d.ts +22 -2
  22. package/dist/storage/repositories/sessions.d.ts.map +1 -1
  23. package/dist/storage/repositories/sessions.js +58 -4
  24. package/dist/storage/repositories/sessions.js.map +1 -1
  25. package/dist/storage/schema.d.ts +2 -2
  26. package/dist/storage/schema.d.ts.map +1 -1
  27. package/dist/storage/schema.js +9 -16
  28. package/dist/storage/schema.js.map +1 -1
  29. package/dist/unified-daemon.js +36 -0
  30. package/dist/unified-daemon.js.map +1 -1
  31. package/dist/utils/session-names.d.ts +19 -0
  32. package/dist/utils/session-names.d.ts.map +1 -0
  33. package/dist/utils/session-names.js +42 -0
  34. package/dist/utils/session-names.js.map +1 -0
  35. package/package.json +2 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * JSONL File Watcher
3
+ *
4
+ * Watches Claude JSONL files for changes and incrementally syncs new messages
5
+ * to the local database. Provides instant message sync with zero polling overhead.
6
+ */
7
+ import { StorageManager } from '../storage/manager';
8
+ export declare class JSONLWatcher {
9
+ private claudeProjectsDir;
10
+ private storageManager;
11
+ private watcher;
12
+ private fileStates;
13
+ private debounceTimers;
14
+ private broadcastCallback?;
15
+ constructor(claudeProjectsDir: string, storageManager: StorageManager);
16
+ /**
17
+ * Set callback for broadcasting events to connected clients
18
+ */
19
+ setBroadcastCallback(callback: (event: any) => void): void;
20
+ /**
21
+ * Start watching JSONL files
22
+ */
23
+ start(): void;
24
+ /**
25
+ * Stop watching files
26
+ */
27
+ stop(): Promise<void>;
28
+ /**
29
+ * Handle file change with debouncing
30
+ */
31
+ private handleFileChange;
32
+ /**
33
+ * Incrementally sync new content from a JSONL file
34
+ */
35
+ private syncFile;
36
+ /**
37
+ * Get watcher status
38
+ */
39
+ getStatus(): {
40
+ running: boolean;
41
+ watchedFiles: number;
42
+ trackedFiles: number;
43
+ };
44
+ }
45
+ //# sourceMappingURL=jsonl-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-watcher.d.ts","sourceRoot":"","sources":["../../src/readers/jsonl-watcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,YAAY;IAOrB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,cAAc;IAPxB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAAuB;gBAGvC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,cAAc;IAGxC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAgDb;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;YACW,QAAQ;IA8JtB;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB;CAOF"}
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ /**
3
+ * JSONL File Watcher
4
+ *
5
+ * Watches Claude JSONL files for changes and incrementally syncs new messages
6
+ * to the local database. Provides instant message sync with zero polling overhead.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.JSONLWatcher = void 0;
46
+ const chokidar_1 = __importDefault(require("chokidar"));
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ class JSONLWatcher {
50
+ claudeProjectsDir;
51
+ storageManager;
52
+ watcher = null;
53
+ fileStates = new Map();
54
+ debounceTimers = new Map();
55
+ broadcastCallback;
56
+ constructor(claudeProjectsDir, storageManager) {
57
+ this.claudeProjectsDir = claudeProjectsDir;
58
+ this.storageManager = storageManager;
59
+ }
60
+ /**
61
+ * Set callback for broadcasting events to connected clients
62
+ */
63
+ setBroadcastCallback(callback) {
64
+ this.broadcastCallback = callback;
65
+ }
66
+ /**
67
+ * Start watching JSONL files
68
+ */
69
+ start() {
70
+ if (this.watcher) {
71
+ console.log('[JSONLWatcher] Already running');
72
+ return;
73
+ }
74
+ // Check if directory exists
75
+ if (!fs.existsSync(this.claudeProjectsDir)) {
76
+ console.log(`[JSONLWatcher] Directory not found: ${this.claudeProjectsDir}`);
77
+ console.log('[JSONLWatcher] Will not start watcher (Claude Code not installed?)');
78
+ return;
79
+ }
80
+ const watchPattern = `${this.claudeProjectsDir}/**/*.jsonl`;
81
+ console.log(`[JSONLWatcher] Starting file watcher: ${watchPattern}`);
82
+ this.watcher = chokidar_1.default.watch(watchPattern, {
83
+ persistent: true,
84
+ ignoreInitial: true, // Don't trigger on existing files at startup
85
+ awaitWriteFinish: {
86
+ stabilityThreshold: 150, // Wait 150ms after last change
87
+ pollInterval: 50,
88
+ },
89
+ // Performance options
90
+ usePolling: false, // Use native fs events (faster)
91
+ interval: 100,
92
+ binaryInterval: 300,
93
+ });
94
+ this.watcher.on('change', (filePath) => {
95
+ this.handleFileChange(filePath);
96
+ });
97
+ this.watcher.on('add', (filePath) => {
98
+ console.log(`[JSONLWatcher] New file detected: ${path.basename(filePath)}`);
99
+ this.handleFileChange(filePath);
100
+ });
101
+ this.watcher.on('error', (error) => {
102
+ const message = error instanceof Error ? error.message : String(error);
103
+ console.error(`[JSONLWatcher] Error: ${message}`);
104
+ });
105
+ this.watcher.on('ready', () => {
106
+ console.log('[JSONLWatcher] Ready and watching for changes');
107
+ });
108
+ }
109
+ /**
110
+ * Stop watching files
111
+ */
112
+ async stop() {
113
+ if (!this.watcher)
114
+ return;
115
+ console.log('[JSONLWatcher] Stopping...');
116
+ // Clear all debounce timers
117
+ for (const timer of this.debounceTimers.values()) {
118
+ clearTimeout(timer);
119
+ }
120
+ this.debounceTimers.clear();
121
+ // Close watcher
122
+ await this.watcher.close();
123
+ this.watcher = null;
124
+ // Clear file states
125
+ this.fileStates.clear();
126
+ console.log('[JSONLWatcher] Stopped');
127
+ }
128
+ /**
129
+ * Handle file change with debouncing
130
+ */
131
+ handleFileChange(filePath) {
132
+ // Clear existing timer for this file
133
+ const existingTimer = this.debounceTimers.get(filePath);
134
+ if (existingTimer) {
135
+ clearTimeout(existingTimer);
136
+ }
137
+ // Set new timer - sync after 150ms of no changes
138
+ const timer = setTimeout(() => {
139
+ this.syncFile(filePath);
140
+ this.debounceTimers.delete(filePath);
141
+ }, 150);
142
+ this.debounceTimers.set(filePath, timer);
143
+ }
144
+ /**
145
+ * Incrementally sync new content from a JSONL file
146
+ */
147
+ async syncFile(filePath) {
148
+ try {
149
+ // Get current file stats
150
+ const stats = fs.statSync(filePath);
151
+ const currentSize = stats.size;
152
+ // Get last known state
153
+ const fileState = this.fileStates.get(filePath) || {
154
+ lastPosition: 0,
155
+ lastSize: 0,
156
+ };
157
+ // Check if file was truncated (rare but possible)
158
+ if (currentSize < fileState.lastSize) {
159
+ console.warn(`[JSONLWatcher] File truncated: ${path.basename(filePath)} (${fileState.lastSize} → ${currentSize} bytes)`);
160
+ fileState.lastPosition = 0;
161
+ fileState.lastSize = 0;
162
+ }
163
+ // Calculate bytes to read
164
+ const bytesToRead = currentSize - fileState.lastPosition;
165
+ if (bytesToRead <= 0) {
166
+ // No new data
167
+ return;
168
+ }
169
+ // Read only new bytes
170
+ const fd = fs.openSync(filePath, 'r');
171
+ const buffer = Buffer.alloc(bytesToRead);
172
+ fs.readSync(fd, buffer, 0, bytesToRead, fileState.lastPosition);
173
+ fs.closeSync(fd);
174
+ // Parse new lines
175
+ const newContent = buffer.toString('utf-8');
176
+ const newLines = newContent
177
+ .split('\n')
178
+ .filter(line => line.trim().length > 0);
179
+ if (newLines.length === 0) {
180
+ // Update position even if no complete lines
181
+ fileState.lastPosition = currentSize;
182
+ fileState.lastSize = currentSize;
183
+ this.fileStates.set(filePath, fileState);
184
+ return;
185
+ }
186
+ // Parse JSONL entries
187
+ const newMessages = [];
188
+ for (const line of newLines) {
189
+ try {
190
+ const entry = JSON.parse(line);
191
+ newMessages.push(entry);
192
+ }
193
+ catch (error) {
194
+ console.error(`[JSONLWatcher] Failed to parse line: ${line.substring(0, 100)}...`);
195
+ }
196
+ }
197
+ if (newMessages.length === 0) {
198
+ fileState.lastPosition = currentSize;
199
+ fileState.lastSize = currentSize;
200
+ this.fileStates.set(filePath, fileState);
201
+ return;
202
+ }
203
+ // Extract Claude session ID from first message
204
+ const firstMessage = newMessages[0];
205
+ const sessionId = firstMessage.session_id || firstMessage.sessionId;
206
+ if (!sessionId) {
207
+ console.warn(`[JSONLWatcher] No session ID in messages from ${path.basename(filePath)}`);
208
+ fileState.lastPosition = currentSize;
209
+ fileState.lastSize = currentSize;
210
+ this.fileStates.set(filePath, fileState);
211
+ return;
212
+ }
213
+ // Ensure session exists
214
+ let session = this.storageManager.sessions.getById(sessionId);
215
+ if (!session) {
216
+ // Extract project path from file path
217
+ // Format: ~/.claude/projects/{encoded-path}/{session-id}.jsonl
218
+ const projectMatch = filePath.match(/projects\/([^/]+)\//);
219
+ let projectPath = process.cwd();
220
+ if (projectMatch) {
221
+ // Decode project path (- prefix means root, then / becomes -)
222
+ projectPath = projectMatch[1]
223
+ .replace(/^-/, '/')
224
+ .replace(/-/g, '/');
225
+ }
226
+ session = this.storageManager.sessions.create({
227
+ id: sessionId,
228
+ provider: 'claude',
229
+ projectPath,
230
+ });
231
+ console.log(`[JSONLWatcher] Created session ${sessionId} from file`);
232
+ }
233
+ // Get existing message count to avoid duplicates
234
+ const existingMessages = this.storageManager.messages.getBySession(sessionId);
235
+ const existingCount = existingMessages.length;
236
+ // Store new messages (skip ones we already have)
237
+ let messagesAdded = 0;
238
+ for (let i = existingCount; i < newMessages.length; i++) {
239
+ const msg = newMessages[i];
240
+ // Only store user/assistant messages
241
+ if (msg.type === 'user' || msg.type === 'assistant') {
242
+ try {
243
+ this.storageManager.messages.create({
244
+ sessionId,
245
+ role: msg.role || msg.type,
246
+ content: msg.content || [],
247
+ sequence: i + 1,
248
+ inputTokens: msg.input_tokens || 0,
249
+ outputTokens: msg.output_tokens || 0,
250
+ cacheReadTokens: msg.cache_read_tokens || 0,
251
+ cacheWriteTokens: msg.cache_write_tokens || 0,
252
+ costCents: msg.cost_cents || 0,
253
+ });
254
+ messagesAdded++;
255
+ }
256
+ catch (error) {
257
+ // Ignore duplicate messages (unique constraint on ID)
258
+ if (!String(error).includes('UNIQUE')) {
259
+ console.error(`[JSONLWatcher] Failed to store message: ${error}`);
260
+ }
261
+ }
262
+ }
263
+ }
264
+ // Update file state
265
+ fileState.lastPosition = currentSize;
266
+ fileState.lastSize = currentSize;
267
+ this.fileStates.set(filePath, fileState);
268
+ if (messagesAdded > 0) {
269
+ console.log(`[JSONLWatcher] ✓ Synced ${messagesAdded} messages from ${path.basename(filePath)} (session: ${sessionId.substring(0, 8)}...)`);
270
+ // Broadcast update to connected clients
271
+ if (this.broadcastCallback) {
272
+ this.broadcastCallback({
273
+ type: 'message:received',
274
+ sessionId,
275
+ data: {
276
+ messageCount: newMessages.length,
277
+ messagesAdded,
278
+ source: 'file_watcher',
279
+ },
280
+ });
281
+ }
282
+ }
283
+ }
284
+ catch (error) {
285
+ console.error(`[JSONLWatcher] Error syncing ${path.basename(filePath)}: ${error.message}`);
286
+ }
287
+ }
288
+ /**
289
+ * Get watcher status
290
+ */
291
+ getStatus() {
292
+ return {
293
+ running: this.watcher !== null,
294
+ watchedFiles: this.watcher ? Object.keys(this.watcher.getWatched()).length : 0,
295
+ trackedFiles: this.fileStates.size,
296
+ };
297
+ }
298
+ }
299
+ exports.JSONLWatcher = JSONLWatcher;
300
+ //# sourceMappingURL=jsonl-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-watcher.js","sourceRoot":"","sources":["../../src/readers/jsonl-watcher.ts"],"names":[],"mappings":"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"}
@@ -184,6 +184,7 @@ export declare class AgentServer {
184
184
  private handlePendingSync;
185
185
  /**
186
186
  * Handle getting sessions from storage (includes currentState, currentToolName, etc.)
187
+ * Cross-references with active dtach sessions to determine real status
187
188
  */
188
189
  private handleStorageSessions;
189
190
  /**
@@ -192,6 +193,10 @@ export declare class AgentServer {
192
193
  private handleStorageEvents;
193
194
  private handleStorageMessages;
194
195
  private handleSyncClaudeSession;
196
+ /**
197
+ * Handle archiving/unarchiving a session
198
+ */
199
+ private handleArchiveSession;
195
200
  private sendJson;
196
201
  private sendError;
197
202
  private readBody;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}