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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/storage/repositories/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Repository Index
3
+ *
4
+ * Exports all repositories for easy import.
5
+ */
6
+ export * from './sessions';
7
+ export * from './messages';
8
+ export * from './events';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Repository Index
4
+ *
5
+ * Exports all repositories for easy import.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./sessions"), exports);
23
+ __exportStar(require("./messages"), exports);
24
+ __exportStar(require("./events"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/repositories/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Message Repository
3
+ *
4
+ * CRUD operations for session messages, compatible with Session V2 API.
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ /**
8
+ * Content block types (matching V2 API)
9
+ */
10
+ export interface TextBlock {
11
+ type: 'text';
12
+ text: string;
13
+ }
14
+ export interface ToolUseBlock {
15
+ type: 'tool_use';
16
+ id: string;
17
+ name: string;
18
+ input: Record<string, any>;
19
+ }
20
+ export interface ToolResultBlock {
21
+ type: 'tool_result';
22
+ tool_use_id: string;
23
+ content: string | any[];
24
+ is_error?: boolean;
25
+ }
26
+ export interface ThinkingBlock {
27
+ type: 'thinking';
28
+ thinking: string;
29
+ }
30
+ export interface ImageBlock {
31
+ type: 'image';
32
+ source: {
33
+ type: 'base64';
34
+ media_type: string;
35
+ data: string;
36
+ };
37
+ }
38
+ export type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock | ImageBlock;
39
+ /**
40
+ * Message entity (matches V2 API)
41
+ */
42
+ export interface Message {
43
+ id: string;
44
+ sessionId: string;
45
+ sequence: number;
46
+ role: 'user' | 'assistant';
47
+ content: ContentBlock[];
48
+ inputTokens: number;
49
+ outputTokens: number;
50
+ cacheReadTokens: number;
51
+ cacheWriteTokens: number;
52
+ costUsd: number;
53
+ toolUseIds: string[];
54
+ createdAt: number;
55
+ syncedAt?: number;
56
+ syncPending: boolean;
57
+ }
58
+ /**
59
+ * Create message input
60
+ */
61
+ export interface CreateMessageInput {
62
+ id?: string;
63
+ sessionId: string;
64
+ sequence?: number;
65
+ role: 'user' | 'assistant';
66
+ content: ContentBlock[];
67
+ inputTokens?: number;
68
+ outputTokens?: number;
69
+ cacheReadTokens?: number;
70
+ cacheWriteTokens?: number;
71
+ costCents?: number;
72
+ toolUseIds?: string[];
73
+ }
74
+ /**
75
+ * Message repository
76
+ */
77
+ export declare class MessageRepository {
78
+ private db;
79
+ private stmts;
80
+ constructor(db: Database.Database);
81
+ private prepareStatements;
82
+ /**
83
+ * Create a new message
84
+ */
85
+ create(input: CreateMessageInput): Message;
86
+ /**
87
+ * Get message by ID
88
+ */
89
+ getById(id: string): Message | null;
90
+ /**
91
+ * Get all messages for a session
92
+ */
93
+ getBySession(sessionId: string): Message[];
94
+ /**
95
+ * Get messages for a session with pagination
96
+ */
97
+ getBySessionPaginated(sessionId: string, limit?: number, offset?: number): Message[];
98
+ /**
99
+ * Mark message as synced
100
+ */
101
+ markSynced(id: string): void;
102
+ /**
103
+ * Mark multiple messages as synced
104
+ */
105
+ markManySynced(ids: string[]): void;
106
+ /**
107
+ * Get unsynced messages
108
+ */
109
+ getUnsynced(limit?: number): Message[];
110
+ /**
111
+ * Delete message
112
+ */
113
+ delete(id: string): boolean;
114
+ /**
115
+ * Delete all messages for a session
116
+ */
117
+ deleteBySession(sessionId: string): number;
118
+ /**
119
+ * Map database row to Message object
120
+ */
121
+ private mapRow;
122
+ }
123
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /**
3
+ * Message Repository
4
+ *
5
+ * CRUD operations for session messages, compatible with Session V2 API.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.MessageRepository = void 0;
42
+ const crypto = __importStar(require("crypto"));
43
+ /**
44
+ * Message repository
45
+ */
46
+ class MessageRepository {
47
+ db;
48
+ stmts;
49
+ constructor(db) {
50
+ this.db = db;
51
+ this.stmts = this.prepareStatements();
52
+ }
53
+ prepareStatements() {
54
+ return {
55
+ insert: this.db.prepare(`
56
+ INSERT INTO messages (
57
+ id, session_id, sequence, role, content,
58
+ input_tokens, output_tokens, cache_read_tokens, cache_write_tokens,
59
+ cost_cents, tool_use_ids, created_at
60
+ ) VALUES (
61
+ @id, @sessionId, @sequence, @role, @content,
62
+ @inputTokens, @outputTokens, @cacheReadTokens, @cacheWriteTokens,
63
+ @costCents, @toolUseIds, @createdAt
64
+ )
65
+ `),
66
+ getById: this.db.prepare(`
67
+ SELECT * FROM messages WHERE id = ?
68
+ `),
69
+ getBySession: this.db.prepare(`
70
+ SELECT * FROM messages WHERE session_id = ? ORDER BY sequence ASC
71
+ `),
72
+ getBySessionPaginated: this.db.prepare(`
73
+ SELECT * FROM messages
74
+ WHERE session_id = ?
75
+ ORDER BY sequence ASC
76
+ LIMIT ? OFFSET ?
77
+ `),
78
+ getLastSequence: this.db.prepare(`
79
+ SELECT MAX(sequence) as max_seq FROM messages WHERE session_id = ?
80
+ `),
81
+ markSynced: this.db.prepare(`
82
+ UPDATE messages SET
83
+ synced_at = @syncedAt,
84
+ sync_pending = 0
85
+ WHERE id = @id
86
+ `),
87
+ getUnsynced: this.db.prepare(`
88
+ SELECT * FROM messages WHERE sync_pending = 1 ORDER BY created_at ASC LIMIT ?
89
+ `),
90
+ delete: this.db.prepare(`
91
+ DELETE FROM messages WHERE id = ?
92
+ `),
93
+ deleteBySession: this.db.prepare(`
94
+ DELETE FROM messages WHERE session_id = ?
95
+ `),
96
+ };
97
+ }
98
+ /**
99
+ * Create a new message
100
+ */
101
+ create(input) {
102
+ const now = Date.now();
103
+ const id = input.id || crypto.randomUUID();
104
+ // Get next sequence number if not provided
105
+ let sequence = input.sequence;
106
+ if (sequence === undefined) {
107
+ const row = this.stmts.getLastSequence.get(input.sessionId);
108
+ sequence = (row?.max_seq ?? -1) + 1;
109
+ }
110
+ this.stmts.insert.run({
111
+ id,
112
+ sessionId: input.sessionId,
113
+ sequence,
114
+ role: input.role,
115
+ content: JSON.stringify(input.content),
116
+ inputTokens: input.inputTokens || 0,
117
+ outputTokens: input.outputTokens || 0,
118
+ cacheReadTokens: input.cacheReadTokens || 0,
119
+ cacheWriteTokens: input.cacheWriteTokens || 0,
120
+ costCents: input.costCents || 0,
121
+ toolUseIds: JSON.stringify(input.toolUseIds || []),
122
+ createdAt: now,
123
+ });
124
+ return this.getById(id);
125
+ }
126
+ /**
127
+ * Get message by ID
128
+ */
129
+ getById(id) {
130
+ const row = this.stmts.getById.get(id);
131
+ return row ? this.mapRow(row) : null;
132
+ }
133
+ /**
134
+ * Get all messages for a session
135
+ */
136
+ getBySession(sessionId) {
137
+ const rows = this.stmts.getBySession.all(sessionId);
138
+ return rows.map(row => this.mapRow(row));
139
+ }
140
+ /**
141
+ * Get messages for a session with pagination
142
+ */
143
+ getBySessionPaginated(sessionId, limit = 50, offset = 0) {
144
+ const rows = this.stmts.getBySessionPaginated.all(sessionId, limit, offset);
145
+ return rows.map(row => this.mapRow(row));
146
+ }
147
+ /**
148
+ * Mark message as synced
149
+ */
150
+ markSynced(id) {
151
+ this.stmts.markSynced.run({ id, syncedAt: Date.now() });
152
+ }
153
+ /**
154
+ * Mark multiple messages as synced
155
+ */
156
+ markManySynced(ids) {
157
+ const stmt = this.stmts.markSynced;
158
+ const syncedAt = Date.now();
159
+ this.db.transaction(() => {
160
+ for (const id of ids) {
161
+ stmt.run({ id, syncedAt });
162
+ }
163
+ })();
164
+ }
165
+ /**
166
+ * Get unsynced messages
167
+ */
168
+ getUnsynced(limit = 100) {
169
+ const rows = this.stmts.getUnsynced.all(limit);
170
+ return rows.map(row => this.mapRow(row));
171
+ }
172
+ /**
173
+ * Delete message
174
+ */
175
+ delete(id) {
176
+ const result = this.stmts.delete.run(id);
177
+ return result.changes > 0;
178
+ }
179
+ /**
180
+ * Delete all messages for a session
181
+ */
182
+ deleteBySession(sessionId) {
183
+ const result = this.stmts.deleteBySession.run(sessionId);
184
+ return result.changes;
185
+ }
186
+ /**
187
+ * Map database row to Message object
188
+ */
189
+ mapRow(row) {
190
+ return {
191
+ id: row.id,
192
+ sessionId: row.session_id,
193
+ sequence: row.sequence,
194
+ role: row.role,
195
+ content: JSON.parse(row.content || '[]'),
196
+ inputTokens: row.input_tokens,
197
+ outputTokens: row.output_tokens,
198
+ cacheReadTokens: row.cache_read_tokens,
199
+ cacheWriteTokens: row.cache_write_tokens,
200
+ costUsd: row.cost_cents / 100,
201
+ toolUseIds: JSON.parse(row.tool_use_ids || '[]'),
202
+ createdAt: row.created_at,
203
+ syncedAt: row.synced_at,
204
+ syncPending: row.sync_pending === 1,
205
+ };
206
+ }
207
+ }
208
+ exports.MessageRepository = MessageRepository;
209
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/storage/repositories/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Session Repository
3
+ *
4
+ * CRUD operations for sessions, compatible with Session V2 API.
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ import { SessionStatus, SessionState, Provider, EnvType } from '../schema';
8
+ /**
9
+ * Session entity (matches V2 API)
10
+ */
11
+ export interface Session {
12
+ id: string;
13
+ userId?: string;
14
+ name?: string;
15
+ type: EnvType;
16
+ provider: Provider;
17
+ model?: string;
18
+ projectPath?: string;
19
+ gitBranch?: string;
20
+ gitRepo?: string;
21
+ status: SessionStatus;
22
+ currentState?: SessionState;
23
+ currentToolName?: string;
24
+ lastMessagePreview?: string;
25
+ lastMessageRole?: 'user' | 'assistant';
26
+ totalInputTokens: number;
27
+ totalOutputTokens: number;
28
+ totalCacheReadTokens: number;
29
+ totalCacheWriteTokens: number;
30
+ contextTokens: number;
31
+ maxContextTokens: number;
32
+ estimatedCostUsd: number;
33
+ messageCount: number;
34
+ toolUseCount: number;
35
+ userPromptCount: number;
36
+ assistantResponseCount: number;
37
+ controlToken?: string;
38
+ startedAt?: number;
39
+ endedAt?: number;
40
+ durationMs?: number;
41
+ lastActivityAt?: number;
42
+ createdAt: number;
43
+ updatedAt: number;
44
+ syncedAt?: number;
45
+ syncPending: boolean;
46
+ }
47
+ /**
48
+ * Create session input
49
+ */
50
+ export interface CreateSessionInput {
51
+ id?: string;
52
+ userId?: string;
53
+ name?: string;
54
+ type?: EnvType;
55
+ provider?: Provider;
56
+ model?: string;
57
+ projectPath?: string;
58
+ gitBranch?: string;
59
+ gitRepo?: string;
60
+ controlToken?: string;
61
+ }
62
+ /**
63
+ * Update session input
64
+ */
65
+ export interface UpdateSessionInput {
66
+ name?: string;
67
+ status?: SessionStatus;
68
+ currentState?: SessionState;
69
+ currentToolName?: string;
70
+ lastMessagePreview?: string;
71
+ lastMessageRole?: 'user' | 'assistant';
72
+ model?: string;
73
+ gitBranch?: string;
74
+ gitRepo?: string;
75
+ endedAt?: number;
76
+ durationMs?: number;
77
+ }
78
+ /**
79
+ * Token metrics update
80
+ */
81
+ export interface TokenMetricsUpdate {
82
+ inputTokens?: number;
83
+ outputTokens?: number;
84
+ cacheReadTokens?: number;
85
+ cacheWriteTokens?: number;
86
+ contextTokens?: number;
87
+ }
88
+ /**
89
+ * Session repository
90
+ */
91
+ export declare class SessionRepository {
92
+ private db;
93
+ private stmts;
94
+ constructor(db: Database.Database);
95
+ private prepareStatements;
96
+ /**
97
+ * Create a new session
98
+ */
99
+ create(input: CreateSessionInput): Session;
100
+ /**
101
+ * Get session by ID
102
+ */
103
+ getById(id: string): Session | null;
104
+ /**
105
+ * Get sessions by status
106
+ */
107
+ getByStatus(status: SessionStatus): Session[];
108
+ /**
109
+ * Get active sessions (not ended)
110
+ */
111
+ getActive(): Session[];
112
+ /**
113
+ * Get all sessions
114
+ */
115
+ getAll(limit?: number): Session[];
116
+ /**
117
+ * Update session
118
+ */
119
+ update(id: string, input: UpdateSessionInput): Session | null;
120
+ /**
121
+ * Update session status
122
+ */
123
+ updateStatus(id: string, status: SessionStatus): void;
124
+ /**
125
+ * Update session state (for live monitoring)
126
+ */
127
+ updateState(id: string, state: SessionState, toolName?: string): void;
128
+ /**
129
+ * Update token metrics
130
+ */
131
+ updateMetrics(id: string, metrics: TokenMetricsUpdate, costCents?: number): void;
132
+ /**
133
+ * Increment counts
134
+ */
135
+ incrementCounts(id: string, counts: {
136
+ messages?: number;
137
+ toolUses?: number;
138
+ userPrompts?: number;
139
+ assistantResponses?: number;
140
+ }): void;
141
+ /**
142
+ * Mark session as synced
143
+ */
144
+ markSynced(id: string): void;
145
+ /**
146
+ * Get unsynced sessions
147
+ */
148
+ getUnsynced(limit?: number): Session[];
149
+ /**
150
+ * Delete session
151
+ */
152
+ delete(id: string): boolean;
153
+ /**
154
+ * Map database row to Session object
155
+ */
156
+ private mapRow;
157
+ }
158
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/sessions.ts"],"names":[],"mappings":"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"}