@remnic/core 1.1.7 → 1.1.9

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 (237) hide show
  1. package/dist/access-cli.js +30 -30
  2. package/dist/access-http.d.ts +7 -7
  3. package/dist/access-http.js +13 -13
  4. package/dist/access-mcp.d.ts +7 -7
  5. package/dist/access-mcp.js +12 -12
  6. package/dist/{access-service-B9sziJdP.d.ts → access-service-BJCIjVRY.d.ts} +9 -9
  7. package/dist/access-service.d.ts +7 -7
  8. package/dist/access-service.js +11 -11
  9. package/dist/active-memory-bridge.d.ts +1 -1
  10. package/dist/active-recall.d.ts +2 -2
  11. package/dist/active-recall.js +2 -2
  12. package/dist/active-recall.js.map +1 -1
  13. package/dist/behavior-learner.d.ts +1 -1
  14. package/dist/behavior-signals.d.ts +1 -1
  15. package/dist/bootstrap.d.ts +6 -6
  16. package/dist/briefing.d.ts +2 -2
  17. package/dist/briefing.js +6 -6
  18. package/dist/buffer-surprise-report.d.ts +1 -1
  19. package/dist/buffer.d.ts +2 -2
  20. package/dist/calibration.d.ts +1 -1
  21. package/dist/calibration.js +2 -2
  22. package/dist/causal-behavior.d.ts +1 -1
  23. package/dist/causal-consolidation.d.ts +2 -2
  24. package/dist/causal-consolidation.js +8 -8
  25. package/dist/{chunk-LKJA5MR2.js → chunk-2MVUXO4H.js} +2 -2
  26. package/dist/{chunk-GZCUW5IC.js → chunk-3IQ2TR4N.js} +5 -5
  27. package/dist/chunk-3IQ2TR4N.js.map +1 -0
  28. package/dist/{chunk-AKV3HOGZ.js → chunk-3VRIIII5.js} +150 -2
  29. package/dist/chunk-3VRIIII5.js.map +1 -0
  30. package/dist/{chunk-TUFG6VXY.js → chunk-4DWOBS2A.js} +2 -2
  31. package/dist/chunk-4DWOBS2A.js.map +1 -0
  32. package/dist/{chunk-L2IO2QPY.js → chunk-4IS4SXIQ.js} +17 -13
  33. package/dist/chunk-4IS4SXIQ.js.map +1 -0
  34. package/dist/{chunk-ZOMA7J3J.js → chunk-6OAQEOGV.js} +2 -2
  35. package/dist/{chunk-FSWYMUWI.js → chunk-6Z6UH6TK.js} +38 -12
  36. package/dist/chunk-6Z6UH6TK.js.map +1 -0
  37. package/dist/{chunk-EONJ7GK3.js → chunk-7SFAENUZ.js} +2 -2
  38. package/dist/{chunk-ODWDQNRE.js → chunk-7SI52C65.js} +7 -3
  39. package/dist/chunk-7SI52C65.js.map +1 -0
  40. package/dist/{chunk-M3QQ5DRA.js → chunk-A6PGANSE.js} +3 -3
  41. package/dist/{chunk-KUIEFH2S.js → chunk-BIHCWSWA.js} +3 -3
  42. package/dist/{chunk-PT2EZWOH.js → chunk-CTYRIJ5E.js} +3 -3
  43. package/dist/{chunk-COAGZQT7.js → chunk-ET4BL42V.js} +1 -1
  44. package/dist/chunk-ET4BL42V.js.map +1 -0
  45. package/dist/{chunk-DWMXVUGO.js → chunk-FLBYSB2V.js} +6 -4
  46. package/dist/chunk-FLBYSB2V.js.map +1 -0
  47. package/dist/{chunk-VZNQB6NL.js → chunk-FPWUENQH.js} +39 -35
  48. package/dist/chunk-FPWUENQH.js.map +1 -0
  49. package/dist/chunk-FVQJYWH7.js +52 -0
  50. package/dist/chunk-FVQJYWH7.js.map +1 -0
  51. package/dist/{chunk-RXGR3YLU.js → chunk-G3G3LY22.js} +2 -2
  52. package/dist/{chunk-ZBZVNWQO.js → chunk-G6NX57V2.js} +33 -43
  53. package/dist/chunk-G6NX57V2.js.map +1 -0
  54. package/dist/{chunk-3FPTCC3Z.js → chunk-GVPWB7EY.js} +2 -2
  55. package/dist/{chunk-D7WYTVUQ.js → chunk-ICULSMDG.js} +2 -2
  56. package/dist/{chunk-5NS6NN5A.js → chunk-J3P6WSFZ.js} +2 -2
  57. package/dist/{chunk-FCGWNWG4.js → chunk-KIF7QNKL.js} +28 -28
  58. package/dist/chunk-KIF7QNKL.js.map +1 -0
  59. package/dist/{chunk-YELFQNQH.js → chunk-KMWZXT5T.js} +2 -2
  60. package/dist/{chunk-YKGRACQP.js → chunk-M3DK45UM.js} +5 -5
  61. package/dist/{chunk-DLYTYJ43.js → chunk-MJLUHRSF.js} +5 -5
  62. package/dist/{chunk-4KAN3GZ3.js → chunk-NN2DKE4T.js} +1 -1
  63. package/dist/chunk-NN2DKE4T.js.map +1 -0
  64. package/dist/{chunk-R2XRID2N.js → chunk-NN3LPQ5D.js} +5 -5
  65. package/dist/chunk-NN3LPQ5D.js.map +1 -0
  66. package/dist/{chunk-7RAW2T4P.js → chunk-OWGGXPKV.js} +16 -9
  67. package/dist/chunk-OWGGXPKV.js.map +1 -0
  68. package/dist/{chunk-WSZIHQBK.js → chunk-P77UEOU2.js} +4 -1
  69. package/dist/{chunk-WSZIHQBK.js.map → chunk-P77UEOU2.js.map} +1 -1
  70. package/dist/{chunk-MYMOXFMR.js → chunk-PHQH2VUO.js} +4 -4
  71. package/dist/{chunk-OZAFME7S.js → chunk-QPLYTPYL.js} +15 -15
  72. package/dist/{chunk-FEMOX5AD.js → chunk-QR3C7BKQ.js} +7 -7
  73. package/dist/chunk-QR3C7BKQ.js.map +1 -0
  74. package/dist/{chunk-3LCWFNVS.js → chunk-SKE7JYKA.js} +2 -2
  75. package/dist/{chunk-AIT53NLG.js → chunk-U4SZXGEO.js} +2 -2
  76. package/dist/{chunk-67YLUWLG.js → chunk-XJKFSSDW.js} +3 -3
  77. package/dist/chunk-XJKFSSDW.js.map +1 -0
  78. package/dist/{chunk-KQB4C4OE.js → chunk-XL3UCAZA.js} +22 -22
  79. package/dist/{chunk-ASIQZXYO.js → chunk-XMVFHBHT.js} +2 -2
  80. package/dist/{chunk-6B23Z44B.js → chunk-XN4D6Z7X.js} +3 -3
  81. package/dist/{chunk-S5SQDIF5.js → chunk-Y3VT6ZCP.js} +4 -4
  82. package/dist/{cli-olNPi1uN.d.ts → cli-BojuyOOp.d.ts} +4 -4
  83. package/dist/cli.d.ts +8 -8
  84. package/dist/cli.js +24 -24
  85. package/dist/{codex-materialize-D5d5vvyS.d.ts → codex-materialize-YVC2wb6n.d.ts} +1 -1
  86. package/dist/compression-optimizer.d.ts +1 -1
  87. package/dist/config.d.ts +1 -1
  88. package/dist/config.js +1 -1
  89. package/dist/consolidation-provenance-check.d.ts +2 -2
  90. package/dist/consolidation-undo.d.ts +2 -2
  91. package/dist/day-summary.d.ts +1 -1
  92. package/dist/day-summary.js +1 -1
  93. package/dist/delinearize.d.ts +1 -1
  94. package/dist/direct-answer-wiring.d.ts +1 -1
  95. package/dist/direct-answer.d.ts +1 -1
  96. package/dist/embedding-fallback.d.ts +1 -1
  97. package/dist/{engine-2JKWFKJV.js → engine-EDFFOWDD.js} +7 -7
  98. package/dist/entity-retrieval.d.ts +2 -2
  99. package/dist/entity-retrieval.js +6 -6
  100. package/dist/entity-schema.d.ts +1 -1
  101. package/dist/explicit-capture.d.ts +6 -6
  102. package/dist/explicit-capture.js +2 -2
  103. package/dist/explicit-cue-recall.js +1 -1
  104. package/dist/extraction-judge-telemetry.d.ts +1 -1
  105. package/dist/extraction-judge-training.d.ts +1 -1
  106. package/dist/extraction-judge.d.ts +1 -1
  107. package/dist/extraction.d.ts +1 -1
  108. package/dist/extraction.js +7 -7
  109. package/dist/fallback-llm.d.ts +1 -1
  110. package/dist/fallback-llm.js +2 -2
  111. package/dist/identity-continuity.d.ts +1 -1
  112. package/dist/importance.d.ts +1 -1
  113. package/dist/index.d.ts +13 -13
  114. package/dist/index.js +147 -147
  115. package/dist/index.js.map +1 -1
  116. package/dist/intent.d.ts +1 -1
  117. package/dist/lifecycle.d.ts +1 -1
  118. package/dist/live-connectors-runner.d.ts +1 -1
  119. package/dist/live-connectors-runner.js +2 -2
  120. package/dist/local-llm.d.ts +1 -1
  121. package/dist/local-llm.js +1 -1
  122. package/dist/memory-action-policy.d.ts +1 -1
  123. package/dist/memory-cache.d.ts +1 -1
  124. package/dist/{memory-governance-7MI7KE35.js → memory-governance-AAQPBZEP.js} +7 -7
  125. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  126. package/dist/{memory-projection-store-BQt5VUQ8.d.ts → memory-projection-store-BW8u5U0u.d.ts} +1 -1
  127. package/dist/memory-projection-store.d.ts +2 -2
  128. package/dist/memory-projection-store.js +1 -1
  129. package/dist/memory-worth-outcomes.d.ts +2 -2
  130. package/dist/{migrate-from-identity-anchor-TTEDEJGX.js → migrate-from-identity-anchor-G27MCD6A.js} +2 -2
  131. package/dist/model-registry.js +1 -1
  132. package/dist/models-json.d.ts +1 -1
  133. package/dist/models-json.js +1 -1
  134. package/dist/native-knowledge.d.ts +1 -1
  135. package/dist/operator-toolkit.d.ts +2 -2
  136. package/dist/operator-toolkit.js +10 -10
  137. package/dist/opik-exporter.js +2 -2
  138. package/dist/opik-exporter.js.map +1 -1
  139. package/dist/{orchestrator-D2lHhFWI.d.ts → orchestrator-CYqmqxco.d.ts} +5 -5
  140. package/dist/orchestrator.d.ts +6 -6
  141. package/dist/orchestrator.js +25 -25
  142. package/dist/patterns-cli.d.ts +1 -1
  143. package/dist/{peers-6OSQ3NK6.js → peers-HCVGHMAE.js} +3 -3
  144. package/dist/policy-runtime.d.ts +1 -1
  145. package/dist/{port-5W-r5SKc.d.ts → port-Br27H8dy.d.ts} +7 -1
  146. package/dist/qmd-recall-cache.d.ts +2 -2
  147. package/dist/qmd.d.ts +3 -2
  148. package/dist/qmd.js +1 -1
  149. package/dist/recall-disclosure-escalation.d.ts +1 -1
  150. package/dist/recall-explain-renderer.d.ts +1 -1
  151. package/dist/recall-explain-renderer.js +3 -3
  152. package/dist/recall-state.d.ts +1 -1
  153. package/dist/recall-tag-filter.d.ts +1 -1
  154. package/dist/recall-xray-cli.d.ts +1 -1
  155. package/dist/recall-xray-cli.js +4 -4
  156. package/dist/recall-xray-renderer.d.ts +1 -1
  157. package/dist/recall-xray-renderer.js +3 -3
  158. package/dist/recall-xray.d.ts +1 -1
  159. package/dist/recall-xray.js +2 -2
  160. package/dist/resolve-auth-token.d.ts +1 -1
  161. package/dist/resume-bundles.js +2 -2
  162. package/dist/retrieval-agents.d.ts +2 -2
  163. package/dist/retrieval-tiers.d.ts +1 -1
  164. package/dist/sanitize.js +1 -1
  165. package/dist/schemas.d.ts +22 -22
  166. package/dist/{semantic-consolidation-tDODR2je.d.ts → semantic-consolidation-GPcLr9BQ.d.ts} +2 -2
  167. package/dist/semantic-consolidation.d.ts +3 -3
  168. package/dist/semantic-consolidation.js +6 -6
  169. package/dist/semantic-rule-promotion.js +6 -6
  170. package/dist/semantic-rule-verifier.d.ts +1 -1
  171. package/dist/semantic-rule-verifier.js +6 -6
  172. package/dist/session-observer-bands.d.ts +1 -1
  173. package/dist/session-observer-state.d.ts +1 -1
  174. package/dist/signal.d.ts +1 -1
  175. package/dist/source-attribution.d.ts +1 -1
  176. package/dist/source-attribution.js +1 -1
  177. package/dist/storage.d.ts +2 -2
  178. package/dist/storage.js +5 -5
  179. package/dist/summarizer.d.ts +1 -1
  180. package/dist/summarizer.js +5 -5
  181. package/dist/summary-snapshot.d.ts +1 -1
  182. package/dist/temporal-supersession.d.ts +2 -2
  183. package/dist/temporal-validity.d.ts +1 -1
  184. package/dist/threading.d.ts +1 -1
  185. package/dist/tier-migration.d.ts +3 -3
  186. package/dist/tier-routing.d.ts +1 -1
  187. package/dist/topics.d.ts +1 -1
  188. package/dist/transcript.d.ts +1 -1
  189. package/dist/{types-C-USTTAx.d.ts → types-Bmp9ssU2.d.ts} +4 -3
  190. package/dist/types.d.ts +1 -1
  191. package/dist/types.js +1 -1
  192. package/dist/utility-runtime.d.ts +1 -1
  193. package/dist/verified-recall.js +6 -6
  194. package/package.json +1 -1
  195. package/dist/chunk-4KAN3GZ3.js.map +0 -1
  196. package/dist/chunk-67YLUWLG.js.map +0 -1
  197. package/dist/chunk-7RAW2T4P.js.map +0 -1
  198. package/dist/chunk-AKV3HOGZ.js.map +0 -1
  199. package/dist/chunk-COAGZQT7.js.map +0 -1
  200. package/dist/chunk-DWMXVUGO.js.map +0 -1
  201. package/dist/chunk-FCGWNWG4.js.map +0 -1
  202. package/dist/chunk-FEMOX5AD.js.map +0 -1
  203. package/dist/chunk-FSWYMUWI.js.map +0 -1
  204. package/dist/chunk-GZCUW5IC.js.map +0 -1
  205. package/dist/chunk-L2IO2QPY.js.map +0 -1
  206. package/dist/chunk-M62O4P4T.js +0 -41
  207. package/dist/chunk-M62O4P4T.js.map +0 -1
  208. package/dist/chunk-ODWDQNRE.js.map +0 -1
  209. package/dist/chunk-R2XRID2N.js.map +0 -1
  210. package/dist/chunk-TUFG6VXY.js.map +0 -1
  211. package/dist/chunk-VZNQB6NL.js.map +0 -1
  212. package/dist/chunk-ZBZVNWQO.js.map +0 -1
  213. /package/dist/{chunk-LKJA5MR2.js.map → chunk-2MVUXO4H.js.map} +0 -0
  214. /package/dist/{chunk-ZOMA7J3J.js.map → chunk-6OAQEOGV.js.map} +0 -0
  215. /package/dist/{chunk-EONJ7GK3.js.map → chunk-7SFAENUZ.js.map} +0 -0
  216. /package/dist/{chunk-M3QQ5DRA.js.map → chunk-A6PGANSE.js.map} +0 -0
  217. /package/dist/{chunk-KUIEFH2S.js.map → chunk-BIHCWSWA.js.map} +0 -0
  218. /package/dist/{chunk-PT2EZWOH.js.map → chunk-CTYRIJ5E.js.map} +0 -0
  219. /package/dist/{chunk-RXGR3YLU.js.map → chunk-G3G3LY22.js.map} +0 -0
  220. /package/dist/{chunk-3FPTCC3Z.js.map → chunk-GVPWB7EY.js.map} +0 -0
  221. /package/dist/{chunk-D7WYTVUQ.js.map → chunk-ICULSMDG.js.map} +0 -0
  222. /package/dist/{chunk-5NS6NN5A.js.map → chunk-J3P6WSFZ.js.map} +0 -0
  223. /package/dist/{chunk-YELFQNQH.js.map → chunk-KMWZXT5T.js.map} +0 -0
  224. /package/dist/{chunk-YKGRACQP.js.map → chunk-M3DK45UM.js.map} +0 -0
  225. /package/dist/{chunk-DLYTYJ43.js.map → chunk-MJLUHRSF.js.map} +0 -0
  226. /package/dist/{chunk-MYMOXFMR.js.map → chunk-PHQH2VUO.js.map} +0 -0
  227. /package/dist/{chunk-OZAFME7S.js.map → chunk-QPLYTPYL.js.map} +0 -0
  228. /package/dist/{chunk-3LCWFNVS.js.map → chunk-SKE7JYKA.js.map} +0 -0
  229. /package/dist/{chunk-AIT53NLG.js.map → chunk-U4SZXGEO.js.map} +0 -0
  230. /package/dist/{chunk-KQB4C4OE.js.map → chunk-XL3UCAZA.js.map} +0 -0
  231. /package/dist/{chunk-ASIQZXYO.js.map → chunk-XMVFHBHT.js.map} +0 -0
  232. /package/dist/{chunk-6B23Z44B.js.map → chunk-XN4D6Z7X.js.map} +0 -0
  233. /package/dist/{chunk-S5SQDIF5.js.map → chunk-Y3VT6ZCP.js.map} +0 -0
  234. /package/dist/{engine-2JKWFKJV.js.map → engine-EDFFOWDD.js.map} +0 -0
  235. /package/dist/{memory-governance-7MI7KE35.js.map → memory-governance-AAQPBZEP.js.map} +0 -0
  236. /package/dist/{migrate-from-identity-anchor-TTEDEJGX.js.map → migrate-from-identity-anchor-G27MCD6A.js.map} +0 -0
  237. /package/dist/{peers-6OSQ3NK6.js.map → peers-HCVGHMAE.js.map} +0 -0
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-H7XKCNR6.js";
12
12
  import {
13
13
  toRecallExplainJson
14
- } from "./chunk-5NS6NN5A.js";
14
+ } from "./chunk-J3P6WSFZ.js";
15
15
  import {
16
16
  buildProposedActions,
17
17
  buildQualityScore,
@@ -19,7 +19,7 @@ import {
19
19
  listMemoryGovernanceRuns,
20
20
  readMemoryGovernanceRunArtifact,
21
21
  runMemoryGovernance
22
- } from "./chunk-AIT53NLG.js";
22
+ } from "./chunk-U4SZXGEO.js";
23
23
  import {
24
24
  clusterByKey,
25
25
  resolveGitContext
@@ -35,7 +35,7 @@ import {
35
35
  } from "./chunk-EQINRHYR.js";
36
36
  import {
37
37
  estimateRecallTokens
38
- } from "./chunk-D7WYTVUQ.js";
38
+ } from "./chunk-ICULSMDG.js";
39
39
  import {
40
40
  recordMemoryOutcome
41
41
  } from "./chunk-EIR5VLIH.js";
@@ -46,7 +46,7 @@ import {
46
46
  persistExplicitCapture,
47
47
  queueExplicitCaptureForReview,
48
48
  validateExplicitCaptureInput
49
- } from "./chunk-3FPTCC3Z.js";
49
+ } from "./chunk-GVPWB7EY.js";
50
50
  import {
51
51
  wrapWorkLayerContext
52
52
  } from "./chunk-EEQLFRUM.js";
@@ -79,14 +79,14 @@ import {
79
79
  buildBriefing,
80
80
  parseBriefingFocus,
81
81
  parseBriefingWindow
82
- } from "./chunk-EONJ7GK3.js";
82
+ } from "./chunk-7SFAENUZ.js";
83
83
  import {
84
84
  parseEntityFile
85
- } from "./chunk-DLYTYJ43.js";
85
+ } from "./chunk-MJLUHRSF.js";
86
86
  import {
87
87
  DEFAULT_RECALL_DISCLOSURE,
88
88
  isRecallDisclosure
89
- } from "./chunk-COAGZQT7.js";
89
+ } from "./chunk-ET4BL42V.js";
90
90
  import {
91
91
  inferMemoryStatus,
92
92
  toMemoryPathRel
@@ -97,7 +97,7 @@ import {
97
97
  } from "./chunk-SCU65EZI.js";
98
98
  import {
99
99
  getMemoryProjectionPath
100
- } from "./chunk-67YLUWLG.js";
100
+ } from "./chunk-XJKFSSDW.js";
101
101
  import {
102
102
  log
103
103
  } from "./chunk-2ODBA7MQ.js";
@@ -3781,7 +3781,7 @@ ${next}`);
3781
3781
  * deterministic alphabetical order (mirroring `listPeers` storage semantics).
3782
3782
  */
3783
3783
  async peerList() {
3784
- const { listPeers } = await import("./peers-6OSQ3NK6.js");
3784
+ const { listPeers } = await import("./peers-HCVGHMAE.js");
3785
3785
  const peers = await listPeers(this.orchestrator.config.memoryDir);
3786
3786
  return { peers };
3787
3787
  }
@@ -3791,7 +3791,7 @@ ${next}`);
3791
3791
  * pattern used throughout the service.
3792
3792
  */
3793
3793
  async peerGet(peerId) {
3794
- const peers = await import("./peers-6OSQ3NK6.js");
3794
+ const peers = await import("./peers-HCVGHMAE.js");
3795
3795
  const validateId = peers.assertValidPeerId;
3796
3796
  try {
3797
3797
  validateId(peerId);
@@ -3811,7 +3811,7 @@ ${next}`);
3811
3811
  * Returns `{ created: true }` on first write, `{ created: false }` on update.
3812
3812
  */
3813
3813
  async peerSet(input) {
3814
- const peers = await import("./peers-6OSQ3NK6.js");
3814
+ const peers = await import("./peers-HCVGHMAE.js");
3815
3815
  const validateId = peers.assertValidPeerId;
3816
3816
  const { id } = input;
3817
3817
  try {
@@ -3859,7 +3859,7 @@ ${next}`);
3859
3859
  * log data are not destroyed.
3860
3860
  */
3861
3861
  async peerDelete(peerId) {
3862
- const peers = await import("./peers-6OSQ3NK6.js");
3862
+ const peers = await import("./peers-HCVGHMAE.js");
3863
3863
  const validateId = peers.assertValidPeerId;
3864
3864
  try {
3865
3865
  validateId(peerId);
@@ -3883,7 +3883,7 @@ ${next}`);
3883
3883
  * not exist (idempotent no-op).
3884
3884
  */
3885
3885
  async peerForget(peerId, opts) {
3886
- const peers = await import("./peers-6OSQ3NK6.js");
3886
+ const peers = await import("./peers-HCVGHMAE.js");
3887
3887
  const validateId = peers.assertValidPeerId;
3888
3888
  try {
3889
3889
  validateId(peerId);
@@ -3907,7 +3907,7 @@ ${next}`);
3907
3907
  * but in practice the reasoner only writes profiles for registered peers.
3908
3908
  */
3909
3909
  async peerProfileGet(peerId) {
3910
- const peers = await import("./peers-6OSQ3NK6.js");
3910
+ const peers = await import("./peers-HCVGHMAE.js");
3911
3911
  const validateId = peers.assertValidPeerId;
3912
3912
  try {
3913
3913
  validateId(peerId);
@@ -4227,4 +4227,4 @@ export {
4227
4227
  shapeMemorySummary,
4228
4228
  EngramAccessService
4229
4229
  };
4230
- //# sourceMappingURL=chunk-OZAFME7S.js.map
4230
+ //# sourceMappingURL=chunk-QPLYTPYL.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2ODBA7MQ.js";
4
4
 
5
5
  // src/model-registry.ts
6
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
6
+ import fs from "fs";
7
7
  import { join } from "path";
8
8
  var DEFAULT_CAPABILITIES = {
9
9
  modelId: "default",
@@ -88,16 +88,16 @@ var ModelRegistry = class {
88
88
  CACHE_TTL_DAYS = 7;
89
89
  constructor(memoryDir) {
90
90
  const registryDir = join(memoryDir, ".registry");
91
- if (!existsSync(registryDir)) {
92
- mkdirSync(registryDir, { recursive: true });
91
+ if (!fs.existsSync(registryDir)) {
92
+ fs.mkdirSync(registryDir, { recursive: true });
93
93
  }
94
94
  this.registryPath = join(registryDir, "model-capabilities.json");
95
95
  this.data = this.loadRegistry();
96
96
  }
97
97
  loadRegistry() {
98
98
  try {
99
- if (existsSync(this.registryPath)) {
100
- const content = readFileSync(this.registryPath, "utf-8");
99
+ if (fs.existsSync(this.registryPath)) {
100
+ const content = fs.readFileSync(this.registryPath, "utf-8");
101
101
  const data = JSON.parse(content);
102
102
  log.info(`ModelRegistry: loaded ${Object.keys(data.models).length} cached models`);
103
103
  return data;
@@ -109,7 +109,7 @@ var ModelRegistry = class {
109
109
  }
110
110
  saveRegistry() {
111
111
  try {
112
- writeFileSync(this.registryPath, JSON.stringify(this.data, null, 2));
112
+ fs.writeFileSync(this.registryPath, JSON.stringify(this.data, null, 2));
113
113
  } catch (err) {
114
114
  log.warn(`ModelRegistry: failed to save registry: ${err}`);
115
115
  }
@@ -237,4 +237,4 @@ var ModelRegistry = class {
237
237
  export {
238
238
  ModelRegistry
239
239
  };
240
- //# sourceMappingURL=chunk-FEMOX5AD.js.map
240
+ //# sourceMappingURL=chunk-QR3C7BKQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-registry.ts"],"sourcesContent":["/**\n * Model Registry - Stores and retrieves model capabilities\n * Avoids repeated external lookups by caching model info locally\n */\n\nimport { log } from \"./logger.js\";\nimport fs from \"node:fs\";\nimport { join } from \"node:path\";\n\nexport interface ModelCapabilities {\n modelId: string;\n maxPositionEmbeddings: number;\n contextWindow: number;\n supportsExtendedContext: boolean;\n ropeScaling?: {\n type: string;\n factor: number;\n originalMaxPositionEmbeddings: number;\n };\n typicalOutputTokens: number;\n source: \"huggingface\" | \"lmstudio\" | \"manual\" | \"default\";\n fetchedAt: string;\n}\n\ninterface ModelRegistryData {\n models: Record<string, ModelCapabilities>;\n version: number;\n}\n\nconst DEFAULT_CAPABILITIES: ModelCapabilities = {\n modelId: \"default\",\n maxPositionEmbeddings: 32768,\n contextWindow: 32768,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n source: \"default\",\n fetchedAt: new Date().toISOString(),\n};\n\n// Known model capabilities (fallback when offline)\n// NOTE: Context windows here are the MODEL's theoretical maximum. Local LLM servers\n// (LM Studio, Ollama, etc.) often load models with smaller default context windows.\n// If you get \"context length exceeded\" errors, either:\n// 1. Increase the context window in your LLM server UI (recommended)\n// 2. Set localLlmMaxContext in openclaw.json to limit prompts (fallback)\nconst KNOWN_MODELS: Record<string, Partial<ModelCapabilities>> = {\n \"qwen3-30b-a3b-instruct\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072, // 128K with YaRN - but LM Studio defaults to ~32K\n supportsExtendedContext: true,\n ropeScaling: {\n type: \"yarn\",\n factor: 4.0,\n originalMaxPositionEmbeddings: 32768,\n },\n typicalOutputTokens: 8192,\n },\n \"qwen3-coder-30b-a3b-instruct\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072, // 128K with YaRN - but LM Studio defaults to ~32K\n supportsExtendedContext: true,\n ropeScaling: {\n type: \"yarn\",\n factor: 4.0,\n originalMaxPositionEmbeddings: 32768,\n },\n typicalOutputTokens: 8192,\n },\n \"qwen3-8b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"qwen3-14b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"qwen3-32b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"llama-3.1\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"llama-3.2\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"mistral-nemo\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"gemma-2\": {\n maxPositionEmbeddings: 8192,\n contextWindow: 8192,\n supportsExtendedContext: false,\n typicalOutputTokens: 4096,\n },\n};\n\nexport class ModelRegistry {\n private registryPath: string;\n private data: ModelRegistryData;\n private readonly CACHE_TTL_DAYS = 7;\n\n constructor(memoryDir: string) {\n const registryDir = join(memoryDir, \".registry\");\n if (!fs.existsSync(registryDir)) {\n fs.mkdirSync(registryDir, { recursive: true });\n }\n this.registryPath = join(registryDir, \"model-capabilities.json\");\n this.data = this.loadRegistry();\n }\n\n private loadRegistry(): ModelRegistryData {\n try {\n if (fs.existsSync(this.registryPath)) {\n const content = fs.readFileSync(this.registryPath, \"utf-8\");\n const data = JSON.parse(content) as ModelRegistryData;\n log.info(`ModelRegistry: loaded ${Object.keys(data.models).length} cached models`);\n return data;\n }\n } catch (err) {\n log.warn(`ModelRegistry: failed to load registry: ${err}`);\n }\n return { models: {}, version: 1 };\n }\n\n private saveRegistry(): void {\n try {\n fs.writeFileSync(this.registryPath, JSON.stringify(this.data, null, 2));\n } catch (err) {\n log.warn(`ModelRegistry: failed to save registry: ${err}`);\n }\n }\n\n private isCacheExpired(model: ModelCapabilities): boolean {\n const fetched = new Date(model.fetchedAt);\n const now = new Date();\n const daysDiff = (now.getTime() - fetched.getTime()) / (1000 * 60 * 60 * 24);\n return daysDiff > this.CACHE_TTL_DAYS;\n }\n\n private normalizeModelId(modelId: string): string {\n // Remove common suffixes and prefixes for matching\n return modelId\n .toLowerCase()\n .replace(/@\\d+bit$/, \"\") // Remove @4bit, @8bit\n .replace(/-mlx$/, \"\")\n .replace(/-awq$/, \"\")\n .replace(/-gptq$/, \"\")\n .replace(/-gguf$/, \"\")\n .replace(/^mlx-community\\//, \"\")\n .replace(/^models\\//, \"\")\n .trim();\n }\n\n /**\n * Get capabilities for a model, using cache if available\n */\n getCapabilities(modelId: string): ModelCapabilities {\n const normalizedId = this.normalizeModelId(modelId);\n\n // Check cache first\n if (this.data.models[normalizedId]) {\n const cached = this.data.models[normalizedId];\n if (!this.isCacheExpired(cached)) {\n log.info(`ModelRegistry: using cached capabilities for ${modelId}`);\n return cached;\n }\n log.info(`ModelRegistry: cache expired for ${modelId}, will refresh`);\n }\n\n // Check known models\n for (const [knownId, capabilities] of Object.entries(KNOWN_MODELS)) {\n if (normalizedId.includes(knownId)) {\n log.info(`ModelRegistry: using known capabilities for ${modelId}`);\n const caps: ModelCapabilities = {\n ...DEFAULT_CAPABILITIES,\n ...capabilities,\n modelId: normalizedId,\n source: \"default\",\n fetchedAt: new Date().toISOString(),\n };\n this.data.models[normalizedId] = caps;\n this.saveRegistry();\n return caps;\n }\n }\n\n // Return defaults\n log.info(`ModelRegistry: using default capabilities for ${modelId}`);\n return {\n ...DEFAULT_CAPABILITIES,\n modelId: normalizedId,\n };\n }\n\n /**\n * Store capabilities for a model\n */\n setCapabilities(modelId: string, capabilities: Omit<ModelCapabilities, \"modelId\" | \"fetchedAt\">): void {\n const normalizedId = this.normalizeModelId(modelId);\n const caps: ModelCapabilities = {\n ...capabilities,\n modelId: normalizedId,\n fetchedAt: new Date().toISOString(),\n };\n this.data.models[normalizedId] = caps;\n this.saveRegistry();\n log.info(`ModelRegistry: stored capabilities for ${modelId}`);\n }\n\n /**\n * Calculate optimal input/output sizes for a model\n * @param maxContextOverride - Optional override for max context (e.g., if LLM server defaults to smaller window)\n */\n calculateContextSizes(modelId: string, maxContextOverride?: number): {\n maxInputChars: number;\n maxOutputTokens: number;\n description: string;\n } {\n const caps = this.getCapabilities(modelId);\n\n // Use override if provided (e.g., user knows their LLM server limits), otherwise use detected caps\n const effectiveContextWindow = maxContextOverride ?? caps.contextWindow;\n\n // Guardrails: never allow output budget to exceed the model/server context window.\n // If we do, input budget goes negative and we end up generating huge, invalid prompts.\n const overheadTokens = Math.min(1000, Math.floor(effectiveContextWindow / 10)); // <=10% overhead, max 1k\n const minInputTokens = Math.min(512, Math.floor(effectiveContextWindow / 4)); // keep some room even on small contexts\n const minOutputTokens = 256;\n\n // Base output budget: typical output, but scaled down for small contexts.\n let outputTokens = caps.typicalOutputTokens;\n\n // For very large contexts, default to ~12.5% output (capped), which tends to be plenty for JSON extraction.\n if (effectiveContextWindow > 65536) {\n outputTokens = Math.min(Math.floor(effectiveContextWindow / 8), 16384);\n }\n\n // Never let output exceed 25% of context.\n outputTokens = Math.min(outputTokens, Math.floor(effectiveContextWindow / 4));\n\n // Clamp output so we always have positive input headroom.\n outputTokens = Math.max(\n minOutputTokens,\n Math.min(outputTokens, effectiveContextWindow - overheadTokens - minInputTokens),\n );\n\n const availableForInput = Math.max(\n 0,\n effectiveContextWindow - outputTokens - overheadTokens,\n );\n\n // Convert to characters (rough estimate: 1 token ≈ 4 chars)\n const maxInputChars = Math.max(0, Math.floor(availableForInput * 3.5)); // Conservative: 3.5 chars/token\n\n const source = maxContextOverride ? \"user override\" : caps.source;\n return {\n maxInputChars,\n maxOutputTokens: outputTokens,\n description: `${caps.modelId}: ${effectiveContextWindow.toLocaleString()} context (${source}), using ${maxInputChars.toLocaleString()} chars input / ${outputTokens} tokens output`,\n };\n }\n\n /**\n * Fetch capabilities from Hugging Face (if available)\n * Returns true if successful\n */\n async fetchFromHuggingFace(modelId: string): Promise<boolean> {\n // This would be implemented to fetch from HF Hub API\n // For now, we rely on the known models and manual updates\n log.info(`ModelRegistry: fetchFromHuggingFace not yet implemented for ${modelId}`);\n return false;\n }\n\n /**\n * List all cached models\n */\n listCached(): string[] {\n return Object.keys(this.data.models);\n }\n\n /**\n * Clear expired cache entries\n */\n cleanExpired(): number {\n const before = Object.keys(this.data.models).length;\n this.data.models = Object.fromEntries(\n Object.entries(this.data.models).filter(([_, caps]) => !this.isCacheExpired(caps))\n );\n const after = Object.keys(this.data.models).length;\n const removed = before - after;\n if (removed > 0) {\n this.saveRegistry();\n log.info(`ModelRegistry: cleaned ${removed} expired entries`);\n }\n return removed;\n }\n}\n"],"mappings":"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","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  readPeerInteractionLog,
6
6
  readPeerProfile,
7
7
  writePeerProfile
8
- } from "./chunk-TUFG6VXY.js";
8
+ } from "./chunk-4DWOBS2A.js";
9
9
 
10
10
  // src/peers/profile-reasoner.ts
11
11
  function buildPeerProfileReasonerPrompt(input) {
@@ -347,4 +347,4 @@ export {
347
347
  parsePeerProfileReasonerResponse,
348
348
  runPeerProfileReasoner
349
349
  };
350
- //# sourceMappingURL=chunk-3LCWFNVS.js.map
350
+ //# sourceMappingURL=chunk-SKE7JYKA.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-DLYTYJ43.js";
6
+ } from "./chunk-MJLUHRSF.js";
7
7
 
8
8
  // src/maintenance/memory-governance.ts
9
9
  import path from "path";
@@ -718,4 +718,4 @@ export {
718
718
  listMemoryGovernanceRuns,
719
719
  readMemoryGovernanceRunArtifact
720
720
  };
721
- //# sourceMappingURL=chunk-AIT53NLG.js.map
721
+ //# sourceMappingURL=chunk-U4SZXGEO.js.map
@@ -1,6 +1,6 @@
1
1
  // src/memory-projection-store.ts
2
2
  import path from "path";
3
- import { readFileSync } from "fs";
3
+ import fs from "fs";
4
4
 
5
5
  // src/runtime/better-sqlite.ts
6
6
  import { createRequire } from "module";
@@ -445,7 +445,7 @@ function readProjectedMemoryBrowse(memoryDir, options) {
445
445
  }
446
446
  try {
447
447
  const filePath = path.join(memoryDir, row.path_rel);
448
- const content = readFileSync(filePath, "utf-8").toLowerCase();
448
+ const content = fs.readFileSync(filePath, "utf-8").toLowerCase();
449
449
  return content.includes(normalizedQuery);
450
450
  } catch {
451
451
  return false;
@@ -723,4 +723,4 @@ export {
723
723
  readProjectedLatestReviewQueue,
724
724
  readProjectedGovernanceRecord
725
725
  };
726
- //# sourceMappingURL=chunk-67YLUWLG.js.map
726
+ //# sourceMappingURL=chunk-XJKFSSDW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/memory-projection-store.ts","../src/runtime/better-sqlite.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport type {\n MemoryGovernanceAppliedAction,\n MemoryGovernanceMetrics,\n MemoryGovernanceReviewQueueEntry,\n MemoryGovernanceSummary,\n} from \"./maintenance/memory-governance.js\";\nimport type {\n MemoryCategory,\n MemoryLifecycleEvent,\n MemoryProjectionCurrentState,\n MemoryStatus,\n} from \"./types.js\";\nimport {\n openBetterSqlite3,\n type BetterSqlite3Database,\n} from \"./runtime/better-sqlite.js\";\n\nexport const MEMORY_PROJECTION_SCHEMA_VERSION = 2;\n\nexport interface ProjectedMemoryBrowseOptions {\n query?: string;\n status?: string;\n category?: string;\n sort?: \"updated_desc\" | \"updated_asc\" | \"created_desc\" | \"created_asc\";\n limit: number;\n offset: number;\n}\n\nexport interface ProjectedMemoryBrowseRow {\n id: string;\n path: string;\n category: MemoryCategory;\n status: MemoryStatus;\n created?: string;\n updated?: string;\n tags: string[];\n entityRef?: string;\n preview: string;\n}\n\nexport interface ProjectedMemoryBrowsePage {\n total: number;\n memories: ProjectedMemoryBrowseRow[];\n}\n\nexport interface ProjectedEntityMentionRow {\n memoryId: string;\n entityRef: string;\n mentionSource: string;\n created: string;\n updated: string;\n}\n\nexport interface ProjectedNativeKnowledgeChunkRow {\n chunkId: string;\n sourcePath: string;\n title: string;\n sourceKind: string;\n startLine: number;\n endLine: number;\n derivedDate?: string;\n sessionKey?: string;\n workflowKey?: string;\n author?: string;\n agent?: string;\n namespace?: string;\n privacyClass?: string;\n sourceHash?: string;\n preview: string;\n}\n\nexport interface MemoryProjectionGovernanceReviewQueueRow {\n runId: string;\n entryId: string;\n memoryId: string;\n path: string;\n reasonCode: MemoryGovernanceReviewQueueEntry[\"reasonCode\"];\n severity: MemoryGovernanceReviewQueueEntry[\"severity\"];\n suggestedAction: MemoryGovernanceReviewQueueEntry[\"suggestedAction\"];\n suggestedStatus?: MemoryGovernanceReviewQueueEntry[\"suggestedStatus\"];\n relatedMemoryIds: string[];\n}\n\nexport interface MemoryProjectionGovernanceAppliedActionRow {\n runId: string;\n rowKey: string;\n action: MemoryGovernanceAppliedAction[\"action\"];\n memoryId: string;\n reasonCode: MemoryGovernanceAppliedAction[\"reasonCode\"];\n beforeStatus: MemoryGovernanceAppliedAction[\"beforeStatus\"];\n afterStatus?: MemoryGovernanceAppliedAction[\"afterStatus\"];\n originalPath: string;\n currentPath: string;\n}\n\nexport interface ProjectedReviewQueueSnapshot {\n found: boolean;\n runId?: string;\n summary?: MemoryGovernanceSummary;\n metrics?: MemoryGovernanceMetrics;\n reviewQueue?: MemoryGovernanceReviewQueueEntry[];\n appliedActions?: MemoryGovernanceAppliedAction[];\n report?: string;\n}\n\nexport function getMemoryProjectionPath(memoryDir: string): string {\n return path.join(memoryDir, \"state\", \"memory-projection.sqlite\");\n}\n\nfunction listTableColumns(db: BetterSqlite3Database, tableName: string): Set<string> {\n try {\n const rows = db.prepare(`PRAGMA table_info(${tableName})`).all() as Array<{ name?: unknown }>;\n return new Set(rows.map((row) => row.name).filter((name): name is string => typeof name === \"string\"));\n } catch {\n return new Set<string>();\n }\n}\n\nfunction migrateMemoryCurrentTable(db: BetterSqlite3Database): void {\n const columns = listTableColumns(db, \"memory_current\");\n if (columns.size === 0) return;\n\n if (!columns.has(\"tags_json\")) {\n db.exec(`ALTER TABLE memory_current ADD COLUMN tags_json TEXT NOT NULL DEFAULT '[]'`);\n }\n if (!columns.has(\"preview_text\")) {\n db.exec(`ALTER TABLE memory_current ADD COLUMN preview_text TEXT NOT NULL DEFAULT ''`);\n }\n}\n\nfunction memoryCurrentRequiresMigration(db: BetterSqlite3Database): boolean {\n const columns = listTableColumns(db, \"memory_current\");\n return columns.size > 0 && (!columns.has(\"tags_json\") || !columns.has(\"preview_text\"));\n}\n\nfunction migrateProjectionSchemaIfNeeded(memoryDir: string): void {\n const dbPath = getMemoryProjectionPath(memoryDir);\n try {\n const db = openBetterSqlite3(dbPath, { fileMustExist: true });\n try {\n if (!memoryCurrentRequiresMigration(db)) return;\n initializeMemoryProjectionDb(db);\n } finally {\n db.close();\n }\n } catch {\n // Fail open on migration attempts so readonly consumers can still use legacy rows.\n }\n}\n\nexport function memoryCurrentSelectExpressions(db: BetterSqlite3Database): {\n tagsJson: string;\n previewText: string;\n} {\n const columns = listTableColumns(db, \"memory_current\");\n return {\n tagsJson: columns.has(\"tags_json\") ? \"tags_json\" : `'[]' AS tags_json`,\n previewText: columns.has(\"preview_text\") ? \"preview_text\" : `'' AS preview_text`,\n };\n}\n\nexport function initializeMemoryProjectionDb(db: BetterSqlite3Database): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS memory_current (\n memory_id TEXT PRIMARY KEY,\n category TEXT NOT NULL,\n status TEXT NOT NULL,\n lifecycle_state TEXT,\n path_rel TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n archived_at TEXT,\n superseded_at TEXT,\n entity_ref TEXT,\n source TEXT NOT NULL,\n confidence REAL NOT NULL,\n confidence_tier TEXT NOT NULL,\n memory_kind TEXT,\n access_count INTEGER,\n last_accessed TEXT,\n tags_json TEXT NOT NULL DEFAULT '[]',\n preview_text TEXT NOT NULL DEFAULT ''\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_current_status\n ON memory_current(status);\n\n CREATE INDEX IF NOT EXISTS idx_memory_current_category\n ON memory_current(category);\n\n CREATE INDEX IF NOT EXISTS idx_memory_current_updated\n ON memory_current(updated_at DESC);\n\n CREATE TABLE IF NOT EXISTS memory_timeline (\n event_id TEXT PRIMARY KEY,\n memory_id TEXT NOT NULL,\n event_type TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n event_order INTEGER NOT NULL,\n actor TEXT NOT NULL,\n reason_code TEXT,\n rule_version TEXT NOT NULL,\n related_memory_ids_json TEXT,\n before_json TEXT,\n after_json TEXT,\n correlation_id TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_timeline_memory_ts\n ON memory_timeline(memory_id, timestamp, event_order);\n\n CREATE TABLE IF NOT EXISTS memory_entity_mentions (\n memory_id TEXT NOT NULL,\n entity_ref TEXT NOT NULL,\n mention_source TEXT NOT NULL,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (memory_id, entity_ref, mention_source)\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_entity_mentions_entity\n ON memory_entity_mentions(entity_ref, updated_at DESC);\n\n CREATE TABLE IF NOT EXISTS native_knowledge_chunks (\n chunk_id TEXT PRIMARY KEY,\n source_path TEXT NOT NULL,\n title TEXT NOT NULL,\n source_kind TEXT NOT NULL,\n start_line INTEGER NOT NULL,\n end_line INTEGER NOT NULL,\n derived_date TEXT,\n session_key TEXT,\n workflow_key TEXT,\n author TEXT,\n agent TEXT,\n namespace TEXT,\n privacy_class TEXT,\n source_hash TEXT,\n preview_text TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_native_knowledge_source_kind\n ON native_knowledge_chunks(source_kind);\n\n CREATE INDEX IF NOT EXISTS idx_native_knowledge_namespace\n ON native_knowledge_chunks(namespace);\n\n CREATE TABLE IF NOT EXISTS memory_review_runs (\n run_id TEXT PRIMARY KEY,\n created_at TEXT NOT NULL,\n mode TEXT NOT NULL,\n summary_json TEXT NOT NULL,\n metrics_json TEXT NOT NULL,\n applied_actions_json TEXT NOT NULL,\n report_markdown TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_review_runs_created\n ON memory_review_runs(created_at DESC);\n\n CREATE TABLE IF NOT EXISTS memory_review_queue (\n entry_id TEXT PRIMARY KEY,\n run_id TEXT NOT NULL,\n memory_id TEXT NOT NULL,\n path TEXT NOT NULL,\n reason_code TEXT NOT NULL,\n severity TEXT NOT NULL,\n suggested_action TEXT NOT NULL,\n suggested_status TEXT,\n related_memory_ids_json TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_review_queue_run\n ON memory_review_queue(run_id, reason_code, memory_id);\n\n CREATE TABLE IF NOT EXISTS memory_review_actions (\n row_key TEXT PRIMARY KEY,\n run_id TEXT NOT NULL,\n action TEXT NOT NULL,\n memory_id TEXT NOT NULL,\n reason_code TEXT NOT NULL,\n before_status TEXT NOT NULL,\n after_status TEXT,\n original_path TEXT NOT NULL,\n current_path TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_review_actions_run\n ON memory_review_actions(run_id, memory_id);\n `);\n\n migrateMemoryCurrentTable(db);\n db.prepare(\"INSERT OR REPLACE INTO meta(key, value) VALUES (?, ?)\")\n .run(\"schemaVersion\", String(MEMORY_PROJECTION_SCHEMA_VERSION));\n}\n\nfunction openProjectionReadonly(memoryDir: string): BetterSqlite3Database | null {\n const dbPath = getMemoryProjectionPath(memoryDir);\n try {\n return openBetterSqlite3(dbPath, { readonly: true, fileMustExist: true });\n } catch {\n return null;\n }\n}\n\nfunction withProjectionReadonly<T>(\n memoryDir: string,\n reader: (db: BetterSqlite3Database) => T,\n): T | null {\n const db = openProjectionReadonly(memoryDir);\n if (!db) return null;\n\n let needsMigration = false;\n try {\n needsMigration = memoryCurrentRequiresMigration(db);\n return reader(db);\n } catch {\n return null;\n } finally {\n db.close();\n if (needsMigration) {\n migrateProjectionSchemaIfNeeded(memoryDir);\n }\n }\n}\n\nfunction parseStringArray(value: unknown): string[] {\n if (typeof value !== \"string\" || value.length === 0) return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((entry): entry is string => typeof entry === \"string\") : [];\n } catch {\n return [];\n }\n}\n\nfunction parseJsonObject<T>(value: unknown): T | undefined {\n if (typeof value !== \"string\" || value.length === 0) return undefined;\n try {\n return JSON.parse(value) as T;\n } catch {\n return undefined;\n }\n}\n\nexport function parseCurrentRow(\n memoryDir: string,\n row: Record<string, unknown> | undefined,\n): MemoryProjectionCurrentState | null {\n if (!row) return null;\n if (\n typeof row.memory_id !== \"string\" ||\n typeof row.category !== \"string\" ||\n typeof row.status !== \"string\" ||\n typeof row.path_rel !== \"string\" ||\n typeof row.created_at !== \"string\" ||\n typeof row.updated_at !== \"string\" ||\n typeof row.source !== \"string\" ||\n typeof row.confidence !== \"number\" ||\n typeof row.confidence_tier !== \"string\"\n ) {\n return null;\n }\n\n return {\n memoryId: row.memory_id,\n category: row.category as MemoryProjectionCurrentState[\"category\"],\n status: row.status as MemoryStatus,\n lifecycleState:\n typeof row.lifecycle_state === \"string\"\n ? (row.lifecycle_state as MemoryProjectionCurrentState[\"lifecycleState\"])\n : undefined,\n path: path.join(memoryDir, row.path_rel),\n pathRel: row.path_rel,\n created: row.created_at,\n updated: row.updated_at,\n archivedAt: typeof row.archived_at === \"string\" ? row.archived_at : undefined,\n supersededAt: typeof row.superseded_at === \"string\" ? row.superseded_at : undefined,\n entityRef: typeof row.entity_ref === \"string\" ? row.entity_ref : undefined,\n source: row.source,\n confidence: row.confidence,\n confidenceTier: row.confidence_tier as MemoryProjectionCurrentState[\"confidenceTier\"],\n memoryKind:\n typeof row.memory_kind === \"string\"\n ? (row.memory_kind as MemoryProjectionCurrentState[\"memoryKind\"])\n : undefined,\n accessCount: typeof row.access_count === \"number\" ? row.access_count : undefined,\n lastAccessed: typeof row.last_accessed === \"string\" ? row.last_accessed : undefined,\n tags: parseStringArray(row.tags_json),\n preview: typeof row.preview_text === \"string\" ? row.preview_text : \"\",\n };\n}\n\nexport function parseTimelineRows(rows: Array<Record<string, unknown>>): MemoryLifecycleEvent[] {\n const out: MemoryLifecycleEvent[] = [];\n for (const row of rows) {\n if (\n typeof row.event_id !== \"string\" ||\n typeof row.memory_id !== \"string\" ||\n typeof row.event_type !== \"string\" ||\n typeof row.timestamp !== \"string\" ||\n typeof row.actor !== \"string\" ||\n typeof row.rule_version !== \"string\"\n ) {\n continue;\n }\n\n out.push({\n eventId: row.event_id,\n memoryId: row.memory_id,\n eventType: row.event_type as MemoryLifecycleEvent[\"eventType\"],\n timestamp: row.timestamp,\n actor: row.actor,\n reasonCode: typeof row.reason_code === \"string\" ? row.reason_code : undefined,\n ruleVersion: row.rule_version,\n relatedMemoryIds: parseStringArray(row.related_memory_ids_json),\n before: parseJsonObject<MemoryLifecycleEvent[\"before\"]>(row.before_json),\n after: parseJsonObject<MemoryLifecycleEvent[\"after\"]>(row.after_json),\n correlationId: typeof row.correlation_id === \"string\" ? row.correlation_id : undefined,\n });\n }\n\n return out;\n}\n\nexport function readProjectedMemoryState(\n memoryDir: string,\n memoryId: string,\n): MemoryProjectionCurrentState | null {\n return withProjectionReadonly(memoryDir, (db) => {\n const currentSelect = memoryCurrentSelectExpressions(db);\n const row = db\n .prepare(\n `\n SELECT\n memory_id,\n category,\n status,\n lifecycle_state,\n path_rel,\n created_at,\n updated_at,\n archived_at,\n superseded_at,\n entity_ref,\n source,\n confidence,\n confidence_tier,\n memory_kind,\n access_count,\n last_accessed,\n ${currentSelect.tagsJson},\n ${currentSelect.previewText}\n FROM memory_current\n WHERE memory_id = ?\n `,\n )\n .get(memoryId) as Record<string, unknown> | undefined;\n return parseCurrentRow(memoryDir, row);\n });\n}\n\nexport function readProjectedMemoryTimeline(\n memoryDir: string,\n memoryId: string,\n limit: number,\n): MemoryLifecycleEvent[] | null {\n const db = openProjectionReadonly(memoryDir);\n if (!db) return null;\n\n try {\n const rows = db\n .prepare(\n `\n SELECT * FROM (\n SELECT\n event_id,\n memory_id,\n event_type,\n timestamp,\n event_order,\n actor,\n reason_code,\n rule_version,\n related_memory_ids_json,\n before_json,\n after_json,\n correlation_id\n FROM memory_timeline\n WHERE memory_id = ?\n ORDER BY timestamp DESC, event_order DESC\n LIMIT ?\n )\n ORDER BY timestamp ASC, event_order ASC\n `,\n )\n .all(memoryId, limit) as Array<Record<string, unknown>>;\n if (rows.length === 0) return null;\n return parseTimelineRows(rows);\n } catch {\n return null;\n } finally {\n db.close();\n }\n}\n\nexport function readProjectedMemoryBrowse(\n memoryDir: string,\n options: ProjectedMemoryBrowseOptions,\n): ProjectedMemoryBrowsePage | null {\n return withProjectionReadonly(memoryDir, (db) => {\n const normalizedQuery = options.query?.trim().toLowerCase() ?? \"\";\n\n const currentSelect = memoryCurrentSelectExpressions(db);\n const whereClauses: string[] = [];\n const params: unknown[] = [];\n\n if (options.status) {\n whereClauses.push(\"status = ?\");\n params.push(options.status);\n }\n if (options.category) {\n whereClauses.push(\"category = ?\");\n params.push(options.category);\n }\n const sort = options.sort ?? \"updated_desc\";\n const orderBySql = (() => {\n switch (sort) {\n case \"updated_asc\":\n return \"updated_at ASC, created_at ASC, memory_id ASC\";\n case \"created_desc\":\n return \"created_at DESC, updated_at DESC, memory_id ASC\";\n case \"created_asc\":\n return \"created_at ASC, updated_at ASC, memory_id ASC\";\n case \"updated_desc\":\n default:\n return \"updated_at DESC, created_at DESC, memory_id ASC\";\n }\n })();\n const whereSql = whereClauses.length > 0 ? `WHERE ${whereClauses.join(\" AND \")}` : \"\";\n\n if (normalizedQuery) {\n // Query-based browse: fetch all matching rows, filter by full file content, then paginate in JS\n const allRows = db\n .prepare(`\n SELECT\n memory_id,\n path_rel,\n category,\n status,\n created_at,\n updated_at,\n entity_ref,\n ${currentSelect.tagsJson},\n ${currentSelect.previewText}\n FROM memory_current\n ${whereSql}\n ORDER BY ${orderBySql}\n `)\n .all(...params) as Array<Record<string, unknown>>;\n\n const filtered = allRows.filter((row) => {\n if (typeof row.memory_id !== \"string\" || typeof row.path_rel !== \"string\") return false;\n // Check preview, category, entity_ref, tags first (fast)\n const preview = typeof row.preview_text === \"string\" ? row.preview_text.toLowerCase() : \"\";\n const category = typeof row.category === \"string\" ? row.category.toLowerCase() : \"\";\n const entityRef = typeof row.entity_ref === \"string\" ? row.entity_ref.toLowerCase() : \"\";\n const tags = typeof row.tags_json === \"string\" ? row.tags_json.toLowerCase() : \"\";\n if (preview.includes(normalizedQuery) || category.includes(normalizedQuery) ||\n entityRef.includes(normalizedQuery) || tags.includes(normalizedQuery)) {\n return true;\n }\n // Fall back to reading full file content from disk\n try {\n const filePath = path.join(memoryDir, row.path_rel as string);\n const content = fs.readFileSync(filePath, \"utf-8\").toLowerCase();\n return content.includes(normalizedQuery);\n } catch {\n return false;\n }\n });\n\n const pageRows = filtered.slice(options.offset, options.offset + options.limit);\n return {\n total: filtered.length,\n memories: pageRows\n .filter(\n (row) =>\n typeof row.memory_id === \"string\" &&\n typeof row.path_rel === \"string\" &&\n typeof row.category === \"string\" &&\n typeof row.status === \"string\",\n )\n .map((row) => ({\n id: row.memory_id as string,\n path: path.join(memoryDir, row.path_rel as string),\n category: row.category as MemoryCategory,\n status: row.status as MemoryStatus,\n created: typeof row.created_at === \"string\" ? row.created_at : undefined,\n updated: typeof row.updated_at === \"string\" ? row.updated_at : undefined,\n tags: parseStringArray(row.tags_json),\n entityRef: typeof row.entity_ref === \"string\" ? row.entity_ref : undefined,\n preview: typeof row.preview_text === \"string\" ? row.preview_text : \"\",\n })),\n };\n }\n\n // No query: use SQL pagination directly\n const totalRow = db\n .prepare(`SELECT COUNT(*) AS total FROM memory_current ${whereSql}`)\n .get(...params) as { total?: number } | undefined;\n const rows = db\n .prepare(`\n SELECT\n memory_id,\n path_rel,\n category,\n status,\n created_at,\n updated_at,\n entity_ref,\n ${currentSelect.tagsJson},\n ${currentSelect.previewText}\n FROM memory_current\n ${whereSql}\n ORDER BY ${orderBySql}\n LIMIT ? OFFSET ?\n `)\n .all(...params, options.limit, options.offset) as Array<Record<string, unknown>>;\n\n return {\n total: typeof totalRow?.total === \"number\" ? totalRow.total : 0,\n memories: rows\n .filter(\n (row) =>\n typeof row.memory_id === \"string\" &&\n typeof row.path_rel === \"string\" &&\n typeof row.category === \"string\" &&\n typeof row.status === \"string\",\n )\n .map((row) => ({\n id: row.memory_id as string,\n path: path.join(memoryDir, row.path_rel as string),\n category: row.category as MemoryCategory,\n status: row.status as MemoryStatus,\n created: typeof row.created_at === \"string\" ? row.created_at : undefined,\n updated: typeof row.updated_at === \"string\" ? row.updated_at : undefined,\n tags: parseStringArray(row.tags_json),\n entityRef: typeof row.entity_ref === \"string\" ? row.entity_ref : undefined,\n preview: typeof row.preview_text === \"string\" ? row.preview_text : \"\",\n })),\n };\n });\n}\n\nexport function readProjectedEntityMentions(\n memoryDir: string,\n memoryIds?: Set<string>,\n): ProjectedEntityMentionRow[] | null {\n const db = openProjectionReadonly(memoryDir);\n if (!db) return null;\n\n try {\n const rows = db\n .prepare(`\n SELECT\n memory_id,\n entity_ref,\n mention_source,\n created_at,\n updated_at\n FROM memory_entity_mentions\n ORDER BY entity_ref ASC, updated_at DESC, memory_id ASC\n `)\n .all() as Array<Record<string, unknown>>;\n\n return rows\n .filter(\n (row) =>\n typeof row.memory_id === \"string\" &&\n typeof row.entity_ref === \"string\" &&\n typeof row.mention_source === \"string\" &&\n typeof row.created_at === \"string\" &&\n typeof row.updated_at === \"string\" &&\n (!memoryIds || memoryIds.has(row.memory_id)),\n )\n .map((row) => ({\n memoryId: row.memory_id as string,\n entityRef: row.entity_ref as string,\n mentionSource: row.mention_source as string,\n created: row.created_at as string,\n updated: row.updated_at as string,\n }));\n } catch {\n return null;\n } finally {\n db.close();\n }\n}\n\nexport function readProjectedNativeKnowledgeChunks(\n memoryDir: string,\n): ProjectedNativeKnowledgeChunkRow[] | null {\n const db = openProjectionReadonly(memoryDir);\n if (!db) return null;\n\n try {\n const rows = db\n .prepare(`\n SELECT\n chunk_id,\n source_path,\n title,\n source_kind,\n start_line,\n end_line,\n derived_date,\n session_key,\n workflow_key,\n author,\n agent,\n namespace,\n privacy_class,\n source_hash,\n preview_text\n FROM native_knowledge_chunks\n ORDER BY source_kind ASC, source_path ASC, start_line ASC\n `)\n .all() as Array<Record<string, unknown>>;\n\n return rows\n .filter(\n (row) =>\n typeof row.chunk_id === \"string\" &&\n typeof row.source_path === \"string\" &&\n typeof row.title === \"string\" &&\n typeof row.source_kind === \"string\" &&\n typeof row.start_line === \"number\" &&\n typeof row.end_line === \"number\" &&\n typeof row.preview_text === \"string\",\n )\n .map((row) => ({\n chunkId: row.chunk_id as string,\n sourcePath: row.source_path as string,\n title: row.title as string,\n sourceKind: row.source_kind as string,\n startLine: row.start_line as number,\n endLine: row.end_line as number,\n derivedDate: typeof row.derived_date === \"string\" ? row.derived_date : undefined,\n sessionKey: typeof row.session_key === \"string\" ? row.session_key : undefined,\n workflowKey: typeof row.workflow_key === \"string\" ? row.workflow_key : undefined,\n author: typeof row.author === \"string\" ? row.author : undefined,\n agent: typeof row.agent === \"string\" ? row.agent : undefined,\n namespace: typeof row.namespace === \"string\" ? row.namespace : undefined,\n privacyClass: typeof row.privacy_class === \"string\" ? row.privacy_class : undefined,\n sourceHash: typeof row.source_hash === \"string\" ? row.source_hash : undefined,\n preview: row.preview_text as string,\n }));\n } catch {\n return null;\n } finally {\n db.close();\n }\n}\n\nexport function readProjectedLatestReviewQueue(\n memoryDir: string,\n): ProjectedReviewQueueSnapshot | null {\n const db = openProjectionReadonly(memoryDir);\n if (!db) return null;\n\n try {\n const latestRunId =\n (db.prepare(`SELECT value FROM meta WHERE key = 'latestGovernanceRunId'`).get() as { value?: string } | undefined)\n ?.value\n ?? (db.prepare(`SELECT run_id AS value FROM memory_review_runs ORDER BY created_at DESC LIMIT 1`).get() as {\n value?: string;\n } | undefined)?.value;\n if (!latestRunId) {\n return { found: false };\n }\n\n const runRow = db\n .prepare(`\n SELECT\n run_id,\n summary_json,\n metrics_json,\n applied_actions_json,\n report_markdown\n FROM memory_review_runs\n WHERE run_id = ?\n `)\n .get(latestRunId) as Record<string, unknown> | undefined;\n if (!runRow || typeof runRow.run_id !== \"string\") {\n return { found: false };\n }\n\n const queueRows = db\n .prepare(`\n SELECT\n entry_id,\n memory_id,\n path,\n reason_code,\n severity,\n suggested_action,\n suggested_status,\n related_memory_ids_json\n FROM memory_review_queue\n WHERE run_id = ?\n ORDER BY reason_code ASC, memory_id ASC\n `)\n .all(latestRunId) as Array<Record<string, unknown>>;\n\n const actionRows = db\n .prepare(`\n SELECT\n row_key,\n action,\n memory_id,\n reason_code,\n before_status,\n after_status,\n original_path,\n current_path\n FROM memory_review_actions\n WHERE run_id = ?\n ORDER BY memory_id ASC, action ASC\n `)\n .all(latestRunId) as Array<Record<string, unknown>>;\n\n const reviewQueue: MemoryGovernanceReviewQueueEntry[] = queueRows\n .filter(\n (row) =>\n typeof row.entry_id === \"string\" &&\n typeof row.memory_id === \"string\" &&\n typeof row.path === \"string\" &&\n typeof row.reason_code === \"string\" &&\n typeof row.severity === \"string\" &&\n typeof row.suggested_action === \"string\",\n )\n .map((row) => ({\n entryId: row.entry_id as string,\n memoryId: row.memory_id as string,\n path: row.path as string,\n reasonCode: row.reason_code as MemoryGovernanceReviewQueueEntry[\"reasonCode\"],\n severity: row.severity as MemoryGovernanceReviewQueueEntry[\"severity\"],\n suggestedAction: row.suggested_action as MemoryGovernanceReviewQueueEntry[\"suggestedAction\"],\n suggestedStatus:\n typeof row.suggested_status === \"string\"\n ? (row.suggested_status as MemoryGovernanceReviewQueueEntry[\"suggestedStatus\"])\n : undefined,\n relatedMemoryIds: parseStringArray(row.related_memory_ids_json),\n }));\n\n return {\n found: true,\n runId: latestRunId,\n summary: parseJsonObject<MemoryGovernanceSummary>(runRow.summary_json),\n metrics: parseJsonObject<MemoryGovernanceMetrics>(runRow.metrics_json),\n reviewQueue,\n appliedActions:\n actionRows.length > 0\n ? actionRows\n .filter(\n (row) =>\n typeof row.action === \"string\" &&\n typeof row.memory_id === \"string\" &&\n typeof row.reason_code === \"string\" &&\n typeof row.before_status === \"string\" &&\n typeof row.original_path === \"string\" &&\n typeof row.current_path === \"string\",\n )\n .map((row) => ({\n action: row.action as MemoryGovernanceAppliedAction[\"action\"],\n memoryId: row.memory_id as string,\n reasonCode: row.reason_code as MemoryGovernanceAppliedAction[\"reasonCode\"],\n beforeStatus: row.before_status as MemoryGovernanceAppliedAction[\"beforeStatus\"],\n afterStatus:\n typeof row.after_status === \"string\"\n ? (row.after_status as MemoryGovernanceAppliedAction[\"afterStatus\"])\n : undefined,\n originalPath: row.original_path as string,\n currentPath: row.current_path as string,\n }))\n : (parseJsonObject<MemoryGovernanceAppliedAction[]>(runRow.applied_actions_json) ?? []),\n report: typeof runRow.report_markdown === \"string\" ? runRow.report_markdown : undefined,\n };\n } catch {\n return null;\n } finally {\n db.close();\n }\n}\n\nexport function readProjectedGovernanceRecord(\n memoryDir: string,\n): {\n runId: string;\n summary: unknown;\n metrics: unknown;\n reviewQueueRows: MemoryProjectionGovernanceReviewQueueRow[];\n appliedActionRows: MemoryProjectionGovernanceAppliedActionRow[];\n report: string;\n} | null {\n const snapshot = readProjectedLatestReviewQueue(memoryDir);\n if (!snapshot?.found || !snapshot.runId) return null;\n\n return {\n runId: snapshot.runId,\n summary: snapshot.summary ?? {},\n metrics: snapshot.metrics ?? {},\n reviewQueueRows: (snapshot.reviewQueue ?? []).map((entry) => ({\n runId: snapshot.runId as string,\n entryId: entry.entryId,\n memoryId: entry.memoryId,\n path: entry.path,\n reasonCode: entry.reasonCode,\n severity: entry.severity,\n suggestedAction: entry.suggestedAction,\n suggestedStatus: entry.suggestedStatus,\n relatedMemoryIds: [...entry.relatedMemoryIds],\n })),\n appliedActionRows: (snapshot.appliedActions ?? []).map((action) => ({\n runId: snapshot.runId as string,\n rowKey: [\n action.action,\n action.memoryId,\n action.reasonCode,\n action.originalPath,\n action.currentPath,\n ].join(\"::\"),\n action: action.action,\n memoryId: action.memoryId,\n reasonCode: action.reasonCode,\n beforeStatus: action.beforeStatus,\n afterStatus: action.afterStatus,\n originalPath: action.originalPath,\n currentPath: action.currentPath,\n })),\n report: snapshot.report ?? \"\",\n };\n}\n","import { createRequire } from \"node:module\";\nimport type BetterSqlite3 from \"better-sqlite3\";\n\nexport type BetterSqlite3Database = BetterSqlite3.Database;\ntype BetterSqlite3Ctor = typeof BetterSqlite3;\ntype RuntimeRequire = ReturnType<typeof createRequire>;\n\nlet cachedCtor: BetterSqlite3Ctor | null = null;\n\nfunction loadBetterSqlite3(): BetterSqlite3Ctor {\n if (cachedCtor) return cachedCtor;\n\n const require = createRequire(import.meta.url);\n\n try {\n cachedCtor = requireBetterSqlite3Ctor(require);\n return cachedCtor;\n } catch (error) {\n throw unavailableError(error);\n }\n}\n\nexport function openBetterSqlite3(\n file: string,\n options?: ConstructorParameters<BetterSqlite3Ctor>[1],\n): BetterSqlite3Database {\n const Database = loadBetterSqlite3();\n return new Database(file, options);\n}\n\nfunction requireBetterSqlite3Ctor(require: RuntimeRequire): BetterSqlite3Ctor {\n const loaded = require(\"better-sqlite3\") as\n | BetterSqlite3Ctor\n | { default?: BetterSqlite3Ctor };\n const ctor = typeof loaded === \"function\" ? loaded : loaded.default;\n\n if (typeof ctor !== \"function\") {\n throw new Error(\"module did not export a constructor\");\n }\n\n return ctor;\n}\n\nexport function isLikelyBetterSqlite3NativeBindingError(error: unknown): boolean {\n const detail = errorDetail(error);\n return (\n detail.includes(\"Could not locate the bindings file\") ||\n detail.includes(\"better_sqlite3.node\") ||\n (detail.includes(\"node-v\") && detail.includes(\"better-sqlite3\")) ||\n (detail.includes(\"NODE_MODULE_VERSION\") && detail.includes(\"better-sqlite3\")) ||\n detail.includes(\"was compiled against a different Node.js version\")\n );\n}\n\nfunction unavailableError(error: unknown): Error {\n const detail = errorDetail(error);\n const nativeBindingHint = isLikelyBetterSqlite3NativeBindingError(error)\n ? \" This usually means the better-sqlite3 native binding was not compiled for this Node.js/platform combination. \" +\n \"Run `node scripts/ensure-better-sqlite3.mjs` from the Remnic install directory, or run \" +\n \"`npx node-gyp rebuild --directory=node_modules/better-sqlite3` if the verification script is unavailable.\"\n : \"\";\n return new Error(\n \"better-sqlite3 is unavailable. Remnic attempted to load the native SQLite binding and could not.\" +\n nativeBindingHint +\n (detail ? ` Original error: ${detail}` : \"\"),\n { cause: error instanceof Error ? error : undefined },\n );\n}\n\nfunction errorDetail(error: unknown): string {\n if (error instanceof Error) {\n const stack = error.stack && error.stack !== error.message ? `\\n${error.stack}` : \"\";\n return `${error.message}${stack}`;\n }\n return String(error ?? \"\");\n}\n"],"mappings":"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","names":["require"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  promoteSemanticRuleFromMemory
3
- } from "./chunk-YELFQNQH.js";
3
+ } from "./chunk-KMWZXT5T.js";
4
4
  import {
5
5
  resolveAgentAccessAuthToken
6
6
  } from "./chunk-MXC3AP5I.js";
@@ -8,10 +8,10 @@ import {
8
8
  buildResumeBundleFromState,
9
9
  getResumeBundleStatus,
10
10
  recordResumeBundle
11
- } from "./chunk-RXGR3YLU.js";
11
+ } from "./chunk-G3G3LY22.js";
12
12
  import {
13
13
  parseXrayCliOptions
14
- } from "./chunk-KUIEFH2S.js";
14
+ } from "./chunk-BIHCWSWA.js";
15
15
  import {
16
16
  listNamespaces,
17
17
  runBenchmarkRecall,
@@ -22,7 +22,7 @@ import {
22
22
  runOperatorRepair,
23
23
  runOperatorSetup,
24
24
  verifyNamespaces
25
- } from "./chunk-YKGRACQP.js";
25
+ } from "./chunk-M3DK45UM.js";
26
26
  import {
27
27
  collectPatternMemories,
28
28
  explainPatternMemory,
@@ -57,13 +57,13 @@ import {
57
57
  } from "./chunk-3QKK7QOS.js";
58
58
  import {
59
59
  searchVerifiedEpisodes
60
- } from "./chunk-LKJA5MR2.js";
60
+ } from "./chunk-2MVUXO4H.js";
61
61
  import {
62
62
  ThreadingManager
63
63
  } from "./chunk-JRNQ3RNA.js";
64
64
  import {
65
65
  searchVerifiedSemanticRules
66
- } from "./chunk-ZOMA7J3J.js";
66
+ } from "./chunk-6OAQEOGV.js";
67
67
  import {
68
68
  getWorkProductLedgerStatus,
69
69
  recordWorkProductLedgerEntry,
@@ -92,7 +92,7 @@ import {
92
92
  createNotionConnector,
93
93
  validateGoogleDriveConfig,
94
94
  validateNotionConfig
95
- } from "./chunk-L2IO2QPY.js";
95
+ } from "./chunk-4IS4SXIQ.js";
96
96
  import {
97
97
  listConnectorStates
98
98
  } from "./chunk-6TBWYBJ3.js";
@@ -116,7 +116,7 @@ import {
116
116
  } from "./chunk-7SEAZFFB.js";
117
117
  import {
118
118
  parseConfig
119
- } from "./chunk-FSWYMUWI.js";
119
+ } from "./chunk-6Z6UH6TK.js";
120
120
  import {
121
121
  parseConnectorsListOptions,
122
122
  parseConnectorsRunName,
@@ -142,25 +142,25 @@ import {
142
142
  } from "./chunk-NGAVDO7E.js";
143
143
  import {
144
144
  EngramAccessHttpServer
145
- } from "./chunk-MYMOXFMR.js";
145
+ } from "./chunk-PHQH2VUO.js";
146
146
  import {
147
147
  EngramMcpServer
148
- } from "./chunk-M3QQ5DRA.js";
148
+ } from "./chunk-A6PGANSE.js";
149
149
  import {
150
150
  EngramAccessService,
151
151
  WorkStorage
152
- } from "./chunk-OZAFME7S.js";
152
+ } from "./chunk-QPLYTPYL.js";
153
153
  import {
154
154
  parseRecallExplainFormat,
155
155
  renderRecallExplain,
156
156
  renderXray
157
- } from "./chunk-5NS6NN5A.js";
157
+ } from "./chunk-J3P6WSFZ.js";
158
158
  import {
159
159
  listMemoryGovernanceRuns,
160
160
  readMemoryGovernanceRunArtifact,
161
161
  restoreMemoryGovernanceRun,
162
162
  runMemoryGovernance
163
- } from "./chunk-AIT53NLG.js";
163
+ } from "./chunk-U4SZXGEO.js";
164
164
  import {
165
165
  getTrustZoneStoreStatus,
166
166
  promoteTrustZoneRecord,
@@ -184,11 +184,11 @@ import {
184
184
  } from "./chunk-G2WADRQ3.js";
185
185
  import {
186
186
  StorageManager
187
- } from "./chunk-DLYTYJ43.js";
187
+ } from "./chunk-MJLUHRSF.js";
188
188
  import {
189
189
  RECALL_DISCLOSURE_LEVELS,
190
190
  isRecallDisclosure
191
- } from "./chunk-COAGZQT7.js";
191
+ } from "./chunk-ET4BL42V.js";
192
192
  import {
193
193
  MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
194
194
  buildLifecycleEventsForMemory,
@@ -211,7 +211,7 @@ import {
211
211
  readProjectedEntityMentions,
212
212
  readProjectedGovernanceRecord,
213
213
  readProjectedNativeKnowledgeChunks
214
- } from "./chunk-67YLUWLG.js";
214
+ } from "./chunk-XJKFSSDW.js";
215
215
  import {
216
216
  resolveHomeDir
217
217
  } from "./chunk-MARWOCVP.js";
@@ -4106,7 +4106,7 @@ async function runSemanticRulePromoteCliCommand(options) {
4106
4106
  });
4107
4107
  }
4108
4108
  async function runCompoundingPromoteCliCommand(options) {
4109
- const { CompoundingEngine } = await import("./engine-2JKWFKJV.js");
4109
+ const { CompoundingEngine } = await import("./engine-EDFFOWDD.js");
4110
4110
  const config = parseConfig({
4111
4111
  memoryDir: options.memoryDir,
4112
4112
  qmdEnabled: false,
@@ -9245,7 +9245,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
9245
9245
  const peerCmd = cmd.command("peer").description("Manage the peer registry (issue #679).");
9246
9246
  peerCmd.command("list").description("List all registered peers").option("--json", "Emit machine-readable JSON only").action(async (...args) => {
9247
9247
  const options = args[0] ?? {};
9248
- const { listPeers } = await import("./peers-6OSQ3NK6.js");
9248
+ const { listPeers } = await import("./peers-HCVGHMAE.js");
9249
9249
  const peers = await listPeers(orchestrator.config.memoryDir);
9250
9250
  if (options.json === true) {
9251
9251
  console.log(JSON.stringify({ peers }, null, 2));
@@ -9269,7 +9269,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
9269
9269
  console.error("peer id is required");
9270
9270
  process.exit(1);
9271
9271
  }
9272
- const peersShow = await import("./peers-6OSQ3NK6.js");
9272
+ const peersShow = await import("./peers-HCVGHMAE.js");
9273
9273
  const validateIdShow = peersShow.assertValidPeerId;
9274
9274
  try {
9275
9275
  validateIdShow(id);
@@ -9382,7 +9382,7 @@ ${peer.notes.split("\n").map((l) => ` ${l}`).join("\n")}`);
9382
9382
  console.error("peer id is required");
9383
9383
  process.exit(1);
9384
9384
  }
9385
- const peersProfile = await import("./peers-6OSQ3NK6.js");
9385
+ const peersProfile = await import("./peers-HCVGHMAE.js");
9386
9386
  const validateIdProfile = peersProfile.assertValidPeerId;
9387
9387
  try {
9388
9388
  validateIdProfile(id);
@@ -9417,7 +9417,7 @@ ${peer.notes.split("\n").map((l) => ` ${l}`).join("\n")}`);
9417
9417
  const options = args[0] ?? {};
9418
9418
  const isDryRun = options.dryRun === true;
9419
9419
  const displayName = typeof options.displayName === "string" && options.displayName.length > 0 ? options.displayName : void 0;
9420
- const { migrateFromIdentityAnchor } = await import("./migrate-from-identity-anchor-TTEDEJGX.js");
9420
+ const { migrateFromIdentityAnchor } = await import("./migrate-from-identity-anchor-G27MCD6A.js");
9421
9421
  let result;
9422
9422
  try {
9423
9423
  result = await migrateFromIdentityAnchor({
@@ -9680,4 +9680,4 @@ export {
9680
9680
  resolveMemoryDirForNamespace,
9681
9681
  registerCli
9682
9682
  };
9683
- //# sourceMappingURL=chunk-KQB4C4OE.js.map
9683
+ //# sourceMappingURL=chunk-XL3UCAZA.js.map
@@ -15,7 +15,7 @@ import {
15
15
  validateGmailConfig,
16
16
  validateGoogleDriveConfig,
17
17
  validateNotionConfig
18
- } from "./chunk-L2IO2QPY.js";
18
+ } from "./chunk-4IS4SXIQ.js";
19
19
  import {
20
20
  readConnectorState,
21
21
  writeConnectorState
@@ -274,4 +274,4 @@ export {
274
274
  hasEnabledLiveConnector,
275
275
  runLiveConnectorsOnce
276
276
  };
277
- //# sourceMappingURL=chunk-ASIQZXYO.js.map
277
+ //# sourceMappingURL=chunk-XMVFHBHT.js.map
@@ -3,13 +3,13 @@ import {
3
3
  } from "./chunk-IXEJRKCZ.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-DLYTYJ43.js";
6
+ } from "./chunk-MJLUHRSF.js";
7
7
  import {
8
8
  parseContinuityImprovementLoops
9
9
  } from "./chunk-QSVPYQPG.js";
10
10
  import {
11
11
  sanitizeMemoryContent
12
- } from "./chunk-M62O4P4T.js";
12
+ } from "./chunk-FVQJYWH7.js";
13
13
  import {
14
14
  log
15
15
  } from "./chunk-2ODBA7MQ.js";
@@ -1832,4 +1832,4 @@ export {
1832
1832
  defaultTierMigrationCycleBudget,
1833
1833
  CompoundingEngine
1834
1834
  };
1835
- //# sourceMappingURL=chunk-6B23Z44B.js.map
1835
+ //# sourceMappingURL=chunk-XN4D6Z7X.js.map
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-ETOW6ACV.js";
6
6
  import {
7
7
  ModelRegistry
8
- } from "./chunk-FEMOX5AD.js";
8
+ } from "./chunk-QR3C7BKQ.js";
9
9
  import {
10
10
  LocalLlmClient
11
- } from "./chunk-R2XRID2N.js";
11
+ } from "./chunk-NN3LPQ5D.js";
12
12
  import {
13
13
  FallbackLlmClient
14
- } from "./chunk-DWMXVUGO.js";
14
+ } from "./chunk-FLBYSB2V.js";
15
15
  import {
16
16
  extractJsonCandidates
17
17
  } from "./chunk-UZB5KHKX.js";
@@ -618,4 +618,4 @@ ${truncatedConversation}`;
618
618
  export {
619
619
  HourlySummarizer
620
620
  };
621
- //# sourceMappingURL=chunk-S5SQDIF5.js.map
621
+ //# sourceMappingURL=chunk-Y3VT6ZCP.js.map
@@ -1,9 +1,9 @@
1
- import { R as ReplaySource, a as ReplayWarning, b as ImportTurn, B as BulkImportSource, c as BulkImportOptions, d as BulkImportResult, e as ReplayTurn, O as Orchestrator, C as CompoundingPromotionReport } from './orchestrator-D2lHhFWI.js';
2
- import { M as MemoryGovernanceRunResult, c as MemoryGovernanceSummary, d as MemoryGovernanceMetrics, e as MemoryGovernanceQualityScore, f as MemoryGovernanceReviewQueueEntry, g as MemoryGovernanceAppliedAction, h as MemoryGovernanceTransitionReport, i as MemoryGovernanceManifest, j as MemoryGovernanceRestoreManifest, R as RestoreMemoryGovernanceRunResult } from './memory-projection-store-BQt5VUQ8.js';
3
- import { i as MemoryStatus, f as MemoryFile, B as BehaviorSignalEvent, U as QmdSearchResult, s as MemoryActionEvent, h as MemoryLifecycleEvent } from './types-C-USTTAx.js';
1
+ import { R as ReplaySource, a as ReplayWarning, b as ImportTurn, B as BulkImportSource, c as BulkImportOptions, d as BulkImportResult, e as ReplayTurn, O as Orchestrator, C as CompoundingPromotionReport } from './orchestrator-CYqmqxco.js';
2
+ import { M as MemoryGovernanceRunResult, c as MemoryGovernanceSummary, d as MemoryGovernanceMetrics, e as MemoryGovernanceQualityScore, f as MemoryGovernanceReviewQueueEntry, g as MemoryGovernanceAppliedAction, h as MemoryGovernanceTransitionReport, i as MemoryGovernanceManifest, j as MemoryGovernanceRestoreManifest, R as RestoreMemoryGovernanceRunResult } from './memory-projection-store-BW8u5U0u.js';
3
+ import { i as MemoryStatus, f as MemoryFile, B as BehaviorSignalEvent, U as QmdSearchResult, s as MemoryActionEvent, h as MemoryLifecycleEvent } from './types-Bmp9ssU2.js';
4
4
  import { Writable, Readable } from 'node:stream';
5
5
  import { DashboardStatus } from './dashboard-runtime.js';
6
- import { E as EngramAccessService } from './access-service-B9sziJdP.js';
6
+ import { E as EngramAccessService } from './access-service-BJCIjVRY.js';
7
7
  import { ResolveSecretRefFn } from './resolve-auth-token.js';
8
8
  import { EvalBaselineDeltaReport, EvalBaselineSnapshot, EvalCiGateReport, EvalBenchmarkPackSummary, EvalHarnessStatus, EvalStoredBaselineCiGateReport } from './evals.js';
9
9
  import { GraphHealthReport } from './graph.js';