@grackle-ai/database 0.86.0 → 0.87.0

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/dist/db.d.ts CHANGED
@@ -33,6 +33,34 @@ export declare function openDatabase(dbPath?: string): void;
33
33
  * @param sqliteOverride - Optional SQLite instance to use instead of the module-level one.
34
34
  */
35
35
  export declare function initDatabase(sqliteOverride?: InstanceType<typeof Database>): void;
36
+ /**
37
+ * Run `PRAGMA quick_check` to verify the database B-tree structure.
38
+ * Throws if the database is corrupt.
39
+ *
40
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
41
+ */
42
+ export declare function checkDatabaseIntegrity(conn?: InstanceType<typeof Database>): void;
43
+ /**
44
+ * Create a consistent backup of the database using the SQLite backup API.
45
+ * Handles WAL correctly (unlike a raw file copy).
46
+ *
47
+ * @param targetPath - Path to write the backup file.
48
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
49
+ */
50
+ export declare function backupDatabase(targetPath: string, conn?: InstanceType<typeof Database>): Promise<void>;
51
+ /**
52
+ * Run a passive WAL checkpoint. Non-blocking — does not interfere with readers.
53
+ *
54
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
55
+ */
56
+ export declare function walCheckpoint(conn?: InstanceType<typeof Database>): void;
57
+ /**
58
+ * Start a periodic timer that runs {@link walCheckpoint} every 5 minutes.
59
+ * The timer is unref'd so it doesn't keep the process alive.
60
+ */
61
+ export declare function startWalCheckpointTimer(): void;
62
+ /** Stop the periodic WAL checkpoint timer. */
63
+ export declare function stopWalCheckpointTimer(): void;
36
64
  export { sqlite, CURRENT_VERSION };
37
65
  export { db as default };
38
66
  //# sourceMappingURL=db.d.ts.map
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKxE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AA6BtC,mEAAmE;AACnE,QAAA,MAAM,eAAe,EAAE,MAEH,CAAC;AA8CrB,yFAAyF;AACzF,QAAA,IAAI,MAAM,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,SAAS,CAAC;AAEtD;;;;;GAKG;AACH,QAAA,IAAI,EAAE,EAAG,qBAAqB,CAAC,OAAO,MAAM,CAAC,GAAG;IAC9C,OAAO,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAsElD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI,CAsMjF;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACnC,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKxE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AA6BtC,mEAAmE;AACnE,QAAA,MAAM,eAAe,EAAE,MAEH,CAAC;AA8CrB,yFAAyF;AACzF,QAAA,IAAI,MAAM,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,SAAS,CAAC;AAKtD;;;;;GAKG;AACH,QAAA,IAAI,EAAE,EAAG,qBAAqB,CAAC,OAAO,MAAM,CAAC,GAAG;IAC9C,OAAO,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAsElD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI,CA+MjF;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI,CAajF;AAID;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5G;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI,CAMxE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAM9C;AAED,8CAA8C;AAC9C,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACnC,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC"}
package/dist/db.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import Database from "better-sqlite3";
2
2
  import { drizzle } from "drizzle-orm/better-sqlite3";
3
- import { join } from "node:path";
4
- import { mkdirSync } from "node:fs";
3
+ import { join, dirname } from "node:path";
4
+ import { mkdirSync, writeFileSync } from "node:fs";
5
5
  import { DB_FILENAME } from "@grackle-ai/common";
6
6
  import { grackleHome } from "./paths.js";
7
7
  import * as schema from "./schema.js";
@@ -60,6 +60,8 @@ function validateBaselineSchema(conn) {
60
60
  // ─── Database Singleton ─────────────────────────────────────
61
61
  /** Raw better-sqlite3 instance. Available after {@link openDatabase} has been called. */
62
62
  let sqlite;
63
+ /** Resolved path of the database file. Set by {@link openDatabase}. */
64
+ let resolvedDbPath;
63
65
  /**
64
66
  * Drizzle ORM instance wrapping the SQLite database.
65
67
  * Available after {@link openDatabase} has been called.
@@ -78,14 +80,14 @@ export function openDatabase(dbPath) {
78
80
  if (sqlite) {
79
81
  return;
80
82
  }
81
- const resolvedPath = dbPath ?? join(grackleHome, DB_FILENAME);
83
+ resolvedDbPath = dbPath ?? join(grackleHome, DB_FILENAME);
82
84
  // Ensure the grackle home directory exists (skip when a custom path is provided,
83
85
  // e.g. tests that point at an in-memory or temp-dir database).
84
86
  if (!dbPath) {
85
87
  mkdirSync(grackleHome, { recursive: true });
86
88
  }
87
89
  try {
88
- sqlite = new Database(resolvedPath);
90
+ sqlite = new Database(resolvedDbPath);
89
91
  }
90
92
  catch (err) {
91
93
  if (err instanceof Error && err.message.includes("Could not locate the bindings file")) {
@@ -314,6 +316,14 @@ export function initDatabase(sqliteOverride) {
314
316
  if (currentVersion < BASELINE_VERSION) {
315
317
  conn.pragma(`user_version = ${BASELINE_VERSION}`);
316
318
  }
319
+ // Back up the database before running any pending migrations.
320
+ // Skip for in-memory databases (tests) and fresh installs (no data to lose).
321
+ const hasPendingMigrations = MIGRATIONS.some((m) => m.version > currentVersion);
322
+ if (hasPendingMigrations && resolvedDbPath && currentVersion >= BASELINE_VERSION) {
323
+ const dbDir = dirname(resolvedDbPath);
324
+ const backupPath = join(dbDir, `grackle.db.backup-v${currentVersion}`);
325
+ writeFileSync(backupPath, conn.serialize());
326
+ }
317
327
  // Run any pending versioned migrations
318
328
  for (const migration of MIGRATIONS) {
319
329
  if (migration.version <= currentVersion) {
@@ -336,6 +346,75 @@ export function initDatabase(sqliteOverride) {
336
346
  }
337
347
  }
338
348
  }
349
+ // ─── Integrity Check ────────────────────────────────────────
350
+ /**
351
+ * Run `PRAGMA quick_check` to verify the database B-tree structure.
352
+ * Throws if the database is corrupt.
353
+ *
354
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
355
+ */
356
+ export function checkDatabaseIntegrity(conn) {
357
+ const c = conn ?? sqlite;
358
+ if (!c) {
359
+ return;
360
+ }
361
+ const result = c.pragma("quick_check", { simple: true });
362
+ if (result !== "ok") {
363
+ throw new Error(`Database integrity check failed: ${result}. ` +
364
+ "The database file may be corrupt. " +
365
+ "Restore from a backup or delete the database file and restart.");
366
+ }
367
+ }
368
+ // ─── Backup ─────────────────────────────────────────────────
369
+ /**
370
+ * Create a consistent backup of the database using the SQLite backup API.
371
+ * Handles WAL correctly (unlike a raw file copy).
372
+ *
373
+ * @param targetPath - Path to write the backup file.
374
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
375
+ */
376
+ export async function backupDatabase(targetPath, conn) {
377
+ const c = conn ?? sqlite;
378
+ if (!c) {
379
+ return;
380
+ }
381
+ await c.backup(targetPath);
382
+ }
383
+ // ─── WAL Checkpoint Management ──────────────────────────────
384
+ /** Interval between periodic WAL checkpoints (5 minutes). */
385
+ const WAL_CHECKPOINT_INTERVAL_MS = 5 * 60 * 1000;
386
+ /** Handle for the periodic WAL checkpoint timer. */
387
+ let walTimer;
388
+ /**
389
+ * Run a passive WAL checkpoint. Non-blocking — does not interfere with readers.
390
+ *
391
+ * @param conn - Optional SQLite instance. Defaults to the module-level singleton.
392
+ */
393
+ export function walCheckpoint(conn) {
394
+ const c = conn ?? sqlite;
395
+ if (!c) {
396
+ return;
397
+ }
398
+ c.pragma("wal_checkpoint(PASSIVE)");
399
+ }
400
+ /**
401
+ * Start a periodic timer that runs {@link walCheckpoint} every 5 minutes.
402
+ * The timer is unref'd so it doesn't keep the process alive.
403
+ */
404
+ export function startWalCheckpointTimer() {
405
+ if (walTimer) {
406
+ return;
407
+ }
408
+ walTimer = setInterval(walCheckpoint, WAL_CHECKPOINT_INTERVAL_MS);
409
+ walTimer.unref();
410
+ }
411
+ /** Stop the periodic WAL checkpoint timer. */
412
+ export function stopWalCheckpointTimer() {
413
+ if (walTimer) {
414
+ clearInterval(walTimer);
415
+ walTimer = undefined;
416
+ }
417
+ }
339
418
  export { sqlite, CURRENT_VERSION };
340
419
  export { db as default };
341
420
  //# sourceMappingURL=db.js.map
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Re-exports schema, stores, migrations, and utility modules so consumers
5
5
  * can import everything from a single package entry point.
6
6
  */
7
- export { openDatabase, initDatabase, sqlite, CURRENT_VERSION, default as db } from "./db.js";
7
+ export { openDatabase, initDatabase, sqlite, CURRENT_VERSION, checkDatabaseIntegrity, backupDatabase, walCheckpoint, startWalCheckpointTimer, stopWalCheckpointTimer, default as db, } from "./db.js";
8
8
  export { seedDatabase } from "./db-seed.js";
9
9
  export * as schema from "./schema.js";
10
10
  export type { EnvironmentRow, NewEnvironment, SessionRow, NewSession, TokenRow, WorkspaceRow, NewWorkspace, TaskRow, NewTask, FindingRow, NewFinding, PersonaRow, NewPersona, ScheduleRow, NewSchedule, } from "./schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,YAAY,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EACnD,sBAAsB,EAAE,cAAc,EACtC,aAAa,EAAE,uBAAuB,EAAE,sBAAsB,EAC9D,OAAO,IAAI,EAAE,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,YAAY,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * can import everything from a single package entry point.
6
6
  */
7
7
  // ─── Database Lifecycle ────────────────────────────────────
8
- export { openDatabase, initDatabase, sqlite, CURRENT_VERSION, default as db } from "./db.js";
8
+ export { openDatabase, initDatabase, sqlite, CURRENT_VERSION, checkDatabaseIntegrity, backupDatabase, walCheckpoint, startWalCheckpointTimer, stopWalCheckpointTimer, default as db, } from "./db.js";
9
9
  export { seedDatabase } from "./db-seed.js";
10
10
  // ─── Schema ────────────────────────────────────────────────
11
11
  export * as schema from "./schema.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,8DAA8D;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAmBtC,8DAA8D;AAC9D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAMrD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAEnC,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,8DAA8D;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8DAA8D;AAC9D,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EACnD,sBAAsB,EAAE,cAAc,EACtC,aAAa,EAAE,uBAAuB,EAAE,sBAAsB,EAC9D,OAAO,IAAI,EAAE,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,8DAA8D;AAC9D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAmBtC,8DAA8D;AAC9D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAMrD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAEnC,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,8DAA8D;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/database",
3
- "version": "0.86.0",
3
+ "version": "0.87.0",
4
4
  "description": "SQLite persistence layer for Grackle — schema, stores, and migrations",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -32,7 +32,7 @@
32
32
  "better-sqlite3": "^11.0.0",
33
33
  "drizzle-orm": "^0.38.0",
34
34
  "uuid": "^11.0.0",
35
- "@grackle-ai/common": "0.86.0"
35
+ "@grackle-ai/common": "0.87.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@rushstack/heft": "1.2.7",