@cortexkit/opencode-magic-context 0.44.2 → 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 (116) hide show
  1. package/dist/{conflict-warning-hook-1msyvb51.js → conflict-warning-hook-hmpzxep6.js} +3 -3
  2. package/dist/{derive-budgets-gd2270s0.js → derive-budgets-ncwn1jk9.js} +4 -2
  3. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  4. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
  5. package/dist/features/magic-context/dreamer/lease.d.ts +1 -1
  6. package/dist/features/magic-context/dreamer/lease.d.ts.map +1 -1
  7. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  9. package/dist/features/magic-context/memory/embedding-openai.d.ts +1 -0
  10. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  11. package/dist/features/magic-context/memory/project-identity.d.ts +8 -4
  12. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  13. package/dist/features/magic-context/message-index-async.d.ts +1 -1
  14. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  15. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  16. package/dist/features/magic-context/session-project-storage.d.ts +5 -5
  17. package/dist/features/magic-context/session-project-storage.d.ts.map +1 -1
  18. package/dist/features/magic-context/storage-db.d.ts +6 -1
  19. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  20. package/dist/features/magic-context/storage-embedding-measurements.d.ts.map +1 -1
  21. package/dist/features/magic-context/v22-deferred-backfill.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/compartment-render-epoch.d.ts +12 -1
  23. package/dist/hooks/magic-context/compartment-render-epoch.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +2 -1
  25. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  27. package/dist/hooks/magic-context/compartment-runner-types.d.ts +1 -0
  28. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/derive-budgets.d.ts +4 -0
  30. package/dist/hooks/magic-context/derive-budgets.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts.map +1 -1
  32. package/dist/hooks/magic-context/event-resolvers.d.ts +7 -0
  33. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  34. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/historian-host-runner.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/inject-compartments.d.ts +5 -0
  37. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/lkg-persist.d.ts +1 -4
  39. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/producer-window-guard.d.ts +4 -1
  42. package/dist/hooks/magic-context/producer-window-guard.d.ts.map +1 -1
  43. package/dist/hooks/magic-context/read-session-chunk.d.ts +4 -2
  44. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/read-session-raw.d.ts +2 -2
  46. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/rust-mode-transform.d.ts +1 -0
  48. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/storage-busy-refusal.d.ts +6 -0
  50. package/dist/hooks/magic-context/storage-busy-refusal.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/tokenizer-calibration.d.ts +1 -1
  52. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  54. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  56. package/dist/{index-r9vkp4n9.js → index-33q7s9y2.js} +1 -1
  57. package/dist/{index-egkfvhms.js → index-4an2p8qa.js} +80 -14
  58. package/dist/{index-18tjha8g.js → index-638hf49n.js} +1 -1
  59. package/dist/{index-gtzcmv90.js → index-mrc0twf3.js} +12 -6
  60. package/dist/{index-stb5fg12.js → index-msqr3x6m.js} +32 -2
  61. package/dist/{index-y5145x8k.js → index-n96ag4rk.js} +15 -1
  62. package/dist/{index-esxfcz5z.js → index-qm36k34q.js} +56 -13
  63. package/dist/{index-ttdn47aq.js → index-sqp1hz9v.js} +311 -82
  64. package/dist/{index-40s1xz22.js → index-wprsye9w.js} +1 -1
  65. package/dist/{index-3x9caerx.js → index-zx7pmr39.js} +3 -3
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +530 -250
  68. package/dist/plugin/dream-timer.d.ts.map +1 -1
  69. package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
  70. package/dist/plugin/messages-transform.d.ts.map +1 -1
  71. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  72. package/dist/{read-session-chunk-wmvgnd24.js → read-session-chunk-339hg90t.js} +3 -3
  73. package/dist/{recomp-orchestrator-rk40ff15.js → recomp-orchestrator-0ers6smx.js} +7 -7
  74. package/dist/{send-session-notification-6xsrcxnp.js → send-session-notification-04hvd54c.js} +2 -2
  75. package/dist/shared/rpc-utils.d.ts +7 -0
  76. package/dist/shared/rpc-utils.d.ts.map +1 -1
  77. package/dist/shared/run-token-log.d.ts +13 -0
  78. package/dist/shared/run-token-log.d.ts.map +1 -0
  79. package/dist/shared/sqlite.d.ts +7 -0
  80. package/dist/shared/sqlite.d.ts.map +1 -1
  81. package/dist/shared/transcript.d.ts +2 -0
  82. package/dist/shared/transcript.d.ts.map +1 -1
  83. package/dist/shared/user-answer.d.ts +4 -0
  84. package/dist/shared/user-answer.d.ts.map +1 -0
  85. package/dist/{transform-postprocess-phase-t7xgdhdf.js → transform-postprocess-phase-ttdkrm6r.js} +7 -7
  86. package/dist/v2/hidden-completion.d.ts +7 -1
  87. package/dist/v2/hidden-completion.d.ts.map +1 -1
  88. package/dist/v2/hooks/context.d.ts.map +1 -1
  89. package/dist/v2/hooks/hidden-terminal-error.d.ts +8 -0
  90. package/dist/v2/hooks/hidden-terminal-error.d.ts.map +1 -0
  91. package/dist/v2/hooks/payload.d.ts.map +1 -1
  92. package/dist/v2/hooks/store.d.ts +1 -1
  93. package/dist/v2/hooks/store.d.ts.map +1 -1
  94. package/dist/v2/hooks/tools.d.ts +1 -1
  95. package/dist/v2/hooks/tools.d.ts.map +1 -1
  96. package/dist/v2/server.js +916 -221
  97. package/dist/v2/store-reader.d.ts +2 -1
  98. package/dist/v2/store-reader.d.ts.map +1 -1
  99. package/dist/{wrapup-orchestrator-h8tr10c6.js → wrapup-orchestrator-x0jvvrqn.js} +8 -8
  100. package/package.json +1 -1
  101. package/src/config/latch-permanence-guard.test.ts +4 -0
  102. package/src/shared/data-path.test.ts +1 -1
  103. package/src/shared/models-dev-cache.test.ts +30 -1
  104. package/src/shared/rpc-utils.test.ts +27 -2
  105. package/src/shared/rpc-utils.ts +44 -15
  106. package/src/shared/run-token-log.test.ts +65 -0
  107. package/src/shared/run-token-log.ts +39 -0
  108. package/src/shared/sqlite-acquisition-routing.test.ts +19 -11
  109. package/src/shared/sqlite-pass-scope.test.ts +115 -144
  110. package/src/shared/sqlite.ts +123 -20
  111. package/src/shared/storage-busy.test.ts +34 -57
  112. package/src/shared/tag-transcript.ts +4 -1
  113. package/src/shared/transcript.ts +3 -0
  114. package/src/shared/user-answer.test.ts +40 -0
  115. package/src/shared/user-answer.ts +17 -0
  116. package/src/shared/write-transaction-attribution.test.ts +13 -11
@@ -35,8 +35,9 @@ import {
35
35
  modelSupportsVision,
36
36
  getSdkOutputLimit,
37
37
  deriveTriggerBudget2,
38
+ resolveHistorianProducerLimits2,
38
39
  producerSourceLocalBudget2
39
- } from "./index-stb5fg12.js";
40
+ } from "./index-msqr3x6m.js";
40
41
  import {
41
42
  resolveOpenCodeDbPath,
42
43
  hasV1MessageTables,
@@ -48,11 +49,12 @@ import {
48
49
  detectSqliteRuntime,
49
50
  Database,
50
51
  withoutSqliteTransformPass,
52
+ beginSqliteWriterAsync,
51
53
  withPrivilegedWriter,
52
54
  closeQuietly,
53
55
  withReadOnlySessionDb,
54
56
  getMessageTimesFromOpenCodeDb
55
- } from "./index-egkfvhms.js";
57
+ } from "./index-4an2p8qa.js";
56
58
  import {
57
59
  removeSystemReminders,
58
60
  hasMeaningfulUserText2,
@@ -100,13 +102,13 @@ import {
100
102
  getRawSessionTagKeysThrough2,
101
103
  getLegacyProtectedTailStartOrdinal2,
102
104
  readSessionChunk2
103
- } from "./index-esxfcz5z.js";
105
+ } from "./index-qm36k34q.js";
104
106
  import {
105
107
  resolveDecisionCalibration,
106
108
  providerMass,
107
109
  calibrationForModelKey,
108
110
  historyLocalBudget
109
- } from "./index-y5145x8k.js";
111
+ } from "./index-n96ag4rk.js";
110
112
  import {
111
113
  pushNotification2
112
114
  } from "./index-jdxxq8cz.js";
@@ -114,7 +116,7 @@ import {
114
116
  getErrorMessage,
115
117
  describeError,
116
118
  sendStatusNotification2
117
- } from "./index-r9vkp4n9.js";
119
+ } from "./index-33q7s9y2.js";
118
120
  import {
119
121
  logSlowWriteTransaction
120
122
  } from "./index-kr5qehbd.js";
@@ -8843,6 +8845,27 @@ var dubiousOwnershipLoggedDirectories = new Set;
8843
8845
  var dubiousOwnershipWarnedDirectories = new Set;
8844
8846
  var transientGitIdentityReuseLoggedDirectories = new Set;
8845
8847
  var sessionIdentityCache = new Map;
8848
+ var homeProjectPermission = false;
8849
+ var homeProjectSkipLogged = false;
8850
+ var pausedIdentityReasons = new Map;
8851
+ var pausedIdentityLogged = new Set;
8852
+ function setHomeProjectPermission(allowed) {
8853
+ homeProjectPermission = allowed;
8854
+ }
8855
+ function shouldSkipHomeProjectMemory(directory) {
8856
+ try {
8857
+ assertProjectAllowed(directory, homeProjectPermission);
8858
+ return false;
8859
+ } catch (error) {
8860
+ if (!(error instanceof ProjectIdentityError) || error.errorClass !== "home_project_disabled")
8861
+ throw error;
8862
+ if (!homeProjectSkipLogged) {
8863
+ homeProjectSkipLogged = true;
8864
+ log("[magic-context] home project memory disabled; skipping memory features");
8865
+ }
8866
+ return true;
8867
+ }
8868
+ }
8846
8869
  var execFileSyncForIdentity = execFileSync;
8847
8870
  var userHomeDirectoryForIdentity = () => homedir4();
8848
8871
  var nowMs = () => Date.now();
@@ -8924,6 +8947,27 @@ function isGitTimeoutError(error) {
8924
8947
  const signal = getErrorSignal(error);
8925
8948
  return code === "ETIMEDOUT" || signal === "SIGTERM" || signal === "SIGKILL" || getErrorKilled(error);
8926
8949
  }
8950
+ function hasUnbornHead(directory) {
8951
+ const options = {
8952
+ cwd: directory,
8953
+ encoding: "utf8",
8954
+ env: { ...process.env, LC_ALL: "C", LANG: "C" },
8955
+ stdio: ["ignore", "pipe", "pipe"],
8956
+ timeout: GIT_TIMEOUT_MS,
8957
+ windowsHide: true
8958
+ };
8959
+ try {
8960
+ execFileSyncForIdentity("git", ["rev-parse", "--git-dir"], options);
8961
+ try {
8962
+ execFileSyncForIdentity("git", ["rev-parse", "--verify", "--quiet", "HEAD"], options);
8963
+ return false;
8964
+ } catch (error) {
8965
+ return !isGitTimeoutError(error) && typeof error === "object" && error !== null && "status" in error && error.status === 1 && getErrorStderr(error) === "";
8966
+ }
8967
+ } catch {
8968
+ return false;
8969
+ }
8970
+ }
8927
8971
  function classifyGitError(error, rawDirectory) {
8928
8972
  if (isGitTimeoutError(error)) {
8929
8973
  return new ProjectIdentityError("git_timeout", rawDirectory, `git rev-list timed out after ${GIT_TIMEOUT_MS}ms`, asError(error));
@@ -8944,7 +8988,7 @@ function classifyGitError(error, rawDirectory) {
8944
8988
  }
8945
8989
  return new ProjectIdentityError("unknown", rawDirectory, "git rev-list failed while resolving project identity", asError(error));
8946
8990
  }
8947
- function resolveProjectIdentityStrict(directory, allowHomeProject = false) {
8991
+ function resolveProjectIdentityStrict(directory, allowHomeProject = homeProjectPermission) {
8948
8992
  assertProjectAllowed(directory, allowHomeProject);
8949
8993
  const canonical = path2.resolve(directory);
8950
8994
  const cached = identityCache.get(canonical);
@@ -8966,7 +9010,11 @@ function resolveProjectIdentityStrict(directory, allowHomeProject = false) {
8966
9010
  windowsHide: true
8967
9011
  });
8968
9012
  } catch (error) {
8969
- throw classifyGitError(error, directory);
9013
+ const classified = classifyGitError(error, directory);
9014
+ if (classified.errorClass === "not_git_repo" && hasUnbornHead(canonical)) {
9015
+ throw new ProjectIdentityError("no_commits", directory, "Git repository has no commits yet");
9016
+ }
9017
+ throw classified;
8970
9018
  }
8971
9019
  const rootCommit = output.split(`
8972
9020
  `).map((line) => line.trim().slice(0, 64)).filter((line) => /^[0-9a-f]{7,64}$/.test(line)).sort()[0];
@@ -9081,7 +9129,7 @@ function assertProjectAllowed(directory, allowHomeProject) {
9081
9129
  throw new ProjectIdentityError("home_project_disabled", directory, "Home project memory is disabled; set allow_home_project to opt in");
9082
9130
  }
9083
9131
  }
9084
- function resolveProjectIdentity(directory, allowHomeProject = false) {
9132
+ function resolveProjectIdentity(directory, allowHomeProject = homeProjectPermission) {
9085
9133
  assertProjectAllowed(directory, allowHomeProject);
9086
9134
  const canonical = path2.resolve(directory);
9087
9135
  const cachedFallback = directoryFallbackCache.get(canonical);
@@ -9106,6 +9154,8 @@ function resolveProjectIdentity(directory, allowHomeProject = false) {
9106
9154
  } catch (error) {
9107
9155
  if (error instanceof ProjectIdentityError && shouldUseDirectoryFallback(error)) {
9108
9156
  const fallback = directoryFallback(canonical);
9157
+ if (error.errorClass === "no_commits")
9158
+ return fallback;
9109
9159
  const hasGitMetadata = hasGitDir(canonical);
9110
9160
  if (!hasGitMetadata) {
9111
9161
  if (error.errorClass === "permission_denied")
@@ -9127,7 +9177,7 @@ function resolveProjectIdentity(directory, allowHomeProject = false) {
9127
9177
  throw error;
9128
9178
  }
9129
9179
  }
9130
- function resolveProjectIdentityOrFallback(directory, allowHomeProject = false) {
9180
+ function resolveProjectIdentityOrFallback(directory, allowHomeProject = homeProjectPermission) {
9131
9181
  try {
9132
9182
  return resolveProjectIdentity(directory, allowHomeProject);
9133
9183
  } catch (error) {
@@ -9205,7 +9255,7 @@ function describeUnresolvedProjectIdentity(directory) {
9205
9255
  function isUsableProjectIdentity(identity) {
9206
9256
  return typeof identity === "string" && identity.trim().length > 0;
9207
9257
  }
9208
- function resolveProjectIdentityForSession(directory, allowHomeProject = false) {
9258
+ function resolveProjectIdentityForSession(directory, allowHomeProject = homeProjectPermission) {
9209
9259
  const resolvedDirectory = path2.resolve(directory);
9210
9260
  const cacheKey = `${allowHomeProject ? "1" : "0"}\x00${resolvedDirectory}`;
9211
9261
  const cached = sessionIdentityCache.get(cacheKey);
@@ -9234,9 +9284,18 @@ function resolveProjectIdentityForSession(directory, allowHomeProject = false) {
9234
9284
  } catch (error) {
9235
9285
  if (!(error instanceof ProjectIdentityError))
9236
9286
  throw error;
9287
+ const reason = error.errorClass === "git_identity_unavailable" ? pausedIdentityReasons.get(resolvedDirectory) ?? error.errorClass : error.errorClass;
9288
+ pausedIdentityReasons.set(resolvedDirectory, reason);
9289
+ const logKey = `${resolvedDirectory}\x00${reason}`;
9290
+ if (!pausedIdentityLogged.has(logKey)) {
9291
+ pausedIdentityLogged.add(logKey);
9292
+ log(`[magic-context] memory features paused for ${resolvedDirectory}: ${reason}`);
9293
+ }
9237
9294
  identity = undefined;
9238
9295
  }
9239
9296
  }
9297
+ if (identity !== undefined)
9298
+ pausedIdentityReasons.delete(resolvedDirectory);
9240
9299
  sessionIdentityCache.set(cacheKey, {
9241
9300
  identity,
9242
9301
  revalidateAt: identity?.startsWith("git:") === true ? null : nowMs() + TRANSIENT_FAILURE_COOLDOWN_MS
@@ -9441,7 +9500,6 @@ var WINDOWS_CIM_PROBE_TIMEOUT_MS = 5000;
9441
9500
  var WINDOWS_PROCESS_SNAPSHOT_TTL_MS = 2000;
9442
9501
  var MAX_ANCESTOR_WALK_DEPTH = 16;
9443
9502
  var OPEN_CODE_COMMAND_MARKERS = ["opencode", "node", "bun", "electron"];
9444
- var TASKLIST_NO_TASKS_PATTERN = /^INFO:\s+No tasks are running which match the specified criteria\.?$/im;
9445
9503
  var WINDOWS_CIM_COMMAND = "Get-CimInstance Win32_Process | Select-Object ProcessId,ParentProcessId,Name,CommandLine,CreationDate | ConvertTo-Json -Compress";
9446
9504
  var PI_HARNESS_ARC_MARKERS = [
9447
9505
  "pi-coding-agent",
@@ -9535,18 +9593,14 @@ function parseCsvLine(line) {
9535
9593
  }
9536
9594
  function parseTasklistOutput(output) {
9537
9595
  const entries = [];
9538
- let sawHeader = false;
9539
9596
  for (const rawLine of output.split(/\r?\n/)) {
9540
9597
  const line = rawLine.trim();
9541
9598
  if (!line)
9542
9599
  continue;
9543
- if (TASKLIST_NO_TASKS_PATTERN.test(line))
9544
- return [];
9545
9600
  const fields = parseCsvLine(line);
9546
9601
  if (!fields)
9547
9602
  continue;
9548
9603
  if (fields[1]?.trim().toLowerCase() === "pid") {
9549
- sawHeader = true;
9550
9604
  continue;
9551
9605
  }
9552
9606
  const pid = Number(fields[1]);
@@ -9554,11 +9608,11 @@ function parseTasklistOutput(output) {
9554
9608
  continue;
9555
9609
  entries.push({ pid, command: fields[0] });
9556
9610
  }
9557
- return entries.length > 0 || sawHeader ? entries : null;
9611
+ return entries;
9558
9612
  }
9559
9613
  function readWindowsProcess(pid) {
9560
9614
  try {
9561
- const output = rpcIdentityExecFileSync("tasklist", ["/FO", "CSV", "/FI", `PID eq ${pid}`], {
9615
+ const output = rpcIdentityExecFileSync("tasklist", ["/FO", "CSV", "/NH", "/FI", `PID eq ${pid}`], {
9562
9616
  encoding: "utf8",
9563
9617
  timeout: PS_PROBE_TIMEOUT_MS,
9564
9618
  stdio: ["ignore", "pipe", "pipe"],
@@ -9795,7 +9849,11 @@ function tryReadWindowsCimSnapshot(exec) {
9795
9849
  }
9796
9850
  function tryReadWindowsTasklistSnapshot() {
9797
9851
  try {
9798
- const output = execProcessList(rpcProcessListExecFileSync, "tasklist", ["/FO", "CSV"]);
9852
+ const output = execProcessList(rpcProcessListExecFileSync, "tasklist", [
9853
+ "/FO",
9854
+ "CSV",
9855
+ "/NH"
9856
+ ]);
9799
9857
  const entries = parseTasklistOutput(output);
9800
9858
  if (entries === null)
9801
9859
  return null;
@@ -10004,7 +10062,7 @@ function inspectProcessesAsync(forceFresh = false) {
10004
10062
  snapshot = snapshotFromFacts(facts, "cim");
10005
10063
  } catch {}
10006
10064
  if (!snapshot) {
10007
- const entries = parseTasklistOutput(await asyncProcessExec("tasklist", ["/FO", "CSV"], PS_PROBE_TIMEOUT_MS));
10065
+ const entries = parseTasklistOutput(await asyncProcessExec("tasklist", ["/FO", "CSV", "/NH"], PS_PROBE_TIMEOUT_MS));
10008
10066
  if (entries)
10009
10067
  snapshot = snapshotFromFacts(entries.map(({ pid, command }) => ({
10010
10068
  pid,
@@ -10053,6 +10111,19 @@ function inspectProcessesAsync(forceFresh = false) {
10053
10111
  });
10054
10112
  return asyncInspection;
10055
10113
  }
10114
+ function inspectWindowsProcessesSync() {
10115
+ const snapshot = tryReadWindowsCimSnapshot(rpcProcessListExecFileSync) ?? tryReadWindowsTasklistSnapshot();
10116
+ const byPid = new Map(snapshot?.facts.map((fact) => [fact.pid, fact]));
10117
+ return {
10118
+ pi: snapshot ? classifyLivePiSnapshot(snapshot) : { state: "unreadable", processIds: [] },
10119
+ ...snapshot ? { processSnapshot: { source: snapshot.source, facts: snapshot.facts } } : {},
10120
+ evidence: (pid) => ({
10121
+ startTime: byPid.get(pid)?.startTime ?? null,
10122
+ commandLine: byPid.get(pid)?.commandLine ?? byPid.get(pid)?.imageName ?? null
10123
+ }),
10124
+ liveness: (pid) => byPid.has(pid) ? "alive" : snapshot ? "dead" : "inconclusive"
10125
+ };
10126
+ }
10056
10127
 
10057
10128
  // src/features/magic-context/context-authority.ts
10058
10129
  import { createHash as createHash5, randomUUID as randomUUID2 } from "node:crypto";
@@ -15367,7 +15438,9 @@ function classifyJunkDiscovery(portFile, raw, staleFiles) {
15367
15438
  log(`[magic-context] removing stale RPC discovery file ${portFile}: ${reason} record older than 10 minutes`);
15368
15439
  return null;
15369
15440
  }
15370
- function inspectRpcServerDiscovery(storageDir, processes) {
15441
+ function inspectRpcServerDiscovery(storageDir, processes, options) {
15442
+ const deadline = options?.deadlineMs === undefined ? Number.POSITIVE_INFINITY : Date.now() + options.deadlineMs;
15443
+ let progressAt = Date.now() + 3000;
15371
15444
  const rpcRoot = join4(storageDir, "rpc");
15372
15445
  let projectEntries;
15373
15446
  try {
@@ -15400,11 +15473,19 @@ function inspectRpcServerDiscovery(storageDir, processes) {
15400
15473
  if (portFiles.length === 0) {
15401
15474
  return { state: "absent", serverPids: [], staleFiles: [] };
15402
15475
  }
15476
+ if (!processes && process.platform === "win32")
15477
+ processes = inspectWindowsProcessesSync();
15403
15478
  const pids = new Set;
15404
15479
  const processByPid = new Map;
15405
15480
  const staleFiles = [];
15406
15481
  const inconclusivePids = new Set;
15407
- for (const portFile of portFiles) {
15482
+ for (const [index, portFile] of portFiles.entries()) {
15483
+ if (Date.now() >= deadline)
15484
+ throw new Error(`RPC holder inspection timed out after ${Math.round((options?.deadlineMs ?? 0) / 1000)} seconds (${index}/${portFiles.length} records checked). Close OpenCode and Pi, then retry.`);
15485
+ if (options?.onProgress && Date.now() >= progressAt) {
15486
+ options.onProgress(index, portFiles.length);
15487
+ progressAt = Date.now() + 3000;
15488
+ }
15408
15489
  let raw;
15409
15490
  try {
15410
15491
  raw = rpcDiscoveryFs.readFileSync(portFile, "utf8");
@@ -15442,7 +15523,7 @@ function inspectRpcServerDiscovery(storageDir, processes) {
15442
15523
  if (!previous || previous.kind === "process" && detected.kind !== "process") {
15443
15524
  processByPid.set(record.pid, detected);
15444
15525
  }
15445
- } else if (identity === "implausible") {
15526
+ } else if (identity === "implausible" && !((processes?.processSnapshot?.source === "cim" || processes?.processSnapshot?.source === "tasklist") && liveness === "alive")) {
15446
15527
  staleFiles.push(portFile);
15447
15528
  } else {
15448
15529
  inconclusivePids.add(record.pid);
@@ -15593,7 +15674,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
15593
15674
  { readRawSessionMessagePage, readRawSessionMessages },
15594
15675
  { startMessageTimeBackfill }
15595
15676
  ] = await Promise.all([
15596
- import("./read-session-chunk-wmvgnd24.js"),
15677
+ import("./read-session-chunk-339hg90t.js"),
15597
15678
  import("./message-time-backfill-q374fxc5.js")
15598
15679
  ]);
15599
15680
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
@@ -25800,7 +25881,12 @@ function pruneSynapseBatchLedgerForProject(db, projectIdentity, ttlMs = SYNAPSE_
25800
25881
  const ledgerTable = db.prepare("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = 'synapse_batch_ledger'").get();
25801
25882
  if (!ledgerTable)
25802
25883
  return 0;
25803
- return db.prepare("DELETE FROM synapse_batch_ledger WHERE session_id IN (?, ?) AND updated_at < ?").run(projectIdentity, `shadow:${projectIdentity}`, Date.now() - ttlMs).changes;
25884
+ const shadow = `shadow:${projectIdentity}`;
25885
+ const cutoff = Date.now() - ttlMs;
25886
+ const predicate = "session_id IN (?, ?) AND updated_at < ?";
25887
+ if (!db.prepare(`SELECT 1 FROM synapse_batch_ledger WHERE ${predicate} LIMIT 1`).get(projectIdentity, shadow, cutoff))
25888
+ return 0;
25889
+ return db.prepare(`DELETE FROM synapse_batch_ledger WHERE ${predicate}`).run(projectIdentity, shadow, cutoff).changes;
25804
25890
  }
25805
25891
  // src/features/magic-context/storage-memory-mutation-log.ts
25806
25892
  var MEMORY_MUTATION_TYPES = new Set(["archive", "delete", "update", "superseded"]);
@@ -30046,6 +30132,28 @@ function blockedEmbeddingEndpointReason(endpoint) {
30046
30132
  }
30047
30133
 
30048
30134
  // src/features/magic-context/memory/embedding-openai.ts
30135
+ function capEmbeddingInput(input, maxInputTokens, purpose) {
30136
+ const ratio = purpose === "query" ? CHUNK_WINDOW_SAFETY_RATIO : 1;
30137
+ const budget = Math.max(1, Math.floor(maxInputTokens * ratio));
30138
+ if (estimateTokens(input) <= budget)
30139
+ return input;
30140
+ let low = 0;
30141
+ let high = input.length;
30142
+ while (low < high) {
30143
+ const mid = Math.ceil((low + high) / 2);
30144
+ if (estimateTokens(input.slice(0, mid)) <= budget)
30145
+ low = mid;
30146
+ else
30147
+ high = mid - 1;
30148
+ }
30149
+ if (low > 0 && low < input.length) {
30150
+ const last = input.charCodeAt(low - 1);
30151
+ const next = input.charCodeAt(low);
30152
+ if (last >= 55296 && last <= 56319 && next >= 56320 && next <= 57343)
30153
+ low -= 1;
30154
+ }
30155
+ return input.slice(0, low);
30156
+ }
30049
30157
  function normalizeEndpoint3(endpoint) {
30050
30158
  return endpoint?.trim().replace(/\/+$/, "") ?? "";
30051
30159
  }
@@ -30072,6 +30180,7 @@ class OpenAICompatibleEmbeddingProvider {
30072
30180
  modelMismatchLogged = false;
30073
30181
  lastFailureReason = null;
30074
30182
  halfOpenProbeInFlight = false;
30183
+ queryTruncationLogged = false;
30075
30184
  constructor(options) {
30076
30185
  this.endpoint = normalizeEndpoint3(options.endpoint);
30077
30186
  this.model = options.model?.trim() ?? "";
@@ -30125,7 +30234,15 @@ class OpenAICompatibleEmbeddingProvider {
30125
30234
  return [];
30126
30235
  }
30127
30236
  const textPrefix = purpose === "query" ? this.queryPrefix : this.documentPrefix;
30128
- const requestTexts = texts.map((text) => `${textPrefix}${text.trim().length === 0 ? " " : text}`);
30237
+ const requestTexts = texts.map((text) => {
30238
+ const input = `${textPrefix}${text.trim().length === 0 ? " " : text}`;
30239
+ const capped = capEmbeddingInput(input, this.maxInputTokens, purpose);
30240
+ if (purpose === "query" && capped.length < input.length && !this.queryTruncationLogged) {
30241
+ log(`[magic-context] embedding query truncated from ${input.length} to ${capped.length} characters to fit max_input_tokens`);
30242
+ this.queryTruncationLogged = true;
30243
+ }
30244
+ return capped;
30245
+ });
30129
30246
  if (!await this.initialize()) {
30130
30247
  return Array.from({ length: texts.length }, () => null);
30131
30248
  }
@@ -30658,6 +30775,23 @@ var SESSION_CHUNK_REPAIR_BATCH_SIZE = 100;
30658
30775
  var upsertSessionProjectStatements = new WeakMap;
30659
30776
  var repairSessionChunkProjectStatements = new WeakMap;
30660
30777
  var repairProjectChunkProjectStatements = new WeakMap;
30778
+ var misScopedProjectChunkStatements = new WeakMap;
30779
+ var MIS_SCOPED_PROJECT_CHUNK_IDS_SQL = `
30780
+ SELECT e.id FROM compartment_chunk_embeddings e
30781
+ JOIN session_projects sp ON sp.session_id = e.session_id AND sp.harness = e.harness
30782
+ WHERE e.project_path = ? AND sp.project_path <> e.project_path
30783
+ UNION ALL
30784
+ SELECT e.id FROM session_projects sp
30785
+ JOIN compartment_chunk_embeddings e ON e.session_id = sp.session_id
30786
+ WHERE sp.project_path = ? AND e.harness = sp.harness AND e.project_path <> sp.project_path`;
30787
+ function hasMisScopedCompartmentChunkEmbeddingsForProject(db, projectPath) {
30788
+ let stmt = misScopedProjectChunkStatements.get(db);
30789
+ if (!stmt) {
30790
+ stmt = db.prepare(`SELECT 1 FROM (${MIS_SCOPED_PROJECT_CHUNK_IDS_SQL}) LIMIT 1`);
30791
+ misScopedProjectChunkStatements.set(db, stmt);
30792
+ }
30793
+ return !!stmt.get(projectPath, projectPath);
30794
+ }
30661
30795
  function getUpsertSessionProjectStatement(db) {
30662
30796
  let stmt = upsertSessionProjectStatements.get(db);
30663
30797
  if (!stmt) {
@@ -30693,23 +30827,11 @@ function getRepairProjectChunkProjectStatement(db) {
30693
30827
  if (!stmt) {
30694
30828
  stmt = db.prepare(`UPDATE compartment_chunk_embeddings
30695
30829
  SET project_path = (
30696
- SELECT sp.project_path
30697
- FROM session_projects sp
30830
+ SELECT sp.project_path FROM session_projects sp
30698
30831
  WHERE sp.session_id = compartment_chunk_embeddings.session_id
30699
30832
  AND sp.harness = compartment_chunk_embeddings.harness
30700
- LIMIT 1
30701
30833
  )
30702
- WHERE EXISTS (
30703
- SELECT 1
30704
- FROM session_projects sp
30705
- WHERE sp.session_id = compartment_chunk_embeddings.session_id
30706
- AND sp.harness = compartment_chunk_embeddings.harness
30707
- AND sp.project_path <> compartment_chunk_embeddings.project_path
30708
- AND (
30709
- sp.project_path = ?
30710
- OR compartment_chunk_embeddings.project_path = ?
30711
- )
30712
- )`);
30834
+ WHERE id IN (${MIS_SCOPED_PROJECT_CHUNK_IDS_SQL})`);
30713
30835
  repairProjectChunkProjectStatements.set(db, stmt);
30714
30836
  }
30715
30837
  return stmt;
@@ -30729,6 +30851,8 @@ function recordSessionProjectIdentity(db, sessionId, projectPath) {
30729
30851
  function repairMisScopedCompartmentChunkEmbeddingsForProject(db, projectPath) {
30730
30852
  if (!projectPath)
30731
30853
  return 0;
30854
+ if (!hasMisScopedCompartmentChunkEmbeddingsForProject(db, projectPath))
30855
+ return 0;
30732
30856
  return getRepairProjectChunkProjectStatement(db).run(projectPath, projectPath).changes;
30733
30857
  }
30734
30858
 
@@ -31199,6 +31323,14 @@ function recordActiveEmbeddingIdentity(db, projectIdentity, currentProviderIdent
31199
31323
  if (currentProviderIdentity === OFF_PROVIDER_IDENTITY) {
31200
31324
  return;
31201
31325
  }
31326
+ const scopes = [["chunk", currentChunkIdentity]];
31327
+ if (features.memoryEnabled)
31328
+ scopes.push(["memory", currentProviderIdentity]);
31329
+ if (features.gitCommitEnabled)
31330
+ scopes.push(["commit", currentProviderIdentity]);
31331
+ const active = db.prepare("SELECT 1 FROM embedding_identity_active WHERE project_path = ? AND scope = ? AND model_id = ?");
31332
+ if (scopes.every(([scope, model]) => active.get(projectIdentity, scope, model)) && !hasMisScopedCompartmentChunkEmbeddingsForProject(db, projectIdentity))
31333
+ return;
31202
31334
  const now = Date.now();
31203
31335
  const transactionStartedAt = performance.now();
31204
31336
  db.exec("BEGIN IMMEDIATE");
@@ -31396,7 +31528,9 @@ function registerProjectEmbedding(db, projectIdentity, config, features, sourceD
31396
31528
  observationMode: false
31397
31529
  };
31398
31530
  projectRegistrations.set(projectIdentity, registration);
31399
- persistPrimaryDescriptor(db, registration);
31531
+ if (generationChanged || !db.prepare("SELECT 1 FROM embedding_registrations WHERE project_path = ? AND provider_identity = ? AND chunk_model_id = ? AND generation = ?").get(projectIdentity, providerIdentity, registration.chunkModelId, generation)) {
31532
+ persistPrimaryDescriptor(db, registration);
31533
+ }
31400
31534
  if (!canReuseProvider) {
31401
31535
  disposeProvider(prior?.provider ?? null);
31402
31536
  }
@@ -33383,7 +33517,8 @@ var EPOCH_COMPONENT_PREFIX = "|compartment-render:";
33383
33517
  var MEMORY_EPOCH_COMPONENT_PREFIX = "|memory-render:";
33384
33518
  var MURAL_COMPONENT_PREFIX = "|mural-enabled:";
33385
33519
  var BUDGET_COMPONENT_PREFIX = "|render-budgets:";
33386
- function encodeCachedM0UpgradeIdentity(upgradeState, compartmentRenderEpoch = COMPARTMENT_RENDER_EPOCH, muralEnabled = null, renderBudgetIdentity = null, memoryRenderEpoch = MEMORY_RENDER_FORMAT_EPOCH) {
33520
+ var RENDERED_BUDGETS_COMPONENT_PREFIX = "|rendered-budgets:";
33521
+ function encodeCachedM0UpgradeIdentity(upgradeState, compartmentRenderEpoch = COMPARTMENT_RENDER_EPOCH, muralEnabled = null, renderBudgetIdentity = null, memoryRenderEpoch = MEMORY_RENDER_FORMAT_EPOCH, renderedBudgets = null) {
33387
33522
  let encoded = upgradeState ?? "";
33388
33523
  if (compartmentRenderEpoch !== null) {
33389
33524
  encoded += `${EPOCH_COMPONENT_PREFIX}${compartmentRenderEpoch}`;
@@ -33397,6 +33532,9 @@ function encodeCachedM0UpgradeIdentity(upgradeState, compartmentRenderEpoch = CO
33397
33532
  if (renderBudgetIdentity !== null) {
33398
33533
  encoded += `${BUDGET_COMPONENT_PREFIX}${renderBudgetIdentity}`;
33399
33534
  }
33535
+ if (renderedBudgets !== null) {
33536
+ encoded += `${RENDERED_BUDGETS_COMPONENT_PREFIX}${renderedBudgets}`;
33537
+ }
33400
33538
  return encoded.length > 0 ? encoded : null;
33401
33539
  }
33402
33540
  function component(value, prefix) {
@@ -33415,14 +33553,16 @@ function decodeCachedM0UpgradeIdentity(value) {
33415
33553
  compartmentRenderEpoch: null,
33416
33554
  memoryRenderEpoch: null,
33417
33555
  muralEnabled: null,
33418
- renderBudgetIdentity: null
33556
+ renderBudgetIdentity: null,
33557
+ renderedBudgets: null
33419
33558
  };
33420
33559
  }
33421
33560
  const componentIndexes = [
33422
33561
  value.indexOf(EPOCH_COMPONENT_PREFIX),
33423
33562
  value.indexOf(MEMORY_EPOCH_COMPONENT_PREFIX),
33424
33563
  value.indexOf(MURAL_COMPONENT_PREFIX),
33425
- value.indexOf(BUDGET_COMPONENT_PREFIX)
33564
+ value.indexOf(BUDGET_COMPONENT_PREFIX),
33565
+ value.indexOf(RENDERED_BUDGETS_COMPONENT_PREFIX)
33426
33566
  ].filter((index) => index >= 0);
33427
33567
  const identityEnd = componentIndexes.length > 0 ? Math.min(...componentIndexes) : value.length;
33428
33568
  const upgradeState = value.slice(0, identityEnd);
@@ -33432,9 +33572,36 @@ function decodeCachedM0UpgradeIdentity(value) {
33432
33572
  compartmentRenderEpoch: component(value, EPOCH_COMPONENT_PREFIX),
33433
33573
  memoryRenderEpoch: component(value, MEMORY_EPOCH_COMPONENT_PREFIX),
33434
33574
  muralEnabled: muralComponent === "1" ? true : muralComponent === "0" ? false : null,
33435
- renderBudgetIdentity: component(value, BUDGET_COMPONENT_PREFIX)
33575
+ renderBudgetIdentity: component(value, BUDGET_COMPONENT_PREFIX),
33576
+ renderedBudgets: component(value, RENDERED_BUDGETS_COMPONENT_PREFIX)
33436
33577
  };
33437
33578
  }
33579
+ function renderBudgetIdentityChanged(cached, current) {
33580
+ const legacy = /^(m[^-]+)-h\d+$/.exec(cached);
33581
+ if (legacy && current.startsWith("m") && current.includes("-hp")) {
33582
+ return legacy[1] !== current.slice(0, current.indexOf("-h"));
33583
+ }
33584
+ return cached !== current;
33585
+ }
33586
+ function renderedBudgetSnapshot(memoryTokens, historyTokens) {
33587
+ return `m${memoryTokens}-h${historyTokens}`;
33588
+ }
33589
+ function readRenderedBudgets(value) {
33590
+ const match = value?.match(/^m(\d+(?:\.\d+)?)-h(\d+(?:\.\d+)?)$/);
33591
+ if (!match)
33592
+ return null;
33593
+ const memory = Number(match[1]);
33594
+ const history = Number(match[2]);
33595
+ return Number.isFinite(memory) && Number.isFinite(history) ? { memory, history } : null;
33596
+ }
33597
+ function renderedBudgetShrinkReason(cached, current) {
33598
+ const before = readRenderedBudgets(cached);
33599
+ const after = readRenderedBudgets(current);
33600
+ if (!before || !after)
33601
+ return null;
33602
+ const shrunk = (oldTokens, newTokens) => oldTokens - newTokens > Math.max(64, oldTokens * 0.01);
33603
+ return shrunk(before.memory, after.memory) || shrunk(before.history, after.history) ? `render_config:budget_shrink(${cached}→${current})` : null;
33604
+ }
33438
33605
 
33439
33606
  // src/hooks/magic-context/decay-curve.ts
33440
33607
  var H50 = 24;
@@ -34164,8 +34331,8 @@ function lastCompartmentBoundaryId(compartments) {
34164
34331
  }
34165
34332
  var DEFAULT_HISTORY_BUDGET_TOKENS = 60000;
34166
34333
  var DEFAULT_MEMORY_BUDGET_TOKENS = 8000;
34167
- function renderBudgetIdentity(memoryBudget, historyBudget) {
34168
- return `m${memoryBudget ?? DEFAULT_MEMORY_BUDGET_TOKENS}-h${historyBudget ?? DEFAULT_HISTORY_BUDGET_TOKENS}`;
34334
+ function renderBudgetIdentity(memoryBudget, historyBudget, historyPolicy) {
34335
+ return `m${memoryBudget ?? DEFAULT_MEMORY_BUDGET_TOKENS}-h${historyPolicy ?? historyBudget ?? DEFAULT_HISTORY_BUDGET_TOKENS}`;
34169
34336
  }
34170
34337
  var DEFAULT_USER_PROFILE_BUDGET_TOKENS = 4000;
34171
34338
  var MAX_FORCED_MEMORIES_PER_DELTA = 10;
@@ -34431,7 +34598,8 @@ function readCurrentM0SnapshotMarkersUncached(args) {
34431
34598
  modelKey: piModelRefToCanonical(hard.modelKey),
34432
34599
  projectIdentity: args.projectPath ?? null,
34433
34600
  muralEnabled: args.memoryEnabled !== false && args.muralEnabled === true,
34434
- renderBudgetIdentity: renderBudgetIdentity(args.memoryInjectionBudgetTokens, args.historyBudgetTokens)
34601
+ renderBudgetIdentity: renderBudgetIdentity(args.memoryInjectionBudgetTokens, args.historyBudgetTokens, args.historyBudgetPolicyIdentity),
34602
+ renderedBudgets: renderedBudgetSnapshot(args.memoryInjectionBudgetTokens ?? DEFAULT_MEMORY_BUDGET_TOKENS, args.historyBudgetTokens ?? DEFAULT_HISTORY_BUDGET_TOKENS)
34435
34603
  }
34436
34604
  };
34437
34605
  }
@@ -34445,7 +34613,8 @@ function refreshVolatileMarkerInputs(markers, args) {
34445
34613
  modelKey: hard.modelKey,
34446
34614
  projectIdentity: args.projectPath ?? null,
34447
34615
  muralEnabled: args.memoryEnabled !== false && args.muralEnabled === true,
34448
- renderBudgetIdentity: renderBudgetIdentity(args.memoryInjectionBudgetTokens, args.historyBudgetTokens)
34616
+ renderBudgetIdentity: renderBudgetIdentity(args.memoryInjectionBudgetTokens, args.historyBudgetTokens, args.historyBudgetPolicyIdentity),
34617
+ renderedBudgets: renderedBudgetSnapshot(args.memoryInjectionBudgetTokens ?? DEFAULT_MEMORY_BUDGET_TOKENS, args.historyBudgetTokens ?? DEFAULT_HISTORY_BUDGET_TOKENS)
34449
34618
  };
34450
34619
  }
34451
34620
  function readCurrentM0SnapshotMarkers(args) {
@@ -34515,7 +34684,8 @@ function snapshotMarkersFromCachedM0(state) {
34515
34684
  projectIdentity: state.cachedM0ProjectIdentity ?? null,
34516
34685
  muralHash: state.cachedM0MuralHash ?? null,
34517
34686
  muralEnabled: cachedUpgradeIdentity.muralEnabled,
34518
- renderBudgetIdentity: cachedUpgradeIdentity.renderBudgetIdentity
34687
+ renderBudgetIdentity: cachedUpgradeIdentity.renderBudgetIdentity,
34688
+ renderedBudgets: cachedUpgradeIdentity.renderedBudgets
34519
34689
  };
34520
34690
  }
34521
34691
  var MEMORY_DERIVED_BLOCK_PATTERN = /<(?:project-memory|user-profile|new-user-profile|memory-updates|memory-mural)(?:>|\s)/;
@@ -34531,14 +34701,26 @@ function mustMaterialize(args) {
34531
34701
  const current = readCurrentM0SnapshotMarkers(args);
34532
34702
  const cachedUpgradeIdentity = decodeCachedM0UpgradeIdentity(args.state.cachedM0UpgradeState);
34533
34703
  if (args.memoryEnabled === false && cachedMemoryDerivedSurfacePresent(args.state)) {
34534
- return { value: true, reason: "render_config" };
34704
+ return { value: true, reason: "render_config:memory_disabled" };
34535
34705
  }
34536
34706
  if (cachedUpgradeIdentity.compartmentRenderEpoch !== current.compartmentRenderEpoch) {
34537
34707
  return { value: true, reason: "compartment_render_epoch" };
34538
34708
  }
34539
- if (cachedUpgradeIdentity.muralEnabled !== null && cachedUpgradeIdentity.muralEnabled !== current.muralEnabled || cachedUpgradeIdentity.renderBudgetIdentity !== null && cachedUpgradeIdentity.renderBudgetIdentity !== current.renderBudgetIdentity) {
34540
- return { value: true, reason: "render_config" };
34709
+ if (cachedUpgradeIdentity.muralEnabled !== null && cachedUpgradeIdentity.muralEnabled !== current.muralEnabled) {
34710
+ return {
34711
+ value: true,
34712
+ reason: `render_config:mural(${cachedUpgradeIdentity.muralEnabled}→${current.muralEnabled})`
34713
+ };
34541
34714
  }
34715
+ if (cachedUpgradeIdentity.renderBudgetIdentity !== null && current.renderBudgetIdentity != null && renderBudgetIdentityChanged(cachedUpgradeIdentity.renderBudgetIdentity, current.renderBudgetIdentity)) {
34716
+ return {
34717
+ value: true,
34718
+ reason: `render_config:budget(${cachedUpgradeIdentity.renderBudgetIdentity}→${current.renderBudgetIdentity})`
34719
+ };
34720
+ }
34721
+ const budgetShrinkReason = renderedBudgetShrinkReason(cachedUpgradeIdentity.renderedBudgets, current.renderedBudgets);
34722
+ if (budgetShrinkReason)
34723
+ return { value: true, reason: budgetShrinkReason };
34542
34724
  const canonicalHardModelKey = piModelRefToCanonical(hard.modelKey);
34543
34725
  const canonicalCachedModelKey = piModelRefToCanonical(args.state.cachedM0ModelKey ?? "");
34544
34726
  if (canonicalHardModelKey !== "" && canonicalHardModelKey !== canonicalCachedModelKey) {
@@ -34891,7 +35073,7 @@ function applyMarkersToState(state, m0Bytes, markers, m1Bytes) {
34891
35073
  state.cachedM0ProjectDocsHash = markers.projectDocsHash;
34892
35074
  state.cachedM0MaterializedAt = markers.materializedAt;
34893
35075
  state.cachedM0SessionFactsVersion = markers.sessionFactsVersion;
34894
- state.cachedM0UpgradeState = encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch);
35076
+ state.cachedM0UpgradeState = encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null);
34895
35077
  state.cachedM0SystemHash = markers.systemHash;
34896
35078
  state.cachedM0ToolSetHash = markers.toolSetHash;
34897
35079
  state.cachedM0ModelKey = markers.modelKey;
@@ -34943,6 +35125,7 @@ function materializeM0(options) {
34943
35125
  muralEnabled: options.muralEnabled,
34944
35126
  memoryInjectionBudgetTokens: options.memoryInjectionBudgetTokens,
34945
35127
  historyBudgetTokens: options.historyBudgetTokens,
35128
+ historyBudgetPolicyIdentity: options.historyBudgetPolicyIdentity,
34946
35129
  hardSignals: options.hardSignals,
34947
35130
  workspaceIdentitySet: {
34948
35131
  identities: workspace.identities,
@@ -35043,7 +35226,8 @@ function materializeM0(options) {
35043
35226
  modelKey: snapshotMarkers.modelKey,
35044
35227
  projectIdentity: projectPath ?? null,
35045
35228
  muralEnabled: snapshotMarkers.muralEnabled,
35046
- renderBudgetIdentity: snapshotMarkers.renderBudgetIdentity
35229
+ renderBudgetIdentity: snapshotMarkers.renderBudgetIdentity,
35230
+ renderedBudgets: snapshotMarkers.renderedBudgets
35047
35231
  };
35048
35232
  const memoryEpochStale = current.workspaceFingerprint !== null || snapshotMarkers.workspaceFingerprint !== null ? current.workspaceFingerprint !== snapshotMarkers.workspaceFingerprint : current.projectMemoryEpoch !== snapshotMarkers.projectMemoryEpoch;
35049
35233
  const stale = memoryEpochStale || current.projectUserProfileVersion !== snapshotMarkers.projectUserProfileVersion || current.maxCompartmentSeq !== snapshotMarkers.maxCompartmentSeq || current.maxMutationId !== snapshotMarkers.maxMutationId || current.maxMemoryMutationId !== snapshotMarkers.maxMemoryMutationId || current.sessionFactsVersion !== snapshotMarkers.sessionFactsVersion || current.upgradeState !== snapshotMarkers.upgradeState || (current.projectIdentity ?? null) !== (snapshotMarkers.projectIdentity ?? null);
@@ -35078,7 +35262,7 @@ function materializeM0(options) {
35078
35262
  projectDocsHash: snapshotMarkers.projectDocsHash,
35079
35263
  materializedAt: snapshotMarkers.materializedAt,
35080
35264
  sessionFactsVersion: snapshotMarkers.sessionFactsVersion,
35081
- upgradeState: encodeCachedM0UpgradeIdentity(snapshotMarkers.upgradeState, snapshotMarkers.compartmentRenderEpoch, snapshotMarkers.muralEnabled, snapshotMarkers.renderBudgetIdentity, snapshotMarkers.memoryRenderEpoch),
35265
+ upgradeState: encodeCachedM0UpgradeIdentity(snapshotMarkers.upgradeState, snapshotMarkers.compartmentRenderEpoch, snapshotMarkers.muralEnabled, snapshotMarkers.renderBudgetIdentity, snapshotMarkers.memoryRenderEpoch, snapshotMarkers.renderedBudgets ?? null),
35082
35266
  systemHash: snapshotMarkers.systemHash,
35083
35267
  toolSetHash: snapshotMarkers.toolSetHash,
35084
35268
  modelKey: snapshotMarkers.modelKey,
@@ -35341,7 +35525,8 @@ function markersFromCachedRow(row) {
35341
35525
  projectIdentity: row.cached_m0_project_identity ?? null,
35342
35526
  muralHash: row.cached_m0_mural_hash ?? null,
35343
35527
  muralEnabled: cachedUpgradeIdentity.muralEnabled,
35344
- renderBudgetIdentity: cachedUpgradeIdentity.renderBudgetIdentity
35528
+ renderBudgetIdentity: cachedUpgradeIdentity.renderBudgetIdentity,
35529
+ renderedBudgets: cachedUpgradeIdentity.renderedBudgets
35345
35530
  };
35346
35531
  }
35347
35532
  function cachedRowMatchesState(row, state) {
@@ -35366,7 +35551,7 @@ function applyCachedRowToState(state, row) {
35366
35551
  state.cachedM0ProjectDocsHash = markers.projectDocsHash;
35367
35552
  state.cachedM0MaterializedAt = markers.materializedAt;
35368
35553
  state.cachedM0SessionFactsVersion = markers.sessionFactsVersion;
35369
- state.cachedM0UpgradeState = encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch);
35554
+ state.cachedM0UpgradeState = encodeCachedM0UpgradeIdentity(markers.upgradeState, markers.compartmentRenderEpoch, markers.muralEnabled, markers.renderBudgetIdentity, markers.memoryRenderEpoch, markers.renderedBudgets ?? null);
35370
35555
  state.cachedM0SystemHash = markers.systemHash;
35371
35556
  state.cachedM0ToolSetHash = markers.toolSetHash;
35372
35557
  state.cachedM0ModelKey = markers.modelKey;
@@ -35459,6 +35644,7 @@ function renderFreshM0NonPersisted(options) {
35459
35644
  muralEnabled: options.muralEnabled,
35460
35645
  memoryInjectionBudgetTokens: options.memoryInjectionBudgetTokens,
35461
35646
  historyBudgetTokens: options.historyBudgetTokens,
35647
+ historyBudgetPolicyIdentity: options.historyBudgetPolicyIdentity,
35462
35648
  hardSignals: options.hardSignals,
35463
35649
  workspaceIdentitySet: {
35464
35650
  identities: workspace.identities,
@@ -35828,7 +36014,8 @@ function injectM0M1(options) {
35828
36014
  memoryEnabled: options.memoryEnabled,
35829
36015
  muralEnabled: options.muralEnabled,
35830
36016
  memoryInjectionBudgetTokens: options.memoryInjectionBudgetTokens,
35831
- historyBudgetTokens: options.historyBudgetTokens
36017
+ historyBudgetTokens: options.historyBudgetTokens,
36018
+ historyBudgetPolicyIdentity: options.historyBudgetPolicyIdentity
35832
36019
  });
35833
36020
  let rematerialized = false;
35834
36021
  let contentionExhausted = false;
@@ -39064,6 +39251,27 @@ async function teardownChildSession(args) {
39064
39251
  }
39065
39252
  }
39066
39253
 
39254
+ // src/shared/run-token-log.ts
39255
+ function count(value) {
39256
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
39257
+ }
39258
+ function runTokenLog(tokens, maxTokens, finish) {
39259
+ const usage = tokens && typeof tokens === "object" ? tokens : {};
39260
+ const cache = usage.cache && typeof usage.cache === "object" ? usage.cache : {};
39261
+ return {
39262
+ input: count(usage.input ?? usage.input_tokens),
39263
+ output: count(usage.output ?? usage.output_tokens),
39264
+ reasoning: count(usage.reasoning ?? usage.reasoning_tokens),
39265
+ cache_read: count(usage.cacheRead ?? usage.cache_read ?? usage.cached_input_tokens ?? cache.read),
39266
+ cache_write: count(usage.cacheWrite ?? usage.cache_write ?? usage.cache_write_tokens ?? cache.write),
39267
+ max_tokens: count(maxTokens),
39268
+ finish_reason: typeof finish === "string" ? finish : null
39269
+ };
39270
+ }
39271
+ function formatRunTokenLog(tokens) {
39272
+ return `tokens=${JSON.stringify(tokens)}`;
39273
+ }
39274
+
39067
39275
  // src/features/magic-context/schema-fence-probe.ts
39068
39276
  var STALE_CHILD_SPAWN_FAILURE = "stale_schema_fence";
39069
39277
  var STALE_CHILD_SPAWN_LATCH_THRESHOLD = 2;
@@ -39424,11 +39632,14 @@ function clampProducerAtomChars(text, maxChars, marker) {
39424
39632
  const tailChars = Math.floor(keptChars / 2);
39425
39633
  return `${text.slice(0, headChars)}${marker}${text.slice(text.length - tailChars)}`;
39426
39634
  }
39427
- function producerInputTokenLimit(contextLimitTokens, maxOutputTokens) {
39428
- if (typeof contextLimitTokens !== "number" || !Number.isFinite(contextLimitTokens) || contextLimitTokens <= 0 || !Number.isFinite(maxOutputTokens) || maxOutputTokens < 0) {
39635
+ function producerInputTokenLimit(contextLimitTokens, maxOutputTokens, inputLimitTokens) {
39636
+ if (!Number.isFinite(maxOutputTokens) || maxOutputTokens < 0)
39429
39637
  return;
39430
- }
39431
- const usableInputTokens = Math.floor(contextLimitTokens - maxOutputTokens);
39638
+ const shared = typeof contextLimitTokens === "number" && Number.isFinite(contextLimitTokens) && contextLimitTokens > 0 ? contextLimitTokens - maxOutputTokens : undefined;
39639
+ const input = typeof inputLimitTokens === "number" && Number.isFinite(inputLimitTokens) && inputLimitTokens > 0 ? inputLimitTokens : undefined;
39640
+ if (shared === undefined && input === undefined)
39641
+ return;
39642
+ const usableInputTokens = Math.floor(Math.min(shared ?? Infinity, input ?? Infinity));
39432
39643
  if (usableInputTokens <= 0)
39433
39644
  return;
39434
39645
  const limit = Math.floor(usableInputTokens * (1 - PRODUCER_WINDOW_REFUSAL_MARGIN));
@@ -39440,15 +39651,15 @@ function historianProducerReserve(window, configuredOutput, catalogOutput) {
39440
39651
  return window === undefined ? 0 : catalogOutputReserve(window, catalogOutput);
39441
39652
  }
39442
39653
  function producerWindowFailureReason(input) {
39443
- const { producerSourceTokens, contextLimitTokens, maxOutputTokens } = input;
39444
- const producerInputLimitTokens = producerInputTokenLimit(contextLimitTokens, maxOutputTokens);
39445
- if (producerInputLimitTokens === undefined || typeof contextLimitTokens !== "number" || !Number.isFinite(producerSourceTokens) || producerSourceTokens <= 0) {
39654
+ const { producerSourceTokens, contextLimitTokens, inputLimitTokens, maxOutputTokens } = input;
39655
+ const producerInputLimitTokens = producerInputTokenLimit(contextLimitTokens, maxOutputTokens, inputLimitTokens);
39656
+ if (producerInputLimitTokens === undefined || !Number.isFinite(producerSourceTokens) || producerSourceTokens <= 0) {
39446
39657
  return null;
39447
39658
  }
39448
- const usableInputTokens = Math.max(0, Math.floor(contextLimitTokens - maxOutputTokens));
39659
+ const usableInputTokens = Math.floor(Math.min(contextLimitTokens === undefined ? Infinity : Math.max(0, contextLimitTokens - maxOutputTokens), inputLimitTokens ?? Infinity));
39449
39660
  if (producerSourceTokens <= producerInputLimitTokens)
39450
39661
  return null;
39451
- return `producer_source_exceeds_window producer_source_tokens=${Math.round(producerSourceTokens)} usable_input_tokens=${usableInputTokens} producer_input_limit_tokens=${producerInputLimitTokens} context_limit_tokens=${Math.round(contextLimitTokens)} max_output_tokens=${Math.round(maxOutputTokens)} estimator_margin=${PRODUCER_WINDOW_REFUSAL_MARGIN}`;
39662
+ return `producer_source_exceeds_window producer_source_tokens=${Math.round(producerSourceTokens)} usable_input_tokens=${usableInputTokens} producer_input_limit_tokens=${producerInputLimitTokens} context_limit_tokens=${contextLimitTokens === undefined ? "unknown" : Math.round(contextLimitTokens)} max_output_tokens=${Math.round(maxOutputTokens)} estimator_margin=${PRODUCER_WINDOW_REFUSAL_MARGIN}`;
39452
39663
  }
39453
39664
  function splitMarkerPair() {
39454
39665
  return `
@@ -39457,7 +39668,7 @@ ${HISTORIAN_TRUNCATION_MARKER}
39457
39668
  `;
39458
39669
  }
39459
39670
  function fitAtomicHistorianSourceToProducerWindow(args) {
39460
- const producerInputLimitTokens = producerInputTokenLimit(args.contextLimitTokens, args.maxOutputTokens);
39671
+ const producerInputLimitTokens = producerInputTokenLimit(args.contextLimitTokens, args.maxOutputTokens, args.inputLimitTokens);
39461
39672
  const originalTokens = estimateTokens(args.text);
39462
39673
  if (producerInputLimitTokens === undefined || originalTokens < producerInputLimitTokens || producerInputLimitTokens <= 0) {
39463
39674
  return { text: args.text, producerInputLimitTokens, removedTokens: 0 };
@@ -39491,7 +39702,7 @@ function fitAtomicHistorianSourceToProducerWindow(args) {
39491
39702
  };
39492
39703
  }
39493
39704
  function producerPromptFailureReason(input) {
39494
- const limit = producerInputTokenLimit(input.contextLimitTokens, input.maxOutputTokens);
39705
+ const limit = producerInputTokenLimit(input.contextLimitTokens, input.maxOutputTokens, input.inputLimitTokens);
39495
39706
  const tokens = providerMass({ prose: input.sourceLocal, system: input.systemLocal, tools: input.toolsLocal }, calibrationForModelKey(input.modelKey), true);
39496
39707
  if (limit === undefined)
39497
39708
  return null;
@@ -39602,12 +39813,15 @@ function createV1HiddenCompletionExecutor(client, db, directory) {
39602
39813
  throw new Error(`Historian host recorded an assistant error${finish}: ${describeAssistantFailure(assistantFailure.error)}`);
39603
39814
  }
39604
39815
  const text = extractLatestAssistantText(messages);
39816
+ const latest = Array.isArray(messages) ? messages.filter((message) => isRecord(message) && isRecord(message.info) && message.info.role === "assistant").sort((left, right) => historianMessageCreatedAt(right) - historianMessageCreatedAt(left))[0] : undefined;
39817
+ const info = latest && isRecord(latest.info) ? latest.info : {};
39605
39818
  return {
39606
39819
  messages,
39607
39820
  text,
39608
39821
  reasoning: text ? null : extractLatestHistorianReasoning(messages),
39609
39822
  lengthCapped: hasLengthCappedOutput(messages),
39610
- usage: sumTokensFromChildMessages(messages)
39823
+ usage: sumTokensFromChildMessages(messages),
39824
+ tokenLog: runTokenLog(info.tokens, undefined, info.finish ?? info.finish_reason ?? info.finishReason)
39611
39825
  };
39612
39826
  },
39613
39827
  async close(handle, settlement) {
@@ -39626,8 +39840,8 @@ function createV1HiddenCompletionExecutor(client, db, directory) {
39626
39840
  }
39627
39841
  };
39628
39842
  }
39629
- function historianReasoningBudgetDiagnostic(outputTokens) {
39630
- return `historian ran out of output budget while reasoning (length-capped at ${outputTokens} tokens, no text) — set historian.maxTokens or route historian.model to a low-reasoning lane/variant`;
39843
+ function historianReasoningBudgetDiagnostic(outputTokens, tokens) {
39844
+ return `historian ran out of output budget while reasoning (length-capped at ${outputTokens} tokens, no text${tokens ? `; ${formatRunTokenLog(tokens)}` : ""}) — set historian.maxTokens or route historian.model to a low-reasoning lane/variant`;
39631
39845
  }
39632
39846
  async function runValidatedHistorianPass(args) {
39633
39847
  const firstRun = await runHistorianPrompt({
@@ -39816,8 +40030,10 @@ async function runHistorianPrompt(args) {
39816
40030
  const modelKey = selected ? `${selected.providerID}/${selected.modelID}` : undefined;
39817
40031
  const system = withContentLanguageDirective(agentId === HISTORIAN_EDITOR_AGENT ? HISTORIAN_EDITOR_SYSTEM_PROMPT : COMPARTMENT_AGENT_SYSTEM_PROMPT, args.language);
39818
40032
  const contextLimitTokens = selected ? getSdkContextLimit(selected.providerID, selected.modelID, undefined, { reservation: "none" }) : undefined;
39819
- const reserve = historianProducerReserve(contextLimitTokens, args.maxOutputTokens, selected ? getSdkOutputLimit(selected.providerID, selected.modelID) : undefined);
39820
- if (contextLimitTokens !== undefined && producerInputTokenLimit(contextLimitTokens, reserve) === undefined && modelKey && !unknownProducerWindows.has(modelKey)) {
40033
+ const producerLimits = selected ? resolveHistorianProducerLimits2(modelKey) : {};
40034
+ const producerContext = producerLimits.context ?? (producerLimits.input === undefined ? contextLimitTokens : undefined);
40035
+ const reserve = historianProducerReserve(producerContext, args.maxOutputTokens, selected ? getSdkOutputLimit(selected.providerID, selected.modelID) : undefined);
40036
+ if (contextLimitTokens !== undefined && producerInputTokenLimit(producerContext, reserve, producerLimits.input) === undefined && modelKey && !unknownProducerWindows.has(modelKey)) {
39821
40037
  unknownProducerWindows.add(modelKey);
39822
40038
  sessionLog(parentSessionId, `producer window inconsistent for ${modelKey}: window=${contextLimitTokens} reserve=${reserve}; sending unguarded`);
39823
40039
  }
@@ -39826,7 +40042,8 @@ async function runHistorianPrompt(args) {
39826
40042
  systemLocal: estimateTokens(system),
39827
40043
  toolsLocal: 0,
39828
40044
  modelKey,
39829
- contextLimitTokens,
40045
+ contextLimitTokens: producerContext,
40046
+ inputLimitTokens: producerLimits.input,
39830
40047
  maxOutputTokens: reserve
39831
40048
  });
39832
40049
  if (failure)
@@ -39860,9 +40077,15 @@ async function runHistorianPrompt(args) {
39860
40077
  }
39861
40078
  completion = await executor.collect(handle, 50);
39862
40079
  const lengthCapped = completion.lengthCapped;
40080
+ const tokens = {
40081
+ ...runTokenLog(undefined, args.maxOutputTokens),
40082
+ ...completion.tokenLog,
40083
+ max_tokens: args.maxOutputTokens ?? null
40084
+ };
40085
+ sessionLog(parentSessionId, `historian response_chars=${(completion.text ?? completion.reasoning ?? "").length} ${formatRunTokenLog(tokens)}`);
39863
40086
  const textResult = completion.text;
39864
40087
  const reasoningResult = textResult ? null : completion.reasoning;
39865
- const emptyError = !textResult && reasoningResult && lengthCapped ? historianReasoningBudgetDiagnostic(completion.usage.output) : !textResult && !reasoningResult ? "Historian returned no assistant output." : !textResult ? "Historian returned reasoning but no assistant text." : lengthCapped ? "Historian returned length-capped output." : null;
40088
+ const emptyError = !textResult && reasoningResult && lengthCapped ? historianReasoningBudgetDiagnostic(completion.usage.output, tokens) : !textResult && !reasoningResult ? "Historian returned no assistant output." : !textResult ? "Historian returned reasoning but no assistant text." : lengthCapped ? `Historian returned length-capped output. ${formatRunTokenLog(tokens)}` : null;
39866
40089
  const invocationId = recordInvocation({
39867
40090
  status: emptyError ? "empty" : "completed",
39868
40091
  messages: completion.messages,
@@ -41929,6 +42152,8 @@ function findDanglingPublicationBoundary(sessionId, compartments, messageExists
41929
42152
  return null;
41930
42153
  }
41931
42154
  async function runCompartmentAgent(deps) {
42155
+ if (shouldSkipHomeProjectMemory(deps.directory ?? process.cwd()))
42156
+ return;
41932
42157
  const {
41933
42158
  client,
41934
42159
  db,
@@ -42159,11 +42384,14 @@ async function runCompartmentAgent(deps) {
42159
42384
  }
42160
42385
  const producerModel = toModelEntry(deps.model)?.model ?? deps.fallbackModelId;
42161
42386
  const modelParts = producerModel?.split("/");
42162
- const producerReserve = historianProducerReserve(deps.historianContextLimit, deps.historianMaxOutputTokens, modelParts && modelParts.length > 1 ? getSdkOutputLimit(modelParts[0], modelParts.slice(1).join("/")) : undefined);
42387
+ const producerLimits = resolveHistorianProducerLimits2(producerModel);
42388
+ const producerContext = producerLimits.context ?? (producerLimits.input === undefined ? deps.historianContextLimit : undefined);
42389
+ const producerReserve = historianProducerReserve(producerContext, deps.historianMaxOutputTokens, modelParts && modelParts.length > 1 ? getSdkOutputLimit(modelParts[0], modelParts.slice(1).join("/")) : undefined);
42163
42390
  const fittedAtomicSource = chunk.oversizeAtomicUnit ? fitAtomicHistorianSourceToProducerWindow({
42164
42391
  text: chunk.text,
42165
42392
  resultBoundaries: chunk.toolResultBoundaries,
42166
- contextLimitTokens: deps.historianContextLimit,
42393
+ contextLimitTokens: producerContext,
42394
+ inputLimitTokens: producerLimits.input,
42167
42395
  maxOutputTokens: producerReserve
42168
42396
  }) : null;
42169
42397
  const chunkText = chunk.oversizeAtomicUnit ? fittedAtomicSource?.text ?? chunk.text : truncateHistorianInputIfNeeded(chunk.text, historianChunkTokens);
@@ -42176,10 +42404,11 @@ async function runCompartmentAgent(deps) {
42176
42404
  }
42177
42405
  const producerWindowFailure = producerWindowFailureReason({
42178
42406
  producerSourceTokens,
42179
- contextLimitTokens: deps.historianContextLimit,
42407
+ contextLimitTokens: producerContext,
42408
+ inputLimitTokens: producerLimits.input,
42180
42409
  maxOutputTokens: producerReserve
42181
42410
  });
42182
- if (deps.historianContextLimit !== undefined && producerInputTokenLimit(deps.historianContextLimit, producerReserve) === undefined) {
42411
+ if (deps.historianContextLimit !== undefined && producerInputTokenLimit(producerContext, producerReserve, producerLimits.input) === undefined) {
42183
42412
  logInconsistentProducerWindowOnce(sessionId, producerModel ?? "unknown", deps.historianContextLimit, producerReserve);
42184
42413
  }
42185
42414
  if (producerWindowFailure) {
@@ -42339,7 +42568,7 @@ ${chunkText}`,
42339
42568
  const compartmentTagKeys = await getRawSessionTagKeysThrough2(sessionId, lastCompartmentEnd, { db, fromMessageIndex: offset });
42340
42569
  let published = false;
42341
42570
  const transactionStartedAt = startHistorianPublishStage(sessionId, "publish-txn");
42342
- db.exec("BEGIN IMMEDIATE");
42571
+ await beginSqliteWriterAsync(db, "historian-publish");
42343
42572
  try {
42344
42573
  if (!isCompartmentLeaseHeld(db, sessionId, holderId)) {
42345
42574
  db.exec("ROLLBACK");
@@ -43424,4 +43653,4 @@ async function executeContextRecomp(deps, options = {}) {
43424
43653
  return (await executeContextRecompWithResult(deps, options)).message;
43425
43654
  }
43426
43655
 
43427
- export { withContentLanguageDirective, formatConfigParseStatusLine, claimConfigParseFailuresOnce, COMPACTION_ENABLED_PATH, isDreamerRunnable, isHistorianRunnable, isCompactionEnabled, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, DREAM_TASK_PROMOTION_DEFAULTS, getProtectedTokensTierOverrides, loadPluginConfigDetailed, BoundedSessionMap, historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, createDreamerOutputCapSampler, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, observeSessionActivity, backfillSessionActivity, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, parseRpcPortFile, inspectProcessesAsync, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMemoryMirrorStatus, takeMemoryEmbeddingInvalidatedProjects, moduleMemoryIdentityForHostId, hostMemoryIdentityForModuleId, applyMirroredNoteCompileFields, applyTargetedMemoryMirrorRow, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, USER_FACING_FAILURES, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, embedPauseBySession, embedRunStateBySession, autoEmbedAttemptedBySession, autoEmbedIdentityBySession, invalidateAutoEmbedSession, getEmbedDrainUiStatus, clearEmbedSessionState, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, readReplayDocument, updateReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, registerLkgPersistence, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, SESSION_NOTE_CONDITION_ERROR, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, createChildSessionWithFence, HiddenCompletionRefusal, detectThinkingBindingMismatch, isPrefixBoundThinkingModel, isFable51ThinkingBindingModel, detectOverflow, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, registerHiddenChildAgents, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, isPromptTimeoutError, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, failedInvocationStatus, recordChildInvocation, createPromptAsyncTransport, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, setKeepSubagents, teardownChildSession, getCompartmentEvents, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, embedUnembeddedMemoriesForProjectOutcome, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, getAutoEmbeddingSessionCoverage, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, relaxedFtsQuery, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateGeneration, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinatesAsync, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, buildMagicContextSection, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, executeContextRecomp };
43656
+ export { withContentLanguageDirective, formatConfigParseStatusLine, claimConfigParseFailuresOnce, COMPACTION_ENABLED_PATH, isDreamerRunnable, isHistorianRunnable, isCompactionEnabled, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, DREAM_TASK_PROMOTION_DEFAULTS, getProtectedTokensTierOverrides, loadPluginConfigDetailed, BoundedSessionMap, historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, createDreamerOutputCapSampler, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, setHomeProjectPermission, shouldSkipHomeProjectMemory, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, observeSessionActivity, backfillSessionActivity, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, parseRpcPortFile, inspectProcessesAsync, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMemoryMirrorStatus, takeMemoryEmbeddingInvalidatedProjects, moduleMemoryIdentityForHostId, hostMemoryIdentityForModuleId, applyMirroredNoteCompileFields, applyTargetedMemoryMirrorRow, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, USER_FACING_FAILURES, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, embedPauseBySession, embedRunStateBySession, autoEmbedAttemptedBySession, autoEmbedIdentityBySession, invalidateAutoEmbedSession, getEmbedDrainUiStatus, clearEmbedSessionState, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, readReplayDocument, updateReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, registerLkgPersistence, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, SESSION_NOTE_CONDITION_ERROR, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, createChildSessionWithFence, HiddenCompletionRefusal, detectThinkingBindingMismatch, isPrefixBoundThinkingModel, isFable51ThinkingBindingModel, detectOverflow, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, registerHiddenChildAgents, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, isPromptTimeoutError, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, failedInvocationStatus, recordChildInvocation, createPromptAsyncTransport, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, setKeepSubagents, teardownChildSession, getCompartmentEvents, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, embedUnembeddedMemoriesForProjectOutcome, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, getAutoEmbeddingSessionCoverage, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, relaxedFtsQuery, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, runTokenLog, formatRunTokenLog, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateGeneration, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinatesAsync, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, buildMagicContextSection, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, executeContextRecomp };