@cortexkit/opencode-magic-context 0.49.30 → 0.49.31

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 (42) hide show
  1. package/dist/{context-vnfr6d7t.js → context-9a0f8mzh.js} +142 -13
  2. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +3 -3
  3. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
  4. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  5. package/dist/features/magic-context/dreamer/verify.d.ts +13 -17
  6. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  7. package/dist/features/magic-context/storage-native-replay.d.ts +2 -0
  8. package/dist/features/magic-context/storage-native-replay.d.ts.map +1 -1
  9. package/dist/hooks/magic-context/apply-operations.d.ts +11 -1
  10. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
  12. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  13. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +2 -0
  14. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  15. package/dist/hooks/magic-context/transform.d.ts +11 -0
  16. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  17. package/dist/{index-69gd2scx.js → index-0bjktrjt.js} +2 -2
  18. package/dist/{index-ekzzw66a.js → index-22e7khnr.js} +23 -18
  19. package/dist/{index-k0dpkyn7.js → index-kmayq4kq.js} +1 -0
  20. package/dist/{index-vzz570j8.js → index-qathsvz2.js} +3 -1
  21. package/dist/{index-adr4vfys.js → index-y6ynjghv.js} +1 -1
  22. package/dist/index.js +8 -8
  23. package/dist/{recomp-orchestrator-w3pjp33d.js → recomp-orchestrator-ynehxbya.js} +2 -2
  24. package/dist/shared/tag-transcript.d.ts +4 -1
  25. package/dist/shared/tag-transcript.d.ts.map +1 -1
  26. package/dist/shared/transcript.d.ts +3 -1
  27. package/dist/shared/transcript.d.ts.map +1 -1
  28. package/dist/{transform-postprocess-phase-6ccazq85.js → transform-postprocess-phase-50h70ft8.js} +2 -2
  29. package/dist/v2/{context-wx4sfhgr.js → context-cdqw9jex.js} +161 -25
  30. package/dist/v2/fold/owner.d.ts +4 -0
  31. package/dist/v2/fold/owner.d.ts.map +1 -1
  32. package/dist/v2/hooks/context.d.ts.map +1 -1
  33. package/dist/v2/hooks/types.d.ts +3 -0
  34. package/dist/v2/hooks/types.d.ts.map +1 -1
  35. package/dist/v2/{recomp-orchestrator-wb28kr9k.js → recomp-orchestrator-kdxr4tx8.js} +1 -1
  36. package/dist/v2/{server-k33t88h3.js → server-rdjgz95f.js} +1 -0
  37. package/dist/v2/server.js +2 -2
  38. package/dist/v2/{wrapup-orchestrator-2t0pdqzm.js → wrapup-orchestrator-prfvyqbb.js} +1 -1
  39. package/dist/{wrapup-orchestrator-kjmkms5g.js → wrapup-orchestrator-4zhkcsz0.js} +3 -3
  40. package/package.json +1 -1
  41. package/src/shared/tag-transcript.ts +34 -5
  42. package/src/shared/transcript.ts +1 -1
@@ -304,7 +304,7 @@ import {
304
304
  startCompartmentAgent,
305
305
  setRecompStarting2,
306
306
  setRecompTerminal2
307
- } from "./server-k33t88h3.js";
307
+ } from "./server-rdjgz95f.js";
308
308
  import {
309
309
  resolveHistorianModel2
310
310
  } from "./server-5kym00ag.js";
@@ -7640,6 +7640,7 @@ function prepareLegacyToolSkeletonConversions(db, sessionId, targets, options =
7640
7640
  });
7641
7641
  };
7642
7642
  const rows = readRows(db);
7643
+ options.prepareRemovals?.(rows);
7643
7644
  const converted = new Map;
7644
7645
  for (const row of rows) {
7645
7646
  const target = targets.get(row.tagNumber);
@@ -11990,6 +11991,7 @@ async function runPostTransformPhase(args) {
11990
11991
  emergencyReclaimedTokens,
11991
11992
  droppedCount,
11992
11993
  emergency,
11994
+ prefixMutationPermitted: isCacheBustingPass,
11993
11995
  bustedThisPass,
11994
11996
  prefixTrimStatus: deliveredPrefix?.prefixTrimStatus ?? null,
11995
11997
  thinkingBindingRecovery,
@@ -19656,6 +19658,15 @@ function createTransform(deps) {
19656
19658
  db,
19657
19659
  sessionID: sessionId
19658
19660
  }) : undefined;
19661
+ const hostEstimate = deps.hostInputEstimate?.(sessionId);
19662
+ const hostOverWindow = fullFeatureMode && !compactionOff && resolvedContextLimit !== undefined && resolvedContextLimit > 0 && hostEstimate !== undefined && Number.isFinite(hostEstimate.tokens) && Number.isFinite(hostEstimate.pressureTokens) && hostEstimate.tokens > resolvedContextLimit;
19663
+ if (hostOverWindow) {
19664
+ contextUsageEarly = {
19665
+ inputTokens: Math.max(contextUsageEarly.inputTokens, hostEstimate.pressureTokens),
19666
+ percentage: Math.max(100, contextUsageEarly.percentage, hostEstimate.pressureTokens / resolvedContextLimit * 100)
19667
+ };
19668
+ usagePercentageSynthetic = true;
19669
+ }
19659
19670
  let unmanagedOverWindowPass = null;
19660
19671
  const unmanagedOverWindowCarried = unmanagedOverWindowSessions.has(sessionId);
19661
19672
  if (fullFeatureMode && !compactionOff && typeof resolvedContextLimit === "number" && resolvedContextLimit > 0 && (unmanagedOverWindowCarried || isFirstTransformPassForSession && getLastCompartmentEndMessage(db, sessionId) < 0 && getMaxDroppedTagNumber2(db, sessionId) === 0)) {
@@ -20198,7 +20209,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
20198
20209
  bustReason: calibrationBustReason,
20199
20210
  onAdopt: (message) => sessionLog2(sessionId, message)
20200
20211
  });
20201
- let contextUsageFromEstimate = false;
20212
+ let contextUsageFromEstimate = hostOverWindow;
20202
20213
  if (contextUsage.inputTokens <= 0 && protectionCacheBustingPass) {
20203
20214
  const overflowRecoveryPass = usagePercentageSynthetic || emergencyRecoveryArmed;
20204
20215
  const savedProviderReading = overflowRecoveryPass ? null : savedProviderReadingForPass({
@@ -20752,6 +20763,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
20752
20763
  sessionId,
20753
20764
  systemPromptHash: sessionMeta.systemPromptHash
20754
20765
  });
20766
+ deps.onPassPermission?.(sessionId, postTransformResult.prefixMutationPermitted);
20755
20767
  };
20756
20768
  const timedTransform = (input, output) => withTransformTimingSummary(() => transform(input, output));
20757
20769
  return Object.assign(timedTransform, {
@@ -24010,7 +24022,7 @@ function registerRpcHandlers(rpcServer, args) {
24010
24022
  const db = readDatabase();
24011
24023
  if (!db)
24012
24024
  return { ok: false, error: "db unavailable" };
24013
- const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-wb28kr9k.js"));
24025
+ const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-kdxr4tx8.js"));
24014
24026
  const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-x5nzy34v.js"));
24015
24027
  log2(`[rpc] recomp requested for session ${sessionId}`);
24016
24028
  if (!args.client && !args.hiddenCompletionExecutor) {
@@ -24095,7 +24107,7 @@ function registerRpcHandlers(rpcServer, args) {
24095
24107
  const db = readDatabase();
24096
24108
  if (!db)
24097
24109
  return { ok: false, error: "db unavailable" };
24098
- const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-2t0pdqzm.js"));
24110
+ const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-prfvyqbb.js"));
24099
24111
  const model = liveSessionState.liveModelBySession.get(sessionId);
24100
24112
  const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
24101
24113
  const ctx = {
@@ -25208,8 +25220,14 @@ class FoldOwner {
25208
25220
  async observe(args) {
25209
25221
  return this.serial(args.sessionID, async () => {
25210
25222
  let state = await this.read(args.sessionID);
25223
+ if (state?.rendered && state.rendered.id !== args.rendered.id)
25224
+ state = undefined;
25211
25225
  let changed = !state;
25212
- const renderedSha = foldDigest(JSON.stringify(args.rendered));
25226
+ const observedSha = foldDigest(JSON.stringify(args.rendered));
25227
+ const rendered = structuredClone(args.rendered);
25228
+ if (state?.withoutRecentContext && state.withoutRecentContext === rendered.id)
25229
+ stripCheckpointRecentContext(rendered, args.summary);
25230
+ const renderedSha = foldDigest(JSON.stringify(rendered));
25213
25231
  if (!state) {
25214
25232
  args.onHard("boot_recovery");
25215
25233
  state = {
@@ -25220,10 +25238,10 @@ class FoldOwner {
25220
25238
  };
25221
25239
  }
25222
25240
  const reason = args.cutSeq < state.watermark ? "host_cut_before_watermark" : state.submittedSha !== foldDigest(args.summary) || state.renderedSha && state.renderedSha !== renderedSha ? "host_rerender" : undefined;
25223
- if (reason && state.rejectedSha !== renderedSha) {
25241
+ if (reason && state.rejectedSha !== observedSha) {
25224
25242
  args.onHard(reason);
25225
25243
  state.reason = reason;
25226
- state.rejectedSha = renderedSha;
25244
+ state.rejectedSha = observedSha;
25227
25245
  changed = true;
25228
25246
  }
25229
25247
  if (state.cutSeq === undefined && args.cutSeq >= state.watermark) {
@@ -25231,7 +25249,7 @@ class FoldOwner {
25231
25249
  changed = true;
25232
25250
  }
25233
25251
  if (!state.rendered && reason !== "host_cut_before_watermark") {
25234
- state.rendered = structuredClone(args.rendered);
25252
+ state.rendered = rendered;
25235
25253
  state.renderedSha = renderedSha;
25236
25254
  state.renderedSummary = args.summary;
25237
25255
  changed = true;
@@ -25241,6 +25259,50 @@ class FoldOwner {
25241
25259
  return state;
25242
25260
  });
25243
25261
  }
25262
+ async stripRecentContext(sessionID, checkpointID) {
25263
+ return this.serial(sessionID, async () => {
25264
+ const state = await this.read(sessionID);
25265
+ if (!state?.rendered || state.rendered.id !== checkpointID)
25266
+ return;
25267
+ if (state.withoutRecentContext === checkpointID)
25268
+ return state;
25269
+ if (!stripCheckpointRecentContext(state.rendered, state.renderedSummary ?? state.submitted))
25270
+ return state;
25271
+ state.withoutRecentContext = checkpointID;
25272
+ state.renderedSha = foldDigest(JSON.stringify(state.rendered));
25273
+ await this.storage.set(this.key(sessionID), state);
25274
+ return state;
25275
+ });
25276
+ }
25277
+ }
25278
+ function stripCheckpointRecentContext(message, summary) {
25279
+ let changed = false;
25280
+ for (const part of message.content) {
25281
+ if (part.type !== "text" || typeof part.text !== "string")
25282
+ continue;
25283
+ const summaryStart = part.text.indexOf("<summary>");
25284
+ if (summaryStart < 0)
25285
+ continue;
25286
+ const summaryText = part.text.indexOf(summary, summaryStart + "<summary>".length);
25287
+ if (summaryText < 0)
25288
+ continue;
25289
+ const start = part.text.indexOf("</summary>", summaryText + summary.length) + "</summary>".length;
25290
+ const end = part.text.lastIndexOf("</conversation-checkpoint>");
25291
+ if (start < "</summary>".length || end < start)
25292
+ continue;
25293
+ const suffix = part.text.slice(start, end);
25294
+ if (!/^\s*<recent-context>[\s\S]*<\/recent-context>\s*$/.test(suffix))
25295
+ continue;
25296
+ part.text = `${part.text.slice(0, start)}
25297
+ ${part.text.slice(end)}`;
25298
+ changed = true;
25299
+ }
25300
+ if (changed && message.metadata && typeof message.metadata === "object") {
25301
+ const metadata = { ...message.metadata };
25302
+ delete metadata.recent;
25303
+ message.metadata = metadata;
25304
+ }
25305
+ return changed;
25244
25306
  }
25245
25307
 
25246
25308
  // src/v2/fold/memory-cache.ts
@@ -32200,7 +32262,6 @@ function parseMapMemoriesManifest(text) {
32200
32262
  }
32201
32263
  function validateMapMemoriesManifest(text, expectedIds) {
32202
32264
  const parsed = parseMapMemoriesManifest(text);
32203
- assertParsedManifestNonEmpty(parsed.length, expectedIds.size, text, "mappings", "memory");
32204
32265
  assertNoDuplicateManifestIds(parsed.filter((entry) => expectedIds.has(entry.id)).map((entry) => entry.id), "mappings");
32205
32266
  return parsed;
32206
32267
  }
@@ -34414,8 +34475,7 @@ function parsePartialVerifyManifest(text, expectedIds) {
34414
34475
  var VERIFY_BATCH_SIZE = 5;
34415
34476
  var VERIFY_TOKENS_PER_MEMORY = 1e5;
34416
34477
  var VERIFY_RUN_TOKEN_BUDGET = 2500000;
34417
- var VERIFY_RUN_SLICE_MS = 240000;
34418
- var VERIFY_IN_FLIGHT_GRACE_MS = 120000;
34478
+ var VERIFY_BATCH_DEFAULT_MS = 240000;
34419
34479
  function verifyBatchTokenBudget(size, configured) {
34420
34480
  return Math.min(configured ?? Number.MAX_SAFE_INTEGER, size * VERIFY_TOKENS_PER_MEMORY);
34421
34481
  }
@@ -34445,8 +34505,8 @@ function validateVerifyCompletion(messages, text, expectedIds, responseText = te
34445
34505
  }
34446
34506
  var IDENTICAL_PROVIDER_FAILURE_BATCH_LIMIT = 2;
34447
34507
  var VERIFY_BATCH_FLOOR_MS = 30000;
34448
- function computeVerifyBatchSliceMs(remainingMs, _batchesRemaining) {
34449
- return Math.min(remainingMs, VERIFY_RUN_SLICE_MS);
34508
+ function computeVerifyBatchSliceMs(remainingMs, batchesRemaining) {
34509
+ return Math.min(remainingMs, Math.max(VERIFY_BATCH_DEFAULT_MS, remainingMs / Math.max(1, batchesRemaining)));
34450
34510
  }
34451
34511
  function closeBroadCycle(args, cycleStartAt) {
34452
34512
  if (!args.forceBroad || cycleStartAt === undefined)
@@ -34470,7 +34530,6 @@ async function runVerify(args) {
34470
34530
  }
34471
34531
  async function runVerifyWithCooldown(args) {
34472
34532
  const runStartedAt = Date.now();
34473
- const sliceDeadline = runStartedAt + VERIFY_RUN_SLICE_MS;
34474
34533
  const result = {
34475
34534
  verified: 0,
34476
34535
  updated: 0,
@@ -34518,12 +34577,10 @@ async function runVerifyWithCooldown(args) {
34518
34577
  try {
34519
34578
  for (let i = 0;i < batches.length; i += 1) {
34520
34579
  const now = Date.now();
34521
- const startCutoff = Math.min(args.deadline, sliceDeadline);
34522
- const hardStop = Math.min(args.deadline, sliceDeadline + VERIFY_IN_FLIGHT_GRACE_MS);
34523
- const remainingMs = Math.max(0, hardStop - now);
34524
- if (now >= startCutoff) {
34580
+ const remainingMs = Math.max(0, args.deadline - now);
34581
+ if (now >= args.deadline) {
34525
34582
  result.stopReason = "deadline";
34526
- log2(`[dreamer] ${args.forceBroad ? "verify-broad" : "verify"}: stopping before batch ${i + 1}/${batches.length} — the run deadline passed ${now - startCutoff}ms ago`);
34583
+ log2(`[dreamer] ${args.forceBroad ? "verify-broad" : "verify"}: stopping before batch ${i + 1}/${batches.length} — the run deadline passed ${now - args.deadline}ms ago`);
34527
34584
  break;
34528
34585
  }
34529
34586
  if (remainingMs < VERIFY_BATCH_FLOOR_MS) {
@@ -35462,7 +35519,7 @@ function createDreamTaskExecutor(deps) {
35462
35519
  return { status: "failed", transient: true, error };
35463
35520
  }
35464
35521
  const processed = result.mapped + result.independent;
35465
- if (processed > 0) {
35522
+ if (processed > 0 || result.failure === undefined) {
35466
35523
  const progress = `map-memories: committed ${processed} mapping(s) (mapped ${result.mapped}, independent ${result.independent}); ${result.remaining} remain`;
35467
35524
  recordRun("completed", null, { progress });
35468
35525
  return { status: "completed" };
@@ -53183,6 +53240,28 @@ ${baseline}
53183
53240
  draft.messages.splice(0, draft.messages.length, checkpoint, ...draft.messages.filter((message) => message !== first));
53184
53241
  return true;
53185
53242
  }
53243
+ function estimateCheckpointRequest(draft) {
53244
+ let toolDefinitionTokens = 0;
53245
+ for (const tool of Object.values(draft.tools)) {
53246
+ const schema = JSON.stringify(tool.input);
53247
+ if (schema === undefined)
53248
+ throw new Error("Checkpoint request has an unserializable tool schema");
53249
+ toolDefinitionTokens += estimateTokens(tool.description) + estimateTokens(schema);
53250
+ }
53251
+ const estimateDraft = {
53252
+ ...draft,
53253
+ messages: draft.messages.map((message) => HEAD_IDS.some((id) => message.id === id) ? { ...message, id: undefined } : message)
53254
+ };
53255
+ return estimateFinalWireInputTokens({
53256
+ messages: adaptPayload(estimateDraft).messages,
53257
+ toolDefinitionTokens,
53258
+ systemPromptTokens: estimateTokens(JSON.stringify(draft.system)),
53259
+ providerID: draft.model.providerID,
53260
+ modelID: draft.model.id,
53261
+ agentName: draft.agent,
53262
+ sessionId: draft.sessionID
53263
+ });
53264
+ }
53186
53265
  var HIDDEN_SESSION_ERROR_GRACE_MS = 50;
53187
53266
  var STORE_POOL_DISPOSE_WAIT_MS = 1000;
53188
53267
  function isBlockingV2TransformError(error) {
@@ -54015,7 +54094,7 @@ async function registerContext(context) {
54015
54094
  await context.session.hook("compaction", async (draft) => {
54016
54095
  const hiddenSummary = hiddenChildHook.compactionSummary(draft.sessionID, draft.agent);
54017
54096
  if (hiddenSummary !== undefined) {
54018
- draft.result = { summary: hiddenSummary };
54097
+ draft.result = { summary: hiddenSummary, metadata: { keepID: undefined } };
54019
54098
  return;
54020
54099
  }
54021
54100
  if (compactionOff)
@@ -54040,7 +54119,7 @@ async function registerContext(context) {
54040
54119
  previousCut: reader.latestCompaction(draft.sessionID),
54041
54120
  summary
54042
54121
  })) {
54043
- draft.result = { summary };
54122
+ draft.result = { summary, metadata: { keepID: undefined } };
54044
54123
  return;
54045
54124
  }
54046
54125
  }
@@ -54056,7 +54135,7 @@ async function registerContext(context) {
54056
54135
  materialize: () => moduleBaseline ?? materialize(draft)
54057
54136
  });
54058
54137
  sessionLog2(draft.sessionID, `v2 compaction hook: fired answered=true source=${source}`);
54059
- draft.result = { summary: fold.submitted };
54138
+ draft.result = { summary: fold.submitted, metadata: { keepID: undefined } };
54060
54139
  } catch (cause) {
54061
54140
  await refuseBeforeProvider(context.session, draft.sessionID, "compaction-fold", cause);
54062
54141
  throw new V2ContextRefusal("Magic Context could not preserve the host checkpoint.", {
@@ -54102,6 +54181,8 @@ async function registerContext(context) {
54102
54181
  ...args.messages.filter((message) => message !== args.incoming)
54103
54182
  ];
54104
54183
  };
54184
+ const checkpointPassPermissions = new Map;
54185
+ const checkpointInputEstimates = new Map;
54105
54186
  const initializeTransform = (database) => transform ??= createTransform({
54106
54187
  ...createV2TransformFeatureDeps(config, compactionOff, directory, embeddings.ensureRegistered),
54107
54188
  cacheTtlConfig: config.cache_ttl,
@@ -54111,6 +54192,10 @@ async function registerContext(context) {
54111
54192
  tagger,
54112
54193
  ...createV2ThresholdDeps(config),
54113
54194
  contextUsageMap: usage,
54195
+ hostInputEstimate: (sessionID) => checkpointInputEstimates.get(sessionID),
54196
+ onPassPermission: (sessionID, permission) => {
54197
+ checkpointPassPermissions.set(sessionID, permission);
54198
+ },
54114
54199
  compactionOff,
54115
54200
  storeGeneration: "v2",
54116
54201
  normalizeRestoredAssistantText: (text, providerID) => stripCopiedTagNotation(text, providerID === "anthropic"),
@@ -54532,6 +54617,21 @@ async function registerContext(context) {
54532
54617
  }
54533
54618
  const mapped = adaptPayload(draft, admitted, messageTimes, anchorTimesOnly);
54534
54619
  bindSystemDateRequestIdentity(mapped, draft);
54620
+ checkpointPassPermissions.delete(draft.sessionID);
54621
+ checkpointInputEstimates.delete(draft.sessionID);
54622
+ if (checkpoint && submitted !== undefined) {
54623
+ const projected = structuredClone(checkpoint);
54624
+ if (stripCheckpointRecentContext(projected, submitted)) {
54625
+ const estimate = estimateCheckpointRequest({
54626
+ ...draft,
54627
+ messages: [checkpoint, ...draft.messages]
54628
+ });
54629
+ checkpointInputEstimates.set(draft.sessionID, {
54630
+ tokens: estimate.tokens,
54631
+ pressureTokens: estimate.pressureTokens ?? estimate.tokens
54632
+ });
54633
+ }
54634
+ }
54535
54635
  await createMessagesTransformHandler({
54536
54636
  magicContext: { "experimental.chat.messages.transform": transform },
54537
54637
  compactionOff,
@@ -54540,6 +54640,14 @@ async function registerContext(context) {
54540
54640
  rustReplayParticipant: () => transform?.getRustReplayParticipant() ?? null
54541
54641
  })({}, mapped);
54542
54642
  mapped.commit();
54643
+ const checkpointPermission = checkpointPassPermissions.get(draft.sessionID);
54644
+ checkpointPassPermissions.delete(draft.sessionID);
54645
+ checkpointInputEstimates.delete(draft.sessionID);
54646
+ if (checkpoint?.id && checkpointPermission && replayHead === undefined) {
54647
+ const stripped = await folds.stripRecentContext(draft.sessionID, checkpoint.id);
54648
+ if (stripped?.rendered)
54649
+ checkpoint = structuredClone(stripped.rendered);
54650
+ }
54543
54651
  stageOpenCodeV2TransformDecision({
54544
54652
  sessionId: draft.sessionID,
54545
54653
  responseAfterSequence
@@ -54618,17 +54726,45 @@ async function registerContext(context) {
54618
54726
  }
54619
54727
  }
54620
54728
  };
54729
+ const refuseOversizedCheckpoint = async (draft) => {
54730
+ const hasCheckpoint = draft.messages.some((message) => message.content.some((part) => part.type === "text" && typeof part.text === "string" && part.text.startsWith("<conversation-checkpoint>")));
54731
+ const limit = draft.model.limit?.input ?? draft.model.limit?.context;
54732
+ if (!hasCheckpoint || !limit)
54733
+ return;
54734
+ let estimate;
54735
+ try {
54736
+ estimate = estimateCheckpointRequest(draft);
54737
+ } catch (cause) {
54738
+ await refuseBeforeProvider(context.session, draft.sessionID, "checkpoint-fit-estimate", cause);
54739
+ throw new V2ContextRefusal("Magic Context could not size the host checkpoint.", {
54740
+ cause
54741
+ });
54742
+ }
54743
+ if (estimate.tokens <= limit)
54744
+ return;
54745
+ await refuseBeforeProvider(context.session, draft.sessionID, "checkpoint-over-window");
54746
+ throw new V2ContextRefusal("Magic Context refused an oversized host checkpoint.");
54747
+ };
54621
54748
  await context.session.hook("context", (draft) => withSqliteTransformPass2(async () => {
54622
54749
  const anchor = generateReplayAnchor(draft.messages);
54623
- await runManagedContext(draft);
54750
+ try {
54751
+ await runManagedContext(draft);
54752
+ if (!compactionOff)
54753
+ await refuseOversizedCheckpoint(draft);
54754
+ } finally {
54755
+ checkpointInputEstimates.delete(draft.sessionID);
54756
+ checkpointPassPermissions.delete(draft.sessionID);
54757
+ }
54624
54758
  if (!compactionOff)
54625
54759
  generateReplay.capture(draft, anchor);
54626
54760
  else
54627
54761
  sessionLog2(draft.sessionID, "generate replay capture skipped: compaction-disabled");
54628
54762
  }));
54629
54763
  await context.session.hook("generate", async (draft) => {
54630
- if (!compactionOff && !deletedSessions.has(draft.sessionID))
54764
+ if (!compactionOff && !deletedSessions.has(draft.sessionID)) {
54631
54765
  generateReplay.apply(draft);
54766
+ await refuseOversizedCheckpoint(draft);
54767
+ }
54632
54768
  });
54633
54769
  withoutSqliteTransformPass2(() => warmModelLimitCacheFromCatalog(context));
54634
54770
  const rpcLiveSessionState = createV2RpcLiveSessionState({
@@ -8,6 +8,7 @@ export interface FoldIdentity {
8
8
  rendered?: V2Message;
9
9
  renderedSha?: string;
10
10
  renderedSummary?: string;
11
+ withoutRecentContext?: string;
11
12
  rejectedSha?: string;
12
13
  reason?: "host_rerender" | "host_cut_before_watermark" | "boot_recovery";
13
14
  }
@@ -36,5 +37,8 @@ export declare class FoldOwner {
36
37
  rendered: V2Message;
37
38
  onHard: (reason: NonNullable<FoldIdentity["reason"]>) => void;
38
39
  }): Promise<FoldIdentity>;
40
+ stripRecentContext(sessionID: string, checkpointID: string): Promise<FoldIdentity | undefined>;
39
41
  }
42
+ /** Remove the host's rendered recent transcript, preserving the supplied summary. */
43
+ export declare function stripCheckpointRecentContext(message: V2Message, summary: string): boolean;
40
44
  //# sourceMappingURL=owner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../../src/v2/fold/owner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,WAAqD,CAAC;AAC9F,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,GAAG,2BAA2B,GAAG,eAAe,CAAC;CAC5E;AAED;;;;GAIG;AACH,qBAAa,SAAS;IAEN,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;gBAClC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;YAC5C,MAAM;IAUpB,OAAO,CAAC,GAAG;IAGL,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAG1D,MAAM,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,MAAM,CAAC;KAC7B,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBnB,OAAO,CAAC,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC;KACjE,GAAG,OAAO,CAAC,YAAY,CAAC;CA2C5B"}
1
+ {"version":3,"file":"owner.d.ts","sourceRoot":"","sources":["../../../src/v2/fold/owner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,WAAqD,CAAC;AAC9F,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,GAAG,2BAA2B,GAAG,eAAe,CAAC;CAC5E;AAED;;;;GAIG;AACH,qBAAa,SAAS;IAEN,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;gBAClC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;YAC5C,MAAM;IAUpB,OAAO,CAAC,GAAG;IAGL,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAG1D,MAAM,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,MAAM,CAAC;KAC7B,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBnB,OAAO,CAAC,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC;KACjE,GAAG,OAAO,CAAC,YAAY,CAAC;IAmDnB,kBAAkB,CACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAoBvC;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAyBzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/context.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,9 @@ export interface SessionContext {
26
26
  options: Record<string, unknown>;
27
27
  result?: {
28
28
  summary: string;
29
+ metadata?: {
30
+ keepID?: string;
31
+ };
29
32
  };
30
33
  }
31
34
  export interface V2AgentEditor {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAChE,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAChE;AACD,MAAM,WAAW,aAAa;IAC1B,MAAM,CACF,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,CAAC,KAAK,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;QACrC,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACjC,CAAC;QACF,WAAW,EAAE,KAAK,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;SACpC,CAAC,CAAC;KACN,KAAK,IAAI,GACX,IAAI,CAAC;CACX;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,CAAC,UAAU,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1D,GAAG,IAAI,CAAC;CACZ;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACtB,+EAA+E;IAC/E,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,KAAK,EAAE,aAAa,CAAC;IACrB,kFAAkF;IAClF,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE;QAAE,SAAS,CAAC,OAAO,EAAE;YAAE,MAAM,EAAE,WAAW,CAAA;SAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC/E,KAAK,EAAE;QACH,IAAI,IACE,OAAO,CAAC;YACJ,IAAI,EAAE,KAAK,CAAC;gBACR,EAAE,EAAE,MAAM,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC;gBACnB,KAAK,EAAE;oBAAE,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAC;aAC9B,CAAC,CAAC;SACN,CAAC,GACF,OAAO,CACH,KAAK,CAAC;YACF,EAAE,EAAE,MAAM,CAAC;YACX,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;SAC9B,CAAC,CACL,GACD,KAAK,CAAC;YACF,EAAE,EAAE,MAAM,CAAC;YACX,UAAU,EAAE,MAAM,CAAC;YACnB,KAAK,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;SAC9B,CAAC,GACF;YACI,IAAI,EAAE,KAAK,CAAC;gBACR,EAAE,EAAE,MAAM,CAAC;gBACX,UAAU,EAAE,MAAM,CAAC;gBACnB,KAAK,EAAE;oBAAE,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAC;aAC9B,CAAC,CAAC;SACN,CAAC;KACX,CAAC;IACF,OAAO,EAAE;QACL,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YACxE,OAAO,EAAE,SAAS;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,OAAO,CAAA;aAAE,EAAE,CAAC;YACpD,IAAI,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACN,CAAC;IACF,IAAI,EAAE;QACF,SAAS,CAAC,CACN,QAAQ,EAAE,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE;gBAAE,WAAW,EAAE,MAAM,CAAA;aAAE,KAAK,IAAI,GAAG,IAAI,CAAC;YAC1E,GAAG,CAAC,CAAC,IAAI,EAAE;gBACP,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC;gBACpB,KAAK,EAAE,OAAO,CAAC;gBACf,OAAO,CAAC,EAAE;oBAAE,QAAQ,EAAE,OAAO,CAAA;iBAAE,CAAC;gBAChC,OAAO,CACH,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;oBACL,SAAS,EAAE,MAAM,CAAC;oBAClB,SAAS,EAAE,MAAM,CAAC;oBAClB,KAAK,EAAE,MAAM,CAAC;oBACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;iBAC3D,GACF,OAAO,CAAC;oBAAE,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;aACnC,GAAG,IAAI,CAAC;SACZ,KAAK,IAAI,GACX,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CACA,IAAI,EAAE,gBAAgB,GAAG,eAAe,EACxC,QAAQ,EAAE,CAAC,KAAK,EAAE;YACd,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,0CAA0C;YAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC;SAClC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACL,MAAM,CAAC,KAAK,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAC5D,QAAQ,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC;YAChC,QAAQ,EAAE;gBAAE,aAAa,EAAE,YAAY,CAAC;gBAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAA;aAAE,CAAC;YACzE,sFAAsF;YACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,wEAAwE;YACxE,WAAW,CAAC,EAAE,KAAK,CAAC;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;aAAE,CAAC,CAAC;SACvF,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5B,GAAG,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YACvC,KAAK,CAAC,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,sEAAsE;YACtE,QAAQ,CAAC,EAAE;gBAAE,SAAS,CAAC,EAAE,MAAM,CAAC;gBAAC,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SAC3D,CAAC,CAAC;QACH,WAAW,CAAC,KAAK,EAAE;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,OAAO,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SAC/D,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,8FAA8F;QAC9F,OAAO,CAAC,CAAC,KAAK,EAAE;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;SAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,SAAS,CAAC,KAAK,EAAE;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,OAAO,CAAC;SACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CACA,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,QAAQ,CAAC;SACtB,KAAK,OAAO,CAAC,IAAI,CAAC,GACpB,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CACA,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;SACpB,KAAK,OAAO,CAAC,IAAI,CAAC,GACpB,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CACA,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,EAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,SAAS,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC;YAAE,WAAW,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAC3E;;;WAGG;QACH,MAAM,CAAC,CAAC,KAAK,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD,CAAC;CACL"}
@@ -7,7 +7,7 @@ import {
7
7
  setRecompTerminal2,
8
8
  buildRecompDeps2,
9
9
  runManagedRecomp2
10
- } from "./server-k33t88h3.js";
10
+ } from "./server-rdjgz95f.js";
11
11
  import"./server-806rzhs6.js";
12
12
  import"./server-ph300d6m.js";
13
13
  import"./server-hwag0khr.js";
@@ -4873,6 +4873,7 @@ function decodePiContentDecision(value) {
4873
4873
  // src/features/magic-context/storage-native-replay.ts
4874
4874
  var NATIVE_TOOL_INPUTS = "native tool inputs";
4875
4875
  var NATIVE_REASONING_IDS = "native reasoning ids";
4876
+ var nativeWriteBarriers = new WeakMap;
4876
4877
  function invalidPersistedReplayState(lane, sessionId) {
4877
4878
  return new Error(`invalid persisted ${lane} state for session ${sessionId}`);
4878
4879
  }
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.30",
7877
+ version: "0.49.31",
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-wx4sfhgr.js");
8198
+ const { registerContext } = await import("./context-cdqw9jex.js");
8199
8199
  setHarness2("opencode2");
8200
8200
  bindStaleBuildNotice({}, import.meta.url, "opencode2");
8201
8201
  const duties = await registerContext(context);
@@ -19,7 +19,7 @@ import {
19
19
  registerActiveCompartmentRun,
20
20
  setRecompStarting2,
21
21
  setRecompTerminal2
22
- } from "./server-k33t88h3.js";
22
+ } from "./server-rdjgz95f.js";
23
23
  import"./server-zh3esb0z.js";
24
24
  import"./server-3mz2qh5a.js";
25
25
  import"./server-ab1g0wn9.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  runManagedWrapup2
3
- } from "./index-69gd2scx.js";
4
- import"./index-adr4vfys.js";
5
- import"./index-k0dpkyn7.js";
3
+ } from "./index-0bjktrjt.js";
4
+ import"./index-y6ynjghv.js";
5
+ import"./index-kmayq4kq.js";
6
6
  import"./index-qgh1qwjj.js";
7
7
  import"./index-pe6b4bhs.js";
8
8
  import"./index-4s4zq97n.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.49.30",
3
+ "version": "0.49.31",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",
@@ -76,6 +76,8 @@ import type { Transcript, TranscriptMessage, TranscriptPart } from "./transcript
76
76
  export { TEXT_TAG_IDENTITY_MARKER };
77
77
 
78
78
  export interface TagTranscriptOptions {
79
+ /** Independently validated text sources; does not authorize tool accounting reuse. */
80
+ reuseTextMessageIds?: ReadonlySet<string>;
79
81
  /** Keep tag-only assistant slots inert when their original text must survive stripping. */
80
82
  preserveTagOnlyAssistantText?: boolean;
81
83
  /**
@@ -125,6 +127,8 @@ export interface TagTranscriptResult {
125
127
  targets: Map<number, TagTarget>;
126
128
  }
127
129
 
130
+ type PersistedDropTag = Pick<TagEntry, "tagNumber" | "messageId" | "type" | "toolOwnerMessageId">;
131
+
128
132
  /**
129
133
  * Bind durable drops to a saved request without tagging it again. Recovery must
130
134
  * not allocate identities, inject prefixes, or write accounting while the store
@@ -132,7 +136,7 @@ export interface TagTranscriptResult {
132
136
  */
133
137
  export function buildPersistedDropTargets(
134
138
  transcript: Transcript,
135
- tags: readonly TagEntry[],
139
+ tags: readonly PersistedDropTag[],
136
140
  options: { allowReasoningPrefixRewrite?: boolean } = {},
137
141
  ): Map<number, TagTarget> {
138
142
  const targets = new Map<number, TagTarget>();
@@ -147,7 +151,7 @@ export function buildPersistedDropTargets(
147
151
  const byNumber = new Map(tags.map((tag) => [tag.tagNumber, tag]));
148
152
  const aggregates = new Map<
149
153
  string,
150
- { tag?: TagEntry; occurrences: ToolOccurrence[]; reasoning: boolean }
154
+ { tag?: PersistedDropTag; occurrences: ToolOccurrence[]; reasoning: boolean }
151
155
  >();
152
156
  const pending = new Map<string, string[]>();
153
157
  const resolved = new Map<string, string>();
@@ -421,7 +425,10 @@ export function tagTranscript(
421
425
  skipPrefixInjection,
422
426
  preserveTagOnlyAssistantText: options.preserveTagOnlyAssistantText,
423
427
  entryFingerprint: options.entryFingerprintByMessageId?.get(messageId) ?? null,
424
- reuseIdentity: reuseIdentity || contentDerivedTextIds !== undefined,
428
+ reuseIdentity:
429
+ reuseIdentity ||
430
+ options.reuseTextMessageIds?.has(messageId) === true ||
431
+ contentDerivedTextIds !== undefined,
425
432
  timing,
426
433
  textIdentitySourceCache: options.textIdentitySourceCache,
427
434
  textTokenCache: options.textTokenCache,
@@ -512,6 +519,11 @@ export function tagTranscript(
512
519
  timing,
513
520
  options.toolTokenCache,
514
521
  tokenCacheKey,
522
+ {
523
+ byteSize: existing.maxByteSize,
524
+ tokenCount: existing.maxTokenCount,
525
+ inputTokenCount: existing.inputTokenCount,
526
+ },
515
527
  );
516
528
  text = accounting.text;
517
529
  if (part.kind === "tool_result") {
@@ -627,6 +639,7 @@ export function tagTranscript(
627
639
  timing,
628
640
  options.toolTokenCache,
629
641
  tokenCacheKey,
642
+ tagger.getToolTagAccounting(sessionId, callId, messageId),
630
643
  );
631
644
  text = accounting.text;
632
645
  const outputByteSize = part.kind === "tool_result" ? accounting.byteSize : 0;
@@ -784,12 +797,23 @@ function readAggregateToolAccounting(
784
797
  timing: TagTranscriptTiming | undefined,
785
798
  tokenCache?: Map<string, { text: string; tokenCount: number }>,
786
799
  tokenCacheKey?: string,
800
+ persisted?: { byteSize: number; tokenCount: number | null; inputTokenCount: number | null },
787
801
  ): AggregateToolAccounting {
788
802
  const text = part.getText() ?? "";
789
803
  const byteSize = getToolPartByteSize(part, text);
790
- const metadata = part.getToolMetadata();
804
+ // Persisted tool-result accounting tracks the largest byte size seen. Skip
805
+ // output tokenization when that size has not grown and a count is stored;
806
+ // known input counts also need no tokenization. Growth and missing counts still
807
+ // use the counting path, even if the owning message ID was not eligible for
808
+ // tag reuse through options.reuseMessageIds.
809
+ const metadata = part.getToolMetadata({
810
+ skipInputTokenCount: persisted?.inputTokenCount != null,
811
+ });
791
812
  let tokenCount = 0;
792
- if (part.kind === "tool_result") {
813
+ if (
814
+ part.kind === "tool_result" &&
815
+ (!persisted || persisted.tokenCount === null || byteSize > persisted.byteSize)
816
+ ) {
793
817
  const tokenStart = timing ? performance.now() : 0;
794
818
  tokenCount = getCachedToolPartTokenCount(part, text, tokenCache, tokenCacheKey);
795
819
  if (timing) timing.tokenCounting += performance.now() - tokenStart;
@@ -1423,6 +1447,11 @@ function buildAggregateTarget(
1423
1447
  },
1424
1448
  // Open invocations still belong to the current turn; only complete arcs reclaim.
1425
1449
  prepareDrop: () => !occurrences.some((occ) => occ.part.canRemove?.() === "defer"),
1450
+ prepareReplayDrop: () => {
1451
+ if (complete() && !requiresToolArcSkeleton) {
1452
+ for (const occ of occurrences) occ.part.canRemove?.();
1453
+ }
1454
+ },
1426
1455
  canDrop: () => complete() && !occurrences.some((occ) => occ.part.hasUserAnswer?.()),
1427
1456
  requiresToolArcSkeleton,
1428
1457
  // Non-mutating read of the invocation input (the tool_use occurrence
@@ -139,7 +139,7 @@ export interface TranscriptPart {
139
139
  *
140
140
  * For non-tool parts both byte fields are undefined/0.
141
141
  */
142
- getToolMetadata(): {
142
+ getToolMetadata(options?: { skipInputTokenCount?: boolean }): {
143
143
  toolName: string | undefined;
144
144
  inputByteSize: number;
145
145
  inputTokenCount: number;