@retaw106/mmc-oc 2.5.0 → 2.7.1

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 (121) hide show
  1. package/dist/{context-xx09sh1g.js → context-9q17e52a.js} +553 -214
  2. package/dist/features/magic-context/auto-search-diagnostics.d.ts +27 -0
  3. package/dist/features/magic-context/auto-search-diagnostics.d.ts.map +1 -0
  4. package/dist/features/magic-context/compaction-marker.d.ts +34 -6
  5. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  6. package/dist/features/magic-context/message-index.d.ts +1 -24
  7. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  8. package/dist/features/magic-context/search.d.ts +4 -0
  9. package/dist/features/magic-context/search.d.ts.map +1 -1
  10. package/dist/features/magic-context/session-decision-calibration.d.ts.map +1 -1
  11. package/dist/features/magic-context/session-retention.fixture.d.ts +4 -0
  12. package/dist/features/magic-context/session-retention.fixture.d.ts.map +1 -0
  13. package/dist/features/magic-context/storage-meta-persisted.d.ts +21 -1
  14. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  15. package/dist/features/magic-context/storage-native-replay.d.ts +2 -0
  16. package/dist/features/magic-context/storage-native-replay.d.ts.map +1 -1
  17. package/dist/features/magic-context/storage-session-tables.d.ts +4 -11
  18. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
  19. package/dist/features/magic-context/tool-definition-tokens.d.ts +113 -58
  20. package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -1
  21. package/dist/features/magic-context/work-metrics.d.ts +5 -3
  22. package/dist/features/magic-context/work-metrics.d.ts.map +1 -1
  23. package/dist/hooks/magic-context/apply-operations.d.ts +32 -0
  24. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/ask-answer-notice.d.ts +25 -0
  26. package/dist/hooks/magic-context/ask-answer-notice.d.ts.map +1 -0
  27. package/dist/hooks/magic-context/auto-search-observation.d.ts +13 -0
  28. package/dist/hooks/magic-context/auto-search-observation.d.ts.map +1 -0
  29. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  30. package/dist/hooks/magic-context/compaction-marker-manager.d.ts +5 -5
  31. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  32. package/dist/hooks/magic-context/compaction-marker-publication.d.ts +14 -0
  33. package/dist/hooks/magic-context/compaction-marker-publication.d.ts.map +1 -0
  34. package/dist/hooks/magic-context/compaction-off-transition.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +11 -0
  36. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +11 -3
  39. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/historian-history-wait.d.ts +16 -0
  41. package/dist/hooks/magic-context/historian-history-wait.d.ts.map +1 -0
  42. package/dist/hooks/magic-context/history-boundary-repair.d.ts +1 -1
  43. package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -1
  44. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/lkg-measured-request.d.ts.map +1 -1
  46. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts +3 -1
  47. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/lkg-replay-fit.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  50. package/dist/hooks/magic-context/lkg-slot.d.ts +2 -0
  51. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  52. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/read-session-db.d.ts +8 -2
  54. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/read-session-raw.d.ts +20 -0
  56. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  57. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts +42 -0
  58. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts.map +1 -0
  59. package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
  60. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  61. package/dist/hooks/magic-context/todo-view.d.ts +2 -2
  62. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  63. package/dist/{index-bpjjcdy9.js → index-8rmt6s4f.js} +77 -31
  64. package/dist/{index-mjf0p7yq.js → index-cgjyhwdk.js} +1 -1
  65. package/dist/{index-k25thxq7.js → index-s3ebcy63.js} +1 -1
  66. package/dist/{index-1vxffj5j.js → index-t0zx3tgz.js} +408 -89
  67. package/dist/{index-0d40b4q8.js → index-xrxpbe74.js} +9355 -9215
  68. package/dist/index.js +14 -4
  69. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  70. package/dist/{read-session-chunk-eb3fy45y.js → read-session-chunk-2s8x6xps.js} +2 -2
  71. package/dist/{recomp-orchestrator-mmpy5cb7.js → recomp-orchestrator-gzd1at06.js} +5 -5
  72. package/dist/{send-session-notification-zpqs213d.js → send-session-notification-vdppp5x6.js} +2 -2
  73. package/dist/shared/search-text.d.ts +2 -0
  74. package/dist/shared/search-text.d.ts.map +1 -1
  75. package/dist/shared/tag-transcript.d.ts +2 -0
  76. package/dist/shared/tag-transcript.d.ts.map +1 -1
  77. package/dist/shared/transcript.d.ts +3 -1
  78. package/dist/shared/transcript.d.ts.map +1 -1
  79. package/dist/tools/ctx-expand/render.d.ts +5 -3
  80. package/dist/tools/ctx-expand/render.d.ts.map +1 -1
  81. package/dist/tools/ctx-expand/tools.d.ts +2 -0
  82. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  83. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  84. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  85. package/dist/tools/parameter-descriptions.d.ts +10 -10
  86. package/dist/tools/parameter-descriptions.d.ts.map +1 -1
  87. package/dist/tui.js +2144 -0
  88. package/dist/v2/hooks/context.d.ts +5 -1
  89. package/dist/v2/hooks/context.d.ts.map +1 -1
  90. package/dist/v2/hooks/store.d.ts.map +1 -1
  91. package/dist/v2/message-times.d.ts +17 -0
  92. package/dist/v2/message-times.d.ts.map +1 -0
  93. package/dist/v2/server.js +11211 -10345
  94. package/dist/v2/store-reader.d.ts +14 -4
  95. package/dist/v2/store-reader.d.ts.map +1 -1
  96. package/dist/v2/tui/client.d.ts +57 -0
  97. package/dist/v2/tui/client.d.ts.map +1 -0
  98. package/dist/v2/tui/context-rpc.d.ts +63 -0
  99. package/dist/v2/tui/context-rpc.d.ts.map +1 -0
  100. package/dist/v2/tui/entry.d.ts +8 -0
  101. package/dist/v2/tui/entry.d.ts.map +1 -0
  102. package/dist/v2/tui/notification-socket.d.ts +26 -0
  103. package/dist/v2/tui/notification-socket.d.ts.map +1 -0
  104. package/dist/v2/tui/session-directory.d.ts +22 -0
  105. package/dist/v2/tui/session-directory.d.ts.map +1 -0
  106. package/dist/v2/tui/types.d.ts +110 -0
  107. package/dist/v2/tui/types.d.ts.map +1 -0
  108. package/dist/web/main.js +85 -11
  109. package/dist/{wrapup-orchestrator-jq589pgr.js → wrapup-orchestrator-ghq4y406.js} +5 -5
  110. package/package.json +13 -3
  111. package/src/config/latch-permanence-guard.test.ts +0 -5
  112. package/src/shared/prompt-surface-a1-golden.md +8 -9
  113. package/src/shared/search-text.test.ts +36 -1
  114. package/src/shared/search-text.ts +48 -0
  115. package/src/shared/sqlite-transaction-mode-guard.test.ts +2 -0
  116. package/src/shared/tag-transcript.ts +47 -4
  117. package/src/shared/transcript.ts +1 -1
  118. package/src/shared/write-transaction-attribution.test.ts +1 -6
  119. package/tui.js +4 -0
  120. package/dist/features/magic-context/message-index-sweep.d.ts +0 -11
  121. package/dist/features/magic-context/message-index-sweep.d.ts.map +0 -1
@@ -3,6 +3,7 @@ import {
3
3
  getSqliteDatabasePath
4
4
  } from "./index-pte3cfs9.js";
5
5
  import {
6
+ getHarness,
6
7
  harnessOwnsOpenCodeStore,
7
8
  log
8
9
  } from "./index-k59af64t.js";
@@ -477,6 +478,9 @@ var ordinalWatermarks = new WeakMap;
477
478
  var ordinalWatermarkEpochs = new Map;
478
479
  var ordinalRowsVisited = 0;
479
480
  var STABLE_STORE_ATTEMPTS = 3;
481
+ function forgetRawSessionOrdinalWatermark(sessionId) {
482
+ ordinalWatermarkEpochs.set(sessionId, (ordinalWatermarkEpochs.get(sessionId) ?? 0) + 1);
483
+ }
480
484
  function compareOrdinalKeys(left, right) {
481
485
  if (left.timeCreated !== right.timeCreated)
482
486
  return left.timeCreated < right.timeCreated ? -1 : 1;
@@ -503,6 +507,11 @@ var writtenSummaryIds = new Map;
503
507
  var indexedCountUnsupported = new WeakSet;
504
508
  var ordinalJsonRowsRead = 0;
505
509
  var summaryFullScans = 0;
510
+ function forgetRawSessionSummaryRows(sessionId) {
511
+ summaryCandidateEpochs.set(sessionId, (summaryCandidateEpochs.get(sessionId) ?? 0) + 1);
512
+ writtenSummaryIds.delete(sessionId);
513
+ forgetRawSessionOrdinalWatermark(sessionId);
514
+ }
506
515
  var ANCHOR_ROWS_SQL = `SELECT rowid AS rid, id, 1 AS kind FROM message
507
516
  WHERE rowid > (SELECT MAX(rowid) FROM message) - ${SUMMARY_ANCHOR_SPAN}`;
508
517
  var SUMMARY_FULL_SCAN_SQL = `${ANCHOR_ROWS_SQL}
@@ -523,6 +532,20 @@ function survivingAnchor(db, set) {
523
532
  }
524
533
  var ordinalCheckpoints = new WeakMap;
525
534
  var ordinalSummarySeeds = new WeakMap;
535
+ function hasLateCommitBehindCheckpoint(db, sessionId, scan) {
536
+ const tail = scan.checkpoints?.at(-1);
537
+ if (!tail || scan.maxRowid === undefined)
538
+ return false;
539
+ const row = db.prepare(`SELECT COUNT(*) AS count FROM message
540
+ WHERE rowid > ? AND +session_id = ?
541
+ AND (time_created, id) <= (?, ?)
542
+ AND NOT (${EXCLUDED_ROW_SQL})`).get(scan.maxRowid, sessionId, tail.timeCreated, tail.id);
543
+ return typeof row?.count === "number" && row.count > 0;
544
+ }
545
+ function discardRetainedOrdinalRanks(db, sessionId) {
546
+ ordinalCheckpoints.get(db)?.delete(sessionId);
547
+ ordinalSummarySeeds.get(db)?.delete(sessionId);
548
+ }
526
549
  var ORDINAL_LOOKUP_LIMIT = 512;
527
550
  function currentOrdinalCheckpoints(db, sessionId) {
528
551
  const cached = ordinalCheckpoints.get(db)?.get(sessionId);
@@ -553,10 +576,16 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
553
576
  scan.sessionRows = points.at(-1)?.storedCount ?? 0;
554
577
  }
555
578
  const tail = points.at(-1);
556
- const rows = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message
579
+ const rows = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message
557
580
  WHERE session_id=?${tail ? " AND (time_created,id) > (?,?)" : ""}
558
581
  ORDER BY time_created,id${limit === undefined ? "" : ` LIMIT ${limit + 1}`}`).all(sessionId, ...tail ? [tail.timeCreated, tail.id] : []);
559
582
  ordinalJsonRowsRead += rows.length;
583
+ if (hasLateCommitBehindCheckpoint(db, sessionId, scan)) {
584
+ discardRetainedOrdinalRanks(db, sessionId);
585
+ if (isMainThread)
586
+ forgetRawSessionSummaryRows(sessionId);
587
+ return false;
588
+ }
560
589
  if (limit !== undefined && rows.length > limit)
561
590
  return false;
562
591
  let total = scan.total ?? 0;
@@ -573,6 +602,13 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
573
602
  scan.checkpoints = points;
574
603
  scan.sessionRows += rows.length;
575
604
  scan.total = total;
605
+ if (rows.length > 0) {
606
+ let maxRowid = scan.maxRowid ?? -1;
607
+ for (const row of rows)
608
+ if (row.rowid > maxRowid)
609
+ maxRowid = row.rowid;
610
+ scan.maxRowid = maxRowid;
611
+ }
576
612
  return true;
577
613
  }
578
614
  function warmRawSessionOrdinalsForDb(db, sessionId) {
@@ -587,6 +623,10 @@ function warmRawSessionOrdinalsForDb(db, sessionId) {
587
623
  }
588
624
  return isRawSessionSummaryWarm(db, sessionId);
589
625
  }
626
+ function dropRawSessionOrdinalCheckpoints(db, sessionId) {
627
+ discardRetainedOrdinalRanks(db, sessionId);
628
+ forgetRawSessionSummaryRows(sessionId);
629
+ }
590
630
  function boundedOrdinalPrefix(db, sessionId, through) {
591
631
  try {
592
632
  return boundedOrdinalPrefixBounded(db, sessionId, through);
@@ -648,8 +688,7 @@ function boundedOrdinalPrefixBounded(db, sessionId, through) {
648
688
  }
649
689
  function scanRawSessionSummaryRows(db, sessionId, previous) {
650
690
  return withReadSnapshot(db, () => {
651
- if (previous?.checkpoints) {
652
- extendOrdinalCheckpoints(db, sessionId, previous);
691
+ if (previous?.checkpoints && extendOrdinalCheckpoints(db, sessionId, previous)) {
653
692
  return previous;
654
693
  }
655
694
  if (previous) {
@@ -681,12 +720,15 @@ function scanRawSessionSummaryRows(db, sessionId, previous) {
681
720
  }
682
721
  anchors.sort((left, right) => right.rowid - left.rowid);
683
722
  anchors.length = Math.min(anchors.length, SUMMARY_ANCHOR_LIMIT);
684
- const keys = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
723
+ const keys = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
685
724
  ORDER BY time_created, id`).all(sessionId);
686
725
  const checkpoints = [];
687
726
  let total = 0;
727
+ let maxRowid;
688
728
  for (let index = 0;index < keys.length; index++) {
689
729
  const key = keys[index];
730
+ if (typeof key.rowid === "number")
731
+ maxRowid = maxRowid === undefined ? key.rowid : Math.max(maxRowid, key.rowid);
690
732
  if (key.excluded !== 1)
691
733
  total++;
692
734
  if (index % 256 === 255 || index === keys.length - 1)
@@ -697,7 +739,7 @@ function scanRawSessionSummaryRows(db, sessionId, previous) {
697
739
  storedCount: index + 1
698
740
  });
699
741
  }
700
- return { anchors, ids, sessionRows, checkpoints, total };
742
+ return { anchors, ids, sessionRows, checkpoints, total, maxRowid };
701
743
  });
702
744
  }
703
745
  function getRawSessionSummaryEpoch(sessionId) {
@@ -1130,48 +1172,53 @@ function isKnownAutocommit(db) {
1130
1172
  }
1131
1173
 
1132
1174
  // src/hooks/magic-context/read-session-db.ts
1133
- function openCodeDbExists() {
1134
- return harnessOwnsOpenCodeStore() && openCodeDbPathExists(resolveOpenCodeDbPath());
1135
- }
1136
- var cachedReadOnlyDb = null;
1137
- function closeCachedReadOnlyDb() {
1138
- if (!cachedReadOnlyDb) {
1175
+ function openCodeDbExists(generation = "v1") {
1176
+ return harnessOwnsOpenCodeStore() && openCodeDbPathExists(resolveOpenCodeDbPath(generation));
1177
+ }
1178
+ var cachedReadOnlyDbs = {
1179
+ v1: null,
1180
+ v2: null
1181
+ };
1182
+ function closeCachedReadOnlyDb(generation) {
1183
+ const cached = cachedReadOnlyDbs[generation];
1184
+ if (!cached) {
1139
1185
  return;
1140
1186
  }
1141
1187
  try {
1142
- closeQuietly(cachedReadOnlyDb.db);
1188
+ closeQuietly(cached.db);
1143
1189
  } catch (error) {
1144
1190
  log("[magic-context] failed to close cached OpenCode read-only DB:", error);
1145
1191
  } finally {
1146
- cachedReadOnlyDb = null;
1192
+ cachedReadOnlyDbs[generation] = null;
1147
1193
  }
1148
1194
  }
1149
- function getReadOnlySessionDb() {
1195
+ function getReadOnlySessionDb(generation = "v1") {
1150
1196
  if (!harnessOwnsOpenCodeStore()) {
1151
1197
  throw new Error("OpenCode session database is not readable from a Pi-compatible process; its history lives in Pi sessions");
1152
1198
  }
1153
- const resolution = resolveOpenCodeDbPath();
1199
+ const resolution = resolveOpenCodeDbPath(generation);
1154
1200
  const dbPath = resolution.path;
1155
1201
  if (!openCodeDbPathExists(resolution)) {
1156
1202
  throw new Error(`OpenCode session database is unavailable at ${dbPath} (source=${resolution.source})`);
1157
1203
  }
1158
- if (cachedReadOnlyDb?.path === dbPath) {
1159
- return cachedReadOnlyDb.db;
1204
+ const cached = cachedReadOnlyDbs[generation];
1205
+ if (cached?.path === dbPath) {
1206
+ return cached.db;
1160
1207
  }
1161
- closeCachedReadOnlyDb();
1208
+ closeCachedReadOnlyDb(generation);
1162
1209
  const db = new Database(dbPath, { readonly: true });
1163
1210
  try {
1164
- assertOpenCodeStoreGeneration(db, "v1", dbPath);
1211
+ assertOpenCodeStoreGeneration(db, generation, dbPath);
1165
1212
  } catch (error) {
1166
1213
  closeQuietly(db);
1167
1214
  throw error;
1168
1215
  }
1169
- cachedReadOnlyDb = { path: dbPath, db };
1216
+ cachedReadOnlyDbs[generation] = { path: dbPath, db };
1170
1217
  clearOpenCodeDbReadFailure();
1171
1218
  return db;
1172
1219
  }
1173
- function withReadOnlySessionDb(fn) {
1174
- return fn(getReadOnlySessionDb());
1220
+ function withReadOnlySessionDb(fn, generation = "v1") {
1221
+ return fn(getReadOnlySessionDb(generation));
1175
1222
  }
1176
1223
  function getRawSessionMessageCountFromDb(db, sessionId) {
1177
1224
  const row = db.prepare(`SELECT COUNT(*) as count FROM message WHERE session_id = ?
@@ -1401,15 +1448,14 @@ function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
1401
1448
  if (messageIds.length === 0 || !harnessOwnsOpenCodeStore())
1402
1449
  return result;
1403
1450
  try {
1404
- withReadOnlySessionDb((db) => {
1405
- const placeholders = messageIds.map(() => "?").join(",");
1406
- const rows = db.prepare(`SELECT id, time_created FROM message WHERE +session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds);
1407
- for (const row of rows) {
1408
- if (typeof row.id === "string" && typeof row.time_created === "number") {
1409
- result.set(row.id, row.time_created);
1410
- }
1451
+ const placeholders = messageIds.map(() => "?").join(",");
1452
+ const rows = getHarness() === "opencode2" ? getReadOnlySessionDb("v2").prepare(`SELECT id, COALESCE(time_created, json_extract(data, '$.time.created')) AS time_created
1453
+ FROM session_message WHERE +session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds) : withReadOnlySessionDb((db) => db.prepare(`SELECT id, time_created FROM message WHERE +session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds));
1454
+ for (const row of rows) {
1455
+ if (typeof row.id === "string" && typeof row.time_created === "number") {
1456
+ result.set(row.id, row.time_created);
1411
1457
  }
1412
- });
1458
+ }
1413
1459
  } catch (error) {
1414
1460
  logProbeFailureOnce(resolveOpenCodeDbPath(), error);
1415
1461
  }
@@ -1474,4 +1520,4 @@ function findLastAssistantModelFromOpenCodeDb(sessionId) {
1474
1520
  }
1475
1521
  }
1476
1522
 
1477
- export { closeQuietly, isKnownAutocommit, resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, claimOpenCodeDbDiagnosticOnce, isStrictGapHealingMessage, readRawSessionMessagesFromDb, readRawSessionMessagePageFromDb, readRawSessionMessageSummaryPageFromDb, countRawSessionMessageOrdinalsFromDb, readRawSessionMessageIdOrdinalsForRangeFromDb, readRawSessionTailFromDb, extractInMemoryMessageViews, buildInMemoryTailRawMessages, warmRawSessionOrdinalsForDb, readRawSessionMessageOrdinalByIdFromDb, readRawSessionMessageByIdFromDb, hasRawSessionMessageByIdFromDb, openCodeDbExists, withReadOnlySessionDb, getRawSessionMessageCountFromDb, shouldHoldIgnoredNotification, latestRealUserTurnIdFromOpenCodeDb, getMessageTimesFromOpenCodeDb, findLastAssistantModelFromOpenCodeDb };
1523
+ export { closeQuietly, isKnownAutocommit, resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, claimOpenCodeDbDiagnosticOnce, isStrictGapHealingMessage, readRawSessionMessagesFromDb, readRawSessionMessagePageFromDb, readRawSessionMessageSummaryPageFromDb, countRawSessionMessageOrdinalsFromDb, readRawSessionMessageIdOrdinalsForRangeFromDb, readRawSessionTailFromDb, extractInMemoryMessageViews, buildInMemoryTailRawMessages, warmRawSessionOrdinalsForDb, dropRawSessionOrdinalCheckpoints, readRawSessionMessageOrdinalByIdFromDb, readRawSessionMessageByIdFromDb, hasRawSessionMessageByIdFromDb, openCodeDbExists, withReadOnlySessionDb, getRawSessionMessageCountFromDb, shouldHoldIgnoredNotification, latestRealUserTurnIdFromOpenCodeDb, getMessageTimesFromOpenCodeDb, findLastAssistantModelFromOpenCodeDb };
@@ -4,7 +4,7 @@ import {
4
4
  renderUserFacingFailure,
5
5
  userFacingFailureCode,
6
6
  executeContextRecomp
7
- } from "./index-0d40b4q8.js";
7
+ } from "./index-xrxpbe74.js";
8
8
  import {
9
9
  sessionLog
10
10
  } from "./index-k59af64t.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./index-k59af64t.js";
4
4
  import {
5
5
  shouldHoldIgnoredNotification
6
- } from "./index-bpjjcdy9.js";
6
+ } from "./index-8rmt6s4f.js";
7
7
 
8
8
  // src/shared/error-message.ts
9
9
  function getErrorMessage(error) {