@remnic/core 9.3.733 → 9.3.735

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 (304) hide show
  1. package/dist/access-boundary.d.ts +13 -11
  2. package/dist/access-boundary.js +9 -9
  3. package/dist/access-cli.js +26 -24
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +13 -11
  6. package/dist/access-http.js +14 -14
  7. package/dist/access-mcp.d.ts +13 -11
  8. package/dist/access-mcp.js +13 -13
  9. package/dist/access-operations-batch.js +11 -11
  10. package/dist/access-operations.d.ts +13 -11
  11. package/dist/access-operations.js +12 -12
  12. package/dist/access-schema.d.ts +4 -4
  13. package/dist/{access-service-Byoe3HsT.d.ts → access-service-CVx7mmvK.d.ts} +4 -4
  14. package/dist/access-service.d.ts +13 -11
  15. package/dist/access-service.js +8 -8
  16. package/dist/access-surface-catalog.d.ts +13 -11
  17. package/dist/action-confidence.d.ts +1 -1
  18. package/dist/active-memory-bridge.d.ts +1 -1
  19. package/dist/active-memory-bridge.js +3 -2
  20. package/dist/active-recall.d.ts +1 -1
  21. package/dist/behavior-learner.d.ts +1 -1
  22. package/dist/behavior-signals.d.ts +1 -1
  23. package/dist/bootstrap.d.ts +12 -10
  24. package/dist/briefing.d.ts +1 -1
  25. package/dist/buffer-surprise-report.d.ts +1 -1
  26. package/dist/buffer.d.ts +1 -1
  27. package/dist/calibration.d.ts +1 -1
  28. package/dist/capabilities.d.ts +196 -2
  29. package/dist/capabilities.js +21 -3
  30. package/dist/{catalog-DM1nk7cM.d.ts → catalog-BVhDEUhT.d.ts} +2 -2
  31. package/dist/causal-behavior.d.ts +1 -1
  32. package/dist/causal-consolidation.d.ts +1 -1
  33. package/dist/causal-trajectory-graph.d.ts +1 -1
  34. package/dist/{chunk-CX77GNMB.js → chunk-2T2N7ISV.js} +6 -3
  35. package/dist/chunk-2T2N7ISV.js.map +1 -0
  36. package/dist/{chunk-HHNSLPX7.js → chunk-5BOQNB2K.js} +10 -9
  37. package/dist/chunk-5BOQNB2K.js.map +1 -0
  38. package/dist/{chunk-QZHF4BWN.js → chunk-AAIHDIMD.js} +6 -6
  39. package/dist/{chunk-H3MB3F62.js → chunk-AB2E5DCN.js} +4 -3
  40. package/dist/chunk-AB2E5DCN.js.map +1 -0
  41. package/dist/{chunk-KSJCXXOU.js → chunk-AE7NTZ75.js} +6 -3
  42. package/dist/chunk-AE7NTZ75.js.map +1 -0
  43. package/dist/{chunk-OTQE66IX.js → chunk-AESC5OQJ.js} +6 -3
  44. package/dist/chunk-AESC5OQJ.js.map +1 -0
  45. package/dist/{chunk-FFUCCKPN.js → chunk-BXPG5AVX.js} +10 -7
  46. package/dist/chunk-BXPG5AVX.js.map +1 -0
  47. package/dist/{chunk-P3VJCTVE.js → chunk-CHJIWG2H.js} +4 -3
  48. package/dist/chunk-CHJIWG2H.js.map +1 -0
  49. package/dist/{chunk-FYWUNVFZ.js → chunk-E4LYJ7PY.js} +6 -6
  50. package/dist/{chunk-NIZQH6AU.js → chunk-FF36YNKY.js} +8 -7
  51. package/dist/chunk-FF36YNKY.js.map +1 -0
  52. package/dist/{chunk-OUITHS6V.js → chunk-FLCYY5JX.js} +801 -711
  53. package/dist/chunk-FLCYY5JX.js.map +1 -0
  54. package/dist/{chunk-PLBIPT6I.js → chunk-FLPKEMSO.js} +7 -4
  55. package/dist/chunk-FLPKEMSO.js.map +1 -0
  56. package/dist/{chunk-6TUWSUUD.js → chunk-G54IDCD3.js} +59 -53
  57. package/dist/chunk-G54IDCD3.js.map +1 -0
  58. package/dist/{chunk-J6BH2OBA.js → chunk-GB2FZOWB.js} +8 -5
  59. package/dist/chunk-GB2FZOWB.js.map +1 -0
  60. package/dist/{chunk-CGPHMNL4.js → chunk-GYICIICQ.js} +10 -6
  61. package/dist/chunk-GYICIICQ.js.map +1 -0
  62. package/dist/{chunk-DKT3X5C3.js → chunk-HFXZIF3V.js} +7 -4
  63. package/dist/chunk-HFXZIF3V.js.map +1 -0
  64. package/dist/{chunk-646B5ERJ.js → chunk-HLPYL6LC.js} +71 -65
  65. package/dist/chunk-HLPYL6LC.js.map +1 -0
  66. package/dist/{chunk-ZVHRSR2R.js → chunk-IPI45Q4S.js} +6 -3
  67. package/dist/chunk-IPI45Q4S.js.map +1 -0
  68. package/dist/{chunk-24D66MMN.js → chunk-IX4L7E5G.js} +7 -4
  69. package/dist/chunk-IX4L7E5G.js.map +1 -0
  70. package/dist/{chunk-SYX73XD7.js → chunk-IXGXALRV.js} +10 -7
  71. package/dist/chunk-IXGXALRV.js.map +1 -0
  72. package/dist/{chunk-ESF7TRYJ.js → chunk-JWDE7OVJ.js} +79 -2
  73. package/dist/chunk-JWDE7OVJ.js.map +1 -0
  74. package/dist/{chunk-GGL34GCW.js → chunk-K3Y2SJTN.js} +7 -4
  75. package/dist/chunk-K3Y2SJTN.js.map +1 -0
  76. package/dist/{chunk-PMAQRUN4.js → chunk-NDKW67ER.js} +5 -2
  77. package/dist/chunk-NDKW67ER.js.map +1 -0
  78. package/dist/{chunk-ZQUAVZNG.js → chunk-NNJKEAP2.js} +7 -4
  79. package/dist/chunk-NNJKEAP2.js.map +1 -0
  80. package/dist/{chunk-UZYLX7M6.js → chunk-OYHYBHHI.js} +9 -6
  81. package/dist/chunk-OYHYBHHI.js.map +1 -0
  82. package/dist/{chunk-NOU77OHX.js → chunk-P6VLG7KE.js} +2 -2
  83. package/dist/{chunk-O4ZIBPIW.js → chunk-QNTLWH3T.js} +3 -3
  84. package/dist/{chunk-LUCARK4W.js → chunk-UO6MPN77.js} +37 -35
  85. package/dist/chunk-UO6MPN77.js.map +1 -0
  86. package/dist/{chunk-HJWQJUKQ.js → chunk-VOEVVIP3.js} +3 -3
  87. package/dist/{chunk-KQYGNGON.js → chunk-ZBZ4XULO.js} +6 -3
  88. package/dist/chunk-ZBZ4XULO.js.map +1 -0
  89. package/dist/{cli-Dt-tuiYH.d.ts → cli-Cx5Mxwk7.d.ts} +3 -3
  90. package/dist/cli.d.ts +14 -12
  91. package/dist/cli.js +20 -20
  92. package/dist/compounding/engine.d.ts +3 -2
  93. package/dist/compounding/engine.js +2 -1
  94. package/dist/compounding/preference-consolidator.d.ts +1 -1
  95. package/dist/compression-optimizer.d.ts +1 -1
  96. package/dist/config.d.ts +1 -1
  97. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  98. package/dist/connectors/codex-materialize.d.ts +1 -1
  99. package/dist/connectors/index.d.ts +1 -1
  100. package/dist/consolidation-provenance-check.d.ts +1 -1
  101. package/dist/consolidation-undo.d.ts +1 -1
  102. package/dist/contradiction/index.d.ts +2 -2
  103. package/dist/contradiction/index.js +2 -1
  104. package/dist/{contradiction-scan-HWGEOUDS.js → contradiction-scan-2B4AE4TI.js} +3 -2
  105. package/dist/conversation-index/backend.d.ts +1 -1
  106. package/dist/conversation-index/chunker.d.ts +1 -1
  107. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  108. package/dist/conversation-index/indexer.d.ts +1 -1
  109. package/dist/conversation-index/search.d.ts +1 -1
  110. package/dist/day-summary.d.ts +1 -1
  111. package/dist/delinearize.d.ts +1 -1
  112. package/dist/direct-answer-wiring.d.ts +1 -1
  113. package/dist/direct-answer.d.ts +1 -1
  114. package/dist/embedding-fallback.d.ts +1 -1
  115. package/dist/embedding-fallback.js +2 -2
  116. package/dist/enrichment/index.d.ts +1 -1
  117. package/dist/entity-retrieval.d.ts +1 -1
  118. package/dist/entity-retrieval.js +2 -1
  119. package/dist/entity-schema.d.ts +1 -1
  120. package/dist/explicit-capture.d.ts +12 -10
  121. package/dist/explicit-capture.js +2 -1
  122. package/dist/extraction-faithfulness.d.ts +1 -1
  123. package/dist/extraction-judge-telemetry.d.ts +1 -1
  124. package/dist/extraction-judge-training.d.ts +1 -1
  125. package/dist/extraction-judge.d.ts +1 -1
  126. package/dist/extraction.d.ts +1 -1
  127. package/dist/extraction.js +3 -3
  128. package/dist/fallback-llm.d.ts +1 -1
  129. package/dist/{first-start-migration-OOR57AYR.js → first-start-migration-2RQYDIZ7.js} +10 -8
  130. package/dist/first-start-migration-2RQYDIZ7.js.map +1 -0
  131. package/dist/graph-dashboard-diff.d.ts +1 -1
  132. package/dist/graph-dashboard-key.d.ts +1 -1
  133. package/dist/graph-dashboard-parser.d.ts +1 -1
  134. package/dist/graph-edge-reinforcement.d.ts +1 -1
  135. package/dist/graph-snapshot.d.ts +1 -1
  136. package/dist/graph.d.ts +1 -1
  137. package/dist/identity-continuity.d.ts +1 -1
  138. package/dist/importance.d.ts +1 -1
  139. package/dist/index.d.ts +12 -12
  140. package/dist/index.js +44 -44
  141. package/dist/intent.d.ts +1 -1
  142. package/dist/lcm/engine.d.ts +1 -1
  143. package/dist/lcm/index.d.ts +1 -1
  144. package/dist/lcm/tools.d.ts +1 -1
  145. package/dist/lifecycle.d.ts +1 -1
  146. package/dist/live-connectors-runner.d.ts +1 -1
  147. package/dist/local-llm.d.ts +1 -1
  148. package/dist/local-llm.js +2 -1
  149. package/dist/local-model-endpoint.d.ts +1 -1
  150. package/dist/maintenance/memory-governance.d.ts +1 -1
  151. package/dist/mcp-memory-inspector-app.d.ts +13 -11
  152. package/dist/memory-action-policy.d.ts +1 -1
  153. package/dist/memory-cache.d.ts +1 -1
  154. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  155. package/dist/memory-projection-store.d.ts +1 -1
  156. package/dist/memory-provenance.d.ts +1 -1
  157. package/dist/memory-worth-outcomes.d.ts +1 -1
  158. package/dist/models-json.d.ts +1 -1
  159. package/dist/namespaces/migrate.d.ts +2 -2
  160. package/dist/namespaces/migrate.js +6 -6
  161. package/dist/namespaces/principal.d.ts +1 -1
  162. package/dist/namespaces/principal.js +2 -1
  163. package/dist/namespaces/search.d.ts +1 -1
  164. package/dist/namespaces/search.js +4 -4
  165. package/dist/namespaces/storage.d.ts +2 -2
  166. package/dist/namespaces/storage.js +2 -1
  167. package/dist/native-knowledge.d.ts +1 -1
  168. package/dist/operator-toolkit.d.ts +1 -1
  169. package/dist/operator-toolkit.js +11 -11
  170. package/dist/orchestration/compression-guideline-coordinator.d.ts +1 -1
  171. package/dist/orchestration/compression-guideline-coordinator.js +2 -1
  172. package/dist/orchestration/maintenance.d.ts +2 -2
  173. package/dist/orchestration/maintenance.js +6 -5
  174. package/dist/{orchestrator-B4KjaOtY.d.ts → orchestrator-oF0cceBX.d.ts} +143 -18
  175. package/dist/orchestrator.d.ts +8 -6
  176. package/dist/orchestrator.js +21 -19
  177. package/dist/patterns-cli.d.ts +1 -1
  178. package/dist/policy-runtime.d.ts +1 -1
  179. package/dist/provenance.d.ts +1 -1
  180. package/dist/qmd-recall-cache.d.ts +1 -1
  181. package/dist/qmd.d.ts +1 -1
  182. package/dist/recall-disclosure-escalation.d.ts +1 -1
  183. package/dist/recall-explain-renderer.d.ts +1 -1
  184. package/dist/recall-planner-llm.d.ts +1 -1
  185. package/dist/recall-state.d.ts +1 -1
  186. package/dist/recall-tag-filter.d.ts +1 -1
  187. package/dist/recall-xray-cli.d.ts +1 -1
  188. package/dist/recall-xray-renderer.d.ts +1 -1
  189. package/dist/recall-xray.d.ts +1 -1
  190. package/dist/resolve-auth-token.d.ts +1 -1
  191. package/dist/retrieval-agents.d.ts +1 -1
  192. package/dist/retrieval-tiers.d.ts +1 -1
  193. package/dist/routing/engine.d.ts +1 -1
  194. package/dist/routing/store.d.ts +1 -1
  195. package/dist/schemas.d.ts +2 -2
  196. package/dist/search/embed-helper.d.ts +1 -1
  197. package/dist/search/embed-helper.js +2 -2
  198. package/dist/search/factory.d.ts +1 -1
  199. package/dist/search/factory.js +3 -3
  200. package/dist/search/index.d.ts +1 -1
  201. package/dist/search/index.js +3 -3
  202. package/dist/search/lancedb-backend.d.ts +1 -1
  203. package/dist/search/meilisearch-backend.d.ts +1 -1
  204. package/dist/search/noop-backend.d.ts +1 -1
  205. package/dist/search/orama-backend.d.ts +1 -1
  206. package/dist/search/port.d.ts +1 -1
  207. package/dist/search/remote-backend.d.ts +1 -1
  208. package/dist/{semantic-SLAa_prH.d.ts → semantic-DJR8_DMQ.d.ts} +1 -1
  209. package/dist/{semantic-consolidation-CstTvHPo.d.ts → semantic-consolidation-DKGbufYO.d.ts} +1 -1
  210. package/dist/semantic-consolidation.d.ts +2 -2
  211. package/dist/semantic-rule-verifier.d.ts +1 -1
  212. package/dist/session-observer-bands.d.ts +1 -1
  213. package/dist/session-observer-state.d.ts +1 -1
  214. package/dist/shared-context/manager.d.ts +3 -3
  215. package/dist/signal.d.ts +1 -1
  216. package/dist/storage.d.ts +1 -1
  217. package/dist/summarizer.d.ts +1 -1
  218. package/dist/summarizer.js +3 -2
  219. package/dist/summary-snapshot.d.ts +1 -1
  220. package/dist/temporal-supersession.d.ts +1 -1
  221. package/dist/temporal-validity.d.ts +1 -1
  222. package/dist/threading.d.ts +1 -1
  223. package/dist/tier-migration.d.ts +1 -1
  224. package/dist/tier-routing.d.ts +1 -1
  225. package/dist/{tier-stats-3LYQ3VV5.js → tier-stats-KPDIISG7.js} +8 -4
  226. package/dist/tier-stats-KPDIISG7.js.map +1 -0
  227. package/dist/topics.d.ts +1 -1
  228. package/dist/transcript.d.ts +1 -1
  229. package/dist/transfer/types.d.ts +30 -30
  230. package/dist/trust-score-stage.d.ts +1 -1
  231. package/dist/trust-score.d.ts +1 -1
  232. package/dist/{types-VkxElCHR.d.ts → types-C7UCxpuO.d.ts} +1 -1
  233. package/dist/types.d.ts +1 -1
  234. package/dist/utility-runtime.d.ts +1 -1
  235. package/package.json +2 -2
  236. package/src/access-service.ts +61 -56
  237. package/src/active-memory-bridge.ts +2 -1
  238. package/src/admin/admin-surfaces.ts +2 -1
  239. package/src/capabilities.test.ts +375 -0
  240. package/src/capabilities.ts +403 -0
  241. package/src/cli/creation-ledger-commands.ts +2 -2
  242. package/src/cli/research-status-commands.ts +13 -13
  243. package/src/cli.ts +29 -25
  244. package/src/compounding/engine.ts +4 -3
  245. package/src/contradiction/contradiction-scan.ts +4 -3
  246. package/src/embedding-fallback.ts +5 -2
  247. package/src/entity-retrieval.ts +3 -2
  248. package/src/explicit-capture.ts +2 -1
  249. package/src/extraction.ts +6 -3
  250. package/src/local-llm.ts +4 -3
  251. package/src/maintenance/first-start-migration.ts +8 -5
  252. package/src/maintenance/namespace-maintenance-fanout.ts +2 -1
  253. package/src/maintenance/namespace-planner.ts +4 -3
  254. package/src/maintenance/tier-stats.ts +4 -3
  255. package/src/namespaces/catalog.ts +2 -1
  256. package/src/namespaces/migrate.ts +2 -1
  257. package/src/namespaces/principal.ts +6 -5
  258. package/src/namespaces/scope-profiles.ts +2 -1
  259. package/src/namespaces/search.ts +2 -1
  260. package/src/namespaces/storage.ts +4 -3
  261. package/src/operator-toolkit.ts +27 -26
  262. package/src/orchestration/compression-guideline-coordinator.ts +7 -6
  263. package/src/orchestration/lifecycle-policy-coordinator.ts +504 -0
  264. package/src/orchestration/maintenance.ts +8 -4
  265. package/src/orchestration/semantic-consolidation-coordinator.ts +454 -0
  266. package/src/orchestration/tier-migration-coordinator.ts +5 -4
  267. package/src/orchestrator.ts +106 -800
  268. package/src/scopes/scope-plan.ts +3 -2
  269. package/src/search/embed-helper.ts +5 -2
  270. package/src/search/factory.ts +9 -6
  271. package/src/summarizer.ts +3 -2
  272. package/dist/chunk-24D66MMN.js.map +0 -1
  273. package/dist/chunk-646B5ERJ.js.map +0 -1
  274. package/dist/chunk-6TUWSUUD.js.map +0 -1
  275. package/dist/chunk-CGPHMNL4.js.map +0 -1
  276. package/dist/chunk-CX77GNMB.js.map +0 -1
  277. package/dist/chunk-DKT3X5C3.js.map +0 -1
  278. package/dist/chunk-ESF7TRYJ.js.map +0 -1
  279. package/dist/chunk-FFUCCKPN.js.map +0 -1
  280. package/dist/chunk-GGL34GCW.js.map +0 -1
  281. package/dist/chunk-H3MB3F62.js.map +0 -1
  282. package/dist/chunk-HHNSLPX7.js.map +0 -1
  283. package/dist/chunk-J6BH2OBA.js.map +0 -1
  284. package/dist/chunk-KQYGNGON.js.map +0 -1
  285. package/dist/chunk-KSJCXXOU.js.map +0 -1
  286. package/dist/chunk-LUCARK4W.js.map +0 -1
  287. package/dist/chunk-NIZQH6AU.js.map +0 -1
  288. package/dist/chunk-OTQE66IX.js.map +0 -1
  289. package/dist/chunk-OUITHS6V.js.map +0 -1
  290. package/dist/chunk-P3VJCTVE.js.map +0 -1
  291. package/dist/chunk-PLBIPT6I.js.map +0 -1
  292. package/dist/chunk-PMAQRUN4.js.map +0 -1
  293. package/dist/chunk-SYX73XD7.js.map +0 -1
  294. package/dist/chunk-UZYLX7M6.js.map +0 -1
  295. package/dist/chunk-ZQUAVZNG.js.map +0 -1
  296. package/dist/chunk-ZVHRSR2R.js.map +0 -1
  297. package/dist/first-start-migration-OOR57AYR.js.map +0 -1
  298. package/dist/tier-stats-3LYQ3VV5.js.map +0 -1
  299. /package/dist/{chunk-QZHF4BWN.js.map → chunk-AAIHDIMD.js.map} +0 -0
  300. /package/dist/{chunk-FYWUNVFZ.js.map → chunk-E4LYJ7PY.js.map} +0 -0
  301. /package/dist/{chunk-NOU77OHX.js.map → chunk-P6VLG7KE.js.map} +0 -0
  302. /package/dist/{chunk-O4ZIBPIW.js.map → chunk-QNTLWH3T.js.map} +0 -0
  303. /package/dist/{chunk-HJWQJUKQ.js.map → chunk-VOEVVIP3.js.map} +0 -0
  304. /package/dist/{contradiction-scan-HWGEOUDS.js.map → contradiction-scan-2B4AE4TI.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- import { P as PluginConfig } from './types-VkxElCHR.js';
2
- import { O as Orchestrator } from './orchestrator-B4KjaOtY.js';
1
+ import { P as PluginConfig } from './types-C7UCxpuO.js';
2
+ import { O as Orchestrator } from './orchestrator-oF0cceBX.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
5
5
  import './briefing.js';
@@ -23,15 +23,23 @@ import './session-integrity.js';
23
23
  import './summarizer.js';
24
24
  import './orchestration/maintenance.js';
25
25
  import './namespaces/search.js';
26
- import './catalog-DM1nk7cM.js';
26
+ import './catalog-BVhDEUhT.js';
27
27
  import './recall-state.js';
28
28
  import './compounding/engine.js';
29
29
  import './shared-context/manager.js';
30
30
  import 'zod';
31
+ import './capabilities.js';
31
32
  import './utility-runtime.js';
32
33
  import './tier-routing.js';
33
34
  import './lifecycle.js';
34
35
  import './orchestration/compression-guideline-coordinator.js';
36
+ import './semantic-consolidation-DKGbufYO.js';
37
+ import './connectors/codex-materialize.js';
38
+ import './logger.js';
39
+ import './embedding-fallback.js';
40
+ import './extraction.js';
41
+ import './schemas.js';
42
+ import './profiling.js';
35
43
  import './live-connectors-runner.js';
36
44
  import './framework-CNDn2164.js';
37
45
  import './relevance.js';
@@ -40,9 +48,7 @@ import './recall-xray.js';
40
48
  import './memory-provenance.js';
41
49
  import './user-model.js';
42
50
  import './session-observer-state.js';
43
- import './embedding-fallback.js';
44
- import './semantic-SLAa_prH.js';
45
- import './capabilities.js';
51
+ import './semantic-DJR8_DMQ.js';
46
52
  import './replay/types.js';
47
53
  import './extraction-judge.js';
48
54
  import './lcm/engine.js';
@@ -50,15 +56,11 @@ import './lcm/archive.js';
50
56
  import './lcm/summarizer.js';
51
57
  import './lcm/dag.js';
52
58
  import './lcm/queue.js';
53
- import './semantic-consolidation-CstTvHPo.js';
54
- import './connectors/codex-materialize.js';
55
- import './logger.js';
56
59
  import './conversation-index/backend.js';
57
60
  import './conversation-index/chunker.js';
58
61
  import './faiss-adapter-BHecI1fF.js';
59
62
  import './runtime/child-process.js';
60
63
  import './policy-runtime.js';
61
- import './profiling.js';
62
64
 
63
65
  type BootstrapResult = {
64
66
  sessionsScanned: number;
@@ -1,5 +1,5 @@
1
1
  import { StorageManager } from './storage.js';
2
- import { n as BriefingSections, o as BriefingFollowup, p as BriefingFocus, C as CalendarSource, q as CalendarEvent, g as MemoryFile, r as BriefingActiveThread, s as BriefingResult, E as EntityFile, t as BriefingRecentEntity } from './types-VkxElCHR.js';
2
+ import { n as BriefingSections, o as BriefingFollowup, p as BriefingFocus, C as CalendarSource, q as CalendarEvent, g as MemoryFile, r as BriefingActiveThread, s as BriefingResult, E as EntityFile, t as BriefingRecentEntity } from './types-C7UCxpuO.js';
3
3
  import './page-versioning.js';
4
4
  import './consolidation-operator.js';
5
5
  import './memory-projection-store.js';
@@ -1,4 +1,4 @@
1
- import { z as BufferSurpriseEvent } from './types-VkxElCHR.js';
1
+ import { K as BufferSurpriseEvent } from './types-C7UCxpuO.js';
2
2
  import './types-gb_SNtjR.js';
3
3
  import './message-parts/index.js';
4
4
 
package/dist/buffer.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { StorageManager } from './storage.js';
2
- import { P as PluginConfig, u as BufferTurn } from './types-VkxElCHR.js';
2
+ import { P as PluginConfig, u as BufferTurn } from './types-C7UCxpuO.js';
3
3
  import './page-versioning.js';
4
4
  import './consolidation-operator.js';
5
5
  import './memory-projection-store.js';
@@ -1,5 +1,5 @@
1
1
  import { FallbackLlmClient } from './fallback-llm.js';
2
- import { G as GatewayConfig, j as AgentPersonaModelConfig } from './types-VkxElCHR.js';
2
+ import { G as GatewayConfig, j as AgentPersonaModelConfig } from './types-C7UCxpuO.js';
3
3
  import './resolve-provider-secret.js';
4
4
  import './types-gb_SNtjR.js';
5
5
  import './message-parts/index.js';
@@ -1,4 +1,4 @@
1
- import { P as PluginConfig } from './types-VkxElCHR.js';
1
+ import { P as PluginConfig } from './types-C7UCxpuO.js';
2
2
  import './types-gb_SNtjR.js';
3
3
  import './message-parts/index.js';
4
4
 
@@ -220,5 +220,199 @@ type CreationMemoryConfigProjection = Pick<PluginConfig, "creationMemoryEnabled"
220
220
  * recall.
221
221
  */
222
222
  declare function resolveCreationMemoryCapabilities(config: CreationMemoryConfigProjection): CreationMemoryCapabilitySet;
223
+ /**
224
+ * Frozen projection of namespace feature gates (issue #1523 batch 5).
225
+ *
226
+ * Every field is `readonly boolean`. Composition lives ONLY in
227
+ * {@link resolveNamespaceCapabilities}.
228
+ */
229
+ interface NamespaceCapabilitySet {
230
+ /** `namespacesEnabled` — multi-namespace system master switch. */
231
+ readonly namespaces: boolean;
232
+ }
233
+ /**
234
+ * Config projection consumed by {@link resolveNamespaceCapabilities}.
235
+ */
236
+ type NamespaceConfigProjection = Pick<PluginConfig, "namespacesEnabled">;
237
+ /**
238
+ * Resolve the {@link NamespaceCapabilitySet} from parsed config.
239
+ *
240
+ * Call this ONCE at operation entry and thread the result down. The flag is a
241
+ * non-optional boolean so the projection is a pure pass-through.
242
+ */
243
+ declare function resolveNamespaceCapabilities(config: NamespaceConfigProjection): NamespaceCapabilitySet;
244
+ /**
245
+ * Frozen projection of QMD feature gates (issue #1523 batch 6).
246
+ *
247
+ * Every field is `readonly boolean`. Composition lives ONLY in
248
+ * {@link resolveQmdCapabilities}.
249
+ */
250
+ interface QmdCapabilitySet {
251
+ /** `qmdEnabled` — QMD tiered-memory master switch. */
252
+ readonly qmd: boolean;
253
+ /** `qmdTierMigrationEnabled` — automatic tier promotion/demotion. */
254
+ readonly qmdTierMigration: boolean;
255
+ /** `qmdTierAutoBackfillEnabled` — backfill stale tier entries. */
256
+ readonly qmdTierAutoBackfill: boolean;
257
+ /** `qmdAutoEmbedEnabled` — auto-embed documents on write. */
258
+ readonly qmdAutoEmbed: boolean;
259
+ /** `qmdMaintenanceEnabled` — QMD maintenance pass runner. */
260
+ readonly qmdMaintenance: boolean;
261
+ /** `qmdColdTierEnabled` — cold-tier storage. */
262
+ readonly qmdColdTier: boolean;
263
+ /** `qmdDaemonEnabled` — background QMD daemon. */
264
+ readonly qmdDaemon: boolean;
265
+ /** `qmdTierParityGraphEnabled` — tier parity graph. */
266
+ readonly qmdTierParityGraph: boolean;
267
+ /** `qmdQueryRerankEnabled` — QMD query reranking. */
268
+ readonly qmdQueryRerank: boolean;
269
+ /** `qmdIntentHintsEnabled` — QMD intent hint extraction. */
270
+ readonly qmdIntentHints: boolean;
271
+ /** `qmdExplainEnabled` — QMD explain output. */
272
+ readonly qmdExplain: boolean;
273
+ /** `qmdAutoUpgradeEnabled` — QMD auto-upgrade tiers. */
274
+ readonly qmdAutoUpgrade: boolean;
275
+ }
276
+ /**
277
+ * Config projection consumed by {@link resolveQmdCapabilities}.
278
+ */
279
+ type QmdConfigProjection = Pick<PluginConfig, "qmdEnabled" | "qmdTierMigrationEnabled" | "qmdTierAutoBackfillEnabled" | "qmdAutoEmbedEnabled" | "qmdMaintenanceEnabled" | "qmdColdTierEnabled" | "qmdDaemonEnabled" | "qmdTierParityGraphEnabled" | "qmdQueryRerankEnabled" | "qmdIntentHintsEnabled" | "qmdExplainEnabled" | "qmdAutoUpgradeEnabled">;
280
+ /**
281
+ * Resolve the {@link QmdCapabilitySet} from parsed config.
282
+ *
283
+ * Call this ONCE at operation entry and thread the result down. Eleven flags
284
+ * are non-optional booleans (pure pass-through); `qmdColdTierEnabled` is
285
+ * optional and coerced with `=== true` (matching the pre-migration call sites).
286
+ */
287
+ declare function resolveQmdCapabilities(config: QmdConfigProjection): QmdCapabilitySet;
288
+ /**
289
+ * Frozen projection of identity-continuity feature gates (issue #1523 batch 6).
290
+ */
291
+ interface IdentityContinuityCapabilitySet {
292
+ /** `identityContinuityEnabled` — identity-continuity master switch. */
293
+ readonly identityContinuity: boolean;
294
+ }
295
+ /**
296
+ * Config projection consumed by {@link resolveIdentityContinuityCapabilities}.
297
+ */
298
+ type IdentityContinuityConfigProjection = Pick<PluginConfig, "identityContinuityEnabled">;
299
+ /**
300
+ * Resolve the {@link IdentityContinuityCapabilitySet} from parsed config.
301
+ */
302
+ declare function resolveIdentityContinuityCapabilities(config: IdentityContinuityConfigProjection): IdentityContinuityCapabilitySet;
303
+ /**
304
+ * Frozen projection of local-LLM feature gates (issue #1523 batch 6).
305
+ */
306
+ interface LocalLlmCapabilitySet {
307
+ /** `localLlmEnabled` — local (on-device) LLM master switch. */
308
+ readonly localLlm: boolean;
309
+ }
310
+ /**
311
+ * Config projection consumed by {@link resolveLocalLlmCapabilities}.
312
+ */
313
+ type LocalLlmConfigProjection = Pick<PluginConfig, "localLlmEnabled">;
314
+ /**
315
+ * Resolve the {@link LocalLlmCapabilitySet} from parsed config.
316
+ */
317
+ declare function resolveLocalLlmCapabilities(config: LocalLlmConfigProjection): LocalLlmCapabilitySet;
318
+ /**
319
+ * Frozen projection of security/trust-zone feature gates (issue #1523 batch 7).
320
+ */
321
+ interface SecurityCapabilitySet {
322
+ /** `trustZonesEnabled` — master switch for trust-zone enforcement. */
323
+ readonly trustZones: boolean;
324
+ /** `quarantinePromotionEnabled` — promote quarantined memories after review. */
325
+ readonly quarantinePromotion: boolean;
326
+ /** `memoryPoisoningDefenseEnabled` — detect and defend against memory poisoning. */
327
+ readonly memoryPoisoningDefense: boolean;
328
+ /** `trustZoneRecallEnabled` — restrict recall to trusted zones. */
329
+ readonly trustZoneRecall: boolean;
330
+ }
331
+ /**
332
+ * Config projection consumed by {@link resolveSecurityCapabilities}.
333
+ */
334
+ type SecurityConfigProjection = Pick<PluginConfig, "trustZonesEnabled" | "quarantinePromotionEnabled" | "memoryPoisoningDefenseEnabled" | "trustZoneRecallEnabled">;
335
+ /**
336
+ * Resolve the {@link SecurityCapabilitySet} from parsed config.
337
+ */
338
+ declare function resolveSecurityCapabilities(config: SecurityConfigProjection): SecurityCapabilitySet;
339
+ /**
340
+ * Frozen projection of eval/benchmark feature gates (issue #1523 batch 7).
341
+ */
342
+ interface EvalCapabilitySet {
343
+ /** `evalHarnessEnabled` — master switch for the eval harness. */
344
+ readonly evalHarness: boolean;
345
+ /** `evalShadowModeEnabled` — run evaluations in shadow mode. */
346
+ readonly evalShadowMode: boolean;
347
+ /** `benchmarkBaselineSnapshotsEnabled` — manage baseline snapshots. */
348
+ readonly benchmarkBaselineSnapshots: boolean;
349
+ /** `benchmarkDeltaReporterEnabled` — report benchmark deltas. */
350
+ readonly benchmarkDeltaReporter: boolean;
351
+ /** `memoryRedTeamBenchEnabled` — red-team benchmarking of memory. */
352
+ readonly memoryRedTeamBench: boolean;
353
+ }
354
+ /**
355
+ * Config projection consumed by {@link resolveEvalCapabilities}.
356
+ */
357
+ type EvalConfigProjection = Pick<PluginConfig, "evalHarnessEnabled" | "evalShadowModeEnabled" | "benchmarkBaselineSnapshotsEnabled" | "benchmarkDeltaReporterEnabled" | "memoryRedTeamBenchEnabled">;
358
+ /**
359
+ * Resolve the {@link EvalCapabilitySet} from parsed config.
360
+ */
361
+ declare function resolveEvalCapabilities(config: EvalConfigProjection): EvalCapabilitySet;
362
+ /**
363
+ * Frozen projection of utility-learning feature gates (issue #1523 batch 7).
364
+ */
365
+ interface UtilityLearningCapabilitySet {
366
+ /** `memoryUtilityLearningEnabled` — learn memory utility weights from outcomes. */
367
+ readonly memoryUtilityLearning: boolean;
368
+ /** `promotionByOutcomeEnabled` — promote memories by outcome tracking. */
369
+ readonly promotionByOutcome: boolean;
370
+ }
371
+ /**
372
+ * Config projection consumed by {@link resolveUtilityLearningCapabilities}.
373
+ */
374
+ type UtilityLearningConfigProjection = Pick<PluginConfig, "memoryUtilityLearningEnabled" | "promotionByOutcomeEnabled">;
375
+ /**
376
+ * Resolve the {@link UtilityLearningCapabilitySet} from parsed config.
377
+ */
378
+ declare function resolveUtilityLearningCapabilities(config: UtilityLearningConfigProjection): UtilityLearningCapabilitySet;
379
+ /**
380
+ * Frozen projection of objective-state feature gates (issue #1523 batch 7).
381
+ */
382
+ interface ObjectiveStateCapabilitySet {
383
+ /** `objectiveStateMemoryEnabled` — store objective-state memories. */
384
+ readonly objectiveStateMemory: boolean;
385
+ /** `objectiveStateSnapshotWritesEnabled` — write objective-state snapshots. */
386
+ readonly objectiveStateSnapshotWrites: boolean;
387
+ /** `objectiveStateRecallEnabled` — recall objective-state memories. */
388
+ readonly objectiveStateRecall: boolean;
389
+ }
390
+ /**
391
+ * Config projection consumed by {@link resolveObjectiveStateCapabilities}.
392
+ */
393
+ type ObjectiveStateConfigProjection = Pick<PluginConfig, "objectiveStateMemoryEnabled" | "objectiveStateSnapshotWritesEnabled" | "objectiveStateRecallEnabled">;
394
+ /**
395
+ * Resolve the {@link ObjectiveStateCapabilitySet} from parsed config.
396
+ */
397
+ declare function resolveObjectiveStateCapabilities(config: ObjectiveStateConfigProjection): ObjectiveStateCapabilitySet;
398
+ /**
399
+ * Frozen projection of compression feature gates (issue #1523 batch 7).
400
+ */
401
+ interface CompressionCapabilitySet {
402
+ /** `compressionGuidelineLearningEnabled` — learn compression guidelines. */
403
+ readonly compressionGuidelineLearning: boolean;
404
+ /** `compressionGuidelineSemanticRefinementEnabled` — semantically refine guidelines. */
405
+ readonly compressionGuidelineSemanticRefinement: boolean;
406
+ /** `contextCompressionActionsEnabled` — apply context-compression actions. */
407
+ readonly contextCompressionActions: boolean;
408
+ }
409
+ /**
410
+ * Config projection consumed by {@link resolveCompressionCapabilities}.
411
+ */
412
+ type CompressionConfigProjection = Pick<PluginConfig, "compressionGuidelineLearningEnabled" | "compressionGuidelineSemanticRefinementEnabled" | "contextCompressionActionsEnabled">;
413
+ /**
414
+ * Resolve the {@link CompressionCapabilitySet} from parsed config.
415
+ */
416
+ declare function resolveCompressionCapabilities(config: CompressionConfigProjection): CompressionCapabilitySet;
223
417
 
224
- export { type AccessSetupCapabilitySet, type AccessSetupConfigProjection, type CapabilitySet, type CreationMemoryCapabilitySet, type CreationMemoryConfigProjection, type GraphConstructionCapabilitySet, type GraphConstructionConfigProjection, type IndexingCapabilitySet, type IndexingConfigProjection, type MemoryLifecycleCapabilitySet, type MemoryLifecycleConfigProjection, resolveAccessSetupCapabilities, resolveCapabilities, resolveCreationMemoryCapabilities, resolveGraphConstructionCapabilities, resolveIndexingCapabilities, resolveMemoryLifecycleCapabilities };
418
+ export { type AccessSetupCapabilitySet, type AccessSetupConfigProjection, type CapabilitySet, type CompressionCapabilitySet, type CompressionConfigProjection, type CreationMemoryCapabilitySet, type CreationMemoryConfigProjection, type EvalCapabilitySet, type EvalConfigProjection, type GraphConstructionCapabilitySet, type GraphConstructionConfigProjection, type IdentityContinuityCapabilitySet, type IdentityContinuityConfigProjection, type IndexingCapabilitySet, type IndexingConfigProjection, type LocalLlmCapabilitySet, type LocalLlmConfigProjection, type MemoryLifecycleCapabilitySet, type MemoryLifecycleConfigProjection, type NamespaceCapabilitySet, type NamespaceConfigProjection, type ObjectiveStateCapabilitySet, type ObjectiveStateConfigProjection, type QmdCapabilitySet, type QmdConfigProjection, type SecurityCapabilitySet, type SecurityConfigProjection, type UtilityLearningCapabilitySet, type UtilityLearningConfigProjection, resolveAccessSetupCapabilities, resolveCapabilities, resolveCompressionCapabilities, resolveCreationMemoryCapabilities, resolveEvalCapabilities, resolveGraphConstructionCapabilities, resolveIdentityContinuityCapabilities, resolveIndexingCapabilities, resolveLocalLlmCapabilities, resolveMemoryLifecycleCapabilities, resolveNamespaceCapabilities, resolveObjectiveStateCapabilities, resolveQmdCapabilities, resolveSecurityCapabilities, resolveUtilityLearningCapabilities };
@@ -1,18 +1,36 @@
1
1
  import {
2
2
  resolveAccessSetupCapabilities,
3
3
  resolveCapabilities,
4
+ resolveCompressionCapabilities,
4
5
  resolveCreationMemoryCapabilities,
6
+ resolveEvalCapabilities,
5
7
  resolveGraphConstructionCapabilities,
8
+ resolveIdentityContinuityCapabilities,
6
9
  resolveIndexingCapabilities,
7
- resolveMemoryLifecycleCapabilities
8
- } from "./chunk-ESF7TRYJ.js";
10
+ resolveLocalLlmCapabilities,
11
+ resolveMemoryLifecycleCapabilities,
12
+ resolveNamespaceCapabilities,
13
+ resolveObjectiveStateCapabilities,
14
+ resolveQmdCapabilities,
15
+ resolveSecurityCapabilities,
16
+ resolveUtilityLearningCapabilities
17
+ } from "./chunk-JWDE7OVJ.js";
9
18
  import "./chunk-PZ5AY32C.js";
10
19
  export {
11
20
  resolveAccessSetupCapabilities,
12
21
  resolveCapabilities,
22
+ resolveCompressionCapabilities,
13
23
  resolveCreationMemoryCapabilities,
24
+ resolveEvalCapabilities,
14
25
  resolveGraphConstructionCapabilities,
26
+ resolveIdentityContinuityCapabilities,
15
27
  resolveIndexingCapabilities,
16
- resolveMemoryLifecycleCapabilities
28
+ resolveLocalLlmCapabilities,
29
+ resolveMemoryLifecycleCapabilities,
30
+ resolveNamespaceCapabilities,
31
+ resolveObjectiveStateCapabilities,
32
+ resolveQmdCapabilities,
33
+ resolveSecurityCapabilities,
34
+ resolveUtilityLearningCapabilities
17
35
  };
18
36
  //# sourceMappingURL=capabilities.js.map
@@ -1,4 +1,4 @@
1
- import { P as PluginConfig } from './types-VkxElCHR.js';
1
+ import { P as PluginConfig } from './types-C7UCxpuO.js';
2
2
 
3
3
  /**
4
4
  * Rebuildable namespace catalog (issue #1499).
@@ -427,4 +427,4 @@ declare class NamespaceCatalog {
427
427
  private rewriteUnchained;
428
428
  }
429
429
 
430
- export { NamespaceCatalog as N, type NamespaceKind as a, type NamespaceRecord as b, type NamespaceCatalogFilter as c, type NamespaceCatalogRebuildResult as d, type NamespaceCatalogSkippedRoot as e, type NamespaceDiscoverySource as f, type NamespaceTouchMetadata as g };
430
+ export { NamespaceCatalog as N, type NamespaceRecord as a, type NamespaceKind as b, type NamespaceCatalogFilter as c, type NamespaceCatalogRebuildResult as d, type NamespaceCatalogSkippedRoot as e, type NamespaceDiscoverySource as f, type NamespaceTouchMetadata as g };
@@ -2,7 +2,7 @@ import { CausalChainIndex } from './causal-chain.js';
2
2
  import { ConsolidatedPreference } from './compounding/preference-consolidator.js';
3
3
  import './causal-trajectory.js';
4
4
  import './objective-state.js';
5
- import './types-VkxElCHR.js';
5
+ import './types-C7UCxpuO.js';
6
6
  import './types-gb_SNtjR.js';
7
7
  import './message-parts/index.js';
8
8
  import './lcm/engine.js';
@@ -1,4 +1,4 @@
1
- import { G as GatewayConfig, j as AgentPersonaModelConfig, P as PluginConfig, g as MemoryFile } from './types-VkxElCHR.js';
1
+ import { G as GatewayConfig, j as AgentPersonaModelConfig, P as PluginConfig, g as MemoryFile } from './types-C7UCxpuO.js';
2
2
  import { RolloutSummaryInput, MaterializeResult } from './connectors/codex-materialize.js';
3
3
  import './types-gb_SNtjR.js';
4
4
  import './message-parts/index.js';
@@ -1,7 +1,7 @@
1
1
  import { GraphEdge } from './graph.js';
2
2
  import { CausalTrajectoryRecord } from './causal-trajectory.js';
3
3
  import './capabilities.js';
4
- import './types-VkxElCHR.js';
4
+ import './types-C7UCxpuO.js';
5
5
  import './types-gb_SNtjR.js';
6
6
  import './message-parts/index.js';
7
7
  import './objective-state.js';
@@ -2,7 +2,10 @@ import {
2
2
  canReadNamespace,
3
3
  defaultNamespaceForPrincipal,
4
4
  resolvePrincipal
5
- } from "./chunk-UZYLX7M6.js";
5
+ } from "./chunk-OYHYBHHI.js";
6
+ import {
7
+ resolveNamespaceCapabilities
8
+ } from "./chunk-JWDE7OVJ.js";
6
9
  import {
7
10
  collapseWhitespace,
8
11
  truncateCodePointSafe
@@ -49,7 +52,7 @@ function resolveActiveMemoryNamespace(orchestrator, sessionKey, requestedNamespa
49
52
  return "default";
50
53
  }
51
54
  const principal = typeof orchestrator.resolvePrincipal === "function" ? orchestrator.resolvePrincipal(sessionKey) : resolvePrincipal(sessionKey, config);
52
- if (config.namespacesEnabled && !principal) {
55
+ if (resolveNamespaceCapabilities(config).namespaces && !principal) {
53
56
  throw new Error("authentication required: namespaces are enabled and no principal was supplied");
54
57
  }
55
58
  if (explicitNamespace) {
@@ -132,4 +135,4 @@ export {
132
135
  recallForActiveMemory,
133
136
  getMemoryForActiveMemory
134
137
  };
135
- //# sourceMappingURL=chunk-CX77GNMB.js.map
138
+ //# sourceMappingURL=chunk-2T2N7ISV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/active-memory-bridge.ts"],"sourcesContent":["import { resolveNamespaceCapabilities } from \"./capabilities.js\";\nimport { canReadNamespace, defaultNamespaceForPrincipal, resolvePrincipal } from \"./namespaces/principal.js\";\nimport type { MemoryFile, PluginConfig } from \"./types.js\";\nimport { collapseWhitespace, truncateCodePointSafe } from \"./whitespace.js\";\nimport { isHandleToken } from \"./recall-handles.js\";\n\nexport interface ActiveMemoryMetadata {\n type?: \"fact\" | \"preference\";\n topic?: string;\n updatedAt?: string;\n sourceUri?: string;\n}\n\nexport interface ActiveMemorySearchResult {\n id: string;\n score: number;\n text: string;\n metadata?: ActiveMemoryMetadata;\n}\n\nexport interface ActiveMemorySearchOutput {\n results: ActiveMemorySearchResult[];\n truncated: boolean;\n}\n\nexport interface ActiveMemoryGetOutput {\n id?: string;\n text?: string;\n metadata?: ActiveMemoryMetadata;\n error?: \"not_found\";\n}\n\nexport interface ActiveMemoryRecallParams {\n query: string;\n limit?: number;\n sessionKey: string;\n filters?: Record<string, unknown>;\n snippetMaxChars?: number;\n}\n\ninterface ActiveMemoryScopedOrchestrator {\n config?: PluginConfig;\n resolvePrincipal?: (sessionKey?: string) => string | undefined;\n resolveSelfNamespace?: (sessionKey?: string) => string;\n}\n\ntype ActiveMemorySearchCandidate = {\n id?: string;\n score?: number;\n snippet?: string;\n text?: string;\n path?: string;\n metadata?: Record<string, unknown>;\n};\n\nfunction isArtifactPath(value: string | undefined): boolean {\n return typeof value === \"string\" && /(?:^|[\\\\/])artifacts(?:[\\\\/]|$)/i.test(value);\n}\n\nfunction clampLimit(value: number | undefined): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) return 8;\n return Math.max(1, Math.min(50, Math.floor(value)));\n}\n\nfunction truncateSnippet(value: string, maxChars: number): string {\n const compact = collapseWhitespace(value);\n return truncateCodePointSafe(compact, maxChars);\n}\n\nfunction pickMetadata(value: Record<string, unknown> | undefined): ActiveMemoryMetadata | undefined {\n if (!value) return undefined;\n const metadata: ActiveMemoryMetadata = {};\n if (typeof value.type === \"string\") metadata.type = value.type as ActiveMemoryMetadata[\"type\"];\n if (typeof value.topic === \"string\") metadata.topic = value.topic;\n if (typeof value.updatedAt === \"string\") metadata.updatedAt = value.updatedAt;\n if (typeof value.sourceUri === \"string\") metadata.sourceUri = value.sourceUri;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\nfunction resolveActiveMemoryNamespace(\n orchestrator: ActiveMemoryScopedOrchestrator,\n sessionKey: string | undefined,\n requestedNamespace: string | undefined,\n): string {\n const explicitNamespace =\n typeof requestedNamespace === \"string\" && requestedNamespace.trim().length > 0\n ? requestedNamespace.trim()\n : undefined;\n const config = orchestrator.config;\n\n if (config?.namespacesEnabled === false) {\n if (typeof orchestrator.resolveSelfNamespace === \"function\") {\n return orchestrator.resolveSelfNamespace(sessionKey);\n }\n return \"default\";\n }\n\n if (!config) {\n if (explicitNamespace) return explicitNamespace;\n if (typeof orchestrator.resolveSelfNamespace === \"function\") {\n return orchestrator.resolveSelfNamespace(sessionKey);\n }\n return \"default\";\n }\n\n const principal =\n typeof orchestrator.resolvePrincipal === \"function\"\n ? orchestrator.resolvePrincipal(sessionKey)\n : resolvePrincipal(sessionKey, config);\n if (resolveNamespaceCapabilities(config).namespaces && !principal) {\n throw new Error(\"authentication required: namespaces are enabled and no principal was supplied\");\n }\n if (explicitNamespace) {\n if (!canReadNamespace(principal, explicitNamespace, config)) {\n throw new Error(`namespace ${explicitNamespace} is not readable for principal ${principal}`);\n }\n return explicitNamespace;\n }\n if (typeof orchestrator.resolveSelfNamespace === \"function\") {\n return orchestrator.resolveSelfNamespace(sessionKey);\n }\n return defaultNamespaceForPrincipal(principal, config);\n}\n\nexport async function recallForActiveMemory(\n orchestrator: {\n config?: PluginConfig;\n resolvePrincipal?: (sessionKey?: string) => string | undefined;\n resolveSelfNamespace?: (sessionKey?: string) => string;\n searchAcrossNamespaces: (params: {\n query: string;\n maxResults?: number;\n namespaces?: string[];\n mode?: string;\n }) => Promise<ActiveMemorySearchCandidate[]>;\n },\n params: ActiveMemoryRecallParams,\n): Promise<ActiveMemorySearchOutput> {\n const limit = clampLimit(params.limit);\n const requestedResults = Math.min(200, limit + 20);\n const snippetMaxChars =\n typeof params.snippetMaxChars === \"number\" && Number.isFinite(params.snippetMaxChars)\n ? Math.max(1, Math.min(4000, Math.floor(params.snippetMaxChars)))\n : 600;\n const namespace = resolveActiveMemoryNamespace(\n orchestrator,\n params.sessionKey,\n typeof params.filters?.namespace === \"string\" ? params.filters.namespace : undefined,\n );\n\n const raw = await orchestrator.searchAcrossNamespaces({\n query: params.query,\n maxResults: requestedResults,\n namespaces: [namespace],\n mode: \"search\",\n });\n const visible = raw.filter((candidate) => !isArtifactPath(candidate.path));\n\n return {\n results: visible.slice(0, limit).map((candidate, index) => ({\n id: candidate.id ?? candidate.path ?? `memory-${index + 1}`,\n score: typeof candidate.score === \"number\" ? candidate.score : 0,\n text: truncateSnippet(candidate.snippet ?? candidate.text ?? \"\", snippetMaxChars),\n metadata: pickMetadata(candidate.metadata),\n })),\n truncated: visible.length > limit,\n };\n}\n\nfunction buildActiveMemoryMetadataFromMemory(memory: MemoryFile): ActiveMemoryMetadata | undefined {\n const metadata: ActiveMemoryMetadata = {};\n if (typeof memory.frontmatter.category === \"string\") {\n const category = memory.frontmatter.category;\n if (category === \"fact\" || category === \"preference\") {\n metadata.type = category;\n }\n }\n if (Array.isArray(memory.frontmatter.tags) && memory.frontmatter.tags.length > 0) {\n metadata.topic = memory.frontmatter.tags[0];\n }\n if (typeof memory.frontmatter.updated === \"string\") metadata.updatedAt = memory.frontmatter.updated;\n if (typeof memory.frontmatter.source === \"string\") metadata.sourceUri = memory.frontmatter.source;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\nexport async function getMemoryForActiveMemory(\n orchestrator: {\n config?: PluginConfig;\n resolvePrincipal?: (sessionKey?: string) => string;\n resolveSelfNamespace?: (sessionKey?: string) => string;\n getStorageForNamespace?: (namespace: string) => Promise<{\n getMemoryById?: (id: string) => Promise<MemoryFile | null>;\n }>;\n storage?: {\n getMemoryById?: (id: string) => Promise<MemoryFile | null>;\n };\n /** Issue #1582 — resolves a `[m:xxxx]` handle to a memory id (orchestrator). */\n resolveMemoryIdOrHandle?: (ref: string, sessionKey?: string) => string;\n },\n id: string,\n options: {\n namespace?: string;\n sessionKey?: string;\n } = {},\n): Promise<ActiveMemoryGetOutput> {\n const namespace = resolveActiveMemoryNamespace(\n orchestrator,\n options.sessionKey,\n options.namespace,\n );\n\n const storage =\n typeof orchestrator.getStorageForNamespace === \"function\"\n ? await orchestrator.getStorageForNamespace(namespace)\n : orchestrator.storage;\n\n // Issue #1582 — resolve a `[m:xxxx]` handle to its memory id against the\n // caller's session before the storage read, so OpenClaw active-memory agents\n // can cite injected handles through the SAME shared path as memory_get /\n // correction (cursor review). Raw ids pass through unchanged.\n //\n // A handle that misses, collides, or has no session key becomes not_found —\n // the SAME behavior a bad raw id yields below — instead of throwing, so an\n // active-memory caller gets a uniform not-found contract (cursor review).\n let resolvedId = id;\n if (isHandleToken(id) && typeof orchestrator.resolveMemoryIdOrHandle === \"function\") {\n try {\n resolvedId = orchestrator.resolveMemoryIdOrHandle(id, options.sessionKey);\n } catch {\n return { error: \"not_found\" };\n }\n }\n const memory = await storage?.getMemoryById?.(resolvedId);\n if (!memory) return { error: \"not_found\" };\n return {\n id: resolvedId,\n text: collapseWhitespace(memory.content),\n metadata: buildActiveMemoryMetadataFromMemory(memory),\n };\n}\n"],"mappings":"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","names":[]}
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-SANZHXY2.js";
16
16
  import {
17
17
  EmbedHelper
18
- } from "./chunk-H3MB3F62.js";
18
+ } from "./chunk-AB2E5DCN.js";
19
19
  import {
20
20
  createConversationIndexBackend
21
21
  } from "./chunk-DCWIQFNA.js";
@@ -26,8 +26,9 @@ import {
26
26
  QmdClient
27
27
  } from "./chunk-K43PI6DQ.js";
28
28
  import {
29
- resolveIndexingCapabilities
30
- } from "./chunk-ESF7TRYJ.js";
29
+ resolveIndexingCapabilities,
30
+ resolveQmdCapabilities
31
+ } from "./chunk-JWDE7OVJ.js";
31
32
  import {
32
33
  log
33
34
  } from "./chunk-NU3CSQ4H.js";
@@ -96,14 +97,14 @@ function qmdOptions(config) {
96
97
  updateTimeoutMs: config.qmdUpdateTimeoutMs,
97
98
  updateMinIntervalMs: config.qmdUpdateMinIntervalMs,
98
99
  qmdPath: config.qmdPath,
99
- daemonUrl: config.qmdDaemonEnabled ? config.qmdDaemonUrl : void 0,
100
+ daemonUrl: resolveQmdCapabilities(config).qmdDaemon ? config.qmdDaemonUrl : void 0,
100
101
  daemonRecheckIntervalMs: config.qmdDaemonRecheckIntervalMs,
101
102
  qmdSupportedVersion: config.qmdSupportedVersion,
102
- qmdAutoUpgradeEnabled: config.qmdAutoUpgradeEnabled,
103
+ qmdAutoUpgradeEnabled: resolveQmdCapabilities(config).qmdAutoUpgrade,
103
104
  qmdAutoUpgradeCheckIntervalMs: config.qmdAutoUpgradeCheckIntervalMs,
104
105
  qmdChunkStrategy: config.qmdChunkStrategy,
105
106
  qmdCandidateLimit: config.qmdCandidateLimit,
106
- qmdQueryRerankEnabled: config.qmdQueryRerankEnabled,
107
+ qmdQueryRerankEnabled: resolveQmdCapabilities(config).qmdQueryRerank,
107
108
  qmdIndexName: config.qmdIndexName,
108
109
  qmdForceCpu: config.qmdForceCpu,
109
110
  qmdGpuBackend: config.qmdGpuBackend,
@@ -119,7 +120,7 @@ function qmdOptions(config) {
119
120
  function createSearchBackend(config) {
120
121
  const nonQmd = resolveNonQmdBackend(config);
121
122
  if (nonQmd) return nonQmd;
122
- if (!config.qmdEnabled) {
123
+ if (!resolveQmdCapabilities(config).qmd) {
123
124
  return new NoopSearchBackend();
124
125
  }
125
126
  return new QmdClient(config.qmdCollection, config.qmdMaxResults, qmdOptions(config));
@@ -130,7 +131,7 @@ function createConversationSearchBackend(config) {
130
131
  }
131
132
  const backend = config.searchBackend ?? "qmd";
132
133
  if (backend === "noop") return void 0;
133
- if (!config.qmdEnabled) return void 0;
134
+ if (!resolveQmdCapabilities(config).qmd) return void 0;
134
135
  return new QmdClient(
135
136
  config.conversationIndexQmdCollection,
136
137
  Math.max(6, config.conversationRecallTopK),
@@ -173,4 +174,4 @@ export {
173
174
  createConversationSearchBackend,
174
175
  createConversationIndexRuntime
175
176
  };
176
- //# sourceMappingURL=chunk-HHNSLPX7.js.map
177
+ //# sourceMappingURL=chunk-5BOQNB2K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/search/factory.ts"],"sourcesContent":["import type { PluginConfig } from \"../types.js\";\nimport type { SearchBackend } from \"./port.js\";\nimport path from \"node:path\";\nimport { NoopSearchBackend } from \"./noop-backend.js\";\nimport { RemoteSearchBackend } from \"./remote-backend.js\";\nimport { LanceDbBackend } from \"./lancedb-backend.js\";\nimport { MeilisearchBackend } from \"./meilisearch-backend.js\";\nimport { OramaBackend } from \"./orama-backend.js\";\nimport { EmbedHelper } from \"./embed-helper.js\";\nimport { QmdClient, type QmdClientOptions } from \"../qmd.js\";\nimport { log } from \"../logger.js\";\nimport { FaissConversationIndexAdapter } from \"../conversation-index/faiss-adapter.js\";\nimport {\n resolveIndexingCapabilities,\n resolveQmdCapabilities,\n} from \"../capabilities.js\";\nimport {\n createConversationIndexBackend,\n type ConversationIndexBackend,\n type ConversationQmdRuntime,\n} from \"../conversation-index/backend.js\";\n\n/**\n * Resolve non-QMD backends from config.\n * Returns a SearchBackend for \"noop\" or \"remote\", or undefined to signal \"use QMD\".\n */\nfunction resolveNonQmdBackend(config: PluginConfig): SearchBackend | undefined {\n const backend = config.searchBackend ?? \"qmd\";\n const collection = config.qmdCollection;\n\n if (backend === \"noop\") {\n return new NoopSearchBackend();\n }\n\n if (backend === \"remote\") {\n const baseUrl = config.remoteSearchBaseUrl || \"http://localhost:8181\";\n if (!config.remoteSearchBaseUrl) {\n log.warn(\"searchBackend is 'remote' but remoteSearchBaseUrl is not configured; using default http://localhost:8181\");\n }\n return new RemoteSearchBackend({\n baseUrl,\n apiKey: config.remoteSearchApiKey,\n timeoutMs: config.remoteSearchTimeoutMs,\n });\n }\n\n if (backend === \"lancedb\") {\n const embedHelper = new EmbedHelper(config, {\n hostEmbeddingExpectedDimension: config.lanceEmbeddingDimension,\n });\n return new LanceDbBackend({\n dbPath: config.lanceDbPath!,\n collection,\n embedHelper,\n memoryDir: config.memoryDir,\n embeddingDimension: config.lanceEmbeddingDimension!,\n });\n }\n\n if (backend === \"meilisearch\") {\n return new MeilisearchBackend({\n host: config.meilisearchHost!,\n apiKey: config.meilisearchApiKey,\n collection,\n timeoutMs: config.meilisearchTimeoutMs,\n autoIndex: config.meilisearchAutoIndex,\n memoryDir: config.memoryDir,\n });\n }\n\n if (backend === \"orama\") {\n const embedHelper = new EmbedHelper(config, {\n hostEmbeddingExpectedDimension: config.oramaEmbeddingDimension,\n });\n return new OramaBackend({\n dbPath: config.oramaDbPath!,\n collection,\n embedHelper,\n memoryDir: config.memoryDir,\n embeddingDimension: config.oramaEmbeddingDimension!,\n });\n }\n\n return undefined;\n}\n\n/** Shared QMD options derived from plugin config. */\nfunction qmdOptions(config: PluginConfig): QmdClientOptions {\n return {\n slowLog: {\n enabled: config.slowLogEnabled,\n thresholdMs: config.slowLogThresholdMs,\n },\n updateTimeoutMs: config.qmdUpdateTimeoutMs,\n updateMinIntervalMs: config.qmdUpdateMinIntervalMs,\n qmdPath: config.qmdPath,\n daemonUrl: resolveQmdCapabilities(config).qmdDaemon ? config.qmdDaemonUrl : undefined,\n daemonRecheckIntervalMs: config.qmdDaemonRecheckIntervalMs,\n qmdSupportedVersion: config.qmdSupportedVersion,\n qmdAutoUpgradeEnabled: resolveQmdCapabilities(config).qmdAutoUpgrade,\n qmdAutoUpgradeCheckIntervalMs: config.qmdAutoUpgradeCheckIntervalMs,\n qmdChunkStrategy: config.qmdChunkStrategy,\n qmdCandidateLimit: config.qmdCandidateLimit,\n qmdQueryRerankEnabled: resolveQmdCapabilities(config).qmdQueryRerank,\n qmdIndexName: config.qmdIndexName,\n qmdForceCpu: config.qmdForceCpu,\n qmdGpuBackend: config.qmdGpuBackend,\n qmdEmbedParallelism: config.qmdEmbedParallelism,\n qmdEmbedModel: config.qmdEmbedModel,\n qmdRerankModel: config.qmdRerankModel,\n qmdGenerateModel: config.qmdGenerateModel,\n qmdSearchStrategy: config.qmdSearchStrategy,\n qmdSubprocessStrategy: config.qmdSubprocessStrategy,\n qmdDaemonTimeoutMs: config.qmdDaemonTimeoutMs,\n };\n}\n\n/**\n * Create a SearchBackend from plugin config.\n *\n * - \"noop\" → NoopSearchBackend\n * - \"remote\" → RemoteSearchBackend (HTTP REST)\n * - \"qmd\" (default) → QmdClient if qmdEnabled, else NoopSearchBackend\n */\nexport function createSearchBackend(config: PluginConfig): SearchBackend {\n const nonQmd = resolveNonQmdBackend(config);\n if (nonQmd) return nonQmd;\n\n // Default: QMD — fall back to noop if qmdEnabled is false\n if (!resolveQmdCapabilities(config).qmd) {\n return new NoopSearchBackend();\n }\n\n return new QmdClient(config.qmdCollection, config.qmdMaxResults, qmdOptions(config));\n}\n\n/**\n * Create a SearchBackend for conversation index use.\n * Returns undefined if conversation index is not enabled or not using qmd backend.\n */\nexport function createConversationSearchBackend(config: PluginConfig): SearchBackend | undefined {\n if (!resolveIndexingCapabilities(config).conversationIndex || config.conversationIndexBackend !== \"qmd\") {\n return undefined;\n }\n\n // Conversation index is QMD-only — do not use lancedb/meilisearch/orama even if\n // searchBackend is set to one of those. Only respect \"noop\" to allow disabling.\n const backend = config.searchBackend ?? \"qmd\";\n if (backend === \"noop\") return undefined;\n\n // QMD — respect qmdEnabled to avoid spawning the binary\n if (!resolveQmdCapabilities(config).qmd) return undefined;\n\n return new QmdClient(\n config.conversationIndexQmdCollection,\n Math.max(6, config.conversationRecallTopK),\n qmdOptions(config),\n );\n}\n\nexport interface ConversationIndexRuntime {\n qmd?: ConversationQmdRuntime;\n faiss?: FaissConversationIndexAdapter;\n backend?: ConversationIndexBackend;\n}\n\nexport function createConversationIndexRuntime(\n config: PluginConfig,\n overrides?: {\n getQmd?: () => ConversationQmdRuntime | undefined;\n getFaiss?: () => FaissConversationIndexAdapter | undefined;\n },\n): ConversationIndexRuntime {\n const qmd = createConversationSearchBackend(config) as ConversationQmdRuntime | undefined;\n let faiss: FaissConversationIndexAdapter | undefined;\n if (resolveIndexingCapabilities(config).conversationIndex && config.conversationIndexBackend === \"faiss\") {\n try {\n faiss = new FaissConversationIndexAdapter({\n memoryDir: config.memoryDir,\n scriptPath: config.conversationIndexFaissScriptPath,\n pythonBin: config.conversationIndexFaissPythonBin,\n modelId: config.conversationIndexFaissModelId,\n indexDir: config.conversationIndexFaissIndexDir,\n upsertTimeoutMs: config.conversationIndexFaissUpsertTimeoutMs,\n searchTimeoutMs: config.conversationIndexFaissSearchTimeoutMs,\n healthTimeoutMs: config.conversationIndexFaissHealthTimeoutMs,\n maxBatchSize: config.conversationIndexFaissMaxBatchSize,\n maxSearchK: config.conversationIndexFaissMaxSearchK,\n });\n } catch (err) {\n log.warn(`Conversation index FAISS adapter disabled: ${err instanceof Error ? err.message : String(err)}`);\n }\n }\n\n const backend = createConversationIndexBackend({\n enabled: resolveIndexingCapabilities(config).conversationIndex,\n backend: config.conversationIndexBackend,\n getQmd: () => overrides?.getQmd?.() ?? qmd,\n getFaiss: () => overrides?.getFaiss?.() ?? faiss,\n collectionDir: path.join(config.memoryDir, \"conversation-index\"),\n });\n\n return { qmd, faiss, backend };\n}\n"],"mappings":"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","names":[]}
@@ -11,16 +11,16 @@ import {
11
11
  processChatMessage,
12
12
  sessionBelongsToPrincipal,
13
13
  subscribeChatTranscript
14
- } from "./chunk-O4ZIBPIW.js";
14
+ } from "./chunk-QNTLWH3T.js";
15
15
  import {
16
16
  validateRequest
17
17
  } from "./chunk-FVZ2ISIX.js";
18
18
  import {
19
19
  getOperation
20
- } from "./chunk-NOU77OHX.js";
20
+ } from "./chunk-P6VLG7KE.js";
21
21
  import {
22
22
  EngramAccessInputError
23
- } from "./chunk-646B5ERJ.js";
23
+ } from "./chunk-HLPYL6LC.js";
24
24
  import {
25
25
  CorrectionContractError
26
26
  } from "./chunk-WNGXQMRI.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-JGSKJHF7.js";
30
30
  import {
31
31
  projectTagProjectId
32
- } from "./chunk-J6BH2OBA.js";
32
+ } from "./chunk-GB2FZOWB.js";
33
33
  import {
34
34
  subscribeGraphEvents
35
35
  } from "./chunk-DEUNUKTD.js";
@@ -1769,7 +1769,7 @@ var EngramAccessHttpServer = class {
1769
1769
  if (req.method === "POST" && pathname === "/engram/v1/contradiction-scan") {
1770
1770
  void getOperation("contradiction_scan_run");
1771
1771
  const body = await this.readJsonBody(req);
1772
- const { runContradictionScan } = await import("./contradiction-scan-HWGEOUDS.js");
1772
+ const { runContradictionScan } = await import("./contradiction-scan-2B4AE4TI.js");
1773
1773
  const principal = this.resolveRequestPrincipal(req);
1774
1774
  const result = await runContradictionScan({
1775
1775
  storage: this.service.storageRef,
@@ -2629,4 +2629,4 @@ function positiveIntQueryParam(value, label) {
2629
2629
  export {
2630
2630
  EngramAccessHttpServer
2631
2631
  };
2632
- //# sourceMappingURL=chunk-QZHF4BWN.js.map
2632
+ //# sourceMappingURL=chunk-AAIHDIMD.js.map
@@ -6,8 +6,9 @@ import {
6
6
  normalizeHostEmbeddingVector
7
7
  } from "./chunk-3ONXXHQO.js";
8
8
  import {
9
+ resolveLocalLlmCapabilities,
9
10
  resolveMemoryLifecycleCapabilities
10
- } from "./chunk-ESF7TRYJ.js";
11
+ } from "./chunk-JWDE7OVJ.js";
11
12
  import {
12
13
  log
13
14
  } from "./chunk-NU3CSQ4H.js";
@@ -187,7 +188,7 @@ var EmbedHelper = class {
187
188
  };
188
189
  }
189
190
  createLocalProvider() {
190
- if (!this.config.localLlmEnabled || !this.config.localLlmUrl) return null;
191
+ if (!resolveLocalLlmCapabilities(this.config).localLlm || !this.config.localLlmUrl) return null;
191
192
  const base = this.config.localLlmUrl.replace(/\/$/, "");
192
193
  const endpoint = /\/v1$/i.test(base) ? `${base}/embeddings` : `${base}/v1/embeddings`;
193
194
  const headers = {
@@ -308,4 +309,4 @@ function normalizeHttpEmbeddingVector(vector) {
308
309
  export {
309
310
  EmbedHelper
310
311
  };
311
- //# sourceMappingURL=chunk-H3MB3F62.js.map
312
+ //# sourceMappingURL=chunk-AB2E5DCN.js.map