genbox-agent 1.0.39 → 1.0.41

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 (67) hide show
  1. package/dist/hook.d.ts +6 -5
  2. package/dist/hook.d.ts.map +1 -1
  3. package/dist/hook.js +200 -81
  4. package/dist/hook.js.map +1 -1
  5. package/dist/hooks/daemon-client.d.ts +39 -0
  6. package/dist/hooks/daemon-client.d.ts.map +1 -0
  7. package/dist/hooks/daemon-client.js +238 -0
  8. package/dist/hooks/daemon-client.js.map +1 -0
  9. package/dist/hooks/index.d.ts +7 -0
  10. package/dist/hooks/index.d.ts.map +1 -0
  11. package/dist/hooks/index.js +23 -0
  12. package/dist/hooks/index.js.map +1 -0
  13. package/dist/server/auth.d.ts +51 -0
  14. package/dist/server/auth.d.ts.map +1 -0
  15. package/dist/server/auth.js +154 -0
  16. package/dist/server/auth.js.map +1 -0
  17. package/dist/server/index.d.ts +156 -0
  18. package/dist/server/index.d.ts.map +1 -0
  19. package/dist/server/index.js +595 -0
  20. package/dist/server/index.js.map +1 -0
  21. package/dist/server/port-finder.d.ts +45 -0
  22. package/dist/server/port-finder.d.ts.map +1 -0
  23. package/dist/server/port-finder.js +267 -0
  24. package/dist/server/port-finder.js.map +1 -0
  25. package/dist/storage/index.d.ts +82 -0
  26. package/dist/storage/index.d.ts.map +1 -0
  27. package/dist/storage/index.js +209 -0
  28. package/dist/storage/index.js.map +1 -0
  29. package/dist/storage/manager.d.ts +112 -0
  30. package/dist/storage/manager.d.ts.map +1 -0
  31. package/dist/storage/manager.js +200 -0
  32. package/dist/storage/manager.js.map +1 -0
  33. package/dist/storage/repositories/events.d.ts +101 -0
  34. package/dist/storage/repositories/events.d.ts.map +1 -0
  35. package/dist/storage/repositories/events.js +258 -0
  36. package/dist/storage/repositories/events.js.map +1 -0
  37. package/dist/storage/repositories/index.d.ts +9 -0
  38. package/dist/storage/repositories/index.d.ts.map +1 -0
  39. package/dist/storage/repositories/index.js +25 -0
  40. package/dist/storage/repositories/index.js.map +1 -0
  41. package/dist/storage/repositories/messages.d.ts +123 -0
  42. package/dist/storage/repositories/messages.d.ts.map +1 -0
  43. package/dist/storage/repositories/messages.js +209 -0
  44. package/dist/storage/repositories/messages.js.map +1 -0
  45. package/dist/storage/repositories/sessions.d.ts +158 -0
  46. package/dist/storage/repositories/sessions.d.ts.map +1 -0
  47. package/dist/storage/repositories/sessions.js +342 -0
  48. package/dist/storage/repositories/sessions.js.map +1 -0
  49. package/dist/storage/schema.d.ts +42 -0
  50. package/dist/storage/schema.d.ts.map +1 -0
  51. package/dist/storage/schema.js +278 -0
  52. package/dist/storage/schema.js.map +1 -0
  53. package/dist/sync/background-sync.d.ts +83 -0
  54. package/dist/sync/background-sync.d.ts.map +1 -0
  55. package/dist/sync/background-sync.js +367 -0
  56. package/dist/sync/background-sync.js.map +1 -0
  57. package/dist/sync/index.d.ts +7 -0
  58. package/dist/sync/index.d.ts.map +1 -0
  59. package/dist/sync/index.js +23 -0
  60. package/dist/sync/index.js.map +1 -0
  61. package/dist/unified-daemon.js +219 -0
  62. package/dist/unified-daemon.js.map +1 -1
  63. package/dist/unified-hook.d.ts +4 -3
  64. package/dist/unified-hook.d.ts.map +1 -1
  65. package/dist/unified-hook.js +155 -31
  66. package/dist/unified-hook.js.map +1 -1
  67. package/package.json +4 -1
package/dist/hook.d.ts CHANGED
@@ -2,13 +2,14 @@
2
2
  /**
3
3
  * Claude Code Hook Script
4
4
  *
5
- * Called by Claude Code hooks to report all interactions to the backend.
6
- * This script reads from stdin (hook input) and POSTs to the monitoring API.
5
+ * Called by Claude Code hooks to report all interactions to the local daemon.
6
+ * This script reads from stdin (hook input) and POSTs to the local daemon,
7
+ * which handles storage and background sync to the cloud API.
8
+ *
9
+ * The daemon auto-starts if not running (lazy start).
7
10
  *
8
11
  * Environment variables:
9
- * - GENBOX_ID: Unique identifier for this genbox
10
- * - GENBOX_TOKEN: Authentication token for the API
11
- * - MONITORING_API_URL: Base URL for the monitoring API
12
+ * - GENBOX_ID: Unique identifier for this genbox (optional for native sessions)
12
13
  * - CLAUDE_HOOK_TYPE: The type of hook being called (set by Claude Code)
13
14
  */
14
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
package/dist/hook.js CHANGED
@@ -3,13 +3,14 @@
3
3
  /**
4
4
  * Claude Code Hook Script
5
5
  *
6
- * Called by Claude Code hooks to report all interactions to the backend.
7
- * This script reads from stdin (hook input) and POSTs to the monitoring API.
6
+ * Called by Claude Code hooks to report all interactions to the local daemon.
7
+ * This script reads from stdin (hook input) and POSTs to the local daemon,
8
+ * which handles storage and background sync to the cloud API.
9
+ *
10
+ * The daemon auto-starts if not running (lazy start).
8
11
  *
9
12
  * Environment variables:
10
- * - GENBOX_ID: Unique identifier for this genbox
11
- * - GENBOX_TOKEN: Authentication token for the API
12
- * - MONITORING_API_URL: Base URL for the monitoring API
13
+ * - GENBOX_ID: Unique identifier for this genbox (optional for native sessions)
13
14
  * - CLAUDE_HOOK_TYPE: The type of hook being called (set by Claude Code)
14
15
  */
15
16
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -50,14 +51,31 @@ const fs = __importStar(require("fs"));
50
51
  const path = __importStar(require("path"));
51
52
  const crypto = __importStar(require("crypto"));
52
53
  const http = __importStar(require("http"));
53
- const https = __importStar(require("https"));
54
+ const childProcess = __importStar(require("child_process"));
54
55
  // Configuration
55
56
  const GENBOX_ID = process.env.GENBOX_ID || '';
56
- const GENBOX_TOKEN = process.env.GENBOX_TOKEN || '';
57
- const MONITORING_API_URL = process.env.MONITORING_API_URL || 'http://localhost:3001';
58
57
  const HOOK_TYPE = process.env.CLAUDE_HOOK_TYPE || 'Unknown';
59
- // Session file path
58
+ // Local daemon configuration
59
+ const BASE_PORT = 47191;
60
+ const MAX_PORT_OFFSET = 10;
61
+ const PORT_FILE = path.join(process.env.HOME || '/tmp', '.genbox-daemon-port');
60
62
  const SESSION_FILE = path.join(process.env.HOME || '/tmp', '.claude-session-id');
63
+ /**
64
+ * Map Claude hook types to unified event types
65
+ */
66
+ function mapHookType(hookType) {
67
+ const mapping = {
68
+ 'SessionStart': 'session_start',
69
+ 'SessionEnd': 'session_end',
70
+ 'UserPromptSubmit': 'prompt_submitted',
71
+ 'Stop': 'response_completed',
72
+ 'SubagentStop': 'response_completed',
73
+ 'PreToolUse': 'tool_started',
74
+ 'PostToolUse': 'tool_completed',
75
+ 'Notification': 'notification',
76
+ };
77
+ return mapping[hookType] || hookType.toLowerCase();
78
+ }
61
79
  function getOrCreateSessionId() {
62
80
  try {
63
81
  if (fs.existsSync(SESSION_FILE)) {
@@ -67,12 +85,8 @@ function getOrCreateSessionId() {
67
85
  catch {
68
86
  // Ignore read errors
69
87
  }
70
- // Generate new session ID
71
- const sessionId = crypto
72
- .createHash('sha256')
73
- .update(`${GENBOX_ID}-${Date.now()}-${process.pid}`)
74
- .digest('hex')
75
- .slice(0, 32);
88
+ // Generate new session ID (UUID format)
89
+ const sessionId = crypto.randomUUID();
76
90
  try {
77
91
  fs.writeFileSync(SESSION_FILE, sessionId);
78
92
  }
@@ -91,67 +105,144 @@ function clearSessionId() {
91
105
  // Ignore errors
92
106
  }
93
107
  }
94
- function getTmuxSession() {
95
- if (process.env.TMUX) {
96
- try {
97
- // Get actual tmux session name by running tmux command
98
- const { execSync } = require('child_process');
99
- const sessionName = execSync('tmux display-message -p "#S"', {
100
- encoding: 'utf-8',
101
- timeout: 1000,
102
- }).trim();
103
- return sessionName || undefined;
108
+ /**
109
+ * Read the daemon port from the port file
110
+ */
111
+ function readDaemonPort() {
112
+ try {
113
+ if (fs.existsSync(PORT_FILE)) {
114
+ const content = fs.readFileSync(PORT_FILE, 'utf-8').trim();
115
+ const port = parseInt(content, 10);
116
+ if (!isNaN(port) && port > 0) {
117
+ return port;
118
+ }
104
119
  }
105
- catch {
106
- // Fallback: try to parse from TMUX env var
107
- return undefined;
120
+ }
121
+ catch {
122
+ // Ignore errors
123
+ }
124
+ return null;
125
+ }
126
+ /**
127
+ * Check if daemon is running on a port (quick check)
128
+ */
129
+ function isDaemonRunning(port) {
130
+ return new Promise((resolve) => {
131
+ const req = http.request({
132
+ hostname: '127.0.0.1',
133
+ port,
134
+ path: '/health',
135
+ method: 'GET',
136
+ timeout: 500,
137
+ }, (res) => {
138
+ resolve(res.statusCode === 200);
139
+ });
140
+ req.on('error', () => resolve(false));
141
+ req.on('timeout', () => {
142
+ req.destroy();
143
+ resolve(false);
144
+ });
145
+ req.end();
146
+ });
147
+ }
148
+ /**
149
+ * Find the daemon port by checking the port file or scanning ports
150
+ */
151
+ async function findDaemonPort() {
152
+ // First check the port file
153
+ const savedPort = readDaemonPort();
154
+ if (savedPort && (await isDaemonRunning(savedPort))) {
155
+ return savedPort;
156
+ }
157
+ // Quick scan of base ports
158
+ for (let offset = 0; offset < MAX_PORT_OFFSET; offset++) {
159
+ const port = BASE_PORT + offset;
160
+ if (await isDaemonRunning(port)) {
161
+ return port;
108
162
  }
109
163
  }
110
- return undefined;
164
+ return null;
111
165
  }
112
- async function sendEvent(eventData, inputSessionId) {
113
- if (!GENBOX_ID || !GENBOX_TOKEN) {
114
- console.error('Warning: GENBOX_ID or GENBOX_TOKEN not set, skipping event');
166
+ /**
167
+ * Start the daemon if not running (lazy start)
168
+ */
169
+ async function startDaemon() {
170
+ // Find the daemon executable
171
+ const possiblePaths = [
172
+ path.join(__dirname, '../dist/unified-daemon.js'),
173
+ path.join(__dirname, 'unified-daemon.js'),
174
+ path.join(__dirname, '../../dist/unified-daemon.js'),
175
+ ];
176
+ let daemonPath = null;
177
+ for (const p of possiblePaths) {
178
+ if (fs.existsSync(p)) {
179
+ daemonPath = p;
180
+ break;
181
+ }
182
+ }
183
+ if (!daemonPath) {
184
+ return null;
185
+ }
186
+ try {
187
+ // Start daemon in background for native mode
188
+ const proc = childProcess.spawn('node', [daemonPath, '--mode', 'native', '--server'], {
189
+ detached: true,
190
+ stdio: 'ignore',
191
+ env: {
192
+ ...process.env,
193
+ GENBOX_DAEMON_BACKGROUND: '1',
194
+ },
195
+ });
196
+ proc.unref();
197
+ // Wait for daemon to start (up to 2 seconds)
198
+ for (let i = 0; i < 20; i++) {
199
+ await new Promise((r) => setTimeout(r, 100));
200
+ const port = await findDaemonPort();
201
+ if (port) {
202
+ return port;
203
+ }
204
+ }
205
+ }
206
+ catch {
207
+ // Ignore spawn errors
208
+ }
209
+ return null;
210
+ }
211
+ /**
212
+ * Send event to local daemon
213
+ */
214
+ async function sendEventToLocalDaemon(eventData) {
215
+ // Find running daemon
216
+ let port = await findDaemonPort();
217
+ // If no daemon running, try to start one (lazy start)
218
+ if (!port) {
219
+ port = await startDaemon();
220
+ }
221
+ if (!port) {
222
+ // Daemon not available - silently fail (don't block Claude)
115
223
  return false;
116
224
  }
117
- const url = new URL('/claude/events', MONITORING_API_URL);
118
- // Add metadata (using snake_case to match DTO)
119
- // Use Claude's session_id if provided in hook input, otherwise generate one
120
- eventData.genbox_id = GENBOX_ID;
121
- eventData.genbox_token = GENBOX_TOKEN;
122
- eventData.session_id = inputSessionId || getOrCreateSessionId();
123
- eventData.tmux_session = getTmuxSession();
124
- eventData.cwd = process.cwd();
125
- eventData.timestamp = new Date().toISOString();
126
- const data = JSON.stringify(eventData);
127
- const isHttps = url.protocol === 'https:';
225
+ const body = JSON.stringify(eventData);
128
226
  return new Promise((resolve) => {
129
- const options = {
130
- hostname: url.hostname,
131
- port: url.port || (isHttps ? 443 : 80),
132
- path: `${url.pathname}?token=${encodeURIComponent(GENBOX_TOKEN)}`,
227
+ const req = http.request({
228
+ hostname: '127.0.0.1',
229
+ port,
230
+ path: '/api/events',
133
231
  method: 'POST',
134
232
  headers: {
135
233
  'Content-Type': 'application/json',
136
- 'Content-Length': Buffer.byteLength(data),
137
- 'X-Genbox-Id': GENBOX_ID,
138
- 'X-Genbox-Token': GENBOX_TOKEN,
234
+ 'Content-Length': Buffer.byteLength(body),
139
235
  },
140
- timeout: 5000,
141
- };
142
- const req = (isHttps ? https : http).request(options, (res) => {
143
- resolve(res.statusCode === 200 || res.statusCode === 201 || res.statusCode === 202);
144
- });
145
- req.on('error', (error) => {
146
- console.error(`Warning: Failed to send event: ${error.message}`);
147
- resolve(false);
236
+ timeout: 2000,
237
+ }, (res) => {
238
+ resolve(res.statusCode === 200 || res.statusCode === 201);
148
239
  });
240
+ req.on('error', () => resolve(false));
149
241
  req.on('timeout', () => {
150
242
  req.destroy();
151
- console.error('Warning: Request timeout');
152
243
  resolve(false);
153
244
  });
154
- req.write(data);
245
+ req.write(body);
155
246
  req.end();
156
247
  });
157
248
  }
@@ -163,7 +254,7 @@ function parseHookInput(input) {
163
254
  return JSON.parse(input);
164
255
  }
165
256
  catch {
166
- return { raw_input: input };
257
+ return { rawInput: input };
167
258
  }
168
259
  }
169
260
  async function main() {
@@ -173,53 +264,81 @@ async function main() {
173
264
  input = fs.readFileSync(0, 'utf-8');
174
265
  }
175
266
  const hookInput = parseHookInput(input);
176
- // Build event data based on hook type (using snake_case to match DTO)
267
+ // Get or use session ID from hook input
268
+ const sessionId = hookInput.session_id || getOrCreateSessionId();
269
+ // Build event data for local daemon
177
270
  const eventData = {
178
- event_type: HOOK_TYPE,
271
+ eventType: mapHookType(HOOK_TYPE),
272
+ sessionId,
273
+ provider: 'claude',
274
+ projectPath: process.cwd(),
275
+ data: {},
179
276
  };
180
277
  switch (HOOK_TYPE) {
181
278
  case 'PreToolUse':
182
- eventData.tool_name = hookInput.tool_name || '';
183
- eventData.tool_input = hookInput.tool_input || {};
279
+ eventData.data = {
280
+ toolName: hookInput.tool_name || '',
281
+ toolInput: hookInput.tool_input || {},
282
+ };
184
283
  break;
185
284
  case 'PostToolUse':
186
- eventData.tool_name = hookInput.tool_name || '';
187
- eventData.tool_input = hookInput.tool_input || {};
188
- eventData.tool_response = hookInput.tool_response || {};
189
- eventData.success = hookInput.tool_response?.success !== false;
285
+ eventData.data = {
286
+ toolName: hookInput.tool_name || '',
287
+ toolInput: hookInput.tool_input || {},
288
+ toolResponse: hookInput.tool_response || {},
289
+ success: hookInput.tool_response?.success !== false,
290
+ };
190
291
  break;
191
292
  case 'UserPromptSubmit':
192
293
  const prompt = hookInput.prompt || '';
193
- eventData.prompt = prompt;
194
- eventData.prompt_length = prompt.length;
294
+ eventData.data = {
295
+ prompt,
296
+ promptLength: prompt.length,
297
+ };
195
298
  break;
196
299
  case 'Stop':
197
- eventData.stop_reason = hookInput.stop_reason || '';
300
+ eventData.data = {
301
+ stopReason: hookInput.stop_reason || '',
302
+ };
303
+ // Extract token metrics if available
304
+ if (hookInput.usage) {
305
+ eventData.inputTokens = hookInput.usage.input_tokens;
306
+ eventData.outputTokens = hookInput.usage.output_tokens;
307
+ eventData.cacheReadTokens = hookInput.usage.cache_read_input_tokens;
308
+ eventData.cacheWriteTokens = hookInput.usage.cache_creation_input_tokens;
309
+ }
198
310
  break;
199
311
  case 'SubagentStop':
200
- eventData.subagent_type = hookInput.subagent_type || '';
201
- eventData.stop_reason = hookInput.stop_reason || '';
312
+ eventData.data = {
313
+ subagentType: hookInput.subagent_type || '',
314
+ stopReason: hookInput.stop_reason || '',
315
+ };
202
316
  break;
203
317
  case 'Notification':
204
- eventData.notification_message = hookInput.message || '';
318
+ eventData.data = {
319
+ message: hookInput.message || '',
320
+ };
205
321
  break;
206
322
  case 'SessionStart':
207
- eventData.cli_version = hookInput.cli_version || '';
323
+ eventData.data = {
324
+ cliVersion: hookInput.cli_version || '',
325
+ };
208
326
  break;
209
327
  case 'SessionEnd':
210
328
  clearSessionId();
211
- eventData.duration_ms = hookInput.duration_ms || 0;
329
+ eventData.data = {
330
+ durationMs: hookInput.duration_ms || 0,
331
+ };
212
332
  break;
213
333
  }
214
- // Send the event and wait for completion before exiting
215
- // Pass Claude's session_id if provided in input
334
+ // Send to local daemon (fire and forget - don't block Claude)
216
335
  try {
217
- await sendEvent(eventData, hookInput.session_id);
336
+ await sendEventToLocalDaemon(eventData);
218
337
  }
219
338
  catch {
220
339
  // Ignore errors - hooks should not block Claude
221
340
  }
222
- // Exit after request completes
341
+ // Exit immediately
223
342
  process.exit(0);
224
343
  }
225
344
  main().catch(() => process.exit(0));
package/dist/hook.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Local Daemon Client
3
+ *
4
+ * Client for hooks to communicate with the local daemon.
5
+ * Handles posting events to localhost and lazy daemon start.
6
+ */
7
+ /**
8
+ * Post event data to the local daemon
9
+ */
10
+ export declare function postToLocalDaemon(endpoint: string, data: Record<string, any>): Promise<{
11
+ success: boolean;
12
+ data?: any;
13
+ error?: string;
14
+ }>;
15
+ /**
16
+ * Post a hook event to the local daemon
17
+ */
18
+ export declare function postHookEvent(eventData: {
19
+ eventType: string;
20
+ sessionId: string;
21
+ provider?: string;
22
+ projectPath?: string;
23
+ data?: Record<string, any>;
24
+ inputTokens?: number;
25
+ outputTokens?: number;
26
+ cacheReadTokens?: number;
27
+ cacheWriteTokens?: number;
28
+ contextTokens?: number;
29
+ costCents?: number;
30
+ }): Promise<boolean>;
31
+ /**
32
+ * Check if daemon is available (running or can be started)
33
+ */
34
+ export declare function isDaemonAvailable(): Promise<boolean>;
35
+ /**
36
+ * Get daemon port if running
37
+ */
38
+ export declare function getDaemonPort(): Promise<number | null>;
39
+ //# sourceMappingURL=daemon-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../../src/hooks/daemon-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8IH;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4D3D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG1D;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D"}