@cortexkit/opencode-magic-context 0.44.0 → 0.44.1

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 (92) hide show
  1. package/dist/agents/magic-context-prompt.d.ts +2 -0
  2. package/dist/agents/magic-context-prompt.d.ts.map +1 -1
  3. package/dist/{announcement-1a8bvswd.js → announcement-n8hs7kjw.js} +2 -2
  4. package/dist/config/live-child-output-cap.d.ts +18 -0
  5. package/dist/config/live-child-output-cap.d.ts.map +1 -0
  6. package/dist/config/schema/magic-context.d.ts +1 -1
  7. package/dist/config/schema/magic-context.d.ts.map +1 -1
  8. package/dist/{conflict-warning-hook-48f7np9d.js → conflict-warning-hook-d14ah73v.js} +6 -6
  9. package/dist/{derive-budgets-8kgevxmx.js → derive-budgets-gd2270s0.js} +3 -3
  10. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  11. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts +2 -0
  12. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts.map +1 -1
  13. package/dist/features/magic-context/dreamer/primer-seed.d.ts +11 -5
  14. package/dist/features/magic-context/dreamer/primer-seed.d.ts.map +1 -1
  15. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +2 -2
  16. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  17. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
  18. package/dist/features/magic-context/memory/project-identity.d.ts +7 -0
  19. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  20. package/dist/features/magic-context/mural/mural-font.generated.d.ts.map +1 -1
  21. package/dist/features/magic-context/session-cache-ttl.d.ts +10 -0
  22. package/dist/features/magic-context/session-cache-ttl.d.ts.map +1 -0
  23. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  27. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  30. package/dist/hooks/magic-context/opencode-v1-store-fixture.d.ts +12 -0
  31. package/dist/hooks/magic-context/opencode-v1-store-fixture.d.ts.map +1 -0
  32. package/dist/hooks/magic-context/read-session-chunk.d.ts +16 -0
  33. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  34. package/dist/hooks/magic-context/read-session-db.d.ts +5 -1
  35. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/read-session-raw.d.ts +10 -0
  37. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/transform.d.ts +1 -0
  40. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  41. package/dist/{index-cj5qe2nw.js → index-0rp6pj54.js} +3 -3
  42. package/dist/{index-4b30nf6z.js → index-32b096cc.js} +1 -1
  43. package/dist/{index-tjq5jztd.js → index-3bygzk2d.js} +1 -1
  44. package/dist/{index-c906f3ff.js → index-a9vbtdzv.js} +4 -4
  45. package/dist/{index-pye48m79.js → index-cz88kw0n.js} +13 -3
  46. package/dist/{index-5f4qsnaq.js → index-d107az47.js} +2 -2
  47. package/dist/{index-rdey8znw.js → index-jtdrvmcn.js} +2368 -35
  48. package/dist/{index-v6wsttqt.js → index-kr5qehbd.js} +1 -1
  49. package/dist/{index-dx0xnd4q.js → index-kwe03yde.js} +1 -1
  50. package/dist/{index-2zf5fv89.js → index-s6b7h12g.js} +100 -12
  51. package/dist/{index-6z9g64js.js → index-s70wtd8k.js} +4 -1
  52. package/dist/{index-01ft0h3p.js → index-stb5fg12.js} +2 -2
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +474 -2601
  55. package/dist/{message-time-backfill-rm9wmcem.js → message-time-backfill-q374fxc5.js} +3 -3
  56. package/dist/plugin/dream-timer.d.ts.map +1 -1
  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/{read-session-chunk-ktz5zt70.js → read-session-chunk-fkdv2g5b.js} +6 -4
  60. package/dist/{recomp-orchestrator-ahekzt0s.js → recomp-orchestrator-k4h5n0p3.js} +9 -9
  61. package/dist/{safe-notification-target-6w0esgd6.js → safe-notification-target-50gm9c58.js} +3 -3
  62. package/dist/{send-session-notification-w7xbnrsm.js → send-session-notification-g2k03zyn.js} +5 -5
  63. package/dist/shared/cache-ttl-display.d.ts +3 -1
  64. package/dist/shared/cache-ttl-display.d.ts.map +1 -1
  65. package/dist/shared/harness.d.ts +11 -0
  66. package/dist/shared/harness.d.ts.map +1 -1
  67. package/dist/shared/model-cache-ttl.d.ts +9 -0
  68. package/dist/shared/model-cache-ttl.d.ts.map +1 -0
  69. package/dist/shared/rpc-types.d.ts +1 -1
  70. package/dist/shared/rpc-types.d.ts.map +1 -1
  71. package/dist/shared/status-view.d.ts +1 -1
  72. package/dist/shared/status-view.d.ts.map +1 -1
  73. package/dist/tools/ctx-expand/render.d.ts.map +1 -1
  74. package/dist/v2/hooks/context.d.ts.map +1 -1
  75. package/dist/v2/server.js +7820 -7567
  76. package/dist/wrapup-orchestrator-35y56636.js +18 -0
  77. package/package.json +1 -1
  78. package/src/agents/magic-context-prompt.test.ts +125 -0
  79. package/src/agents/magic-context-prompt.ts +12 -7
  80. package/src/config/live-child-output-cap.test.ts +75 -0
  81. package/src/config/live-child-output-cap.ts +70 -0
  82. package/src/config/live-run-config.test.ts +24 -11
  83. package/src/config/schema/magic-context.test.ts +16 -1
  84. package/src/config/schema/magic-context.ts +6 -4
  85. package/src/shared/cache-ttl-display.ts +14 -20
  86. package/src/shared/harness.ts +14 -0
  87. package/src/shared/model-cache-ttl.test.ts +40 -0
  88. package/src/shared/model-cache-ttl.ts +58 -0
  89. package/src/shared/prompt-surface-a1-golden.md +13 -13
  90. package/src/shared/rpc-types.ts +1 -1
  91. package/src/shared/status-view.ts +1 -1
  92. package/dist/wrapup-orchestrator-9srk0kjf.js +0 -18
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log
3
- } from "./index-tjq5jztd.js";
3
+ } from "./index-3bygzk2d.js";
4
4
 
5
5
  // src/shared/write-transaction-timing.ts
6
6
  var SLOW_WRITE_TRANSACTION_THRESHOLD_MS = 1000;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log
3
- } from "./index-tjq5jztd.js";
3
+ } from "./index-3bygzk2d.js";
4
4
 
5
5
  // src/shared/safe-notification-target.ts
6
6
  var DEFAULT_TITLE_RE = /^(New session - |Child session - )\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  getHarness
3
- } from "./index-6z9g64js.js";
3
+ } from "./index-s70wtd8k.js";
4
4
  import {
5
5
  openCodeDbExists,
6
6
  withReadOnlySessionDb,
7
7
  getRawSessionMessageCountFromDb,
8
8
  getMessageTimesFromOpenCodeDb
9
- } from "./index-pye48m79.js";
9
+ } from "./index-cz88kw0n.js";
10
10
  import {
11
11
  UNKNOWN_FIT_RATIO,
12
12
  resolveDecisionCalibration,
@@ -3051,11 +3051,23 @@ function readRawSessionMessagesFromDb(db, sessionId) {
3051
3051
  });
3052
3052
  }
3053
3053
  function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER) {
3054
+ const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark);
3055
+ if (messageRows.length === 0)
3056
+ return [];
3057
+ const placeholders = messageRows.map(() => "?").join(", ");
3058
+ const partRows = db.prepare(`SELECT message_id, data, time_updated
3059
+ FROM part
3060
+ WHERE +session_id = ?
3061
+ AND likelihood(message_id IN (${placeholders}), 0.000001)
3062
+ ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageRows.map((row) => row.id)).filter(isRawPartRow);
3063
+ return assembleRawMessagePage(messageRows, partRows);
3064
+ }
3065
+ function readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark) {
3054
3066
  const remaining = Math.max(0, Math.floor(finalWatermark) - Math.floor(afterOrdinal));
3055
3067
  const pageSize = Math.min(Math.max(1, Math.floor(limit)), remaining);
3056
3068
  if (pageSize === 0)
3057
3069
  return [];
3058
- const messageRows = db.prepare(`SELECT id, data, time_created, time_updated
3070
+ return db.prepare(`SELECT id, data, time_created, time_updated
3059
3071
  FROM message
3060
3072
  WHERE session_id = ?
3061
3073
  AND NOT (
@@ -3071,14 +3083,8 @@ function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, fin
3071
3083
  ...row,
3072
3084
  ordinal: Math.floor(afterOrdinal) + index + 1
3073
3085
  }));
3074
- if (messageRows.length === 0)
3075
- return [];
3076
- const placeholders = messageRows.map(() => "?").join(", ");
3077
- const partRows = db.prepare(`SELECT message_id, data, time_updated
3078
- FROM part
3079
- WHERE +session_id = ?
3080
- AND likelihood(message_id IN (${placeholders}), 0.000001)
3081
- ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageRows.map((row) => row.id)).filter(isRawPartRow);
3086
+ }
3087
+ function assembleRawMessagePage(messageRows, partRows) {
3082
3088
  const partsByMessageId = new Map;
3083
3089
  for (const part of partRows) {
3084
3090
  const list = partsByMessageId.get(part.message_id) ?? [];
@@ -3097,6 +3103,49 @@ function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, fin
3097
3103
  };
3098
3104
  });
3099
3105
  }
3106
+ var RAW_SUMMARY_TEXT_MAX_CHARS = 8192;
3107
+ var RAW_SUMMARY_ARG_MAX_CHARS = 512;
3108
+ var RAW_SUMMARY_TOOL_INPUT_KEYS = [
3109
+ "description",
3110
+ "filePath",
3111
+ "path",
3112
+ "pattern",
3113
+ "query",
3114
+ "symbol",
3115
+ "module",
3116
+ "action"
3117
+ ];
3118
+ function summaryStringField(jsonPath) {
3119
+ return `CASE WHEN json_type(data, '${jsonPath}') = 'text' THEN substr(json_extract(data, '${jsonPath}'), 1, ${RAW_SUMMARY_ARG_MAX_CHARS}) END`;
3120
+ }
3121
+ var RAW_SUMMARY_PART_DATA_SQL = `CASE
3122
+ WHEN json_extract(data, '$.type') = 'text'
3123
+ THEN json_set(data, '$.text', substr(json_extract(data, '$.text'), 1, ${RAW_SUMMARY_TEXT_MAX_CHARS}))
3124
+ ELSE json_object(
3125
+ 'type', 'tool',
3126
+ 'tool', ${summaryStringField("$.tool")},
3127
+ 'callID', ${summaryStringField("$.callID")},
3128
+ 'state', json_object(
3129
+ 'status', ${summaryStringField("$.state.status")},
3130
+ 'input', json_object(${RAW_SUMMARY_TOOL_INPUT_KEYS.map((key) => `'${key}', ${summaryStringField(`$.state.input.${key}`)}`).join(", ")}),
3131
+ 'metadata', json_object('description', ${summaryStringField("$.state.metadata.description")})
3132
+ )
3133
+ )
3134
+ END`;
3135
+ function readRawSessionMessageSummaryPageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER) {
3136
+ const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark);
3137
+ if (messageRows.length === 0)
3138
+ return [];
3139
+ const placeholders = messageRows.map(() => "?").join(", ");
3140
+ const partRows = db.prepare(`SELECT message_id, ${RAW_SUMMARY_PART_DATA_SQL} AS data, time_updated
3141
+ FROM part
3142
+ WHERE +session_id = ?
3143
+ AND likelihood(message_id IN (${placeholders}), 0.000001)
3144
+ AND json_valid(data) = 1
3145
+ AND json_extract(data, '$.type') IN ('text', 'tool')
3146
+ ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageRows.map((row) => row.id)).filter(isRawPartRow);
3147
+ return assembleRawMessagePage(messageRows, partRows);
3148
+ }
3100
3149
  function countRawSessionMessageOrdinalsFromDb(db, sessionId) {
3101
3150
  const row = db.prepare(`SELECT COUNT(*) AS count
3102
3151
  FROM message
@@ -5001,6 +5050,45 @@ function readRawSessionMessageRangeFromSource(sessionId, fromOrdinal, toOrdinal)
5001
5050
  }
5002
5051
  return messages;
5003
5052
  }
5053
+ var RAW_MESSAGE_VISIT_PAGE_SIZE = 50;
5054
+ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, options = {}) {
5055
+ const from = Math.max(1, Math.floor(fromOrdinal));
5056
+ const to = Math.floor(toOrdinal);
5057
+ if (to < from)
5058
+ return;
5059
+ const provider = sessionProviders.get(sessionId);
5060
+ if (provider && !provider.readMessagePage) {
5061
+ for (const message of provider.readMessages()) {
5062
+ if (message.ordinal < from || message.ordinal > to)
5063
+ continue;
5064
+ if (!visit(message))
5065
+ return;
5066
+ }
5067
+ return;
5068
+ }
5069
+ if (!provider && !openCodeDbExists())
5070
+ return;
5071
+ const pageSize = Math.max(1, Math.floor(options.pageSize ?? RAW_MESSAGE_VISIT_PAGE_SIZE));
5072
+ let afterOrdinal = from - 1;
5073
+ while (afterOrdinal < to) {
5074
+ const limit = Math.min(pageSize, to - afterOrdinal);
5075
+ const cursor = afterOrdinal;
5076
+ const page = provider?.readMessagePage ? provider.readMessagePage(cursor, limit, to) : withReadOnlySessionDb((db) => options.summary ? readRawSessionMessageSummaryPageFromDb(db, sessionId, cursor, limit, to) : readRawSessionMessagePageFromDb(db, sessionId, cursor, limit, to));
5077
+ if (page.length === 0)
5078
+ return;
5079
+ let nextOrdinal = afterOrdinal;
5080
+ for (const message of page) {
5081
+ if (message.ordinal < from || message.ordinal > to)
5082
+ continue;
5083
+ if (!visit(message))
5084
+ return;
5085
+ nextOrdinal = Math.max(nextOrdinal, message.ordinal);
5086
+ }
5087
+ if (nextOrdinal <= afterOrdinal)
5088
+ return;
5089
+ afterOrdinal = nextOrdinal;
5090
+ }
5091
+ }
5004
5092
  function readRawSessionMessageRange2(sessionId, fromOrdinal, toOrdinal) {
5005
5093
  const from = Math.max(1, Math.floor(fromOrdinal));
5006
5094
  const to = Math.floor(toOrdinal);
@@ -5599,4 +5687,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
5599
5687
  });
5600
5688
  }
5601
5689
 
5602
- export { textMentionsRecentCommit, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, estimateTokens, normalizeText, stableStringify, getCurrentToolSetHash, setDatabase, loadToolDefinitionMeasurements, recordToolDefinition, getMeasuredToolDefinitionTokens, CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isThinkingPart, isRecord, estimateImageTokensFromDataUrl, estimateToolAttachmentImageTokens, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, formatTailHygienePrefixMismatch, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchanged, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, isDroppedToolOutput, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, measureEmergencyTag, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, getAllStatusTagTokenTotalsFlat, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, markWhitespaceAssistantTagInert, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, updateTagMessageId, foldShrunkPartTags, markTagsCompactedByMessageIds, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, TAG_SELECT_COLUMNS, getTagsBySession, getActiveTagsBySession, getTailHygieneTags, getDroppedTagsBySession, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getTagById, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, isStrictGapHealingMessage, isRawCompactionSummaryInfo, extractInMemoryMessageViews, buildInMemoryTailRawMessages, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, describeFinalWireTail, estimateMessageTokens, estimateFinalWireInputTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, readRawSessionMessageRange2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessagePartsById2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, readSessionChunk2, readRawSessionSeedTail2 };
5690
+ export { textMentionsRecentCommit, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, estimateTokens, normalizeText, stableStringify, getCurrentToolSetHash, setDatabase, loadToolDefinitionMeasurements, recordToolDefinition, getMeasuredToolDefinitionTokens, CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isThinkingPart, isRecord, estimateImageTokensFromDataUrl, estimateToolAttachmentImageTokens, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, formatTailHygienePrefixMismatch, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchanged, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, isDroppedToolOutput, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, measureEmergencyTag, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, getAllStatusTagTokenTotalsFlat, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, markWhitespaceAssistantTagInert, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, updateTagMessageId, foldShrunkPartTags, markTagsCompactedByMessageIds, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, TAG_SELECT_COLUMNS, getTagsBySession, getActiveTagsBySession, getTailHygieneTags, getDroppedTagsBySession, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getTagById, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, isStrictGapHealingMessage, isRawCompactionSummaryInfo, extractInMemoryMessageViews, buildInMemoryTailRawMessages, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, describeFinalWireTail, estimateMessageTokens, estimateFinalWireInputTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, visitRawSessionMessages2, readRawSessionMessageRange2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessagePartsById2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, readSessionChunk2, readRawSessionSeedTail2 };
@@ -11,6 +11,9 @@ function setHarness(value) {
11
11
  function getHarness() {
12
12
  return currentHarness;
13
13
  }
14
+ function harnessOwnsOpenCodeStore(harness = currentHarness) {
15
+ return harness === "opencode" || harness === "opencode2";
16
+ }
14
17
 
15
18
  // src/shared/data-path.ts
16
19
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
@@ -109,4 +112,4 @@ function getLegacyOpenCodeMagicContextStorageDir() {
109
112
  return path.join(getOpenCodeStorageDir(), "plugin", "magic-context");
110
113
  }
111
114
 
112
- export { setHarness, getHarness, getDataDir, getMagicContextLogPath, ensureCortexKitArtifactGitignore, getProjectMagicContextHistorianDir, getOpenCodeStorageDir, getMagicContextStorageResolution, getMagicContextStorageDir, getLegacyOpenCodeMagicContextStorageDir };
115
+ export { setHarness, getHarness, harnessOwnsOpenCodeStore, getDataDir, getMagicContextLogPath, ensureCortexKitArtifactGitignore, getProjectMagicContextHistorianDir, getOpenCodeStorageDir, getMagicContextStorageResolution, getMagicContextStorageDir, getLegacyOpenCodeMagicContextStorageDir };
@@ -2,10 +2,10 @@ import {
2
2
  getHarness,
3
3
  getDataDir,
4
4
  getMagicContextStorageDir
5
- } from "./index-6z9g64js.js";
5
+ } from "./index-s70wtd8k.js";
6
6
  import {
7
7
  sessionLog
8
- } from "./index-tjq5jztd.js";
8
+ } from "./index-3bygzk2d.js";
9
9
  import {
10
10
  localBudget,
11
11
  calibrationForModelKey
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAiGvE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAs9BpC,QAAA,MAAM,MAAM,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAIjD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAkGvE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAi+BpC,QAAA,MAAM,MAAM,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAIjD,CAAC;AAEF,eAAe,MAAM,CAAC"}