@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
@@ -69,10 +69,10 @@ import {
69
69
  resolveScopeProfilePlan,
70
70
  resolveWritableNamespaceValue,
71
71
  sanitizeFragment
72
- } from "./chunk-J6BH2OBA.js";
72
+ } from "./chunk-GB2FZOWB.js";
73
73
  import {
74
74
  namespaceCollectionName
75
- } from "./chunk-KQYGNGON.js";
75
+ } from "./chunk-ZBZ4XULO.js";
76
76
  import {
77
77
  namespaceIdentityFromToken
78
78
  } from "./chunk-ZFXCQPNO.js";
@@ -96,16 +96,10 @@ import {
96
96
  persistExplicitCapture,
97
97
  queueExplicitCaptureForReview,
98
98
  validateExplicitCaptureInput
99
- } from "./chunk-PMAQRUN4.js";
99
+ } from "./chunk-NDKW67ER.js";
100
100
  import {
101
101
  CrossNamespaceBudget
102
102
  } from "./chunk-ODPLEWB6.js";
103
- import {
104
- resolveAccessSetupCapabilities,
105
- resolveGraphConstructionCapabilities,
106
- resolveIndexingCapabilities,
107
- resolveMemoryLifecycleCapabilities
108
- } from "./chunk-ESF7TRYJ.js";
109
103
  import {
110
104
  defaultCapsulesDir
111
105
  } from "./chunk-ZY2MNJR6.js";
@@ -171,7 +165,19 @@ import {
171
165
  defaultNamespaceForPrincipal,
172
166
  recallNamespacesForPrincipal,
173
167
  resolvePrincipal
174
- } from "./chunk-UZYLX7M6.js";
168
+ } from "./chunk-OYHYBHHI.js";
169
+ import {
170
+ resolveAccessSetupCapabilities,
171
+ resolveCompressionCapabilities,
172
+ resolveGraphConstructionCapabilities,
173
+ resolveIdentityContinuityCapabilities,
174
+ resolveIndexingCapabilities,
175
+ resolveMemoryLifecycleCapabilities,
176
+ resolveNamespaceCapabilities,
177
+ resolveObjectiveStateCapabilities,
178
+ resolveQmdCapabilities,
179
+ resolveSecurityCapabilities
180
+ } from "./chunk-JWDE7OVJ.js";
175
181
  import {
176
182
  expandTildePath
177
183
  } from "./chunk-EYIEWJNI.js";
@@ -2487,7 +2493,7 @@ function walkRedact(value, key) {
2487
2493
  }
2488
2494
  function inspectScope(options) {
2489
2495
  const { config } = options;
2490
- const namespacesEnabled = options.namespacesEnabled ?? config.namespacesEnabled === true;
2496
+ const namespacesEnabled = options.namespacesEnabled ?? resolveNamespaceCapabilities(config).namespaces === true;
2491
2497
  const plan = resolveScopePlan({
2492
2498
  config,
2493
2499
  sessionKey: options.sessionKey,
@@ -3097,7 +3103,7 @@ var EngramAccessService = class {
3097
3103
  resolveNamespace(namespace) {
3098
3104
  const requested = namespace?.trim();
3099
3105
  if (!requested) return this.orchestrator.config.defaultNamespace;
3100
- if (!this.orchestrator.config.namespacesEnabled && requested !== this.orchestrator.config.defaultNamespace) {
3106
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces && requested !== this.orchestrator.config.defaultNamespace) {
3101
3107
  throw new EngramAccessInputError(`unsupported namespace: ${requested}`);
3102
3108
  }
3103
3109
  return requested;
@@ -3174,8 +3180,8 @@ var EngramAccessService = class {
3174
3180
  * scattered-config-read ratchet flat). READ-ONLY: never mutates session. */
3175
3181
  async resolveCodingScopeInputs(request) {
3176
3182
  const hasSession = typeof request.sessionKey === "string" && request.sessionKey.length > 0;
3177
- const codingContext = hasSession && this.orchestrator.config.namespacesEnabled && this.orchestrator.config.codingMode?.projectScope ? this.orchestrator.getCodingContextForSession(request.sessionKey) ?? await this.resolveCodingContextFromOptions(request) : null;
3178
- const overlay = hasSession && this.orchestrator.config.namespacesEnabled && this.orchestrator.config.codingMode?.projectScope ? resolveCodingNamespaceOverlay(
3183
+ const codingContext = hasSession && resolveNamespaceCapabilities(this.orchestrator.config).namespaces && this.orchestrator.config.codingMode?.projectScope ? this.orchestrator.getCodingContextForSession(request.sessionKey) ?? await this.resolveCodingContextFromOptions(request) : null;
3184
+ const overlay = hasSession && resolveNamespaceCapabilities(this.orchestrator.config).namespaces && this.orchestrator.config.codingMode?.projectScope ? resolveCodingNamespaceOverlay(
3179
3185
  codingContext,
3180
3186
  this.orchestrator.config.codingMode,
3181
3187
  this.orchestrator.config.defaultNamespace
@@ -3321,7 +3327,7 @@ var EngramAccessService = class {
3321
3327
  this.orchestrator.config
3322
3328
  );
3323
3329
  const hasSession = typeof request.sessionKey === "string" && request.sessionKey.length > 0;
3324
- const overlayEligible = hasSession && this.orchestrator.config.namespacesEnabled === true && this.orchestrator.config.codingMode?.projectScope === true;
3330
+ const overlayEligible = hasSession && resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true && this.orchestrator.config.codingMode?.projectScope === true;
3325
3331
  let attachedContext = hasSession ? this.orchestrator.getCodingContextForSession(request.sessionKey) : null;
3326
3332
  let seededContext = false;
3327
3333
  if (overlayEligible && !attachedContext) {
@@ -3399,8 +3405,8 @@ var EngramAccessService = class {
3399
3405
  request.sessionKey,
3400
3406
  request.authenticatedPrincipal
3401
3407
  );
3402
- const willWriteObjectiveState = this.orchestrator.config.objectiveStateMemoryEnabled === true && this.orchestrator.config.objectiveStateSnapshotWritesEnabled === true;
3403
- if (willWriteObjectiveState && this.orchestrator.config.namespacesEnabled === true && !canWriteNamespace(principal, baseNamespace, this.orchestrator.config)) {
3408
+ const willWriteObjectiveState = resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateMemory === true && resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateSnapshotWrites === true;
3409
+ if (willWriteObjectiveState && resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true && !canWriteNamespace(principal, baseNamespace, this.orchestrator.config)) {
3404
3410
  clearSeededContext();
3405
3411
  throw new EngramAccessInputError(
3406
3412
  `namespace is not writable: ${baseNamespace}`
@@ -3454,7 +3460,7 @@ var EngramAccessService = class {
3454
3460
  return scope.codingOverlayApplied ? this.orchestrator.config.defaultNamespace : scope.writeNamespace;
3455
3461
  }
3456
3462
  async objectiveStateStoreLocationForNamespace(namespace) {
3457
- if (!this.orchestrator.config.namespacesEnabled) {
3463
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces) {
3458
3464
  return {
3459
3465
  memoryDir: this.orchestrator.config.memoryDir,
3460
3466
  objectiveStateStoreDir: this.orchestrator.config.objectiveStateStoreDir
@@ -3466,14 +3472,14 @@ var EngramAccessService = class {
3466
3472
  objectiveStateStoreDir: objectiveStateStoreOverrideForNamespace({
3467
3473
  memoryDir: this.orchestrator.config.memoryDir,
3468
3474
  configuredStoreDir: this.orchestrator.config.objectiveStateStoreDir,
3469
- namespacesEnabled: this.orchestrator.config.namespacesEnabled,
3475
+ namespacesEnabled: resolveNamespaceCapabilities(this.orchestrator.config).namespaces,
3470
3476
  namespace
3471
3477
  })
3472
3478
  };
3473
3479
  }
3474
3480
  resolveReadableNamespace(namespace, principal) {
3475
3481
  const resolved = this.resolveNamespace(namespace);
3476
- const namespacesEnabled = this.orchestrator.config.namespacesEnabled;
3482
+ const namespacesEnabled = resolveNamespaceCapabilities(this.orchestrator.config).namespaces;
3477
3483
  if (!namespacesEnabled) {
3478
3484
  return resolved;
3479
3485
  }
@@ -3492,7 +3498,7 @@ var EngramAccessService = class {
3492
3498
  if (requested) {
3493
3499
  return [this.resolveReadableNamespace(requested, principal)];
3494
3500
  }
3495
- if (!this.orchestrator.config.namespacesEnabled) {
3501
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces) {
3496
3502
  return [this.resolveNamespace(void 0)];
3497
3503
  }
3498
3504
  if (!principal) {
@@ -3533,7 +3539,7 @@ var EngramAccessService = class {
3533
3539
  return [...new Set(candidates)].filter((namespace) => canReadNamespace(principal, namespace, config));
3534
3540
  }
3535
3541
  resolveMemorySearchNamespacesForCollection(collection, namespaces, collectionPrincipal) {
3536
- if (!this.orchestrator.config.namespacesEnabled) {
3542
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces) {
3537
3543
  return namespaces;
3538
3544
  }
3539
3545
  const baseCollection = this.orchestrator.config.qmdCollection;
@@ -4011,7 +4017,7 @@ var EngramAccessService = class {
4011
4017
  const resolvedNamespace = this.resolveNamespace(namespace);
4012
4018
  const storage = await this.orchestrator.getStorage(resolvedNamespace);
4013
4019
  const searchBackend = this.orchestrator.config.searchBackend ?? "qmd";
4014
- const qmdEnabled = this.orchestrator.config.qmdEnabled === true;
4020
+ const qmdEnabled = resolveQmdCapabilities(this.orchestrator.config).qmd === true;
4015
4021
  let projectionAvailable = false;
4016
4022
  try {
4017
4023
  await stat2(getMemoryProjectionPath(storage.dir));
@@ -4022,7 +4028,7 @@ var EngramAccessService = class {
4022
4028
  return {
4023
4029
  ok: true,
4024
4030
  memoryDir: storage.dir,
4025
- namespacesEnabled: this.orchestrator.config.namespacesEnabled === true,
4031
+ namespacesEnabled: resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true,
4026
4032
  defaultNamespace: this.orchestrator.config.defaultNamespace,
4027
4033
  searchBackend,
4028
4034
  qmdEnabled,
@@ -4037,7 +4043,7 @@ var EngramAccessService = class {
4037
4043
  };
4038
4044
  }
4039
4045
  qmdCollectionForHealth(namespace, storageDir) {
4040
- if (this.orchestrator.config.namespacesEnabled !== true) {
4046
+ if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces !== true) {
4041
4047
  return this.orchestrator.config.qmdCollection;
4042
4048
  }
4043
4049
  const useLegacyDefaultCollection = namespace === this.orchestrator.config.defaultNamespace && storageDir === this.orchestrator.config.memoryDir;
@@ -4063,7 +4069,7 @@ var EngramAccessService = class {
4063
4069
  debugStatus: searchBackend !== "qmd" ? `backend=${searchBackend}` : "backend=disabled"
4064
4070
  };
4065
4071
  }
4066
- if (this.orchestrator.config.namespacesEnabled === true) {
4072
+ if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true) {
4067
4073
  const namespaceHealth = await this.namespaceQmdHealth(searchBackend, qmdEnabled, namespace, collection);
4068
4074
  if (namespaceHealth) return namespaceHealth;
4069
4075
  }
@@ -4387,7 +4393,7 @@ var EngramAccessService = class {
4387
4393
  const normalizedRequest = { ...request, query };
4388
4394
  const authenticatedPrincipal = request.authenticatedPrincipal?.trim();
4389
4395
  const principal = this.resolveRequestPrincipal(request.sessionKey, authenticatedPrincipal);
4390
- if (this.orchestrator.config.namespacesEnabled && !principal) {
4396
+ if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces && !principal) {
4391
4397
  throw new EngramAccessInputError(
4392
4398
  "authentication required: namespaces are enabled and no principal was supplied"
4393
4399
  );
@@ -4452,7 +4458,7 @@ var EngramAccessService = class {
4452
4458
  const namespace = namespaceOverride ?? this.orchestrator.config.defaultNamespace;
4453
4459
  const mode = this.normalizeRecallMode(request.mode);
4454
4460
  const maybePrincipal = this.resolveRequestPrincipal(request.sessionKey, authenticatedPrincipal);
4455
- if (this.orchestrator.config.namespacesEnabled && !maybePrincipal) {
4461
+ if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces && !maybePrincipal) {
4456
4462
  throw new EngramAccessInputError(
4457
4463
  "authentication required: namespaces are enabled and no principal was supplied"
4458
4464
  );
@@ -4460,7 +4466,7 @@ var EngramAccessService = class {
4460
4466
  const principal = maybePrincipal ?? "default";
4461
4467
  const principalNamespace = defaultNamespaceForPrincipal(principal, this.orchestrator.config);
4462
4468
  const profileCodingContext = request.sessionKey && typeof this.orchestrator.getCodingContextForSession === "function" ? this.orchestrator.getCodingContextForSession(request.sessionKey) : null;
4463
- const profileCodingOverlay = !namespaceOverride && profileCodingContext && this.orchestrator.config.namespacesEnabled && this.orchestrator.config.codingMode?.projectScope ? resolveCodingNamespaceOverlay(
4469
+ const profileCodingOverlay = !namespaceOverride && profileCodingContext && resolveNamespaceCapabilities(this.orchestrator.config).namespaces && this.orchestrator.config.codingMode?.projectScope ? resolveCodingNamespaceOverlay(
4464
4470
  profileCodingContext,
4465
4471
  this.orchestrator.config.codingMode,
4466
4472
  this.orchestrator.config.defaultNamespace
@@ -4707,7 +4713,7 @@ var EngramAccessService = class {
4707
4713
  if (!canReadNamespace(principal, requestedNamespace, this.orchestrator.config)) {
4708
4714
  return { found: false };
4709
4715
  }
4710
- } else if (this.orchestrator.config.namespacesEnabled && !principal) {
4716
+ } else if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces && !principal) {
4711
4717
  return { found: false };
4712
4718
  }
4713
4719
  const snapshot = request.sessionKey ? (() => {
@@ -4722,7 +4728,7 @@ var EngramAccessService = class {
4722
4728
  return candidate.namespace === requestedNamespace ? candidate : null;
4723
4729
  })();
4724
4730
  const readableSnapshot = (() => {
4725
- if (!snapshot || !this.orchestrator.config.namespacesEnabled) return snapshot;
4731
+ if (!snapshot || !resolveNamespaceCapabilities(this.orchestrator.config).namespaces) return snapshot;
4726
4732
  const snapshotNamespace = snapshot.namespace ?? this.orchestrator.config.defaultNamespace;
4727
4733
  return canReadNamespace(principal, snapshotNamespace, this.orchestrator.config) ? snapshot : null;
4728
4734
  })();
@@ -4730,7 +4736,7 @@ var EngramAccessService = class {
4730
4736
  if (requestedNamespace) return requestedNamespace;
4731
4737
  if (readableSnapshot?.namespace) return readableSnapshot.namespace;
4732
4738
  const fallbackNamespace = this.orchestrator.config.defaultNamespace;
4733
- if (!this.orchestrator.config.namespacesEnabled) return fallbackNamespace;
4739
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces) return fallbackNamespace;
4734
4740
  return canReadNamespace(principal, fallbackNamespace, this.orchestrator.config) ? fallbackNamespace : null;
4735
4741
  })();
4736
4742
  if (!namespace) return { found: false };
@@ -4742,7 +4748,7 @@ var EngramAccessService = class {
4742
4748
  return { found: true, snapshot: readableSnapshot ?? void 0, intent, graph };
4743
4749
  }
4744
4750
  async recallTierExplain(sessionKey, namespace, authenticatedPrincipal) {
4745
- const namespacesEnabled = this.orchestrator.config.namespacesEnabled;
4751
+ const namespacesEnabled = resolveNamespaceCapabilities(this.orchestrator.config).namespaces;
4746
4752
  const requestedNamespace = namespace?.trim() ? this.resolveNamespace(namespace) : void 0;
4747
4753
  const principal = authenticatedPrincipal?.trim() || resolvePrincipal(sessionKey, this.orchestrator.config);
4748
4754
  if (requestedNamespace) {
@@ -4783,7 +4789,7 @@ var EngramAccessService = class {
4783
4789
  `recallXray: disclosure must be one of: chunk, section, raw (got: ${String(request.disclosure)})`
4784
4790
  );
4785
4791
  }
4786
- const namespacesEnabled = this.orchestrator.config.namespacesEnabled;
4792
+ const namespacesEnabled = resolveNamespaceCapabilities(this.orchestrator.config).namespaces;
4787
4793
  const requestedNamespace = request.namespace?.trim() ? this.resolveNamespace(request.namespace) : void 0;
4788
4794
  const authenticatedPrincipal = request.authenticatedPrincipal?.trim();
4789
4795
  const principal = authenticatedPrincipal || resolvePrincipal(request.sessionKey, this.orchestrator.config);
@@ -6017,9 +6023,9 @@ var EngramAccessService = class {
6017
6023
  status: await getTrustZoneStoreStatus({
6018
6024
  memoryDir: storage.dir,
6019
6025
  trustZoneStoreDir: this.orchestrator.config.trustZoneStoreDir,
6020
- enabled: this.orchestrator.config.trustZonesEnabled === true,
6021
- promotionEnabled: this.orchestrator.config.quarantinePromotionEnabled === true,
6022
- poisoningDefenseEnabled: this.orchestrator.config.memoryPoisoningDefenseEnabled === true
6026
+ enabled: resolveSecurityCapabilities(this.orchestrator.config).trustZones === true,
6027
+ promotionEnabled: resolveSecurityCapabilities(this.orchestrator.config).quarantinePromotion === true,
6028
+ poisoningDefenseEnabled: resolveSecurityCapabilities(this.orchestrator.config).memoryPoisoningDefense === true
6023
6029
  })
6024
6030
  };
6025
6031
  }
@@ -6046,9 +6052,9 @@ var EngramAccessService = class {
6046
6052
  entry.record,
6047
6053
  entry.filePath,
6048
6054
  result.allRecords,
6049
- this.orchestrator.config.memoryPoisoningDefenseEnabled === true,
6050
- this.orchestrator.config.trustZonesEnabled === true,
6051
- this.orchestrator.config.quarantinePromotionEnabled === true
6055
+ resolveSecurityCapabilities(this.orchestrator.config).memoryPoisoningDefense === true,
6056
+ resolveSecurityCapabilities(this.orchestrator.config).trustZones === true,
6057
+ resolveSecurityCapabilities(this.orchestrator.config).quarantinePromotion === true
6052
6058
  ))
6053
6059
  };
6054
6060
  }
@@ -6067,9 +6073,9 @@ var EngramAccessService = class {
6067
6073
  result = await promoteTrustZoneRecord({
6068
6074
  memoryDir: storage.dir,
6069
6075
  trustZoneStoreDir: this.orchestrator.config.trustZoneStoreDir,
6070
- enabled: this.orchestrator.config.trustZonesEnabled === true,
6071
- promotionEnabled: this.orchestrator.config.quarantinePromotionEnabled === true,
6072
- poisoningDefenseEnabled: this.orchestrator.config.memoryPoisoningDefenseEnabled === true,
6076
+ enabled: resolveSecurityCapabilities(this.orchestrator.config).trustZones === true,
6077
+ promotionEnabled: resolveSecurityCapabilities(this.orchestrator.config).quarantinePromotion === true,
6078
+ poisoningDefenseEnabled: resolveSecurityCapabilities(this.orchestrator.config).memoryPoisoningDefense === true,
6073
6079
  sourceRecordId: request.recordId,
6074
6080
  targetZone: request.targetZone,
6075
6081
  recordedAt: request.recordedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
@@ -6098,7 +6104,7 @@ var EngramAccessService = class {
6098
6104
  result = await seedTrustZoneDemoDataset({
6099
6105
  memoryDir: storage.dir,
6100
6106
  trustZoneStoreDir: this.orchestrator.config.trustZoneStoreDir,
6101
- enabled: this.orchestrator.config.trustZonesEnabled === true,
6107
+ enabled: resolveSecurityCapabilities(this.orchestrator.config).trustZones === true,
6102
6108
  scenario: request.scenario,
6103
6109
  recordedAt: request.recordedAt,
6104
6110
  dryRun: request.dryRun === true
@@ -6226,7 +6232,7 @@ var EngramAccessService = class {
6226
6232
  const scope = await this.resolveMemoryScopePlan(request);
6227
6233
  const writeNamespace = scope.writeNamespace;
6228
6234
  const namespace = this.legacyResponseNamespaceForScope(scope);
6229
- const shouldWriteObjectiveState = this.orchestrator.config.objectiveStateMemoryEnabled === true && this.orchestrator.config.objectiveStateSnapshotWritesEnabled === true;
6235
+ const shouldWriteObjectiveState = resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateMemory === true && resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateSnapshotWrites === true;
6230
6236
  await this.maybeAttachCodingContext(request.sessionKey, {
6231
6237
  cwd: request.cwd,
6232
6238
  projectTag: request.projectTag
@@ -6244,8 +6250,8 @@ var EngramAccessService = class {
6244
6250
  await recordObjectiveStateSnapshotsFromObservedMessages({
6245
6251
  memoryDir: objectiveStateLocation.memoryDir,
6246
6252
  objectiveStateStoreDir: objectiveStateLocation.objectiveStateStoreDir,
6247
- objectiveStateMemoryEnabled: this.orchestrator.config.objectiveStateMemoryEnabled,
6248
- objectiveStateSnapshotWritesEnabled: this.orchestrator.config.objectiveStateSnapshotWritesEnabled,
6253
+ objectiveStateMemoryEnabled: resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateMemory,
6254
+ objectiveStateSnapshotWritesEnabled: resolveObjectiveStateCapabilities(this.orchestrator.config).objectiveStateSnapshotWrites,
6249
6255
  sessionKey: request.sessionKey,
6250
6256
  recordedAt: (/* @__PURE__ */ new Date()).toISOString(),
6251
6257
  messages: request.messages
@@ -6284,7 +6290,7 @@ var EngramAccessService = class {
6284
6290
  sourceFormat: m.sourceFormat,
6285
6291
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
6286
6292
  }));
6287
- const writeNamespaceOverride = this.orchestrator.config.namespacesEnabled === true ? writeNamespace : void 0;
6293
+ const writeNamespaceOverride = resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true ? writeNamespace : void 0;
6288
6294
  const principalOverride = typeof scope.principal === "string" && scope.principal.length > 0 ? scope.principal : void 0;
6289
6295
  try {
6290
6296
  const extractionPromise = this.orchestrator.ingestReplayBatch(turns, {
@@ -6389,7 +6395,7 @@ var EngramAccessService = class {
6389
6395
  ) ?? request.sessionPrefix
6390
6396
  ] : [void 0];
6391
6397
  const hasScopedSession = typeof request.sessionKey === "string" && request.sessionKey.length > 0 || lcmSessionPrefixes.some((prefix) => typeof prefix === "string" && prefix.length > 0);
6392
- if (!hasScopedSession && this.orchestrator.config.namespacesEnabled === true) {
6398
+ if (!hasScopedSession && resolveNamespaceCapabilities(this.orchestrator.config).namespaces === true) {
6393
6399
  return {
6394
6400
  query: request.query,
6395
6401
  namespace,
@@ -6620,7 +6626,7 @@ var EngramAccessService = class {
6620
6626
  */
6621
6627
  resolveImplicitLcmReadFallbackNamespace(principal) {
6622
6628
  const config = this.orchestrator.config;
6623
- if (!config.namespacesEnabled) return config.defaultNamespace;
6629
+ if (!resolveNamespaceCapabilities(config).namespaces) return config.defaultNamespace;
6624
6630
  if (canReadNamespace(principal, config.defaultNamespace, config)) {
6625
6631
  return config.defaultNamespace;
6626
6632
  }
@@ -6844,7 +6850,7 @@ var EngramAccessService = class {
6844
6850
  // ── Parity tools (match OpenClaw plugin feature set) ──────────────────
6845
6851
  // ── Continuity / Identity ──────────────────────────────────────────────
6846
6852
  async continuityAuditGenerate(request) {
6847
- if (!this.orchestrator.config.identityContinuityEnabled) {
6853
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6848
6854
  return { enabled: false, reason: "Identity continuity is disabled. Enable `identityContinuityEnabled: true`." };
6849
6855
  }
6850
6856
  if (!this.orchestrator.config.continuityAuditEnabled) {
@@ -6859,7 +6865,7 @@ var EngramAccessService = class {
6859
6865
  return { enabled: true, period: audit.period, key: audit.key, reportPath: audit.reportPath };
6860
6866
  }
6861
6867
  async continuityIncidentOpen(request) {
6862
- if (!this.orchestrator.config.identityContinuityEnabled) {
6868
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6863
6869
  return { enabled: false, reason: "Identity continuity is disabled. Enable `identityContinuityEnabled: true`." };
6864
6870
  }
6865
6871
  if (!this.orchestrator.config.continuityIncidentLoggingEnabled) {
@@ -6877,7 +6883,7 @@ var EngramAccessService = class {
6877
6883
  return { created: true, incident: created };
6878
6884
  }
6879
6885
  async continuityIncidentClose(request) {
6880
- if (!this.orchestrator.config.identityContinuityEnabled) {
6886
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6881
6887
  return { enabled: false, reason: "Identity continuity is disabled." };
6882
6888
  }
6883
6889
  if (!this.orchestrator.config.continuityIncidentLoggingEnabled) {
@@ -6900,7 +6906,7 @@ var EngramAccessService = class {
6900
6906
  return { closed: true, incident: closed };
6901
6907
  }
6902
6908
  async continuityIncidentList(request) {
6903
- if (!this.orchestrator.config.identityContinuityEnabled) {
6909
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6904
6910
  return { enabled: false, reason: "Identity continuity is disabled." };
6905
6911
  }
6906
6912
  const state = request.state === "closed" || request.state === "all" ? request.state : "open";
@@ -6911,7 +6917,7 @@ var EngramAccessService = class {
6911
6917
  return { state, incidents, count: incidents.length };
6912
6918
  }
6913
6919
  async continuityLoopAddOrUpdate(request) {
6914
- if (!this.orchestrator.config.identityContinuityEnabled) {
6920
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6915
6921
  return { enabled: false, reason: "Identity continuity is disabled." };
6916
6922
  }
6917
6923
  const resolvedNs = this.writableNamespaceFor(request.namespace, void 0, request.principal);
@@ -6928,7 +6934,7 @@ var EngramAccessService = class {
6928
6934
  return { saved: true, loop };
6929
6935
  }
6930
6936
  async continuityLoopReview(request) {
6931
- if (!this.orchestrator.config.identityContinuityEnabled) {
6937
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6932
6938
  return { enabled: false, reason: "Identity continuity is disabled." };
6933
6939
  }
6934
6940
  const id = request.id?.trim();
@@ -6944,7 +6950,7 @@ var EngramAccessService = class {
6944
6950
  return { reviewed: true, loop: reviewed };
6945
6951
  }
6946
6952
  async identityAnchorGet(request) {
6947
- if (!this.orchestrator.config.identityContinuityEnabled) {
6953
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6948
6954
  return { enabled: false, reason: "Identity continuity is disabled." };
6949
6955
  }
6950
6956
  const resolvedNs = this.resolveReadableNamespace(request.namespace, request.principal);
@@ -6962,7 +6968,7 @@ var EngramAccessService = class {
6962
6968
  * compatibility but will be removed in a future major version.
6963
6969
  */
6964
6970
  async identityAnchorUpdate(request) {
6965
- if (!this.orchestrator.config.identityContinuityEnabled) {
6971
+ if (!resolveIdentityContinuityCapabilities(this.orchestrator.config).identityContinuity) {
6966
6972
  return { enabled: false, reason: "Identity continuity is disabled." };
6967
6973
  }
6968
6974
  const updates = {
@@ -7217,7 +7223,7 @@ var EngramAccessService = class {
7217
7223
  }
7218
7224
  // ── Compression Guidelines ────────────────────────────────────────────
7219
7225
  async compressionGuidelinesOptimize(request) {
7220
- if (!this.orchestrator.config.compressionGuidelineLearningEnabled) {
7226
+ if (!resolveCompressionCapabilities(this.orchestrator.config).compressionGuidelineLearning) {
7221
7227
  return { enabled: false, reason: "Compression guideline learning is disabled. Enable `compressionGuidelineLearningEnabled: true`." };
7222
7228
  }
7223
7229
  return await this.orchestrator.optimizeCompressionGuidelines({
@@ -7226,7 +7232,7 @@ var EngramAccessService = class {
7226
7232
  });
7227
7233
  }
7228
7234
  async compressionGuidelinesActivate(request) {
7229
- if (!this.orchestrator.config.compressionGuidelineLearningEnabled) {
7235
+ if (!resolveCompressionCapabilities(this.orchestrator.config).compressionGuidelineLearning) {
7230
7236
  return { enabled: false, reason: "Compression guideline learning is disabled." };
7231
7237
  }
7232
7238
  return await this.orchestrator.activateCompressionGuidelineDraft({
@@ -7301,7 +7307,7 @@ ${next}`);
7301
7307
  throw new EngramAccessInputError("collection must be a non-empty string");
7302
7308
  }
7303
7309
  let results;
7304
- if (!this.orchestrator.config.namespacesEnabled) {
7310
+ if (!resolveNamespaceCapabilities(this.orchestrator.config).namespaces) {
7305
7311
  this.resolveReadableNamespace(namespace, principal);
7306
7312
  results = collection === "global" ? await this.orchestrator.qmd.searchGlobal(query, maxResults) : await this.orchestrator.qmd.search(query, collection, maxResults);
7307
7313
  } else {
@@ -7513,7 +7519,7 @@ ${next}`);
7513
7519
  `memory_action_apply: invalid action ${JSON.stringify(request.action)}`
7514
7520
  );
7515
7521
  }
7516
- if (this.orchestrator.config.contextCompressionActionsEnabled !== true) {
7522
+ if (resolveCompressionCapabilities(this.orchestrator.config).contextCompressionActions !== true) {
7517
7523
  throw new EngramAccessInputError(
7518
7524
  "memory_action_apply is disabled; enable contextCompressionActionsEnabled to use this tool"
7519
7525
  );
@@ -7823,7 +7829,7 @@ ${next}`);
7823
7829
  return { namespace: resolved, storage };
7824
7830
  }
7825
7831
  async getWritableStorageForNamespace(namespace, principal) {
7826
- if (this.orchestrator.config.namespacesEnabled && !principal?.trim()) {
7832
+ if (resolveNamespaceCapabilities(this.orchestrator.config).namespaces && !principal?.trim()) {
7827
7833
  throw new EngramAccessInputError(
7828
7834
  "authentication required: namespaces are enabled and no principal was supplied"
7829
7835
  );
@@ -8380,7 +8386,7 @@ ${next}`);
8380
8386
  */
8381
8387
  async adminPromoteMemory(request) {
8382
8388
  const config = this.orchestrator.config;
8383
- const namespacesEnabled = config.namespacesEnabled === true;
8389
+ const namespacesEnabled = resolveNamespaceCapabilities(config).namespaces === true;
8384
8390
  let sourceNamespace;
8385
8391
  if (request.namespace) {
8386
8392
  sourceNamespace = this.resolveReadableNamespace(
@@ -8480,4 +8486,4 @@ export {
8480
8486
  shapeMemorySummary,
8481
8487
  EngramAccessService
8482
8488
  };
8483
- //# sourceMappingURL=chunk-646B5ERJ.js.map
8489
+ //# sourceMappingURL=chunk-HLPYL6LC.js.map