@blockspool/sqlite 0.2.0 → 0.3.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockspool/sqlite",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "SQLite adapter for BlockSpool - zero-config local mode",
5
5
  "author": "BlockSpool",
6
6
  "homepage": "https://blockspool.com",
@@ -38,14 +38,14 @@
38
38
  ],
39
39
  "license": "Apache-2.0",
40
40
  "dependencies": {
41
- "@blockspool/core": "^0.2.0",
42
- "better-sqlite3": "^11.7.0"
41
+ "@blockspool/core": "^0.3.0",
42
+ "better-sqlite3": "^12.6.2"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/better-sqlite3": "^7.6.11",
46
46
  "typescript": "^5.7.3"
47
47
  },
48
48
  "peerDependencies": {
49
- "@blockspool/core": ">=0.2.0"
49
+ "@blockspool/core": ">=0.3.0"
50
50
  }
51
51
  }
package/dist/adapter.d.ts DELETED
@@ -1,94 +0,0 @@
1
- /**
2
- * SQLite adapter implementation
3
- *
4
- * Uses better-sqlite3 for synchronous, fast SQLite operations.
5
- * This is the zero-config adapter for individual developers.
6
- *
7
- * Key differences from Postgres:
8
- * - Synchronous API (better-sqlite3 is sync)
9
- * - WAL mode for better concurrency
10
- * - Single-writer pattern (SQLite limitation)
11
- * - No RETURNING * in older SQLite versions
12
- * - Different parameter placeholder syntax ($1 → ?)
13
- */
14
- import type { DatabaseAdapter, DatabaseConfig, MigrationResult, QueryLogConfig, QueryResult, QueryStats, TransactionClient } from '@blockspool/core/db';
15
- /**
16
- * SQLite adapter for BlockSpool
17
- *
18
- * Features:
19
- * - WAL mode for better concurrency
20
- * - Auto-creates database directory
21
- * - Converts Postgres-style $1 params to SQLite ? params
22
- * - Embedded migrations
23
- */
24
- export declare class SQLiteAdapter implements DatabaseAdapter {
25
- private config;
26
- readonly name = "sqlite";
27
- private db;
28
- private dbPath;
29
- private logConfig;
30
- private stats;
31
- constructor(config: DatabaseConfig);
32
- get connected(): boolean;
33
- /**
34
- * Parse database path from various URL formats
35
- */
36
- private parsePath;
37
- /**
38
- * Ensure the database directory exists
39
- */
40
- private ensureDirectory;
41
- /**
42
- * Get or create the database connection
43
- */
44
- private getDb;
45
- /**
46
- * Convert Postgres-style $1, $2 params to SQLite ? params
47
- *
48
- * Note: This is a simple conversion that assumes params are used in order.
49
- * For complex queries with out-of-order params, this would need enhancement.
50
- */
51
- private convertParams;
52
- /**
53
- * Extract query type for statistics
54
- */
55
- private getQueryType;
56
- /**
57
- * Update statistics after a query
58
- */
59
- private recordStats;
60
- /**
61
- * Log query if configured
62
- */
63
- private logQuery;
64
- query<T = Record<string, unknown>>(text: string, params?: unknown[]): Promise<QueryResult<T>>;
65
- /**
66
- * Extract table name from INSERT/UPDATE/DELETE statement
67
- */
68
- private extractTableName;
69
- withTransaction<T>(fn: (client: TransactionClient) => Promise<T>): Promise<T>;
70
- migrate(options?: {
71
- dryRun?: boolean;
72
- target?: string;
73
- verbose?: boolean;
74
- }): Promise<MigrationResult>;
75
- /**
76
- * Get core migrations for SQLite schema
77
- *
78
- * These are simplified versions of the Postgres migrations,
79
- * adapted for SQLite syntax.
80
- */
81
- private getCoreMigrations;
82
- close(): Promise<void>;
83
- configureLogging(config: Partial<QueryLogConfig>): void;
84
- getStats(): Readonly<QueryStats>;
85
- resetStats(): void;
86
- }
87
- /**
88
- * Create a SQLite adapter
89
- *
90
- * @param config - Database configuration
91
- * @returns Initialized SQLite adapter
92
- */
93
- export declare function createSQLiteAdapter(config: DatabaseConfig): Promise<SQLiteAdapter>;
94
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAY7B;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,eAAe;IAgBvC,OAAO,CAAC,MAAM;IAf1B,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAIf;IACF,OAAO,CAAC,KAAK,CAKX;gBAEkB,MAAM,EAAE,cAAc;IAK1C,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,KAAK;IAmBb;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAaV,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA8C1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAalB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA2B7E,OAAO,CAAC,OAAO,CAAC,EAAE;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,eAAe,CAAC;IAyD5B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA2LnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAIvD,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIhC,UAAU,IAAI,IAAI;CAQnB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAKxF"}
package/dist/adapter.js DELETED
@@ -1,508 +0,0 @@
1
- /**
2
- * SQLite adapter implementation
3
- *
4
- * Uses better-sqlite3 for synchronous, fast SQLite operations.
5
- * This is the zero-config adapter for individual developers.
6
- *
7
- * Key differences from Postgres:
8
- * - Synchronous API (better-sqlite3 is sync)
9
- * - WAL mode for better concurrency
10
- * - Single-writer pattern (SQLite limitation)
11
- * - No RETURNING * in older SQLite versions
12
- * - Different parameter placeholder syntax ($1 → ?)
13
- */
14
- import Database from 'better-sqlite3';
15
- import * as fs from 'node:fs';
16
- import * as path from 'node:path';
17
- /**
18
- * SQLite adapter for BlockSpool
19
- *
20
- * Features:
21
- * - WAL mode for better concurrency
22
- * - Auto-creates database directory
23
- * - Converts Postgres-style $1 params to SQLite ? params
24
- * - Embedded migrations
25
- */
26
- export class SQLiteAdapter {
27
- config;
28
- name = 'sqlite';
29
- db = null;
30
- dbPath;
31
- logConfig = {
32
- logAll: false,
33
- slowQueryThresholdMs: 50, // Lower threshold for SQLite (it's faster)
34
- logParams: false,
35
- };
36
- stats = {
37
- totalQueries: 0,
38
- totalErrors: 0,
39
- totalDurationMs: 0,
40
- byType: {},
41
- };
42
- constructor(config) {
43
- this.config = config;
44
- // Parse database path from URL
45
- this.dbPath = this.parsePath(config.url);
46
- }
47
- get connected() {
48
- return this.db !== null && this.db.open;
49
- }
50
- /**
51
- * Parse database path from various URL formats
52
- */
53
- parsePath(url) {
54
- if (url.startsWith('sqlite://')) {
55
- return url.slice('sqlite://'.length);
56
- }
57
- if (url.startsWith('file:')) {
58
- return url.slice('file:'.length);
59
- }
60
- // Assume it's a direct path
61
- return url;
62
- }
63
- /**
64
- * Ensure the database directory exists
65
- */
66
- ensureDirectory() {
67
- const dir = path.dirname(this.dbPath);
68
- if (!fs.existsSync(dir)) {
69
- fs.mkdirSync(dir, { recursive: true });
70
- }
71
- }
72
- /**
73
- * Get or create the database connection
74
- */
75
- getDb() {
76
- if (!this.db) {
77
- this.ensureDirectory();
78
- this.db = new Database(this.dbPath);
79
- // Enable WAL mode for better concurrency
80
- if (this.config.walMode !== false) {
81
- this.db.pragma('journal_mode = WAL');
82
- }
83
- // Other performance pragmas
84
- this.db.pragma('synchronous = NORMAL');
85
- this.db.pragma('cache_size = -64000'); // 64MB cache
86
- this.db.pragma('foreign_keys = ON');
87
- }
88
- return this.db;
89
- }
90
- /**
91
- * Convert Postgres-style $1, $2 params to SQLite ? params
92
- *
93
- * Note: This is a simple conversion that assumes params are used in order.
94
- * For complex queries with out-of-order params, this would need enhancement.
95
- */
96
- convertParams(text, params) {
97
- if (!params || params.length === 0) {
98
- return { sql: text, values: [] };
99
- }
100
- // Replace $1, $2, etc. with ?
101
- // Track which params are used and in what order
102
- const usedParams = [];
103
- const sql = text.replace(/\$(\d+)/g, (_, num) => {
104
- usedParams.push(parseInt(num, 10) - 1);
105
- return '?';
106
- });
107
- // Reorder params based on usage
108
- const values = usedParams.map((idx) => params[idx]);
109
- return { sql, values };
110
- }
111
- /**
112
- * Extract query type for statistics
113
- */
114
- getQueryType(text) {
115
- const trimmed = text.trim().toUpperCase();
116
- if (trimmed.startsWith('SELECT'))
117
- return 'SELECT';
118
- if (trimmed.startsWith('INSERT'))
119
- return 'INSERT';
120
- if (trimmed.startsWith('UPDATE'))
121
- return 'UPDATE';
122
- if (trimmed.startsWith('DELETE'))
123
- return 'DELETE';
124
- if (trimmed.startsWith('BEGIN') || trimmed.startsWith('COMMIT') || trimmed.startsWith('ROLLBACK')) {
125
- return 'TRANSACTION';
126
- }
127
- if (trimmed.startsWith('CREATE') || trimmed.startsWith('ALTER') || trimmed.startsWith('DROP')) {
128
- return 'DDL';
129
- }
130
- return 'OTHER';
131
- }
132
- /**
133
- * Update statistics after a query
134
- */
135
- recordStats(type, durationMs, isError) {
136
- this.stats.totalQueries++;
137
- this.stats.totalDurationMs += durationMs;
138
- if (isError)
139
- this.stats.totalErrors++;
140
- if (!this.stats.byType[type]) {
141
- this.stats.byType[type] = { count: 0, errors: 0, durationMs: 0 };
142
- }
143
- this.stats.byType[type].count++;
144
- this.stats.byType[type].durationMs += durationMs;
145
- if (isError)
146
- this.stats.byType[type].errors++;
147
- }
148
- /**
149
- * Log query if configured
150
- */
151
- logQuery(text, params, durationMs) {
152
- const shouldLog = this.logConfig.logAll || durationMs >= this.logConfig.slowQueryThresholdMs;
153
- if (shouldLog) {
154
- const paramInfo = this.logConfig.logParams && params?.length
155
- ? ` params=${JSON.stringify(params)}`
156
- : '';
157
- const slowTag = durationMs >= this.logConfig.slowQueryThresholdMs ? ' [SLOW]' : '';
158
- console.log(`[sqlite]${slowTag} ${durationMs}ms: ${text.slice(0, 100)}${paramInfo}`);
159
- }
160
- }
161
- async query(text, params) {
162
- const db = this.getDb();
163
- const queryType = this.getQueryType(text);
164
- const { sql, values } = this.convertParams(text, params);
165
- const start = Date.now();
166
- try {
167
- let rows = [];
168
- let rowCount = null;
169
- // Use run() for INSERT/UPDATE/DELETE, all() for SELECT
170
- if (queryType === 'SELECT' || text.trim().toUpperCase().includes('RETURNING')) {
171
- const stmt = db.prepare(sql);
172
- rows = stmt.all(...values);
173
- rowCount = rows.length;
174
- }
175
- else {
176
- const stmt = db.prepare(sql);
177
- const result = stmt.run(...values);
178
- rowCount = result.changes;
179
- // Handle RETURNING clause simulation for INSERT
180
- if (queryType === 'INSERT' && result.lastInsertRowid) {
181
- // Try to fetch the inserted row if there's a RETURNING clause
182
- const returningMatch = text.match(/RETURNING\s+(.+?)(?:;|\s*$)/i);
183
- if (returningMatch) {
184
- const tableName = this.extractTableName(text);
185
- if (tableName) {
186
- const fetchStmt = db.prepare(`SELECT * FROM ${tableName} WHERE rowid = ?`);
187
- rows = [fetchStmt.get(result.lastInsertRowid)].filter(Boolean);
188
- }
189
- }
190
- }
191
- }
192
- const durationMs = Date.now() - start;
193
- this.recordStats(queryType, durationMs, false);
194
- this.logQuery(text, params, durationMs);
195
- return { rows, rowCount };
196
- }
197
- catch (error) {
198
- const durationMs = Date.now() - start;
199
- this.recordStats(queryType, durationMs, true);
200
- throw error;
201
- }
202
- }
203
- /**
204
- * Extract table name from INSERT/UPDATE/DELETE statement
205
- */
206
- extractTableName(sql) {
207
- const insertMatch = sql.match(/INSERT\s+INTO\s+["']?(\w+)["']?/i);
208
- if (insertMatch)
209
- return insertMatch[1];
210
- const updateMatch = sql.match(/UPDATE\s+["']?(\w+)["']?/i);
211
- if (updateMatch)
212
- return updateMatch[1];
213
- const deleteMatch = sql.match(/DELETE\s+FROM\s+["']?(\w+)["']?/i);
214
- if (deleteMatch)
215
- return deleteMatch[1];
216
- return null;
217
- }
218
- async withTransaction(fn) {
219
- const db = this.getDb();
220
- // SQLite transactions are synchronous with better-sqlite3
221
- // But we wrap in async for interface compatibility
222
- const txClient = {
223
- query: async (text, params) => {
224
- return this.query(text, params);
225
- },
226
- };
227
- try {
228
- db.exec('BEGIN IMMEDIATE'); // IMMEDIATE for write transactions
229
- const result = await fn(txClient);
230
- db.exec('COMMIT');
231
- return result;
232
- }
233
- catch (error) {
234
- db.exec('ROLLBACK');
235
- throw error;
236
- }
237
- }
238
- async migrate(options) {
239
- const db = this.getDb();
240
- // Create migrations table if not exists
241
- db.exec(`
242
- CREATE TABLE IF NOT EXISTS _migrations (
243
- id TEXT PRIMARY KEY,
244
- checksum TEXT NOT NULL,
245
- applied_at TEXT NOT NULL DEFAULT (datetime('now'))
246
- )
247
- `);
248
- // For now, run embedded core migrations
249
- const migrations = this.getCoreMigrations();
250
- const applied = [];
251
- const skipped = [];
252
- for (const migration of migrations) {
253
- // Check if already applied
254
- const existing = db.prepare('SELECT id FROM _migrations WHERE id = ?').get(migration.id);
255
- if (existing) {
256
- skipped.push(migration.id);
257
- continue;
258
- }
259
- if (options?.dryRun) {
260
- if (options.verbose) {
261
- console.log(`[sqlite] Would apply: ${migration.id}`);
262
- }
263
- applied.push(migration.id);
264
- continue;
265
- }
266
- // Apply migration
267
- if (options?.verbose) {
268
- console.log(`[sqlite] Applying: ${migration.id}`);
269
- }
270
- db.exec(migration.up);
271
- db.prepare('INSERT INTO _migrations (id, checksum) VALUES (?, ?)').run(migration.id, migration.checksum);
272
- applied.push(migration.id);
273
- if (options?.target && migration.id === options.target) {
274
- break;
275
- }
276
- }
277
- return {
278
- applied,
279
- skipped,
280
- dryRun: options?.dryRun ?? false,
281
- };
282
- }
283
- /**
284
- * Get core migrations for SQLite schema
285
- *
286
- * These are simplified versions of the Postgres migrations,
287
- * adapted for SQLite syntax.
288
- */
289
- getCoreMigrations() {
290
- return [
291
- {
292
- id: '001_initial',
293
- up: `
294
- -- Projects table
295
- CREATE TABLE IF NOT EXISTS projects (
296
- id TEXT PRIMARY KEY,
297
- name TEXT NOT NULL,
298
- repo_url TEXT,
299
- root_path TEXT NOT NULL,
300
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
301
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
302
- );
303
-
304
- -- Tickets table
305
- CREATE TABLE IF NOT EXISTS tickets (
306
- id TEXT PRIMARY KEY,
307
- project_id TEXT NOT NULL REFERENCES projects(id),
308
- title TEXT NOT NULL,
309
- description TEXT,
310
- status TEXT NOT NULL DEFAULT 'backlog',
311
- priority INTEGER NOT NULL DEFAULT 0,
312
- shard TEXT,
313
- category TEXT,
314
- allowed_paths TEXT, -- JSON array
315
- forbidden_paths TEXT, -- JSON array
316
- verification_commands TEXT, -- JSON array
317
- max_retries INTEGER DEFAULT 3,
318
- retry_count INTEGER DEFAULT 0,
319
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
320
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
321
- );
322
-
323
- CREATE INDEX IF NOT EXISTS idx_tickets_project_status ON tickets(project_id, status);
324
- CREATE INDEX IF NOT EXISTS idx_tickets_shard ON tickets(shard);
325
-
326
- -- Runs table
327
- CREATE TABLE IF NOT EXISTS runs (
328
- id TEXT PRIMARY KEY,
329
- ticket_id TEXT REFERENCES tickets(id),
330
- project_id TEXT NOT NULL REFERENCES projects(id),
331
- type TEXT NOT NULL DEFAULT 'worker',
332
- status TEXT NOT NULL DEFAULT 'pending',
333
- iteration INTEGER NOT NULL DEFAULT 1,
334
- max_iterations INTEGER NOT NULL DEFAULT 10,
335
- started_at TEXT,
336
- completed_at TEXT,
337
- error TEXT,
338
- metadata TEXT,
339
- pr_url TEXT,
340
- pr_number INTEGER,
341
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
342
- );
343
-
344
- CREATE INDEX IF NOT EXISTS idx_runs_ticket ON runs(ticket_id);
345
- CREATE INDEX IF NOT EXISTS idx_runs_project ON runs(project_id);
346
- CREATE INDEX IF NOT EXISTS idx_runs_type ON runs(type);
347
-
348
- -- Leases table
349
- CREATE TABLE IF NOT EXISTS leases (
350
- id TEXT PRIMARY KEY,
351
- ticket_id TEXT NOT NULL REFERENCES tickets(id),
352
- run_id TEXT NOT NULL REFERENCES runs(id),
353
- agent_id TEXT NOT NULL,
354
- status TEXT NOT NULL DEFAULT 'issued',
355
- expires_at TEXT NOT NULL,
356
- heartbeat_at TEXT,
357
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
358
- );
359
-
360
- CREATE INDEX IF NOT EXISTS idx_leases_ticket ON leases(ticket_id);
361
- CREATE INDEX IF NOT EXISTS idx_leases_status ON leases(status);
362
-
363
- -- Run events table
364
- CREATE TABLE IF NOT EXISTS run_events (
365
- id TEXT PRIMARY KEY,
366
- run_id TEXT NOT NULL REFERENCES runs(id),
367
- type TEXT NOT NULL,
368
- data TEXT, -- JSON
369
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
370
- );
371
-
372
- CREATE INDEX IF NOT EXISTS idx_run_events_run ON run_events(run_id);
373
-
374
- -- Artifacts table
375
- CREATE TABLE IF NOT EXISTS artifacts (
376
- id TEXT PRIMARY KEY,
377
- run_id TEXT NOT NULL REFERENCES runs(id),
378
- type TEXT NOT NULL,
379
- name TEXT NOT NULL,
380
- content TEXT,
381
- path TEXT,
382
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
383
- );
384
-
385
- CREATE INDEX IF NOT EXISTS idx_artifacts_run ON artifacts(run_id);
386
-
387
- -- Learnings table
388
- CREATE TABLE IF NOT EXISTS learnings (
389
- id TEXT PRIMARY KEY,
390
- project_id TEXT NOT NULL REFERENCES projects(id),
391
- ticket_id TEXT REFERENCES tickets(id),
392
- run_id TEXT REFERENCES runs(id),
393
- content TEXT NOT NULL,
394
- source TEXT NOT NULL,
395
- promoted INTEGER DEFAULT 0,
396
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
397
- );
398
-
399
- CREATE INDEX IF NOT EXISTS idx_learnings_project ON learnings(project_id);
400
- `,
401
- checksum: 'initial-001-v1',
402
- },
403
- {
404
- id: '002_run_steps',
405
- up: `
406
- -- Run steps table for QA loop and future step-based runs
407
- -- Each step is a command/action within a run
408
- -- Supports retry attempts with full history
409
- CREATE TABLE IF NOT EXISTS run_steps (
410
- id TEXT PRIMARY KEY,
411
- run_id TEXT NOT NULL REFERENCES runs(id) ON DELETE CASCADE,
412
-
413
- attempt INTEGER NOT NULL DEFAULT 1,
414
- ordinal INTEGER NOT NULL,
415
-
416
- name TEXT NOT NULL,
417
- kind TEXT NOT NULL DEFAULT 'command',
418
-
419
- status TEXT NOT NULL DEFAULT 'queued',
420
-
421
- cmd TEXT,
422
- cwd TEXT,
423
- timeout_ms INTEGER,
424
-
425
- exit_code INTEGER,
426
- signal TEXT,
427
-
428
- started_at_ms INTEGER,
429
- ended_at_ms INTEGER,
430
- duration_ms INTEGER,
431
-
432
- stdout_path TEXT,
433
- stderr_path TEXT,
434
- stdout_bytes INTEGER NOT NULL DEFAULT 0,
435
- stderr_bytes INTEGER NOT NULL DEFAULT 0,
436
- stdout_truncated INTEGER NOT NULL DEFAULT 0,
437
- stderr_truncated INTEGER NOT NULL DEFAULT 0,
438
- stdout_tail TEXT,
439
- stderr_tail TEXT,
440
-
441
- error_message TEXT,
442
- meta_json TEXT,
443
-
444
- created_at_ms INTEGER NOT NULL,
445
- updated_at_ms INTEGER NOT NULL,
446
-
447
- CONSTRAINT run_steps_status_check CHECK (
448
- status IN ('queued','running','success','failed','skipped','canceled')
449
- ),
450
- CONSTRAINT run_steps_kind_check CHECK (
451
- kind IN ('command','llm_fix','git','internal')
452
- ),
453
- CONSTRAINT run_steps_stdout_trunc_check CHECK (stdout_truncated IN (0,1)),
454
- CONSTRAINT run_steps_stderr_trunc_check CHECK (stderr_truncated IN (0,1))
455
- );
456
-
457
- -- Unique indexes for data integrity
458
- CREATE UNIQUE INDEX IF NOT EXISTS run_steps_run_attempt_name_uniq
459
- ON run_steps(run_id, attempt, name);
460
-
461
- CREATE UNIQUE INDEX IF NOT EXISTS run_steps_run_attempt_ordinal_uniq
462
- ON run_steps(run_id, attempt, ordinal);
463
-
464
- -- Query indexes
465
- CREATE INDEX IF NOT EXISTS run_steps_run_attempt_idx
466
- ON run_steps(run_id, attempt);
467
-
468
- CREATE INDEX IF NOT EXISTS run_steps_run_status_idx
469
- ON run_steps(run_id, status);
470
- `,
471
- checksum: 'run-steps-002-v1',
472
- },
473
- ];
474
- }
475
- async close() {
476
- if (this.db) {
477
- this.db.close();
478
- this.db = null;
479
- }
480
- }
481
- configureLogging(config) {
482
- this.logConfig = { ...this.logConfig, ...config };
483
- }
484
- getStats() {
485
- return { ...this.stats };
486
- }
487
- resetStats() {
488
- this.stats = {
489
- totalQueries: 0,
490
- totalErrors: 0,
491
- totalDurationMs: 0,
492
- byType: {},
493
- };
494
- }
495
- }
496
- /**
497
- * Create a SQLite adapter
498
- *
499
- * @param config - Database configuration
500
- * @returns Initialized SQLite adapter
501
- */
502
- export async function createSQLiteAdapter(config) {
503
- const adapter = new SQLiteAdapter(config);
504
- // Run migrations to ensure schema exists
505
- await adapter.migrate({ verbose: false });
506
- return adapter;
507
- }
508
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * @blockspool/sqlite
3
- *
4
- * SQLite adapter for BlockSpool.
5
- * Use this for zero-config local development.
6
- *
7
- * Features:
8
- * - No setup required - auto-creates database
9
- * - WAL mode for concurrency
10
- * - Works offline
11
- * - Stores data in ~/.blockspool/data.db by default
12
- */
13
- export { SQLiteAdapter, createSQLiteAdapter } from './adapter.js';
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * @blockspool/sqlite
3
- *
4
- * SQLite adapter for BlockSpool.
5
- * Use this for zero-config local development.
6
- *
7
- * Features:
8
- * - No setup required - auto-creates database
9
- * - WAL mode for concurrency
10
- * - Works offline
11
- * - Stores data in ~/.blockspool/data.db by default
12
- */
13
- export { SQLiteAdapter, createSQLiteAdapter } from './adapter.js';
14
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}