@cortexkit/opencode-magic-context 0.44.3 → 0.44.4

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 (60) hide show
  1. package/dist/{derive-budgets-vjmvh6pz.js → derive-budgets-ncwn1jk9.js} +2 -2
  2. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  3. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  4. package/dist/features/magic-context/memory/embedding-openai.d.ts +1 -0
  5. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  6. package/dist/features/magic-context/memory/project-identity.d.ts +5 -4
  7. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  8. package/dist/features/magic-context/storage-db.d.ts +6 -1
  9. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  10. package/dist/features/magic-context/v22-deferred-backfill.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/compartment-render-epoch.d.ts +12 -1
  12. package/dist/hooks/magic-context/compartment-render-epoch.d.ts.map +1 -1
  13. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts.map +1 -1
  14. package/dist/hooks/magic-context/event-resolvers.d.ts +7 -0
  15. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  16. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  17. package/dist/hooks/magic-context/inject-compartments.d.ts +5 -0
  18. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  19. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/read-session-chunk.d.ts +4 -2
  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 +2 -2
  23. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/tokenizer-calibration.d.ts +1 -1
  25. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  27. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  29. package/dist/{index-q5p1aqvv.js → index-mrc0twf3.js} +10 -4
  30. package/dist/{index-9y5p0d50.js → index-msqr3x6m.js} +1 -1
  31. package/dist/{index-y5145x8k.js → index-n96ag4rk.js} +15 -1
  32. package/dist/{index-dgg5y7er.js → index-qm36k34q.js} +55 -12
  33. package/dist/{index-yhm60r53.js → index-sqp1hz9v.js} +180 -36
  34. package/dist/{index-rdsaxnf2.js → index-wprsye9w.js} +1 -1
  35. package/dist/{index-nf9sk8sh.js → index-zx7pmr39.js} +2 -2
  36. package/dist/index.js +88 -35
  37. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  38. package/dist/{read-session-chunk-n072mcq4.js → read-session-chunk-339hg90t.js} +2 -2
  39. package/dist/{recomp-orchestrator-19tr6zya.js → recomp-orchestrator-0ers6smx.js} +5 -5
  40. package/dist/shared/rpc-utils.d.ts +7 -0
  41. package/dist/shared/rpc-utils.d.ts.map +1 -1
  42. package/dist/shared/transcript.d.ts +2 -0
  43. package/dist/shared/transcript.d.ts.map +1 -1
  44. package/dist/shared/user-answer.d.ts +4 -0
  45. package/dist/shared/user-answer.d.ts.map +1 -0
  46. package/dist/{transform-postprocess-phase-z2mfc5w1.js → transform-postprocess-phase-ttdkrm6r.js} +5 -5
  47. package/dist/v2/hooks/payload.d.ts.map +1 -1
  48. package/dist/v2/hooks/store.d.ts +1 -1
  49. package/dist/v2/hooks/store.d.ts.map +1 -1
  50. package/dist/v2/server.js +334 -70
  51. package/dist/v2/store-reader.d.ts +2 -1
  52. package/dist/v2/store-reader.d.ts.map +1 -1
  53. package/dist/{wrapup-orchestrator-sy4m56a7.js → wrapup-orchestrator-x0jvvrqn.js} +6 -6
  54. package/package.json +1 -1
  55. package/src/shared/rpc-utils.test.ts +27 -2
  56. package/src/shared/rpc-utils.ts +44 -15
  57. package/src/shared/tag-transcript.ts +4 -1
  58. package/src/shared/transcript.ts +3 -0
  59. package/src/shared/user-answer.test.ts +40 -0
  60. package/src/shared/user-answer.ts +17 -0
@@ -117,7 +117,7 @@ import {
117
117
  peekNoteNudgeText,
118
118
  markNoteNudgeDelivered,
119
119
  getActiveCompartmentRun
120
- } from "./index-yhm60r53.js";
120
+ } from "./index-sqp1hz9v.js";
121
121
  import {
122
122
  textMentionsRecentCommit,
123
123
  hasMeaningfulUserText2,
@@ -176,16 +176,17 @@ import {
176
176
  isToolPartWithOutput,
177
177
  isFilePart,
178
178
  buildFileSourceContent,
179
+ toolPartHasUserAnswer,
179
180
  isEditTool,
180
181
  SKELETON_REAL_INPUT_MAX_BYTES,
181
182
  partHasCompletedResult,
182
183
  extractToolCallObservation,
183
184
  ToolMutationBatch,
184
185
  createToolDropTarget
185
- } from "./index-dgg5y7er.js";
186
+ } from "./index-qm36k34q.js";
186
187
  import {
187
188
  canonicalModelIdentity
188
- } from "./index-9y5p0d50.js";
189
+ } from "./index-msqr3x6m.js";
189
190
  import {
190
191
  getErrorMessage
191
192
  } from "./index-33q7s9y2.js";
@@ -3394,7 +3395,7 @@ function dropStaleReduceCalls(messages, frozenIds, options = {}) {
3394
3395
  const message = messages[i];
3395
3396
  const id = typeof message.info.id === "string" ? message.info.id : undefined;
3396
3397
  const inFrozen = id !== undefined && frozenIds.has(id);
3397
- const isNewDetection = !inFrozen && detect && i < protectedStart && id !== undefined && messageHasReducePart(message);
3398
+ const isNewDetection = !inFrozen && detect && i < protectedStart && id !== undefined && messageHasReducePart(message) && !message.parts.some(toolPartHasUserAnswer);
3398
3399
  if (!inFrozen && !isNewDetection)
3399
3400
  continue;
3400
3401
  const touched = sentinelizeReduceParts(message);
@@ -3800,6 +3801,8 @@ function applyHeuristicCleanup(sessionId, db, targets, messageTagNumbers, config
3800
3801
  for (let i = 0;i < group.length - 1; i++) {
3801
3802
  const tag = group[i];
3802
3803
  const target = targets.get(tag.tagNumber);
3804
+ if (target?.canDrop?.() === false)
3805
+ continue;
3803
3806
  const { result, mode } = applyNewToolDrop(target, { inWindow: false });
3804
3807
  if (result === "incomplete")
3805
3808
  continue;
@@ -6290,6 +6293,7 @@ async function runPostTransformPhase2(args) {
6290
6293
  muralEnabled: args.m0M1.muralEnabled,
6291
6294
  memoryInjectionBudgetTokens: args.m0M1.memoryInjectionBudgetTokens,
6292
6295
  historyBudgetTokens: args.m0M1.historyBudgetTokens,
6296
+ historyBudgetPolicyIdentity: args.m0M1.historyBudgetPolicyIdentity,
6293
6297
  hardSignals: args.m0M1.hardSignals
6294
6298
  }) : { value: false, reason: null };
6295
6299
  let preparedPrefix;
@@ -6328,6 +6332,7 @@ async function runPostTransformPhase2(args) {
6328
6332
  memoryEnabled: args.m0M1.memoryEnabled,
6329
6333
  memoryInjectionBudgetTokens: args.m0M1.memoryInjectionBudgetTokens,
6330
6334
  historyBudgetTokens: args.m0M1.historyBudgetTokens,
6335
+ historyBudgetPolicyIdentity: args.m0M1.historyBudgetPolicyIdentity,
6331
6336
  temporalAwareness: args.m0M1.temporalAwareness,
6332
6337
  isCacheBustingPass: true,
6333
6338
  contentionFallbackPrefix: cachedPrefixBeforePreflight,
@@ -6708,6 +6713,7 @@ async function runPostTransformPhase2(args) {
6708
6713
  memoryEnabled: args.m0M1.memoryEnabled,
6709
6714
  memoryInjectionBudgetTokens: args.m0M1.memoryInjectionBudgetTokens,
6710
6715
  historyBudgetTokens: args.m0M1.historyBudgetTokens,
6716
+ historyBudgetPolicyIdentity: args.m0M1.historyBudgetPolicyIdentity,
6711
6717
  temporalAwareness: args.m0M1.temporalAwareness,
6712
6718
  isCacheBustingPass,
6713
6719
  preparedPrefix,
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  localBudget,
11
11
  calibrationForModelKey
12
- } from "./index-y5145x8k.js";
12
+ } from "./index-n96ag4rk.js";
13
13
 
14
14
  // src/shared/models-dev-cache.ts
15
15
  import { mkdirSync, readFileSync as readFileSync2, renameSync, writeFileSync } from "node:fs";
@@ -221,6 +221,20 @@ var tokenizer_calibration_seeds_default = [
221
221
  toolsRatio: 0.850953,
222
222
  proseRatio: 1.000017
223
223
  },
224
+ {
225
+ prefix: "openai/gpt-6-sol",
226
+ systemRatio: 1.000278,
227
+ toolsRatio: 0.850953,
228
+ proseRatio: 1.000017,
229
+ provenance: "Mirrored from openai/gpt-6-astra; prose inherited-unmeasured. Reported OAuth system/tools counts match GPT-5.5; no independent API-key measurement."
230
+ },
231
+ {
232
+ prefix: "openai/gpt-6.1-sol",
233
+ systemRatio: 1.000278,
234
+ toolsRatio: 0.850953,
235
+ proseRatio: 1.000017,
236
+ provenance: "Mirrored from openai/gpt-6-astra; prose inherited-unmeasured. Reported OAuth system/tools counts match GPT-5.5; no independent API-key measurement."
237
+ },
224
238
  {
225
239
  prefix: "openai/gpt-5",
226
240
  systemRatio: 1,
@@ -324,7 +338,7 @@ var tokenizer_calibration_seeds_default = [
324
338
  // src/hooks/magic-context/tokenizer-calibration.ts
325
339
  var CALIBRATION_TABLE = tokenizer_calibration_seeds_default;
326
340
  var NEUTRAL = { systemRatio: 1, toolsRatio: 1, proseRatio: 1 };
327
- var CALIBRATION_TABLE_REVISION = "2026-09-23-model-id-generation-v2";
341
+ var CALIBRATION_TABLE_REVISION = "2026-09-30-sol-tokenizer-seeds-v3";
328
342
  var UNKNOWN_FIT_RATIO = Math.max(2, ...CALIBRATION_TABLE.flatMap((entry) => [
329
343
  entry.systemRatio,
330
344
  entry.toolsRatio,
@@ -11,7 +11,7 @@ import {
11
11
  UNKNOWN_FIT_RATIO,
12
12
  resolveDecisionCalibration,
13
13
  providerMass
14
- } from "./index-y5145x8k.js";
14
+ } from "./index-n96ag4rk.js";
15
15
 
16
16
  // src/features/magic-context/reclaim-protection.ts
17
17
  var CTX_REDUCE_KEEP = 3;
@@ -3050,8 +3050,8 @@ function readRawSessionMessagesFromDb(db, sessionId) {
3050
3050
  };
3051
3051
  });
3052
3052
  }
3053
- function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER) {
3054
- const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark);
3053
+ function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER, after) {
3054
+ const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark, after);
3055
3055
  if (messageRows.length === 0)
3056
3056
  return [];
3057
3057
  const placeholders = messageRows.map(() => "?").join(", ");
@@ -3062,15 +3062,22 @@ function readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, fin
3062
3062
  ORDER BY message_id ASC, time_created ASC, id ASC`).all(sessionId, ...messageRows.map((row) => row.id)).filter(isRawPartRow);
3063
3063
  return assembleRawMessagePage(messageRows, partRows);
3064
3064
  }
3065
- function readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark) {
3065
+ function readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark, after) {
3066
3066
  const remaining = Math.max(0, Math.floor(finalWatermark) - Math.floor(afterOrdinal));
3067
3067
  const pageSize = Math.min(Math.max(1, Math.floor(limit)), remaining);
3068
3068
  if (pageSize === 0)
3069
3069
  return [];
3070
+ const parameters = [sessionId];
3071
+ if (after)
3072
+ parameters.push(after.timeCreated, after.timeCreated, after.timeCreated, after.id);
3073
+ parameters.push(pageSize);
3074
+ if (!after)
3075
+ parameters.push(Math.max(0, Math.floor(afterOrdinal)));
3070
3076
  return db.prepare(`SELECT id, data, time_created, time_updated
3071
3077
  FROM message
3072
3078
  WHERE session_id = ?
3073
- AND NOT (
3079
+ ${after ? "AND time_created >= ? AND (time_created > ? OR (time_created = ? AND id > ?))" : ""}
3080
+ AND NOT (
3074
3081
  CASE WHEN json_valid(data) = 1
3075
3082
  THEN COALESCE(json_extract(data, '$.summary'), 0)
3076
3083
  ELSE 0 END = 1
@@ -3079,7 +3086,7 @@ function readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWaterma
3079
3086
  ELSE '' END = 'stop'
3080
3087
  )
3081
3088
  ORDER BY time_created ASC, id ASC
3082
- LIMIT ? OFFSET ?`).all(sessionId, pageSize, Math.max(0, Math.floor(afterOrdinal))).filter(isRawMessageRow).map((row, index) => ({
3089
+ LIMIT ? ${after ? "" : "OFFSET ?"}`).all(...parameters).filter(isRawMessageRow).map((row, index) => ({
3083
3090
  ...row,
3084
3091
  ordinal: Math.floor(afterOrdinal) + index + 1
3085
3092
  }));
@@ -3132,8 +3139,8 @@ var RAW_SUMMARY_PART_DATA_SQL = `CASE
3132
3139
  )
3133
3140
  )
3134
3141
  END`;
3135
- function readRawSessionMessageSummaryPageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER) {
3136
- const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark);
3142
+ function readRawSessionMessageSummaryPageFromDb(db, sessionId, afterOrdinal, limit, finalWatermark = Number.MAX_SAFE_INTEGER, after) {
3143
+ const messageRows = readRawMessagePageRows(db, sessionId, afterOrdinal, limit, finalWatermark, after);
3137
3144
  if (messageRows.length === 0)
3138
3145
  return [];
3139
3146
  const placeholders = messageRows.map(() => "?").join(", ");
@@ -3984,6 +3991,27 @@ function buildFileSourceContent(parts) {
3984
3991
  return content.length > 0 ? content : null;
3985
3992
  }
3986
3993
 
3994
+ // src/shared/user-answer.ts
3995
+ function hasUserAnswerMetadata(value) {
3996
+ if (!isRecord(value))
3997
+ return false;
3998
+ if (value.userAnswer === true)
3999
+ return true;
4000
+ if (Array.isArray(value.answers))
4001
+ return true;
4002
+ if (typeof value.answer === "string")
4003
+ return true;
4004
+ if (Array.isArray(value.selectedOptions) || typeof value.customInput === "string")
4005
+ return true;
4006
+ return Array.isArray(value.results) && value.results.some(hasUserAnswerMetadata);
4007
+ }
4008
+ function toolPartHasUserAnswer(part) {
4009
+ if (!isRecord(part))
4010
+ return false;
4011
+ const state = isRecord(part.state) ? part.state : undefined;
4012
+ return hasUserAnswerMetadata(state?.metadata) || hasUserAnswerMetadata(part.details);
4013
+ }
4014
+
3987
4015
  // src/features/magic-context/dreamer/token-budget.ts
3988
4016
  class DreamTokenBudgetExceeded extends Error {
3989
4017
  sessionId;
@@ -4963,7 +4991,7 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
4963
4991
  },
4964
4992
  canDrop: () => {
4965
4993
  const entry = index.get(compositeKey);
4966
- return !!entry && entry.occurrences.length > 0 && entry.hasResult;
4994
+ return !!entry && entry.occurrences.length > 0 && entry.hasResult && !entry.occurrences.some((occurrence) => toolPartHasUserAnswer(occurrence.part));
4967
4995
  },
4968
4996
  requiresToolArcSkeleton: thinkingParts.length > 0 || (index.get(compositeKey)?.occurrences.some((occurrence) => messageHasNativeReasoning(occurrence.message)) ?? false),
4969
4997
  readInput: () => {
@@ -5096,6 +5124,8 @@ function getRawSessionMessageOrdinalCount2(sessionId) {
5096
5124
  var RAW_MESSAGE_RANGE_PAGE_SIZE = 100;
5097
5125
  function readRawSessionMessageRangeFromSource(sessionId, fromOrdinal, toOrdinal) {
5098
5126
  const provider = sessionProviders.get(sessionId);
5127
+ if (provider?.iterateMessageRange)
5128
+ return [...provider.iterateMessageRange(fromOrdinal, toOrdinal)];
5099
5129
  if (provider && !provider.readMessagePage) {
5100
5130
  return provider.readMessages().filter((message) => message.ordinal >= fromOrdinal && message.ordinal <= toOrdinal);
5101
5131
  }
@@ -5103,9 +5133,10 @@ function readRawSessionMessageRangeFromSource(sessionId, fromOrdinal, toOrdinal)
5103
5133
  return [];
5104
5134
  const messages = [];
5105
5135
  let afterOrdinal = fromOrdinal - 1;
5136
+ let after;
5106
5137
  while (afterOrdinal < toOrdinal) {
5107
5138
  const limit = Math.min(RAW_MESSAGE_RANGE_PAGE_SIZE, toOrdinal - afterOrdinal);
5108
- const page = provider?.readMessagePage ? provider.readMessagePage(afterOrdinal, limit, toOrdinal) : withReadOnlySessionDb((db) => readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, toOrdinal));
5139
+ const page = provider?.readMessagePage ? provider.readMessagePage(afterOrdinal, limit, toOrdinal, after) : withReadOnlySessionDb((db) => readRawSessionMessagePageFromDb(db, sessionId, afterOrdinal, limit, toOrdinal, after));
5109
5140
  if (page.length === 0)
5110
5141
  break;
5111
5142
  let nextOrdinal = afterOrdinal;
@@ -5118,6 +5149,8 @@ function readRawSessionMessageRangeFromSource(sessionId, fromOrdinal, toOrdinal)
5118
5149
  if (nextOrdinal <= afterOrdinal)
5119
5150
  break;
5120
5151
  afterOrdinal = nextOrdinal;
5152
+ const last = page.at(-1);
5153
+ after = last ? { timeCreated: last.createdAt ?? 0, id: last.id } : undefined;
5121
5154
  }
5122
5155
  return messages;
5123
5156
  }
@@ -5128,6 +5161,13 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
5128
5161
  if (to < from)
5129
5162
  return;
5130
5163
  const provider = sessionProviders.get(sessionId);
5164
+ if (provider?.iterateMessageRange) {
5165
+ for (const message of provider.iterateMessageRange(from, to)) {
5166
+ if (!visit(message))
5167
+ return;
5168
+ }
5169
+ return;
5170
+ }
5131
5171
  if (provider && !provider.readMessagePage) {
5132
5172
  for (const message of provider.readMessages()) {
5133
5173
  if (message.ordinal < from || message.ordinal > to)
@@ -5141,10 +5181,11 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
5141
5181
  return;
5142
5182
  const pageSize = Math.max(1, Math.floor(options.pageSize ?? RAW_MESSAGE_VISIT_PAGE_SIZE));
5143
5183
  let afterOrdinal = from - 1;
5184
+ let after;
5144
5185
  while (afterOrdinal < to) {
5145
5186
  const limit = Math.min(pageSize, to - afterOrdinal);
5146
5187
  const cursor = afterOrdinal;
5147
- 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));
5188
+ const page = provider?.readMessagePage ? provider.readMessagePage(cursor, limit, to, after) : withReadOnlySessionDb((db) => options.summary ? readRawSessionMessageSummaryPageFromDb(db, sessionId, cursor, limit, to, after) : readRawSessionMessagePageFromDb(db, sessionId, cursor, limit, to, after));
5148
5189
  if (page.length === 0)
5149
5190
  return;
5150
5191
  let nextOrdinal = afterOrdinal;
@@ -5158,6 +5199,8 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
5158
5199
  if (nextOrdinal <= afterOrdinal)
5159
5200
  return;
5160
5201
  afterOrdinal = nextOrdinal;
5202
+ const last = page.at(-1);
5203
+ after = last ? { timeCreated: last.createdAt ?? 0, id: last.id } : undefined;
5161
5204
  }
5162
5205
  }
5163
5206
  function readRawSessionMessageRange2(sessionId, fromOrdinal, toOrdinal) {
@@ -5758,4 +5801,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
5758
5801
  });
5759
5802
  }
5760
5803
 
5761
- 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, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, 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 };
5804
+ 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, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, 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 };