@cortexkit/opencode-magic-context 0.49.32 → 0.49.33

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 (29) hide show
  1. package/dist/{context-n27jdyyh.js → context-jyzkstnr.js} +9 -4
  2. package/dist/features/magic-context/request-tool-definitions.d.ts +25 -0
  3. package/dist/features/magic-context/request-tool-definitions.d.ts.map +1 -0
  4. package/dist/hooks/magic-context/apply-operations.d.ts +1 -1
  5. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  6. package/dist/hooks/magic-context/compartment-render-epoch.d.ts +7 -0
  7. package/dist/hooks/magic-context/compartment-render-epoch.d.ts.map +1 -1
  8. package/dist/hooks/magic-context/inject-compartments.d.ts +7 -2
  9. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  10. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/transform.d.ts +1 -0
  12. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  13. package/dist/{index-bzwh06cp.js → index-2xh37qn5.js} +86 -8
  14. package/dist/{index-3drcgsnf.js → index-3fkk2gwj.js} +6 -5
  15. package/dist/{index-t6b3px80.js → index-43vqx0za.js} +2 -2
  16. package/dist/{index-g0kqnc6y.js → index-b7w46fp2.js} +6 -1
  17. package/dist/{index-2agkcr3y.js → index-dq5xzeb9.js} +1 -1
  18. package/dist/index.js +8 -8
  19. package/dist/{recomp-orchestrator-6ncc6wrw.js → recomp-orchestrator-skqzzvby.js} +2 -2
  20. package/dist/{transform-postprocess-phase-wvt1k03d.js → transform-postprocess-phase-zx1peqma.js} +2 -2
  21. package/dist/v2/{context-ehews84p.js → context-3c4z2wj5.js} +14 -3
  22. package/dist/v2/hooks/context.d.ts +3 -3
  23. package/dist/v2/hooks/context.d.ts.map +1 -1
  24. package/dist/v2/{recomp-orchestrator-3r9kcs61.js → recomp-orchestrator-qfqdvbta.js} +1 -1
  25. package/dist/v2/{server-4n176b5m.js → server-aqbm9c8d.js} +110 -32
  26. package/dist/v2/server.js +2 -2
  27. package/dist/v2/{wrapup-orchestrator-ddmvbkra.js → wrapup-orchestrator-ga5vfmwr.js} +1 -1
  28. package/dist/{wrapup-orchestrator-fyvyzcbm.js → wrapup-orchestrator-dy8r3gp8.js} +3 -3
  29. package/package.json +1 -1
@@ -550,6 +550,44 @@ function withLiveDreamerOutputCap(executor, boot, fresh) {
550
550
  };
551
551
  }
552
552
 
553
+ // src/features/magic-context/request-tool-definitions.ts
554
+ import { createHash as createHash2 } from "node:crypto";
555
+ var IDENTITY_SCOPE = "names-descriptions-v1";
556
+ var sha = (value) => createHash2("sha256").update(JSON.stringify(value)).digest("hex");
557
+ function v2ToolDefinitionsHash(tools) {
558
+ const pairs = Object.entries(tools).map(([name, tool]) => [name, tool.description]).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0);
559
+ return JSON.stringify({
560
+ scope: IDENTITY_SCOPE,
561
+ hash: sha(pairs),
562
+ tools: pairs.map(([name, description]) => [name, sha([name, description])])
563
+ });
564
+ }
565
+ function needsRequestToolIdentityAdoption(previous, current) {
566
+ return readIdentity(current).scope === IDENTITY_SCOPE && readIdentity(previous).scope !== IDENTITY_SCOPE;
567
+ }
568
+ function readIdentity(value) {
569
+ try {
570
+ const parsed = JSON.parse(value);
571
+ if (typeof parsed.hash === "string" && Array.isArray(parsed.tools) && parsed.tools.every((item) => Array.isArray(item) && item.length === 2 && item.every((part) => typeof part === "string")))
572
+ return parsed;
573
+ } catch {}
574
+ return { hash: value, tools: [] };
575
+ }
576
+ function describeRequestToolDefinitionChange(previous, current) {
577
+ const before = readIdentity(previous);
578
+ const after = readIdentity(current);
579
+ let firstDifferingTool = "unknown";
580
+ for (let index = 0;index < Math.max(before.tools.length, after.tools.length); index++) {
581
+ const left = before.tools[index];
582
+ const right = after.tools[index];
583
+ if (left?.[0] === right?.[0] && left?.[1] === right?.[1])
584
+ continue;
585
+ firstDifferingTool = left?.[0] === right?.[0] ? left?.[0] ?? "unknown" : `${left?.[0] ?? "(absent)"}→${right?.[0] ?? "(absent)"}`;
586
+ break;
587
+ }
588
+ return { previousHash: before.hash, currentHash: after.hash, firstDifferingTool };
589
+ }
590
+
553
591
  // src/features/magic-context/compartment-lease.ts
554
592
  var COMPARTMENT_LEASE_TTL_MS = 5 * 60 * 1000;
555
593
  var COMPARTMENT_LEASE_RENEWAL_MS = 60 * 1000;
@@ -905,7 +943,7 @@ function isPartialCompartmentEnd(db, sessionId, messageId) {
905
943
  return Boolean(db.prepare("SELECT 1 FROM compartments WHERE session_id=? AND end_message_id=? AND end_block_index IS NOT NULL LIMIT 1").get(sessionId, messageId));
906
944
  }
907
945
  // src/features/magic-context/project-docs-hash.ts
908
- import { createHash as createHash2 } from "node:crypto";
946
+ import { createHash as createHash3 } from "node:crypto";
909
947
  import { lstatSync, readFileSync as readFileSync2, statSync as statSync2 } from "node:fs";
910
948
  import path from "node:path";
911
949
  var PROJECT_DOC_FILES = ["ARCHITECTURE.md", "STRUCTURE.md"];
@@ -1004,7 +1042,7 @@ function hashCanonicalPieces(hashPieces) {
1004
1042
  if (hashPieces.length === 0) {
1005
1043
  return "";
1006
1044
  }
1007
- return createHash2("sha256").update(hashPieces.join(PROJECT_DOCS_DELIMITER), "utf8").digest("hex");
1045
+ return createHash3("sha256").update(hashPieces.join(PROJECT_DOCS_DELIMITER), "utf8").digest("hex");
1008
1046
  }
1009
1047
  function readProjectDocsCanonical(projectDirectory) {
1010
1048
  canonicalReadCountForTests += 1;
@@ -1030,10 +1068,10 @@ function readProjectDocsCanonical(projectDirectory) {
1030
1068
  return { renderedBlock, canonicalHash };
1031
1069
  }
1032
1070
  // src/hooks/magic-context/lkg-slot.ts
1033
- import { createHash as createHash8 } from "node:crypto";
1071
+ import { createHash as createHash9 } from "node:crypto";
1034
1072
 
1035
1073
  // src/hooks/magic-context/lkg-measured-request.ts
1036
- import { createHash as createHash6 } from "node:crypto";
1074
+ import { createHash as createHash7 } from "node:crypto";
1037
1075
 
1038
1076
  // src/shared/provider-response-completion.ts
1039
1077
  function providerResponseFailed(input) {
@@ -1051,16 +1089,16 @@ function isSuccessfulProviderCompletion(input) {
1051
1089
  import { Buffer as Buffer2 } from "node:buffer";
1052
1090
 
1053
1091
  // src/hooks/magic-context/lkg-recovery-fence.ts
1054
- import { createHash as createHash4, randomUUID as randomUUID2 } from "node:crypto";
1092
+ import { createHash as createHash5, randomUUID as randomUUID2 } from "node:crypto";
1055
1093
  import { lstatSync as lstatSync2, readdirSync as readdirSync2, readFileSync as readFileSync4, rmdirSync, rmSync as rmSync2 } from "node:fs";
1056
1094
  import { basename, dirname, join as join2 } from "node:path";
1057
1095
 
1058
1096
  // src/shared/storage-file-mutex.ts
1059
1097
  import { execFileSync } from "node:child_process";
1060
- import { createHash as createHash3, randomUUID } from "node:crypto";
1098
+ import { createHash as createHash4, randomUUID } from "node:crypto";
1061
1099
  import { readdirSync, readFileSync as readFileSync3, rmSync } from "node:fs";
1062
1100
  import { join } from "node:path";
1063
- var ticketChecksum = (name, ticket) => createHash3("sha256").update(JSON.stringify([name, ticket.choosing, ticket.number, ticket.birth])).digest("hex");
1101
+ var ticketChecksum = (name, ticket) => createHash4("sha256").update(JSON.stringify([name, ticket.choosing, ticket.number, ticket.birth])).digest("hex");
1064
1102
  function processBirth(pid) {
1065
1103
  if (process.platform === "linux") {
1066
1104
  try {
@@ -1190,7 +1228,7 @@ function clearLkgFenceProcessState(sessionId) {
1190
1228
  knownFences.clear();
1191
1229
  }
1192
1230
  var durableFencesSupported = () => platform !== "win32";
1193
- var hash = (value) => createHash4("sha256").update(value).digest("hex");
1231
+ var hash = (value) => createHash5("sha256").update(value).digest("hex");
1194
1232
  var lkgServedArrayDigest = hash;
1195
1233
  function lkgRecoveryFencePath(sessionId) {
1196
1234
  return join2(getMagicContextStorageDir(), "lkg-recovery-fences", `${hash(sessionId)}.json`);
@@ -1207,7 +1245,7 @@ function metadata(slot) {
1207
1245
  ];
1208
1246
  }
1209
1247
  function representationKey(slot) {
1210
- return createHash4("sha256").update(slot.jsonPrefix).update(JSON.stringify(metadata(slot))).digest("hex");
1248
+ return createHash5("sha256").update(slot.jsonPrefix).update(JSON.stringify(metadata(slot))).digest("hex");
1211
1249
  }
1212
1250
  function lkgRecoverySlotKey(slot) {
1213
1251
  return hash(JSON.stringify([
@@ -1526,7 +1564,7 @@ function cancelAutoSearchWork(sessionId) {
1526
1564
  }
1527
1565
 
1528
1566
  // src/v2/store-reader.ts
1529
- import { createHash as createHash5 } from "node:crypto";
1567
+ import { createHash as createHash6 } from "node:crypto";
1530
1568
  import { statSync as statSync3 } from "node:fs";
1531
1569
  import { hostname } from "node:os";
1532
1570
  import { resolve } from "node:path";
@@ -1798,7 +1836,7 @@ class V2StoreReader {
1798
1836
  this.db = this.connection.db;
1799
1837
  }
1800
1838
  hostIdentity() {
1801
- return createHash5("sha256").update(JSON.stringify([hostname(), resolve(this.path), this.connection.identity])).digest("hex");
1839
+ return createHash6("sha256").update(JSON.stringify([hostname(), resolve(this.path), this.connection.identity])).digest("hex");
1802
1840
  }
1803
1841
  prepare(sql) {
1804
1842
  if (this.closed)
@@ -2842,7 +2880,7 @@ function lkgProviderInputTotal(tokens) {
2842
2880
  return counts.every((count) => Number.isSafeInteger(count) && count >= 0) ? counts.reduce((sum, count) => sum + count, 0) : Number.NaN;
2843
2881
  }
2844
2882
  function identity(slot) {
2845
- return createHash6("sha256").update(JSON.stringify([
2883
+ return createHash7("sha256").update(JSON.stringify([
2846
2884
  slot.capturedAt,
2847
2885
  slot.captureSequence,
2848
2886
  slot.rowVersion,
@@ -2938,7 +2976,7 @@ function clearCapturedLkgMeasurement(sessionId) {
2938
2976
  }
2939
2977
 
2940
2978
  // src/hooks/magic-context/lkg-persist.ts
2941
- import { createHash as createHash7 } from "node:crypto";
2979
+ import { createHash as createHash8 } from "node:crypto";
2942
2980
  function parseStringArray(value) {
2943
2981
  if (typeof value !== "string")
2944
2982
  return null;
@@ -3052,7 +3090,7 @@ function rememberFingerprint(db, sessionId, fingerprint) {
3052
3090
  saved.set(sessionId, fingerprint);
3053
3091
  }
3054
3092
  function slotFingerprint(slot) {
3055
- return createHash7("sha256").update(JSON.stringify([
3093
+ return createHash8("sha256").update(JSON.stringify([
3056
3094
  slot.jsonPrefix,
3057
3095
  slot.inputIdSeq,
3058
3096
  slot.inputContentDigests,
@@ -4225,7 +4263,7 @@ var DIGEST_CHUNK_BYTES = 64 * 1024;
4225
4263
  var digestChunk;
4226
4264
  function lkgContentDigestFromFields(fields) {
4227
4265
  lkgDigestsComputed += 1;
4228
- const hash = createHash8("sha256");
4266
+ const hash = createHash9("sha256");
4229
4267
  digestChunk ??= Buffer.allocUnsafe(DIGEST_CHUNK_BYTES);
4230
4268
  const chunk = digestChunk;
4231
4269
  let offset = 0;
@@ -4288,7 +4326,7 @@ function legacyLkgDigestFromFields(fields) {
4288
4326
  const value = typeof field === "symbol" ? field.description ?? "" : String(field);
4289
4327
  key += `${typeof field}:${value.length}:${value}\x00`;
4290
4328
  }
4291
- return createHash8("sha256").update(key).digest("base64url");
4329
+ return createHash9("sha256").update(key).digest("base64url");
4292
4330
  }
4293
4331
  function legacyLkgContentDigest(message) {
4294
4332
  const fields = flattenContentFields(withoutEmptyUserDiffSummary(message));
@@ -6383,14 +6421,14 @@ class HiddenCompletionRefusal extends Error {
6383
6421
  }
6384
6422
 
6385
6423
  // src/features/magic-context/compaction-marker.ts
6386
- import { createHash as createHash9 } from "node:crypto";
6424
+ import { createHash as createHash10 } from "node:crypto";
6387
6425
  import { existsSync, statSync as statSync4 } from "node:fs";
6388
6426
  var BASE62_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
6389
6427
  var ID_PREFIX_HEX_LENGTH = 12;
6390
6428
  var ID_SUFFIX_LENGTH = 14;
6391
6429
  var ID_PREFIX_MASK = (1n << BigInt(ID_PREFIX_HEX_LENGTH * 4)) - 1n;
6392
6430
  function deterministicBase62(seed, length) {
6393
- let value = BigInt(`0x${createHash9("sha256").update(seed).digest("hex")}`);
6431
+ let value = BigInt(`0x${createHash10("sha256").update(seed).digest("hex")}`);
6394
6432
  const chars = Array(length);
6395
6433
  for (let index = length - 1;index >= 0; index -= 1) {
6396
6434
  chars[index] = BASE62_CHARS[Number(value % 62n)];
@@ -7240,7 +7278,7 @@ function parseUserMemoryRow(row) {
7240
7278
  }
7241
7279
  // src/features/magic-context/dreamer/provider-output-failure.ts
7242
7280
  import { AsyncLocalStorage } from "node:async_hooks";
7243
- import { createHash as createHash10 } from "node:crypto";
7281
+ import { createHash as createHash11 } from "node:crypto";
7244
7282
  var MAX_NEAR_ZERO_OUTPUT_TOKENS = 32;
7245
7283
 
7246
7284
  class DreamerProviderOutputFailureError extends Error {
@@ -7337,12 +7375,12 @@ function providerOutputFailureFromInvalidManifest(messages, responseText, now =
7337
7375
  const resetAt = quotaResetAt(responseText, now);
7338
7376
  if (resetAt === undefined && completion.outputTokens > MAX_NEAR_ZERO_OUTPUT_TOKENS)
7339
7377
  return null;
7340
- const fingerprint = createHash10("sha256").update(normalized).digest("hex").slice(0, 16);
7378
+ const fingerprint = createHash11("sha256").update(normalized).digest("hex").slice(0, 16);
7341
7379
  return new DreamerProviderOutputFailureError(fingerprint, completion.outputTokens, completion.reasoningTokens, responseText, resetAt);
7342
7380
  }
7343
7381
 
7344
7382
  // src/v2/hooks/hidden-child.ts
7345
- import { createHash as createHash11 } from "node:crypto";
7383
+ import { createHash as createHash12 } from "node:crypto";
7346
7384
 
7347
7385
  // src/agents/dreamer.ts
7348
7386
  var DREAMER_AGENT = "dreamer";
@@ -7567,7 +7605,7 @@ function markerCandidates(text) {
7567
7605
  function textDigest(text) {
7568
7606
  return {
7569
7607
  length: text.length,
7570
- sha256: createHash11("sha256").update(text).digest("hex").slice(0, 16)
7608
+ sha256: createHash12("sha256").update(text).digest("hex").slice(0, 16)
7571
7609
  };
7572
7610
  }
7573
7611
  function firstDifference(a, b) {
@@ -9167,7 +9205,7 @@ async function promptAsyncAndWaitForIdle(client, request, options = {}) {
9167
9205
  }
9168
9206
  }
9169
9207
  // src/shared/prompt-surface-runtime.ts
9170
- import { createHash as createHash12 } from "node:crypto";
9208
+ import { createHash as createHash13 } from "node:crypto";
9171
9209
  import { existsSync as existsSync2, readFileSync as readFileSync5, statSync as statSync5 } from "node:fs";
9172
9210
  import { dirname as dirname2, isAbsolute, resolve as resolve2 } from "node:path";
9173
9211
 
@@ -9200,7 +9238,7 @@ function promptSurfaceHashMaterial(systemContent, preset = "full") {
9200
9238
  \x00magic-context-prompt-surface:${preset}`;
9201
9239
  }
9202
9240
  function systemPromptFingerprint(systemContent, preset = "full") {
9203
- return createHash12("md5").update(promptSurfaceHashMaterial(systemContent, preset)).digest("hex");
9241
+ return createHash13("md5").update(promptSurfaceHashMaterial(systemContent, preset)).digest("hex");
9204
9242
  }
9205
9243
  var PROMPT_SURFACE_TOOL_ID_SET = new Set(ACTIVE_TOOL_IDS);
9206
9244
  function resolveUserConfigDirectory(options) {
@@ -11098,7 +11136,7 @@ function compareMemorySelectionPriority(left, right) {
11098
11136
  }
11099
11137
 
11100
11138
  // src/features/magic-context/mural/render-trigger.ts
11101
- import { createHash as createHash13 } from "node:crypto";
11139
+ import { createHash as createHash14 } from "node:crypto";
11102
11140
 
11103
11141
  // src/features/magic-context/mural/mural-selection.ts
11104
11142
  var DEFAULT_MURAL_MEMORY_BUDGET = 8000;
@@ -11802,7 +11840,7 @@ function ensureMuralRendered(db, projectIdentity, budgetTokens = DEFAULT_MURAL_M
11802
11840
  return { ...cached.result };
11803
11841
  }
11804
11842
  const plan = planMuralRender(entries);
11805
- const textHash = createHash13("sha256").update(plan.layout.text).digest("hex");
11843
+ const textHash = createHash14("sha256").update(plan.layout.text).digest("hex");
11806
11844
  if (existing && existing.contentHash === textHash && existing.width === plan.width && existing.height === plan.height) {
11807
11845
  return rememberRender(db, projectIdentity, key, existing.image, {
11808
11846
  hasMural: true,
@@ -11867,6 +11905,7 @@ var MURAL_COMPONENT_PREFIX = "|mural-enabled:";
11867
11905
  var BUDGET_COMPONENT_PREFIX = "|render-budgets:";
11868
11906
  var RENDERED_BUDGETS_COMPONENT_PREFIX = "|rendered-budgets:";
11869
11907
  var M0_MEMORY_IDS_COMPONENT_PREFIX = "|m0-memory-ids:";
11908
+ var TOOL_DEFINITIONS_COMPONENT_PREFIX = "|request-tool-definitions:";
11870
11909
  function encodeCachedM0UpgradeIdentity(upgradeState, compartmentRenderEpoch = COMPARTMENT_RENDER_EPOCH, muralEnabled = null, renderBudgetIdentity = null, memoryRenderEpoch = MEMORY_RENDER_FORMAT_EPOCH, renderedBudgets = null) {
11871
11910
  let encoded = upgradeState ?? "";
11872
11911
  if (compartmentRenderEpoch !== null) {
@@ -11912,7 +11951,8 @@ function decodeCachedM0UpgradeIdentity(value) {
11912
11951
  value.indexOf(MURAL_COMPONENT_PREFIX),
11913
11952
  value.indexOf(BUDGET_COMPONENT_PREFIX),
11914
11953
  value.indexOf(RENDERED_BUDGETS_COMPONENT_PREFIX),
11915
- value.indexOf(M0_MEMORY_IDS_COMPONENT_PREFIX)
11954
+ value.indexOf(M0_MEMORY_IDS_COMPONENT_PREFIX),
11955
+ value.indexOf(TOOL_DEFINITIONS_COMPONENT_PREFIX)
11916
11956
  ].filter((index) => index >= 0);
11917
11957
  const identityEnd = componentIndexes.length > 0 ? Math.min(...componentIndexes) : value.length;
11918
11958
  const upgradeState = value.slice(0, identityEnd);
@@ -11930,6 +11970,22 @@ function withCachedM0MemoryIds(identity, ids) {
11930
11970
  const withoutIds = (identity ?? "").replace(/\|m0-memory-ids:[^|]*/g, "");
11931
11971
  return `${withoutIds}${M0_MEMORY_IDS_COMPONENT_PREFIX}${JSON.stringify(ids)}`;
11932
11972
  }
11973
+ function withCachedM0ToolDefinitionsHash(identity, hash) {
11974
+ const withoutHash = (identity ?? "").replace(/\|request-tool-definitions:[^|]*/g, "");
11975
+ if (hash === null)
11976
+ return withoutHash || null;
11977
+ return `${withoutHash}${TOOL_DEFINITIONS_COMPONENT_PREFIX}${encodeURIComponent(hash)}`;
11978
+ }
11979
+ function readCachedM0ToolDefinitionsHash(identity) {
11980
+ const encoded = component(identity ?? "", TOOL_DEFINITIONS_COMPONENT_PREFIX);
11981
+ if (!encoded)
11982
+ return null;
11983
+ try {
11984
+ return decodeURIComponent(encoded) || null;
11985
+ } catch {
11986
+ return null;
11987
+ }
11988
+ }
11933
11989
  function readCachedM0MemoryIds(identity, legacyVisibleIds, maxMemoryId) {
11934
11990
  const encoded = component(identity ?? "", M0_MEMORY_IDS_COMPONENT_PREFIX);
11935
11991
  if (encoded !== null) {
@@ -13026,6 +13082,7 @@ function readCurrentM0SnapshotMarkersUncached(args) {
13026
13082
  memoryRenderEpoch: MEMORY_RENDER_FORMAT_EPOCH,
13027
13083
  systemHash: hard.systemHash,
13028
13084
  toolSetHash: hard.toolSetHash ?? "",
13085
+ toolDefinitionsHash: hard.toolDefinitionsHash ?? null,
13029
13086
  modelKey: piModelRefToCanonical(hard.modelKey),
13030
13087
  projectIdentity: args.projectPath ?? null,
13031
13088
  muralEnabled: args.memoryEnabled !== false && args.muralEnabled === true,
@@ -13041,6 +13098,7 @@ function refreshVolatileMarkerInputs(markers, args) {
13041
13098
  materializedAt: Date.now(),
13042
13099
  systemHash: hard.systemHash,
13043
13100
  toolSetHash: hard.toolSetHash ?? "",
13101
+ toolDefinitionsHash: hard.toolDefinitionsHash ?? null,
13044
13102
  modelKey: hard.modelKey,
13045
13103
  projectIdentity: args.projectPath ?? null,
13046
13104
  muralEnabled: args.memoryEnabled !== false && args.muralEnabled === true,
@@ -13111,6 +13169,7 @@ function snapshotMarkersFromCachedM0(state) {
13111
13169
  memoryRenderEpoch: cachedUpgradeIdentity.memoryRenderEpoch,
13112
13170
  systemHash: state.cachedM0SystemHash ?? "",
13113
13171
  toolSetHash: state.cachedM0ToolSetHash ?? "",
13172
+ toolDefinitionsHash: readCachedM0ToolDefinitionsHash(state.cachedM0UpgradeState),
13114
13173
  modelKey: state.cachedM0ModelKey ?? "",
13115
13174
  projectIdentity: state.cachedM0ProjectIdentity ?? null,
13116
13175
  muralHash: state.cachedM0MuralHash ?? null,
@@ -13171,6 +13230,23 @@ function mustMaterialize(args) {
13171
13230
  systemHashNew: hard.systemHash
13172
13231
  };
13173
13232
  }
13233
+ const liveDefinitionsHash = hard.toolDefinitionsHash;
13234
+ if (liveDefinitionsHash) {
13235
+ const cachedDefinitionsHash = readCachedM0ToolDefinitionsHash(args.state.cachedM0UpgradeState);
13236
+ if (!cachedDefinitionsHash || needsRequestToolIdentityAdoption(cachedDefinitionsHash, liveDefinitionsHash)) {
13237
+ const previousIdentity = args.state.cachedM0UpgradeState;
13238
+ const adoptedIdentity = withCachedM0ToolDefinitionsHash(previousIdentity, liveDefinitionsHash);
13239
+ const adopted = args.db.prepare("UPDATE session_meta SET cached_m0_upgrade_state = ? WHERE session_id = ? AND cached_m0_upgrade_state IS ?").run(adoptedIdentity, args.sessionId, previousIdentity);
13240
+ if (adopted.changes > 0)
13241
+ args.state.cachedM0UpgradeState = adoptedIdentity;
13242
+ } else if (cachedDefinitionsHash !== liveDefinitionsHash) {
13243
+ return {
13244
+ value: true,
13245
+ reason: "tool_definitions",
13246
+ toolDefinitionsChange: describeRequestToolDefinitionChange(cachedDefinitionsHash, liveDefinitionsHash)
13247
+ };
13248
+ }
13249
+ }
13174
13250
  const liveToolSetHash = hard.toolSetHash ?? "";
13175
13251
  const toolSetHashComparison = liveToolSetHash !== "" ? {
13176
13252
  m0ToolSetHashPrev: args.state.cachedM0ToolSetHash,
@@ -13504,7 +13580,7 @@ function applyMarkersToState(state, m0Bytes, markers, m1Bytes, renderedM0Ids) {
13504
13580
  state.cachedM0ProjectDocsHash = markers.projectDocsHash;
13505
13581
  state.cachedM0MaterializedAt = markers.materializedAt;
13506
13582
  state.cachedM0SessionFactsVersion = markers.sessionFactsVersion;
13507
- state.cachedM0UpgradeState = withCachedM0MemoryIds(encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null), renderedM0Ids);
13583
+ state.cachedM0UpgradeState = withCachedM0ToolDefinitionsHash(withCachedM0MemoryIds(encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null), renderedM0Ids), markers.toolDefinitionsHash ?? null);
13508
13584
  state.cachedM0SystemHash = markers.systemHash;
13509
13585
  state.cachedM0ToolSetHash = markers.toolSetHash;
13510
13586
  state.cachedM0ModelKey = markers.modelKey;
@@ -13629,7 +13705,7 @@ function materializeM0(options) {
13629
13705
  const renderedMemoryIds = trimmed.renderOrder.map((m) => m.id);
13630
13706
  options.beforePhase3ForTest?.();
13631
13707
  const steps = new WriteTransactionSteps;
13632
- const upgradeIdentity = withCachedM0MemoryIds(encodeCachedM0UpgradeIdentity(snapshotMarkers.upgradeState, snapshotMarkers.compartmentRenderEpoch, snapshotMarkers.muralEnabled, snapshotMarkers.renderBudgetIdentity, snapshotMarkers.memoryRenderEpoch, snapshotMarkers.renderedBudgets ?? null), renderedMemoryIds);
13708
+ const upgradeIdentity = withCachedM0ToolDefinitionsHash(withCachedM0MemoryIds(encodeCachedM0UpgradeIdentity(snapshotMarkers.upgradeState, snapshotMarkers.compartmentRenderEpoch, snapshotMarkers.muralEnabled, snapshotMarkers.renderBudgetIdentity, snapshotMarkers.memoryRenderEpoch, snapshotMarkers.renderedBudgets ?? null), renderedMemoryIds), snapshotMarkers.toolDefinitionsHash ?? null);
13633
13709
  const baselineEndMessageId = lastCompartmentBoundaryId(compartments);
13634
13710
  steps.mark("pre_metadata");
13635
13711
  const commitFold = options.onFoldPrepare?.();
@@ -13662,6 +13738,7 @@ function materializeM0(options) {
13662
13738
  memoryRenderEpoch: MEMORY_RENDER_FORMAT_EPOCH,
13663
13739
  systemHash: snapshotMarkers.systemHash,
13664
13740
  toolSetHash: snapshotMarkers.toolSetHash,
13741
+ toolDefinitionsHash: snapshotMarkers.toolDefinitionsHash,
13665
13742
  modelKey: snapshotMarkers.modelKey,
13666
13743
  projectIdentity: projectPath ?? null,
13667
13744
  muralEnabled: snapshotMarkers.muralEnabled,
@@ -13919,7 +13996,7 @@ function readCachedM0M1Row(db, sessionId) {
13919
13996
  cached_m0_session_facts_version,
13920
13997
  cached_m0_upgrade_state,
13921
13998
  cached_m0_system_hash,
13922
- cached_m0_tool_set_hash,
13999
+ cached_m0_tool_set_hash,
13923
14000
  cached_m0_model_key,
13924
14001
  cached_m0_project_identity,
13925
14002
  cached_m0_last_baseline_end_message_id,
@@ -13961,6 +14038,7 @@ function markersFromCachedRow(row) {
13961
14038
  memoryRenderEpoch: cachedUpgradeIdentity.memoryRenderEpoch,
13962
14039
  systemHash: row.cached_m0_system_hash ?? "",
13963
14040
  toolSetHash: row.cached_m0_tool_set_hash ?? "",
14041
+ toolDefinitionsHash: readCachedM0ToolDefinitionsHash(row.cached_m0_upgrade_state),
13964
14042
  modelKey: row.cached_m0_model_key ?? "",
13965
14043
  projectIdentity: row.cached_m0_project_identity ?? null,
13966
14044
  muralHash: row.cached_m0_mural_hash ?? null,
@@ -13991,7 +14069,7 @@ function applyCachedRowToState(state, row) {
13991
14069
  state.cachedM0ProjectDocsHash = markers.projectDocsHash;
13992
14070
  state.cachedM0MaterializedAt = markers.materializedAt;
13993
14071
  state.cachedM0SessionFactsVersion = markers.sessionFactsVersion;
13994
- state.cachedM0UpgradeState = encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null);
14072
+ state.cachedM0UpgradeState = withCachedM0ToolDefinitionsHash(encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null), markers.toolDefinitionsHash ?? null);
13995
14073
  state.cachedM0SystemHash = markers.systemHash;
13996
14074
  state.cachedM0ToolSetHash = markers.toolSetHash;
13997
14075
  state.cachedM0ModelKey = markers.modelKey;
@@ -20575,4 +20653,4 @@ ${failure}`;
20575
20653
  }
20576
20654
  }
20577
20655
 
20578
- export { historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, queueM0Mutation, getMaxM0MutationId, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getUncoveredCompartmentEndsThrough, providerResponseFailed, isSuccessfulProviderCompletion, LkgRecoveryFenceError, lkgServedArrayDigest, hasCleanLkgRecoveryFence, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, rememberUnpublishedAutoSearchNoHint, getUnpublishedAutoSearchNoHint, forgetUnpublishedAutoSearchNoHint, registerAutoSearchWork, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, advanceSessionActivity, backfillSessionActivity, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, requestPendingMaterialization, pendingMaterializationOrigin, hasPendingMaterializationOrigin, clearPendingMaterialization, recordSystemPromptForRequest, recordHeldHeadForRequest, bindSystemPromptResponse, isHeldHeadForRequest, deferDeliveredSystemRefresh, retirePendingSystemPromptDelivery, lkgProviderInputTotal, beginV2LkgRequest, claimLkgRequestIdentity, currentLkgRequestIdentity, noteCapturedLkgRequest, noteLkgProviderResponse, measuredLkgPrefix, clearLkgMeasuredRequest, saveLkgSlotToDb, clearPersistedLkgSlotStrict, loadPersistedLkgSlot, drainStaleLkgSlots, resolveLkgModelKeys, createLkgEntryProjector, captureLkgSlot, validateAnthropicReasoningRuns, validateLkgSeam, replayLkg, coldStartRawServedIndex, coldStartUncapturedReplay, noteUncertifiedNormalLkg, hasProcessLocalLkgProof, lkgDirtyRevision, rememberLkgDirtyRevision, readPersistedLkgUntaggedInputIds, persistLkgUntaggedInputIds, noteLkgRecoveryPrefix, readLkgRecoveryPrefix, noteLkgHealthyPrefix, lkgRecoveryReplayUnproven, lkgRecoveryEntryUnproven, lkgInputIdentity, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, forgetInMemorySlot, dropSlot, noteEntry, getLkgSlotHeapStats, TOOL_SWEEP_SCOPED_MARKER, useScopedToolSweep, createPreAdoptionToolSweepResolver, copySessionStateForClone, queueMemoryMutation, getMaxMemoryMutationIdForProjects, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, readCoordinateGeneration, rebaseSessionCoordinatesAsync, HiddenCompletionRefusal, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, prepareCompactionMarkerCandidates, removeMcOwnedCompactionMarkers, getCompartmentEvents, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, DreamerProviderOutputFailureError, withDreamerModelCooldown, providerOutputFailureFromInvalidManifest, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, HIDDEN_RUN_DISPOSED_REASON, noteChildOfDisposedInstance, hiddenChildPermissions, registerHiddenChildAgents, hiddenToolCallRefusal, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, ModelProducedNoOutputError, noteModelActivityMonitored, noteModelOutputReceived, isPromptTimeoutError, getPromptFailureDetail, raceWithSignal, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, annotateSubagentInvocationError, failedInvocationStatus, emptyTokenTotals, sumTokensFromChildMessages, recordChildInvocation, createPromptAsyncTransport, CTX_NOTE_LIGHT_DESCRIPTION, ACTIVE_TOOL_IDS, systemPromptFingerprint, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, MARKER_SUMMARY_TEXT, markerUpdateDefinitelyDidNotCut, applyDeferredCompactionMarker, teardownChildSession, runTokenLog, formatRunTokenLog, createChildSessionWithFence, buildMagicContextSection, getMuralIdentity, getMural, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, TEMPORAL_MARKER_REPLAY_PATTERN, collectTemporalCandidates, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, MaterializeContentionError, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, resetPrefixTrimFallbackState, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, shouldWaitForNewHistorianHistory, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, observeNoteNudgeServe, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, omitIncompleteFileTokenTotals, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, deriveProtectedTailTokenTarget, selectPerRunCap, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, noteTransformPassForExactOrdinalReads, runCompartmentAgent, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure2, isRecompSkip2, extractRecompReason2, setRecompStarting2, setRecompNote2, setRecompTerminal2, buildRecompDeps2, runManagedRecomp2 };
20656
+ export { historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, v2ToolDefinitionsHash, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, queueM0Mutation, getMaxM0MutationId, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getUncoveredCompartmentEndsThrough, providerResponseFailed, isSuccessfulProviderCompletion, LkgRecoveryFenceError, lkgServedArrayDigest, hasCleanLkgRecoveryFence, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, rememberUnpublishedAutoSearchNoHint, getUnpublishedAutoSearchNoHint, forgetUnpublishedAutoSearchNoHint, registerAutoSearchWork, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, advanceSessionActivity, backfillSessionActivity, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, requestPendingMaterialization, pendingMaterializationOrigin, hasPendingMaterializationOrigin, clearPendingMaterialization, recordSystemPromptForRequest, recordHeldHeadForRequest, bindSystemPromptResponse, isHeldHeadForRequest, deferDeliveredSystemRefresh, retirePendingSystemPromptDelivery, lkgProviderInputTotal, beginV2LkgRequest, claimLkgRequestIdentity, currentLkgRequestIdentity, noteCapturedLkgRequest, noteLkgProviderResponse, measuredLkgPrefix, clearLkgMeasuredRequest, saveLkgSlotToDb, clearPersistedLkgSlotStrict, loadPersistedLkgSlot, drainStaleLkgSlots, resolveLkgModelKeys, createLkgEntryProjector, captureLkgSlot, validateAnthropicReasoningRuns, validateLkgSeam, replayLkg, coldStartRawServedIndex, coldStartUncapturedReplay, noteUncertifiedNormalLkg, hasProcessLocalLkgProof, lkgDirtyRevision, rememberLkgDirtyRevision, readPersistedLkgUntaggedInputIds, persistLkgUntaggedInputIds, noteLkgRecoveryPrefix, readLkgRecoveryPrefix, noteLkgHealthyPrefix, lkgRecoveryReplayUnproven, lkgRecoveryEntryUnproven, lkgInputIdentity, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, forgetInMemorySlot, dropSlot, noteEntry, getLkgSlotHeapStats, TOOL_SWEEP_SCOPED_MARKER, useScopedToolSweep, createPreAdoptionToolSweepResolver, copySessionStateForClone, queueMemoryMutation, getMaxMemoryMutationIdForProjects, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, readCoordinateGeneration, rebaseSessionCoordinatesAsync, HiddenCompletionRefusal, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, prepareCompactionMarkerCandidates, removeMcOwnedCompactionMarkers, getCompartmentEvents, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, DreamerProviderOutputFailureError, withDreamerModelCooldown, providerOutputFailureFromInvalidManifest, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, HIDDEN_RUN_DISPOSED_REASON, noteChildOfDisposedInstance, hiddenChildPermissions, registerHiddenChildAgents, hiddenToolCallRefusal, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, ModelProducedNoOutputError, noteModelActivityMonitored, noteModelOutputReceived, isPromptTimeoutError, getPromptFailureDetail, raceWithSignal, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, annotateSubagentInvocationError, failedInvocationStatus, emptyTokenTotals, sumTokensFromChildMessages, recordChildInvocation, createPromptAsyncTransport, CTX_NOTE_LIGHT_DESCRIPTION, ACTIVE_TOOL_IDS, systemPromptFingerprint, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, MARKER_SUMMARY_TEXT, markerUpdateDefinitelyDidNotCut, applyDeferredCompactionMarker, teardownChildSession, runTokenLog, formatRunTokenLog, createChildSessionWithFence, buildMagicContextSection, getMuralIdentity, getMural, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, TEMPORAL_MARKER_REPLAY_PATTERN, collectTemporalCandidates, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, MaterializeContentionError, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, resetPrefixTrimFallbackState, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, shouldWaitForNewHistorianHistory, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, observeNoteNudgeServe, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, omitIncompleteFileTokenTotals, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, deriveProtectedTailTokenTarget, selectPerRunCap, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, noteTransformPassForExactOrdinalReads, runCompartmentAgent, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure2, isRecompSkip2, extractRecompReason2, setRecompStarting2, setRecompNote2, setRecompTerminal2, buildRecompDeps2, runManagedRecomp2 };
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.32",
7877
+ version: "0.49.33",
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-ehews84p.js");
8198
+ const { registerContext } = await import("./context-3c4z2wj5.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-4n176b5m.js";
22
+ } from "./server-aqbm9c8d.js";
23
23
  import"./server-ab8017gw.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-t6b3px80.js";
4
- import"./index-2agkcr3y.js";
5
- import"./index-bzwh06cp.js";
3
+ } from "./index-43vqx0za.js";
4
+ import"./index-dq5xzeb9.js";
5
+ import"./index-2xh37qn5.js";
6
6
  import"./index-qgh1qwjj.js";
7
7
  import"./index-as2amvn3.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.32",
3
+ "version": "0.49.33",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",