@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.
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +108 -3
- package/dist/db/client.js.map +1 -1
- package/package.json +1 -1
package/dist/db/client.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
/**
|
package/dist/db/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
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.
|
|
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": {
|