@cortexkit/opencode-magic-context 0.49.17 → 0.49.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/auto-search-worker.js +6 -2
  2. package/dist/chunk-embedding-write-worker.js +2 -2
  3. package/dist/{context-yhetp0kn.js → context-j31m2dv7.js} +27 -14
  4. package/dist/features/magic-context/dreamer/classify.d.ts +3 -0
  5. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  6. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +11 -0
  7. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/map-memories.d.ts +3 -0
  9. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  10. package/dist/features/magic-context/dreamer/verify.d.ts +3 -0
  11. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  12. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  13. package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
  14. package/dist/features/magic-context/storage-host-instruction-retention.d.ts +11 -0
  15. package/dist/features/magic-context/storage-host-instruction-retention.d.ts.map +1 -0
  16. package/dist/features/magic-context/storage-meta-persisted.d.ts +13 -0
  17. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/auto-search-worker-evaluation.fixture.d.ts +2 -0
  19. package/dist/hooks/magic-context/auto-search-worker-evaluation.fixture.d.ts.map +1 -0
  20. package/dist/hooks/magic-context/cache-busting-signals.d.ts +22 -1
  21. package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/compartment-trigger.d.ts +4 -2
  23. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/file-token-coverage.d.ts +11 -0
  25. package/dist/hooks/magic-context/file-token-coverage.d.ts.map +1 -0
  26. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +9 -0
  27. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/host-served-rows.d.ts +25 -0
  30. package/dist/hooks/magic-context/host-served-rows.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/inject-compartments.d.ts +7 -1
  32. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  33. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts +13 -0
  34. package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/lkg-slot.d.ts +1 -1
  37. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/pass-outcome.d.ts +2 -0
  39. package/dist/hooks/magic-context/pass-outcome.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +2 -1
  41. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  42. package/dist/hooks/magic-context/signed-thinking-hold.d.ts +59 -0
  43. package/dist/hooks/magic-context/signed-thinking-hold.d.ts.map +1 -0
  44. package/dist/hooks/magic-context/system-date-refresh.d.ts +15 -2
  45. package/dist/hooks/magic-context/system-date-refresh.d.ts.map +1 -1
  46. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/tag-content-primitives.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +6 -0
  50. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/transform-context-state.d.ts +19 -0
  52. package/dist/hooks/magic-context/transform-context-state.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +21 -0
  54. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  56. package/dist/{index-aabzay3h.js → index-3esx8tkf.js} +256 -50
  57. package/dist/{index-v8awdgvd.js → index-3h4dp9wb.js} +1 -1
  58. package/dist/{index-5a1ex6x8.js → index-4911rn0b.js} +3 -3
  59. package/dist/{index-qn7xstt2.js → index-63k48rv9.js} +1 -2
  60. package/dist/{index-p7m7j0cp.js → index-9zcsy3hh.js} +53 -7
  61. package/dist/{index-nkpmm9q8.js → index-c1p88z1y.js} +3 -3
  62. package/dist/{index-hqhm3wke.js → index-cf74k5ak.js} +2 -2
  63. package/dist/{index-vrzjhftj.js → index-dxmq29t1.js} +4 -4
  64. package/dist/{index-kmdj7dsq.js → index-edmpdxcw.js} +1 -1
  65. package/dist/{index-4yt7dtf4.js → index-jhghdnsm.js} +113 -44
  66. package/dist/{index-fb2qxs2y.js → index-jrr131e0.js} +2 -2
  67. package/dist/{index-a7c4r5re.js → index-rpxdjkm0.js} +216 -40
  68. package/dist/{index-cwzfcbtq.js → index-se4m2g6w.js} +10 -1
  69. package/dist/index.js +21 -17
  70. package/dist/{message-index-bounded-1633vc7f.js → message-index-bounded-zyc8h32y.js} +3 -3
  71. package/dist/{message-index-dprebmtt.js → message-index-gtpqnj8w.js} +3 -3
  72. package/dist/migration-worker.js +2 -2
  73. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  74. package/dist/plugin/messages-transform.d.ts.map +1 -1
  75. package/dist/plugin/tool-registry.d.ts.map +1 -1
  76. package/dist/raw-ordinal-warmup-worker.js +4 -4
  77. package/dist/{read-session-chunk-4zp09ejb.js → read-session-chunk-jjb48bt9.js} +2 -2
  78. package/dist/{recomp-orchestrator-z3ecszx6.js → recomp-orchestrator-999jj4bc.js} +8 -8
  79. package/dist/{search-archive-znyy44ve.js → search-archive-6vm0e2f5.js} +3 -3
  80. package/dist/{search-6mee3vty.js → search-xsqk1bj4.js} +6 -6
  81. package/dist/shared/model-suggestion-retry.d.ts +30 -1
  82. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  83. package/dist/shared/prompt-async-transport.d.ts.map +1 -1
  84. package/dist/{storage-tags-8qns3012.js → storage-tags-r7k9tjcv.js} +1 -1
  85. package/dist/tools/ctx-expand/rust-mode-tag.test-support.d.ts +15 -0
  86. package/dist/tools/ctx-expand/rust-mode-tag.test-support.d.ts.map +1 -0
  87. package/dist/tools/ctx-expand/tools.d.ts +11 -0
  88. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  89. package/dist/{transform-postprocess-phase-3ydzxa62.js → transform-postprocess-phase-jj99r7z2.js} +8 -8
  90. package/dist/v2/auto-search-worker.js +6 -2
  91. package/dist/v2/chunk-embedding-write-worker.js +2 -2
  92. package/dist/v2/{context-jn3zpeqh.js → context-y5yamxak.js} +378 -92
  93. package/dist/v2/hooks/context.d.ts.map +1 -1
  94. package/dist/v2/hooks/payload.d.ts.map +1 -1
  95. package/dist/v2/hooks/tools.d.ts.map +1 -1
  96. package/dist/v2/{message-index-pxehjpzx.js → message-index-8vz2pq76.js} +3 -3
  97. package/dist/v2/{message-index-bounded-hpejqyd8.js → message-index-bounded-spd8r7pj.js} +3 -3
  98. package/dist/v2/migration-worker.js +2 -2
  99. package/dist/v2/raw-ordinal-warmup-worker.js +4 -4
  100. package/dist/v2/{read-session-chunk-zdppn4bj.js → read-session-chunk-cwkxrmns.js} +2 -2
  101. package/dist/v2/{recomp-orchestrator-cmqnfpp3.js → recomp-orchestrator-f6m9jr7p.js} +7 -7
  102. package/dist/v2/{search-archive-gfh11vs0.js → search-archive-wve3tq1k.js} +3 -3
  103. package/dist/v2/{search-66842dya.js → search-hwg7jfbj.js} +6 -6
  104. package/dist/v2/{server-zyzawhdw.js → server-27gq4mfz.js} +2 -2
  105. package/dist/v2/{server-3rhpvy84.js → server-2ar62dyx.js} +10 -1
  106. package/dist/v2/{server-ec4ca92p.js → server-45q69hkq.js} +1 -1
  107. package/dist/v2/{server-fw7wrk01.js → server-6vdzn1td.js} +216 -40
  108. package/dist/v2/{server-kh7dpa1a.js → server-9hx7g5jp.js} +53 -7
  109. package/dist/v2/{server-gtfhttbr.js → server-bmymkx73.js} +2 -2
  110. package/dist/v2/{server-vsw8tmm6.js → server-gsxjv2q2.js} +4 -4
  111. package/dist/v2/{server-my7k4eds.js → server-hm38q7r0.js} +1 -1
  112. package/dist/v2/{server-gpvay0xz.js → server-xq7dfjke.js} +1 -2
  113. package/dist/v2/server.js +2 -2
  114. package/dist/v2/{storage-tags-1h8k6ra9.js → storage-tags-3wdb8zph.js} +1 -1
  115. package/dist/v2/store-reader.d.ts +6 -0
  116. package/dist/v2/store-reader.d.ts.map +1 -1
  117. package/dist/v2/{wrapup-orchestrator-xs8redz9.js → wrapup-orchestrator-embdz8gj.js} +7 -7
  118. package/dist/{wrapup-orchestrator-j7d7ry5b.js → wrapup-orchestrator-whhbjmaz.js} +9 -9
  119. package/package.json +1 -1
  120. package/src/shared/model-suggestion-retry.test.ts +166 -0
  121. package/src/shared/model-suggestion-retry.ts +165 -14
  122. package/src/shared/prompt-async-transport.test.ts +107 -0
  123. package/src/shared/prompt-async-transport.ts +39 -0
@@ -14,7 +14,7 @@ import {
14
14
  } from "./index-fr0wbhdn.js";
15
15
  import {
16
16
  managedAuthorityNoteRow
17
- } from "./index-qn7xstt2.js";
17
+ } from "./index-63k48rv9.js";
18
18
  import {
19
19
  embedTextForProject2
20
20
  } from "./index-ze7mvk54.js";
@@ -15,7 +15,7 @@ import {
15
15
  getActiveCompartmentRun,
16
16
  markActiveCompartmentRunPublished,
17
17
  registerActiveCompartmentRun
18
- } from "./index-a7c4r5re.js";
18
+ } from "./index-rpxdjkm0.js";
19
19
  import {
20
20
  inRootAsyncContext2
21
21
  } from "./index-beht37jy.js";
@@ -27,7 +27,7 @@ import {
27
27
  getHistorianFailureState,
28
28
  clearEmergencyRecovery,
29
29
  prepareRawSessionOrdinals2
30
- } from "./index-p7m7j0cp.js";
30
+ } from "./index-9zcsy3hh.js";
31
31
  import {
32
32
  pushNotification2
33
33
  } from "./index-x8a7jmkh.js";
@@ -37,7 +37,7 @@ import {
37
37
  import {
38
38
  setRecompStarting2,
39
39
  setRecompTerminal2
40
- } from "./index-nkpmm9q8.js";
40
+ } from "./index-c1p88z1y.js";
41
41
 
42
42
  // src/hooks/magic-context/wrapup-orchestrator.ts
43
43
  import * as crypto from "node:crypto";
@@ -2764,8 +2764,7 @@ var MIGRATIONS = [
2764
2764
  up(db) {
2765
2765
  const memoriesPresent = tableExists4(db, "memories");
2766
2766
  const notesPresent = tableExists4(db, "notes");
2767
- const native = db;
2768
- const privilegeCheck = typeof native.function === "function" || typeof native.createFunction === "function" ? "mc_privileged_writer() = 0" : "COALESCE((SELECT enabled FROM context_privilege_state WHERE id = 1), 0) = 0";
2767
+ const privilegeCheck = authorityPrivilegeCheck();
2769
2768
  if (memoriesPresent) {
2770
2769
  db.exec(`
2771
2770
  DROP TRIGGER IF EXISTS memories_authority_guard_insert;
@@ -23,7 +23,7 @@ import {
23
23
  TAG_SELECT_COLUMNS2,
24
24
  getCandidateToolOwners2,
25
25
  pickNearestPriorOwner2
26
- } from "./index-hqhm3wke.js";
26
+ } from "./index-cf74k5ak.js";
27
27
  import {
28
28
  OMO_INTERNAL_INITIATOR_MARKER,
29
29
  isSystemDirective,
@@ -549,6 +549,35 @@ function isHostRenderedSystemMessage(message) {
549
549
  const id = message.info.id;
550
550
  return (typeof id !== "string" || id.length === 0) && message.info.role === "system";
551
551
  }
552
+ var COVERED_INSTRUCTION_ROW = "coveredInstructionRow";
553
+ function markCoveredInstructionRow(target) {
554
+ Object.defineProperty(target, COVERED_INSTRUCTION_ROW, {
555
+ value: true,
556
+ enumerable: false,
557
+ configurable: true
558
+ });
559
+ return target;
560
+ }
561
+ function isCoveredInstructionRow(value) {
562
+ return typeof value === "object" && value !== null && value[COVERED_INSTRUCTION_ROW] === true;
563
+ }
564
+ function takeCoveredInstructionRows(messages) {
565
+ const taken = messages.filter((message) => isCoveredInstructionRow(message.info));
566
+ if (taken.length > 0) {
567
+ const kept = messages.filter((message) => !isCoveredInstructionRow(message.info));
568
+ messages.splice(0, messages.length, ...kept);
569
+ }
570
+ return taken;
571
+ }
572
+ function cloneKeepingCoveredInstructionMarks(messages) {
573
+ const copy = structuredClone(messages);
574
+ messages.forEach((message, index) => {
575
+ const copied = copy[index];
576
+ if (copied && isCoveredInstructionRow(message.info))
577
+ markCoveredInstructionRow(copied.info);
578
+ });
579
+ return copy;
580
+ }
552
581
 
553
582
  // src/hooks/magic-context/read-session-true-raw-tokens.ts
554
583
  function completedToolArcCrossesBoundary(invOrdinal, resOrdinal, boundary) {
@@ -1210,11 +1239,6 @@ function isFilePart(part) {
1210
1239
  const p = part;
1211
1240
  return p.type === "file" && typeof p.url === "string";
1212
1241
  }
1213
- function buildFileSourceContent(parts) {
1214
- const content = parts.filter(isTextPart).map((part) => stripTagPrefix(part.text)).join(`
1215
- `).trim();
1216
- return content.length > 0 ? content : null;
1217
- }
1218
1242
 
1219
1243
  // src/shared/user-answer.ts
1220
1244
  function hasUserAnswerMetadata(value) {
@@ -3688,6 +3712,21 @@ var THINKING_BINDING_STRIP_ORDER_END_MARKER = "binding_mismatch_order:end";
3688
3712
  function thinkingBindingRecoveryFrozenId(messageId) {
3689
3713
  return `${THINKING_BINDING_RECOVERY_FROZEN_PREFIX}${messageId}`;
3690
3714
  }
3715
+ var COMPACTION_OFF_THINKING_FROZEN_PREFIX = "compaction_off_thinking:";
3716
+ function compactionOffThinkingFrozenId(messageId) {
3717
+ return `${COMPACTION_OFF_THINKING_FROZEN_PREFIX}${messageId}`;
3718
+ }
3719
+ function compactionOffFrozenThinkingIds(ledger) {
3720
+ const ids = new Set;
3721
+ for (const entry of ledger) {
3722
+ if (!entry.startsWith(COMPACTION_OFF_THINKING_FROZEN_PREFIX))
3723
+ continue;
3724
+ const id = entry.slice(COMPACTION_OFF_THINKING_FROZEN_PREFIX.length);
3725
+ if (id.length > 0)
3726
+ ids.add(id);
3727
+ }
3728
+ return ids;
3729
+ }
3691
3730
  function getThinkingBindingRecoveryTarget(db, sessionId) {
3692
3731
  const row = db.prepare("SELECT thinking_binding_recovery_target FROM session_meta WHERE session_id = ?").get(sessionId);
3693
3732
  const target = row?.thinking_binding_recovery_target;
@@ -5757,6 +5796,12 @@ function estimateFinalWireInputTokens(input) {
5757
5796
  prose: messageTokens.conversation
5758
5797
  };
5759
5798
  const tokens = providerMass(rawComponents, calibration, true);
5799
+ const pressureToolDefinitions = measuredToolDefinitions ?? largestToolDefinitions ?? 0;
5800
+ const pressureTokens = providerMass({
5801
+ system: rawComponents.system,
5802
+ tools: pressureToolDefinitions + messageTokens.toolCall,
5803
+ prose: rawComponents.prose
5804
+ }, calibration);
5760
5805
  const complete = Number.isFinite(tokens) && tokens > 0 && Number.isFinite(input.systemPromptTokens) && input.systemPromptTokens > 0 && toolDefinitions !== undefined && input.messages.every(hasCountableParts);
5761
5806
  const refusalGrade = complete && hasTokenizerForFit() && measuredToolDefinitions !== undefined && hasMeasuredDecisionCalibration(calibration) && input.messages.every(hasRefusalCountableParts);
5762
5807
  const measured = input.measuredPrefix;
@@ -5779,6 +5824,7 @@ function estimateFinalWireInputTokens(input) {
5779
5824
  refusalBasis: refusalGrade ? useMeasured ? "provider-prefix" : "calibrated" : undefined,
5780
5825
  rawTokens: rawComponents.system + rawComponents.tools + rawComponents.prose,
5781
5826
  rawComponents,
5827
+ pressureTokens,
5782
5828
  completeness: complete ? "complete" : "partial",
5783
5829
  componentsComplete: toolDefinitions !== undefined && input.messages.every(hasCountableParts),
5784
5830
  messageTokens,
@@ -7300,4 +7346,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7300
7346
  });
7301
7347
  }
7302
7348
 
7303
- export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, 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, 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, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, 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 };
7349
+ export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, 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, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, 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 };
@@ -3,16 +3,16 @@ import {
3
3
  } from "./index-j75v2476.js";
4
4
  import {
5
5
  clearEmergencyRecovery
6
- } from "./index-p7m7j0cp.js";
6
+ } from "./index-9zcsy3hh.js";
7
7
  import {
8
8
  requestPendingMaterialization,
9
9
  dropSlot,
10
10
  executeContextRecomp
11
- } from "./index-a7c4r5re.js";
11
+ } from "./index-rpxdjkm0.js";
12
12
  import {
13
13
  renderUserFacingFailure,
14
14
  userFacingFailureCode
15
- } from "./index-v8awdgvd.js";
15
+ } from "./index-3h4dp9wb.js";
16
16
 
17
17
  // src/hooks/magic-context/recomp-orchestrator.ts
18
18
  function resolveLiveModelKey(liveSessionState, sessionId) {
@@ -68,8 +68,8 @@ function protectedToolTokenCount(tags, counts, calibration) {
68
68
  var encoder = new TextEncoder;
69
69
  var TAG_PREFIX_REGEX = /^(?:§\d+§\s*)+/;
70
70
  var MALFORMED_TAG_PREFIX_REGEX = /^(?:§\d+">§(?:\d+§)?\s*)+/;
71
- var DANGLING_TAG_GLOBAL_REGEX = /\u00a7\d+(?!\.\d)[^\s\u00a7\w.]?/g;
72
- var DANGLING_TAG_PREFIX_REGEX = /^(?:\u00a7\d+(?!\.\d)[^\s\u00a7\w.]?\s*)+/;
71
+ var DANGLING_TAG_GLOBAL_REGEX = /\u00a7\d+(?!\d)(?!\.\d)[^\s\u00a7\w.]?/g;
72
+ var DANGLING_TAG_PREFIX_REGEX = /^(?:\u00a7\d+(?!\d)(?!\.\d)[^\s\u00a7\w.]?\s*)+/;
73
73
  var COMPLETE_TAG_PAIR_GLOBAL_REGEX = /\u00a7\d+\u00a7/g;
74
74
  var MALFORMED_TAG_GLOBAL_REGEX = /\u00a7\d+">(?:\u00a7(?:\d+\u00a7)?)?/g;
75
75
  var STRAY_SECTION_CHAR_REGEX = /\u00a7/g;
@@ -63,27 +63,27 @@ import {
63
63
  sanitizeFtsQuery,
64
64
  searchMemoriesFTS,
65
65
  searchMemoriesFTSUnion
66
- } from "./index-v8awdgvd.js";
66
+ } from "./index-3h4dp9wb.js";
67
67
  import {
68
68
  cleanSearchText,
69
69
  keywordRelevance,
70
70
  matchedSearchSnippet,
71
71
  getIndexedMessageCorpusSize2
72
- } from "./index-cwzfcbtq.js";
72
+ } from "./index-se4m2g6w.js";
73
73
  import {
74
74
  MESSAGE_FTS_SESSION_FILTER_SQL,
75
75
  withMessageFtsSessionFilter
76
76
  } from "./index-kaqs6h31.js";
77
77
  import {
78
78
  isRecord
79
- } from "./index-hqhm3wke.js";
79
+ } from "./index-cf74k5ak.js";
80
80
  import {
81
81
  resolveWorkspaceShareCategories,
82
82
  resolveWorkspaceIdentitySet,
83
83
  expandWorkspaceIdentitySetWithAliases,
84
84
  resolveStoredPathWorkspaceIdentity,
85
85
  sourceNameForMemory
86
- } from "./index-qn7xstt2.js";
86
+ } from "./index-63k48rv9.js";
87
87
  import {
88
88
  isKnownAutocommit
89
89
  } from "./index-8ajstryz.js";
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  hasRawMessageProvider2,
19
19
  readRawSessionMessageIdOrdinalsForRange2
20
- } from "./index-p7m7j0cp.js";
20
+ } from "./index-9zcsy3hh.js";
21
21
 
22
22
  // src/tools/ctx-expand/search-archive.ts
23
23
  var archiveReadsOnThisThread = 0;
@@ -73,7 +73,7 @@ import {
73
73
  adoptNullOwnerToolTag2,
74
74
  getCandidateToolOwners2,
75
75
  pickNearestPriorOwner2
76
- } from "./index-hqhm3wke.js";
76
+ } from "./index-cf74k5ak.js";
77
77
  import {
78
78
  textMentionsRecentCommit,
79
79
  hasMeaningfulUserText2,
@@ -133,18 +133,17 @@ import {
133
133
  peekNoteNudgeText,
134
134
  markNoteNudgeDelivered,
135
135
  getActiveCompartmentRun
136
- } from "./index-a7c4r5re.js";
136
+ } from "./index-rpxdjkm0.js";
137
137
  import {
138
138
  BoundedSessionMap,
139
139
  cleanSearchText,
140
140
  matchedSearchSnippet
141
- } from "./index-cwzfcbtq.js";
141
+ } from "./index-se4m2g6w.js";
142
142
  import {
143
143
  stripSystemInjection,
144
144
  isTextPart,
145
145
  isToolPartWithOutput,
146
146
  isFilePart,
147
- buildFileSourceContent,
148
147
  toolPartHasUserAnswer,
149
148
  isEditTool,
150
149
  escalationBands,
@@ -179,6 +178,8 @@ import {
179
178
  applyStrippedPlaceholderDelta,
180
179
  THINKING_BINDING_RECOVERY_FROZEN_PREFIX,
181
180
  thinkingBindingRecoveryFrozenId,
181
+ compactionOffThinkingFrozenId,
182
+ compactionOffFrozenThinkingIds,
182
183
  getThinkingBindingRecoveryTarget,
183
184
  getMergedReasoningStrippedIds,
184
185
  addMergedReasoningStrippedIds,
@@ -233,7 +234,7 @@ import {
233
234
  extractToolCallObservation,
234
235
  ToolMutationBatch,
235
236
  createToolDropTarget
236
- } from "./index-p7m7j0cp.js";
237
+ } from "./index-9zcsy3hh.js";
237
238
  import {
238
239
  isValidLanguageCode
239
240
  } from "./index-wgypt3cs.js";
@@ -247,7 +248,7 @@ import {
247
248
  } from "./index-kq82mtg0.js";
248
249
  import {
249
250
  userFacingFailureCode
250
- } from "./index-v8awdgvd.js";
251
+ } from "./index-3h4dp9wb.js";
251
252
  import {
252
253
  normalizeProtectedToolName,
253
254
  mergeProtectedTools
@@ -2293,6 +2294,12 @@ function canConsumeDeferredOnThisPass(args) {
2293
2294
  function hasReclaimRide(signals) {
2294
2295
  return signals.hardFold || signals.force || signals.explicitFlush || signals.publishedHistory || signals.subagentExecute === true;
2295
2296
  }
2297
+ function prefixMutationPermitted(gate) {
2298
+ return !gate.signedThinkingHold || gate.firstRender || gate.idleExpiry || gate.emergency;
2299
+ }
2300
+ function reclaimRidePermitted(signals, gate) {
2301
+ return prefixMutationPermitted(gate) && hasReclaimRide(signals);
2302
+ }
2296
2303
  var RECLAIM_RIDE_NAMES = [
2297
2304
  "hardFold",
2298
2305
  "force",
@@ -2988,6 +2995,27 @@ function createPendingDropEligibilityCache() {
2988
2995
  };
2989
2996
  }
2990
2997
 
2998
+ // src/features/magic-context/storage-host-instruction-retention.ts
2999
+ var NAMESPACE2 = "hostInstructionRetention";
3000
+ var enabled = true;
3001
+ function hostInstructionRetentionEnabled() {
3002
+ return enabled;
3003
+ }
3004
+ function isHostInstructionRetentionOn(db, sessionId) {
3005
+ const lane = readReplayEnvelope(db, sessionId)[NAMESPACE2];
3006
+ return typeof lane === "object" && lane !== null && lane.on === true;
3007
+ }
3008
+ function markHostInstructionRetention(db, sessionId) {
3009
+ return updateReplayDocument(db, sessionId, (doc) => {
3010
+ const lane = doc[NAMESPACE2];
3011
+ if (typeof lane === "object" && lane !== null && lane.on === true)
3012
+ return false;
3013
+ doc.version = 2;
3014
+ doc[NAMESPACE2] = { on: true };
3015
+ return true;
3016
+ });
3017
+ }
3018
+
2991
3019
  // src/hooks/magic-context/apply-operations.ts
2992
3020
  var RECENT_TOOL_SKELETON_WINDOW = 20;
2993
3021
  function buildReplacementContent(tagId) {
@@ -4846,25 +4874,12 @@ function tagMessages(sessionId, messages, tagger, db, options = {}) {
4846
4874
  const filePart = part;
4847
4875
  const messageParts = message.parts;
4848
4876
  const contentId = `${messageId}:file${partIndex}`;
4849
- const existingTagId = resolver.resolve(messageId, "file", contentId, fileOrdinal);
4850
- const _tAssignFile = performance.now();
4851
- const tagId = existingTagId ?? tagger.assignTag(sessionId, contentId, "file", byteSize(filePart.url), db, 0, null, 0, null, () => ({
4852
- tokenCount: estimateTextTagTokenCount(filePart.url),
4853
- inputTokenCount: null,
4854
- reasoningTokenCount: null
4855
- }));
4856
- accAssignTag += performance.now() - _tAssignFile;
4857
- if (existingTagId === undefined) {
4858
- const sourceContent = buildFileSourceContent(message.parts);
4859
- if (sourceContent) {
4860
- const _tSaveFile = performance.now();
4861
- if (options.refreshSourceContents)
4862
- replaceSourceContent(db, sessionId, tagId, sourceContent);
4863
- else
4864
- saveSourceContent(db, sessionId, tagId, sourceContent);
4865
- accSaveSource += performance.now() - _tSaveFile;
4866
- }
4867
- }
4877
+ const existingTagId = resolver.resolve(messageId, "file", contentId, fileOrdinal) ?? getTagNumberByMessageId2(db, sessionId, contentId) ?? undefined;
4878
+ fileOrdinal += 1;
4879
+ if (existingTagId === undefined)
4880
+ continue;
4881
+ const tagId = existingTagId;
4882
+ tagger.bindTag(sessionId, contentId, tagId);
4868
4883
  messageTagNumbers.set(message, Math.max(messageTagNumbers.get(message) ?? 0, tagId));
4869
4884
  targets.set(tagId, {
4870
4885
  message,
@@ -4886,7 +4901,6 @@ function tagMessages(sessionId, messages, tagger, db, options = {}) {
4886
4901
  return true;
4887
4902
  }
4888
4903
  });
4889
- fileOrdinal += 1;
4890
4904
  }
4891
4905
  }
4892
4906
  if (message.info.role === "assistant" && !messageHasTextPart) {
@@ -5075,7 +5089,10 @@ function freezeReasoningOnBustingPass2(args) {
5075
5089
  return { strip: null, persistenceFailed: false };
5076
5090
  let persisted = false;
5077
5091
  try {
5078
- persisted = addMergedReasoningStrippedIds(args.db, args.sessionId, messageIds.map(thinkingBindingRecoveryFrozenId));
5092
+ persisted = addMergedReasoningStrippedIds(args.db, args.sessionId, [
5093
+ ...messageIds.map(thinkingBindingRecoveryFrozenId),
5094
+ ...args.compactionOff ? messageIds.map(compactionOffThinkingFrozenId) : []
5095
+ ]);
5079
5096
  } catch (error) {
5080
5097
  sessionLog2(args.sessionId, "proactive thinking strip: persistence threw:", error);
5081
5098
  }
@@ -5585,7 +5602,7 @@ function finalizeMessageRepresentation2(messages, resolvedProviderID, options) {
5585
5602
  clearedParts = stripClearedReasoning(targetedMessages.filter((message) => !restoredMessages.has(message)));
5586
5603
  }
5587
5604
  }
5588
- const bindingRecoveryParts = options?.skipMergedReasoningStrip ? 0 : stripReasoningFromAssistantIds(messages, resolvedProviderID, options?.frozenThinkingBindingMessageIds ?? new Set, restoredMessages);
5605
+ const bindingRecoveryParts = stripReasoningFromAssistantIds(messages, resolvedProviderID, options?.frozenThinkingBindingMessageIds ?? new Set, restoredMessages);
5589
5606
  const mergedReasoningParts = bindingRecoveryParts + (options?.skipMergedReasoningStrip ? 0 : stripReasoningFromMergedAssistants(messages, resolvedProviderID, {
5590
5607
  mutationExemptMessage: options?.reasoningMutationExemptMessage,
5591
5608
  frozenMessageIds: options?.mergedReasoningStrippedIds,
@@ -5654,7 +5671,7 @@ async function runPostTransformPhase2(args) {
5654
5671
  routinePressureAppliedBySession.set(args.sessionId, true);
5655
5672
  }
5656
5673
  const routinePressureAlreadyApplied = args.fullFeatureMode && executePressureEligible && routinePressureAppliedBySession.get(args.sessionId) === true;
5657
- if (args.contextUsage.percentage > 0 && args.contextUsage.percentage < args.forceMaterializationPercentage - 5 && getEmergencyInputSample(args.db, args.sessionId) > 0) {
5674
+ if (args.contextUsageFromEstimate !== true && args.contextUsage.percentage > 0 && args.contextUsage.percentage < args.forceMaterializationPercentage - 5 && getEmergencyInputSample(args.db, args.sessionId) > 0) {
5658
5675
  clearEmergencyDropSample(args.db, args.sessionId);
5659
5676
  }
5660
5677
  const activeCompartmentRun = args.canRunCompartments ? getActiveCompartmentRun(args.sessionId) : undefined;
@@ -5662,8 +5679,9 @@ async function runPostTransformPhase2(args) {
5662
5679
  let deferredMaterialize = args.canConsumeDeferredLate && deferredMaterializationWasPending;
5663
5680
  let materializationRequested = isExplicitFlush || deferredMaterialize;
5664
5681
  const m0M1EnabledForFold = args.m0M1 !== undefined && (!!args.m0M1.projectPath || !!args.m0M1.projectDirectory) && (args.fullFeatureMode || compactionOff);
5665
- const frozenThinking = new Set(args.activeThinkingTurn ? getMergedReasoningStrippedIds(args.db, args.sessionId) : []);
5666
- const bindingThinking = new Set([...frozenThinking].filter((id) => id.startsWith(THINKING_BINDING_RECOVERY_FROZEN_PREFIX)).map((id) => id.slice(THINKING_BINDING_RECOVERY_FROZEN_PREFIX.length)));
5682
+ const frozenThinking = new Set(args.activeThinkingTurn || compactionOff ? getMergedReasoningStrippedIds(args.db, args.sessionId) : []);
5683
+ const compactionOffFrozenThinking = compactionOff ? compactionOffFrozenThinkingIds(frozenThinking) : new Set;
5684
+ const bindingThinking = compactionOff ? new Set(compactionOffFrozenThinking) : new Set([...frozenThinking].filter((id) => id.startsWith(THINKING_BINDING_RECOVERY_FROZEN_PREFIX)).map((id) => id.slice(THINKING_BINDING_RECOVERY_FROZEN_PREFIX.length)));
5667
5685
  const retainedThinking = args.activeThinkingTurn ? retainedActiveThinkingParts({
5668
5686
  messages: args.messages,
5669
5687
  providerID: args.resolvedProviderID,
@@ -5684,19 +5702,24 @@ async function runPostTransformPhase2(args) {
5684
5702
  if (tag && tag > 0)
5685
5703
  safeReasoningCutoff = Math.min(safeReasoningCutoff, tag - 1);
5686
5704
  }
5687
- let activeThinkingPrefixHold = args.activeThinkingPrefixHold === true || activeThinkingTurn && args.thinkingBindingRecoveryEnabledForModel === true;
5705
+ let activeThinkingPrefixHold = args.activeThinkingPrefixHold === true;
5688
5706
  let freezeM0M1 = args.freezeM0M1 === true || activeThinkingPrefixHold;
5689
5707
  let rewritingSignedPrefix = false;
5690
5708
  let thinkingReleasedForFit = false;
5691
- const releaseThinkingForRewrite = (forFit = false) => {
5709
+ const releaseThinkingForRewrite = (forFit = false, stripInCompactionOff = false) => {
5710
+ const stripOffWire = compactionOff && stripInCompactionOff;
5692
5711
  const stripped = freezeReasoningOnBustingPass2({
5693
5712
  db: args.db,
5694
5713
  sessionId: args.sessionId,
5695
5714
  messages: args.messages,
5696
- alreadyFrozen: bindingThinking
5715
+ alreadyFrozen: bindingThinking,
5716
+ compactionOff: stripOffWire
5697
5717
  });
5698
5718
  if (stripped.persistenceFailed)
5699
5719
  throw new Error("Cannot persist signed thinking omission before prefix rewrite");
5720
+ if (stripOffWire)
5721
+ for (const id of stripped.strip?.messageIds ?? [])
5722
+ compactionOffFrozenThinking.add(id);
5700
5723
  retainedThinking.clear();
5701
5724
  protectedThinkingMessages.clear();
5702
5725
  activeThinkingTurn = false;
@@ -5706,7 +5729,7 @@ async function runPostTransformPhase2(args) {
5706
5729
  rewritingSignedPrefix = true;
5707
5730
  thinkingReleasedForFit ||= forFit;
5708
5731
  };
5709
- if (activeThinkingPrefixHold && args.forceSignedRebuildForFit) {
5732
+ if (args.forceSignedRebuildForFit && (activeThinkingPrefixHold || activeThinkingTurn && args.thinkingBindingRecoveryEnabledForModel === true)) {
5710
5733
  releaseThinkingForRewrite(true);
5711
5734
  }
5712
5735
  const foldDueDecision = m0M1EnabledForFold && args.m0M1 && !freezeM0M1 ? mustMaterialize({
@@ -5794,7 +5817,7 @@ async function runPostTransformPhase2(args) {
5794
5817
  });
5795
5818
  preparedPrefix = foldResult;
5796
5819
  if (activeThinkingPrefixHold && firstRenderBust && committedFoldBustsServedPrefix) {
5797
- releaseThinkingForRewrite();
5820
+ releaseThinkingForRewrite(false, true);
5798
5821
  }
5799
5822
  prefixPreflightFailed = foldResult.materializationContentionRetryExhausted === true;
5800
5823
  foldExecutedThisPass = foldExecutesThisPass(foldDueDecision.value || softRefreshOpportunity, foldResult.m0RematerializedThisPass);
@@ -5843,7 +5866,7 @@ async function runPostTransformPhase2(args) {
5843
5866
  const shouldReadPendingOps = !compactionOff && (materializationRequested || publishedM1RefreshedThisPass || args.schedulerDecision === "execute" || forceMaterialization || foldExecutedThisPass || firstRenderBust || compartmentRunning);
5844
5867
  const pendingOps = shouldReadPendingOps ? getPendingOps(args.db, args.sessionId) : [];
5845
5868
  const hasPendingUserOps = pendingOps.length > 0;
5846
- if (args.schedulerDecision === "execute" && pendingOps.some((op) => newTargets.get(op.tagId)?.thinkingDropProtected))
5869
+ if (args.schedulerDecision === "execute" && args.thinkingBindingRecoveryEnabledForModel !== true && pendingOps.some((op) => newTargets.get(op.tagId)?.thinkingDropProtected))
5847
5870
  requestPendingMaterialization(args.pendingMaterializationSessions, args.sessionId, "thinking_hold");
5848
5871
  const formatPendingOpsDepth = () => {
5849
5872
  const depth = getPendingOpsCount(args.db, args.sessionId);
@@ -5854,16 +5877,34 @@ async function runPostTransformPhase2(args) {
5854
5877
  const rideSignals = {
5855
5878
  subagentExecute: !args.fullFeatureMode && args.schedulerDecision === "execute",
5856
5879
  hardFold: rewritingSignedPrefix || foldBustsServedPrefixThisPass || firstRenderBust || idleExpiryRebuild,
5857
- force: emergencyDropEligible && (args.contextUsage.percentage >= 95 || getEmergencyInputSample(args.db, args.sessionId) === 0),
5880
+ force: emergencyDropEligible && (args.contextUsage.percentage >= 95 || args.contextUsageFromEstimate !== true && getEmergencyInputSample(args.db, args.sessionId) === 0),
5858
5881
  explicitFlush: isExplicitFlush && hasPendingMaterializationOrigin(args.pendingMaterializationSessions, args.sessionId, "user_flush"),
5859
5882
  publishedHistory: !prefixPreflightFailed && (publishedM1RefreshedThisPass || !m0M1EnabledForFold && (args.pendingCompartmentInjection?.compartmentCount ?? 0) > 0 && legacyPublishedHeadChanged(args))
5860
5883
  };
5861
- const publishedWorkDrainAllowed = !compactionOff && (!activeThinkingPrefixHold || firstRenderBust || idleExpiryRebuild || emergencyDropEligible) && hasReclaimRide(rideSignals);
5884
+ const publishedWorkDrainAllowed = !compactionOff && reclaimRidePermitted(rideSignals, {
5885
+ signedThinkingHold: activeThinkingPrefixHold,
5886
+ firstRender: firstRenderBust,
5887
+ idleExpiry: idleExpiryRebuild,
5888
+ emergency: emergencyDropEligible
5889
+ });
5862
5890
  const shouldApplyPendingOps = publishedWorkDrainAllowed;
5863
5891
  const shouldRunHeuristics = publishedWorkDrainAllowed && (rideSignals.publishedHistory || materializationRequested || forceMaterialization || foldBustsServedPrefixThisPass || firstRenderBust || heldIdleExpiryRebuild || emergencyDropEligible || args.schedulerDecision === "execute" && (!alreadyRanThisTurn || !args.fullFeatureMode));
5864
5892
  const isCacheBustingPass = publishedWorkDrainAllowed;
5865
- if (args.normalizeRecoveryTail && isCacheBustingPass) {
5893
+ let unheldSignedTurnBust = false;
5894
+ if (isCacheBustingPass && !activeThinkingPrefixHold && activeThinkingTurn && args.thinkingBindingRecoveryEnabledForModel === true) {
5895
+ if (foldBustsServedPrefixThisPass || firstRenderBust || publishedM1RefreshedThisPass)
5896
+ releaseThinkingForRewrite();
5897
+ else {
5898
+ unheldSignedTurnBust = true;
5899
+ retainedThinking.clear();
5900
+ protectedThinkingMessages.clear();
5901
+ newTargets = args.targets;
5902
+ }
5903
+ }
5904
+ let recoveryTailNormalizedThisPass = false;
5905
+ if (args.normalizeRecoveryTail && isCacheBustingPass && !activeThinkingPrefixHold) {
5866
5906
  args.normalizeRecoveryTail();
5907
+ recoveryTailNormalizedThisPass = true;
5867
5908
  args.tags = getTagsBySession2(args.db, args.sessionId);
5868
5909
  newTargets = protectNewTagMutations(args.messages, args.targets, retainedThinking, args.thinkingBindingRecoveryEnabledForModel === true);
5869
5910
  }
@@ -6334,6 +6375,26 @@ async function runPostTransformPhase2(args) {
6334
6375
  }
6335
6376
  }
6336
6377
  const m0M1Enabled = m0M1EnabledForFold;
6378
+ if (m0M1Enabled && args.m0M1 && !compactionOff && args.opencode2) {
6379
+ const covered = args.coveredHostInstructions ?? [];
6380
+ if (covered.length > 0 || canEditWholePrefix) {
6381
+ let retain = false;
6382
+ if (hostInstructionRetentionEnabled()) {
6383
+ try {
6384
+ retain = isHostInstructionRetentionOn(args.db, args.sessionId);
6385
+ } catch (error) {
6386
+ failPass("host-instruction-retention-read-failure", error);
6387
+ }
6388
+ if (!retain && canEditWholePrefix) {
6389
+ if (!markHostInstructionRetention(args.db, args.sessionId))
6390
+ failPass("host-instruction-retention-persistence-failure");
6391
+ retain = true;
6392
+ }
6393
+ }
6394
+ if (retain && covered.length > 0)
6395
+ args.messages.unshift(...covered);
6396
+ }
6397
+ }
6337
6398
  if (m0M1Enabled && args.m0M1) {
6338
6399
  if (freezeM0M1 && !preparedPrefix) {
6339
6400
  preparedPrefix = prepareCachedM0M1Replay(args.db, args.sessionId);
@@ -6674,7 +6735,10 @@ async function runPostTransformPhase2(args) {
6674
6735
  const mergedReasoningStrippedIds = new Set(replaySnapshot?.mergedReasoningStrippedIds ?? []);
6675
6736
  const frozenThinkingBindingMessageIds = new Set;
6676
6737
  let thinkingBindingRecovery = null;
6677
- if (!compactionOff) {
6738
+ if (compactionOff) {
6739
+ for (const id of compactionOffFrozenThinking)
6740
+ frozenThinkingBindingMessageIds.add(id);
6741
+ } else {
6678
6742
  try {
6679
6743
  for (const id of mergedReasoningStrippedIds) {
6680
6744
  if (id.startsWith(THINKING_BINDING_RECOVERY_FROZEN_PREFIX)) {
@@ -6856,7 +6920,7 @@ async function runPostTransformPhase2(args) {
6856
6920
  }
6857
6921
  }
6858
6922
  }
6859
- const prefixEditBesidesReasoningTrim = firstRenderBust || heldIdleExpiryRebuild || materializationRequested || explicitMaterializedSuccessfully || deferredMaterializedSuccessfully || foldBustsServedPrefixThisPass || publishedM1RefreshedThisPass || m0RematerializedThisPass || m0M1InjectedThisPass && historyWasConsumedThisPass || historyWasConsumedThisPass || pendingOpsDidMutate || heuristicOrReasoningEditBesidesTrim || emergency || autoReclaimDidMutateThisPass || convertedToolSkeletonsDidMutate || deferredClearedMarkerRetires || noteNudgeAppendedThisPass || todoAnchorMovedThisPass || autoSearchHintAppendedThisPass || dropModeSwitchesThisPass || firstApplicationEdits.beforeNewerThinking;
6923
+ const prefixEditBesidesReasoningTrim = firstRenderBust || heldIdleExpiryRebuild || materializationRequested || explicitMaterializedSuccessfully || deferredMaterializedSuccessfully || foldBustsServedPrefixThisPass || publishedM1RefreshedThisPass || m0RematerializedThisPass || m0M1InjectedThisPass && historyWasConsumedThisPass || historyWasConsumedThisPass || pendingOpsDidMutate || heuristicOrReasoningEditBesidesTrim || emergency || autoReclaimDidMutateThisPass || convertedToolSkeletonsDidMutate || deferredClearedMarkerRetires || noteNudgeAppendedThisPass || todoAnchorMovedThisPass || autoSearchHintAppendedThisPass || dropModeSwitchesThisPass || recoveryTailNormalizedThisPass || firstApplicationEdits.beforeNewerThinking;
6860
6924
  let proactiveThinkingStrip = null;
6861
6925
  if (!compactionOff && args.thinkingBindingRecoveryEnabledForModel === true && proactiveThinkingStripPermitted && prefixEditBesidesReasoningTrim) {
6862
6926
  const outcome = freezeReasoningOnBustingPass2({
@@ -6873,7 +6937,11 @@ async function runPostTransformPhase2(args) {
6873
6937
  mergedReasoningStrippedIds.add(thinkingBindingRecoveryFrozenId(messageId));
6874
6938
  }
6875
6939
  bustedThisPass = true;
6940
+ if (unheldSignedTurnBust)
6941
+ rewritingSignedPrefix = true;
6876
6942
  } else if (outcome.persistenceFailed) {
6943
+ if (unheldSignedTurnBust)
6944
+ throw new Error("Cannot persist signed thinking omission after a mid-turn edit");
6877
6945
  failPass("proactive-thinking-strip-persistence-failure");
6878
6946
  }
6879
6947
  }
@@ -7032,7 +7100,8 @@ async function runPostTransformPhase2(args) {
7032
7100
  prefixTrimStatus: deliveredPrefix?.prefixTrimStatus ?? null,
7033
7101
  thinkingBindingRecovery,
7034
7102
  proactiveThinkingStrip,
7035
- thinkingReleasedForFit
7103
+ thinkingReleasedForFit,
7104
+ openTurnSignedThinkingKept: args.thinkingBindingRecoveryEnabledForModel === true && activeThinkingTurn && !rewritingSignedPrefix
7036
7105
  };
7037
7106
  }
7038
7107
  function checkM0MutationDriftAndSignal2(args) {
@@ -7047,4 +7116,4 @@ function checkM0MutationDriftAndSignal2(args) {
7047
7116
  return false;
7048
7117
  }
7049
7118
 
7050
- export { makeToolCompositeKey, createTagger, cavemanWordRulesForLanguage, searchMessageHistoryOffThread, findSessionId, findLastUserMessageId, clearAutoSearchForSession, setCtxReduceRegisteredGlobally, resolveCtxReduceAvailabilityFromMessages, resolveCtxReduceAvailability, primeCtxReduceSpawnPermission, ctxReduceSpawnPermissionReadNeeded, spawnAgentFromMessages, spawnAgentFromOpenCodeDb, todowritePermissionDenied, cachedToolPermissionDenied, clearToolPermissionDenied, resolveTodowriteAvailabilityFromMessages, resolveTodowriteAvailability, canConsumeDeferredOnThisPass, hasReclaimRide, reclaimRideLabel, captureOpencodeReasoningBudgetStatus, reasoningBudgetStatusLine, ENGINE_RECONNECTING_USER_MESSAGE, ENGINE_BUSY_USER_MESSAGE, SIGNED_THINKING_RESET_FENCE_FAILED, contextRefusalError, protectedToolRefusal, outgoingContextRefusal, signedTurnContextRefusal, EmergencyFailClosedError, latestAssistantTurnStart, latestAssistantTurnMessages, hasActiveAnthropicThinkingTurn, replayCavemanCompression, DegradedPassRefusalError, degradedPassError, pendingDropEligibilityKey, createPendingDropEligibilityCache, applyFlushedStatuses, prewarmTagOwners, waitForTagOwners, stripStructuralNoise, withTransformTimingSummary, logTransformTiming, hasRecentAssistantCommit, tagMessages, resetDegradedCacheCount2, isSyntheticHeadMessage2, applyTodoSynthesis2, freezeReasoningOnBustingPass2, firstServedDivergenceIndex2, rustModeServedKeyAfterPersistedStrips2, replayRustModeBindingMismatchStrips2, RUST_MARKER_LOCK_SKIP_LOG2, applyRustModeDeferredCompactionMarker2, clearRustModeBoundaryRecord2, runRustModePostprocess2, reconcileMarkerRepresentation2, clearPendingCompactionMarkerAfterSuccessfulDrain2, defaultCompactionMarkerStrategy2, abortSessionFailClosed2, evaluateEmergencyFailClosed2, finalizeMessageRepresentation2, runPostTransformPhase2, checkM0MutationDriftAndSignal2 };
7119
+ export { makeToolCompositeKey, createTagger, cavemanWordRulesForLanguage, searchMessageHistoryOffThread, findSessionId, findLastUserMessageId, clearAutoSearchForSession, setCtxReduceRegisteredGlobally, resolveCtxReduceAvailabilityFromMessages, resolveCtxReduceAvailability, primeCtxReduceSpawnPermission, ctxReduceSpawnPermissionReadNeeded, spawnAgentFromMessages, spawnAgentFromOpenCodeDb, todowritePermissionDenied, cachedToolPermissionDenied, clearToolPermissionDenied, resolveTodowriteAvailabilityFromMessages, resolveTodowriteAvailability, canConsumeDeferredOnThisPass, hasReclaimRide, reclaimRidePermitted, reclaimRideLabel, captureOpencodeReasoningBudgetStatus, reasoningBudgetStatusLine, ENGINE_RECONNECTING_USER_MESSAGE, ENGINE_BUSY_USER_MESSAGE, SIGNED_THINKING_RESET_FENCE_FAILED, contextRefusalError, protectedToolRefusal, outgoingContextRefusal, signedTurnContextRefusal, EmergencyFailClosedError, latestAssistantTurnStart, latestAssistantTurnMessages, hasActiveAnthropicThinkingTurn, replayCavemanCompression, DegradedPassRefusalError, degradedPassError, pendingDropEligibilityKey, createPendingDropEligibilityCache, applyFlushedStatuses, prewarmTagOwners, waitForTagOwners, stripStructuralNoise, withTransformTimingSummary, logTransformTiming, hasRecentAssistantCommit, tagMessages, resetDegradedCacheCount2, isSyntheticHeadMessage2, applyTodoSynthesis2, freezeReasoningOnBustingPass2, firstServedDivergenceIndex2, rustModeServedKeyAfterPersistedStrips2, replayRustModeBindingMismatchStrips2, RUST_MARKER_LOCK_SKIP_LOG2, applyRustModeDeferredCompactionMarker2, clearRustModeBoundaryRecord2, runRustModePostprocess2, reconcileMarkerRepresentation2, clearPendingCompactionMarkerAfterSuccessfulDrain2, defaultCompactionMarkerStrategy2, abortSessionFailClosed2, evaluateEmergencyFailClosed2, finalizeMessageRepresentation2, runPostTransformPhase2, checkM0MutationDriftAndSignal2 };
@@ -52,7 +52,7 @@ import {
52
52
  hasPendingMigrations,
53
53
  getMainThreadMigrationBodyCount,
54
54
  runMigrations
55
- } from "./index-qn7xstt2.js";
55
+ } from "./index-63k48rv9.js";
56
56
  import {
57
57
  installTagIdentityRevisionTrigger,
58
58
  ensureColumn,
@@ -1277,7 +1277,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1277
1277
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1278
1278
  if (signal.aborted || !readsOpenCodeStore)
1279
1279
  return;
1280
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-4zp09ejb.js"));
1280
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-jjb48bt9.js"));
1281
1281
  const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-73mmm76q.js"));
1282
1282
  if (signal.aborted)
1283
1283
  return;