@xrkseek/harness 0.6.17 → 0.6.19

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.
Files changed (98) hide show
  1. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  2. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +10 -3
  3. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  4. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.d.ts.map +1 -1
  5. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js +12 -1
  6. package/node_modules/@xrkseek/core-session/dist/repair-open-turn.js.map +1 -1
  7. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts +12 -1
  8. package/node_modules/@xrkseek/core-session/dist/sqlite-store.d.ts.map +1 -1
  9. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js +256 -7
  10. package/node_modules/@xrkseek/core-session/dist/sqlite-store.js.map +1 -1
  11. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts +18 -0
  12. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts.map +1 -1
  13. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js +18 -0
  14. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js.map +1 -1
  15. package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts +10 -0
  16. package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts.map +1 -1
  17. package/node_modules/@xrkseek/llm-registry/dist/discover.js +100 -5
  18. package/node_modules/@xrkseek/llm-registry/dist/discover.js.map +1 -1
  19. package/node_modules/@xrkseek/llm-registry/dist/index.d.ts +1 -0
  20. package/node_modules/@xrkseek/llm-registry/dist/index.d.ts.map +1 -1
  21. package/node_modules/@xrkseek/llm-registry/dist/index.js +1 -0
  22. package/node_modules/@xrkseek/llm-registry/dist/index.js.map +1 -1
  23. package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.d.ts +80 -0
  24. package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.d.ts.map +1 -0
  25. package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.js +389 -0
  26. package/node_modules/@xrkseek/llm-registry/dist/models-dev-catalog.js.map +1 -0
  27. package/node_modules/@xrkseek/llm-registry/dist/registry.d.ts +5 -0
  28. package/node_modules/@xrkseek/llm-registry/dist/registry.d.ts.map +1 -1
  29. package/node_modules/@xrkseek/llm-registry/dist/registry.js +3 -0
  30. package/node_modules/@xrkseek/llm-registry/dist/registry.js.map +1 -1
  31. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  32. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  33. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  34. package/node_modules/@xrkseek/protocol/dist/permission-knobs.d.ts +9 -0
  35. package/node_modules/@xrkseek/protocol/dist/permission-knobs.d.ts.map +1 -1
  36. package/node_modules/@xrkseek/protocol/dist/permission-knobs.js +17 -1
  37. package/node_modules/@xrkseek/protocol/dist/permission-knobs.js.map +1 -1
  38. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
  39. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +3 -10
  40. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
  41. package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts +1 -1
  42. package/node_modules/@xrkseek/server-face/dist/adapt/index.d.ts.map +1 -1
  43. package/node_modules/@xrkseek/server-face/dist/adapt/index.js +1 -1
  44. package/node_modules/@xrkseek/server-face/dist/adapt/index.js.map +1 -1
  45. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts +6 -0
  46. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.d.ts.map +1 -1
  47. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js +12 -0
  48. package/node_modules/@xrkseek/server-face/dist/adapt/subagent-notice.js.map +1 -1
  49. package/node_modules/@xrkseek/server-face/dist/context.d.ts +5 -0
  50. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  51. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.d.ts.map +1 -1
  52. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js +10 -1
  53. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js.map +1 -1
  54. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  55. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +6 -12
  56. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  57. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
  58. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +23 -1
  59. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
  60. package/node_modules/@xrkseek/server-face/dist/index.d.ts +1 -1
  61. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  62. package/node_modules/@xrkseek/server-face/dist/index.js +1 -1
  63. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  64. package/node_modules/@xrkseek/server-face/dist/llm-resolve.d.ts.map +1 -1
  65. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js +7 -1
  66. package/node_modules/@xrkseek/server-face/dist/llm-resolve.js.map +1 -1
  67. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts +8 -0
  68. package/node_modules/@xrkseek/server-face/dist/model-catalog.d.ts.map +1 -1
  69. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +11 -0
  70. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  71. package/node_modules/@xrkseek/server-face/dist/path-allowlist.d.ts +2 -0
  72. package/node_modules/@xrkseek/server-face/dist/path-allowlist.d.ts.map +1 -1
  73. package/node_modules/@xrkseek/server-face/dist/path-allowlist.js +23 -2
  74. package/node_modules/@xrkseek/server-face/dist/path-allowlist.js.map +1 -1
  75. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.d.ts.map +1 -1
  76. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js +24 -3
  77. package/node_modules/@xrkseek/server-face/dist/projections/list-checkpoint-cache.js.map +1 -1
  78. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  79. package/node_modules/@xrkseek/server-face/dist/runtime.js +27 -2
  80. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  81. package/node_modules/@xrkseek/server-face/dist/select-session-model.d.ts.map +1 -1
  82. package/node_modules/@xrkseek/server-face/dist/select-session-model.js +3 -34
  83. package/node_modules/@xrkseek/server-face/dist/select-session-model.js.map +1 -1
  84. package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
  85. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +9 -0
  86. package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
  87. package/node_modules/@xrkseek/server-face/dist/types.d.ts +6 -0
  88. package/node_modules/@xrkseek/server-face/dist/types.d.ts.map +1 -1
  89. package/node_modules/@xrkseek/session-format/dist/catalog.d.ts +1 -1
  90. package/node_modules/@xrkseek/session-format/dist/sqlite-schema.d.ts +9 -2
  91. package/node_modules/@xrkseek/session-format/dist/sqlite-schema.d.ts.map +1 -1
  92. package/node_modules/@xrkseek/session-format/dist/sqlite-schema.js +11 -2
  93. package/node_modules/@xrkseek/session-format/dist/sqlite-schema.js.map +1 -1
  94. package/node_modules/@xrkseek/session-projection/dist/index.d.ts +3 -1
  95. package/node_modules/@xrkseek/session-projection/dist/index.d.ts.map +1 -1
  96. package/node_modules/@xrkseek/session-projection/dist/index.js +8 -1
  97. package/node_modules/@xrkseek/session-projection/dist/index.js.map +1 -1
  98. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { mkdirSync } from "node:fs";
1
+ import { mkdirSync, statSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { assertSessionEvent } from "@xrkseek/protocol";
4
4
  import { expandPackedStorageRecords, isPackedChunkRow, isTextChunkRow, isToolCallChunkRow, packChunkRunsForExport, } from "./chunk-pack.js";
@@ -17,6 +17,8 @@ function openDatabase(dbPath, readOnly = false) {
17
17
  return readOnly ? new Db(dbPath, { readOnly: true }) : new Db(dbPath);
18
18
  }
19
19
  const ID_RE = /^[A-Za-z0-9._-]+$/;
20
+ /** Diagnostic switch: print why an idle WAL reclaim was skipped. */
21
+ const DEBUG_WAL_CHECKPOINT = Boolean(process.env.XRK_DEBUG_WAL);
20
22
  /** Physical schema v3: durable rows may be packed chunk rows (expanded on load). */
21
23
  const SCHEMA_VERSION = SQLITE_SCHEMA_CURRENT;
22
24
  const DB_NAME = "sessions.db";
@@ -193,6 +195,66 @@ function schemaVersion(db) {
193
195
  .get();
194
196
  return row ? Number(row.value) || 0 : 0;
195
197
  }
198
+ /**
199
+ * Cheap self-heal probe for the current-schema fast path.
200
+ *
201
+ * `schema_version` alone is not proof the objects survive — a hand-edited or
202
+ * partially restored DB can carry the version with `events` dropped. This
203
+ * reads `sqlite_master` (an in-memory catalog lookup, no page scan, no write
204
+ * lock) so the fast path still repairs a broken store instead of failing later
205
+ * inside a prepared INSERT.
206
+ */
207
+ function schemaObjectsPresent(db) {
208
+ const row = db
209
+ .prepare("SELECT COUNT(*) AS n FROM sqlite_master WHERE name IN ('events', 'sessions', 'search_fts')")
210
+ .get();
211
+ return (row?.n ?? 0) >= 3;
212
+ }
213
+ /** v4: add the list-hint columns to a pre-existing `sessions` table. */
214
+ function addSessionHintColumns(db) {
215
+ const cols = new Set(db.prepare("PRAGMA table_info(sessions)").all().map((column) => column.name));
216
+ const additions = [
217
+ ["last_ts", "ALTER TABLE sessions ADD COLUMN last_ts INTEGER NOT NULL DEFAULT 0"],
218
+ ["event_count", "ALTER TABLE sessions ADD COLUMN event_count INTEGER NOT NULL DEFAULT 0"],
219
+ ["has_turn_start", "ALTER TABLE sessions ADD COLUMN has_turn_start INTEGER NOT NULL DEFAULT 0"],
220
+ ["has_command_run", "ALTER TABLE sessions ADD COLUMN has_command_run INTEGER NOT NULL DEFAULT 0"],
221
+ ];
222
+ for (const [name, ddl] of additions) {
223
+ if (!cols.has(name))
224
+ db.exec(ddl);
225
+ }
226
+ }
227
+ /**
228
+ * v4 backfill: one pass over `events` fills every session's hint columns.
229
+ *
230
+ * The old cold `session.list` path ran three scans **per session** (`MAX(ts)`
231
+ * plus two `json_extract` probes). On the 205-session store that measured
232
+ * ≈7 s; this is a single grouped scan paid once at migration time.
233
+ */
234
+ function backfillSessionHints(db) {
235
+ db.exec("INSERT OR IGNORE INTO sessions (id) SELECT DISTINCT session_id FROM events");
236
+ db.exec("DROP TABLE IF EXISTS temp._session_hint_agg");
237
+ db.exec(`
238
+ CREATE TEMP TABLE _session_hint_agg AS
239
+ SELECT session_id,
240
+ MAX(ts) AS last_ts,
241
+ COUNT(*) AS event_count,
242
+ MAX(CASE WHEN json_extract(payload, '$.type') = 'turn/start' THEN 1 ELSE 0 END) AS has_turn_start,
243
+ MAX(CASE WHEN json_extract(payload, '$.type') = 'command/run' THEN 1 ELSE 0 END) AS has_command_run
244
+ FROM events
245
+ GROUP BY session_id
246
+ `);
247
+ db.exec(`
248
+ UPDATE sessions SET
249
+ last_ts = a.last_ts,
250
+ event_count = a.event_count,
251
+ has_turn_start = a.has_turn_start,
252
+ has_command_run = a.has_command_run
253
+ FROM _session_hint_agg a
254
+ WHERE a.session_id = sessions.id
255
+ `);
256
+ db.exec("DROP TABLE temp._session_hint_agg");
257
+ }
196
258
  function setSchemaVersion(db, version) {
197
259
  db.prepare("INSERT INTO meta (key, value) VALUES ('schema_version', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(String(version));
198
260
  }
@@ -223,7 +285,20 @@ function rebuildFts(db) {
223
285
  }
224
286
  function initSchema(db, journalMode = "WAL") {
225
287
  db.exec(`PRAGMA journal_mode = ${journalMode}`);
226
- db.exec("PRAGMA synchronous = FULL");
288
+ // WAL + FULL fsyncs on every commit, and a turn has at least four durability
289
+ // boundaries. NORMAL keeps crash safety at transaction granularity (only the
290
+ // last commit can be lost) and `repairOpenTurnEvents` already settles open
291
+ // turns. `user/message` still upgrades to FULL around its own transaction in
292
+ // `flushPending`, so a queued human message is never the one that is lost.
293
+ db.exec(journalMode === "WAL"
294
+ ? "PRAGMA synchronous = NORMAL"
295
+ : "PRAGMA synchronous = FULL");
296
+ if (journalMode === "WAL") {
297
+ // Without these the WAL only ever grows: a long reader blocks the implicit
298
+ // autocheckpoint and nothing else reclaims the file (seen at 535 MB).
299
+ db.exec("PRAGMA wal_autocheckpoint = 1000");
300
+ db.exec("PRAGMA journal_size_limit = 67108864");
301
+ }
227
302
  db.exec(`
228
303
  CREATE TABLE IF NOT EXISTS meta (
229
304
  key TEXT PRIMARY KEY,
@@ -234,7 +309,11 @@ function initSchema(db, journalMode = "WAL") {
234
309
  ensureTables: () => {
235
310
  db.exec(`
236
311
  CREATE TABLE IF NOT EXISTS sessions (
237
- id TEXT PRIMARY KEY
312
+ id TEXT PRIMARY KEY,
313
+ last_ts INTEGER NOT NULL DEFAULT 0,
314
+ event_count INTEGER NOT NULL DEFAULT 0,
315
+ has_turn_start INTEGER NOT NULL DEFAULT 0,
316
+ has_command_run INTEGER NOT NULL DEFAULT 0
238
317
  );
239
318
  CREATE TABLE IF NOT EXISTS events (
240
319
  session_id TEXT NOT NULL,
@@ -248,6 +327,10 @@ function initSchema(db, journalMode = "WAL") {
248
327
  ON events (session_id, seq);
249
328
  `);
250
329
  },
330
+ ensureSessionHints: () => {
331
+ addSessionHintColumns(db);
332
+ backfillSessionHints(db);
333
+ },
251
334
  ensureFts: () => {
252
335
  ensureFts(db);
253
336
  },
@@ -258,9 +341,14 @@ function initSchema(db, journalMode = "WAL") {
258
341
  };
259
342
  const stored = schemaVersion(db);
260
343
  if (stored >= SCHEMA_VERSION) {
261
- // Idempotent open on current schema — still ensure tables/FTS exist.
262
- hooks.ensureTables();
263
- hooks.ensureFts();
344
+ // A current schema_version means the migration chain already built every
345
+ // table/index/FTS object. Re-running the full DDL on every Host start takes
346
+ // the write lock on a multi-hundred-MB file for nothing, so only verify
347
+ // (cheap sqlite_master lookup) and repair when something is actually gone.
348
+ if (process.env.XRK_SQLITE_VERIFY_SCHEMA === "1" || !schemaObjectsPresent(db)) {
349
+ hooks.ensureTables();
350
+ hooks.ensureFts();
351
+ }
264
352
  return;
265
353
  }
266
354
  const next = migrateSqliteSchema(stored, hooks);
@@ -316,6 +404,29 @@ function lastEventTsFromDb(db, sessionId) {
316
404
  .get(sessionId);
317
405
  return row?.ts ?? null;
318
406
  }
407
+ /**
408
+ * v4 fast path: read the maintained hint columns instead of scanning `events`.
409
+ * Returns undefined for rows the backfill never touched (pre-v4 archive DB,
410
+ * or a session whose events were removed) so callers keep the legacy scans.
411
+ */
412
+ function sessionHintsFromDb(db, sessionId) {
413
+ let row;
414
+ try {
415
+ row = db
416
+ .prepare("SELECT last_ts, event_count, has_turn_start, has_command_run FROM sessions WHERE id = ?")
417
+ .get(sessionId);
418
+ }
419
+ catch {
420
+ return undefined;
421
+ }
422
+ if (row === undefined || row.event_count <= 0)
423
+ return undefined;
424
+ return {
425
+ lastEventTs: row.last_ts > 0 ? row.last_ts : null,
426
+ hasTurnStart: row.has_turn_start === 1,
427
+ hasCommandRun: row.has_command_run === 1,
428
+ };
429
+ }
319
430
  function loadSessionIds(db) {
320
431
  const ids = new Set();
321
432
  const rows = db.prepare("SELECT id FROM sessions").all();
@@ -433,6 +544,34 @@ export function createPersistentSessionStore(dir, options = {}) {
433
544
  const insertFts = shared
434
545
  ? undefined
435
546
  : db.prepare("INSERT INTO search_fts (session_id, seq, text) VALUES (?, ?, ?)");
547
+ // v4 list hints: maintained inside the same write transaction as the events,
548
+ // so `session.list` never has to scan `events` again. `MAX(...)` keeps the
549
+ // newest ts and the sticky flags monotonic under out-of-order batches.
550
+ const upsertSessionHints = shared
551
+ ? undefined
552
+ : db.prepare(`INSERT INTO sessions (id, last_ts, event_count, has_turn_start, has_command_run)
553
+ VALUES (?, ?, ?, ?, ?)
554
+ ON CONFLICT(id) DO UPDATE SET
555
+ last_ts = MAX(sessions.last_ts, excluded.last_ts),
556
+ event_count = sessions.event_count + excluded.event_count,
557
+ has_turn_start = MAX(sessions.has_turn_start, excluded.has_turn_start),
558
+ has_command_run = MAX(sessions.has_command_run, excluded.has_command_run)`);
559
+ const updateSessionHints = (sessionId, events) => {
560
+ if (upsertSessionHints === undefined)
561
+ return;
562
+ let lastTs = 0;
563
+ let turnStart = 0;
564
+ let commandRun = 0;
565
+ for (const event of events) {
566
+ if (event.ts > lastTs)
567
+ lastTs = event.ts;
568
+ if (event.type === "turn/start")
569
+ turnStart = 1;
570
+ else if (event.type === "command/run")
571
+ commandRun = 1;
572
+ }
573
+ upsertSessionHints.run(sessionId, lastTs, events.length, turnStart, commandRun);
574
+ };
436
575
  const allocateSeq = (sessionId) => {
437
576
  let next = nextSeqBySession.get(sessionId);
438
577
  if (next === undefined) {
@@ -470,9 +609,79 @@ export function createPersistentSessionStore(dir, options = {}) {
470
609
  else
471
610
  pendingCount.set(sessionId, next);
472
611
  };
612
+ const WAL_SHRINK_MIN_BYTES = options.walShrinkMinBytes ?? 64 * 1024 * 1024;
613
+ const WAL_SHRINK_INTERVAL_MS = options.walShrinkIntervalMs ?? 60_000;
614
+ let lastWalShrinkAt = 0;
615
+ /** `-wal` size, or 0 when the file does not exist (nothing pending). */
616
+ const walBytes = (file) => {
617
+ try {
618
+ return statSync(`${file}-wal`).size;
619
+ }
620
+ catch {
621
+ return 0;
622
+ }
623
+ };
624
+ /**
625
+ * `TRUNCATE` gives the disk space back; `PASSIVE`/`FULL` only copy frames
626
+ * into the database and leave the file at its peak size.
627
+ *
628
+ * One statement does both the checkpoint and the busy report: a separate
629
+ * PASSIVE probe first left its statement open (node:sqlite finalizes on GC),
630
+ * which made the following TRUNCATE see `busy`. This connection has no
631
+ * `busy_timeout`, so a real reader returns `busy` immediately instead of
632
+ * stalling a flush.
633
+ */
634
+ const walCheckpointTruncate = (conn) => {
635
+ try {
636
+ conn.prepare("PRAGMA wal_checkpoint(TRUNCATE)").get();
637
+ }
638
+ catch (error) {
639
+ /* busy reader or closed mid-flush — the next flush retries */
640
+ if (DEBUG_WAL_CHECKPOINT) {
641
+ console.error("[session-store] wal checkpoint failed:", error);
642
+ }
643
+ }
644
+ };
645
+ /**
646
+ * Shrink a WAL that outgrew `journal_size_limit` while the process stayed up.
647
+ *
648
+ * `wal_autocheckpoint` keeps copying frames back into the database, but the
649
+ * file itself only shrinks on a TRUNCATE checkpoint — and this store only did
650
+ * that in `close()`. A Host that runs for days therefore kept its historical
651
+ * peak next to the database (measured: a 561 MB `-wal` beside a 788 MB file,
652
+ * with every frame already durable). PASSIVE runs first because it never
653
+ * blocks and reports whether a reader still pins the log; TRUNCATE only
654
+ * follows when nothing is busy, and this connection has no `busy_timeout`, so
655
+ * a reader that appears in between makes TRUNCATE return `busy` instead of
656
+ * stalling the flush.
657
+ */
658
+ const shrinkWal = () => {
659
+ if (shared || journalMode !== "WAL")
660
+ return;
661
+ const targets = [
662
+ [db, dbPath],
663
+ [archiveDb, archivePath],
664
+ ];
665
+ // Stat before the rate limit: the common flush has no oversized WAL, and
666
+ // skipping the clock check keeps the next real overflow from waiting out
667
+ // an interval that a harmless flush consumed.
668
+ const over = targets.filter(([, file]) => walBytes(file) >= WAL_SHRINK_MIN_BYTES);
669
+ if (over.length === 0)
670
+ return;
671
+ const now = Date.now();
672
+ if (now - lastWalShrinkAt < WAL_SHRINK_INTERVAL_MS)
673
+ return;
674
+ lastWalShrinkAt = now;
675
+ for (const [conn] of over)
676
+ walCheckpointTruncate(conn);
677
+ };
473
678
  const flushPending = (onlySessionId) => {
474
- if (shared || pending.length === 0)
679
+ if (shared || pending.length === 0) {
680
+ // Nothing to write, but the WAL may still hold a peak from earlier
681
+ // flushes — this is the cheapest place to notice and reclaim it.
682
+ shrinkWal();
475
683
  return;
684
+ }
476
685
  const batch = [];
477
686
  if (onlySessionId === undefined) {
478
687
  batch.push(...pending);
@@ -504,6 +713,12 @@ export function createPersistentSessionStore(dir, options = {}) {
504
713
  list.push(row.event);
505
714
  }
506
715
  const seqSnapshot = new Map(nextSeqBySession);
716
+ // Human input is the one thing a power cut must not swallow: upgrade to
717
+ // FULL for the transaction carrying it, then fall back to NORMAL. PRAGMA
718
+ // synchronous cannot change inside a transaction, so it brackets BEGIN.
719
+ const needsFullSync = batch.some((row) => row.event.type === "user/message");
720
+ if (needsFullSync)
721
+ db.exec("PRAGMA synchronous = FULL");
507
722
  db.exec("BEGIN IMMEDIATE");
508
723
  try {
509
724
  for (const sessionId of order) {
@@ -513,6 +728,7 @@ export function createPersistentSessionStore(dir, options = {}) {
513
728
  writeRecord(sessionId, record);
514
729
  }
515
730
  indexJoinedTextChunks(sessionId, events);
731
+ updateSessionHints(sessionId, events);
516
732
  }
517
733
  db.exec("COMMIT");
518
734
  }
@@ -531,6 +747,17 @@ export function createPersistentSessionStore(dir, options = {}) {
531
747
  pending = batch.concat(pending);
532
748
  throw err;
533
749
  }
750
+ finally {
751
+ if (needsFullSync) {
752
+ try {
753
+ db.exec("PRAGMA synchronous = NORMAL");
754
+ }
755
+ catch {
756
+ /* closed mid-flush */
757
+ }
758
+ }
759
+ }
760
+ shrinkWal();
534
761
  };
535
762
  const persistImmediate = (id, frozen) => {
536
763
  writeRecord(id, frozen);
@@ -620,6 +847,7 @@ export function createPersistentSessionStore(dir, options = {}) {
620
847
  for (const frozen of frozenRepairs) {
621
848
  persistImmediate(id, frozen);
622
849
  }
850
+ updateSessionHints(id, frozenRepairs);
623
851
  db.exec("COMMIT");
624
852
  }
625
853
  catch (err) {
@@ -843,6 +1071,7 @@ export function createPersistentSessionStore(dir, options = {}) {
843
1071
  try {
844
1072
  db.prepare("DELETE FROM search_fts WHERE session_id = ?").run(sid);
845
1073
  db.prepare("DELETE FROM events WHERE session_id = ?").run(sid);
1074
+ db.prepare("UPDATE sessions SET last_ts = 0, event_count = 0, has_turn_start = 0, has_command_run = 0 WHERE id = ?").run(sid);
846
1075
  nextSeqBySession.set(sid, 0);
847
1076
  if (frozen.length > 0) {
848
1077
  const packed = packChunkRunsForExport(frozen);
@@ -850,6 +1079,7 @@ export function createPersistentSessionStore(dir, options = {}) {
850
1079
  writeRecord(sid, record);
851
1080
  }
852
1081
  indexJoinedTextChunks(sid, frozen);
1082
+ updateSessionHints(sid, frozen);
853
1083
  }
854
1084
  db.exec("COMMIT");
855
1085
  }
@@ -879,6 +1109,10 @@ export function createPersistentSessionStore(dir, options = {}) {
879
1109
  return computeListHints(cached);
880
1110
  }
881
1111
  const source = sourceDbFor(id);
1112
+ const hints = sessionHintsFromDb(source, id);
1113
+ if (hints !== undefined)
1114
+ return hints;
1115
+ // Pre-v4 rows (or a stripped archive) still fall back to the scans.
882
1116
  return {
883
1117
  lastEventTs: lastEventTsFromDb(source, id),
884
1118
  hasTurnStart: hasTurnStartInDb(source, id),
@@ -946,6 +1180,21 @@ export function createPersistentSessionStore(dir, options = {}) {
946
1180
  try {
947
1181
  flushPending();
948
1182
  if (!shared) {
1183
+ // Reclaim the WAL before VACUUM. `TRUNCATE` only succeeds when no
1184
+ // reader holds an old snapshot; a busy result is fine (next start
1185
+ // retries), and `journal_size_limit` caps the file meanwhile.
1186
+ try {
1187
+ db.exec("PRAGMA wal_checkpoint(TRUNCATE)");
1188
+ }
1189
+ catch {
1190
+ /* busy reader — leave it for the next checkpoint */
1191
+ }
1192
+ try {
1193
+ archiveDb.exec("PRAGMA wal_checkpoint(TRUNCATE)");
1194
+ }
1195
+ catch {
1196
+ /* busy reader */
1197
+ }
949
1198
  maybeVacuum(db, {
950
1199
  minFreeBytes: VACUUM_MIN_FREE_BYTES,
951
1200
  minFreeRatio: VACUUM_MIN_FREE_RATIO,
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-store.js","sourceRoot":"","sources":["../src/sqlite-store.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,16 @@ export interface OpenAiCompatibleOptions {
50
50
  * Plain OpenAI gateways should leave this unset.
51
51
  */
52
52
  readonly deepseekThinking?: true | DeepSeekThinkingDefaults;
53
+ /**
54
+ * When true, a route that advertises thinking levels sends the chosen one as
55
+ * `reasoning_effort` — the plain OpenAI-compatible spelling of the same fact
56
+ * {@link deepseekThinking} emits for DeepSeek, without the `thinking` field.
57
+ *
58
+ * Off by default, and turned on per route only by callers that know the model
59
+ * advertises levels: an unknown gateway may reject the parameter outright, and
60
+ * a menu that changes nothing is worse than no menu.
61
+ */
62
+ readonly reasoningEffortWire?: true;
53
63
  /**
54
64
  * When set, replaces default `image_url` data-URL wire for vision requests.
55
65
  * Used by `@xrkseek/llm-deepseek` for official Files API (`dsh-v0.1.1-rc.2`).
@@ -79,6 +89,14 @@ type WireContentPart = {
79
89
  file_id: string;
80
90
  };
81
91
  declare function buildEndpoint(baseUrl: string, path: string): string;
92
+ /**
93
+ * Wire spelling of a chosen thinking level for OpenAI-compatible gateways.
94
+ *
95
+ * Levels travel as the model's own vocabulary (gateways publish `max`, `xhigh`
96
+ * and friends, and pass them through), except `off`, which OpenAI-compatible
97
+ * APIs spell `none`.
98
+ */
99
+ export declare function wireReasoningEffort(effort: string | undefined): string | undefined;
82
100
  /**
83
101
  * OpenAI Chat Completions adapter with optional SSE stream + vision parts.
84
102
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -291,8 +291,26 @@ async function buildBody(options, request, stream) {
291
291
  body.reasoning_effort = thinking.reasoning_effort;
292
292
  }
293
293
  }
294
+ else if (options.reasoningEffortWire === true) {
295
+ const effort = wireReasoningEffort(request.reasoningEffort);
296
+ if (effort !== undefined)
297
+ body.reasoning_effort = effort;
298
+ }
294
299
  return body;
295
300
  }
301
+ /**
302
+ * Wire spelling of a chosen thinking level for OpenAI-compatible gateways.
303
+ *
304
+ * Levels travel as the model's own vocabulary (gateways publish `max`, `xhigh`
305
+ * and friends, and pass them through), except `off`, which OpenAI-compatible
306
+ * APIs spell `none`.
307
+ */
308
+ export function wireReasoningEffort(effort) {
309
+ const trimmed = effort?.trim().toLowerCase();
310
+ if (trimmed === undefined || trimmed.length === 0)
311
+ return undefined;
312
+ return trimmed === "off" ? "none" : trimmed;
313
+ }
296
314
  /** Map OpenAI `{ error: { message, type } }` (HTTP body or SSE frame) to LlmError. */
297
315
  function throwOpenAiWireError(error, via) {
298
316
  const errObj = typeof error === "object" && error !== null