@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
@@ -23,7 +23,7 @@ import {
23
23
  TAG_SELECT_COLUMNS2,
24
24
  getCandidateToolOwners2,
25
25
  pickNearestPriorOwner2
26
- } from "./server-zyzawhdw.js";
26
+ } from "./server-27gq4mfz.js";
27
27
  import {
28
28
  OMO_INTERNAL_INITIATOR_MARKER,
29
29
  isSystemDirective,
@@ -775,6 +775,35 @@ function isHostRenderedSystemMessage(message) {
775
775
  const id = message.info.id;
776
776
  return (typeof id !== "string" || id.length === 0) && message.info.role === "system";
777
777
  }
778
+ var COVERED_INSTRUCTION_ROW = "coveredInstructionRow";
779
+ function markCoveredInstructionRow(target) {
780
+ Object.defineProperty(target, COVERED_INSTRUCTION_ROW, {
781
+ value: true,
782
+ enumerable: false,
783
+ configurable: true
784
+ });
785
+ return target;
786
+ }
787
+ function isCoveredInstructionRow(value) {
788
+ return typeof value === "object" && value !== null && value[COVERED_INSTRUCTION_ROW] === true;
789
+ }
790
+ function takeCoveredInstructionRows(messages) {
791
+ const taken = messages.filter((message) => isCoveredInstructionRow(message.info));
792
+ if (taken.length > 0) {
793
+ const kept = messages.filter((message) => !isCoveredInstructionRow(message.info));
794
+ messages.splice(0, messages.length, ...kept);
795
+ }
796
+ return taken;
797
+ }
798
+ function cloneKeepingCoveredInstructionMarks(messages) {
799
+ const copy = structuredClone(messages);
800
+ messages.forEach((message, index) => {
801
+ const copied = copy[index];
802
+ if (copied && isCoveredInstructionRow(message.info))
803
+ markCoveredInstructionRow(copied.info);
804
+ });
805
+ return copy;
806
+ }
778
807
 
779
808
  // src/hooks/magic-context/read-session-true-raw-tokens.ts
780
809
  function completedToolArcCrossesBoundary(invOrdinal, resOrdinal, boundary) {
@@ -1423,11 +1452,6 @@ function isFilePart(part) {
1423
1452
  const p = part;
1424
1453
  return p.type === "file" && typeof p.url === "string";
1425
1454
  }
1426
- function buildFileSourceContent(parts) {
1427
- const content = parts.filter(isTextPart).map((part) => stripTagPrefix(part.text)).join(`
1428
- `).trim();
1429
- return content.length > 0 ? content : null;
1430
- }
1431
1455
 
1432
1456
  // src/shared/user-answer.ts
1433
1457
  function hasUserAnswerMetadata(value) {
@@ -3775,6 +3799,21 @@ var THINKING_BINDING_STRIP_ORDER_END_MARKER = "binding_mismatch_order:end";
3775
3799
  function thinkingBindingRecoveryFrozenId(messageId) {
3776
3800
  return `${THINKING_BINDING_RECOVERY_FROZEN_PREFIX}${messageId}`;
3777
3801
  }
3802
+ var COMPACTION_OFF_THINKING_FROZEN_PREFIX = "compaction_off_thinking:";
3803
+ function compactionOffThinkingFrozenId(messageId) {
3804
+ return `${COMPACTION_OFF_THINKING_FROZEN_PREFIX}${messageId}`;
3805
+ }
3806
+ function compactionOffFrozenThinkingIds(ledger) {
3807
+ const ids = new Set;
3808
+ for (const entry of ledger) {
3809
+ if (!entry.startsWith(COMPACTION_OFF_THINKING_FROZEN_PREFIX))
3810
+ continue;
3811
+ const id = entry.slice(COMPACTION_OFF_THINKING_FROZEN_PREFIX.length);
3812
+ if (id.length > 0)
3813
+ ids.add(id);
3814
+ }
3815
+ return ids;
3816
+ }
3778
3817
  function getThinkingBindingRecoveryTarget(db, sessionId) {
3779
3818
  const row = db.prepare("SELECT thinking_binding_recovery_target FROM session_meta WHERE session_id = ?").get(sessionId);
3780
3819
  const target = row?.thinking_binding_recovery_target;
@@ -5623,6 +5662,12 @@ function estimateFinalWireInputTokens(input) {
5623
5662
  prose: messageTokens.conversation
5624
5663
  };
5625
5664
  const tokens = providerMass(rawComponents, calibration, true);
5665
+ const pressureToolDefinitions = measuredToolDefinitions ?? largestToolDefinitions ?? 0;
5666
+ const pressureTokens = providerMass({
5667
+ system: rawComponents.system,
5668
+ tools: pressureToolDefinitions + messageTokens.toolCall,
5669
+ prose: rawComponents.prose
5670
+ }, calibration);
5626
5671
  const complete = Number.isFinite(tokens) && tokens > 0 && Number.isFinite(input.systemPromptTokens) && input.systemPromptTokens > 0 && toolDefinitions !== undefined && input.messages.every(hasCountableParts);
5627
5672
  const refusalGrade = complete && hasTokenizerForFit() && measuredToolDefinitions !== undefined && hasMeasuredDecisionCalibration(calibration) && input.messages.every(hasRefusalCountableParts);
5628
5673
  const measured = input.measuredPrefix;
@@ -5645,6 +5690,7 @@ function estimateFinalWireInputTokens(input) {
5645
5690
  refusalBasis: refusalGrade ? useMeasured ? "provider-prefix" : "calibrated" : undefined,
5646
5691
  rawTokens: rawComponents.system + rawComponents.tools + rawComponents.prose,
5647
5692
  rawComponents,
5693
+ pressureTokens,
5648
5694
  completeness: complete ? "complete" : "partial",
5649
5695
  componentsComplete: toolDefinitions !== undefined && input.messages.every(hasCountableParts),
5650
5696
  messageTokens,
@@ -7166,4 +7212,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7166
7212
  });
7167
7213
  }
7168
7214
 
7169
- export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, 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 };
7215
+ export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, 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, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, 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, 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 };
@@ -50,7 +50,7 @@ import {
50
50
  hasPendingMigrations,
51
51
  getMainThreadMigrationBodyCount,
52
52
  runMigrations
53
- } from "./server-gpvay0xz.js";
53
+ } from "./server-xq7dfjke.js";
54
54
  import {
55
55
  ensureColumn,
56
56
  installV95PerfSchema,
@@ -1219,7 +1219,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1219
1219
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1220
1220
  if (signal.aborted || !readsOpenCodeStore)
1221
1221
  return;
1222
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-zdppn4bj.js"));
1222
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-cwkxrmns.js"));
1223
1223
  const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-04t0km1z.js"));
1224
1224
  if (signal.aborted)
1225
1225
  return;
@@ -61,27 +61,27 @@ import {
61
61
  sanitizeFtsQuery,
62
62
  searchMemoriesFTS,
63
63
  searchMemoriesFTSUnion
64
- } from "./server-my7k4eds.js";
64
+ } from "./server-hm38q7r0.js";
65
65
  import {
66
66
  cleanSearchText,
67
67
  keywordRelevance,
68
68
  matchedSearchSnippet,
69
69
  getIndexedMessageCorpusSize2
70
- } from "./server-3rhpvy84.js";
70
+ } from "./server-2ar62dyx.js";
71
71
  import {
72
72
  MESSAGE_FTS_SESSION_FILTER_SQL,
73
73
  withMessageFtsSessionFilter
74
74
  } from "./server-kaqs6h31.js";
75
75
  import {
76
76
  isRecord
77
- } from "./server-zyzawhdw.js";
77
+ } from "./server-27gq4mfz.js";
78
78
  import {
79
79
  resolveWorkspaceShareCategories,
80
80
  resolveWorkspaceIdentitySet,
81
81
  expandWorkspaceIdentitySetWithAliases,
82
82
  resolveStoredPathWorkspaceIdentity,
83
83
  sourceNameForMemory
84
- } from "./server-gpvay0xz.js";
84
+ } from "./server-xq7dfjke.js";
85
85
  import {
86
86
  isKnownAutocommit
87
87
  } from "./server-8ajstryz.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./server-f2xf5gcb.js";
15
15
  import {
16
16
  managedAuthorityNoteRow
17
- } from "./server-gpvay0xz.js";
17
+ } from "./server-xq7dfjke.js";
18
18
  import {
19
19
  embedTextForProject2
20
20
  } from "./server-8by8qfec.js";
@@ -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;
package/dist/v2/server.js CHANGED
@@ -7874,7 +7874,7 @@ var require_src2 = __commonJS(function(exports, module) {
7874
7874
  // package.json
7875
7875
  var package_default = {
7876
7876
  name: "@cortexkit/opencode-magic-context",
7877
- version: "0.49.17",
7877
+ version: "0.49.19",
7878
7878
  type: "module",
7879
7879
  description: "OpenCode plugin for Magic Context — cross-session memory and context management",
7880
7880
  main: "dist/index.js",
@@ -8195,7 +8195,7 @@ async function setup(context) {
8195
8195
  if (claimStorageBackupWarningCheck() && isMagicContextStorageOutsideEngram(storageDir)) {
8196
8196
  log2(`[magic-context] Magic Context storage is at ${storageDir}, outside the folder Engram backs up (~/.local/share/cortexkit/magic-context). It is not included in CortexKit backups.`);
8197
8197
  }
8198
- const { registerContext } = await import("./context-jn3zpeqh.js");
8198
+ const { registerContext } = await import("./context-y5yamxak.js");
8199
8199
  setHarness2("opencode2");
8200
8200
  bindStaleBuildNotice({}, import.meta.url, "opencode2");
8201
8201
  const duties = await registerContext(context);
@@ -63,7 +63,7 @@ import {
63
63
  adoptNullOwnerToolTag2,
64
64
  getCandidateToolOwners2,
65
65
  pickNearestPriorOwner2
66
- } from "./server-zyzawhdw.js";
66
+ } from "./server-27gq4mfz.js";
67
67
  import"./server-1zx87sdm.js";
68
68
  import"./server-pwv4ezb0.js";
69
69
  import"./server-tgnbmwah.js";
@@ -259,6 +259,12 @@ export declare class V2StoreReader {
259
259
  spanRowStamps(sessionID: string, after: number, through: number): Map<number, string>;
260
260
  /** Conversational rows at or before `throughSeq`, newest first. */
261
261
  rawRowsThrough(sessionID: string, throughSeq: number, limit: number): StoreRow[];
262
+ /**
263
+ * Instruction-update rows (`type = 'system'`) at or before `throughSeq`,
264
+ * oldest first. Only these rows are read, so a long session pays for its few
265
+ * instruction rows rather than for its whole history.
266
+ */
267
+ instructionRowsThrough(sessionID: string, throughSeq: number): StoreRow[];
262
268
  sequenceForId(sessionID: string, id: string | null | undefined): number | undefined;
263
269
  /** Native synthetics are user-shaped on the wire; their store kind is unambiguous. */
264
270
  syntheticMessageIDs(sessionID: string): Set<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"store-reader.d.ts","sourceRoot":"","sources":["../../src/v2/store-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-reader.d.ts","sourceRoot":"","sources":["../../src/v2/store-reader.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import {
19
19
  registerActiveCompartmentRun,
20
20
  setRecompStarting2,
21
21
  setRecompTerminal2
22
- } from "./server-fw7wrk01.js";
22
+ } from "./server-6vdzn1td.js";
23
23
  import"./server-8by8qfec.js";
24
24
  import"./server-tgnbmwah.js";
25
25
  import"./server-6tmj0s7j.js";
@@ -30,7 +30,7 @@ import"./server-51779zs2.js";
30
30
  import"./server-xj136kt8.js";
31
31
  import"./server-1wy7b9de.js";
32
32
  import"./server-46neh5fa.js";
33
- import"./server-3rhpvy84.js";
33
+ import"./server-2ar62dyx.js";
34
34
  import {
35
35
  getWrapupInProgressState,
36
36
  acquireWrapupInProgress,
@@ -39,20 +39,20 @@ import {
39
39
  getHistorianFailureState,
40
40
  clearEmergencyRecovery,
41
41
  prepareRawSessionOrdinals2
42
- } from "./server-kh7dpa1a.js";
42
+ } from "./server-9hx7g5jp.js";
43
43
  import"./server-pwv4ezb0.js";
44
- import"./server-gtfhttbr.js";
44
+ import"./server-bmymkx73.js";
45
45
  import"./server-1zx87sdm.js";
46
- import"./server-zyzawhdw.js";
46
+ import"./server-27gq4mfz.js";
47
47
  import"./server-271qxsf5.js";
48
48
  import"./server-2ra6pwf3.js";
49
49
  import"./server-n1prf1g6.js";
50
50
  import"./server-g3qma5c0.js";
51
51
  import"./server-fr0wbhdn.js";
52
- import"./server-gpvay0xz.js";
52
+ import"./server-xq7dfjke.js";
53
53
  import"./server-rmygf5pn.js";
54
54
  import"./server-fb3zxn06.js";
55
- import"./server-my7k4eds.js";
55
+ import"./server-hm38q7r0.js";
56
56
  import {
57
57
  pushNotification2
58
58
  } from "./server-x8a7jmkh.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  runManagedWrapup2
3
- } from "./index-5a1ex6x8.js";
4
- import"./index-nkpmm9q8.js";
5
- import"./index-a7c4r5re.js";
3
+ } from "./index-4911rn0b.js";
4
+ import"./index-c1p88z1y.js";
5
+ import"./index-rpxdjkm0.js";
6
6
  import"./index-4s3t0nd0.js";
7
- import"./index-v8awdgvd.js";
8
- import"./index-cwzfcbtq.js";
7
+ import"./index-3h4dp9wb.js";
8
+ import"./index-se4m2g6w.js";
9
9
  import"./index-sd3egckz.js";
10
10
  import"./index-24fezq97.js";
11
11
  import"./index-ze7mvk54.js";
@@ -14,8 +14,8 @@ import"./index-4dhv7mqz.js";
14
14
  import"./index-v10f1rjv.js";
15
15
  import"./index-s74zqahq.js";
16
16
  import"./index-qt1qqasc.js";
17
- import"./index-p7m7j0cp.js";
18
- import"./index-hqhm3wke.js";
17
+ import"./index-9zcsy3hh.js";
18
+ import"./index-cf74k5ak.js";
19
19
  import"./index-1zx87sdm.js";
20
20
  import"./index-kq82mtg0.js";
21
21
  import"./index-x8a7jmkh.js";
@@ -25,9 +25,9 @@ import"./index-wgypt3cs.js";
25
25
  import"./index-rr2bb45z.js";
26
26
  import"./index-b5vqckbw.js";
27
27
  import"./index-6x57ar45.js";
28
- import"./index-fb2qxs2y.js";
28
+ import"./index-jrr131e0.js";
29
29
  import"./index-fb3zxn06.js";
30
- import"./index-qn7xstt2.js";
30
+ import"./index-63k48rv9.js";
31
31
  import"./index-2vxtcb95.js";
32
32
  import"./index-a6mc0v4d.js";
33
33
  import"./index-fr0wbhdn.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.49.17",
3
+ "version": "0.49.19",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",
@@ -5,6 +5,8 @@ import { recordedGeminiQuotaMessages } from "../features/magic-context/dreamer/p
5
5
  import { HiddenAgentStepLimit } from "../v2/hooks/hidden-child";
6
6
  import {
7
7
  getPromptFailureDetail,
8
+ noteModelActivityMonitored,
9
+ noteModelOutputReceived,
8
10
  promptSyncWithModelSuggestionRetry,
9
11
  promptSyncWithValidatedOutputRetry,
10
12
  } from "./model-suggestion-retry";
@@ -833,3 +835,167 @@ test("timeout rejects an uncooperative carrier and aborts its child", async () =
833
835
  clearTimeout(timer);
834
836
  }
835
837
  });
838
+
839
+ describe("first-output deadline", () => {
840
+ const primary = { providerID: "opencode", modelID: "free-model" };
841
+ type Behaviour = "silent" | "partial" | "answer" | "unmonitored";
842
+
843
+ /**
844
+ * A transport double that behaves per model. "silent" watches the child but the
845
+ * model never answers; "partial" streams something and then hangs; "unmonitored"
846
+ * hangs without ever reporting whether the model answered (the Pi and OpenCode 2
847
+ * carriers); "answer" completes at once.
848
+ */
849
+ function modelTransport(behaviours: Record<string, Behaviour>) {
850
+ const calls: Array<{ model: string; startedAt: number }> = [];
851
+ const transport = Object.assign(
852
+ async (request: PromptCall & { signal?: AbortSignal }) => {
853
+ const model = request.body.model
854
+ ? `${request.body.model.providerID}/${request.body.model.modelID}`
855
+ : "primary";
856
+ calls.push({ model, startedAt: Date.now() });
857
+ const behaviour = behaviours[model] ?? "answer";
858
+ if (behaviour === "answer") return;
859
+ if (behaviour === "silent") noteModelActivityMonitored(request.signal);
860
+ if (behaviour === "partial") noteModelOutputReceived(request.signal);
861
+ await new Promise<void>((_resolve, reject) =>
862
+ request.signal?.addEventListener("abort", () => reject(new Error("aborted"))),
863
+ );
864
+ },
865
+ { childSessionId: "child-first-output" },
866
+ );
867
+ return { transport, calls };
868
+ }
869
+
870
+ async function run(
871
+ behaviours: Record<string, Behaviour>,
872
+ options: { timeoutMs: number; firstOutputTimeoutMs?: number; fallbackModels?: string[] },
873
+ ) {
874
+ const { transport, calls } = modelTransport(behaviours);
875
+ const startedAt = Date.now();
876
+ let caught: unknown;
877
+ let result: Awaited<ReturnType<typeof promptSyncWithValidatedOutputRetry>> | undefined;
878
+ try {
879
+ result = await promptSyncWithValidatedOutputRetry(
880
+ createClient(mock(async () => ({}))),
881
+ createArgs(primary),
882
+ {
883
+ transport: transport as never,
884
+ timeoutMs: options.timeoutMs,
885
+ ...(options.firstOutputTimeoutMs !== undefined
886
+ ? { firstOutputTimeoutMs: options.firstOutputTimeoutMs }
887
+ : {}),
888
+ fallbackModels: options.fallbackModels ?? ["anthropic/claude-sonnet-5-5"],
889
+ fetchOutput: async () => "<classify></classify>",
890
+ validateOutput: (output: string) => output,
891
+ },
892
+ );
893
+ } catch (error) {
894
+ caught = error;
895
+ }
896
+ return { result, caught, calls, elapsedMs: Date.now() - startedAt };
897
+ }
898
+
899
+ test("a primary that streams nothing by the deadline moves on to the fallback", async () => {
900
+ const outcome = await run(
901
+ { "opencode/free-model": "silent" },
902
+ { timeoutMs: 2_000, firstOutputTimeoutMs: 40 },
903
+ );
904
+ expect(outcome.caught).toBeUndefined();
905
+ expect(outcome.result?.attempt.label).toBe("anthropic/claude-sonnet-5-5");
906
+ expect(outcome.calls.map((call) => call.model)).toEqual([
907
+ "opencode/free-model",
908
+ "anthropic/claude-sonnet-5-5",
909
+ ]);
910
+ // The silent primary was cut at its first-output deadline, not its timeout.
911
+ expect(outcome.elapsedMs).toBeLessThan(1_000);
912
+ });
913
+
914
+ test("the unvalidated chain also moves on from a silent primary", async () => {
915
+ const { transport, calls } = modelTransport({ "opencode/free-model": "silent" });
916
+ await promptSyncWithModelSuggestionRetry(
917
+ createClient(mock(async () => ({}))),
918
+ createArgs(primary),
919
+ {
920
+ transport: transport as never,
921
+ timeoutMs: 2_000,
922
+ firstOutputTimeoutMs: 40,
923
+ fallbackModels: ["anthropic/claude-sonnet-5-5"],
924
+ },
925
+ );
926
+ expect(calls.map((call) => call.model)).toEqual([
927
+ "opencode/free-model",
928
+ "anthropic/claude-sonnet-5-5",
929
+ ]);
930
+ });
931
+
932
+ test("a primary that produced output before timing out does not fall back", async () => {
933
+ const outcome = await run(
934
+ { "opencode/free-model": "partial" },
935
+ { timeoutMs: 120, firstOutputTimeoutMs: 20 },
936
+ );
937
+ expect((outcome.caught as Error).message).toBe("prompt timed out after 120ms");
938
+ expect(outcome.calls).toHaveLength(1);
939
+ expect(getPromptFailureDetail(outcome.caught)?.failureClass).toBe("provider_timeout");
940
+ });
941
+
942
+ test("a silent primary's time comes out of the fallback's timeout", async () => {
943
+ // The fallback is the last model, so it gets no first-output cut of its own;
944
+ // its timeout is what the silent primary left of the overall 300 ms.
945
+ const outcome = await run(
946
+ { "opencode/free-model": "silent", "anthropic/claude-sonnet-5-5": "silent" },
947
+ { timeoutMs: 300, firstOutputTimeoutMs: 100 },
948
+ );
949
+ const message = (outcome.caught as Error).message;
950
+ const fallbackTimeoutMs = Number(/prompt timed out after (\d+)ms$/.exec(message)?.[1]);
951
+ expect(outcome.calls).toHaveLength(2);
952
+ expect(fallbackTimeoutMs).toBeLessThanOrEqual(200);
953
+ expect(fallbackTimeoutMs).toBeGreaterThan(100);
954
+ expect(outcome.elapsedMs).toBeLessThan(300 + 150);
955
+ });
956
+
957
+ test("the last model in the chain is never cut for silence", async () => {
958
+ const outcome = await run(
959
+ { "opencode/free-model": "silent" },
960
+ { timeoutMs: 120, firstOutputTimeoutMs: 20, fallbackModels: [] },
961
+ );
962
+ expect((outcome.caught as Error).message).toBe("prompt timed out after 120ms");
963
+ expect(outcome.calls).toHaveLength(1);
964
+ });
965
+
966
+ test("a transport that cannot see model output keeps the plain timeout", async () => {
967
+ const outcome = await run(
968
+ { "opencode/free-model": "unmonitored" },
969
+ { timeoutMs: 120, firstOutputTimeoutMs: 20 },
970
+ );
971
+ expect((outcome.caught as Error).message).toBe("prompt timed out after 120ms");
972
+ expect(outcome.calls).toHaveLength(1);
973
+ });
974
+
975
+ test("a caller without a first-output deadline keeps timeouts final", async () => {
976
+ // The historian passes no first-output deadline: a silent model still ends
977
+ // its chain at the timeout, exactly as before.
978
+ const outcome = await run({ "opencode/free-model": "silent" }, { timeoutMs: 120 });
979
+ expect((outcome.caught as Error).message).toBe("prompt timed out after 120ms");
980
+ expect(outcome.calls).toHaveLength(1);
981
+ });
982
+
983
+ test("a caller without a first-output deadline still falls back on a provider failure", async () => {
984
+ const prompt = mock(async (args: PromptCall) => {
985
+ if (args.body.model?.providerID === "opencode")
986
+ throw new Error("429 Too Many Requests: quota exceeded");
987
+ return {};
988
+ });
989
+ const result = await promptSyncWithValidatedOutputRetry(
990
+ createClient(prompt),
991
+ createArgs(primary),
992
+ {
993
+ fallbackModels: ["anthropic/claude-sonnet-5-5"],
994
+ fetchOutput: async () => "summary",
995
+ validateOutput: (output: string) => output,
996
+ },
997
+ );
998
+ expect(result.attempt.label).toBe("anthropic/claude-sonnet-5-5");
999
+ expect(prompt).toHaveBeenCalledTimes(2);
1000
+ });
1001
+ });