@cortexkit/opencode-magic-context 0.42.1 → 0.42.3

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 (45) hide show
  1. package/dist/{conflict-warning-hook-6p3xqeac.js → conflict-warning-hook-aedp084d.js} +3 -3
  2. package/dist/features/magic-context/compaction-marker.d.ts +4 -10
  3. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  4. package/dist/features/magic-context/dreamer/expire-memories.d.ts +15 -0
  5. package/dist/features/magic-context/dreamer/expire-memories.d.ts.map +1 -0
  6. package/dist/features/magic-context/dreamer/module-apply.d.ts +4 -2
  7. package/dist/features/magic-context/dreamer/module-apply.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  9. package/dist/features/magic-context/dreamer/task-gates.d.ts +6 -1
  10. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
  11. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
  12. package/dist/features/magic-context/storage-meta-persisted.d.ts +4 -0
  13. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  14. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  15. package/dist/hooks/magic-context/compaction-marker-manager.d.ts +4 -6
  16. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  17. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/lkg-slot.d.ts +2 -0
  19. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  21. package/dist/hooks/magic-context/read-session-raw.d.ts +4 -4
  22. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  23. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  24. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  25. package/dist/{index-36wd1d6k.js → index-ecz14qke.js} +1 -1
  26. package/dist/{index-nqgjwfzn.js → index-gynz8qdc.js} +1 -1
  27. package/dist/{index-jmtjh2d3.js → index-sf6x1ga9.js} +1 -1
  28. package/dist/{index-1q9kay7n.js → index-wde5446v.js} +86 -59
  29. package/dist/{index-1974jvn3.js → index-z8552w7e.js} +1 -1
  30. package/dist/index.js +331 -125
  31. package/dist/plugin/dream-timer-module-client.d.ts +2 -2
  32. package/dist/plugin/dream-timer-module-client.d.ts.map +1 -1
  33. package/dist/{recomp-orchestrator-m33b3rk9.js → recomp-orchestrator-447vycpt.js} +4 -4
  34. package/dist/{send-session-notification-1qeqkswb.js → send-session-notification-2mzgd3zf.js} +2 -2
  35. package/dist/shared/transcript.d.ts +2 -1
  36. package/dist/shared/transcript.d.ts.map +1 -1
  37. package/dist/{storage-meta-session-e6g0mmec.js → storage-meta-session-fkmfhswa.js} +2 -2
  38. package/dist/v2/server.d.ts +6 -0
  39. package/dist/v2/server.d.ts.map +1 -0
  40. package/dist/v2/server.js +10 -0
  41. package/dist/v2/store-reader.d.ts +63 -0
  42. package/dist/v2/store-reader.d.ts.map +1 -0
  43. package/package.json +7 -2
  44. package/src/shared/tag-transcript.ts +14 -7
  45. package/src/shared/transcript.ts +2 -1
@@ -11,7 +11,7 @@ import {
11
11
  SESSION_SCOPED_TABLES,
12
12
  deleteSessionScopedRows,
13
13
  updateSessionMeta2
14
- } from "./index-jmtjh2d3.js";
14
+ } from "./index-sf6x1ga9.js";
15
15
  import {
16
16
  resolveOpenCodeDbPath,
17
17
  openCodeDbPathExists,
@@ -25,7 +25,7 @@ import {
25
25
  withReadOnlySessionDb,
26
26
  getRawSessionMessageCountFromDb,
27
27
  getMessageTimesFromOpenCodeDb
28
- } from "./index-1974jvn3.js";
28
+ } from "./index-z8552w7e.js";
29
29
  import {
30
30
  pushNotification2
31
31
  } from "./index-jdxxq8cz.js";
@@ -47,7 +47,7 @@ import {
47
47
  getErrorMessage,
48
48
  describeError,
49
49
  sendStatusNotification2
50
- } from "./index-nqgjwfzn.js";
50
+ } from "./index-gynz8qdc.js";
51
51
  import {
52
52
  piModelRefToCanonical,
53
53
  modelRefLookupOrder
@@ -10606,7 +10606,7 @@ function deleteToolTagsByOwner(db, sessionId, ownerMsgId) {
10606
10606
  }
10607
10607
 
10608
10608
  // src/hooks/magic-context/read-session-raw.ts
10609
- var RAW_MESSAGE_PARTS_BY_ID_SQL = "SELECT message_id, data, time_updated FROM part WHERE session_id = ? AND likelihood(message_id = ?, 0.000001) ORDER BY time_created ASC, id ASC";
10609
+ var RAW_MESSAGE_PARTS_BY_ID_SQL = "SELECT message_id, data, time_updated FROM part WHERE +session_id = ? AND likelihood(message_id = ?, 0.000001) ORDER BY time_created ASC, id ASC";
10610
10610
  function isRawMessageRow(row) {
10611
10611
  if (row === null || typeof row !== "object")
10612
10612
  return false;
@@ -10668,7 +10668,7 @@ function readRawSessionMessagesFromDb(db, sessionId) {
10668
10668
  const placeholders = messageIds.map(() => "?").join(", ");
10669
10669
  const partRows = db.prepare(`SELECT message_id, data, time_updated
10670
10670
  FROM part
10671
- WHERE session_id = ?
10671
+ WHERE +session_id = ?
10672
10672
  AND likelihood(message_id IN (${placeholders}), 0.000001)
10673
10673
  ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageIds).filter(isRawPartRow);
10674
10674
  for (const part of partRows) {
@@ -10719,7 +10719,7 @@ function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, fin
10719
10719
  const placeholders = messageRows.map(() => "?").join(", ");
10720
10720
  const partRows = db.prepare(`SELECT message_id, data, time_updated
10721
10721
  FROM part
10722
- WHERE session_id = ?
10722
+ WHERE +session_id = ?
10723
10723
  AND likelihood(message_id IN (${placeholders}), 0.000001)
10724
10724
  ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageRows.map((row) => row.id)).filter(isRawPartRow);
10725
10725
  const partsByMessageId = new Map;
@@ -10807,7 +10807,7 @@ function readRawSessionTailFromDb(db, sessionId, baseOrdinal, anchorMessageId) {
10807
10807
  for (let i = 0;i < ids.length; i += CHUNK) {
10808
10808
  const slice = ids.slice(i, i + CHUNK);
10809
10809
  const placeholders = slice.map(() => "?").join(",");
10810
- const partRows = db.prepare(`SELECT message_id, data, time_updated FROM part WHERE session_id = ? AND likelihood(message_id IN (${placeholders}), 0.000001) ORDER BY time_created ASC, id ASC`).all(sessionId, ...slice).filter(isRawPartRow);
10810
+ const partRows = db.prepare(`SELECT message_id, data, time_updated FROM part WHERE +session_id = ? AND likelihood(message_id IN (${placeholders}), 0.000001) ORDER BY time_created ASC, id ASC`).all(sessionId, ...slice).filter(isRawPartRow);
10811
10811
  for (const part of partRows) {
10812
10812
  const list = partsByMessageId.get(part.message_id) ?? [];
10813
10813
  list.push(attachRawPartVersion(parseJsonUnknown(part.data), part.time_updated));
@@ -10973,7 +10973,7 @@ function readRawSeedTailFromDb(db, sessionId, boundaryId) {
10973
10973
  SELECT c.id, m.data, c.time_created, m.time_updated, c.ordinal,
10974
10974
  p.data AS part_data, p.time_updated AS part_updated
10975
10975
  FROM canonical c JOIN message m ON m.id = c.id
10976
- LEFT JOIN part p ON p.session_id = ? AND likelihood(p.message_id = c.id, 0.000001)
10976
+ LEFT JOIN part p ON +p.session_id = ? AND likelihood(p.message_id = c.id, 0.000001)
10977
10977
  WHERE ? IS NULL OR c.ordinal >= (SELECT ordinal FROM canonical WHERE id = ?)
10978
10978
  ORDER BY c.ordinal, p.time_created, p.id
10979
10979
  `).all(sessionId, sessionId, boundaryId, boundaryId);
@@ -20175,9 +20175,27 @@ function getPersistedCompactionMarkerState(db, sessionId) {
20175
20175
  return parsePersistedCompactionMarkerState(row?.compaction_marker_state, row?.compaction_marker_target_end_message_id);
20176
20176
  }
20177
20177
  function setPersistedCompactionMarkerState(db, sessionId, state) {
20178
- ensureSessionMetaRow(db, sessionId);
20179
- const json = state ? JSON.stringify(state) : "";
20180
- db.prepare("UPDATE session_meta SET compaction_marker_state = ?, compaction_marker_target_end_message_id = ? WHERE session_id = ?").run(json, state?.targetEndMessageId ?? null, sessionId);
20178
+ db.transaction(() => {
20179
+ ensureSessionMetaRow(db, sessionId);
20180
+ const previous = state === null ? getPersistedCompactionMarkerState(db, sessionId) ?? getDeferredClearedCompactionMarkerState(db, sessionId) : null;
20181
+ const json = state ? JSON.stringify(state) : previous ? JSON.stringify({ deferredClear: previous }) : "";
20182
+ db.prepare("UPDATE session_meta SET compaction_marker_state = ?, compaction_marker_target_end_message_id = ? WHERE session_id = ?").run(json, state?.targetEndMessageId ?? null, sessionId);
20183
+ })();
20184
+ }
20185
+ function getDeferredClearedCompactionMarkerState(db, sessionId) {
20186
+ const row = db.prepare("SELECT compaction_marker_state FROM session_meta WHERE session_id = ?").get(sessionId);
20187
+ try {
20188
+ const parsed = JSON.parse(row?.compaction_marker_state || "null");
20189
+ return parsePersistedCompactionMarkerState(JSON.stringify(parsed?.deferredClear));
20190
+ } catch {
20191
+ return null;
20192
+ }
20193
+ }
20194
+ function retireDeferredClearedCompactionMarkerState(db, sessionId) {
20195
+ const previous = getDeferredClearedCompactionMarkerState(db, sessionId);
20196
+ if (!previous)
20197
+ return;
20198
+ db.prepare("UPDATE session_meta SET compaction_marker_state = '' WHERE session_id = ? AND compaction_marker_state = ?").run(sessionId, JSON.stringify({ deferredClear: previous }));
20181
20199
  }
20182
20200
  var MAX_STRIPPED_PLACEHOLDER_IDS = 4096;
20183
20201
  function parseStrippedPlaceholderState(raw) {
@@ -31355,7 +31373,7 @@ function removeLegacyMarkerLineageRows(db, args) {
31355
31373
  AND EXISTS (
31356
31374
  SELECT 1
31357
31375
  FROM part p
31358
- WHERE p.session_id = m.session_id
31376
+ WHERE +p.session_id = m.session_id
31359
31377
  AND p.message_id = m.id
31360
31378
  AND COALESCE(json_extract(p.data, '$.type'), '') = 'text'
31361
31379
  AND COALESCE(json_extract(p.data, '$.text'), '') = ?
@@ -31363,14 +31381,14 @@ function removeLegacyMarkerLineageRows(db, args) {
31363
31381
  const legacySummaryIds = legacySummaries.flatMap((row) => typeof row.id === "string" ? [row.id] : []);
31364
31382
  if (legacySummaryIds.length === 0)
31365
31383
  return;
31366
- const deleteSummaryParts = db.prepare("DELETE FROM part WHERE session_id = ? AND message_id = ?");
31384
+ const deleteSummaryParts = db.prepare("DELETE FROM part WHERE +session_id = ? AND message_id = ?");
31367
31385
  const deleteSummary = db.prepare("DELETE FROM message WHERE session_id = ? AND id = ?");
31368
31386
  for (const summaryMessageId of legacySummaryIds) {
31369
31387
  deleteSummaryParts.run(args.sessionId, summaryMessageId);
31370
31388
  deleteSummary.run(args.sessionId, summaryMessageId);
31371
31389
  }
31372
31390
  db.prepare(`DELETE FROM part
31373
- WHERE session_id = ?
31391
+ WHERE +session_id = ?
31374
31392
  AND message_id = ?
31375
31393
  AND id <> ?
31376
31394
  AND COALESCE(json_extract(data, '$.type'), '') = 'compaction'
@@ -31452,36 +31470,56 @@ function injectCompactionMarker(args) {
31452
31470
  }
31453
31471
  function listSessionCompactionMarkers(sessionId) {
31454
31472
  const db = getWritableOpenCodeDb();
31455
- const partRows = db.prepare(`SELECT id, message_id
31456
- FROM part
31473
+ const summaryRows = db.prepare(`SELECT id, json_extract(data, '$.parentID') AS boundary_message_id
31474
+ FROM message
31457
31475
  WHERE session_id = ?
31458
- AND COALESCE(json_extract(data, '$.type'), '') = 'compaction'`).all(sessionId);
31459
- const markers = [];
31460
- const summaryStmt = db.prepare(`SELECT id
31461
- FROM message
31462
- WHERE session_id = ?
31463
- AND COALESCE(json_extract(data, '$.parentID'), '') = ?
31464
- AND COALESCE(json_extract(data, '$.summary'), 0) = 1
31465
- AND COALESCE(json_extract(data, '$.finish'), '') = 'stop'
31466
- AND COALESCE(json_extract(data, '$.providerID'), '') = 'magic-context'`);
31467
- for (const row of partRows) {
31468
- if (typeof row.id !== "string" || typeof row.message_id !== "string")
31476
+ AND COALESCE(json_extract(data, '$.summary'), 0) = 1
31477
+ AND COALESCE(json_extract(data, '$.finish'), '') = 'stop'
31478
+ AND COALESCE(json_extract(data, '$.providerID'), '') = 'magic-context'
31479
+ ORDER BY time_created ASC, id ASC`).all(sessionId);
31480
+ const summaryIdsByBoundary = new Map;
31481
+ for (const row of summaryRows) {
31482
+ if (typeof row.id !== "string" || typeof row.boundary_message_id !== "string")
31469
31483
  continue;
31470
- const summaryRows = summaryStmt.all(sessionId, row.message_id);
31471
- const summaryMessageIds = summaryRows.flatMap((summaryRow) => typeof summaryRow.id === "string" ? [summaryRow.id] : []);
31472
- markers.push({
31473
- compactionPartId: row.id,
31474
- boundaryMessageId: row.message_id,
31475
- summaryMessageIds
31476
- });
31484
+ const summaryIds = summaryIdsByBoundary.get(row.boundary_message_id) ?? [];
31485
+ summaryIds.push(row.id);
31486
+ summaryIdsByBoundary.set(row.boundary_message_id, summaryIds);
31487
+ }
31488
+ const boundaryIds = [...summaryIdsByBoundary.keys()];
31489
+ const markers = [];
31490
+ const chunkSize = 800;
31491
+ for (let offset = 0;offset < boundaryIds.length; offset += chunkSize) {
31492
+ const boundaryChunk = boundaryIds.slice(offset, offset + chunkSize);
31493
+ const placeholders = boundaryChunk.map(() => "?").join(", ");
31494
+ const partRows = db.prepare(`SELECT id, message_id, time_created
31495
+ FROM part
31496
+ WHERE +session_id = ?
31497
+ AND likelihood(message_id IN (${placeholders}), 0.000001)
31498
+ AND COALESCE(json_extract(data, '$.type'), '') = 'compaction'
31499
+ ORDER BY time_created ASC, id ASC`).all(sessionId, ...boundaryChunk);
31500
+ for (const row of partRows) {
31501
+ if (typeof row.id !== "string" || typeof row.message_id !== "string" || typeof row.time_created !== "number") {
31502
+ continue;
31503
+ }
31504
+ const summaryMessageIds = summaryIdsByBoundary.get(row.message_id);
31505
+ if (!summaryMessageIds)
31506
+ continue;
31507
+ markers.push({
31508
+ compactionPartId: row.id,
31509
+ boundaryMessageId: row.message_id,
31510
+ summaryMessageIds: [...summaryMessageIds],
31511
+ timeCreated: row.time_created
31512
+ });
31513
+ }
31477
31514
  }
31478
- return markers;
31515
+ markers.sort((left, right) => left.timeCreated - right.timeCreated || left.compactionPartId.localeCompare(right.compactionPartId));
31516
+ return markers.map(({ timeCreated: _, ...marker }) => marker);
31479
31517
  }
31480
31518
  function removeForeignCompactionMarker(sessionId, marker, protectedSummaryMessageId) {
31481
31519
  try {
31482
31520
  const db = getWritableOpenCodeDb();
31483
31521
  db.transaction(() => {
31484
- const deletePartsOfMessage = db.prepare("DELETE FROM part WHERE session_id = ? AND message_id = ?");
31522
+ const deletePartsOfMessage = db.prepare("DELETE FROM part WHERE +session_id = ? AND message_id = ?");
31485
31523
  const deleteMessage = db.prepare("DELETE FROM message WHERE session_id = ? AND id = ?");
31486
31524
  for (const summaryMessageId of marker.summaryMessageIds) {
31487
31525
  if (summaryMessageId === protectedSummaryMessageId)
@@ -31544,7 +31582,7 @@ function removeMcOwnedCompactionMarkers(sessionId, summaryText) {
31544
31582
  AND EXISTS (
31545
31583
  SELECT 1
31546
31584
  FROM part p
31547
- WHERE p.session_id = m.session_id
31585
+ WHERE +p.session_id = m.session_id
31548
31586
  AND p.message_id = m.id
31549
31587
  AND COALESCE(json_extract(p.data, '$.type'), '') = 'text'
31550
31588
  AND COALESCE(json_extract(p.data, '$.text'), '') = ?
@@ -31604,7 +31642,7 @@ function removeMcOwnedCompactionMarkers(sessionId, summaryText) {
31604
31642
  let removedLineages = 0;
31605
31643
  let removedRows = 0;
31606
31644
  let retainedLineages = 0;
31607
- const deletePartsOfMessage = db.prepare("DELETE FROM part WHERE session_id = ? AND message_id = ?");
31645
+ const deletePartsOfMessage = db.prepare("DELETE FROM part WHERE +session_id = ? AND message_id = ?");
31608
31646
  const deleteMessage = db.prepare("DELETE FROM message WHERE session_id = ? AND id = ?");
31609
31647
  const deletePart = db.prepare("DELETE FROM part WHERE session_id = ? AND id = ?");
31610
31648
  const deleteSummaries = (summaryIds) => {
@@ -31927,16 +31965,16 @@ function checkCompactionMarkerConsistency(db) {
31927
31965
  try {
31928
31966
  opencodeDb = new Database(opencodeDbPath, { readonly: true });
31929
31967
  } catch (error) {
31930
- log(`[magic-context] compaction-marker consistency check skipped: ${error instanceof Error ? error.message : String(error)}`);
31968
+ log(`[magic-context] compaction-marker consistency check SKIPPED retaining state path=${opencodeDbPath} source=${resolution.source} mode=readonly wal=aware: ${error instanceof Error ? error.message : String(error)}`);
31931
31969
  return;
31932
31970
  }
31933
31971
  try {
31934
31972
  const persistedRows = db.prepare("SELECT session_id, compaction_marker_state FROM session_meta WHERE compaction_marker_state IS NOT NULL AND compaction_marker_state != ''").all();
31935
31973
  if (persistedRows.length === 0)
31936
31974
  return;
31975
+ log(`[magic-context] compaction-marker consistency probe path=${opencodeDbPath} source=${resolution.source} mode=readonly wal=aware sessions=${persistedRows.length}; diagnostic-only, no startup bust permission`);
31937
31976
  const checkMessage = opencodeDb.prepare("SELECT 1 FROM message WHERE id = ? LIMIT 1");
31938
31977
  const checkPart = opencodeDb.prepare("SELECT 1 FROM part WHERE id = ? LIMIT 1");
31939
- let reconciledCount = 0;
31940
31978
  for (const row of persistedRows) {
31941
31979
  const state = getPersistedCompactionMarkerState(db, row.session_id);
31942
31980
  if (!state)
@@ -31948,25 +31986,10 @@ function checkCompactionMarkerConsistency(db) {
31948
31986
  const allPresent = boundaryExists && summaryMessageExists && compactionPartExists && summaryPartExists;
31949
31987
  if (allPresent)
31950
31988
  continue;
31951
- let removedOk = false;
31952
- try {
31953
- removedOk = removeCompactionMarker(state);
31954
- } catch (error) {
31955
- sessionLog(row.session_id, "compaction-marker consistency: partial cleanup of half-written marker failed:", error);
31956
- }
31957
- if (removedOk) {
31958
- setPersistedCompactionMarkerState(db, row.session_id, null);
31959
- sessionLog(row.session_id, `compaction-marker consistency: cleared orphaned state (boundary=${boundaryExists} summary=${summaryMessageExists} cPart=${compactionPartExists} sPart=${summaryPartExists}); next publication will re-inject`);
31960
- reconciledCount++;
31961
- } else {
31962
- sessionLog(row.session_id, `compaction-marker consistency: cleanup failed for orphaned state (boundary=${boundaryExists} summary=${summaryMessageExists} cPart=${compactionPartExists} sPart=${summaryPartExists}); will retry on next startup`);
31963
- }
31964
- }
31965
- if (reconciledCount > 0) {
31966
- log(`[magic-context] compaction-marker consistency: reconciled ${reconciledCount} session(s) with orphaned marker state at startup`);
31989
+ sessionLog(row.session_id, `compaction-marker consistency: SKIPPED destructive reconciliation reason=unproven_writer_and_no_bust_permission path=${opencodeDbPath} source=${resolution.source} mode=readonly wal=aware boundary=${boundaryExists} summary=${summaryMessageExists} cPart=${compactionPartExists} sPart=${summaryPartExists}; retaining state until priced publication`);
31967
31990
  }
31968
31991
  } catch (error) {
31969
- log(`[magic-context] compaction-marker consistency check failed: ${error instanceof Error ? error.message : String(error)}`);
31992
+ log(`[magic-context] compaction-marker consistency check SKIPPED retaining state path=${opencodeDbPath} source=${resolution.source} mode=readonly wal=aware: ${error instanceof Error ? error.message : String(error)}`);
31970
31993
  } finally {
31971
31994
  try {
31972
31995
  closeQuietly(opencodeDb);
@@ -40738,7 +40761,8 @@ function beginLkgPass(sessionId) {
40738
40761
  }
40739
40762
  function slotBytes(slot) {
40740
40763
  const digestBytes = slot.inputContentDigests.reduce((total, digest) => total + 2 * digest.length, 0);
40741
- return 2 * slot.jsonPrefix.length + digestBytes + LKG_METADATA_BYTES;
40764
+ const ownershipBytes = slot.piOutputEntryIds?.reduce((total, id) => total + (id?.length ?? 0) * 2 + 8, 0) ?? 0;
40765
+ return 2 * slot.jsonPrefix.length + digestBytes + ownershipBytes + LKG_METADATA_BYTES;
40742
40766
  }
40743
40767
  var LKG_SNAPSHOT_ARRAY = Symbol("array");
40744
40768
  var LKG_SNAPSHOT_OBJECT = Symbol("object");
@@ -40969,6 +40993,7 @@ function captureSlot(sessionId, slot) {
40969
40993
  const entry = {
40970
40994
  slot: {
40971
40995
  ...slot,
40996
+ ...slot.piOutputEntryIds ? { piOutputEntryIds: [...slot.piOutputEntryIds] } : {},
40972
40997
  inputIdSeq: [...slot.inputIdSeq],
40973
40998
  inputContentDigests: [...slot.inputContentDigests],
40974
40999
  inputContentSignatures: slot.inputContentSignatures ? [...slot.inputContentSignatures] : undefined
@@ -41007,6 +41032,7 @@ function installHydratedSlot(sessionId, slot) {
41007
41032
  const entry = {
41008
41033
  slot: {
41009
41034
  ...slot,
41035
+ ...slot.piOutputEntryIds ? { piOutputEntryIds: [...slot.piOutputEntryIds] } : {},
41010
41036
  inputIdSeq: [...slot.inputIdSeq],
41011
41037
  inputContentDigests: [...slot.inputContentDigests],
41012
41038
  inputContentSignatures: slot.inputContentSignatures ? [...slot.inputContentSignatures] : undefined
@@ -41039,6 +41065,7 @@ function hydrateSlotFromPersistence(sessionId) {
41039
41065
  function copySlotForRead(slot) {
41040
41066
  return {
41041
41067
  ...slot,
41068
+ ...slot.piOutputEntryIds ? { piOutputEntryIds: [...slot.piOutputEntryIds] } : {},
41042
41069
  inputIdSeq: [...slot.inputIdSeq],
41043
41070
  inputContentDigests: [...slot.inputContentDigests],
41044
41071
  inputContentSignatures: slot.inputContentSignatures ? [...slot.inputContentSignatures] : undefined
@@ -41348,4 +41375,4 @@ async function runUpgradeMemoryMigration(ctx, sessionId, migrationDirectory) {
41348
41375
  }
41349
41376
  }
41350
41377
 
41351
- export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, applyMirroredNoteCompileFields, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, textMentionsRecentCommit, hasMeaningfulUserText, extractTexts, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, estimateTokens, normalizeText, getCurrentToolSetHash, recordToolDefinition, getMeasuredToolDefinitionTokens, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, isRecord, CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, prependTag, isThinkingPart, estimateImageTokensFromDataUrl, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchanged, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, markWhitespaceAssistantTagInert, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, updateTagMessageId, markTagsCompactedByMessageIds, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, getTagsBySession, getActiveTagsBySession, getTailHygieneTags, getDroppedTagsBySession, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getTagById, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, isRawCompactionSummaryInfo, extractInMemoryMessageViews, buildInMemoryTailRawMessages, estimateTrueRawMessageTokens, invalidateTrueRawTokenCache, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, createDroppedInputToolExecuteBeforeHook, isEditTool, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, setRawMessageProvider, cleanUserText, withRawSessionMessageCache, readRawSessionMessages, primeTailRawMessageCache, primeInMemoryTailRawMessageCache, readRawSessionMessageOrdinalPage, getRawSessionStoredMessageCount, readRawSessionMessagePartsById, readRawSessionMessageOrdinalById, readRawSessionMessageById, readSessionChunk, readRawSessionSeedTail, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, HAS_COMPARTMENT_CONTENT_SQL, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, clearRecompStaging, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, getProtectionWindowForSession, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, NEWEST_REASONING_BEARING_ASSISTANT, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, createChildSessionWithFence, detectThinkingBindingMismatch, isFable51ThinkingBindingModel, detectOverflow, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, recordChildInvocation, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMural, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, getOpenCodeDbPath, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, setRecompStarting2, setRecompTerminal2, runManagedRecomp2, runManagedUpgrade2 };
41378
+ export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, applyMirroredNoteCompileFields, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, textMentionsRecentCommit, hasMeaningfulUserText, extractTexts, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, estimateTokens, normalizeText, getCurrentToolSetHash, recordToolDefinition, getMeasuredToolDefinitionTokens, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, isRecord, CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, prependTag, isThinkingPart, estimateImageTokensFromDataUrl, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchanged, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, markWhitespaceAssistantTagInert, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, updateTagMessageId, markTagsCompactedByMessageIds, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, getTagsBySession, getActiveTagsBySession, getTailHygieneTags, getDroppedTagsBySession, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getTagById, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, isRawCompactionSummaryInfo, extractInMemoryMessageViews, buildInMemoryTailRawMessages, estimateTrueRawMessageTokens, invalidateTrueRawTokenCache, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, createDroppedInputToolExecuteBeforeHook, isEditTool, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, setRawMessageProvider, cleanUserText, withRawSessionMessageCache, readRawSessionMessages, primeTailRawMessageCache, primeInMemoryTailRawMessageCache, readRawSessionMessageOrdinalPage, getRawSessionStoredMessageCount, readRawSessionMessagePartsById, readRawSessionMessageOrdinalById, readRawSessionMessageById, readSessionChunk, readRawSessionSeedTail, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, HAS_COMPARTMENT_CONTENT_SQL, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, clearRecompStaging, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, getProtectionWindowForSession, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, NEWEST_REASONING_BEARING_ASSISTANT, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, createChildSessionWithFence, detectThinkingBindingMismatch, isFable51ThinkingBindingModel, detectOverflow, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, recordChildInvocation, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMural, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, getOpenCodeDbPath, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, setRecompStarting2, setRecompTerminal2, runManagedRecomp2, runManagedUpgrade2 };
@@ -675,7 +675,7 @@ function assistantAwaitingToolsFromOpenCodeDb(db, sessionId) {
675
675
  return false;
676
676
  if (latestAssistant.finish === "tool-calls")
677
677
  return true;
678
- const partRows = db.prepare("SELECT data FROM part WHERE session_id = ? AND likelihood(message_id = ?, 0.000001)").all(sessionId, latestAssistant.id);
678
+ const partRows = db.prepare("SELECT data FROM part WHERE +session_id = ? AND likelihood(message_id = ?, 0.000001)").all(sessionId, latestAssistant.id);
679
679
  return partRows.some((row) => {
680
680
  if (typeof row.data !== "string" || row.data.length === 0)
681
681
  return false;