@cortexkit/opencode-magic-context 0.49.13 → 0.49.14

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 (63) hide show
  1. package/dist/auto-search-worker.js +1 -1
  2. package/dist/chunk-embedding-write-worker.js +1 -1
  3. package/dist/{context-azqk0vfd.js → context-cpxqpkzv.js} +31 -13
  4. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  5. package/dist/features/magic-context/storage-tags.d.ts +2 -0
  6. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  7. package/dist/hooks/magic-context/apply-operations.d.ts +3 -1
  8. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  9. package/dist/hooks/magic-context/compartment-runner.d.ts +4 -0
  10. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -1
  12. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  13. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts +2 -0
  14. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts.map +1 -1
  15. package/dist/hooks/magic-context/pending-drop-eligibility.d.ts +14 -0
  16. package/dist/hooks/magic-context/pending-drop-eligibility.d.ts.map +1 -0
  17. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  19. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  21. package/dist/{index-wj6ht7nm.js → index-5591fg8y.js} +42 -16
  22. package/dist/{index-b16gpywn.js → index-944w16m0.js} +2 -2
  23. package/dist/{index-hnm8raee.js → index-kf4epshg.js} +2 -2
  24. package/dist/{index-2jr1smmh.js → index-t4q9zbbf.js} +5 -4
  25. package/dist/{index-v13skev1.js → index-thvnpfsv.js} +1 -1
  26. package/dist/{index-wz6mzzb1.js → index-tyckte5c.js} +3 -3
  27. package/dist/{index-sj89f3b0.js → index-w900fbhd.js} +100 -15
  28. package/dist/{index-aw1bh90w.js → index-xn6q9pg6.js} +2 -2
  29. package/dist/{index-qkd9zz0p.js → index-yxycg7fs.js} +1 -1
  30. package/dist/index.js +13 -13
  31. package/dist/{message-index-seaqpb7c.js → message-index-a6gztaqx.js} +3 -3
  32. package/dist/{message-index-bounded-vm64mqpq.js → message-index-bounded-vtgpq6b4.js} +3 -3
  33. package/dist/migration-worker.js +1 -1
  34. package/dist/raw-ordinal-warmup-worker.js +3 -3
  35. package/dist/{read-session-chunk-ax05f7gr.js → read-session-chunk-3ae3nfdn.js} +2 -2
  36. package/dist/{recomp-orchestrator-dmbeadwt.js → recomp-orchestrator-xqb9gwgm.js} +6 -6
  37. package/dist/{search-5yd5ytzs.js → search-deajrd90.js} +4 -4
  38. package/dist/{storage-tags-yygfb9c8.js → storage-tags-s5bg1ahx.js} +1 -1
  39. package/dist/{transform-postprocess-phase-72v86syx.js → transform-postprocess-phase-k5t63qm5.js} +6 -6
  40. package/dist/v2/auto-search-worker.js +1 -1
  41. package/dist/v2/chunk-embedding-write-worker.js +1 -1
  42. package/dist/v2/{context-w055w17c.js → context-k4jrq71s.js} +153 -27
  43. package/dist/v2/hidden-completion.d.ts +3 -2
  44. package/dist/v2/hidden-completion.d.ts.map +1 -1
  45. package/dist/v2/{message-index-bounded-wepg5723.js → message-index-bounded-rxxznd34.js} +3 -3
  46. package/dist/v2/{message-index-gcmd0ng0.js → message-index-f947qtbz.js} +3 -3
  47. package/dist/v2/migration-worker.js +1 -1
  48. package/dist/v2/raw-ordinal-warmup-worker.js +3 -3
  49. package/dist/v2/{read-session-chunk-hr3w5bjk.js → read-session-chunk-rq9nx1nn.js} +2 -2
  50. package/dist/v2/{recomp-orchestrator-ca7qt75a.js → recomp-orchestrator-1j1nqrrr.js} +5 -5
  51. package/dist/v2/{search-c86dcv14.js → search-n8wqxb1j.js} +4 -4
  52. package/dist/v2/{server-xh7jar6k.js → server-cfbr1s2x.js} +2 -2
  53. package/dist/v2/{server-t4prcjc1.js → server-e298hswg.js} +1 -1
  54. package/dist/v2/{server-m97brnat.js → server-ehyava47.js} +2 -2
  55. package/dist/v2/{server-b81w6sw3.js → server-fnqxt9j6.js} +5 -4
  56. package/dist/v2/{server-n8ch9683.js → server-kmbarfmn.js} +1 -1
  57. package/dist/v2/server.js +2 -2
  58. package/dist/v2/{storage-tags-a2gq6dw7.js → storage-tags-hcc2adpf.js} +1 -1
  59. package/dist/v2/{wrapup-orchestrator-e1a2w6jh.js → wrapup-orchestrator-hkv8apcc.js} +5 -5
  60. package/dist/{wrapup-orchestrator-2051r6qm.js → wrapup-orchestrator-kxqj4rwh.js} +7 -7
  61. package/package.json +1 -1
  62. /package/dist/{index-fwefky9w.js → index-mht7bq0z.js} +0 -0
  63. /package/dist/v2/{server-bxpwy6fy.js → server-atbc19ab.js} +0 -0
@@ -281,7 +281,7 @@ import {
281
281
  startCompartmentAgent,
282
282
  setRecompStarting2,
283
283
  setRecompTerminal2
284
- } from "./server-b81w6sw3.js";
284
+ } from "./server-fnqxt9j6.js";
285
285
  import {
286
286
  resolveHistorianModel2
287
287
  } from "./server-8cd2j99z.js";
@@ -306,7 +306,7 @@ import {
306
306
  openDatabaseAsync,
307
307
  isDatabasePersisted,
308
308
  getDatabasePersistenceError
309
- } from "./server-n8ch9683.js";
309
+ } from "./server-kmbarfmn.js";
310
310
  import {
311
311
  setHomeProjectPermission,
312
312
  shouldSkipHomeProjectMemory,
@@ -351,6 +351,7 @@ import {
351
351
  HYGIENE_PROVIDER_UNITS_VERSION,
352
352
  sessionDecisionCalibration,
353
353
  transitionSessionHygieneUnits,
354
+ readEpochFloorSnapshot,
354
355
  getProtectionWindowForSession,
355
356
  withReplayEnvelopeSnapshot,
356
357
  invalidateReplayEnvelopeSnapshot,
@@ -509,7 +510,7 @@ import {
509
510
  readRawSessionMessageById2,
510
511
  readSessionChunk2,
511
512
  readRawSessionSeedTail2
512
- } from "./server-m97brnat.js";
513
+ } from "./server-ehyava47.js";
513
514
  import {
514
515
  embedPauseBySession,
515
516
  embedRunStateBySession,
@@ -601,12 +602,13 @@ import {
601
602
  isMessageIndexReconciledThrough2,
602
603
  indexMessagesAfterOrdinal2,
603
604
  sweepOrphanedOpenCodeMessageIndexes2
604
- } from "./server-t4prcjc1.js";
605
+ } from "./server-e298hswg.js";
605
606
  import {
606
607
  stableStringify,
607
608
  getTemporalDecisions,
608
609
  observeTemporalDecisions,
609
610
  freezeTemporalDecisions,
611
+ tagRevisionKey,
610
612
  tagIdentityRevisionKey
611
613
  } from "./server-pwv4ezb0.js";
612
614
  import {
@@ -701,7 +703,7 @@ import {
701
703
  adoptNullOwnerToolTag2,
702
704
  getCandidateToolOwners2,
703
705
  pickNearestPriorOwner2
704
- } from "./server-bxpwy6fy.js";
706
+ } from "./server-atbc19ab.js";
705
707
  import"./server-51779zs2.js";
706
708
  import {
707
709
  isRawCompactionSummaryInfo2,
@@ -879,7 +881,7 @@ import {
879
881
  resolveMemoriesByIdsForSearch2,
880
882
  unifiedSearch2,
881
883
  formatSearchResults2
882
- } from "./server-xh7jar6k.js";
884
+ } from "./server-cfbr1s2x.js";
883
885
  import {
884
886
  resolvePromptContext2
885
887
  } from "./server-fmsr7v69.js";
@@ -3024,6 +3026,20 @@ function resolveTodowriteAvailability(sessionId) {
3024
3026
  }
3025
3027
 
3026
3028
  // src/hooks/magic-context/degraded-pass-refusal.ts
3029
+ function describeDegradedPassFailure(site, cause) {
3030
+ const details = [site];
3031
+ const seen = new Set;
3032
+ while (cause !== undefined && cause !== null && !seen.has(cause)) {
3033
+ seen.add(cause);
3034
+ const current = cause;
3035
+ const detail = typeof current.site === "string" ? current.site : typeof current.message === "string" ? current.message : String(cause);
3036
+ if (!details.includes(detail))
3037
+ details.push(detail);
3038
+ cause = current.cause;
3039
+ }
3040
+ return `Magic Context could not safely prepare this turn [${userFacingFailureCode("transform_pass_degraded")}] (${details.join(": ")}). This request was not sent.`;
3041
+ }
3042
+
3027
3043
  class DegradedPassRefusalError extends Error {
3028
3044
  site;
3029
3045
  code = "DEGRADED_PASS_REFUSAL";
@@ -3031,7 +3047,7 @@ class DegradedPassRefusalError extends Error {
3031
3047
  estimatedTokens;
3032
3048
  contextLimitTokens;
3033
3049
  constructor(site, options) {
3034
- super(renderUserFacingFailure("transform_pass_degraded", "plain"), {
3050
+ super(describeDegradedPassFailure(site, options?.cause), {
3035
3051
  cause: options?.cause
3036
3052
  });
3037
3053
  this.site = site;
@@ -5733,12 +5749,12 @@ function buildTriggerInMemoryTail(db, sessionId, messages) {
5733
5749
  function getProactiveCompartmentTriggerPercentage(executeThresholdPercentage) {
5734
5750
  return Math.max(0, executeThresholdPercentage - PROACTIVE_TRIGGER_OFFSET_PERCENTAGE);
5735
5751
  }
5736
- function estimateProjectedPostDropPercentage(db, sessionId, usage, activeTags, keepReasoningTokens, clearedReasoningThroughTag, canClearReasoning, liveBudgetCutoff) {
5752
+ function estimateProjectedPostDropPercentage(db, sessionId, usage, activeTags, keepReasoningTokens, clearedReasoningThroughTag, canClearReasoning, liveBudgetCutoff, eligiblePendingDropTagIds) {
5737
5753
  const totalActiveBytes = activeTags.reduce((sum, tag) => sum + tag.byteSize + tag.reasoningByteSize, 0);
5738
5754
  if (totalActiveBytes === 0)
5739
5755
  return null;
5740
5756
  let droppableBytes = 0;
5741
- const pendingDrops = getPendingOps(db, sessionId).filter((op) => op.operation === "drop");
5757
+ const pendingDrops = getPendingOps(db, sessionId).filter((op) => op.operation === "drop" && eligiblePendingDropTagIds?.has(op.tagId) === true);
5742
5758
  const pendingDropTagIds = new Set(pendingDrops.map((op) => op.tagId));
5743
5759
  if (pendingDrops.length > 0) {
5744
5760
  droppableBytes += activeTags.filter((tag) => pendingDropTagIds.has(tag.tagNumber)).reduce((sum, tag) => sum + tag.byteSize + tag.reasoningByteSize, 0);
@@ -5867,7 +5883,7 @@ function getUnsummarizedTailInfo(db, sessionId, triggerBudget, usage, executeThr
5867
5883
  function formatProjectedPostDropPercentage(value) {
5868
5884
  return value === null ? "none" : `${value.toFixed(1)}%`;
5869
5885
  }
5870
- function checkCompartmentTrigger(db, sessionId, sessionMeta, usage, _previousPercentage, executeThresholdPercentage, triggerBudget, keepReasoningTokens, commitClusterTrigger, preloadedActiveTags, contextLimit, inMemoryTail, taggerFloorOverride, reasoningProjection, reclaimRide) {
5886
+ function checkCompartmentTrigger(db, sessionId, sessionMeta, usage, _previousPercentage, executeThresholdPercentage, triggerBudget, keepReasoningTokens, commitClusterTrigger, preloadedActiveTags, contextLimit, inMemoryTail, taggerFloorOverride, reasoningProjection, reclaimRide, eligiblePendingDropTagIds) {
5871
5887
  if (sessionMeta.compartmentInProgress) {
5872
5888
  sessionLog2(sessionId, `compartment trigger: skipped — historian already in progress (usage=${usage.percentage.toFixed(1)}%)`);
5873
5889
  return { shouldFire: false };
@@ -5931,7 +5947,7 @@ function checkCompartmentTrigger(db, sessionId, sessionMeta, usage, _previousPer
5931
5947
  return { shouldFire: false };
5932
5948
  }
5933
5949
  const canClearReasoning = reasoningProjection?.canClearReasoning ?? modelAcceptsEmptyContent(reasoningProjection?.providerID);
5934
- const projectedPostDropPercentage = estimateProjectedPostDropPercentage(db, sessionId, usage, preloadedActiveTags ?? getActiveTagsBySession2(db, sessionId), keepReasoningTokens, sessionMeta.clearedReasoningThroughTag, canClearReasoning, reasoningProjection?.budgetCutoff);
5950
+ const projectedPostDropPercentage = estimateProjectedPostDropPercentage(db, sessionId, usage, preloadedActiveTags ?? getActiveTagsBySession2(db, sessionId), keepReasoningTokens, sessionMeta.clearedReasoningThroughTag, canClearReasoning, reasoningProjection?.budgetCutoff, eligiblePendingDropTagIds);
5935
5951
  const relativePostDropTarget = executeThresholdPercentage * POST_DROP_TARGET_RATIO;
5936
5952
  const rideLabel = reclaimRide ? reclaimRideLabel(reclaimRide) : "ride=none";
5937
5953
  const dropsCanLand = reclaimRide !== undefined && hasReclaimRide(reclaimRide);
@@ -6857,6 +6873,76 @@ function resolveHistoryBudgetTokens(historyBudgetPercentage, contextUsage, execu
6857
6873
  }) / 100) * historyBudgetPercentage);
6858
6874
  }
6859
6875
 
6876
+ // src/hooks/magic-context/pending-drop-eligibility.ts
6877
+ function pendingDropVeto(tagNumber, target, protectedTagIds) {
6878
+ if (protectedTagIds.has(tagNumber))
6879
+ return "protected";
6880
+ if (target?.thinkingDropProtected)
6881
+ return "active_thinking";
6882
+ return null;
6883
+ }
6884
+ function capturePendingDropEligibility(targets, protectedTagIds) {
6885
+ const eligible = new Set;
6886
+ for (const [number, target] of targets) {
6887
+ if (pendingDropVeto(number, target, protectedTagIds))
6888
+ continue;
6889
+ if (target.drop) {
6890
+ if (target.canDrop?.() === true)
6891
+ eligible.add(number);
6892
+ } else {
6893
+ const content = target.getContent?.();
6894
+ if (typeof content === "string" && content.length > `[dropped §${number}§]`.length)
6895
+ eligible.add(number);
6896
+ }
6897
+ }
6898
+ return eligible;
6899
+ }
6900
+ function pendingDropEligibilityKey(db, sessionId, input, protectionInputs) {
6901
+ const digests = input.map((message) => message.contentDigest?.() ?? null);
6902
+ if (digests.some((digest) => digest === null))
6903
+ return null;
6904
+ const revision = db.prepare("SELECT value FROM schema_migrations_meta WHERE key = ?").get(tagRevisionKey(sessionId));
6905
+ if (!revision?.value)
6906
+ return null;
6907
+ return JSON.stringify([
6908
+ input.map((message, index) => [
6909
+ message.id,
6910
+ message.role,
6911
+ message.synthetic,
6912
+ digests[index]
6913
+ ]),
6914
+ revision.value,
6915
+ readEpochFloorSnapshot(db, sessionId),
6916
+ sessionDecisionCalibration(db, sessionId).toolsRatio,
6917
+ loadProtectedTailMeta(db, sessionId),
6918
+ [...getMergedReasoningStrippedIds(db, sessionId)].sort(),
6919
+ [...getReasoningRemovalState(db, sessionId).messageIds].sort(),
6920
+ protectionInputs
6921
+ ]);
6922
+ }
6923
+ function createPendingDropEligibilityCache() {
6924
+ const sessions = new Map;
6925
+ return {
6926
+ read(sessionId, key) {
6927
+ const previous = sessions.get(sessionId);
6928
+ if (key === null || previous?.key !== key) {
6929
+ sessions.delete(sessionId);
6930
+ return;
6931
+ }
6932
+ return previous.eligible;
6933
+ },
6934
+ record(sessionId, key, eligible) {
6935
+ sessions.delete(sessionId);
6936
+ if (key === null)
6937
+ return;
6938
+ const oldest = sessions.keys().next().value;
6939
+ if (sessions.size >= 64 && oldest !== undefined)
6940
+ sessions.delete(oldest);
6941
+ sessions.set(sessionId, { key, eligible: new Set(eligible) });
6942
+ }
6943
+ };
6944
+ }
6945
+
6860
6946
  // src/hooks/magic-context/apply-operations.ts
6861
6947
  var RECENT_TOOL_SKELETON_WINDOW = 20;
6862
6948
  function buildReplacementContent(tagId) {
@@ -6977,7 +7063,7 @@ function renderConvertedToolSkeletons(targets, converted) {
6977
7063
  }
6978
7064
  return didMutate;
6979
7065
  }
6980
- function applyPendingOperations(sessionId, db, targets, protectedTagIds, preloadedTags, preloadedPendingOps, syntheticPendingOps = [], editMarkerTagIds = new Set, onTagReduced, onBatchComplete) {
7066
+ function applyPendingOperations(sessionId, db, targets, protectedTagIds, preloadedTags, preloadedPendingOps, syntheticPendingOps = [], editMarkerTagIds = new Set, onTagReduced, onBatchComplete, onEligibilitySnapshot) {
6981
7067
  let didMutateMessage = false;
6982
7068
  let diagnostics;
6983
7069
  const reject = (reason) => {
@@ -6992,6 +7078,7 @@ function applyPendingOperations(sessionId, db, targets, protectedTagIds, preload
6992
7078
  }).immediate();
6993
7079
  {
6994
7080
  const pendingOps = preloadedPendingOps ?? getPendingOps(db, sessionId);
7081
+ onEligibilitySnapshot?.(capturePendingDropEligibility(targets, protectedTagIds));
6995
7082
  const tags = preloadedTags ?? getTagsByNumbers2(db, sessionId, [
6996
7083
  ...new Set([
6997
7084
  ...pendingOps.map((op) => op.tagId),
@@ -7022,13 +7109,10 @@ function applyPendingOperations(sessionId, db, targets, protectedTagIds, preload
7022
7109
  removePendingOp(db, sessionId, pendingOp.tagId);
7023
7110
  continue;
7024
7111
  }
7025
- if (protectedTagIds.has(pendingOp.tagId)) {
7026
- reject("protected");
7027
- continue;
7028
- }
7029
7112
  const target = targets.get(pendingOp.tagId);
7030
- if (target?.thinkingDropProtected) {
7031
- reject("active_thinking");
7113
+ const veto = pendingDropVeto(pendingOp.tagId, target, protectedTagIds);
7114
+ if (veto) {
7115
+ reject(veto);
7032
7116
  continue;
7033
7117
  }
7034
7118
  const isToolTag = tagTypeById.get(pendingOp.tagId) === "tool";
@@ -9996,7 +10080,7 @@ async function runPostTransformPhase(args) {
9996
10080
  pendingOpsDidMutate = applyPendingOperations(args.sessionId, args.db, newTargets, new Set([
9997
10081
  ...args.contextUsage.percentage >= 95 ? [] : args.protectedTagIds,
9998
10082
  ...protectedToolTags
9999
- ]), undefined, pendingOps, [], new Set, (reduction) => droppedTokenReductions.push(reduction));
10083
+ ]), undefined, pendingOps, [], new Set, (reduction) => droppedTokenReductions.push(reduction), undefined, args.onPendingDropEligibility);
10000
10084
  if (pendingOpsDidMutate) {
10001
10085
  droppedCount += pendingOps.length;
10002
10086
  for (const pendingOp of pendingOps) {
@@ -17759,6 +17843,13 @@ async function runCompartmentPhaseImpl(args) {
17759
17843
  return snapshot !== null && hasRunnableCompartmentWindow(snapshot);
17760
17844
  }
17761
17845
  async function awaitCompartmentRun(activeRun, reason) {
17846
+ await Promise.resolve();
17847
+ if (activeRun.inlineJoinTimedOutBudgetMs !== undefined && !activeRun.settled) {
17848
+ historianJoinTimedOut = true;
17849
+ historianJoinBudgetMs = activeRun.inlineJoinTimedOutBudgetMs;
17850
+ sessionLog2(args.sessionId, "transform: compartment inline join budget already exhausted for this run — not waiting again");
17851
+ return "timed_out";
17852
+ }
17762
17853
  sessionLog2(args.sessionId, reason);
17763
17854
  const timeoutMs = resolveHistorianInlineJoinBudget(args.historianTimeoutMs);
17764
17855
  historianJoinBudgetMs = timeoutMs;
@@ -17774,6 +17865,7 @@ async function runCompartmentPhaseImpl(args) {
17774
17865
  clearTimeout(timer);
17775
17866
  }
17776
17867
  if (result === "timeout") {
17868
+ activeRun.inlineJoinTimedOutBudgetMs = timeoutMs;
17777
17869
  historianJoinTimedOut = true;
17778
17870
  sessionLog2(args.sessionId, `transform: compartment await timed out after ${timeoutMs}ms — proceeding without waiting`);
17779
17871
  return "timed_out";
@@ -18052,6 +18144,7 @@ function createTransform(deps) {
18052
18144
  memorySyncRequestedSessions: deps.rustMemorySyncRequestedSessions
18053
18145
  }) : undefined;
18054
18146
  let entryReuse;
18147
+ const pendingDropEligibility = createPendingDropEligibilityCache();
18055
18148
  const projectEntry = createLkgEntryProjector({
18056
18149
  onReuse: (stats) => {
18057
18150
  entryReuse = stats;
@@ -18622,6 +18715,18 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
18622
18715
  prewarmTagOwners(db, sessionId, ownerRatio);
18623
18716
  const tagOwnersReady = isTagOwnerSummaryReady2(db, sessionId, ownerRatio);
18624
18717
  let triggerBoundarySnapshot;
18718
+ let dropProjectionEmergency = contextUsageEarly.percentage >= 95;
18719
+ const dropProjectionKey = () => pendingDropEligibilityKey(db, sessionId, lkgInput, {
18720
+ currentTurnId,
18721
+ model: modelForBudget,
18722
+ protectedTokens: deps.protectedTokens,
18723
+ protectedTokenTierOverrides: deps.protectedTokenTierOverrides,
18724
+ protectedTools: deps.protectedTools,
18725
+ keepReasoningTokens: deps.keepReasoningTokens,
18726
+ usableSoft: windowGeometry?.usableSoft ?? boundaryContextLimit,
18727
+ emergency: dropProjectionEmergency,
18728
+ clearedReasoningThroughTag: sessionMeta?.clearedReasoningThroughTag
18729
+ });
18625
18730
  if (fullFeatureMode && !compactionOff && historianRunnable && tagOwnersReady && !sessionMeta.compartmentInProgress) {
18626
18731
  const tTrigger = performance.now();
18627
18732
  try {
@@ -18634,7 +18739,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
18634
18739
  force: contextUsageEarly.percentage >= forceMaterializationPercentage && (contextUsageEarly.percentage >= 95 || getEmergencyInputSample(db, sessionId) === 0),
18635
18740
  explicitFlush: deps.pendingMaterializationSessions.has(sessionId),
18636
18741
  publishedHistory: isCacheBusting
18637
- });
18742
+ }, pendingDropEligibility.read(sessionId, dropProjectionKey()));
18638
18743
  if (triggerResult.shouldFire) {
18639
18744
  sessionLog2(sessionId, `compartment trigger: firing (reason=${triggerResult.reason})`);
18640
18745
  updateSessionMeta(db, sessionId, { compartmentInProgress: true });
@@ -18940,6 +19045,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
18940
19045
  const protectedTagIds = protectedTagNumbers;
18941
19046
  const protectedCutoff = protectionWindow.cutoff;
18942
19047
  const tPostProcess = performance.now();
19048
+ dropProjectionEmergency = thinkingFitRetries.has(sessionId) || contextUsage.percentage >= 95;
18943
19049
  const postTransformResult = await runPostTransformPhase({
18944
19050
  opencode2: deps.storeGeneration === "v2",
18945
19051
  normalizeRecoveryTail,
@@ -18997,6 +19103,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
18997
19103
  lastHeuristicsTurnId: deps.lastHeuristicsTurnId,
18998
19104
  keepReasoningTokens: resolveKeepReasoningTokens(deps.keepReasoningTokens, currentModelKeyForBoundary),
18999
19105
  protectedTagIds,
19106
+ onPendingDropEligibility: (eligible) => pendingDropEligibility.record(sessionId, dropProjectionKey(), eligible),
19000
19107
  protectedTagNumbers,
19001
19108
  protectedCutoff,
19002
19109
  protectedCount: protectionWindow.status.protectedCount,
@@ -22617,7 +22724,7 @@ function registerRpcHandlers(rpcServer, args) {
22617
22724
  const db = readDatabase();
22618
22725
  if (!db)
22619
22726
  return { ok: false, error: "db unavailable" };
22620
- const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-ca7qt75a.js"));
22727
+ const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-1j1nqrrr.js"));
22621
22728
  const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-8ghn9tnv.js"));
22622
22729
  log2(`[rpc] recomp requested for session ${sessionId}`);
22623
22730
  if (!args.client && !args.hiddenCompletionExecutor) {
@@ -22702,7 +22809,7 @@ function registerRpcHandlers(rpcServer, args) {
22702
22809
  const db = readDatabase();
22703
22810
  if (!db)
22704
22811
  return { ok: false, error: "db unavailable" };
22705
- const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-e1a2w6jh.js"));
22812
+ const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-hkv8apcc.js"));
22706
22813
  const model = liveSessionState.liveModelBySession.get(sessionId);
22707
22814
  const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
22708
22815
  const ctx = {
@@ -25553,7 +25660,7 @@ function toolResultText(result) {
25553
25660
  `);
25554
25661
  return text.length > 0 ? text : undefined;
25555
25662
  }
25556
- function toolLoopMessages(attempt) {
25663
+ function toolLoopMessages(attempt, rows) {
25557
25664
  const messages = attempt.observedMessages ?? [];
25558
25665
  const results = new Map;
25559
25666
  for (const message of messages) {
@@ -25571,10 +25678,28 @@ function toolLoopMessages(attempt) {
25571
25678
  });
25572
25679
  }
25573
25680
  }
25574
- return messages.flatMap((message) => {
25681
+ const transcript = rows ? rows.map((row) => ({ role: "assistant", content: row.data.content ?? [] })) : messages;
25682
+ return transcript.flatMap((message) => {
25575
25683
  if (message.role !== "assistant")
25576
25684
  return [];
25577
25685
  const parts = message.content.flatMap((part) => {
25686
+ if (part.type === "text" && typeof part.text === "string")
25687
+ return [{ type: "text", text: part.text }];
25688
+ if (part.type === "tool" && typeof part.name === "string" && typeof part.state === "object" && part.state !== null) {
25689
+ const state = part.state;
25690
+ const output = state.status === "completed" ? toolResultText({ value: state.content }) : undefined;
25691
+ return [
25692
+ {
25693
+ type: "tool",
25694
+ tool: part.name,
25695
+ state: {
25696
+ status: state.status,
25697
+ input: state.input,
25698
+ ...output === undefined ? {} : { output }
25699
+ }
25700
+ }
25701
+ ];
25702
+ }
25578
25703
  if (part.type !== "tool-call" || typeof part.id !== "string" || typeof part.name !== "string")
25579
25704
  return [];
25580
25705
  const result = results.get(part.id);
@@ -25762,7 +25887,7 @@ async function createV2HiddenCompletionExecutor(host, options) {
25762
25887
  const entry = rows.find((row) => row && typeof row === "object" && row.providerID === model.providerID && row.id === model.modelID);
25763
25888
  if (!entry)
25764
25889
  return model;
25765
- if (entry.variants && typeof entry.variants === "object" && Object.hasOwn(entry.variants, model.variant))
25890
+ if (Array.isArray(entry.variants) ? entry.variants.some((variant) => variant?.id === model.variant) : entry.variants && typeof entry.variants === "object" && Object.hasOwn(entry.variants, model.variant))
25766
25891
  return model;
25767
25892
  const key = `${model.providerID}/${model.modelID}:${model.variant}`;
25768
25893
  if (!warnedVariants.has(key)) {
@@ -26008,7 +26133,7 @@ async function createV2HiddenCompletionExecutor(host, options) {
26008
26133
  run.completion = {
26009
26134
  text,
26010
26135
  tokenLog: runTokenLog(tokens, run.identity.maxOutputTokens, row.data.finish),
26011
- ...hiddenToolLoop(run.identity) ? { messages: toolLoopMessages(attempt) } : {},
26136
+ ...hiddenToolLoop(run.identity) ? { messages: toolLoopMessages(attempt, steps) } : {},
26012
26137
  reasoning: text ? null : assistantReasoning(row),
26013
26138
  usage: reportedUsage ? usage : meter(system, promptText(request), text ?? ""),
26014
26139
  lengthCapped: ["length", "max_tokens"].includes(row.data.finish ?? ""),
@@ -30272,7 +30397,8 @@ function currentManifest(text) {
30272
30397
  return start < 0 ? text : text.slice(start);
30273
30398
  }
30274
30399
  function parseMapMemoriesCompletion(text, completion, expectedIds) {
30275
- return validateMapMemoriesManifest(currentManifest(assistantText2(completion.messages ?? []) || text), expectedIds);
30400
+ const source = /<mappings\b/i.test(text) ? text : assistantText2(completion.messages ?? []) || text;
30401
+ return validateMapMemoriesManifest(currentManifest(source), expectedIds);
30276
30402
  }
30277
30403
  function validateClientMapMemories(messages, expectedIds) {
30278
30404
  if (hasLengthCappedOutput(messages)) {
@@ -2,6 +2,7 @@ import type { HiddenCompletionExecutor } from "../hooks/magic-context/compartmen
2
2
  import type { Database } from "../shared/sqlite";
3
3
  import { type HiddenChildHost, type HiddenChildRows } from "./hidden-child-record";
4
4
  import { type HiddenChildAttempt, type HiddenChildHook } from "./hooks/hidden-child";
5
+ import type { StoreRow } from "./store-reader";
5
6
  export type { HiddenChildHost, HiddenChildRows } from "./hidden-child-record";
6
7
  export interface V2HiddenCompletionOptions {
7
8
  db: Database;
@@ -32,12 +33,12 @@ export interface V2HiddenCompletionOptions {
32
33
  historianTemperature?: () => number | undefined;
33
34
  }
34
35
  /**
35
- * Rebuild the child's tool calls in the host message shape the dreamer validators read
36
+ * Rebuild the child's assistant text and tool calls in the host message shape the dreamer validators read
36
37
  * (`state.status`, `state.input`, `state.output`), matching what the OpenCode 1 transport
37
38
  * returns. Curate counts an operation as applied only from its result text, so the text
38
39
  * has to survive this conversion.
39
40
  */
40
- export declare function toolLoopMessages(attempt: HiddenChildAttempt): unknown[];
41
+ export declare function toolLoopMessages(attempt: HiddenChildAttempt, rows?: readonly StoreRow<"assistant">[]): unknown[];
41
42
  /**
42
43
  * A terminal provider or model-resolution failure persisted by the host, as opposed to an unsettled
43
44
  * dispatch error, timeout, or abort. The type keeps lifecycle handling independent of provider
@@ -1 +1 @@
1
- {"version":3,"file":"hidden-completion.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-completion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAER,wBAAwB,EAG3B,MAAM,iDAAiD,CAAC;AASzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAGH,KAAK,eAAe,EAIpB,KAAK,eAAe,EAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGH,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEvB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI9E,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,eAAe,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnD;AAwFD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,EAAE,CA6CvE;AAoBD;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO;CAKlE;AA4GD,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,CAAC,cAAc,CAGpF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,MAAM,wBAAwB,GAAG,SAAS,GACpD,wBAAwB,CAiB1B;AAED,wBAAsB,gCAAgC,CAClD,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,yBAAyB,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAyenC"}
1
+ {"version":3,"file":"hidden-completion.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-completion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAER,wBAAwB,EAG3B,MAAM,iDAAiD,CAAC;AASzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAGH,KAAK,eAAe,EAIpB,KAAK,eAAe,EAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGH,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI9E,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,eAAe,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4FAA4F;IAC5F,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnD;AAwFD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAAE,GACxC,OAAO,EAAE,CA+EX;AAoBD;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO;CAKlE;AA4GD,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,CAAC,cAAc,CAGpF,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,MAAM,wBAAwB,GAAG,SAAS,GACpD,wBAAwB,CAiB1B;AAED,wBAAsB,gCAAgC,CAClD,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,yBAAyB,GACnC,OAAO,CAAC,wBAAwB,CAAC,CA2enC"}
@@ -4,7 +4,7 @@ import {
4
4
  yieldIndexChunk2
5
5
  } from "./server-wafzvyhg.js";
6
6
  import"./server-1zx87sdm.js";
7
- import"./server-bxpwy6fy.js";
7
+ import"./server-atbc19ab.js";
8
8
  import"./server-0ppsweh6.js";
9
9
  import"./server-pavzsdc6.js";
10
10
  import"./server-f2xf5gcb.js";
@@ -14,7 +14,7 @@ import"./server-51779zs2.js";
14
14
  import"./server-prg55b7k.js";
15
15
  import"./server-2ra6pwf3.js";
16
16
  import"./server-d8tj10db.js";
17
- import"./server-m97brnat.js";
17
+ import"./server-ehyava47.js";
18
18
  import"./server-zs8d0s3b.js";
19
19
  import {
20
20
  MESSAGE_INDEX_MAX_FTS_BYTES2,
@@ -23,7 +23,7 @@ import {
23
23
  markMessageIndexDirty2,
24
24
  getIndexableContent2,
25
25
  indexSingleMessage2
26
- } from "./server-t4prcjc1.js";
26
+ } from "./server-e298hswg.js";
27
27
  import"./server-yrvqaswb.js";
28
28
  import"./server-da07v4xp.js";
29
29
  import"./server-rrqpvwqd.js";
@@ -17,9 +17,9 @@ import {
17
17
  indexMessagesAfterOrdinal2,
18
18
  indexSourcesAfterOrdinal2,
19
19
  sweepOrphanedOpenCodeMessageIndexes2
20
- } from "./server-t4prcjc1.js";
21
- import"./server-m97brnat.js";
22
- import"./server-bxpwy6fy.js";
20
+ } from "./server-e298hswg.js";
21
+ import"./server-ehyava47.js";
22
+ import"./server-atbc19ab.js";
23
23
  import"./server-1zx87sdm.js";
24
24
  import"./server-d8tj10db.js";
25
25
  import"./server-prg55b7k.js";
@@ -18,7 +18,7 @@ import"./server-fb3zxn06.js";
18
18
  import {
19
19
  setSqlitePragmaConfig,
20
20
  initializeDatabase
21
- } from "./server-n8ch9683.js";
21
+ } from "./server-kmbarfmn.js";
22
22
  import"./server-yrvqaswb.js";
23
23
  import"./server-0ppsweh6.js";
24
24
  import"./server-zs8d0s3b.js";
@@ -35,7 +35,7 @@ try {
35
35
  { configureContextDatabasePragmas }
36
36
  ] = await Promise.all([
37
37
  import("./harness-e4avh192.js"),
38
- import("./message-index-gcmd0ng0.js"),
38
+ import("./message-index-f947qtbz.js"),
39
39
  import("./sqlite-context-pragmas-mv9jqwjh.js")
40
40
  ]);
41
41
  setHarness(input.harness ?? "opencode");
@@ -49,7 +49,7 @@ try {
49
49
  const { setHarness } = await import("./harness-e4avh192.js");
50
50
  setHarness(input.harness ?? "opencode");
51
51
  const [{ indexMessageInShortChunks }, { configureContextDatabasePragmas }] = await Promise.all([
52
- import("./message-index-bounded-wepg5723.js"),
52
+ import("./message-index-bounded-rxxznd34.js"),
53
53
  import("./sqlite-context-pragmas-mv9jqwjh.js")
54
54
  ]);
55
55
  configureContextDatabasePragmas(db);
@@ -59,7 +59,7 @@ try {
59
59
  const result = await indexMessageInShortChunks(writer, input.sessionId, message, input, () => !cancellation || Atomics.load(cancellation, 0) === 0);
60
60
  reply = { kind: "indexed", inserted: result.inserted, measurements: result.measurements };
61
61
  } else if (input.tagRatio !== undefined) {
62
- const { scanTagOwnerSummary, scanTagOwnerDelta } = await import("./storage-tags-a2gq6dw7.js");
62
+ const { scanTagOwnerSummary, scanTagOwnerDelta } = await import("./storage-tags-hcc2adpf.js");
63
63
  const delta = input.tagState ? scanTagOwnerDelta(db, input.sessionId, input.tagState) : null;
64
64
  if (delta)
65
65
  reply = { kind: "tag-delta", delta };
@@ -35,8 +35,8 @@ import {
35
35
  readSessionChunk2,
36
36
  getRawSessionMessageIdsThrough2,
37
37
  readRawSessionSeedTail2
38
- } from "./server-m97brnat.js";
39
- import"./server-bxpwy6fy.js";
38
+ } from "./server-ehyava47.js";
39
+ import"./server-atbc19ab.js";
40
40
  import"./server-1zx87sdm.js";
41
41
  import"./server-d8tj10db.js";
42
42
  import"./server-prg55b7k.js";
@@ -7,10 +7,10 @@ import {
7
7
  setRecompTerminal2,
8
8
  buildRecompDeps2,
9
9
  runManagedRecomp2
10
- } from "./server-b81w6sw3.js";
10
+ } from "./server-fnqxt9j6.js";
11
11
  import"./server-05xjtq6c.js";
12
12
  import"./server-6cdy4rc0.js";
13
- import"./server-t4prcjc1.js";
13
+ import"./server-e298hswg.js";
14
14
  import"./server-ef89gdsx.js";
15
15
  import"./server-n78avt2p.js";
16
16
  import"./server-hek6z3w6.js";
@@ -18,8 +18,8 @@ import"./server-4dhv7mqz.js";
18
18
  import"./server-34kwfsr4.js";
19
19
  import"./server-vbe4se57.js";
20
20
  import"./server-qt1qqasc.js";
21
- import"./server-m97brnat.js";
22
- import"./server-bxpwy6fy.js";
21
+ import"./server-ehyava47.js";
22
+ import"./server-atbc19ab.js";
23
23
  import"./server-1zx87sdm.js";
24
24
  import"./server-d8tj10db.js";
25
25
  import"./server-prg55b7k.js";
@@ -33,7 +33,7 @@ import"./server-th4y11y7.js";
33
33
  import"./server-4gn3z5an.js";
34
34
  import"./server-qhfvvfxj.js";
35
35
  import"./server-rrqpvwqd.js";
36
- import"./server-n8ch9683.js";
36
+ import"./server-kmbarfmn.js";
37
37
  import"./server-fb3zxn06.js";
38
38
  import"./server-k2bzedxk.js";
39
39
  import"./server-fr0wbhdn.js";
@@ -5,16 +5,16 @@ import {
5
5
  resolveMemoriesByIdsForSearch2,
6
6
  unifiedSearch2,
7
7
  formatSearchResults2
8
- } from "./server-xh7jar6k.js";
8
+ } from "./server-cfbr1s2x.js";
9
9
  import"./server-6cdy4rc0.js";
10
- import"./server-t4prcjc1.js";
10
+ import"./server-e298hswg.js";
11
11
  import"./server-ef89gdsx.js";
12
12
  import"./server-n78avt2p.js";
13
13
  import"./server-hek6z3w6.js";
14
14
  import"./server-4dhv7mqz.js";
15
15
  import"./server-qt1qqasc.js";
16
- import"./server-m97brnat.js";
17
- import"./server-bxpwy6fy.js";
16
+ import"./server-ehyava47.js";
17
+ import"./server-atbc19ab.js";
18
18
  import"./server-1zx87sdm.js";
19
19
  import"./server-d8tj10db.js";
20
20
  import"./server-prg55b7k.js";
@@ -64,10 +64,10 @@ import {
64
64
  } from "./server-6cdy4rc0.js";
65
65
  import {
66
66
  isRecord
67
- } from "./server-bxpwy6fy.js";
67
+ } from "./server-atbc19ab.js";
68
68
  import {
69
69
  getIndexedMessageCorpusSize2
70
- } from "./server-t4prcjc1.js";
70
+ } from "./server-e298hswg.js";
71
71
  import {
72
72
  resolveWorkspaceShareCategories,
73
73
  resolveWorkspaceIdentitySet,
@@ -23,7 +23,7 @@ import {
23
23
  } from "./server-pwv4ezb0.js";
24
24
  import {
25
25
  cleanUserText2
26
- } from "./server-m97brnat.js";
26
+ } from "./server-ehyava47.js";
27
27
  import {
28
28
  recordMessageFtsRowid,
29
29
  recordIndexedMessageTime,
@@ -23,7 +23,7 @@ import {
23
23
  TAG_SELECT_COLUMNS2,
24
24
  getCandidateToolOwners2,
25
25
  pickNearestPriorOwner2
26
- } from "./server-bxpwy6fy.js";
26
+ } from "./server-atbc19ab.js";
27
27
  import {
28
28
  OMO_INTERNAL_INITIATOR_MARKER,
29
29
  isSystemDirective,
@@ -7158,4 +7158,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7158
7158
  });
7159
7159
  }
7160
7160
 
7161
- export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, 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 };
7161
+ export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, 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 };