@cortexkit/opencode-magic-context 0.49.30 → 0.49.32

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 (79) hide show
  1. package/dist/auto-search-worker.js +4 -4
  2. package/dist/chunk-embedding-write-worker.js +1 -1
  3. package/dist/{compartment-chunk-embedding-qgp0tbf7.js → compartment-chunk-embedding-5q5gj67r.js} +1 -1
  4. package/dist/{context-vnfr6d7t.js → context-n27jdyyh.js} +150 -19
  5. package/dist/{embedding-backfill-mms9nb0h.js → embedding-backfill-0jgtqxen.js} +3 -3
  6. package/dist/features/magic-context/chunk-scope-repair-revision.d.ts +4 -0
  7. package/dist/features/magic-context/chunk-scope-repair-revision.d.ts.map +1 -0
  8. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  9. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +3 -3
  10. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
  11. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/task-gates.d.ts +2 -0
  13. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
  14. package/dist/features/magic-context/dreamer/verify.d.ts +13 -17
  15. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  16. package/dist/features/magic-context/message-index-async.d.ts +3 -0
  17. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  18. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  19. package/dist/features/magic-context/search.d.ts.map +1 -1
  20. package/dist/features/magic-context/storage-native-replay.d.ts +2 -0
  21. package/dist/features/magic-context/storage-native-replay.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/apply-operations.d.ts +11 -1
  23. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  24. package/dist/hooks/magic-context/auto-search-branch-index.fixture.d.ts +2 -0
  25. package/dist/hooks/magic-context/auto-search-branch-index.fixture.d.ts.map +1 -0
  26. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
  27. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
  29. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  30. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +2 -0
  31. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  32. package/dist/hooks/magic-context/transform.d.ts +11 -0
  33. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  34. package/dist/{index-gxkhzmjq.js → index-2743x98y.js} +65 -2
  35. package/dist/{index-adr4vfys.js → index-2agkcr3y.js} +2 -2
  36. package/dist/{index-ekzzw66a.js → index-3drcgsnf.js} +74 -385
  37. package/dist/index-94ef0qe2.js +429 -0
  38. package/dist/{index-pe6b4bhs.js → index-as2amvn3.js} +1 -1
  39. package/dist/{index-k0dpkyn7.js → index-bzwh06cp.js} +4 -3
  40. package/dist/{index-vzz570j8.js → index-g0kqnc6y.js} +13 -4
  41. package/dist/{index-vtz789ex.js → index-qr2mb02j.js} +16 -5
  42. package/dist/{index-vnn5405n.js → index-rfxzazzy.js} +1 -1
  43. package/dist/{index-69gd2scx.js → index-t6b3px80.js} +2 -2
  44. package/dist/{index-mm93m7y6.js → index-v7287tzq.js} +47 -7
  45. package/dist/index.js +16 -14
  46. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  47. package/dist/{project-embedding-registry-cg281d9j.js → project-embedding-registry-6yex0r9f.js} +2 -2
  48. package/dist/{recomp-orchestrator-w3pjp33d.js → recomp-orchestrator-6ncc6wrw.js} +6 -6
  49. package/dist/{search-fbaz1m8r.js → search-040pac3a.js} +6 -5
  50. package/dist/shared/tag-transcript.d.ts +4 -1
  51. package/dist/shared/tag-transcript.d.ts.map +1 -1
  52. package/dist/shared/transcript.d.ts +3 -1
  53. package/dist/shared/transcript.d.ts.map +1 -1
  54. package/dist/{transform-postprocess-phase-6ccazq85.js → transform-postprocess-phase-wvt1k03d.js} +7 -6
  55. package/dist/v2/auto-search-worker.js +4 -4
  56. package/dist/v2/chunk-embedding-write-worker.js +1 -1
  57. package/dist/v2/{compartment-chunk-embedding-63dzs31c.js → compartment-chunk-embedding-rc31e6md.js} +1 -1
  58. package/dist/v2/{context-wx4sfhgr.js → context-ehews84p.js} +229 -286
  59. package/dist/v2/{embedding-backfill-35k6czrr.js → embedding-backfill-f43hd8y6.js} +3 -3
  60. package/dist/v2/fold/owner.d.ts +4 -0
  61. package/dist/v2/fold/owner.d.ts.map +1 -1
  62. package/dist/v2/hooks/context.d.ts.map +1 -1
  63. package/dist/v2/hooks/types.d.ts +3 -0
  64. package/dist/v2/hooks/types.d.ts.map +1 -1
  65. package/dist/v2/{project-embedding-registry-p1p10ks7.js → project-embedding-registry-1x5qe2fy.js} +2 -2
  66. package/dist/v2/{recomp-orchestrator-wb28kr9k.js → recomp-orchestrator-3r9kcs61.js} +5 -5
  67. package/dist/v2/{search-q3jjw6zp.js → search-q3wkpe8t.js} +5 -5
  68. package/dist/v2/{server-p0snacz3.js → server-2aasmpsp.js} +1 -1
  69. package/dist/v2/{server-k33t88h3.js → server-4n176b5m.js} +4 -3
  70. package/dist/v2/{server-zh3esb0z.js → server-ab8017gw.js} +65 -2
  71. package/dist/v2/{server-4sn3at8p.js → server-h1byrhwx.js} +47 -7
  72. package/dist/v2/{server-42nebt63.js → server-n14edf07.js} +336 -25
  73. package/dist/v2/{server-ph300d6m.js → server-tkdabx8q.js} +1 -1
  74. package/dist/v2/server.js +2 -2
  75. package/dist/v2/{wrapup-orchestrator-2t0pdqzm.js → wrapup-orchestrator-ddmvbkra.js} +5 -5
  76. package/dist/{wrapup-orchestrator-kjmkms5g.js → wrapup-orchestrator-fyvyzcbm.js} +7 -7
  77. package/package.json +1 -1
  78. package/src/shared/tag-transcript.ts +34 -5
  79. package/src/shared/transcript.ts +1 -1
@@ -46,15 +46,13 @@ import {
46
46
  import {
47
47
  inRootAsyncContext2,
48
48
  Database2,
49
- getSqliteDatabasePath2,
50
49
  getSqliteMemoryStats2,
51
50
  withSqliteBackgroundWriter2,
52
51
  withSqliteTransformPass2,
53
52
  withoutSqliteTransformPass2,
54
53
  isTransientSqliteError2,
55
54
  SqliteAcquisitionBusyError2,
56
- withAsyncPrivilegedWriter2,
57
- indexCoordinationInput2
55
+ withAsyncPrivilegedWriter2
58
56
  } from "./index-gzy5w8ya.js";
59
57
  import {
60
58
  pruneMissingProjectIdentities,
@@ -266,7 +264,7 @@ import {
266
264
  snapRangeToCompartments,
267
265
  getActiveCompartmentRun,
268
266
  startCompartmentAgent
269
- } from "./index-k0dpkyn7.js";
267
+ } from "./index-bzwh06cp.js";
270
268
  import {
271
269
  hasTrustedAbsoluteWall,
272
270
  applyProvenInputFloor,
@@ -352,8 +350,7 @@ import {
352
350
  isRawCompactionSummaryInfo2,
353
351
  extractInMemoryMessageViews2,
354
352
  buildInMemoryTailRawMessages2,
355
- RawOrdinalsNotReady2,
356
- runSessionWarmupWorker
353
+ RawOrdinalsNotReady2
357
354
  } from "./index-rverk2vz.js";
358
355
  import {
359
356
  openCodeDbExists,
@@ -556,7 +553,7 @@ import {
556
553
  embedSessionCompartmentChunks2,
557
554
  getEmbeddingCoverageStatus2,
558
555
  getAutoEmbeddingSessionCoverage2
559
- } from "./index-gxkhzmjq.js";
556
+ } from "./index-2743x98y.js";
560
557
  import {
561
558
  SubcClient,
562
559
  connectionFileExists,
@@ -566,14 +563,7 @@ import {
566
563
  SynapseEmbeddingProvider
567
564
  } from "./index-wfybj1dw.js";
568
565
  import {
569
- getMessageIndexSourceIdentity,
570
- isMessageIndexSourceCurrent,
571
- getLastIndexedOrdinal,
572
- getMessageIndexReconciliationStartOrdinal,
573
- isMessageIndexReconciledThrough,
574
- clearIndexedMessages,
575
- indexSingleMessage,
576
- indexMessagesAfterOrdinal
566
+ getLastIndexedOrdinal
577
567
  } from "./index-4s4zq97n.js";
578
568
  import {
579
569
  renderUserFacingFailure,
@@ -618,7 +608,7 @@ import {
618
608
  readGitFileChangeTimesSince,
619
609
  verificationFileExists,
620
610
  normalizeVerificationFiles
621
- } from "./index-pe6b4bhs.js";
611
+ } from "./index-as2amvn3.js";
622
612
  import {
623
613
  registerNotificationSink2,
624
614
  pushNotification2,
@@ -638,7 +628,7 @@ import {
638
628
  } from "./index-4dhv7mqz.js";
639
629
  import {
640
630
  cosineSimilarity
641
- } from "./index-vnn5405n.js";
631
+ } from "./index-rfxzazzy.js";
642
632
  import {
643
633
  computeCueContentHash,
644
634
  hasMuralCueColumns,
@@ -684,7 +674,13 @@ import {
684
674
  resolveMemoriesByIdsForSearch2,
685
675
  unifiedSearch2,
686
676
  formatSearchResults2
687
- } from "./index-vtz789ex.js";
677
+ } from "./index-qr2mb02j.js";
678
+ import {
679
+ scheduleReconciliation,
680
+ scheduleIncrementalIndex,
681
+ getMessageIndexQueueHeapStats,
682
+ clearSessionTracking
683
+ } from "./index-94ef0qe2.js";
688
684
  import {
689
685
  flushIgnoredMessages2,
690
686
  clearIgnoredMessages2,
@@ -694,7 +690,7 @@ import {
694
690
  import {
695
691
  setRecompStarting2,
696
692
  setRecompTerminal2
697
- } from "./index-adr4vfys.js";
693
+ } from "./index-2agkcr3y.js";
698
694
  import {
699
695
  makeToolCompositeKey,
700
696
  searchMessageHistoryOffThread,
@@ -757,7 +753,7 @@ import {
757
753
  abortSessionFailClosed2,
758
754
  evaluateEmergencyFailClosed2,
759
755
  runPostTransformPhase2
760
- } from "./index-vzz570j8.js";
756
+ } from "./index-g0kqnc6y.js";
761
757
  import {
762
758
  ANNOUNCEMENT_VERSION2,
763
759
  ANNOUNCEMENT_FEATURES2,
@@ -7013,7 +7009,6 @@ function parseMapMemoriesManifest(text) {
7013
7009
  }
7014
7010
  function validateMapMemoriesManifest(text, expectedIds) {
7015
7011
  const parsed = parseMapMemoriesManifest(text);
7016
- assertParsedManifestNonEmpty(parsed.length, expectedIds.size, text, "mappings", "memory");
7017
7012
  assertNoDuplicateManifestIds(parsed.filter((entry) => expectedIds.has(entry.id)).map((entry) => entry.id), "mappings");
7018
7013
  return parsed;
7019
7014
  }
@@ -8583,16 +8578,47 @@ function getDreamTaskBacklog(db, projectPath, task, options = {}) {
8583
8578
  }
8584
8579
  }
8585
8580
  var backlogCaches = new WeakMap;
8581
+ var displayBacklogCaches = new WeakMap;
8582
+ var DISPLAY_BACKLOG_MAX_AGE_MS = 60000;
8586
8583
  function getDreamTaskBacklogs(db, projectPath, tasks = CANONICAL_DREAM_TASKS, options = {}) {
8587
8584
  if (tasks.length === 0)
8588
8585
  return {};
8589
8586
  if (!isKnownAutocommit(db)) {
8590
8587
  backlogCaches.delete(db);
8588
+ displayBacklogCaches.delete(db);
8591
8589
  const result = {};
8592
8590
  for (const task of tasks)
8593
8591
  result[task] = getDreamTaskBacklog(db, projectPath, task, options);
8594
8592
  return result;
8595
8593
  }
8594
+ if (options.display) {
8595
+ let entries = displayBacklogCaches.get(db);
8596
+ if (!entries) {
8597
+ entries = new Map;
8598
+ displayBacklogCaches.set(db, entries);
8599
+ }
8600
+ const optionKey = (value) => value === undefined ? "omitted" : value === null ? "null" : `number:${value}`;
8601
+ const key = JSON.stringify([
8602
+ projectPath,
8603
+ tasks,
8604
+ optionKey(options.lastRunAt),
8605
+ optionKey(options.retrospectiveWatermarkMs)
8606
+ ]);
8607
+ const now = Date.now();
8608
+ const cached = entries.get(key);
8609
+ if (cached && now < cached.expiresAt && now >= cached.expiresAt - DISPLAY_BACKLOG_MAX_AGE_MS)
8610
+ return structuredClone(cached.value);
8611
+ const value = {};
8612
+ for (const task of tasks)
8613
+ value[task] = getDreamTaskBacklog(db, projectPath, task, options);
8614
+ if (entries.size >= 256)
8615
+ entries.delete(entries.keys().next().value);
8616
+ entries.set(key, {
8617
+ expiresAt: now + DISPLAY_BACKLOG_MAX_AGE_MS,
8618
+ value: structuredClone(value)
8619
+ });
8620
+ return value;
8621
+ }
8596
8622
  let cache = backlogCaches.get(db);
8597
8623
  if (!cache) {
8598
8624
  cache = {
@@ -9083,8 +9109,7 @@ function parsePartialVerifyManifest(text, expectedIds) {
9083
9109
  var VERIFY_BATCH_SIZE = 5;
9084
9110
  var VERIFY_TOKENS_PER_MEMORY = 1e5;
9085
9111
  var VERIFY_RUN_TOKEN_BUDGET = 2500000;
9086
- var VERIFY_RUN_SLICE_MS = 240000;
9087
- var VERIFY_IN_FLIGHT_GRACE_MS = 120000;
9112
+ var VERIFY_BATCH_DEFAULT_MS = 240000;
9088
9113
  function verifyBatchTokenBudget(size, configured) {
9089
9114
  return Math.min(configured ?? Number.MAX_SAFE_INTEGER, size * VERIFY_TOKENS_PER_MEMORY);
9090
9115
  }
@@ -9114,8 +9139,8 @@ function validateVerifyCompletion(messages, text, expectedIds, responseText = te
9114
9139
  }
9115
9140
  var IDENTICAL_PROVIDER_FAILURE_BATCH_LIMIT = 2;
9116
9141
  var VERIFY_BATCH_FLOOR_MS = 30000;
9117
- function computeVerifyBatchSliceMs(remainingMs, _batchesRemaining) {
9118
- return Math.min(remainingMs, VERIFY_RUN_SLICE_MS);
9142
+ function computeVerifyBatchSliceMs(remainingMs, batchesRemaining) {
9143
+ return Math.min(remainingMs, Math.max(VERIFY_BATCH_DEFAULT_MS, remainingMs / Math.max(1, batchesRemaining)));
9119
9144
  }
9120
9145
  function closeBroadCycle(args, cycleStartAt) {
9121
9146
  if (!args.forceBroad || cycleStartAt === undefined)
@@ -9139,7 +9164,6 @@ async function runVerify(args) {
9139
9164
  }
9140
9165
  async function runVerifyWithCooldown(args) {
9141
9166
  const runStartedAt = Date.now();
9142
- const sliceDeadline = runStartedAt + VERIFY_RUN_SLICE_MS;
9143
9167
  const result = {
9144
9168
  verified: 0,
9145
9169
  updated: 0,
@@ -9187,12 +9211,10 @@ async function runVerifyWithCooldown(args) {
9187
9211
  try {
9188
9212
  for (let i = 0;i < batches.length; i += 1) {
9189
9213
  const now = Date.now();
9190
- const startCutoff = Math.min(args.deadline, sliceDeadline);
9191
- const hardStop = Math.min(args.deadline, sliceDeadline + VERIFY_IN_FLIGHT_GRACE_MS);
9192
- const remainingMs = Math.max(0, hardStop - now);
9193
- if (now >= startCutoff) {
9214
+ const remainingMs = Math.max(0, args.deadline - now);
9215
+ if (now >= args.deadline) {
9194
9216
  result.stopReason = "deadline";
9195
- log2(`[dreamer] ${args.forceBroad ? "verify-broad" : "verify"}: stopping before batch ${i + 1}/${batches.length} — the run deadline passed ${now - startCutoff}ms ago`);
9217
+ log2(`[dreamer] ${args.forceBroad ? "verify-broad" : "verify"}: stopping before batch ${i + 1}/${batches.length} — the run deadline passed ${now - args.deadline}ms ago`);
9196
9218
  break;
9197
9219
  }
9198
9220
  if (remainingMs < VERIFY_BATCH_FLOOR_MS) {
@@ -10131,7 +10153,7 @@ function createDreamTaskExecutor(deps) {
10131
10153
  return { status: "failed", transient: true, error };
10132
10154
  }
10133
10155
  const processed = result.mapped + result.independent;
10134
- if (processed > 0) {
10156
+ if (processed > 0 || result.failure === undefined) {
10135
10157
  const progress = `map-memories: committed ${processed} mapping(s) (mapped ${result.mapped}, independent ${result.independent}); ${result.remaining} remain`;
10136
10158
  recordRun("completed", null, { progress });
10137
10159
  return { status: "completed" };
@@ -12816,349 +12838,6 @@ function getActiveMemoryImportanceHistogram(db, projectPath) {
12816
12838
  };
12817
12839
  }
12818
12840
 
12819
- // src/features/magic-context/message-index-async.ts
12820
- var indexCancellations = new Map;
12821
- var sessionEpochs = new Map;
12822
- var workerMeasurements = new WeakMap;
12823
- function isDatabaseLockedError(error) {
12824
- if (!error || typeof error !== "object")
12825
- return false;
12826
- const e = error;
12827
- if (typeof e.code === "string") {
12828
- if (e.code === "SQLITE_BUSY" || e.code === "SQLITE_LOCKED")
12829
- return true;
12830
- }
12831
- if (typeof e.message === "string") {
12832
- if (/database is locked/i.test(e.message))
12833
- return true;
12834
- if (/sqlite_(busy|locked)/i.test(e.message))
12835
- return true;
12836
- }
12837
- return false;
12838
- }
12839
- var INCREMENTAL_DEBOUNCE_MS = 100;
12840
- var RECONCILIATION_BATCH_SIZE = 100;
12841
-
12842
- class MagicContextMessageIndexHeapHolder {
12843
- reconciledSessions = new Set;
12844
- reconciledSnapshots = new Map;
12845
- stalledSessions = new Set;
12846
- reconciliationScheduledSessions = new Set;
12847
- clearAndReindexScheduledSessions = new Map;
12848
- sessionLocks = new Map;
12849
- incrementalTimers = new Map;
12850
- pendingIncrementalKeys = new Set;
12851
- completedIncrementalKeys = new Set;
12852
- activeReconcilerBuffers = new Map;
12853
- }
12854
- var heapHolder = new MagicContextMessageIndexHeapHolder;
12855
- function clearCompletedIncrementalKeys(sessionId) {
12856
- const prefix = `${sessionId}\x00`;
12857
- for (const key of heapHolder.completedIncrementalKeys) {
12858
- if (key.startsWith(prefix))
12859
- heapHolder.completedIncrementalKeys.delete(key);
12860
- }
12861
- }
12862
- var PREPARE_RETRY_MS = 60000;
12863
- async function sourceReady(source, sessionId) {
12864
- const prepare = source?.prepare;
12865
- return typeof prepare === "function" ? prepare(sessionId) : true;
12866
- }
12867
- function defer(fn) {
12868
- const immediate = globalThis.setImmediate;
12869
- if (typeof immediate === "function") {
12870
- inRootAsyncContext2(() => immediate(fn));
12871
- return;
12872
- }
12873
- inRootAsyncContext2(() => setTimeout(fn, 0));
12874
- }
12875
- function yieldToEventLoop() {
12876
- return new Promise((resolve) => defer(resolve));
12877
- }
12878
- function runWithSessionLock(sessionId, operation) {
12879
- const previous = heapHolder.sessionLocks.get(sessionId) ?? Promise.resolve();
12880
- const run = previous.catch(() => {
12881
- return;
12882
- }).then(async () => {
12883
- await operation();
12884
- });
12885
- heapHolder.sessionLocks.set(sessionId, run);
12886
- run.finally(() => {
12887
- if (heapHolder.sessionLocks.get(sessionId) === run) {
12888
- heapHolder.sessionLocks.delete(sessionId);
12889
- }
12890
- }).catch(() => {
12891
- return;
12892
- });
12893
- return run;
12894
- }
12895
- function logIndexingError(sessionId, action, error) {
12896
- if (isDatabaseLockedError(error)) {
12897
- sessionLog2(sessionId, `message FTS async ${action} skipped (database busy; will retry on next reconciliation)`);
12898
- return;
12899
- }
12900
- sessionLog2(sessionId, `message FTS async ${action} failed: ${error instanceof Error ? error.message : String(error)}`);
12901
- log2(`[message-index-async] ${action} failed for ${sessionId}:`, error);
12902
- }
12903
- function serializedMessageBytes(messages) {
12904
- try {
12905
- return Buffer.byteLength(JSON.stringify(messages));
12906
- } catch {
12907
- return 0;
12908
- }
12909
- }
12910
- function logReconciliationStall(sessionId, reason) {
12911
- if (heapHolder.stalledSessions.has(sessionId))
12912
- return;
12913
- heapHolder.stalledSessions.add(sessionId);
12914
- sessionLog2(sessionId, `message FTS reconciliation stalled: ${reason}; will retry`);
12915
- }
12916
- async function reconcileSessionIndex(db, sessionId, readMessages) {
12917
- if (!await sourceReady(readMessages, sessionId)) {
12918
- logReconciliationStall(sessionId, "raw message reader is not ready");
12919
- return false;
12920
- }
12921
- await runWithSessionLock(sessionId, async () => {
12922
- if (!readMessages.getRevision && heapHolder.reconciledSessions.has(sessionId))
12923
- return;
12924
- let fallbackSnapshot = null;
12925
- try {
12926
- const fullReader = typeof readMessages === "function" ? readMessages : null;
12927
- const revision = readMessages.getRevision?.(sessionId);
12928
- const previous = heapHolder.reconciledSnapshots.get(sessionId);
12929
- const finalWatermark = previous && revision === previous.revision ? previous.count : revision !== undefined && readMessages.getCountAfterRevision ? previous && revision > previous.revision ? previous.count + readMessages.getCountAfterRevision(sessionId, previous.revision, revision) : readMessages.getCountAfterRevision(sessionId, -1, revision) : readMessages.getCount ? readMessages.getCount(sessionId) : (fallbackSnapshot = fullReader?.(sessionId) ?? []).length;
12930
- let cursor = getMessageIndexReconciliationStartOrdinal(db, sessionId);
12931
- let after = cursor === previous?.count ? previous.after : undefined;
12932
- while (cursor < finalWatermark) {
12933
- const pageEnd = Math.min(finalWatermark, cursor + RECONCILIATION_BATCH_SIZE);
12934
- const messages = readMessages.readPage ? readMessages.readPage(sessionId, cursor, RECONCILIATION_BATCH_SIZE, finalWatermark, after) : (fallbackSnapshot ?? []).filter((message) => message.ordinal > cursor && message.ordinal <= pageEnd);
12935
- const retainedMessages = fallbackSnapshot ?? messages;
12936
- heapHolder.activeReconcilerBuffers.set(sessionId, retainedMessages);
12937
- withSqliteBackgroundWriter2(() => indexMessagesAfterOrdinal(db, sessionId, messages, cursor, pageEnd));
12938
- const nextCursor = getMessageIndexReconciliationStartOrdinal(db, sessionId);
12939
- if (nextCursor <= cursor)
12940
- break;
12941
- cursor = nextCursor;
12942
- const last = messages.at(-1);
12943
- after = last?.ordinal === cursor && typeof last.createdAt === "number" ? { timeCreated: last.createdAt, id: last.id } : undefined;
12944
- if (cursor < finalWatermark) {
12945
- await yieldToEventLoop();
12946
- }
12947
- }
12948
- if (isMessageIndexReconciledThrough(db, sessionId, finalWatermark)) {
12949
- heapHolder.reconciledSessions.add(sessionId);
12950
- if (revision !== undefined) {
12951
- if (!after && finalWatermark > 0 && readMessages.readPage) {
12952
- const last = readMessages.readPage(sessionId, finalWatermark - 1, 1, finalWatermark).at(-1);
12953
- if (last?.ordinal === finalWatermark && typeof last.createdAt === "number")
12954
- after = { timeCreated: last.createdAt, id: last.id };
12955
- }
12956
- heapHolder.reconciledSnapshots.set(sessionId, {
12957
- revision,
12958
- count: finalWatermark,
12959
- after
12960
- });
12961
- }
12962
- } else {
12963
- logReconciliationStall(sessionId, `gap after ordinal ${cursor} (store count ${finalWatermark})`);
12964
- }
12965
- } finally {
12966
- heapHolder.activeReconcilerBuffers.delete(sessionId);
12967
- }
12968
- });
12969
- return true;
12970
- }
12971
- function scheduleReconciliation(db, sessionId, readMessages) {
12972
- if (!readMessages.getRevision && heapHolder.reconciledSessions.has(sessionId) || heapHolder.reconciliationScheduledSessions.has(sessionId)) {
12973
- return;
12974
- }
12975
- heapHolder.reconciliationScheduledSessions.add(sessionId);
12976
- scheduleAfterBootQuiet(() => {
12977
- defer(() => {
12978
- let appendedDuringReconciliation = false;
12979
- const previousSnapshot = heapHolder.reconciledSnapshots.get(sessionId);
12980
- reconcileSessionIndex(db, sessionId, readMessages).then((ran) => {
12981
- if (ran) {
12982
- const snapshot = heapHolder.reconciledSnapshots.get(sessionId);
12983
- appendedDuringReconciliation = snapshot !== undefined && snapshot !== previousSnapshot && readMessages.getRevision !== undefined && readMessages.getRevision(sessionId) !== snapshot.revision;
12984
- return;
12985
- }
12986
- inRootAsyncContext2(() => setTimeout(() => {
12987
- heapHolder.reconciliationScheduledSessions.delete(sessionId);
12988
- scheduleReconciliation(db, sessionId, readMessages);
12989
- }, PREPARE_RETRY_MS)).unref?.();
12990
- }).catch((error) => {
12991
- logReconciliationStall(sessionId, error instanceof Error ? error.message : String(error));
12992
- if (isDatabaseLockedError(error))
12993
- inRootAsyncContext2(() => setTimeout(() => scheduleReconciliation(db, sessionId, readMessages), 1000)).unref();
12994
- }).finally(() => {
12995
- heapHolder.reconciliationScheduledSessions.delete(sessionId);
12996
- if (appendedDuringReconciliation)
12997
- scheduleReconciliation(db, sessionId, readMessages);
12998
- });
12999
- });
13000
- });
13001
- }
13002
- function scheduleIncrementalIndex(db, sessionId, messageId, messageSource) {
13003
- const schedulingKey = `${sessionId}\x00${messageId}`;
13004
- const epoch = sessionEpochs.get(sessionId) ?? 0;
13005
- if (heapHolder.pendingIncrementalKeys.has(schedulingKey))
13006
- return;
13007
- const activeTimer = heapHolder.incrementalTimers.get(schedulingKey);
13008
- if (activeTimer)
13009
- clearTimeout(activeTimer);
13010
- const timer = inRootAsyncContext2(() => setTimeout(() => {
13011
- heapHolder.incrementalTimers.delete(schedulingKey);
13012
- heapHolder.pendingIncrementalKeys.add(schedulingKey);
13013
- const indexMessage = async () => {
13014
- if ((sessionEpochs.get(sessionId) ?? 0) !== epoch || !heapHolder.pendingIncrementalKeys.has(schedulingKey))
13015
- return;
13016
- const message = typeof messageSource === "function" ? messageSource(sessionId, messageId) : messageSource;
13017
- if (!message)
13018
- return;
13019
- const revisionKey = `${schedulingKey}\x00${getMessageIndexSourceIdentity(message)}`;
13020
- if (heapHolder.completedIncrementalKeys.has(revisionKey))
13021
- return;
13022
- const currentWatermark = getLastIndexedOrdinal(db, sessionId);
13023
- if (message.ordinal <= currentWatermark && isMessageIndexSourceCurrent(db, sessionId, message)) {
13024
- heapHolder.completedIncrementalKeys.add(revisionKey);
13025
- return;
13026
- }
13027
- const wasReconciled = heapHolder.reconciledSessions.delete(sessionId);
13028
- await indexSingleMessageOffThread(db, sessionId, message);
13029
- if ((sessionEpochs.get(sessionId) ?? 0) !== epoch || !heapHolder.pendingIncrementalKeys.has(schedulingKey))
13030
- return;
13031
- const finalWatermark = getLastIndexedOrdinal(db, sessionId);
13032
- if (wasReconciled && isMessageIndexReconciledThrough(db, sessionId, finalWatermark)) {
13033
- heapHolder.reconciledSessions.add(sessionId);
13034
- }
13035
- heapHolder.completedIncrementalKeys.add(revisionKey);
13036
- };
13037
- sourceReady(messageSource, sessionId).then((ready) => {
13038
- if ((sessionEpochs.get(sessionId) ?? 0) !== epoch)
13039
- return;
13040
- if (ready)
13041
- return runWithSessionLock(sessionId, indexMessage);
13042
- setTimeout(() => scheduleIncrementalIndex(db, sessionId, messageId, messageSource), PREPARE_RETRY_MS).unref?.();
13043
- }).catch((error) => {
13044
- if ((sessionEpochs.get(sessionId) ?? 0) !== epoch)
13045
- return;
13046
- heapHolder.reconciledSessions.delete(sessionId);
13047
- logIndexingError(sessionId, `incremental index for ${messageId}`, error);
13048
- if (isDatabaseLockedError(error))
13049
- setTimeout(() => scheduleIncrementalIndex(db, sessionId, messageId, messageSource), 1000).unref();
13050
- }).finally(() => {
13051
- if ((sessionEpochs.get(sessionId) ?? 0) === epoch)
13052
- heapHolder.pendingIncrementalKeys.delete(schedulingKey);
13053
- });
13054
- }, INCREMENTAL_DEBOUNCE_MS));
13055
- heapHolder.incrementalTimers.set(schedulingKey, timer);
13056
- }
13057
- async function indexSingleMessageOffThread(db, sessionId, message) {
13058
- const path = getSqliteDatabasePath2(db);
13059
- if (!path)
13060
- return withSqliteBackgroundWriter2(() => indexSingleMessage(db, sessionId, message));
13061
- const cancellation = new Int32Array(new SharedArrayBuffer(4));
13062
- const active = indexCancellations.get(sessionId) ?? new Set;
13063
- active.add(cancellation);
13064
- indexCancellations.set(sessionId, active);
13065
- const result = await runSessionWarmupWorker({
13066
- path,
13067
- sessionId,
13068
- indexMessage: message,
13069
- harness: getHarness2(),
13070
- indexCancellation: cancellation.buffer,
13071
- ...indexCoordinationInput2()
13072
- }, {}).finally(() => {
13073
- active.delete(cancellation);
13074
- if (active.size === 0)
13075
- indexCancellations.delete(sessionId);
13076
- });
13077
- if (!("inserted" in result))
13078
- throw new Error("failure" in result ? result.detail : "unexpected indexing worker reply");
13079
- if (result.measurements) {
13080
- const sessions = workerMeasurements.get(db) ?? new Map;
13081
- sessions.set(sessionId, result.measurements);
13082
- workerMeasurements.set(db, sessions);
13083
- if (result.measurements.skipped)
13084
- log2(`[magic-context] incremental FTS skipped oversized source ${message.id} (${result.measurements.sourceBytes} bytes); identity and progress persisted`);
13085
- }
13086
- return result.inserted;
13087
- }
13088
- function scheduleClearAndReindex(db, sessionId, readMessages) {
13089
- heapHolder.reconciledSessions.delete(sessionId);
13090
- heapHolder.reconciledSnapshots.delete(sessionId);
13091
- heapHolder.reconciliationScheduledSessions.delete(sessionId);
13092
- clearCompletedIncrementalKeys(sessionId);
13093
- const existing = heapHolder.clearAndReindexScheduledSessions.get(sessionId);
13094
- if (existing) {
13095
- existing.source = readMessages;
13096
- return;
13097
- }
13098
- const pending = { source: readMessages };
13099
- heapHolder.clearAndReindexScheduledSessions.set(sessionId, pending);
13100
- scheduleAfterBootQuiet(() => {
13101
- defer(() => {
13102
- let cleared = false;
13103
- runWithSessionLock(sessionId, () => {
13104
- if (heapHolder.clearAndReindexScheduledSessions.get(sessionId) !== pending)
13105
- return;
13106
- heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
13107
- heapHolder.reconciledSessions.delete(sessionId);
13108
- heapHolder.reconciledSnapshots.delete(sessionId);
13109
- clearCompletedIncrementalKeys(sessionId);
13110
- clearIndexedMessages(db, sessionId);
13111
- cleared = true;
13112
- }).then(() => cleared ? reconcileSessionIndex(db, sessionId, pending.source) : undefined).catch((error) => {
13113
- heapHolder.reconciledSessions.delete(sessionId);
13114
- if (heapHolder.clearAndReindexScheduledSessions.get(sessionId) === pending)
13115
- heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
13116
- logIndexingError(sessionId, "clear and reindex", error);
13117
- });
13118
- });
13119
- });
13120
- }
13121
- function getMessageIndexQueueHeapStats() {
13122
- return {
13123
- queueLength: heapHolder.reconciliationScheduledSessions.size + heapHolder.incrementalTimers.size + heapHolder.pendingIncrementalKeys.size,
13124
- reconciliationScheduled: heapHolder.reconciliationScheduledSessions.size,
13125
- incrementalTimers: heapHolder.incrementalTimers.size,
13126
- pendingIncremental: heapHolder.pendingIncrementalKeys.size,
13127
- activeSessionLocks: heapHolder.sessionLocks.size,
13128
- completedIncrementalKeys: heapHolder.completedIncrementalKeys.size,
13129
- activeBufferMessages: [...heapHolder.activeReconcilerBuffers.values()].reduce((sum, messages) => sum + messages.length, 0),
13130
- activeBufferBytes: [...heapHolder.activeReconcilerBuffers.values()].reduce((sum, messages) => sum + serializedMessageBytes(messages), 0)
13131
- };
13132
- }
13133
- function clearSessionTracking(sessionId) {
13134
- sessionEpochs.set(sessionId, (sessionEpochs.get(sessionId) ?? 0) + 1);
13135
- for (const cancellation of indexCancellations.get(sessionId) ?? [])
13136
- Atomics.store(cancellation, 0, 1);
13137
- heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
13138
- heapHolder.reconciledSessions.delete(sessionId);
13139
- heapHolder.reconciledSnapshots.delete(sessionId);
13140
- heapHolder.stalledSessions.delete(sessionId);
13141
- heapHolder.reconciliationScheduledSessions.delete(sessionId);
13142
- heapHolder.sessionLocks.delete(sessionId);
13143
- heapHolder.activeReconcilerBuffers.delete(sessionId);
13144
- const prefix = `${sessionId}\x00`;
13145
- for (const [key, timer] of heapHolder.incrementalTimers) {
13146
- if (key.startsWith(prefix)) {
13147
- clearTimeout(timer);
13148
- heapHolder.incrementalTimers.delete(key);
13149
- }
13150
- }
13151
- for (const key of heapHolder.pendingIncrementalKeys) {
13152
- if (key.startsWith(prefix)) {
13153
- heapHolder.pendingIncrementalKeys.delete(key);
13154
- }
13155
- }
13156
- for (const key of heapHolder.completedIncrementalKeys) {
13157
- if (key.startsWith(prefix))
13158
- heapHolder.completedIncrementalKeys.delete(key);
13159
- }
13160
- }
13161
-
13162
12841
  // src/features/magic-context/session-cache-ttl.ts
13163
12842
  function readSessionCacheTtl(db, sessionId) {
13164
12843
  const saved = readReplayEnvelope(db, sessionId).cacheTtlPolicy;
@@ -14760,9 +14439,9 @@ Nothing to upgrade: this session has no legacy compartments.`;
14760
14439
  ].join(`
14761
14440
  `);
14762
14441
  }
14763
- function readDreamTaskBacklogsSafely(db, projectPath, tasks) {
14442
+ function readDreamTaskBacklogsSafely(db, projectPath, tasks, display = false) {
14764
14443
  try {
14765
- return getDreamTaskBacklogs(db, projectPath, tasks);
14444
+ return getDreamTaskBacklogs(db, projectPath, tasks, { display });
14766
14445
  } catch {
14767
14446
  return {};
14768
14447
  }
@@ -14970,7 +14649,7 @@ ${renderUserFacingFailure("status_unavailable")}`;
14970
14649
  const rustTailHygiene = rustStatus?.tail_hygiene;
14971
14650
  const tailHygiene = resolveTailHygieneStatus(deps.getTailHygiene?.(sessionId), rustTailHygiene && typeof rustTailHygiene === "object" ? rustTailHygiene : undefined);
14972
14651
  const statusOutput = executeStatus(deps.db, sessionId, deps.executeThresholdPercentage, liveModelKey, deps.historyBudgetPercentage, deps.sampleCommitClusterTrigger?.() ?? deps.commitClusterTrigger, deps.executeThresholdTokens, liveContextLimit, deps.dreamer ? {
14973
- backlog: readDreamTaskBacklogsSafely(deps.db, deps.dreamer.projectPath, CANONICAL_DREAM_TASKS.filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes")),
14652
+ backlog: readDreamTaskBacklogsSafely(deps.db, deps.dreamer.projectPath, CANONICAL_DREAM_TASKS.filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes"), true),
14974
14653
  progress: deps.getDreamerProgress?.() ?? null,
14975
14654
  skipped: readSkippedDreamTasksSafely(deps.db, deps.dreamer.projectPath).filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes"),
14976
14655
  failures: readFailingDreamTasksSafely(deps.db, deps.dreamer.projectPath).filter((state) => deps.smartNotesEnabled !== false || state.task !== "evaluate-smart-notes")
@@ -15774,7 +15453,7 @@ function buildSidebarSnapshot(db, sessionId, directory, liveSessionState, inject
15774
15453
  const dreamerProgress = projectIdentity ? liveSessionState?.dreamerProgressByProject?.get(projectIdentity) ?? null : null;
15775
15454
  if (projectIdentity) {
15776
15455
  try {
15777
- dreamerBacklog = getDreamTaskBacklogs(db, projectIdentity, CANONICAL_DREAM_TASKS.filter((task) => smartNotesEnabled || task !== "evaluate-smart-notes"));
15456
+ dreamerBacklog = getDreamTaskBacklogs(db, projectIdentity, CANONICAL_DREAM_TASKS.filter((task) => smartNotesEnabled || task !== "evaluate-smart-notes"), { display: true });
15778
15457
  } catch {}
15779
15458
  }
15780
15459
  if (projectIdentity) {
@@ -16526,7 +16205,7 @@ function registerRpcHandlers(rpcServer, args) {
16526
16205
  const db = readDatabase();
16527
16206
  if (!db)
16528
16207
  return { ok: false, error: "db unavailable" };
16529
- const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-w3pjp33d.js"));
16208
+ const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-6ncc6wrw.js"));
16530
16209
  const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-vz86nt79.js"));
16531
16210
  log2(`[rpc] recomp requested for session ${sessionId}`);
16532
16211
  if (!args.client && !args.hiddenCompletionExecutor) {
@@ -16611,7 +16290,7 @@ function registerRpcHandlers(rpcServer, args) {
16611
16290
  const db = readDatabase();
16612
16291
  if (!db)
16613
16292
  return { ok: false, error: "db unavailable" };
16614
- const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-kjmkms5g.js"));
16293
+ const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-fyvyzcbm.js"));
16615
16294
  const model = liveSessionState.liveModelBySession.get(sessionId);
16616
16295
  const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
16617
16296
  const ctx = {
@@ -18394,7 +18073,7 @@ var MODULE_PAGE_MAX_BYTES = SUBC_MAX_FRAME_BODY_BYTES - MODULE_PAGE_ENVELOPE_HEA
18394
18073
  var MODULE_ITEM_CONTINUATION_CHUNK_BYTES = 64 * 1024;
18395
18074
  var MODULE_ITEM_CONTINUATION_KEY = "__shadow_item_continuation";
18396
18075
  var MODULE_ORDINAL_PAGE_SIZE = 500;
18397
- function yieldToEventLoop2() {
18076
+ function yieldToEventLoop() {
18398
18077
  return new Promise((resolve) => setTimeout(resolve, 0));
18399
18078
  }
18400
18079
  function canonicalJson(value) {
@@ -18484,7 +18163,7 @@ async function resolveOrdinalsForModule(args) {
18484
18163
  pageEnds.push({ anchor: pageAnchor, entryCount: entries.length });
18485
18164
  if (page.length < MODULE_ORDINAL_PAGE_SIZE)
18486
18165
  break;
18487
- await yieldToEventLoop2();
18166
+ await yieldToEventLoop();
18488
18167
  }
18489
18168
  return { entries, end: pageAnchor, pageEnds };
18490
18169
  };
@@ -24805,6 +24484,15 @@ function createTransform(deps) {
24805
24484
  db,
24806
24485
  sessionID: sessionId
24807
24486
  }) : undefined;
24487
+ const hostEstimate = deps.hostInputEstimate?.(sessionId);
24488
+ const hostOverWindow = fullFeatureMode && !compactionOff && resolvedContextLimit !== undefined && resolvedContextLimit > 0 && hostEstimate !== undefined && Number.isFinite(hostEstimate.tokens) && Number.isFinite(hostEstimate.pressureTokens) && hostEstimate.tokens > resolvedContextLimit;
24489
+ if (hostOverWindow) {
24490
+ contextUsageEarly = {
24491
+ inputTokens: Math.max(contextUsageEarly.inputTokens, hostEstimate.pressureTokens),
24492
+ percentage: Math.max(100, contextUsageEarly.percentage, hostEstimate.pressureTokens / resolvedContextLimit * 100)
24493
+ };
24494
+ usagePercentageSynthetic = true;
24495
+ }
24808
24496
  let unmanagedOverWindowPass = null;
24809
24497
  const unmanagedOverWindowCarried = unmanagedOverWindowSessions.has(sessionId);
24810
24498
  if (fullFeatureMode && !compactionOff && typeof resolvedContextLimit === "number" && resolvedContextLimit > 0 && (unmanagedOverWindowCarried || isFirstTransformPassForSession && getLastCompartmentEndMessage(db, sessionId) < 0 && getMaxDroppedTagNumber2(db, sessionId) === 0)) {
@@ -25347,7 +25035,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25347
25035
  bustReason: calibrationBustReason,
25348
25036
  onAdopt: (message) => sessionLog2(sessionId, message)
25349
25037
  });
25350
- let contextUsageFromEstimate = false;
25038
+ let contextUsageFromEstimate = hostOverWindow;
25351
25039
  if (contextUsage.inputTokens <= 0 && protectionCacheBustingPass) {
25352
25040
  const overflowRecoveryPass = usagePercentageSynthetic || emergencyRecoveryArmed;
25353
25041
  const savedProviderReading = overflowRecoveryPass ? null : savedProviderReadingForPass({
@@ -25901,6 +25589,7 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so Ma
25901
25589
  sessionId,
25902
25590
  systemPromptHash: sessionMeta.systemPromptHash
25903
25591
  });
25592
+ deps.onPassPermission?.(sessionId, postTransformResult.prefixMutationPermitted);
25904
25593
  };
25905
25594
  const timedTransform = (input, output) => withTransformTimingSummary(() => transform(input, output));
25906
25595
  return Object.assign(timedTransform, {
@@ -29865,4 +29554,4 @@ function applyHiddenSubagentTemperature(input, output, log) {
29865
29554
  output.temperature = temperature;
29866
29555
  }
29867
29556
 
29868
- export { logConfigDependencyNotesOnce, openOpenCodeDb, DREAMER_SYSTEM_PROMPT, runSessionProjectBackfill, SMART_NOTE_COMPILER_SYSTEM_PROMPT, createLiveSessionState, RETROSPECTIVE_MAX_USER_MESSAGE_CHARS, RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER, OpenCodeRetrospectiveRawProvider, createDreamTaskExecutor, runManualDream, runDueTasksForProject, startDreamScheduleTimer, createDreamTimerModuleClient, ensureProjectRegisteredFromOpenCodeDirectory, recordOpenCodeProvenInputFloor, resolveOpenCodeProvenInputFloor, resolveContextWindowGeometry, resolveContextLimit, resolveExecuteThresholdDetail, resolveModelKey, resolveSessionId, createScheduler, describeStorageUnavailability, scheduleClearAndReindex, resolveSessionCacheTtl, runEmbedHistoryDrain, pauseEmbedHistoryDrain, formatEmbedStatusText, getSessionProperties, getSessionCreatedInfo, getMessageUpdatedAssistantInfo, getMessageUpdatedInfo, getSessionErrorInfo, getMessageRemovedInfo, summarizeManualDream, createMagicContextCommandHandler, getLiveNotificationParams, createChatMessageHook, createEventHook, createCommandExecuteBeforeHook, createToolExecuteAfterHook, recordHiddenVariantWarning, buildStatusDetail, isDebugRpcEnabled, registerRpcHandlers, maybeAutoEmbedSessionBackfill, clearTransformDecisionSession, scheduleOpenCodeTransformDecisionWrite, stageOpenCodeV2TransformDecision, bindOpenCodeV2TransformDecision, maybeDeliverChannel2, armLatestThinkingRecovery, armBindingRecoverySafely, armLatestThinkingRecoveryFromError, createM0RenderOptions, lkgReplayLimit, measureLkgReplay, STORAGE_BUSY_MESSAGE, StorageBusyRefusalError, bindSystemDateRequestIdentity, bindSystemDateOutput, registerSystemDateRefresh, rustWrapupHistorianFields, UnmanagedOverWindowError, UnresolvedHistoryBoundaryError, clearMessageTokensCache, createTransform, createSubcModuleClient, createModuleToolBackends, createRustRefusalRecovery, createSystemPromptHashHandler, tryMessagesTransformLkgReplay, createMessagesTransformHandler, primaryOnlyToolIds, subagentToolRefusal, guardSubagentTools, hideSubagentTools, removePrimaryOnlyTools, storedSubagentMode, createCtxExpandTools, CTX_MEMORY_LIST_TOOL_NAME, CTX_MEMORY_ACTIONS, createCtxMemoryTools, createCtxMemoryListTools, CTX_NOTE_DESCRIPTION, withoutSmartNoteText, createCtxNoteTools, createCtxReduceTools, createCtxSearchTools, parameterDescriptionsFor, applyJsonSchemaParameterDescriptions, MagicContextRpcServer, subagentTemperature, applyHiddenSubagentTemperature };
29557
+ export { logConfigDependencyNotesOnce, openOpenCodeDb, DREAMER_SYSTEM_PROMPT, runSessionProjectBackfill, SMART_NOTE_COMPILER_SYSTEM_PROMPT, createLiveSessionState, RETROSPECTIVE_MAX_USER_MESSAGE_CHARS, RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER, OpenCodeRetrospectiveRawProvider, createDreamTaskExecutor, runManualDream, runDueTasksForProject, startDreamScheduleTimer, createDreamTimerModuleClient, ensureProjectRegisteredFromOpenCodeDirectory, recordOpenCodeProvenInputFloor, resolveOpenCodeProvenInputFloor, resolveContextWindowGeometry, resolveContextLimit, resolveExecuteThresholdDetail, resolveModelKey, resolveSessionId, createScheduler, describeStorageUnavailability, resolveSessionCacheTtl, runEmbedHistoryDrain, pauseEmbedHistoryDrain, formatEmbedStatusText, getSessionProperties, getSessionCreatedInfo, getMessageUpdatedAssistantInfo, getMessageUpdatedInfo, getSessionErrorInfo, getMessageRemovedInfo, summarizeManualDream, createMagicContextCommandHandler, getLiveNotificationParams, createChatMessageHook, createEventHook, createCommandExecuteBeforeHook, createToolExecuteAfterHook, recordHiddenVariantWarning, buildStatusDetail, isDebugRpcEnabled, registerRpcHandlers, maybeAutoEmbedSessionBackfill, clearTransformDecisionSession, scheduleOpenCodeTransformDecisionWrite, stageOpenCodeV2TransformDecision, bindOpenCodeV2TransformDecision, maybeDeliverChannel2, armLatestThinkingRecovery, armBindingRecoverySafely, armLatestThinkingRecoveryFromError, createM0RenderOptions, lkgReplayLimit, measureLkgReplay, STORAGE_BUSY_MESSAGE, StorageBusyRefusalError, bindSystemDateRequestIdentity, bindSystemDateOutput, registerSystemDateRefresh, rustWrapupHistorianFields, UnmanagedOverWindowError, UnresolvedHistoryBoundaryError, clearMessageTokensCache, createTransform, createSubcModuleClient, createModuleToolBackends, createRustRefusalRecovery, createSystemPromptHashHandler, tryMessagesTransformLkgReplay, createMessagesTransformHandler, primaryOnlyToolIds, subagentToolRefusal, guardSubagentTools, hideSubagentTools, removePrimaryOnlyTools, storedSubagentMode, createCtxExpandTools, CTX_MEMORY_LIST_TOOL_NAME, CTX_MEMORY_ACTIONS, createCtxMemoryTools, createCtxMemoryListTools, CTX_NOTE_DESCRIPTION, withoutSmartNoteText, createCtxNoteTools, createCtxReduceTools, createCtxSearchTools, parameterDescriptionsFor, applyJsonSchemaParameterDescriptions, MagicContextRpcServer, subagentTemperature, applyHiddenSubagentTemperature };