@cortexkit/opencode-magic-context 0.49.25 → 0.49.26

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 (89) hide show
  1. package/dist/auto-search-worker.js +4 -4
  2. package/dist/chunk-embedding-write-worker.js +4 -4
  3. package/dist/{compartment-chunk-embedding-eypvn607.js → compartment-chunk-embedding-96ec8a7h.js} +3 -3
  4. package/dist/{conflict-warning-hook-a27bhggg.js → conflict-warning-hook-dv8fdc2w.js} +4 -4
  5. package/dist/{context-keb00be8.js → context-pjqa24nd.js} +17 -17
  6. package/dist/{embedding-backfill-vddgmem3.js → embedding-backfill-a91rvdf9.js} +5 -5
  7. package/dist/hooks/magic-context/caveman-cleanup.d.ts +14 -0
  8. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -1
  9. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +11 -0
  10. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/foreign-text-parts.d.ts +47 -0
  12. package/dist/hooks/magic-context/foreign-text-parts.d.ts.map +1 -0
  13. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  14. package/dist/hooks/magic-context/read-session-chunk.d.ts +21 -0
  15. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  16. package/dist/hooks/magic-context/read-session-raw.d.ts +20 -0
  17. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/tag-messages.d.ts +15 -0
  19. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/transform.d.ts +7 -0
  21. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  22. package/dist/{index-2haxh8h3.js → index-064v90e8.js} +1 -1
  23. package/dist/{index-awcftgmx.js → index-40ma8m0c.js} +3 -3
  24. package/dist/{index-y6xpzjzr.js → index-56tfs78r.js} +37 -27
  25. package/dist/{index-q7ywt6xt.js → index-6g1zq1sk.js} +2 -2
  26. package/dist/{index-3d5wnkq7.js → index-6tmf87w0.js} +1 -1
  27. package/dist/{index-yrrsp47d.js → index-dn2ke3b9.js} +17 -3
  28. package/dist/{index-t6j3qxnd.js → index-e5b61ty6.js} +1 -1
  29. package/dist/{index-0s8454t2.js → index-hjnrp6vy.js} +61 -15
  30. package/dist/{index-c9zrgcnt.js → index-j43m40zd.js} +1 -1
  31. package/dist/{index-7tdtpqrg.js → index-m8va3mma.js} +39 -6
  32. package/dist/{index-z928hmnp.js → index-mphkpyap.js} +1 -1
  33. package/dist/{index-n18sch77.js → index-r3bteyev.js} +5 -5
  34. package/dist/{index-axjgxeww.js → index-rp78nqvr.js} +166 -10
  35. package/dist/{index-z05n7702.js → index-sgchhbvy.js} +1 -1
  36. package/dist/{index-zzrzjnx5.js → index-va2g2q57.js} +3 -3
  37. package/dist/{index-jcr6pe7z.js → index-w55zp7kf.js} +1 -1
  38. package/dist/{index-szf8r0ba.js → index-xbbgcwd2.js} +1 -1
  39. package/dist/{index-ebsvmc5s.js → index-xyx2ge2y.js} +4 -4
  40. package/dist/{index-bhyksfyy.js → index-zn2n24yr.js} +3 -3
  41. package/dist/index.js +30 -28
  42. package/dist/{message-fts-rowid-map-9e1getgs.js → message-fts-rowid-map-4ksatb6f.js} +2 -2
  43. package/dist/{message-index-bounded-vaeqhp9w.js → message-index-bounded-whh5wv4a.js} +6 -6
  44. package/dist/{message-index-3g966xn7.js → message-index-ywx53y30.js} +6 -6
  45. package/dist/migration-worker.js +3 -3
  46. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  47. package/dist/{project-embedding-registry-rstzmb60.js → project-embedding-registry-t9fx6jwh.js} +4 -4
  48. package/dist/raw-ordinal-warmup-worker.js +6 -6
  49. package/dist/{read-session-chunk-z5gnc0zb.js → read-session-chunk-mqmkgdx0.js} +5 -3
  50. package/dist/{read-session-raw-s4amywnh.js → read-session-raw-dy2xxafq.js} +3 -1
  51. package/dist/{recomp-orchestrator-qwqeskhq.js → recomp-orchestrator-qwcz86r1.js} +13 -13
  52. package/dist/{search-archive-mfabzyn2.js → search-archive-8md3twv2.js} +4 -4
  53. package/dist/{search-84zfqeky.js → search-y2t97tbb.js} +10 -10
  54. package/dist/{send-session-notification-ygj4mja0.js → send-session-notification-kzazs7fy.js} +3 -3
  55. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  56. package/dist/{transform-postprocess-phase-hr1ntmjj.js → transform-postprocess-phase-ppm1tfa7.js} +13 -13
  57. package/dist/v2/auto-search-worker.js +4 -4
  58. package/dist/v2/chunk-embedding-write-worker.js +4 -4
  59. package/dist/v2/{compartment-chunk-embedding-tk6g4q80.js → compartment-chunk-embedding-5rmrn09z.js} +3 -3
  60. package/dist/v2/{context-y7wfvdve.js → context-10pj3bwd.js} +176 -27
  61. package/dist/v2/{embedding-backfill-w5qp7t28.js → embedding-backfill-r9mzt2eg.js} +5 -5
  62. package/dist/v2/{message-fts-rowid-map-pqk3a55v.js → message-fts-rowid-map-2s3ta05x.js} +2 -2
  63. package/dist/v2/{message-index-bounded-te303atj.js → message-index-bounded-f4269d3a.js} +5 -5
  64. package/dist/v2/{message-index-fz6b4jeh.js → message-index-v6g8mgn7.js} +5 -5
  65. package/dist/v2/migration-worker.js +3 -3
  66. package/dist/v2/{project-embedding-registry-e7zftfvj.js → project-embedding-registry-tgtmart7.js} +4 -4
  67. package/dist/v2/raw-ordinal-warmup-worker.js +6 -6
  68. package/dist/v2/{read-session-chunk-knvkq1hf.js → read-session-chunk-ym5zvexn.js} +4 -2
  69. package/dist/v2/{read-session-raw-ppjxnqk4.js → read-session-raw-484g8kf2.js} +3 -1
  70. package/dist/v2/{recomp-orchestrator-e8a4jpvr.js → recomp-orchestrator-b44s2snm.js} +10 -10
  71. package/dist/v2/{search-hav4dggf.js → search-75tf953m.js} +9 -9
  72. package/dist/v2/{search-archive-vrwgxv6z.js → search-archive-pmf2c1kb.js} +3 -3
  73. package/dist/v2/{send-session-notification-f8scq6ae.js → send-session-notification-gd21f5rq.js} +1 -1
  74. package/dist/v2/{server-e75vag9d.js → server-317f3x9y.js} +2 -2
  75. package/dist/v2/{server-wxrdher8.js → server-4frtg2z1.js} +1 -1
  76. package/dist/v2/{server-pw21ypwb.js → server-7dpnt0ys.js} +1 -1
  77. package/dist/v2/{server-7weh65vd.js → server-9zh78t8y.js} +59 -13
  78. package/dist/v2/{server-swvhxhxz.js → server-erk2bvdf.js} +39 -6
  79. package/dist/v2/{server-q5z0gag0.js → server-hnmm8yzq.js} +1 -1
  80. package/dist/v2/{server-5brp2rfn.js → server-jcsw05aa.js} +16 -2
  81. package/dist/v2/{server-6a8pxpxg.js → server-k46ec388.js} +3 -3
  82. package/dist/v2/{server-9xbbaekh.js → server-nmwhe524.js} +1 -1
  83. package/dist/v2/{server-tfawsj08.js → server-vjer2jdn.js} +5 -5
  84. package/dist/v2/{server-m6yyn961.js → server-w7x9wgm0.js} +2 -2
  85. package/dist/v2/{server-8j2e7t31.js → server-wj8h2q21.js} +1 -1
  86. package/dist/v2/server.js +2 -2
  87. package/dist/v2/{wrapup-orchestrator-ycs8y6n4.js → wrapup-orchestrator-gwww44st.js} +10 -10
  88. package/dist/{wrapup-orchestrator-f642w8n3.js → wrapup-orchestrator-a9r8r4sk.js} +14 -14
  89. package/package.json +1 -1
@@ -35,7 +35,7 @@ import {
35
35
  } from "./index-58e3y90n.js";
36
36
  import {
37
37
  cleanUserText2
38
- } from "./index-yrrsp47d.js";
38
+ } from "./index-dn2ke3b9.js";
39
39
  import {
40
40
  BoundedSessionMap
41
41
  } from "./index-cfaet9cg.js";
@@ -45,10 +45,10 @@ import {
45
45
  messageFtsOrdinalRangeIsMapped2,
46
46
  getMessageFtsRowidMapBackfillProgress2,
47
47
  deleteUnmappedMessageFtsRows2
48
- } from "./index-szf8r0ba.js";
48
+ } from "./index-xbbgcwd2.js";
49
49
  import {
50
50
  deleteChunkEmbedBackoffForSession2
51
- } from "./index-3d5wnkq7.js";
51
+ } from "./index-6tmf87w0.js";
52
52
  import {
53
53
  sameProjectDirectory
54
54
  } from "./index-knvkbfvh.js";
@@ -169,7 +169,7 @@ import {
169
169
  buildInMemoryTailRawMessages2,
170
170
  RawOrdinalsNotReady2,
171
171
  runSessionWarmupWorker
172
- } from "./index-7tdtpqrg.js";
172
+ } from "./index-m8va3mma.js";
173
173
  import {
174
174
  openCodeDbExists,
175
175
  withReadOnlySessionDb,
@@ -177,7 +177,7 @@ import {
177
177
  latestPersistedMessageForRecovery,
178
178
  latestRealUserTurnIdFromOpenCodeDb,
179
179
  findLastAssistantModelFromOpenCodeDb
180
- } from "./index-c9zrgcnt.js";
180
+ } from "./index-j43m40zd.js";
181
181
  import {
182
182
  expandToolPart,
183
183
  askAnswerLines,
@@ -302,7 +302,7 @@ import {
302
302
  readRawSessionMessageById2,
303
303
  readSessionChunk2,
304
304
  readRawSessionSeedTail2
305
- } from "./index-yrrsp47d.js";
305
+ } from "./index-dn2ke3b9.js";
306
306
  import {
307
307
  BoundedSessionMap,
308
308
  getMeasuredToolDefinitionTokens
@@ -320,7 +320,7 @@ import {
320
320
  runSqliteOptimize,
321
321
  openDatabase,
322
322
  openCurrentDatabase
323
- } from "./index-q7ywt6xt.js";
323
+ } from "./index-6g1zq1sk.js";
324
324
  import {
325
325
  registerOwnRpcServerInstance,
326
326
  rpcPortDir,
@@ -515,7 +515,7 @@ import {
515
515
  snapRangeToCompartments,
516
516
  getActiveCompartmentRun,
517
517
  startCompartmentAgent
518
- } from "./index-0s8454t2.js";
518
+ } from "./index-hjnrp6vy.js";
519
519
  import {
520
520
  embedPauseBySession,
521
521
  embedRunStateBySession,
@@ -543,7 +543,7 @@ import {
543
543
  embedSessionCompartmentChunks2,
544
544
  getEmbeddingCoverageStatus2,
545
545
  getAutoEmbeddingSessionCoverage2
546
- } from "./index-z05n7702.js";
546
+ } from "./index-sgchhbvy.js";
547
547
  import {
548
548
  SubcClient,
549
549
  connectionFileExists,
@@ -573,7 +573,7 @@ import {
573
573
  indexSingleMessage2,
574
574
  indexMessagesAfterOrdinal2,
575
575
  sweepOrphanedOpenCodeMessageIndexesCooperatively2
576
- } from "./index-awcftgmx.js";
576
+ } from "./index-40ma8m0c.js";
577
577
  import {
578
578
  renderUserFacingFailure,
579
579
  userFacingFailureCode,
@@ -617,7 +617,7 @@ import {
617
617
  readGitFileChangeTimesSince,
618
618
  verificationFileExists,
619
619
  normalizeVerificationFiles
620
- } from "./index-z928hmnp.js";
620
+ } from "./index-mphkpyap.js";
621
621
  import {
622
622
  registerNotificationSink2,
623
623
  pushNotification2,
@@ -637,7 +637,7 @@ import {
637
637
  } from "./index-4dhv7mqz.js";
638
638
  import {
639
639
  cosineSimilarity
640
- } from "./index-t6j3qxnd.js";
640
+ } from "./index-e5b61ty6.js";
641
641
  import {
642
642
  computeCueContentHash,
643
643
  hasMuralCueColumns,
@@ -683,17 +683,17 @@ import {
683
683
  resolveMemoriesByIdsForSearch2,
684
684
  unifiedSearch2,
685
685
  formatSearchResults2
686
- } from "./index-n18sch77.js";
686
+ } from "./index-r3bteyev.js";
687
687
  import {
688
688
  flushIgnoredMessages2,
689
689
  clearIgnoredMessages2,
690
690
  observeIgnoredNotificationEvent2,
691
691
  sendStatusNotification2
692
- } from "./index-jcr6pe7z.js";
692
+ } from "./index-w55zp7kf.js";
693
693
  import {
694
694
  setRecompStarting2,
695
695
  setRecompTerminal2
696
- } from "./index-zzrzjnx5.js";
696
+ } from "./index-va2g2q57.js";
697
697
  import {
698
698
  makeToolCompositeKey,
699
699
  searchMessageHistoryOffThread,
@@ -741,6 +741,7 @@ import {
741
741
  prewarmTagOwners,
742
742
  waitForTagOwners,
743
743
  stripStructuralNoise,
744
+ isLegacyForeignTextTag,
744
745
  withTransformTimingSummary,
745
746
  logTransformTiming,
746
747
  hasRecentAssistantCommit,
@@ -754,7 +755,7 @@ import {
754
755
  abortSessionFailClosed2,
755
756
  evaluateEmergencyFailClosed2,
756
757
  runPostTransformPhase2
757
- } from "./index-axjgxeww.js";
758
+ } from "./index-rp78nqvr.js";
758
759
  import {
759
760
  ANNOUNCEMENT_VERSION2,
760
761
  ANNOUNCEMENT_FEATURES2,
@@ -767,7 +768,7 @@ import {
767
768
  } from "./index-fmsr7v69.js";
768
769
  import {
769
770
  renderSearchArchiveOffThread2
770
- } from "./index-bhyksfyy.js";
771
+ } from "./index-zn2n24yr.js";
771
772
  import {
772
773
  COMPACTION_ENABLED_PATH,
773
774
  isDreamerRunnable,
@@ -16480,8 +16481,8 @@ function registerRpcHandlers(rpcServer, args) {
16480
16481
  const db = readDatabase();
16481
16482
  if (!db)
16482
16483
  return { ok: false, error: "db unavailable" };
16483
- const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-qwqeskhq.js"));
16484
- const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-ygj4mja0.js"));
16484
+ const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-qwcz86r1.js"));
16485
+ const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-kzazs7fy.js"));
16485
16486
  log2(`[rpc] recomp requested for session ${sessionId}`);
16486
16487
  if (!args.client && !args.hiddenCompletionExecutor) {
16487
16488
  return {
@@ -16565,7 +16566,7 @@ function registerRpcHandlers(rpcServer, args) {
16565
16566
  const db = readDatabase();
16566
16567
  if (!db)
16567
16568
  return { ok: false, error: "db unavailable" };
16568
- const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-f642w8n3.js"));
16569
+ const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-a9r8r4sk.js"));
16569
16570
  const model = liveSessionState.liveModelBySession.get(sessionId);
16570
16571
  const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
16571
16572
  const ctx = {
@@ -24400,6 +24401,7 @@ function createTransform(deps) {
24400
24401
  const startTime = performance.now();
24401
24402
  const historianRun = deps.resolveHistorianRun?.();
24402
24403
  const messages = output.messages;
24404
+ const foreignTextParts = deps.transformMode === "rust" ? undefined : deps.collectForeignTextParts?.(messages);
24403
24405
  const entryOrderForThinkingFit = messages.slice();
24404
24406
  const coveredHostInstructions = takeCoveredInstructionRows(messages);
24405
24407
  const passOutcome = createPassOutcome();
@@ -25064,6 +25066,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25064
25066
  }
25065
25067
  logTransformTiming(sessionId, "injectTemporalMarkers", tTemporal);
25066
25068
  }
25069
+ const replaysCaveman = !reducedMode && !compactionOff && deps.cavemanTextCompression?.enabled === true;
25067
25070
  let taggingSucceeded = false;
25068
25071
  let recoveryBatch = null;
25069
25072
  let recoveryNormalized = false;
@@ -25076,7 +25079,9 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25076
25079
  skipPrefixInjection: !ctxReduceCallable,
25077
25080
  servedMessages: messages,
25078
25081
  normalizeRestoredAssistantText: deps.normalizeRestoredAssistantText,
25079
- refreshSourceContents: deps.refreshSourceContents?.(sessionId)
25082
+ refreshSourceContents: deps.refreshSourceContents?.(sessionId),
25083
+ foreignTextParts,
25084
+ replaysCaveman
25080
25085
  });
25081
25086
  for (const [number, target] of tagged.targets)
25082
25087
  targets.set(number, target);
@@ -25102,7 +25107,9 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25102
25107
  scopedToolSweep,
25103
25108
  servedMessages: messages,
25104
25109
  normalizeRestoredAssistantText: deps.normalizeRestoredAssistantText,
25105
- refreshSourceContents: deps.refreshSourceContents?.(sessionId)
25110
+ refreshSourceContents: deps.refreshSourceContents?.(sessionId),
25111
+ foreignTextParts,
25112
+ replaysCaveman
25106
25113
  });
25107
25114
  targets = result.targets;
25108
25115
  if (thinkingRecovery.restore)
@@ -25158,7 +25165,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25158
25165
  const t3 = performance.now();
25159
25166
  const strippedStructuralNoise = canUseEmptySentinels && !compactionOff ? stripStructuralNoise(messages) : 0;
25160
25167
  logTransformTiming(sessionId, "stripStructuralNoise", t3, `strippedParts=${strippedStructuralNoise}`);
25161
- if (!reducedMode && !compactionOff && deps.cavemanTextCompression?.enabled) {
25168
+ if (replaysCaveman) {
25162
25169
  const tCavemanReplay = performance.now();
25163
25170
  const replayedCaveman = replayCavemanCompression(sessionId, db, targets, activeTags);
25164
25171
  if (replayedCaveman > 0) {
@@ -29005,23 +29012,26 @@ function createCtxReduceTool(deps) {
29005
29012
  dropIds = dropIds.filter((id) => !ctxReduceSelfStampIds.has(id));
29006
29013
  const tagStatusMap = new Map(allTags.map((tag) => [tag.tagNumber, tag.status]));
29007
29014
  const inertWhitespaceTagNumbers = new Set(getInertWhitespaceAssistantTagsByNumbers2(deps.db, sessionId, dropIds).map((tag) => tag.tagNumber));
29008
- const inertDropIds = [
29009
- ...new Set(dropIds.filter((id) => inertWhitespaceTagNumbers.has(id)))
29010
- ];
29011
- const inertNote = inertDropIds.length > 0 ? `Skipped: ${inertDropIds.map((id) => `§${id}§ is provider framing, nothing to reclaim`).join("; ")}.` : "";
29015
+ const foreignTextTagNumbers = new Set(dropIds.filter((id) => isLegacyForeignTextTag(sessionId, id)));
29016
+ const skippedTagNumbers = new Set([
29017
+ ...inertWhitespaceTagNumbers,
29018
+ ...foreignTextTagNumbers
29019
+ ]);
29020
+ const skippedDropIds = [...new Set(dropIds.filter((id) => skippedTagNumbers.has(id)))];
29021
+ const inertNote = skippedDropIds.length > 0 ? `Skipped: ${skippedDropIds.map((id) => inertWhitespaceTagNumbers.has(id) ? `§${id}§ is provider framing, nothing to reclaim` : `§${id}§ is another plugin's text, nothing to reclaim`).join("; ")}.` : "";
29012
29022
  const pendingOps = getPendingOps(deps.db, sessionId);
29013
29023
  const pendingMap = new Map(pendingOps.map((op) => [op.tagId, op.operation]));
29014
29024
  const conflicts = [];
29015
29025
  for (const id of dropIds) {
29016
- if (tagStatusMap.get(id) === "compacted" && !inertWhitespaceTagNumbers.has(id)) {
29026
+ if (tagStatusMap.get(id) === "compacted" && !skippedTagNumbers.has(id)) {
29017
29027
  conflicts.push(`§${id}§ is from before compaction`);
29018
29028
  }
29019
29029
  }
29020
29030
  if (conflicts.length > 0) {
29021
29031
  return `Error: Conflicting operations — ${conflicts.join("; ")}.`;
29022
29032
  }
29023
- const stampedCount = new Set(dropIds.filter((id) => !inertWhitespaceTagNumbers.has(id))).size;
29024
- dropIds = dropIds.filter((id) => !inertWhitespaceTagNumbers.has(id) && tagStatusMap.get(id) !== "dropped" && pendingMap.get(id) !== "drop");
29033
+ const stampedCount = new Set(dropIds.filter((id) => !skippedTagNumbers.has(id))).size;
29034
+ dropIds = dropIds.filter((id) => !skippedTagNumbers.has(id) && tagStatusMap.get(id) !== "dropped" && pendingMap.get(id) !== "drop");
29025
29035
  if (dropIds.length === 0) {
29026
29036
  const reply = formatCtxReduceReply(stampedCount, ctxReduceSelfStampCount);
29027
29037
  if (reply)
@@ -44,7 +44,7 @@ import {
44
44
  } from "./index-fb3zxn06.js";
45
45
  import {
46
46
  startMessageFtsRowidMapBackfill2
47
- } from "./index-szf8r0ba.js";
47
+ } from "./index-xbbgcwd2.js";
48
48
  import {
49
49
  LKG_SLOT_CHUNKS_DDL,
50
50
  SESSION_REPLAY_DECISIONS_DDL,
@@ -1279,7 +1279,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1279
1279
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1280
1280
  if (signal.aborted || !readsOpenCodeStore)
1281
1281
  return;
1282
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-z5gnc0zb.js"));
1282
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-mqmkgdx0.js"));
1283
1283
  const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-4qva0b4f.js"));
1284
1284
  if (signal.aborted)
1285
1285
  return;
@@ -13,7 +13,7 @@ import {
13
13
  } from "./index-wfybj1dw.js";
14
14
  import {
15
15
  messageFtsOrdinalRangeIsMapped2
16
- } from "./index-szf8r0ba.js";
16
+ } from "./index-xbbgcwd2.js";
17
17
 
18
18
  // src/features/magic-context/compartment-chunk-embedding.ts
19
19
  import { createHash } from "node:crypto";
@@ -70,13 +70,13 @@ import {
70
70
  readRawSeedTailFromDb2,
71
71
  readRawSessionBoundaryEndpointsFromDb2,
72
72
  prewarmRawSessionOrdinalsForDb
73
- } from "./index-7tdtpqrg.js";
73
+ } from "./index-m8va3mma.js";
74
74
  import {
75
75
  openCodeDbExists,
76
76
  withReadOnlySessionDb,
77
77
  getRawSessionMessageCountFromDb,
78
78
  getMessageTimesFromOpenCodeDb
79
- } from "./index-c9zrgcnt.js";
79
+ } from "./index-j43m40zd.js";
80
80
  import {
81
81
  getToolDefinitionMeasurementSignature,
82
82
  getMeasuredToolDefinitionTokens,
@@ -7068,6 +7068,20 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
7068
7068
  return null;
7069
7069
  return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb2(db, sessionId, messageId));
7070
7070
  }
7071
+ function resolveHistorianChunkStart2(sessionId, newest) {
7072
+ if (!newest)
7073
+ return 1;
7074
+ const fallback = newest.endMessage + 1;
7075
+ if (hasRawMessageProvider2(sessionId))
7076
+ return fallback;
7077
+ const endId = newest.endMessageId;
7078
+ if (typeof endId !== "string" || endId.length === 0)
7079
+ return fallback;
7080
+ const ordinal = readRawSessionMessageOrdinalById2(sessionId, endId);
7081
+ if (typeof ordinal !== "number" || !Number.isFinite(ordinal) || ordinal < 1)
7082
+ return fallback;
7083
+ return ordinal + 1;
7084
+ }
7071
7085
  function readRawSessionMessageOrderPosition(sessionId, messageId) {
7072
7086
  const provider = sessionProviders.get(sessionId)?.provider;
7073
7087
  if (provider) {
@@ -7568,4 +7582,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7568
7582
  });
7569
7583
  }
7570
7584
 
7571
- export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, askAnswerLines, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
7585
+ export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, askAnswerLines, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, resolveHistorianChunkStart2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
@@ -15,7 +15,7 @@ import {
15
15
  OpenAICompatibleEmbeddingProvider,
16
16
  getProjectEmbeddingSnapshot2,
17
17
  embedBatchForProject2
18
- } from "./index-z05n7702.js";
18
+ } from "./index-sgchhbvy.js";
19
19
  import {
20
20
  isEmbeddingHostBusy2
21
21
  } from "./index-qt1qqasc.js";
@@ -92,12 +92,13 @@ import {
92
92
  readRawSessionMessageIdOrdinalsForRange2,
93
93
  hasRawSessionMessageById2,
94
94
  readRawSessionMessageOrdinalById2,
95
+ resolveHistorianChunkStart2,
95
96
  compareRawSessionMessageOrder2,
96
97
  getRawSessionMessageCount2,
97
98
  getRawSessionTagKeysThrough2,
98
99
  getLegacyProtectedTailStartOrdinal2,
99
100
  readSessionChunk2
100
- } from "./index-yrrsp47d.js";
101
+ } from "./index-dn2ke3b9.js";
101
102
  import {
102
103
  getHarness2,
103
104
  harnessOwnsOpenCodeStore2
@@ -164,7 +165,7 @@ import {
164
165
  LATEST_SUPPORTED_VERSION,
165
166
  getPersistedSchemaVersion,
166
167
  openDatabase
167
- } from "./index-q7ywt6xt.js";
168
+ } from "./index-6g1zq1sk.js";
168
169
  import {
169
170
  inRootAsyncContext2,
170
171
  Database2,
@@ -185,8 +186,9 @@ import {
185
186
  isStrictGapHealingMessage2,
186
187
  noteRawSessionSummaryRowWritten2,
187
188
  RawOrdinalsNotReady2,
189
+ dropRawSessionOrdinalCheckpoints2,
188
190
  runSessionWarmupWorker
189
- } from "./index-7tdtpqrg.js";
191
+ } from "./index-m8va3mma.js";
190
192
  import {
191
193
  layoutLkgPrefix,
192
194
  assembleLkgPrefix,
@@ -224,7 +226,7 @@ import {
224
226
  getProjectChunkEmbeddingModelId2,
225
227
  getProjectEmbeddingMaxInputTokens2,
226
228
  embedItemsForProject2
227
- } from "./index-z05n7702.js";
229
+ } from "./index-sgchhbvy.js";
228
230
  import {
229
231
  buildCanonicalChunkTextFromFts2,
230
232
  buildCompartmentSummaryFallbackText2,
@@ -234,7 +236,7 @@ import {
234
236
  replaceCompartmentChunkEmbeddings2,
235
237
  deleteChunkEmbedBackoffForSession2,
236
238
  chunkWindowSourceKey2
237
- } from "./index-3d5wnkq7.js";
239
+ } from "./index-6tmf87w0.js";
238
240
  import {
239
241
  clearCompressionDepth,
240
242
  clearCompressionDepthRange,
@@ -250,7 +252,7 @@ import {
250
252
  toMessageIndexSource2,
251
253
  clearIndexedMessagesInTransaction2,
252
254
  indexSourcesAfterOrdinal2
253
- } from "./index-awcftgmx.js";
255
+ } from "./index-40ma8m0c.js";
254
256
  import {
255
257
  stripWellFormedLeadingTagPrefix,
256
258
  stripTagPrefix,
@@ -268,7 +270,7 @@ import {
268
270
  openCodeDbExists,
269
271
  withReadOnlySessionDb,
270
272
  getMessageTimesFromOpenCodeDb
271
- } from "./index-c9zrgcnt.js";
273
+ } from "./index-j43m40zd.js";
272
274
  import {
273
275
  renderUserFacingFailure,
274
276
  userFacingFailureCode,
@@ -277,7 +279,7 @@ import {
277
279
  insertPrimerCandidates,
278
280
  promoteSessionFactsDurable,
279
281
  embedPromotedFacts
280
- } from "./index-z928hmnp.js";
282
+ } from "./index-mphkpyap.js";
281
283
  import {
282
284
  pushNotification2
283
285
  } from "./index-x8a7jmkh.js";
@@ -297,7 +299,7 @@ import {
297
299
  } from "./index-qgh1qwjj.js";
298
300
  import {
299
301
  sendStatusNotification2
300
- } from "./index-jcr6pe7z.js";
302
+ } from "./index-w55zp7kf.js";
301
303
  import {
302
304
  isCompactionEnabled,
303
305
  migrateLegacyAgentEnabledInMemory
@@ -20115,6 +20117,24 @@ function shouldSuppressHistorianAlert(sessionId) {
20115
20117
  lastHistorianAlertBySession.set(sessionId, Date.now());
20116
20118
  return false;
20117
20119
  }
20120
+ function isServingOrdinalDriftSignal(detail) {
20121
+ if (!detail)
20122
+ return false;
20123
+ if (detail === "raw message count shrank")
20124
+ return true;
20125
+ return /(?:offset|protectedTailStart|eligibleEnd) ordinal \d+ id changed$/.test(detail);
20126
+ }
20127
+ function shouldRefuseStaleSnapshotForDrift(sessionId, detail) {
20128
+ if (hasRawMessageProvider2(sessionId) || !openCodeDbExists())
20129
+ return false;
20130
+ return isServingOrdinalDriftSignal(detail);
20131
+ }
20132
+ function dropDriftedServingOrdinalRanks(sessionId, detail) {
20133
+ if (hasRawMessageProvider2(sessionId) || !openCodeDbExists())
20134
+ return;
20135
+ withReadOnlySessionDb((reader) => dropRawSessionOrdinalCheckpoints2(reader, sessionId));
20136
+ sessionLog2(sessionId, `historian: dropped drifted ordinal checkpoints after exact-read disagreement (${detail}); the next run rebuilds them from a full scan`);
20137
+ }
20118
20138
  function findDanglingPublicationBoundary(sessionId, compartments, messageExists = hasRawSessionMessageById2) {
20119
20139
  for (const compartment of compartments) {
20120
20140
  if (!messageExists(sessionId, compartment.startMessageId)) {
@@ -20282,7 +20302,16 @@ async function runCompartmentAgent(deps) {
20282
20302
  }
20283
20303
  return;
20284
20304
  }
20285
- const offset = priorCompartments.length > 0 ? priorCompartments[priorCompartments.length - 1].endMessage + 1 : 1;
20305
+ let offset;
20306
+ try {
20307
+ offset = resolveHistorianChunkStart2(sessionId, priorCompartments[priorCompartments.length - 1] ?? null);
20308
+ } catch (error) {
20309
+ if (error instanceof RawOrdinalsNotReady2) {
20310
+ deferUntilOrdinalsReady("chunk start unreadable");
20311
+ return;
20312
+ }
20313
+ throw error;
20314
+ }
20286
20315
  let boundarySnapshot = deps.boundarySnapshot ?? null;
20287
20316
  if (!boundarySnapshot) {
20288
20317
  telemetry.failureReason = "missing protected-tail boundary snapshot";
@@ -20292,17 +20321,34 @@ async function runCompartmentAgent(deps) {
20292
20321
  }
20293
20322
  let validation = { ok: true };
20294
20323
  if (boundarySnapshot.rawRangeFingerprint.length > 0) {
20295
- const checked = await validateBoundarySnapshotOffThread({
20296
- db,
20297
- snapshot: boundarySnapshot,
20298
- currentContextLimit: deps.currentContextLimit ?? boundarySnapshot.contextLimit
20299
- });
20324
+ let checked;
20325
+ try {
20326
+ checked = await validateBoundarySnapshotOffThread({
20327
+ db,
20328
+ snapshot: boundarySnapshot,
20329
+ currentContextLimit: deps.currentContextLimit ?? boundarySnapshot.contextLimit
20330
+ });
20331
+ } catch (error) {
20332
+ if (error instanceof RawOrdinalsNotReady2) {
20333
+ deferUntilOrdinalsReady("boundary validation unreadable");
20334
+ return;
20335
+ }
20336
+ throw error;
20337
+ }
20300
20338
  if (checked.kind === "not-ready") {
20301
20339
  deferUntilOrdinalsReady(`boundary validation ${checked.reason}`);
20302
20340
  return;
20303
20341
  }
20304
20342
  validation = checked.result;
20305
20343
  }
20344
+ if (!validation.ok && validation.reason === "stale_snapshot" && shouldRefuseStaleSnapshotForDrift(sessionId, validation.detail)) {
20345
+ dropDriftedServingOrdinalRanks(sessionId, validation.detail ?? validation.reason ?? "stale_snapshot");
20346
+ sessionLog2(sessionId, `historian: refusing to publish over a stale protected-tail snapshot (was: ${validation.detail ?? "stale"}); ending the run without publishing`);
20347
+ telemetry.status = "noop";
20348
+ telemetry.failureReason = "stale_snapshot";
20349
+ rollbackDrainReservation();
20350
+ return;
20351
+ }
20306
20352
  if (!validation.ok && validation.reason === "stale_snapshot") {
20307
20353
  const refreshed = deps.refreshBoundarySnapshot ? deps.refreshBoundarySnapshot(boundarySnapshot, validation) : resolveOpenCodeProtectedTailBoundary({
20308
20354
  db,
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  forgetRawSessionOrdinalWatermark2,
21
21
  forgetRawSessionSummaryRows2
22
- } from "./index-7tdtpqrg.js";
22
+ } from "./index-m8va3mma.js";
23
23
  import {
24
24
  closeQuietly
25
25
  } from "./index-8ajstryz.js";
@@ -566,6 +566,20 @@ function survivingAnchor(db, set) {
566
566
  }
567
567
  var ordinalCheckpoints = new WeakMap;
568
568
  var ordinalSummarySeeds = new WeakMap;
569
+ function hasLateCommitBehindCheckpoint(db, sessionId, scan) {
570
+ const tail = scan.checkpoints?.at(-1);
571
+ if (!tail || scan.maxRowid === undefined)
572
+ return false;
573
+ const row = db.prepare(`SELECT COUNT(*) AS count FROM message
574
+ WHERE rowid > ? AND +session_id = ?
575
+ AND (time_created, id) <= (?, ?)
576
+ AND NOT (${EXCLUDED_ROW_SQL})`).get(scan.maxRowid, sessionId, tail.timeCreated, tail.id);
577
+ return typeof row?.count === "number" && row.count > 0;
578
+ }
579
+ function discardRetainedOrdinalRanks(db, sessionId) {
580
+ ordinalCheckpoints.get(db)?.delete(sessionId);
581
+ ordinalSummarySeeds.get(db)?.delete(sessionId);
582
+ }
569
583
  var ORDINAL_LOOKUP_LIMIT = 512;
570
584
  function currentOrdinalCheckpoints(db, sessionId) {
571
585
  const cached = ordinalCheckpoints.get(db)?.get(sessionId);
@@ -596,10 +610,16 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
596
610
  scan.sessionRows = points.at(-1)?.storedCount ?? 0;
597
611
  }
598
612
  const tail = points.at(-1);
599
- const rows = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message
613
+ const rows = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message
600
614
  WHERE session_id=?${tail ? " AND (time_created,id) > (?,?)" : ""}
601
615
  ORDER BY time_created,id${limit === undefined ? "" : ` LIMIT ${limit + 1}`}`).all(sessionId, ...tail ? [tail.timeCreated, tail.id] : []);
602
616
  ordinalJsonRowsRead += rows.length;
617
+ if (hasLateCommitBehindCheckpoint(db, sessionId, scan)) {
618
+ discardRetainedOrdinalRanks(db, sessionId);
619
+ if (isMainThread)
620
+ forgetRawSessionSummaryRows2(sessionId);
621
+ return false;
622
+ }
603
623
  if (limit !== undefined && rows.length > limit)
604
624
  return false;
605
625
  let total = scan.total ?? 0;
@@ -616,6 +636,13 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
616
636
  scan.checkpoints = points;
617
637
  scan.sessionRows += rows.length;
618
638
  scan.total = total;
639
+ if (rows.length > 0) {
640
+ let maxRowid = scan.maxRowid ?? -1;
641
+ for (const row of rows)
642
+ if (row.rowid > maxRowid)
643
+ maxRowid = row.rowid;
644
+ scan.maxRowid = maxRowid;
645
+ }
619
646
  return true;
620
647
  }
621
648
 
@@ -636,6 +663,10 @@ function rawOrdinalSummarySeed2(db, sessionId) {
636
663
  ids: [...new Set([...seed.scan.ids, ...writtenSummaryIds.get(sessionId) ?? []])]
637
664
  };
638
665
  }
666
+ function dropRawSessionOrdinalCheckpoints2(db, sessionId) {
667
+ discardRetainedOrdinalRanks(db, sessionId);
668
+ forgetRawSessionSummaryRows2(sessionId);
669
+ }
639
670
  function boundedOrdinalPrefix(db, sessionId, through) {
640
671
  const cached = currentOrdinalCheckpoints(db, sessionId);
641
672
  if (cached && through === null)
@@ -674,8 +705,7 @@ function boundedOrdinalPrefix(db, sessionId, through) {
674
705
  }
675
706
  function scanRawSessionSummaryRows2(db, sessionId, previous) {
676
707
  return withReadSnapshot(db, () => {
677
- if (previous?.checkpoints) {
678
- extendOrdinalCheckpoints(db, sessionId, previous);
708
+ if (previous?.checkpoints && extendOrdinalCheckpoints(db, sessionId, previous)) {
679
709
  return previous;
680
710
  }
681
711
  if (previous) {
@@ -707,12 +737,15 @@ function scanRawSessionSummaryRows2(db, sessionId, previous) {
707
737
  }
708
738
  anchors.sort((left, right) => right.rowid - left.rowid);
709
739
  anchors.length = Math.min(anchors.length, SUMMARY_ANCHOR_LIMIT);
710
- const keys = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
740
+ const keys = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
711
741
  ORDER BY time_created, id`).all(sessionId);
712
742
  const checkpoints = [];
713
743
  let total = 0;
744
+ let maxRowid;
714
745
  for (let index = 0;index < keys.length; index++) {
715
746
  const key = keys[index];
747
+ if (typeof key.rowid === "number")
748
+ maxRowid = maxRowid === undefined ? key.rowid : Math.max(maxRowid, key.rowid);
716
749
  if (key.excluded !== 1)
717
750
  total++;
718
751
  if (index % 256 === 255 || index === keys.length - 1)
@@ -723,7 +756,7 @@ function scanRawSessionSummaryRows2(db, sessionId, previous) {
723
756
  storedCount: index + 1
724
757
  });
725
758
  }
726
- return { anchors, ids, sessionRows, checkpoints, total };
759
+ return { anchors, ids, sessionRows, checkpoints, total, maxRowid };
727
760
  });
728
761
  }
729
762
  function getRawSessionSummaryEpoch2(sessionId) {
@@ -1297,4 +1330,4 @@ function recordFailure(key, sessionId, failure, detail) {
1297
1330
  log2(`[magic-context] WARN canonical ordinal warm-up failed for ${sessionId} (${failure}: ${detail}); counts remain bounded and callers must defer or retry`);
1298
1331
  }
1299
1332
 
1300
- export { areRustHistorianSyntheticParts2, isStrictGapHealingMessage2, isRawCompactionSummaryInfo2, readRawSessionMessagesFromDb2, readRawSessionMessagePageFromDb2, readRawSessionMessageSummaryPageFromDb2, countRawSessionMessageOrdinalsFromDb2, readRawSessionMessageIdOrdinalsForRangeFromDb2, readRawSessionMessageIdsAtOrdinalsFromDb2, readRawSessionMessageOrdinalPageFromDb2, countStoredRawSessionMessagesFromDb2, readRawSessionTailFromDb2, extractInMemoryMessageViews2, buildInMemoryTailRawMessages2, readRawSessionMessagePartsByIdFromDb2, forgetRawSessionOrdinalWatermark2, forgetRawSessionSummaryRows2, noteRawSessionSummaryRowWritten2, RawOrdinalsNotReady2, rawOrdinalSummarySeed2, scanRawSessionSummaryRows2, getRawSessionSummaryEpoch2, installRawSessionSummaryScan2, isRawSessionSummaryWarm2, readRawSessionMessageOrdinalByIdFromDb2, readRawSessionMessageByIdFromDb2, hasRawSessionMessageByIdFromDb2, readRawSeedTailFromDb2, readRawSessionBoundaryEndpointsFromDb2, runSessionWarmupWorker, prewarmRawSessionOrdinalsForDb };
1333
+ export { areRustHistorianSyntheticParts2, isStrictGapHealingMessage2, isRawCompactionSummaryInfo2, readRawSessionMessagesFromDb2, readRawSessionMessagePageFromDb2, readRawSessionMessageSummaryPageFromDb2, countRawSessionMessageOrdinalsFromDb2, readRawSessionMessageIdOrdinalsForRangeFromDb2, readRawSessionMessageIdsAtOrdinalsFromDb2, readRawSessionMessageOrdinalPageFromDb2, countStoredRawSessionMessagesFromDb2, readRawSessionTailFromDb2, extractInMemoryMessageViews2, buildInMemoryTailRawMessages2, readRawSessionMessagePartsByIdFromDb2, forgetRawSessionOrdinalWatermark2, forgetRawSessionSummaryRows2, noteRawSessionSummaryRowWritten2, RawOrdinalsNotReady2, rawOrdinalSummarySeed2, dropRawSessionOrdinalCheckpoints2, scanRawSessionSummaryRows2, getRawSessionSummaryEpoch2, installRawSessionSummaryScan2, isRawSessionSummaryWarm2, readRawSessionMessageOrdinalByIdFromDb2, readRawSessionMessageByIdFromDb2, hasRawSessionMessageByIdFromDb2, readRawSeedTailFromDb2, readRawSessionBoundaryEndpointsFromDb2, runSessionWarmupWorker, prewarmRawSessionOrdinalsForDb };
@@ -17,7 +17,7 @@ import {
17
17
  } from "./index-9q1g3c5q.js";
18
18
  import {
19
19
  embedTextForProject2
20
- } from "./index-z05n7702.js";
20
+ } from "./index-sgchhbvy.js";
21
21
  import {
22
22
  saveEmbeddingIfHashMatches
23
23
  } from "./index-4dhv7mqz.js";