@cortexkit/opencode-magic-context 0.43.0 → 0.43.2

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 (102) hide show
  1. package/dist/{announcement-8mgn61fw.js → announcement-1a8bvswd.js} +2 -1
  2. package/dist/{conflict-warning-hook-t2vb0wnx.js → conflict-warning-hook-hyk9y29x.js} +6 -4
  3. package/dist/{derive-budgets-0sg5vp61.js → derive-budgets-b8ybssh9.js} +3 -2
  4. package/dist/features/magic-context/dreamer/classify.d.ts +12 -0
  5. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  6. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +7 -4
  7. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/map-memories.d.ts +3 -1
  9. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  10. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +3 -1
  11. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  13. package/dist/features/magic-context/dreamer/verify.d.ts +4 -1
  14. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  15. package/dist/features/magic-context/memory/verification-paths.d.ts.map +1 -1
  16. package/dist/features/magic-context/store-generation-rebase.d.ts +62 -1
  17. package/dist/features/magic-context/store-generation-rebase.d.ts.map +1 -1
  18. package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
  19. package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  21. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +6 -0
  22. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  23. package/dist/hooks/magic-context/compartment-runner-validation.d.ts +7 -0
  24. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/compartment-trigger.d.ts +2 -1
  26. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  27. package/dist/hooks/magic-context/ctx-reduce-availability.d.ts +60 -8
  28. package/dist/hooks/magic-context/ctx-reduce-availability.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/hook.d.ts +3 -1
  30. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/lkg-slot.d.ts +1 -0
  32. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  33. package/dist/hooks/magic-context/rust-mode-transform.d.ts +2 -0
  34. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/send-session-notification.d.ts +1 -0
  36. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/system-prompt-hash.d.ts +9 -0
  38. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  41. package/dist/{index-8w1skpnm.js → index-0ccmyzbj.js} +6 -6
  42. package/dist/{index-ntbmt6rq.js → index-4b30nf6z.js} +1 -1
  43. package/dist/{index-rpz2me0v.js → index-6j8th2hd.js} +2 -2
  44. package/dist/{index-99sfbrrf.js → index-6w9p73jz.js} +1 -1
  45. package/dist/{index-4ftb5hcq.js → index-6z9g64js.js} +7 -1
  46. package/dist/{index-9skq8m9y.js → index-9r1cbh9e.js} +1 -1
  47. package/dist/{index-ykg9sdzz.js → index-bmzt6xgy.js} +3 -3
  48. package/dist/{safe-notification-target-fepvcbsj.js → index-febg06dy.js} +6 -7
  49. package/dist/{index-d0dh7v0f.js → index-g6hpfkqa.js} +361 -118
  50. package/dist/{index-rvwvdq59.js → index-jgnag7sa.js} +38 -4
  51. package/dist/{index-w2ety11c.js → index-pa67brzn.js} +3 -3
  52. package/dist/{index-ygwdyntq.js → index-tdrv6nd0.js} +6 -4
  53. package/dist/{index-qp20p2py.js → index-wgzyeyf5.js} +1 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +801 -240
  56. package/dist/{message-time-backfill-gzjer78y.js → message-time-backfill-0ccvyk9n.js} +3 -2
  57. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  58. package/dist/{read-session-chunk-ec3jkvhg.js → read-session-chunk-53a7qbrh.js} +4 -3
  59. package/dist/{recomp-orchestrator-6akjp11f.js → recomp-orchestrator-adsgqgse.js} +9 -7
  60. package/dist/safe-notification-target-vrkjrbgb.js +10 -0
  61. package/dist/{send-session-notification-f6gwkesy.js → send-session-notification-e28r4xx2.js} +7 -3
  62. package/dist/shared/data-path.d.ts.map +1 -1
  63. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  64. package/dist/shared/opencode-db-path.d.ts.map +1 -1
  65. package/dist/shared/test-fake-executable.d.ts +38 -0
  66. package/dist/shared/test-fake-executable.d.ts.map +1 -0
  67. package/dist/shared/test-temp-dir.d.ts +1 -1
  68. package/dist/shared/test-temp-dir.d.ts.map +1 -1
  69. package/dist/shared/user-facing-codes.d.ts +10 -0
  70. package/dist/shared/user-facing-codes.d.ts.map +1 -1
  71. package/dist/{task-config-ex4nt0q0.js → task-config-mgf5nsh3.js} +1 -1
  72. package/dist/v2/hidden-completion.d.ts.map +1 -1
  73. package/dist/v2/hooks/context.d.ts.map +1 -1
  74. package/dist/v2/hooks/hidden-child.d.ts +6 -0
  75. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  76. package/dist/v2/hooks/payload.d.ts.map +1 -1
  77. package/dist/v2/hooks/refusal.d.ts +9 -1
  78. package/dist/v2/hooks/refusal.d.ts.map +1 -1
  79. package/dist/v2/hooks/restore-rows.d.ts +29 -0
  80. package/dist/v2/hooks/restore-rows.d.ts.map +1 -0
  81. package/dist/v2/hooks/types.d.ts +1 -0
  82. package/dist/v2/hooks/types.d.ts.map +1 -1
  83. package/dist/v2/hooks/update-check.d.ts +8 -0
  84. package/dist/v2/hooks/update-check.d.ts.map +1 -1
  85. package/dist/v2/host-service.d.ts +1 -1
  86. package/dist/v2/host-service.d.ts.map +1 -1
  87. package/dist/v2/server.js +1171 -366
  88. package/dist/v2/store-reader.d.ts +8 -0
  89. package/dist/v2/store-reader.d.ts.map +1 -1
  90. package/dist/wrapup-orchestrator-8xzbpvm8.js +18 -0
  91. package/package.json +2 -1
  92. package/src/features/magic-context/dreamer/task-registry.ts +1 -1
  93. package/src/shared/data-path.ts +6 -6
  94. package/src/shared/model-suggestion-retry.test.ts +43 -0
  95. package/src/shared/model-suggestion-retry.ts +17 -0
  96. package/src/shared/opencode-db-path.test.ts +18 -0
  97. package/src/shared/opencode-db-path.ts +5 -2
  98. package/src/shared/test-fake-executable.test.ts +54 -0
  99. package/src/shared/test-fake-executable.ts +110 -0
  100. package/src/shared/test-temp-dir.ts +3 -0
  101. package/src/shared/user-facing-codes.ts +11 -0
  102. package/dist/wrapup-orchestrator-5akc87gr.js +0 -16
@@ -1,8 +1,15 @@
1
+ import {
2
+ getHarness,
3
+ ensureCortexKitArtifactGitignore,
4
+ getProjectMagicContextHistorianDir,
5
+ getMagicContextStorageDir,
6
+ getLegacyOpenCodeMagicContextStorageDir
7
+ } from "./index-6z9g64js.js";
1
8
  import {
2
9
  sanitizeDiagnosticText,
3
10
  log,
4
11
  sessionLog
5
- } from "./index-qp20p2py.js";
12
+ } from "./index-wgzyeyf5.js";
6
13
  import {
7
14
  resolveDecisionCalibration,
8
15
  providerMass,
@@ -44,11 +51,12 @@ import {
44
51
  getCachedAbsoluteMessageCount2,
45
52
  readRawSessionMessageIdOrdinalsForRange2,
46
53
  hasRawSessionMessageById2,
54
+ readRawSessionMessageOrdinalById2,
47
55
  getRawSessionMessageCount2,
48
56
  getRawSessionTagKeysThrough2,
49
57
  getLegacyProtectedTailStartOrdinal2,
50
58
  readSessionChunk2
51
- } from "./index-ygwdyntq.js";
59
+ } from "./index-tdrv6nd0.js";
52
60
  import {
53
61
  resolveOpenCodeDbPath,
54
62
  hasV1MessageTables,
@@ -63,7 +71,7 @@ import {
63
71
  closeQuietly,
64
72
  withReadOnlySessionDb,
65
73
  getMessageTimesFromOpenCodeDb
66
- } from "./index-ykg9sdzz.js";
74
+ } from "./index-bmzt6xgy.js";
67
75
  import {
68
76
  piModelRefToCanonical,
69
77
  modelRefLookupOrder,
@@ -74,7 +82,7 @@ import {
74
82
  getSdkOutputLimit,
75
83
  deriveTriggerBudget2,
76
84
  producerSourceLocalBudget2
77
- } from "./index-8w1skpnm.js";
85
+ } from "./index-0ccmyzbj.js";
78
86
  import {
79
87
  createScanner,
80
88
  parseTree,
@@ -91,17 +99,10 @@ import {
91
99
  getErrorMessage,
92
100
  describeError,
93
101
  sendStatusNotification2
94
- } from "./index-rvwvdq59.js";
102
+ } from "./index-jgnag7sa.js";
95
103
  import {
96
104
  logSlowWriteTransaction
97
- } from "./index-9skq8m9y.js";
98
- import {
99
- getHarness,
100
- ensureCortexKitArtifactGitignore,
101
- getProjectMagicContextHistorianDir,
102
- getMagicContextStorageDir,
103
- getLegacyOpenCodeMagicContextStorageDir
104
- } from "./index-4ftb5hcq.js";
105
+ } from "./index-9r1cbh9e.js";
105
106
 
106
107
  // src/config/schema/magic-context.ts
107
108
  import { homedir } from "node:os";
@@ -8333,6 +8334,11 @@ var USER_FACING_FAILURES = {
8333
8334
  sentence: "Some finished background sessions could not be removed from this host.",
8334
8335
  action: "They are removed automatically the next time Magic Context runs inside a registered OpenCode service."
8335
8336
  },
8337
+ historian_saved_history_misaligned: {
8338
+ code: "MC-H03",
8339
+ sentence: "History compression is paused because this session's saved summaries no longer line up with its messages.",
8340
+ action: "Run /ctx-recomp to rebuild them."
8341
+ },
8336
8342
  recomp_unavailable: {
8337
8343
  code: "MC-R01",
8338
8344
  sentence: "History compression could not be rebuilt.",
@@ -8503,6 +8509,11 @@ var USER_FACING_FAILURES = {
8503
8509
  sentence: "History compression is paused while the engine syncs.",
8504
8510
  action: "Retry in a moment."
8505
8511
  },
8512
+ history_compression_needs_message: {
8513
+ code: "MC-C12",
8514
+ sentence: "History compression has not seen this session since Magic Context reconnected.",
8515
+ action: "Send a message in this session first, then run /ctx-wrapup again."
8516
+ },
8506
8517
  context_service_unavailable: {
8507
8518
  code: "MC-C10",
8508
8519
  sentence: "Magic Context is temporarily unavailable.",
@@ -17606,6 +17617,7 @@ function emptyOutcome(status, generation, previousGeneration) {
17606
17617
  previousGeneration,
17607
17618
  compartmentsRebased: 0,
17608
17619
  compartmentsUnresolved: 0,
17620
+ compartmentsDerived: 0,
17609
17621
  compartmentsResolvedAgain: 0,
17610
17622
  recompCompartmentsRebased: 0,
17611
17623
  recompCompartmentsUnresolved: 0,
@@ -17659,6 +17671,12 @@ function readCoordinateRebaseNotice(db, sessionId) {
17659
17671
  if (record.generation !== "v1" && record.generation !== "v2")
17660
17672
  return null;
17661
17673
  const count = (value) => typeof value === "number" && Number.isFinite(value) ? value : 0;
17674
+ const ranges = (value) => Array.isArray(value) ? value.flatMap((entry) => {
17675
+ if (!entry || typeof entry !== "object")
17676
+ return [];
17677
+ const { sequence, start, end } = entry;
17678
+ return typeof sequence === "number" && typeof start === "number" && typeof end === "number" ? [{ sequence, start, end }] : [];
17679
+ }) : [];
17662
17680
  return {
17663
17681
  generation: record.generation,
17664
17682
  previousGeneration: record.previousGeneration === "v1" || record.previousGeneration === "v2" ? record.previousGeneration : null,
@@ -17667,7 +17685,10 @@ function readCoordinateRebaseNotice(db, sessionId) {
17667
17685
  discardedReductions: count(record.discardedReductions),
17668
17686
  droppedDepthRows: count(record.droppedDepthRows),
17669
17687
  healedGaps: count(record.healedGaps),
17670
- narrativeGaps: count(record.narrativeGaps)
17688
+ narrativeGaps: count(record.narrativeGaps),
17689
+ derivedCompartments: ranges(record.derivedCompartments),
17690
+ unresolvedCompartmentRanges: ranges(record.unresolvedCompartmentRanges),
17691
+ neighbourRecoveryAt: typeof record.neighbourRecoveryAt === "number" && Number.isFinite(record.neighbourRecoveryAt) ? record.neighbourRecoveryAt : null
17671
17692
  };
17672
17693
  } catch {
17673
17694
  return null;
@@ -17678,8 +17699,13 @@ function formatCoordinateRebaseNotice(notice) {
17678
17699
  if (notice.discardedReductions > 0) {
17679
17700
  parts.push(`${notice.discardedReductions} queued reduction${notice.discardedReductions === 1 ? " was" : "s were"} discarded because their targets merged in the host's store conversion`);
17680
17701
  }
17702
+ if (notice.derivedCompartments.length > 0) {
17703
+ const count = notice.derivedCompartments.length;
17704
+ parts.push(`${count} compartment${count === 1 ? " was" : "s were"} re-anchored from the compartments around ${count === 1 ? "it" : "them"} (${formatRangeNotes(notice.derivedCompartments)})`);
17705
+ }
17681
17706
  if (notice.unresolvedCompartments > 0) {
17682
- parts.push(`${notice.unresolvedCompartments} compartment${notice.unresolvedCompartments === 1 ? "" : "s"} could not be re-anchored and are excluded from range recovery`);
17707
+ const listed = notice.unresolvedCompartmentRanges.length > 0 ? ` (${formatRangeNotes(notice.unresolvedCompartmentRanges)})` : "";
17708
+ parts.push(`${notice.unresolvedCompartments} compartment${notice.unresolvedCompartments === 1 ? "" : "s"} could not be re-anchored and are excluded from range recovery${listed}`);
17683
17709
  }
17684
17710
  if (notice.droppedDepthRows > 0) {
17685
17711
  parts.push(`${notice.droppedDepthRows} compression-depth records were rebuilt from zero`);
@@ -17692,6 +17718,9 @@ function formatCoordinateRebaseNotice(notice) {
17692
17718
  }
17693
17719
  return parts.length === 0 ? null : parts.join("; ");
17694
17720
  }
17721
+ function formatRangeNotes(notes) {
17722
+ return notes.map((note) => `messages ${note.start}-${note.end}`).join(", ");
17723
+ }
17695
17724
  function isCompartmentCoordinateRow(row) {
17696
17725
  if (row === null || typeof row !== "object")
17697
17726
  return false;
@@ -17723,36 +17752,62 @@ function readCompartmentRows(db, table, sessionId) {
17723
17752
  return db.prepare(`SELECT id, sequence, start_message, end_message, start_message_id, end_message_id, rebase_status
17724
17753
  FROM ${table} WHERE session_id = ? ORDER BY sequence ASC`).all(sessionId).filter(isCompartmentCoordinateRow);
17725
17754
  }
17755
+ function resolveAnchor(messageId, resolveOrdinal) {
17756
+ return messageId && messageId.length > 0 ? resolveOrdinal(messageId) : undefined;
17757
+ }
17726
17758
  function planCompartments(rows, table, projection) {
17727
- return rows.map((row) => {
17728
- const previousStatus = row.rebase_status === "unresolved" ? "unresolved" : "ok";
17729
- const startId = row.start_message_id ?? "";
17730
- const endId = row.end_message_id ?? "";
17731
- const start = startId.length > 0 ? projection.ordinalById.get(startId) : undefined;
17732
- const end = endId.length > 0 ? projection.ordinalById.get(endId) : undefined;
17733
- if (start === undefined || end === undefined) {
17734
- return {
17735
- table,
17736
- id: row.id,
17737
- previousStart: row.start_message,
17738
- previousEnd: row.end_message,
17739
- start: row.start_message,
17740
- end: row.end_message,
17741
- status: "unresolved",
17742
- previousStatus
17743
- };
17744
- }
17745
- return {
17759
+ const resolveOrdinal = (messageId) => projection.ordinalById.get(messageId);
17760
+ return recoverFromNeighbours(rows, table, rows.map((row) => ({
17761
+ start: resolveAnchor(row.start_message_id, resolveOrdinal),
17762
+ end: resolveAnchor(row.end_message_id, resolveOrdinal)
17763
+ })));
17764
+ }
17765
+ function recoverFromNeighbours(rows, table, known) {
17766
+ const plans = rows.map((row, index) => {
17767
+ const own = known[index] ?? { start: undefined, end: undefined };
17768
+ const previousEnd = index === 0 ? 0 : known[index - 1]?.end;
17769
+ const nextStart = index === rows.length - 1 ? undefined : known[index + 1]?.start;
17770
+ const start = own.start ?? (previousEnd === undefined ? undefined : previousEnd + 1);
17771
+ const end = own.end ?? (nextStart === undefined ? undefined : nextStart - 1);
17772
+ const base = {
17746
17773
  table,
17747
17774
  id: row.id,
17775
+ sequence: row.sequence,
17748
17776
  previousStart: row.start_message,
17749
17777
  previousEnd: row.end_message,
17750
- start,
17751
- end,
17752
- status: "ok",
17753
- previousStatus
17778
+ previousStatus: row.rebase_status === "unresolved" ? "unresolved" : "ok"
17779
+ };
17780
+ if (start !== undefined && end !== undefined && start <= end) {
17781
+ return {
17782
+ ...base,
17783
+ start,
17784
+ end,
17785
+ status: "ok",
17786
+ derived: own.start === undefined || own.end === undefined
17787
+ };
17788
+ }
17789
+ return {
17790
+ ...base,
17791
+ start: start ?? row.start_message,
17792
+ end: end ?? row.end_message,
17793
+ status: "unresolved",
17794
+ derived: false
17754
17795
  };
17755
17796
  });
17797
+ for (let index = 0;index < plans.length; index += 1) {
17798
+ const plan = plans[index];
17799
+ if (plan?.status !== "unresolved")
17800
+ continue;
17801
+ const previous = plans[index - 1];
17802
+ const next = plans[index + 1];
17803
+ if (previous?.status === "ok" && plan.start <= previous.end) {
17804
+ plan.start = previous.end + 1;
17805
+ }
17806
+ if (next?.status === "ok" && plan.end >= next.start) {
17807
+ plan.end = next.start - 1;
17808
+ }
17809
+ }
17810
+ return plans;
17756
17811
  }
17757
17812
  function healNonNarrativeCompartmentGaps(plans, projection) {
17758
17813
  let healed = 0;
@@ -17783,7 +17838,10 @@ function healNonNarrativeCompartmentGaps(plans, projection) {
17783
17838
  return { healed, narrative };
17784
17839
  }
17785
17840
  function compartmentPlanChanges(plan) {
17786
- return plan.status !== plan.previousStatus || plan.status === "ok" && (plan.start !== plan.previousStart || plan.end !== plan.previousEnd);
17841
+ return plan.status !== plan.previousStatus || plan.start !== plan.previousStart || plan.end !== plan.previousEnd;
17842
+ }
17843
+ function rangeNotes(plans, predicate) {
17844
+ return plans.filter((plan) => plan.table === "compartments" && predicate(plan)).map((plan) => ({ sequence: plan.sequence, start: plan.start, end: plan.end }));
17787
17845
  }
17788
17846
  function planNotes(db, sessionId, projection) {
17789
17847
  const rows = db.prepare("SELECT id, anchor_ordinal, anchor_block_id FROM notes WHERE session_id = ? AND anchor_ordinal IS NOT NULL").all(sessionId);
@@ -17869,7 +17927,14 @@ function rebaseSessionCoordinates(args) {
17869
17927
  }
17870
17928
  const previousGeneration = readCoordinateGeneration(db, sessionId);
17871
17929
  if (previousGeneration === generation) {
17872
- return emptyOutcome("unchanged", generation, previousGeneration);
17930
+ const outcome = emptyOutcome("unchanged", generation, previousGeneration);
17931
+ const repair = repairStampedSessionOnce(db, sessionId, args.readMessages);
17932
+ if (repair !== null && repair.rowsRewritten > 0) {
17933
+ outcome.status = "repaired";
17934
+ outcome.compartmentsDerived = repair.derived.length;
17935
+ outcome.compartmentsUnresolved = repair.unresolved.length;
17936
+ }
17937
+ return outcome;
17873
17938
  }
17874
17939
  const impliedGeneration = previousGeneration ?? generationImpliedByHarness(db, sessionId) ?? generation;
17875
17940
  if (impliedGeneration === generation) {
@@ -17933,6 +17998,8 @@ function rebaseSessionCoordinates(args) {
17933
17998
  if (plan.table === "compartments") {
17934
17999
  outcome.compartmentsRebased += rebased;
17935
18000
  outcome.compartmentsUnresolved += unresolved;
18001
+ if (rebased === 1 && plan.derived)
18002
+ outcome.compartmentsDerived += 1;
17936
18003
  if (rebased === 1 && plan.previousStatus === "unresolved")
17937
18004
  outcome.compartmentsResolvedAgain += 1;
17938
18005
  } else {
@@ -17989,7 +18056,10 @@ function rebaseSessionCoordinates(args) {
17989
18056
  discardedReductions: outcome.queuedReductionsDiscarded,
17990
18057
  droppedDepthRows: outcome.compressionDepthRowsDropped,
17991
18058
  healedGaps: outcome.healedGaps,
17992
- narrativeGaps: outcome.narrativeGaps
18059
+ narrativeGaps: outcome.narrativeGaps,
18060
+ derivedCompartments: rangeNotes(compartmentPlans, (plan) => plan.status === "ok" && plan.derived),
18061
+ unresolvedCompartmentRanges: rangeNotes(compartmentPlans, (plan) => plan.status === "unresolved"),
18062
+ neighbourRecoveryAt: Date.now()
17993
18063
  });
17994
18064
  db.exec("COMMIT");
17995
18065
  committed = true;
@@ -18007,10 +18077,115 @@ function rebaseSessionCoordinates(args) {
18007
18077
  sessionLog(sessionId, formatRebaseLogLine(outcome, performance.now() - startedAt));
18008
18078
  return outcome;
18009
18079
  }
18080
+ function recoverUnresolvedCompartments(args) {
18081
+ const { db, sessionId } = args;
18082
+ const rows = readCompartmentRows(db, "compartments", sessionId);
18083
+ const result = { rowsRewritten: 0, derived: [], unresolved: [] };
18084
+ if (!rows.some((row) => row.rebase_status === "unresolved"))
18085
+ return result;
18086
+ const known = rows.map((row) => {
18087
+ if (row.rebase_status !== "unresolved") {
18088
+ return { start: row.start_message, end: row.end_message };
18089
+ }
18090
+ return {
18091
+ start: resolveAnchor(row.start_message_id, args.resolveOrdinal),
18092
+ end: resolveAnchor(row.end_message_id, args.resolveOrdinal)
18093
+ };
18094
+ });
18095
+ const plans = recoverFromNeighbours(rows, "compartments", known);
18096
+ const wasUnresolved = (plan) => plan.previousStatus === "unresolved";
18097
+ result.derived = rangeNotes(plans, (plan) => wasUnresolved(plan) && plan.status === "ok" && plan.derived);
18098
+ result.unresolved = rangeNotes(plans, (plan) => plan.status === "unresolved");
18099
+ const changed = plans.filter(compartmentPlanChanges);
18100
+ const now = Date.now();
18101
+ db.exec("BEGIN IMMEDIATE");
18102
+ let committed = false;
18103
+ try {
18104
+ for (const plan of changed) {
18105
+ db.prepare("UPDATE compartments SET start_message = ?, end_message = ?, rebase_status = ? WHERE id = ?").run(plan.start, plan.end, plan.status, plan.id);
18106
+ }
18107
+ const previous = readCoordinateRebaseNotice(db, sessionId);
18108
+ const generation = previous?.generation ?? readCoordinateGeneration(db, sessionId);
18109
+ if (generation !== null) {
18110
+ const derivedSequences = new Set(result.derived.map((note) => note.sequence));
18111
+ const notice = {
18112
+ generation,
18113
+ previousGeneration: previous?.previousGeneration ?? null,
18114
+ at: previous?.at ?? now,
18115
+ unresolvedCompartments: result.unresolved.length,
18116
+ discardedReductions: previous?.discardedReductions ?? 0,
18117
+ droppedDepthRows: previous?.droppedDepthRows ?? 0,
18118
+ healedGaps: previous?.healedGaps ?? 0,
18119
+ narrativeGaps: previous?.narrativeGaps ?? 0,
18120
+ derivedCompartments: [
18121
+ ...(previous?.derivedCompartments ?? []).filter((note) => !derivedSequences.has(note.sequence)),
18122
+ ...result.derived
18123
+ ],
18124
+ unresolvedCompartmentRanges: result.unresolved,
18125
+ neighbourRecoveryAt: now
18126
+ };
18127
+ ensureSessionMetaRow(db, sessionId);
18128
+ db.prepare("UPDATE session_meta SET coordinate_rebase_notice = ? WHERE session_id = ?").run(JSON.stringify(notice), sessionId);
18129
+ }
18130
+ db.exec("COMMIT");
18131
+ committed = true;
18132
+ } finally {
18133
+ if (!committed) {
18134
+ try {
18135
+ db.exec("ROLLBACK");
18136
+ } catch {}
18137
+ }
18138
+ }
18139
+ result.rowsRewritten = changed.length;
18140
+ sessionLog(sessionId, `INFO compartment neighbour recovery (${args.reason}) rows_rewritten=${changed.length} ` + `derived=${result.derived.map((note) => `${note.start}-${note.end}`).join(",") || "none"} ` + `unresolved=${result.unresolved.map((note) => `${note.start}-${note.end}`).join(",") || "none"}`);
18141
+ return result;
18142
+ }
18143
+ var repairCheckedSessions = new WeakMap;
18144
+ function unresolvedRowBreaksTiling(rows) {
18145
+ let expectedStart = 1;
18146
+ for (let index = 0;index < rows.length; index += 1) {
18147
+ const row = rows[index];
18148
+ if (!row)
18149
+ continue;
18150
+ const broken = row.start_message !== expectedStart || row.end_message < row.start_message;
18151
+ const touchesUnresolved = row.rebase_status === "unresolved" || rows[index - 1]?.rebase_status === "unresolved";
18152
+ if (broken && touchesUnresolved)
18153
+ return true;
18154
+ expectedStart = row.end_message + 1;
18155
+ }
18156
+ return false;
18157
+ }
18158
+ function repairStampedSessionOnce(db, sessionId, readMessages) {
18159
+ let checked = repairCheckedSessions.get(db);
18160
+ if (!checked) {
18161
+ checked = new Set;
18162
+ repairCheckedSessions.set(db, checked);
18163
+ }
18164
+ if (checked.has(sessionId))
18165
+ return null;
18166
+ checked.add(sessionId);
18167
+ const rows = readCompartmentRows(db, "compartments", sessionId);
18168
+ if (!rows.some((row) => row.rebase_status === "unresolved"))
18169
+ return null;
18170
+ if (readCoordinateRebaseNotice(db, sessionId)?.neighbourRecoveryAt != null)
18171
+ return null;
18172
+ if (!unresolvedRowBreaksTiling(rows))
18173
+ return null;
18174
+ let ordinalById = null;
18175
+ return recoverUnresolvedCompartments({
18176
+ db,
18177
+ sessionId,
18178
+ resolveOrdinal: (messageId) => {
18179
+ ordinalById ??= buildProjection(readMessages(sessionId)).ordinalById;
18180
+ return ordinalById.get(messageId);
18181
+ },
18182
+ reason: "stamped-session repair"
18183
+ });
18184
+ }
18010
18185
  function formatRebaseLogLine(outcome, elapsedMs) {
18011
18186
  const rowsRewritten = outcome.compartmentsRebased + outcome.recompCompartmentsRebased + outcome.notesRebased + outcome.notesCleared + (outcome.priorBoundaryRebased ? 1 : 0) + (outcome.recompPartialRangeRebased ? 1 : 0);
18012
18187
  const unresolved = outcome.compartmentsUnresolved + outcome.recompCompartmentsUnresolved;
18013
- return `INFO store-generation-rebase ${outcome.previousGeneration ?? "unrecorded"}->${outcome.generation} ` + `rows_rewritten=${rowsRewritten} unresolved=${unresolved} ` + `index_rows_rebuilt=${outcome.indexRowsRebuilt} drops_discarded=${outcome.queuedReductionsDiscarded} ` + `healed_gaps=${outcome.healedGaps} narrative_gaps=${outcome.narrativeGaps} ` + `ms=${Math.round(elapsedMs)} ` + `(chunk_windows_deleted=${outcome.chunkEmbeddingsDeleted} depth_rows_dropped=${outcome.compressionDepthRowsDropped} ` + `part_tags_folded=${outcome.partTagsFolded} lkg_slots_dropped=${outcome.lkgSlotsDropped} ` + `frozen_part_entries_dropped=${outcome.frozenPartEntriesDropped})`;
18188
+ return `INFO store-generation-rebase ${outcome.previousGeneration ?? "unrecorded"}->${outcome.generation} ` + `rows_rewritten=${rowsRewritten} unresolved=${unresolved} derived=${outcome.compartmentsDerived} ` + `index_rows_rebuilt=${outcome.indexRowsRebuilt} drops_discarded=${outcome.queuedReductionsDiscarded} ` + `healed_gaps=${outcome.healedGaps} narrative_gaps=${outcome.narrativeGaps} ` + `ms=${Math.round(elapsedMs)} ` + `(chunk_windows_deleted=${outcome.chunkEmbeddingsDeleted} depth_rows_dropped=${outcome.compressionDepthRowsDropped} ` + `part_tags_folded=${outcome.partTagsFolded} lkg_slots_dropped=${outcome.lkgSlotsDropped} ` + `frozen_part_entries_dropped=${outcome.frozenPartEntriesDropped})`;
18014
18189
  }
18015
18190
  function planPriorBoundary(db, sessionId, plans) {
18016
18191
  const row = db.prepare("SELECT prior_boundary_ordinal FROM session_meta WHERE session_id = ?").get(sessionId);
@@ -19251,7 +19426,12 @@ async function runGit(cwd, args) {
19251
19426
  encoding: "utf8"
19252
19427
  });
19253
19428
  return String(result.stdout);
19254
- } catch {
19429
+ } catch (error) {
19430
+ if (error.killed || error.code === "ETIMEDOUT") {
19431
+ throw new Error(`Git verification command timed out after ${GIT_TIMEOUT_MS2}ms`, {
19432
+ cause: error
19433
+ });
19434
+ }
19255
19435
  return null;
19256
19436
  }
19257
19437
  }
@@ -24304,9 +24484,22 @@ function visitMessageContentFields(value, visitor) {
24304
24484
  }
24305
24485
  return visitor.field(LKG_SNAPSHOT_UNDEFINED);
24306
24486
  }
24487
+ function contentSnapshotValue(value) {
24488
+ if (!value || typeof value !== "object")
24489
+ return value;
24490
+ const message = value;
24491
+ const info = message.info;
24492
+ const summary = info?.summary;
24493
+ if (!Array.isArray(message.parts) || info?.role !== "user" || summary === null || typeof summary !== "object" || Array.isArray(summary) || Object.keys(summary).length !== 1 || !Array.isArray(summary.diffs) || summary.diffs.length !== 0)
24494
+ return value;
24495
+ return {
24496
+ ...message,
24497
+ info: Object.fromEntries(Object.entries(info).filter(([key]) => key !== "summary"))
24498
+ };
24499
+ }
24307
24500
  function messageContentFields(message) {
24308
24501
  const fields = [];
24309
- const complete = visitMessageContentFields(message, {
24502
+ const complete = visitMessageContentFields(contentSnapshotValue(message), {
24310
24503
  field(value) {
24311
24504
  fields.push(value);
24312
24505
  return true;
@@ -24372,7 +24565,7 @@ function lkgContentFields(value) {
24372
24565
  fields.push(LKG_SNAPSHOT_UNDEFINED);
24373
24566
  };
24374
24567
  try {
24375
- visit(value);
24568
+ visit(contentSnapshotValue(value));
24376
24569
  return fields;
24377
24570
  } catch {
24378
24571
  return null;
@@ -25645,8 +25838,8 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
25645
25838
  { readRawSessionMessagePage, readRawSessionMessages },
25646
25839
  { startMessageTimeBackfill }
25647
25840
  ] = await Promise.all([
25648
- import("./read-session-chunk-ec3jkvhg.js"),
25649
- import("./message-time-backfill-gzjer78y.js")
25841
+ import("./read-session-chunk-53a7qbrh.js"),
25842
+ import("./message-time-backfill-0ccvyk9n.js")
25650
25843
  ]);
25651
25844
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
25652
25845
  readPage: readRawSessionMessagePage
@@ -28296,6 +28489,73 @@ function parseReportedLimit(message) {
28296
28489
  return;
28297
28490
  }
28298
28491
 
28492
+ // src/shared/assistant-message-extractor.ts
28493
+ function asSessionMessage(value) {
28494
+ if (!isRecord(value))
28495
+ return null;
28496
+ const info = value.info;
28497
+ const parts = value.parts;
28498
+ return {
28499
+ info: isRecord(info) ? {
28500
+ role: typeof info.role === "string" ? info.role : undefined,
28501
+ time: isRecord(info.time) ? {
28502
+ created: typeof info.time.created === "number" ? info.time.created : undefined
28503
+ } : undefined,
28504
+ error: info.error,
28505
+ finish: typeof info.finish === "string" ? info.finish : typeof info.finish_reason === "string" ? info.finish_reason : typeof info.finishReason === "string" ? info.finishReason : undefined
28506
+ } : undefined,
28507
+ parts
28508
+ };
28509
+ }
28510
+ function getCreatedTime(message) {
28511
+ return message.info?.time?.created ?? 0;
28512
+ }
28513
+ function getTextParts(message) {
28514
+ if (!Array.isArray(message.parts))
28515
+ return [];
28516
+ return message.parts.filter((part) => isRecord(part)).map((part) => ({
28517
+ type: typeof part.type === "string" ? part.type : undefined,
28518
+ text: typeof part.text === "string" ? part.text : undefined
28519
+ })).filter((part) => part.type === "text" && Boolean(part.text));
28520
+ }
28521
+ function getLatestAssistantMessage(messages) {
28522
+ if (!Array.isArray(messages) || messages.length === 0)
28523
+ return null;
28524
+ return messages.map(asSessionMessage).filter((message) => message !== null).filter((message) => message.info?.role === "assistant").sort((a, b) => getCreatedTime(b) - getCreatedTime(a))[0] ?? null;
28525
+ }
28526
+ function extractLatestAssistantText(messages) {
28527
+ const latest = getLatestAssistantMessage(messages);
28528
+ if (!latest)
28529
+ return null;
28530
+ return getTextParts(latest).map((part) => part.text).join(`
28531
+ `) || null;
28532
+ }
28533
+ function extractLatestAssistantFailure(messages) {
28534
+ const latest = getLatestAssistantMessage(messages);
28535
+ if (!latest || latest.info?.error === undefined || latest.info.error === null)
28536
+ return null;
28537
+ return {
28538
+ error: latest.info.error,
28539
+ finish: latest.info.finish ?? null
28540
+ };
28541
+ }
28542
+ function hasLengthCappedOutput(value) {
28543
+ if (Array.isArray(value))
28544
+ return value.some((item) => hasLengthCappedOutput(item));
28545
+ if (!isRecord(value))
28546
+ return false;
28547
+ if (value.length_capped === true || value.lengthCapped === true)
28548
+ return true;
28549
+ const finishReason = value.finish_reason ?? value.finishReason ?? value.finish ?? (value.type === "step-finish" ? value.reason : undefined) ?? value.stopReason;
28550
+ if (typeof finishReason === "string") {
28551
+ const normalized = finishReason.toLowerCase();
28552
+ if (normalized === "length" || normalized === "max_tokens" || normalized === "max_output_tokens") {
28553
+ return true;
28554
+ }
28555
+ }
28556
+ return Object.values(value).some((item) => hasLengthCappedOutput(item));
28557
+ }
28558
+
28299
28559
  // src/shared/resolve-fallbacks.ts
28300
28560
  function parseProviderModel(spec) {
28301
28561
  const slash = spec.indexOf("/");
@@ -28589,6 +28849,17 @@ async function attemptAndValidate(client, args, timeoutMs, signal, callContext,
28589
28849
  };
28590
28850
  }
28591
28851
  try {
28852
+ if (!extractLatestAssistantText(output)) {
28853
+ const assistantFailure = extractLatestAssistantFailure(output);
28854
+ if (assistantFailure) {
28855
+ const error = new Error(`Host recorded assistant error: ${String(assistantFailure.error)}`);
28856
+ Object.assign(error, {
28857
+ name: "DreamerProviderOutputFailureError",
28858
+ transient: true
28859
+ });
28860
+ throw error;
28861
+ }
28862
+ }
28592
28863
  const validated = await options.validateOutput(output, attempt);
28593
28864
  return { output, validated, attempt };
28594
28865
  } catch (error) {
@@ -31116,73 +31387,6 @@ function recordChildInvocation(input) {
31116
31387
  }
31117
31388
  }
31118
31389
 
31119
- // src/shared/assistant-message-extractor.ts
31120
- function asSessionMessage(value) {
31121
- if (!isRecord(value))
31122
- return null;
31123
- const info = value.info;
31124
- const parts = value.parts;
31125
- return {
31126
- info: isRecord(info) ? {
31127
- role: typeof info.role === "string" ? info.role : undefined,
31128
- time: isRecord(info.time) ? {
31129
- created: typeof info.time.created === "number" ? info.time.created : undefined
31130
- } : undefined,
31131
- error: info.error,
31132
- finish: typeof info.finish === "string" ? info.finish : typeof info.finish_reason === "string" ? info.finish_reason : typeof info.finishReason === "string" ? info.finishReason : undefined
31133
- } : undefined,
31134
- parts
31135
- };
31136
- }
31137
- function getCreatedTime(message) {
31138
- return message.info?.time?.created ?? 0;
31139
- }
31140
- function getTextParts(message) {
31141
- if (!Array.isArray(message.parts))
31142
- return [];
31143
- return message.parts.filter((part) => isRecord(part)).map((part) => ({
31144
- type: typeof part.type === "string" ? part.type : undefined,
31145
- text: typeof part.text === "string" ? part.text : undefined
31146
- })).filter((part) => part.type === "text" && Boolean(part.text));
31147
- }
31148
- function getLatestAssistantMessage(messages) {
31149
- if (!Array.isArray(messages) || messages.length === 0)
31150
- return null;
31151
- return messages.map(asSessionMessage).filter((message) => message !== null).filter((message) => message.info?.role === "assistant").sort((a, b) => getCreatedTime(b) - getCreatedTime(a))[0] ?? null;
31152
- }
31153
- function extractLatestAssistantText(messages) {
31154
- const latest = getLatestAssistantMessage(messages);
31155
- if (!latest)
31156
- return null;
31157
- return getTextParts(latest).map((part) => part.text).join(`
31158
- `) || null;
31159
- }
31160
- function extractLatestAssistantFailure(messages) {
31161
- const latest = getLatestAssistantMessage(messages);
31162
- if (!latest || latest.info?.error === undefined || latest.info.error === null)
31163
- return null;
31164
- return {
31165
- error: latest.info.error,
31166
- finish: latest.info.finish ?? null
31167
- };
31168
- }
31169
- function hasLengthCappedOutput(value) {
31170
- if (Array.isArray(value))
31171
- return value.some((item) => hasLengthCappedOutput(item));
31172
- if (!isRecord(value))
31173
- return false;
31174
- if (value.length_capped === true || value.lengthCapped === true)
31175
- return true;
31176
- const finishReason = value.finish_reason ?? value.finishReason ?? value.finish ?? (value.type === "step-finish" ? value.reason : undefined) ?? value.stopReason;
31177
- if (typeof finishReason === "string") {
31178
- const normalized = finishReason.toLowerCase();
31179
- if (normalized === "length" || normalized === "max_tokens" || normalized === "max_output_tokens") {
31180
- return true;
31181
- }
31182
- }
31183
- return Object.values(value).some((item) => hasLengthCappedOutput(item));
31184
- }
31185
-
31186
31390
  // src/shared/keep-subagents.ts
31187
31391
  var keepSubagents = false;
31188
31392
  function setKeepSubagents(value) {
@@ -31469,6 +31673,14 @@ function buildHistorianFailureNotice(failureCount, _lastError) {
31469
31673
  return [heading, "", renderUserFacingFailure("historian_unavailable")].join(`
31470
31674
  `);
31471
31675
  }
31676
+ function buildStoredCompartmentsInvalidNotice() {
31677
+ return [
31678
+ "## Magic Context — History compression",
31679
+ "",
31680
+ renderUserFacingFailure("historian_saved_history_misaligned")
31681
+ ].join(`
31682
+ `);
31683
+ }
31472
31684
  function buildHistorianRepairPrompt(originalPrompt, previousOutput, validationError, language) {
31473
31685
  const prompt = [
31474
31686
  originalPrompt,
@@ -38183,6 +38395,13 @@ function v2NonNarrativeStoredGapRanges(db, sessionId, compartments) {
38183
38395
  return safeRanges;
38184
38396
  }
38185
38397
  var lastHistorianAlertBySession = new Map;
38398
+ var STORED_COMPARTMENT_FAILURE_BACKOFF_MS = 30 * 60 * 1000;
38399
+ function storedCompartmentFailureBackingOff(db, sessionId, validationError, now = Date.now()) {
38400
+ if (getHistorianFailureState(db, sessionId).lastError !== validationError)
38401
+ return false;
38402
+ const failedAt = loadProtectedTailMeta(db, sessionId).historianDrainFailureAt;
38403
+ return failedAt > 0 && failedAt <= now && now - failedAt < STORED_COMPARTMENT_FAILURE_BACKOFF_MS;
38404
+ }
38186
38405
  function shouldSuppressHistorianAlert(sessionId) {
38187
38406
  const lastAlert = lastHistorianAlertBySession.get(sessionId);
38188
38407
  if (lastAlert && Date.now() - lastAlert < HISTORIAN_ALERT_COOLDOWN_MS) {
@@ -38305,13 +38524,37 @@ async function runCompartmentAgent(deps) {
38305
38524
  }
38306
38525
  return;
38307
38526
  }
38308
- const priorCompartments = getCompartments(db, sessionId);
38309
- const existingValidationError = validateStoredCompartments(priorCompartments, v2NonNarrativeStoredGapRanges(db, sessionId, priorCompartments));
38527
+ let priorCompartments = getCompartments(db, sessionId);
38528
+ let existingValidationError = validateStoredCompartments(priorCompartments, v2NonNarrativeStoredGapRanges(db, sessionId, priorCompartments));
38529
+ const unresolvedInvolved = existingValidationError !== null && priorCompartments.some((compartment) => compartment.rebaseStatus === "unresolved");
38530
+ if (unresolvedInvolved && existingValidationError && storedCompartmentFailureBackingOff(db, sessionId, existingValidationError)) {
38531
+ sessionLog(sessionId, `historian no-op: stored compartments still invalid ("${existingValidationError}"); backing off`);
38532
+ telemetry.status = "noop";
38533
+ telemetry.failureReason = `existing-validation backoff: ${existingValidationError}`;
38534
+ return;
38535
+ }
38536
+ if (unresolvedInvolved && existingValidationError) {
38537
+ const recovery = recoverUnresolvedCompartments({
38538
+ db,
38539
+ sessionId,
38540
+ resolveOrdinal: (messageId) => readRawSessionMessageOrdinalById2(sessionId, messageId) ?? undefined,
38541
+ reason: `historian pre-run check failed: ${existingValidationError}`
38542
+ });
38543
+ if (recovery.rowsRewritten > 0) {
38544
+ priorCompartments = getCompartments(db, sessionId);
38545
+ existingValidationError = validateStoredCompartments(priorCompartments, v2NonNarrativeStoredGapRanges(db, sessionId, priorCompartments));
38546
+ }
38547
+ }
38310
38548
  if (existingValidationError) {
38311
38549
  sessionLog(sessionId, `historian failure: source=existing-validation reason="${existingValidationError}"`);
38312
38550
  const failCount = incrementHistorianFailure(db, sessionId, existingValidationError);
38313
38551
  telemetry.failureReason = `existing-validation: ${existingValidationError}`;
38314
- await notifyHistorianIssue(buildHistorianFailureNotice(failCount, existingValidationError));
38552
+ if (unresolvedInvolved) {
38553
+ retainDrainReservationForRetryThrottle = true;
38554
+ await notifyHistorianIssue(buildStoredCompartmentsInvalidNotice());
38555
+ } else {
38556
+ await notifyHistorianIssue(buildHistorianFailureNotice(failCount, existingValidationError));
38557
+ }
38315
38558
  return;
38316
38559
  }
38317
38560
  const offset = priorCompartments.length > 0 ? priorCompartments[priorCompartments.length - 1].endMessage + 1 : 1;
@@ -39790,4 +40033,4 @@ ${failure}`;
39790
40033
  }
39791
40034
  }
39792
40035
 
39793
- export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, PROTECTED_TOKENS_MIN, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, LIVE_RELOAD_CONFIG_PATHS, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, 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, clampProducerAtomChars, producerInputTokenLimit, 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, 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, NEWEST_REASONING_BEARING_ASSISTANT, 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, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, 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, isFable51ThinkingBindingModel, detectOverflow, parseProviderModel, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, 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, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, 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, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, failedInvocationStatus, recordChildInvocation, resolveHiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinates, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, 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, setRecompStarting2, setRecompTerminal2, runManagedRecomp2 };
40036
+ export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, PROTECTED_TOKENS_MIN, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, LIVE_RELOAD_CONFIG_PATHS, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, 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, clampProducerAtomChars, producerInputTokenLimit, 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, 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, NEWEST_REASONING_BEARING_ASSISTANT, 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, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, 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, isFable51ThinkingBindingModel, detectOverflow, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, 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, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, 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, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, failedInvocationStatus, recordChildInvocation, resolveHiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinates, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, 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, setRecompStarting2, setRecompTerminal2, runManagedRecomp2 };