@defai.digital/sqlite-adapter 13.0.3

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.
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Error thrown by SQLite trace store operations
3
+ */
4
+ export class SqliteTraceStoreError extends Error {
5
+ code;
6
+ details;
7
+ constructor(code, message, details) {
8
+ super(message);
9
+ this.code = code;
10
+ this.details = details;
11
+ this.name = 'SqliteTraceStoreError';
12
+ }
13
+ }
14
+ /**
15
+ * Error codes for SQLite trace store
16
+ */
17
+ export const SqliteTraceStoreErrorCodes = {
18
+ DATABASE_ERROR: 'SQLITE_TRACE_DATABASE_ERROR',
19
+ INVALID_EVENT: 'SQLITE_TRACE_INVALID_EVENT',
20
+ };
21
+ /**
22
+ * SQLite implementation of TraceStore
23
+ * INV-TR-002: Events are strictly ordered by sequence
24
+ * INV-TR-004: Each trace is independent and self-contained
25
+ */
26
+ export class SqliteTraceStore {
27
+ db;
28
+ eventsTable;
29
+ summariesTable;
30
+ constructor(db, eventsTable = 'trace_events', summariesTable = 'trace_summaries') {
31
+ this.db = db;
32
+ this.eventsTable = eventsTable;
33
+ this.summariesTable = summariesTable;
34
+ this.initialize();
35
+ }
36
+ /**
37
+ * Initializes the database schema
38
+ */
39
+ initialize() {
40
+ this.db.exec(`
41
+ CREATE TABLE IF NOT EXISTS ${this.eventsTable} (
42
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
43
+ event_id TEXT NOT NULL UNIQUE,
44
+ trace_id TEXT NOT NULL,
45
+ type TEXT NOT NULL,
46
+ timestamp TEXT NOT NULL,
47
+ sequence INTEGER,
48
+ parent_event_id TEXT,
49
+ payload TEXT,
50
+ context TEXT,
51
+ status TEXT,
52
+ duration_ms INTEGER,
53
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
54
+ );
55
+
56
+ CREATE INDEX IF NOT EXISTS idx_${this.eventsTable}_trace_id
57
+ ON ${this.eventsTable}(trace_id);
58
+
59
+ CREATE INDEX IF NOT EXISTS idx_${this.eventsTable}_trace_sequence
60
+ ON ${this.eventsTable}(trace_id, sequence);
61
+
62
+ CREATE INDEX IF NOT EXISTS idx_${this.eventsTable}_type
63
+ ON ${this.eventsTable}(type);
64
+
65
+ CREATE TABLE IF NOT EXISTS ${this.summariesTable} (
66
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
67
+ trace_id TEXT NOT NULL UNIQUE,
68
+ start_time TEXT NOT NULL,
69
+ end_time TEXT,
70
+ status TEXT NOT NULL,
71
+ event_count INTEGER NOT NULL DEFAULT 0,
72
+ error_count INTEGER NOT NULL DEFAULT 0,
73
+ duration_ms INTEGER,
74
+ updated_at TEXT NOT NULL DEFAULT (datetime('now'))
75
+ );
76
+
77
+ CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_start_time
78
+ ON ${this.summariesTable}(start_time DESC);
79
+
80
+ CREATE INDEX IF NOT EXISTS idx_${this.summariesTable}_status
81
+ ON ${this.summariesTable}(status);
82
+ `);
83
+ }
84
+ /**
85
+ * Writes a trace event
86
+ * INV-TR-002: Events must be strictly ordered
87
+ */
88
+ write(event) {
89
+ try {
90
+ // Insert event
91
+ const eventStmt = this.db.prepare(`
92
+ INSERT INTO ${this.eventsTable} (
93
+ event_id, trace_id, type, timestamp, sequence,
94
+ parent_event_id, payload, context, status, duration_ms
95
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
96
+ `);
97
+ eventStmt.run(event.eventId, event.traceId, event.type, event.timestamp, event.sequence ?? null, event.parentEventId ?? null, event.payload !== undefined ? JSON.stringify(event.payload) : null, event.context !== undefined ? JSON.stringify(event.context) : null, event.status ?? null, event.durationMs ?? null);
98
+ // Update summary
99
+ this.updateSummary(event);
100
+ return Promise.resolve();
101
+ }
102
+ catch (error) {
103
+ throw new SqliteTraceStoreError(SqliteTraceStoreErrorCodes.DATABASE_ERROR, `Failed to write trace event: ${error instanceof Error ? error.message : 'Unknown error'}`);
104
+ }
105
+ }
106
+ /**
107
+ * Flushes pending writes
108
+ * For SQLite, this is a no-op since we write immediately
109
+ */
110
+ flush() {
111
+ return Promise.resolve();
112
+ }
113
+ /**
114
+ * Gets all events for a trace
115
+ * INV-TR-002: Events returned in sequence order
116
+ */
117
+ getTrace(traceId) {
118
+ const stmt = this.db.prepare(`
119
+ SELECT event_id, trace_id, type, timestamp, sequence,
120
+ parent_event_id, payload, context, status, duration_ms
121
+ FROM ${this.eventsTable}
122
+ WHERE trace_id = ?
123
+ ORDER BY COALESCE(sequence, id)
124
+ `);
125
+ const rows = stmt.all(traceId);
126
+ return Promise.resolve(rows.map(rowToTraceEvent));
127
+ }
128
+ /**
129
+ * Gets a specific event
130
+ */
131
+ getEvent(traceId, eventId) {
132
+ const stmt = this.db.prepare(`
133
+ SELECT event_id, trace_id, type, timestamp, sequence,
134
+ parent_event_id, payload, context, status, duration_ms
135
+ FROM ${this.eventsTable}
136
+ WHERE trace_id = ? AND event_id = ?
137
+ `);
138
+ const row = stmt.get(traceId, eventId);
139
+ return Promise.resolve(row !== undefined ? rowToTraceEvent(row) : undefined);
140
+ }
141
+ /**
142
+ * Lists recent traces
143
+ */
144
+ listTraces(limit = 100) {
145
+ const stmt = this.db.prepare(`
146
+ SELECT trace_id, start_time, end_time, status,
147
+ event_count, error_count, duration_ms
148
+ FROM ${this.summariesTable}
149
+ ORDER BY id DESC
150
+ LIMIT ?
151
+ `);
152
+ const rows = stmt.all(limit);
153
+ return Promise.resolve(rows.map(rowToTraceSummary));
154
+ }
155
+ /**
156
+ * Updates trace summary based on event
157
+ */
158
+ updateSummary(event) {
159
+ // Check if summary exists
160
+ const checkStmt = this.db.prepare(`
161
+ SELECT trace_id FROM ${this.summariesTable} WHERE trace_id = ?
162
+ `);
163
+ const existing = checkStmt.get(event.traceId);
164
+ if (existing === undefined) {
165
+ // Insert new summary
166
+ const insertStmt = this.db.prepare(`
167
+ INSERT INTO ${this.summariesTable} (
168
+ trace_id, start_time, status, event_count, error_count
169
+ ) VALUES (?, ?, ?, 1, ?)
170
+ `);
171
+ insertStmt.run(event.traceId, event.timestamp, event.status ?? 'pending', event.type === 'error' ? 1 : 0);
172
+ }
173
+ else {
174
+ // Update existing summary
175
+ let updateSql = `
176
+ UPDATE ${this.summariesTable}
177
+ SET event_count = event_count + 1,
178
+ updated_at = datetime('now')
179
+ `;
180
+ const params = [];
181
+ if (event.type === 'error') {
182
+ updateSql += ', error_count = error_count + 1';
183
+ }
184
+ if (event.type === 'run.start') {
185
+ updateSql += ', start_time = ?, status = ?';
186
+ params.push(event.timestamp, 'running');
187
+ }
188
+ if (event.type === 'run.end') {
189
+ updateSql += ', end_time = ?, status = ?';
190
+ params.push(event.timestamp);
191
+ const payload = event.payload;
192
+ params.push(payload?.success === true ? 'success' : 'failure');
193
+ if (event.durationMs !== undefined) {
194
+ updateSql += ', duration_ms = ?';
195
+ params.push(event.durationMs);
196
+ }
197
+ }
198
+ else if (event.status !== undefined) {
199
+ updateSql += ', status = ?';
200
+ params.push(event.status);
201
+ }
202
+ updateSql += ' WHERE trace_id = ?';
203
+ params.push(event.traceId);
204
+ const updateStmt = this.db.prepare(updateSql);
205
+ updateStmt.run(...params);
206
+ }
207
+ }
208
+ /**
209
+ * Clears all traces (for testing only)
210
+ */
211
+ clear() {
212
+ this.db.exec(`DELETE FROM ${this.eventsTable}`);
213
+ this.db.exec(`DELETE FROM ${this.summariesTable}`);
214
+ }
215
+ /**
216
+ * Deletes a trace and all its events
217
+ * @returns true if trace existed and was deleted
218
+ */
219
+ deleteTrace(traceId) {
220
+ try {
221
+ // Delete events for this trace
222
+ const deleteEventsStmt = this.db.prepare(`
223
+ DELETE FROM ${this.eventsTable} WHERE trace_id = ?
224
+ `);
225
+ const eventsResult = deleteEventsStmt.run(traceId);
226
+ // Delete summary for this trace
227
+ const deleteSummaryStmt = this.db.prepare(`
228
+ DELETE FROM ${this.summariesTable} WHERE trace_id = ?
229
+ `);
230
+ deleteSummaryStmt.run(traceId);
231
+ // Return true if any events were deleted
232
+ return Promise.resolve(eventsResult.changes > 0);
233
+ }
234
+ catch (error) {
235
+ throw new SqliteTraceStoreError(SqliteTraceStoreErrorCodes.DATABASE_ERROR, `Failed to delete trace: ${error instanceof Error ? error.message : 'Unknown error'}`);
236
+ }
237
+ }
238
+ }
239
+ /**
240
+ * Safely parses JSON with error handling
241
+ */
242
+ function safeJsonParse(json, fieldName, eventId) {
243
+ try {
244
+ return JSON.parse(json);
245
+ }
246
+ catch (error) {
247
+ throw new SqliteTraceStoreError(SqliteTraceStoreErrorCodes.DATABASE_ERROR, `Failed to parse ${fieldName} for event ${eventId}: ${error instanceof Error ? error.message : 'Invalid JSON'}`, { eventId, fieldName });
248
+ }
249
+ }
250
+ /**
251
+ * Converts a database row to a TraceEvent
252
+ */
253
+ function rowToTraceEvent(row) {
254
+ const event = {
255
+ eventId: row.event_id,
256
+ traceId: row.trace_id,
257
+ type: row.type,
258
+ timestamp: row.timestamp,
259
+ };
260
+ if (row.sequence !== null) {
261
+ event.sequence = row.sequence;
262
+ }
263
+ if (row.parent_event_id !== null) {
264
+ event.parentEventId = row.parent_event_id;
265
+ }
266
+ if (row.payload !== null) {
267
+ event.payload = safeJsonParse(row.payload, 'payload', row.event_id);
268
+ }
269
+ if (row.context !== null) {
270
+ event.context = safeJsonParse(row.context, 'context', row.event_id);
271
+ }
272
+ if (row.status !== null) {
273
+ event.status = row.status;
274
+ }
275
+ if (row.duration_ms !== null) {
276
+ event.durationMs = row.duration_ms;
277
+ }
278
+ return event;
279
+ }
280
+ /**
281
+ * Converts a database row to a TraceSummary
282
+ */
283
+ function rowToTraceSummary(row) {
284
+ const summary = {
285
+ traceId: row.trace_id,
286
+ startTime: row.start_time,
287
+ status: row.status,
288
+ eventCount: row.event_count,
289
+ errorCount: row.error_count,
290
+ };
291
+ if (row.end_time !== null) {
292
+ summary.endTime = row.end_time;
293
+ }
294
+ if (row.duration_ms !== null) {
295
+ summary.durationMs = row.duration_ms;
296
+ }
297
+ return summary;
298
+ }
299
+ /**
300
+ * Creates a SQLite trace store
301
+ */
302
+ export function createSqliteTraceStore(db, eventsTable, summariesTable) {
303
+ return new SqliteTraceStore(db, eventsTable, summariesTable);
304
+ }
305
+ //# sourceMappingURL=trace-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-store.js","sourceRoot":"","sources":["../src/trace-store.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@defai.digital/sqlite-adapter",
3
+ "version": "13.0.3",
4
+ "type": "module",
5
+ "license": "Apache-2.0",
6
+ "author": "DEFAI Private Limited",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/defai-digital/automatosx.git",
10
+ "directory": "packages/adapters/sqlite"
11
+ },
12
+ "homepage": "https://github.com/defai-digital/automatosx#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/defai-digital/automatosx/issues"
15
+ },
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js"
20
+ }
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "engines": {
26
+ "node": ">=20.0.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "dependencies": {
32
+ "better-sqlite3": "^11.6.0",
33
+ "@defai.digital/contracts": "13.0.3",
34
+ "@defai.digital/agent-execution": "13.0.3",
35
+ "@defai.digital/memory-domain": "13.0.3",
36
+ "@defai.digital/trace-domain": "13.0.3",
37
+ "@defai.digital/cross-cutting": "13.0.3"
38
+ },
39
+ "devDependencies": {
40
+ "@types/better-sqlite3": "^7.6.11",
41
+ "typescript": "^5.7.2"
42
+ },
43
+ "scripts": {
44
+ "build": "tsc --build",
45
+ "clean": "rm -rf dist"
46
+ }
47
+ }