@pella-labs/pinakes 0.5.0 → 0.5.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAIA,OAAiB,EAAE,KAAK,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAW,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKjF,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,oBAAoB,CAAC;IAC7B,kEAAkE;IAClE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,wDAAwD;IACxD,aAAa,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;CACrD;AASD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBxD;AAMD;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAOpD;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAGrD;AAmBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,QAAQ,CAiD1E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAc9C;AAYD,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,oBAAoB,CAGjE;AAMD,4EAA4E;AAC5E,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAIA,OAAiB,EAAE,KAAK,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAW,KAAK,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKjF,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,oBAAoB,CAAC;IAC7B,kEAAkE;IAClE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,wDAAwD;IACxD,aAAa,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;CACrD;AASD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBxD;AAMD;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAOpD;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAGrD;AAmBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,QAAQ,CA0D1E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAc9C;AA4HD,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,oBAAoB,CAGjE;AAMD,4EAA4E;AAC5E,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
package/dist/db/client.js CHANGED
@@ -1,5 +1,5 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { dirname, resolve } from 'node:path';
1
+ import { mkdirSync, readFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import Database from 'better-sqlite3';
5
5
  import { drizzle } from 'drizzle-orm/better-sqlite3';
@@ -114,8 +114,18 @@ export function openDb(path, options = {}) {
114
114
  const drizzleWriter = drizzle(writer, { schema });
115
115
  // Step 6: run migrations. drizzle's migrate() is idempotent — it tracks
116
116
  // applied migrations in `__drizzle_migrations` and only runs new ones.
117
+ // If migrations fail (e.g., DB was created by an older version that was
118
+ // missing intermediate migrations), recover by applying each migration's
119
+ // SQL statements individually with defensive error handling. This preserves
120
+ // existing data (scores, claims, audit) instead of dropping everything.
117
121
  if (runMigrations) {
118
- migrate(drizzleWriter, { migrationsFolder: MIGRATIONS_FOLDER });
122
+ try {
123
+ migrate(drizzleWriter, { migrationsFolder: MIGRATIONS_FOLDER });
124
+ }
125
+ catch (err) {
126
+ logger.warn({ err, path: absPath }, 'migration failed — attempting data-preserving recovery');
127
+ recoverMigrations(writer, MIGRATIONS_FOLDER);
128
+ }
119
129
  }
120
130
  // Step 7: stamp schema_version=1 if absent. Subsequent phases bump this.
121
131
  if (runMigrations) {
@@ -150,6 +160,101 @@ export function closeDb(bundle) {
150
160
  logger.debug({ path: bundle.path }, 'closed SQLite db');
151
161
  }
152
162
  // ----------------------------------------------------------------------------
163
+ // Migration recovery
164
+ // ----------------------------------------------------------------------------
165
+ /**
166
+ * Data-preserving migration recovery. When Drizzle's migrate() fails (e.g.,
167
+ * a DB created by an older version is missing intermediate tables), we:
168
+ *
169
+ * 1. Read the migration journal to get every migration's tag + hash
170
+ * 2. Read each migration's SQL file
171
+ * 3. Execute each statement individually, ignoring "already exists" errors
172
+ * 4. Reset `__drizzle_migrations` to match the full journal
173
+ *
174
+ * This preserves all existing data — scores, claims, audit logs — while
175
+ * ensuring the schema is complete and Drizzle considers all migrations applied.
176
+ */
177
+ function recoverMigrations(db, migrationsFolder) {
178
+ const journalPath = join(migrationsFolder, 'meta', '_journal.json');
179
+ const journalRaw = readFileSync(journalPath, 'utf-8');
180
+ const journal = JSON.parse(journalRaw);
181
+ // Collect already-applied hashes so we can log what's new
182
+ const applied = new Set();
183
+ try {
184
+ const rows = db
185
+ .prepare('SELECT hash FROM __drizzle_migrations')
186
+ .all();
187
+ for (const r of rows)
188
+ applied.add(r.hash);
189
+ }
190
+ catch {
191
+ // Table might not exist yet
192
+ }
193
+ // Apply each migration's SQL defensively
194
+ for (const entry of journal.entries) {
195
+ const sqlPath = join(migrationsFolder, `${entry.tag}.sql`);
196
+ let sql;
197
+ try {
198
+ sql = readFileSync(sqlPath, 'utf-8');
199
+ }
200
+ catch {
201
+ logger.warn({ tag: entry.tag }, 'migration file not found — skipping');
202
+ continue;
203
+ }
204
+ const statements = sql
205
+ .split('--> statement-breakpoint')
206
+ .map((s) => s.trim())
207
+ .filter(Boolean);
208
+ for (const stmt of statements) {
209
+ try {
210
+ db.exec(stmt);
211
+ }
212
+ catch (err) {
213
+ const msg = err instanceof Error ? err.message : String(err);
214
+ // Ignore expected errors from objects that already exist
215
+ if (msg.includes('already exists') ||
216
+ msg.includes('duplicate column') ||
217
+ msg.includes('UNIQUE constraint')) {
218
+ logger.debug({ tag: entry.tag, err: msg }, 'migration statement skipped (already applied)');
219
+ }
220
+ else {
221
+ logger.warn({ tag: entry.tag, err: msg }, 'migration statement failed — continuing');
222
+ }
223
+ }
224
+ }
225
+ }
226
+ // Reset the Drizzle migration tracker to match the full journal.
227
+ // Compute SHA-256 of each migration file to match Drizzle's hash format.
228
+ db.exec('DROP TABLE IF EXISTS __drizzle_migrations');
229
+ db.exec(`CREATE TABLE __drizzle_migrations (
230
+ id integer PRIMARY KEY AUTOINCREMENT,
231
+ hash text NOT NULL,
232
+ created_at numeric
233
+ )`);
234
+ const { createHash } = await_import_crypto();
235
+ const insert = db.prepare('INSERT INTO __drizzle_migrations (hash, created_at) VALUES (?, ?)');
236
+ for (const entry of journal.entries) {
237
+ const sqlPath = join(migrationsFolder, `${entry.tag}.sql`);
238
+ try {
239
+ const content = readFileSync(sqlPath, 'utf-8');
240
+ const hash = createHash('sha256').update(content).digest('hex');
241
+ insert.run(hash, entry.when);
242
+ }
243
+ catch {
244
+ // Already warned above
245
+ }
246
+ }
247
+ logger.info({ total: journal.entries.length, previouslyApplied: applied.size }, 'migration recovery complete — all migrations now tracked');
248
+ }
249
+ /**
250
+ * Lazy import of crypto to avoid top-level await. createHash is only
251
+ * needed during migration recovery, not on every openDb call.
252
+ */
253
+ function await_import_crypto() {
254
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
255
+ return require('node:crypto');
256
+ }
257
+ // ----------------------------------------------------------------------------
153
258
  // Reader pool helper
154
259
  // ----------------------------------------------------------------------------
155
260
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pella-labs/pinakes",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Local stdio MCP server that indexes a Karpathy-style two-level knowledge wiki into SQLite and exposes it to a coding LLM via Cloudflare-style code-mode.",
5
5
  "type": "module",
6
6
  "bin": {