@cortexkit/opencode-magic-context 0.49.24 → 0.49.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/auto-search-worker.js +4 -4
  2. package/dist/chunk-embedding-write-worker.js +5 -5
  3. package/dist/{compartment-chunk-embedding-eypvn607.js → compartment-chunk-embedding-96ec8a7h.js} +3 -3
  4. package/dist/{conflict-warning-hook-a27bhggg.js → conflict-warning-hook-dv8fdc2w.js} +4 -4
  5. package/dist/{context-tvrjhnmj.js → context-pjqa24nd.js} +30 -24
  6. package/dist/{embedding-backfill-vddgmem3.js → embedding-backfill-a91rvdf9.js} +5 -5
  7. package/dist/features/magic-context/tool-definition-tokens.d.ts +113 -57
  8. package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -1
  9. package/dist/hooks/magic-context/caveman-cleanup.d.ts +14 -0
  10. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +11 -0
  12. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  13. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +12 -4
  14. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  15. package/dist/hooks/magic-context/foreign-text-parts.d.ts +47 -0
  16. package/dist/hooks/magic-context/foreign-text-parts.d.ts.map +1 -0
  17. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/lkg-measured-request.d.ts.map +1 -1
  19. package/dist/hooks/magic-context/lkg-replay-fit.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/read-session-chunk.d.ts +21 -0
  21. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/read-session-raw.d.ts +20 -0
  23. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts +42 -0
  26. package/dist/hooks/magic-context/signed-thinking-fit-snapshot.d.ts.map +1 -0
  27. package/dist/hooks/magic-context/tag-messages.d.ts +15 -0
  28. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/transform.d.ts +7 -0
  30. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  31. package/dist/{index-2haxh8h3.js → index-064v90e8.js} +1 -1
  32. package/dist/{index-p6evxfcc.js → index-40ma8m0c.js} +7 -49
  33. package/dist/{index-6g7tyb6e.js → index-56tfs78r.js} +96 -41
  34. package/dist/{index-jrjr58ez.js → index-6g1zq1sk.js} +3 -3
  35. package/dist/{index-3d5wnkq7.js → index-6tmf87w0.js} +1 -1
  36. package/dist/index-cfaet9cg.js +405 -0
  37. package/dist/{index-t1zk694n.js → index-dn2ke3b9.js} +30 -14
  38. package/dist/{index-t6j3qxnd.js → index-e5b61ty6.js} +1 -1
  39. package/dist/{index-dds7cxhz.js → index-hjnrp6vy.js} +67 -21
  40. package/dist/{index-c9zrgcnt.js → index-j43m40zd.js} +1 -1
  41. package/dist/{index-7tdtpqrg.js → index-m8va3mma.js} +39 -6
  42. package/dist/{index-z928hmnp.js → index-mphkpyap.js} +1 -1
  43. package/dist/{index-21bkd3m6.js → index-r3bteyev.js} +5 -5
  44. package/dist/{index-8e9qsnrw.js → index-rp78nqvr.js} +169 -11
  45. package/dist/{index-z05n7702.js → index-sgchhbvy.js} +1 -1
  46. package/dist/{index-jd0y50w3.js → index-va2g2q57.js} +3 -3
  47. package/dist/{index-jcr6pe7z.js → index-w55zp7kf.js} +1 -1
  48. package/dist/{index-szf8r0ba.js → index-xbbgcwd2.js} +1 -1
  49. package/dist/{index-7516anfj.js → index-xyx2ge2y.js} +4 -4
  50. package/dist/{index-57jf5ztp.js → index-zn2n24yr.js} +3 -3
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +42 -35
  53. package/dist/{message-fts-rowid-map-9e1getgs.js → message-fts-rowid-map-4ksatb6f.js} +2 -2
  54. package/dist/{message-index-bounded-k8pgrxad.js → message-index-bounded-whh5wv4a.js} +7 -7
  55. package/dist/{message-index-1sgzev6c.js → message-index-ywx53y30.js} +7 -7
  56. package/dist/migration-worker.js +4 -4
  57. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  58. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  59. package/dist/{project-embedding-registry-rstzmb60.js → project-embedding-registry-t9fx6jwh.js} +4 -4
  60. package/dist/raw-ordinal-warmup-worker.js +6 -6
  61. package/dist/{read-session-chunk-q9z6s48t.js → read-session-chunk-mqmkgdx0.js} +6 -4
  62. package/dist/{read-session-raw-s4amywnh.js → read-session-raw-dy2xxafq.js} +3 -1
  63. package/dist/{recomp-orchestrator-hr8ddk8z.js → recomp-orchestrator-qwcz86r1.js} +14 -14
  64. package/dist/{search-archive-c00etw7k.js → search-archive-8md3twv2.js} +5 -5
  65. package/dist/{search-3zjjmc60.js → search-y2t97tbb.js} +11 -11
  66. package/dist/{send-session-notification-ygj4mja0.js → send-session-notification-kzazs7fy.js} +3 -3
  67. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  68. package/dist/{transform-postprocess-phase-rredw6bz.js → transform-postprocess-phase-ppm1tfa7.js} +14 -14
  69. package/dist/v2/auto-search-worker.js +4 -4
  70. package/dist/v2/chunk-embedding-write-worker.js +5 -5
  71. package/dist/v2/{compartment-chunk-embedding-tk6g4q80.js → compartment-chunk-embedding-5rmrn09z.js} +3 -3
  72. package/dist/v2/{context-zbydzq4g.js → context-10pj3bwd.js} +245 -45
  73. package/dist/v2/{embedding-backfill-w5qp7t28.js → embedding-backfill-r9mzt2eg.js} +5 -5
  74. package/dist/v2/hooks/context.d.ts +4 -0
  75. package/dist/v2/hooks/context.d.ts.map +1 -1
  76. package/dist/v2/{message-fts-rowid-map-pqk3a55v.js → message-fts-rowid-map-2s3ta05x.js} +2 -2
  77. package/dist/v2/{message-index-bounded-a9xa8wsq.js → message-index-bounded-f4269d3a.js} +6 -6
  78. package/dist/v2/{message-index-5gnnn64b.js → message-index-v6g8mgn7.js} +6 -6
  79. package/dist/v2/migration-worker.js +4 -4
  80. package/dist/v2/{project-embedding-registry-e7zftfvj.js → project-embedding-registry-tgtmart7.js} +4 -4
  81. package/dist/v2/raw-ordinal-warmup-worker.js +6 -6
  82. package/dist/v2/{read-session-chunk-qqvda7zv.js → read-session-chunk-ym5zvexn.js} +5 -3
  83. package/dist/v2/{read-session-raw-ppjxnqk4.js → read-session-raw-484g8kf2.js} +3 -1
  84. package/dist/v2/{recomp-orchestrator-nmt9y25j.js → recomp-orchestrator-b44s2snm.js} +11 -11
  85. package/dist/v2/{search-6dawx2gt.js → search-75tf953m.js} +10 -10
  86. package/dist/v2/{search-archive-dhqj1w31.js → search-archive-pmf2c1kb.js} +4 -4
  87. package/dist/v2/{send-session-notification-f8scq6ae.js → send-session-notification-gd21f5rq.js} +1 -1
  88. package/dist/v2/{server-y9ncq4ck.js → server-317f3x9y.js} +3 -3
  89. package/dist/v2/{server-wxrdher8.js → server-4frtg2z1.js} +1 -1
  90. package/dist/v2/server-7d6m1p2b.js +361 -0
  91. package/dist/v2/{server-pw21ypwb.js → server-7dpnt0ys.js} +1 -1
  92. package/dist/v2/{server-r209n2fk.js → server-9zh78t8y.js} +65 -19
  93. package/dist/v2/{server-swvhxhxz.js → server-erk2bvdf.js} +39 -6
  94. package/dist/v2/{server-q5z0gag0.js → server-hnmm8yzq.js} +1 -1
  95. package/dist/v2/{server-gwmshgx9.js → server-jcsw05aa.js} +29 -13
  96. package/dist/v2/{server-mefps930.js → server-k46ec388.js} +7 -49
  97. package/dist/v2/{server-9xbbaekh.js → server-nmwhe524.js} +1 -1
  98. package/dist/v2/{server-9e55n4wx.js → server-vjer2jdn.js} +5 -5
  99. package/dist/v2/{server-16dpnz56.js → server-w7x9wgm0.js} +2 -2
  100. package/dist/v2/{server-8j2e7t31.js → server-wj8h2q21.js} +1 -1
  101. package/dist/v2/server.js +2 -2
  102. package/dist/v2/{wrapup-orchestrator-9z81xj66.js → wrapup-orchestrator-gwww44st.js} +11 -11
  103. package/dist/{wrapup-orchestrator-dbnb530w.js → wrapup-orchestrator-a9r8r4sk.js} +15 -15
  104. package/package.json +1 -1
  105. package/dist/index-j76ah6d7.js +0 -120
  106. package/dist/v2/server-d1dzgvwd.js +0 -120
@@ -70,7 +70,7 @@ import {
70
70
  readRawSeedTailFromDb2,
71
71
  readRawSessionBoundaryEndpointsFromDb2,
72
72
  prewarmRawSessionOrdinalsForDb
73
- } from "./server-swvhxhxz.js";
73
+ } from "./server-erk2bvdf.js";
74
74
  import {
75
75
  openCodeDbExists,
76
76
  withReadOnlySessionDb,
@@ -79,9 +79,9 @@ import {
79
79
  } from "./server-3vhxy2k5.js";
80
80
  import {
81
81
  getToolDefinitionMeasurementSignature,
82
- getLargestMeasuredToolDefinitionTokens,
83
- getMeasuredToolDefinitionTokens
84
- } from "./server-d1dzgvwd.js";
82
+ getMeasuredToolDefinitionTokens,
83
+ getSessionToolDefinitionTokens
84
+ } from "./server-7d6m1p2b.js";
85
85
  import {
86
86
  canonicalModelIdentity,
87
87
  piModelRefToCanonical
@@ -5721,7 +5721,7 @@ function createFinalWireUsageTracker() {
5721
5721
  const envelopeFor = (input) => {
5722
5722
  if (!input.providerID || !input.modelID || !input.systemPromptHash)
5723
5723
  return;
5724
- const tools = getToolDefinitionMeasurementSignature(input.providerID, input.modelID, input.agentName);
5724
+ const tools = getToolDefinitionMeasurementSignature(input.providerID, input.modelID, input.agentName, input.sessionId);
5725
5725
  if (!tools)
5726
5726
  return;
5727
5727
  return JSON.stringify([
@@ -5734,7 +5734,8 @@ function createFinalWireUsageTracker() {
5734
5734
  ]);
5735
5735
  };
5736
5736
  return {
5737
- estimate(sessionId, input, limit) {
5737
+ estimate(sessionId, request, limit) {
5738
+ const input = { ...request, sessionId: request.sessionId ?? sessionId };
5738
5739
  let measuredPrefix;
5739
5740
  try {
5740
5741
  const previous = served.get(sessionId);
@@ -5765,7 +5766,8 @@ function createFinalWireUsageTracker() {
5765
5766
  }
5766
5767
  return estimateOutgoingWireForRefusal({ ...input, measuredPrefix }, limit);
5767
5768
  },
5768
- capture(sessionId, input) {
5769
+ capture(sessionId, request) {
5770
+ const input = { ...request, sessionId: request.sessionId ?? sessionId };
5769
5771
  const previous = served.get(sessionId);
5770
5772
  served.delete(sessionId);
5771
5773
  try {
@@ -5836,7 +5838,7 @@ function estimateOutgoingWireForRefusal(input, limit) {
5836
5838
  if (bytes) {
5837
5839
  const lower = baseline + Math.ceil(bytes.bytes / 4);
5838
5840
  const calibration = resolveDecisionCalibration(input.providerID, input.modelID);
5839
- const tools = input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName) : undefined;
5841
+ const tools = input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName, input.sessionId) : undefined;
5840
5842
  const envelope = measured ? baseline : tools !== undefined && Number.isFinite(input.systemPromptTokens) && input.systemPromptTokens > 0 ? providerMass({ system: input.systemPromptTokens, tools }, calibration, true) : undefined;
5841
5843
  const upper = envelope === undefined ? undefined : envelope + Math.ceil(bytes.bytes * Math.max(UNKNOWN_FIT_RATIO, calibration.toolsRatio, calibration.proseRatio));
5842
5844
  if (bytes.aborted || lower > limit || upper !== undefined && upper <= limit) {
@@ -5864,17 +5866,17 @@ function estimateFinalWireInputTokens(input) {
5864
5866
  total.toolCall += next.toolCall;
5865
5867
  return total;
5866
5868
  }, { conversation: 0, toolCall: 0 });
5867
- const measuredToolDefinitions = input.toolDefinitionTokens ?? (input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName) : undefined);
5869
+ const measuredToolDefinitions = input.toolDefinitionTokens ?? (input.providerID && input.modelID ? getMeasuredToolDefinitionTokens(input.providerID, input.modelID, input.agentName, input.sessionId) : undefined);
5868
5870
  const calibration = resolveDecisionCalibration(input.providerID, input.modelID);
5869
- const largestToolDefinitions = measuredToolDefinitions === undefined ? getLargestMeasuredToolDefinitionTokens() : undefined;
5870
- const toolDefinitions = measuredToolDefinitions ?? (largestToolDefinitions === undefined ? undefined : Math.ceil(largestToolDefinitions * UNKNOWN_FIT_RATIO / (calibration.seeded ? calibration.toolsRatio : UNKNOWN_FIT_RATIO)));
5871
+ const borrowedToolDefinitions = measuredToolDefinitions === undefined ? getSessionToolDefinitionTokens(input.sessionId) : undefined;
5872
+ const toolDefinitions = measuredToolDefinitions ?? (borrowedToolDefinitions === undefined ? undefined : Math.ceil(borrowedToolDefinitions * UNKNOWN_FIT_RATIO / (calibration.seeded ? calibration.toolsRatio : UNKNOWN_FIT_RATIO)));
5871
5873
  const rawComponents = {
5872
5874
  system: input.systemPromptTokens,
5873
5875
  tools: (toolDefinitions ?? 0) + messageTokens.toolCall,
5874
5876
  prose: messageTokens.conversation
5875
5877
  };
5876
5878
  const tokens = providerMass(rawComponents, calibration, true);
5877
- const pressureToolDefinitions = measuredToolDefinitions ?? largestToolDefinitions ?? 0;
5879
+ const pressureToolDefinitions = measuredToolDefinitions ?? borrowedToolDefinitions ?? 0;
5878
5880
  const pressureTokens = providerMass({
5879
5881
  system: rawComponents.system,
5880
5882
  tools: pressureToolDefinitions + messageTokens.toolCall,
@@ -6932,6 +6934,20 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
6932
6934
  return null;
6933
6935
  return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb2(db, sessionId, messageId));
6934
6936
  }
6937
+ function resolveHistorianChunkStart2(sessionId, newest) {
6938
+ if (!newest)
6939
+ return 1;
6940
+ const fallback = newest.endMessage + 1;
6941
+ if (hasRawMessageProvider2(sessionId))
6942
+ return fallback;
6943
+ const endId = newest.endMessageId;
6944
+ if (typeof endId !== "string" || endId.length === 0)
6945
+ return fallback;
6946
+ const ordinal = readRawSessionMessageOrdinalById2(sessionId, endId);
6947
+ if (typeof ordinal !== "number" || !Number.isFinite(ordinal) || ordinal < 1)
6948
+ return fallback;
6949
+ return ordinal + 1;
6950
+ }
6935
6951
  function readRawSessionMessageOrderPosition(sessionId, messageId) {
6936
6952
  const provider = sessionProviders.get(sessionId)?.provider;
6937
6953
  if (provider) {
@@ -7432,4 +7448,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7432
7448
  });
7433
7449
  }
7434
7450
 
7435
- export { expandToolPart, askAnswerLines, 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, 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, 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, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
7451
+ export { expandToolPart, askAnswerLines, 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, 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, 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, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, resolveHistorianChunkStart2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
@@ -35,17 +35,20 @@ import {
35
35
  } from "./server-rqebawx1.js";
36
36
  import {
37
37
  cleanUserText2
38
- } from "./server-gwmshgx9.js";
38
+ } from "./server-jcsw05aa.js";
39
+ import {
40
+ BoundedSessionMap
41
+ } from "./server-7d6m1p2b.js";
39
42
  import {
40
43
  recordMessageFtsRowid2,
41
44
  recordIndexedMessageTime2,
42
45
  messageFtsOrdinalRangeIsMapped2,
43
46
  getMessageFtsRowidMapBackfillProgress2,
44
47
  deleteUnmappedMessageFtsRows2
45
- } from "./server-wxrdher8.js";
48
+ } from "./server-4frtg2z1.js";
46
49
  import {
47
50
  deleteChunkEmbedBackoffForSession2
48
- } from "./server-pw21ypwb.js";
51
+ } from "./server-7dpnt0ys.js";
49
52
  import {
50
53
  sameProjectDirectory
51
54
  } from "./server-knvkbfvh.js";
@@ -63,51 +66,6 @@ import {
63
66
  writeStorageFileDurableAtomicSync
64
67
  } from "./server-fvnzcnww.js";
65
68
 
66
- // src/shared/bounded-session-map.ts
67
- class BoundedSessionMap {
68
- maxEntries;
69
- store = new Map;
70
- constructor(maxEntries) {
71
- if (!Number.isFinite(maxEntries) || maxEntries < 1) {
72
- throw new Error(`BoundedSessionMap: maxEntries must be >= 1, got ${maxEntries}`);
73
- }
74
- this.maxEntries = maxEntries;
75
- }
76
- get(sessionId) {
77
- const value = this.store.get(sessionId);
78
- if (value === undefined)
79
- return;
80
- this.store.delete(sessionId);
81
- this.store.set(sessionId, value);
82
- return value;
83
- }
84
- peek(sessionId) {
85
- return this.store.get(sessionId);
86
- }
87
- has(sessionId) {
88
- return this.store.has(sessionId);
89
- }
90
- set(sessionId, value) {
91
- if (this.store.has(sessionId)) {
92
- this.store.delete(sessionId);
93
- } else if (this.store.size >= this.maxEntries) {
94
- const oldest = this.store.keys().next().value;
95
- if (oldest !== undefined)
96
- this.store.delete(oldest);
97
- }
98
- this.store.set(sessionId, value);
99
- }
100
- delete(sessionId) {
101
- return this.store.delete(sessionId);
102
- }
103
- clear() {
104
- this.store.clear();
105
- }
106
- get size() {
107
- return this.store.size;
108
- }
109
- }
110
-
111
69
  // src/hooks/magic-context/lkg-recovery-fence.ts
112
70
  import { createHash as createHash2, randomUUID as randomUUID2 } from "node:crypto";
113
71
  import {
@@ -2259,4 +2217,4 @@ async function sweepOrphanedOpenCodeMessageIndexesCooperatively2(db, openSource,
2259
2217
  }));
2260
2218
  }
2261
2219
 
2262
- export { BoundedSessionMap, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, takeLkgRecoveryLockSweepPage, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, cleanSearchText, keywordRelevance, matchedSearchSnippet, clearCompressionDepth, clearCompressionDepthRange, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };
2220
+ export { LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, takeLkgRecoveryLockSweepPage, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, cleanSearchText, keywordRelevance, matchedSearchSnippet, clearCompressionDepth, clearCompressionDepthRange, advanceSessionActivity, backfillSessionActivity, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };
@@ -17,7 +17,7 @@ import {
17
17
  } from "./server-wwaw5npa.js";
18
18
  import {
19
19
  embedTextForProject2
20
- } from "./server-q5z0gag0.js";
20
+ } from "./server-hnmm8yzq.js";
21
21
  import {
22
22
  saveEmbeddingIfHashMatches
23
23
  } from "./server-4dhv7mqz.js";
@@ -22,7 +22,7 @@ import {
22
22
  loadCompartmentChunkEmbeddingsForSearch2,
23
23
  peekCompartmentChunkSearchPool2,
24
24
  warmCompartmentChunkSearchPool2
25
- } from "./server-pw21ypwb.js";
25
+ } from "./server-7dpnt0ys.js";
26
26
  import {
27
27
  recordEmbeddingMeasurement,
28
28
  saveCommitEmbedding,
@@ -39,7 +39,7 @@ import {
39
39
  enqueueShadowEmbeddingItems2,
40
40
  getProjectEmbeddingSnapshot2,
41
41
  embedItemsForProject2
42
- } from "./server-q5z0gag0.js";
42
+ } from "./server-hnmm8yzq.js";
43
43
  import {
44
44
  getProjectEmbeddings2
45
45
  } from "./server-4dhv7mqz.js";
@@ -48,7 +48,7 @@ import {
48
48
  isEmbeddingEnabled,
49
49
  embedText,
50
50
  ensureMemoryEmbeddings2
51
- } from "./server-8j2e7t31.js";
51
+ } from "./server-wj8h2q21.js";
52
52
  import {
53
53
  ModuleMemoryAuthorityError2,
54
54
  getMemoriesByProject2,
@@ -63,13 +63,13 @@ import {
63
63
  sanitizeFtsQuery,
64
64
  searchMemoriesFTS,
65
65
  searchMemoriesFTSUnion
66
- } from "./server-9xbbaekh.js";
66
+ } from "./server-nmwhe524.js";
67
67
  import {
68
68
  cleanSearchText,
69
69
  keywordRelevance,
70
70
  matchedSearchSnippet,
71
71
  getIndexedMessageCorpusSize2
72
- } from "./server-mefps930.js";
72
+ } from "./server-k46ec388.js";
73
73
  import {
74
74
  MESSAGE_FTS_SESSION_FILTER_SQL,
75
75
  withMessageFtsSessionFilter
@@ -6,7 +6,7 @@ import {
6
6
  } from "./server-gzy5w8ya.js";
7
7
  import {
8
8
  runSessionWarmupWorker
9
- } from "./server-swvhxhxz.js";
9
+ } from "./server-erk2bvdf.js";
10
10
  import {
11
11
  estimateTokens
12
12
  } from "./server-3mz2qh5a.js";
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  hasRawMessageProvider2,
19
19
  readRawSessionMessageIdOrdinalsForRange2
20
- } from "./server-gwmshgx9.js";
20
+ } from "./server-jcsw05aa.js";
21
21
 
22
22
  // src/tools/ctx-expand/search-archive.ts
23
23
  var archiveReadsOnThisThread = 0;
@@ -15,7 +15,7 @@ import {
15
15
  OpenAICompatibleEmbeddingProvider,
16
16
  getProjectEmbeddingSnapshot2,
17
17
  embedBatchForProject2
18
- } from "./server-q5z0gag0.js";
18
+ } from "./server-hnmm8yzq.js";
19
19
  import {
20
20
  isEmbeddingHostBusy2
21
21
  } from "./server-qt1qqasc.js";
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.24",
7877
+ version: "0.49.26",
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-zbydzq4g.js");
8198
+ const { registerContext } = await import("./context-10pj3bwd.js");
8199
8199
  setHarness2("opencode2");
8200
8200
  bindStaleBuildNotice({}, import.meta.url, "opencode2");
8201
8201
  const duties = await registerContext(context);
@@ -19,8 +19,8 @@ import {
19
19
  registerActiveCompartmentRun,
20
20
  setRecompStarting2,
21
21
  setRecompTerminal2
22
- } from "./server-r209n2fk.js";
23
- import"./server-q5z0gag0.js";
22
+ } from "./server-9zh78t8y.js";
23
+ import"./server-hnmm8yzq.js";
24
24
  import"./server-3mz2qh5a.js";
25
25
  import"./server-ab1g0wn9.js";
26
26
  import {
@@ -28,10 +28,10 @@ import {
28
28
  } from "./server-gzy5w8ya.js";
29
29
  import"./server-51779zs2.js";
30
30
  import"./server-cpjk5jd2.js";
31
- import"./server-swvhxhxz.js";
32
- import"./server-wxrdher8.js";
33
- import"./server-pw21ypwb.js";
34
- import"./server-mefps930.js";
31
+ import"./server-erk2bvdf.js";
32
+ import"./server-4frtg2z1.js";
33
+ import"./server-7dpnt0ys.js";
34
+ import"./server-k46ec388.js";
35
35
  import {
36
36
  getWrapupInProgressState,
37
37
  acquireWrapupInProgress,
@@ -40,20 +40,20 @@ import {
40
40
  getHistorianFailureState,
41
41
  clearEmergencyRecovery,
42
42
  prepareRawSessionOrdinals2
43
- } from "./server-gwmshgx9.js";
43
+ } from "./server-jcsw05aa.js";
44
44
  import"./server-rqebawx1.js";
45
- import"./server-y9ncq4ck.js";
45
+ import"./server-317f3x9y.js";
46
46
  import"./server-1zx87sdm.js";
47
47
  import"./server-fa7vtp40.js";
48
48
  import"./server-24g8r2d0.js";
49
49
  import"./server-2ra6pwf3.js";
50
50
  import"./server-3vhxy2k5.js";
51
- import"./server-d1dzgvwd.js";
51
+ import"./server-7d6m1p2b.js";
52
52
  import"./server-fr0wbhdn.js";
53
53
  import"./server-wwaw5npa.js";
54
54
  import"./server-qjvk4a9t.js";
55
55
  import"./server-fb3zxn06.js";
56
- import"./server-9xbbaekh.js";
56
+ import"./server-nmwhe524.js";
57
57
  import {
58
58
  pushNotification2
59
59
  } from "./server-x8a7jmkh.js";
@@ -62,7 +62,7 @@ import"./server-qt1qqasc.js";
62
62
  import"./server-bsgd4dk1.js";
63
63
  import"./server-4dhv7mqz.js";
64
64
  import"./server-vr4szghm.js";
65
- import"./server-8j2e7t31.js";
65
+ import"./server-wj8h2q21.js";
66
66
  import"./server-jjvbk92s.js";
67
67
  import"./server-94wk1ey3.js";
68
68
  import"./server-29qp8nz4.js";
@@ -1,41 +1,41 @@
1
1
  import {
2
2
  runManagedWrapup2
3
- } from "./index-7516anfj.js";
4
- import"./index-jd0y50w3.js";
5
- import"./index-dds7cxhz.js";
3
+ } from "./index-xyx2ge2y.js";
4
+ import"./index-va2g2q57.js";
5
+ import"./index-hjnrp6vy.js";
6
6
  import"./index-qgh1qwjj.js";
7
- import"./index-z928hmnp.js";
8
- import"./index-p6evxfcc.js";
7
+ import"./index-mphkpyap.js";
8
+ import"./index-40ma8m0c.js";
9
9
  import"./index-sd3egckz.js";
10
- import"./index-t6j3qxnd.js";
11
- import"./index-z05n7702.js";
10
+ import"./index-e5b61ty6.js";
11
+ import"./index-sgchhbvy.js";
12
12
  import"./index-jjvbk92s.js";
13
13
  import"./index-4dhv7mqz.js";
14
14
  import"./index-spwjbkc7.js";
15
- import"./index-jcr6pe7z.js";
15
+ import"./index-w55zp7kf.js";
16
16
  import"./index-qt1qqasc.js";
17
- import"./index-t1zk694n.js";
17
+ import"./index-dn2ke3b9.js";
18
18
  import"./index-whcgcfrv.js";
19
19
  import"./index-1zx87sdm.js";
20
- import"./index-c9zrgcnt.js";
20
+ import"./index-j43m40zd.js";
21
21
  import"./index-x8a7jmkh.js";
22
22
  import"./index-rrv26qjz.js";
23
23
  import"./index-51rdvtkz.js";
24
24
  import"./index-nxrsns5x.js";
25
25
  import"./index-kfyb3k6n.js";
26
- import"./index-3d5wnkq7.js";
26
+ import"./index-6tmf87w0.js";
27
27
  import"./index-wfybj1dw.js";
28
- import"./index-jrjr58ez.js";
28
+ import"./index-6g1zq1sk.js";
29
29
  import"./index-fb3zxn06.js";
30
30
  import"./index-9q1g3c5q.js";
31
31
  import"./index-kq5w68dp.js";
32
- import"./index-szf8r0ba.js";
32
+ import"./index-xbbgcwd2.js";
33
33
  import"./index-fr0wbhdn.js";
34
34
  import"./index-c7phnbvk.js";
35
- import"./index-j76ah6d7.js";
35
+ import"./index-cfaet9cg.js";
36
36
  import"./index-x9k3mqrf.js";
37
37
  import"./index-58e3y90n.js";
38
- import"./index-7tdtpqrg.js";
38
+ import"./index-m8va3mma.js";
39
39
  import"./index-v0p37hm2.js";
40
40
  import"./index-t5pck3ss.js";
41
41
  import"./index-b88dwwrh.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.49.24",
3
+ "version": "0.49.26",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",
@@ -1,120 +0,0 @@
1
- import {
2
- estimateTokens
3
- } from "./index-b88dwwrh.js";
4
- import {
5
- stableStringify
6
- } from "./index-x9k3mqrf.js";
7
-
8
- // src/features/magic-context/tool-definition-tokens.ts
9
- import { createHash } from "node:crypto";
10
- var measurements = new Map;
11
- var fingerprints = new Map;
12
- var persistenceDb = null;
13
- var cachedInsertStmt = null;
14
- function keyFor(providerID, modelID, agentName) {
15
- const agent = agentName && agentName.length > 0 ? agentName : "default";
16
- return `${providerID}/${modelID}/${agent}`;
17
- }
18
- function fingerprintFor(description, parameters) {
19
- return createHash("sha256").update(description).update("\x00").update(stableStringify(parameters)).digest("hex");
20
- }
21
- function getCurrentToolSetHash(providerID, modelID, agentName) {
22
- if (!providerID || !modelID)
23
- return "";
24
- const toolIds = measurements.get(keyFor(providerID, modelID, agentName));
25
- if (!toolIds || toolIds.size === 0)
26
- return "";
27
- return createHash("sha256").update(Array.from(toolIds.keys()).sort().join("\x00")).digest("hex");
28
- }
29
- function getToolDefinitionMeasurementSignature(providerID, modelID, agentName) {
30
- const key = keyFor(providerID, modelID, agentName);
31
- const measured = measurements.get(key);
32
- const observed = fingerprints.get(key);
33
- if (!measured || !observed || [...measured.keys()].some((id) => !observed.has(id)))
34
- return;
35
- return createHash("sha256").update(JSON.stringify([...measured.keys()].sort().map((id) => [id, observed.get(id)]))).digest("hex");
36
- }
37
- function setDatabase(db) {
38
- persistenceDb = db;
39
- cachedInsertStmt = null;
40
- }
41
- function loadToolDefinitionMeasurements(db) {
42
- let rows = [];
43
- try {
44
- rows = db.prepare("SELECT provider_id, model_id, agent_name, tool_id, token_count FROM tool_definition_measurements").all();
45
- } catch {
46
- return;
47
- }
48
- for (const row of rows) {
49
- const key = keyFor(row.provider_id, row.model_id, row.agent_name);
50
- let inner = measurements.get(key);
51
- if (!inner) {
52
- inner = new Map;
53
- measurements.set(key, inner);
54
- }
55
- inner.set(row.tool_id, row.token_count);
56
- }
57
- }
58
- function recordToolDefinition(providerID, modelID, agentName, toolID, description, parameters) {
59
- if (!providerID || !modelID || !toolID)
60
- return;
61
- const key = keyFor(providerID, modelID, agentName);
62
- const fp = fingerprintFor(description ?? "", parameters);
63
- let innerFp = fingerprints.get(key);
64
- if (innerFp && innerFp.get(toolID) === fp)
65
- return;
66
- let paramsText = "";
67
- try {
68
- paramsText = parameters === undefined ? "" : JSON.stringify(parameters);
69
- } catch {
70
- paramsText = "";
71
- }
72
- const tokens = estimateTokens(description ?? "") + estimateTokens(paramsText);
73
- let inner = measurements.get(key);
74
- if (!inner) {
75
- inner = new Map;
76
- measurements.set(key, inner);
77
- }
78
- inner.set(toolID, tokens);
79
- if (!innerFp) {
80
- innerFp = new Map;
81
- fingerprints.set(key, innerFp);
82
- }
83
- innerFp.set(toolID, fp);
84
- if (persistenceDb) {
85
- try {
86
- const agent = agentName && agentName.length > 0 ? agentName : "default";
87
- if (!cachedInsertStmt) {
88
- cachedInsertStmt = persistenceDb.prepare(`INSERT OR REPLACE INTO tool_definition_measurements
89
- (provider_id, model_id, agent_name, tool_id, token_count, recorded_at)
90
- VALUES (?, ?, ?, ?, ?, ?)`);
91
- }
92
- cachedInsertStmt.run(providerID, modelID, agent, toolID, tokens, Date.now());
93
- } catch {
94
- cachedInsertStmt = null;
95
- }
96
- }
97
- }
98
- function getLargestMeasuredToolDefinitionTokens() {
99
- let largest = 0;
100
- for (const tools of measurements.values()) {
101
- let total = 0;
102
- for (const tokens of tools.values())
103
- total += tokens;
104
- largest = Math.max(largest, total);
105
- }
106
- return largest > 0 ? largest : undefined;
107
- }
108
- function getMeasuredToolDefinitionTokens(providerID, modelID, agentName) {
109
- if (!providerID || !modelID)
110
- return;
111
- const inner = measurements.get(keyFor(providerID, modelID, agentName));
112
- if (!inner || inner.size === 0)
113
- return;
114
- let total = 0;
115
- for (const tokens of inner.values())
116
- total += tokens;
117
- return total;
118
- }
119
-
120
- export { getCurrentToolSetHash, getToolDefinitionMeasurementSignature, setDatabase, loadToolDefinitionMeasurements, recordToolDefinition, getLargestMeasuredToolDefinitionTokens, getMeasuredToolDefinitionTokens };