@remnic/core 9.45.4 → 9.46.0

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 (460) hide show
  1. package/dist/access-admin-ops-surface.d.ts +10 -10
  2. package/dist/access-admin-ops-surface.js +30 -29
  3. package/dist/access-authorization-probe.d.ts +10 -10
  4. package/dist/access-authorization-probe.js +31 -30
  5. package/dist/access-boundary.d.ts +10 -10
  6. package/dist/access-boundary.js +30 -29
  7. package/dist/access-cli.js +91 -87
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.d.ts +10 -10
  11. package/dist/access-extraction-force-flush.js +30 -29
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-lcm-compaction.d.ts +10 -10
  14. package/dist/access-http-lifecycle-flush.d.ts +10 -10
  15. package/dist/access-http-offline-stream.d.ts +10 -10
  16. package/dist/access-http-offline-stream.js +1 -1
  17. package/dist/access-http-query.js +30 -29
  18. package/dist/access-http.d.ts +10 -11
  19. package/dist/access-http.js +42 -41
  20. package/dist/access-identity-continuity-surface.d.ts +8 -8
  21. package/dist/access-identity-continuity-surface.js +30 -29
  22. package/dist/access-lcm-surface.d.ts +10 -10
  23. package/dist/access-lcm-surface.js +30 -29
  24. package/dist/access-mcp.d.ts +10 -10
  25. package/dist/access-mcp.js +36 -35
  26. package/dist/access-memory-search-fanout.d.ts +2 -2
  27. package/dist/{access-namespace-preflight-CWUDwB4M.d.ts → access-namespace-preflight--H6HwN85.d.ts} +1 -1
  28. package/dist/access-namespace-preflight.d.ts +3 -3
  29. package/dist/access-namespace-preflight.js +30 -29
  30. package/dist/access-observe-write-surface.d.ts +10 -10
  31. package/dist/access-observe-write-surface.js +30 -29
  32. package/dist/access-offline-manifest.d.ts +8 -8
  33. package/dist/access-operations-batch.js +31 -30
  34. package/dist/access-operations.d.ts +13 -13
  35. package/dist/access-operations.js +35 -34
  36. package/dist/access-recall-concurrency.d.ts +10 -10
  37. package/dist/access-recall-concurrency.js +30 -29
  38. package/dist/access-recall-response.d.ts +10 -10
  39. package/dist/access-recall-response.js +30 -29
  40. package/dist/access-recall-surface.d.ts +10 -10
  41. package/dist/access-recall-surface.js +30 -29
  42. package/dist/access-schema.d.ts +84 -84
  43. package/dist/access-service-helpers.d.ts +10 -10
  44. package/dist/{access-service-CsU-ljFD.d.ts → access-service-loJadYd7.d.ts} +7 -7
  45. package/dist/access-service.d.ts +10 -10
  46. package/dist/access-service.js +30 -29
  47. package/dist/access-surface-catalog.d.ts +10 -10
  48. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  49. package/dist/action-confidence.d.ts +1 -1
  50. package/dist/active-memory-bridge.d.ts +1 -1
  51. package/dist/active-recall.d.ts +1 -1
  52. package/dist/adapters/index.js +4 -4
  53. package/dist/adapters/registry.js +2 -2
  54. package/dist/ambient-provenance.d.ts +109 -0
  55. package/dist/ambient-provenance.js +22 -0
  56. package/dist/ambient-provenance.js.map +1 -0
  57. package/dist/{auto-sync-UPTUVE4X.js → auto-sync-7O6RP2RT.js} +3 -2
  58. package/dist/{auto-sync-UPTUVE4X.js.map → auto-sync-7O6RP2RT.js.map} +1 -1
  59. package/dist/behavior-learner.d.ts +1 -1
  60. package/dist/behavior-signals.d.ts +1 -1
  61. package/dist/bootstrap.d.ts +8 -8
  62. package/dist/briefing.d.ts +2 -2
  63. package/dist/briefing.js +6 -5
  64. package/dist/buffer-surprise-report.d.ts +1 -1
  65. package/dist/buffer-turn-helpers.d.ts +1 -1
  66. package/dist/buffer-turn-helpers.js +1 -1
  67. package/dist/buffer.d.ts +2 -2
  68. package/dist/buffer.js +5 -5
  69. package/dist/bulk-import/index.d.ts +3 -3
  70. package/dist/calibration.d.ts +1 -1
  71. package/dist/capabilities.d.ts +1 -1
  72. package/dist/{catalog-bctMURhN.d.ts → catalog-Iwbk9h5E.d.ts} +1 -1
  73. package/dist/causal-behavior.d.ts +1 -1
  74. package/dist/causal-consolidation.d.ts +1 -1
  75. package/dist/causal-consolidation.js +7 -6
  76. package/dist/causal-consolidation.js.map +1 -1
  77. package/dist/causal-trajectory-graph.d.ts +1 -1
  78. package/dist/{chunk-7RZJWZ46.js → chunk-227UFSEQ.js} +5 -5
  79. package/dist/{chunk-ER7W6H4T.js → chunk-2AD5SXO4.js} +5 -2
  80. package/dist/chunk-2AD5SXO4.js.map +1 -0
  81. package/dist/{chunk-XSFHWBQO.js → chunk-2DSUT7DZ.js} +10 -64
  82. package/dist/{chunk-XSFHWBQO.js.map → chunk-2DSUT7DZ.js.map} +1 -1
  83. package/dist/{chunk-DZPFMQZ7.js → chunk-3S63QIFQ.js} +1 -1
  84. package/dist/chunk-3S63QIFQ.js.map +1 -0
  85. package/dist/{chunk-UQWIKLQK.js → chunk-47J4EDGR.js} +9 -9
  86. package/dist/{chunk-5SNZSWWR.js → chunk-5LRDM4R7.js} +42 -42
  87. package/dist/{chunk-7YERSTN7.js → chunk-5R6S4DJZ.js} +7 -7
  88. package/dist/{chunk-C26TE27X.js → chunk-5VQPZ4GV.js} +3 -3
  89. package/dist/{chunk-U2VLVBBH.js → chunk-64BHFFKZ.js} +3 -3
  90. package/dist/{chunk-AJQ57VV3.js → chunk-6H744ZBH.js} +4 -4
  91. package/dist/chunk-6H744ZBH.js.map +1 -0
  92. package/dist/{chunk-7CITSYSH.js → chunk-7T4TOGMS.js} +2 -2
  93. package/dist/{chunk-ZMAYKGPN.js → chunk-7YQ6ESEA.js} +12 -41
  94. package/dist/chunk-7YQ6ESEA.js.map +1 -0
  95. package/dist/{chunk-YMAQDHQM.js → chunk-BDNL34CT.js} +2 -2
  96. package/dist/{chunk-GQL52GQ5.js → chunk-CDKHKZL5.js} +15 -12
  97. package/dist/chunk-CDKHKZL5.js.map +1 -0
  98. package/dist/{chunk-WGP57SR3.js → chunk-CK5KOVHW.js} +3 -2
  99. package/dist/{chunk-WGP57SR3.js.map → chunk-CK5KOVHW.js.map} +1 -1
  100. package/dist/{chunk-JH6BPLOP.js → chunk-E4FOAENZ.js} +4 -4
  101. package/dist/{chunk-ZFGZ6PZ2.js → chunk-FULKGK7P.js} +2 -2
  102. package/dist/{chunk-BGHFOD5A.js → chunk-HJ3SVHUW.js} +3 -3
  103. package/dist/{chunk-TYISDI6B.js → chunk-HXXTXLKA.js} +2 -2
  104. package/dist/{chunk-FZP32336.js → chunk-IDE5AR5W.js} +53 -31
  105. package/dist/chunk-IDE5AR5W.js.map +1 -0
  106. package/dist/{chunk-7SHJHPTY.js → chunk-ILBLZ5Y5.js} +2 -2
  107. package/dist/chunk-J7T4MX7P.js +131 -0
  108. package/dist/chunk-J7T4MX7P.js.map +1 -0
  109. package/dist/{chunk-DSUAAZZX.js → chunk-JFO5QZ7N.js} +2 -2
  110. package/dist/{chunk-EJHEWCGQ.js → chunk-KA47C7BF.js} +2 -2
  111. package/dist/{chunk-NUEQKLNB.js → chunk-KMWYZTIE.js} +2 -2
  112. package/dist/{chunk-TQ4GD737.js → chunk-L7G72WY4.js} +2 -2
  113. package/dist/{chunk-CLB32OHM.js → chunk-LI7OE7G6.js} +2 -2
  114. package/dist/{chunk-TN76AKO3.js → chunk-M2INOSTA.js} +2 -2
  115. package/dist/{chunk-DYVMXPCF.js → chunk-M32URQXV.js} +665 -614
  116. package/dist/chunk-M32URQXV.js.map +1 -0
  117. package/dist/{chunk-WQIHRA5F.js → chunk-N3LL5NEU.js} +2 -2
  118. package/dist/{chunk-HFPASSFV.js → chunk-P2OTGMTR.js} +2 -2
  119. package/dist/{chunk-Y7HRYCNW.js → chunk-PFJXPOD4.js} +2 -2
  120. package/dist/{chunk-MDISBSYA.js → chunk-PKCLQ7KM.js} +43 -143
  121. package/dist/chunk-PKCLQ7KM.js.map +1 -0
  122. package/dist/chunk-QW27DOHG.js +84 -0
  123. package/dist/chunk-QW27DOHG.js.map +1 -0
  124. package/dist/{chunk-ZI32MKDW.js → chunk-RCU25Z66.js} +32 -35
  125. package/dist/chunk-RCU25Z66.js.map +1 -0
  126. package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
  127. package/dist/{chunk-QCECHYZL.js → chunk-RVO6TCTU.js} +6 -6
  128. package/dist/{chunk-D3I2MCN7.js → chunk-RVPTS4U5.js} +3 -3
  129. package/dist/{chunk-W3IC7QOY.js → chunk-RVYVMQK4.js} +3 -3
  130. package/dist/chunk-S2HLHAZ4.js +16 -0
  131. package/dist/chunk-S2HLHAZ4.js.map +1 -0
  132. package/dist/{chunk-2MRHJNWL.js → chunk-ST5IEK3H.js} +2 -2
  133. package/dist/{chunk-O4KMGRXE.js → chunk-SXWHN7GC.js} +2 -2
  134. package/dist/{chunk-KXEFRMCF.js → chunk-T6JRMVOV.js} +2 -2
  135. package/dist/{chunk-R5RFK3CB.js → chunk-U6JGQ37L.js} +2 -2
  136. package/dist/{chunk-UV72DEZD.js → chunk-UYUYZ4WY.js} +36 -10
  137. package/dist/chunk-UYUYZ4WY.js.map +1 -0
  138. package/dist/{chunk-EITZHSX6.js → chunk-V5FE3UAI.js} +2 -2
  139. package/dist/chunk-VL35ZFSZ.js +102 -0
  140. package/dist/chunk-VL35ZFSZ.js.map +1 -0
  141. package/dist/{chunk-NTOIP2E6.js → chunk-W2ZSNIBP.js} +2 -2
  142. package/dist/{chunk-QVSBTCVP.js → chunk-WHWDBTCJ.js} +2 -2
  143. package/dist/{chunk-5CEECY6P.js → chunk-WOC6DXP5.js} +3 -3
  144. package/dist/{chunk-XTAUXTDO.js → chunk-XBMJ35IP.js} +2 -2
  145. package/dist/{chunk-VOUOLGIP.js → chunk-YRFAYOFQ.js} +11 -13
  146. package/dist/chunk-YRFAYOFQ.js.map +1 -0
  147. package/dist/{chunk-P7NGM24P.js → chunk-YWCOJOUI.js} +2 -2
  148. package/dist/{chunk-6NNNURLK.js → chunk-Z54EM5YZ.js} +4 -4
  149. package/dist/{chunk-ULVR5KG7.js → chunk-ZDAYWJV6.js} +2 -2
  150. package/dist/chunk-ZDAYWJV6.js.map +1 -0
  151. package/dist/{cli-BBHDtG36.d.ts → cli-D_RcqXfZ.d.ts} +5 -5
  152. package/dist/cli.d.ts +12 -12
  153. package/dist/cli.js +61 -60
  154. package/dist/compat/checks.js +1 -1
  155. package/dist/compounding/engine.d.ts +2 -2
  156. package/dist/compounding/engine.js +6 -5
  157. package/dist/compounding/preference-consolidator.d.ts +1 -1
  158. package/dist/compression-optimizer.d.ts +1 -1
  159. package/dist/config.d.ts +1 -1
  160. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  161. package/dist/connectors/codex-materialize-runner.js +6 -5
  162. package/dist/connectors/codex-materialize.d.ts +1 -1
  163. package/dist/connectors/index.d.ts +1 -1
  164. package/dist/connectors/index.js +6 -5
  165. package/dist/consolidation-provenance-check.d.ts +2 -2
  166. package/dist/consolidation-undo.d.ts +2 -2
  167. package/dist/contradiction/index.d.ts +2 -2
  168. package/dist/converge-config.d.ts +1 -1
  169. package/dist/convergence-refresh.d.ts +2 -2
  170. package/dist/convergence-refresh.js +8 -7
  171. package/dist/conversation-index/backend.d.ts +1 -1
  172. package/dist/conversation-index/backend.js +2 -2
  173. package/dist/conversation-index/chunker.d.ts +1 -1
  174. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  175. package/dist/conversation-index/indexer.d.ts +1 -1
  176. package/dist/conversation-index/search.d.ts +1 -1
  177. package/dist/corpus-watermark.d.ts +1 -1
  178. package/dist/corpus-watermark.js +17 -16
  179. package/dist/day-summary.d.ts +1 -1
  180. package/dist/delinearize.d.ts +1 -1
  181. package/dist/direct-answer-wiring.d.ts +1 -1
  182. package/dist/direct-answer.d.ts +1 -1
  183. package/dist/embedding-fallback.d.ts +1 -1
  184. package/dist/enrichment/index.d.ts +1 -1
  185. package/dist/entity-retrieval.d.ts +2 -2
  186. package/dist/entity-retrieval.js +6 -5
  187. package/dist/entity-schema.d.ts +1 -1
  188. package/dist/explicit-capture.d.ts +8 -8
  189. package/dist/external-wiki-access.d.ts +10 -10
  190. package/dist/external-wiki-access.js +33 -32
  191. package/dist/external-wiki-cli.js +4 -90
  192. package/dist/external-wiki-cli.js.map +1 -1
  193. package/dist/external-wiki-collection-registration.d.ts +1 -1
  194. package/dist/external-wiki-collection.d.ts +1 -1
  195. package/dist/external-wiki-mcp-tools.d.ts +10 -10
  196. package/dist/external-wiki-search.js +2 -2
  197. package/dist/external-wiki.d.ts +1 -5
  198. package/dist/external-wiki.js +1 -3
  199. package/dist/extraction-error-classification.d.ts +1 -1
  200. package/dist/extraction-faithfulness.d.ts +1 -1
  201. package/dist/extraction-judge-telemetry.d.ts +1 -1
  202. package/dist/extraction-judge-training.d.ts +1 -1
  203. package/dist/extraction-judge.d.ts +1 -1
  204. package/dist/extraction-liveness.d.ts +1 -1
  205. package/dist/extraction-prompt.d.ts +36 -0
  206. package/dist/extraction-prompt.js +16 -0
  207. package/dist/extraction-prompt.js.map +1 -0
  208. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  209. package/dist/extraction-source-grounding.d.ts +1 -1
  210. package/dist/extraction.d.ts +6 -14
  211. package/dist/extraction.js +13 -10
  212. package/dist/fallback-llm.d.ts +1 -1
  213. package/dist/{first-start-migration-F2QJD66E.js → first-start-migration-ZSHEFEI3.js} +10 -12
  214. package/dist/{first-start-migration-F2QJD66E.js.map → first-start-migration-ZSHEFEI3.js.map} +1 -1
  215. package/dist/graph-dashboard-diff.d.ts +1 -1
  216. package/dist/graph-dashboard-key.d.ts +1 -1
  217. package/dist/graph-dashboard-parser.d.ts +1 -1
  218. package/dist/graph-edge-reinforcement.d.ts +1 -1
  219. package/dist/graph-snapshot.d.ts +1 -1
  220. package/dist/graph.d.ts +1 -1
  221. package/dist/importance.d.ts +1 -1
  222. package/dist/importers/index.d.ts +1 -1
  223. package/dist/in-flight-reads.d.ts +1 -1
  224. package/dist/index.d.ts +701 -697
  225. package/dist/index.js +133 -128
  226. package/dist/intent.d.ts +1 -1
  227. package/dist/lcm/engine.d.ts +1 -1
  228. package/dist/lcm/engine.js +2 -2
  229. package/dist/lcm/index.d.ts +1 -1
  230. package/dist/lcm/index.js +2 -2
  231. package/dist/lcm/tools.d.ts +1 -1
  232. package/dist/lifecycle.d.ts +1 -1
  233. package/dist/live-connectors-runner.d.ts +1 -1
  234. package/dist/local-llm.d.ts +1 -1
  235. package/dist/local-model-endpoint.d.ts +1 -1
  236. package/dist/maintenance/memory-governance.d.ts +1 -1
  237. package/dist/maintenance/memory-governance.js +6 -5
  238. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  239. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +6 -5
  240. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  241. package/dist/maintenance/rebuild-memory-projection.js +7 -6
  242. package/dist/{maintenance-D2mveyCd.d.ts → maintenance-DQrL93Uu.d.ts} +3 -3
  243. package/dist/mcp-memory-inspector-app.d.ts +10 -10
  244. package/dist/memory-action-policy.d.ts +1 -1
  245. package/dist/memory-cache.d.ts +1 -1
  246. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  247. package/dist/memory-projection-store.d.ts +1 -1
  248. package/dist/memory-provenance.d.ts +1 -1
  249. package/dist/memory-snapshot.d.ts +10 -0
  250. package/dist/memory-snapshot.js +8 -0
  251. package/dist/memory-snapshot.js.map +1 -0
  252. package/dist/memory-worth-outcomes.d.ts +2 -2
  253. package/dist/models-json.d.ts +1 -1
  254. package/dist/namespaces/migrate.d.ts +3 -3
  255. package/dist/namespaces/migrate.js +16 -15
  256. package/dist/namespaces/principal.d.ts +1 -1
  257. package/dist/namespaces/search.d.ts +1 -1
  258. package/dist/namespaces/search.js +9 -9
  259. package/dist/namespaces/storage.d.ts +3 -3
  260. package/dist/namespaces/storage.js +6 -5
  261. package/dist/native-knowledge.d.ts +1 -1
  262. package/dist/offline-sync-impression-drain.d.ts +1 -1
  263. package/dist/operator-doctor-corpus.d.ts +1 -1
  264. package/dist/operator-doctor-corpus.js +18 -17
  265. package/dist/operator-doctor-replica.d.ts +1 -1
  266. package/dist/operator-toolkit.d.ts +3 -3
  267. package/dist/operator-toolkit.js +22 -21
  268. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  269. package/dist/orchestration/maintenance.d.ts +4 -4
  270. package/dist/orchestration/maintenance.js +11 -10
  271. package/dist/{orchestrator-DJYlwiUv.d.ts → orchestrator-LPGegii3.d.ts} +8 -8
  272. package/dist/orchestrator.d.ts +8 -8
  273. package/dist/orchestrator.js +93 -89
  274. package/dist/patterns-cli.d.ts +1 -1
  275. package/dist/{pipeline-CNjY4wk3.d.ts → pipeline-1h2GpiHP.d.ts} +1 -1
  276. package/dist/policy-runtime.d.ts +1 -1
  277. package/dist/proactive-contention.d.ts +1 -1
  278. package/dist/provenance.d.ts +1 -1
  279. package/dist/{qmd-C0UDZidt.d.ts → qmd-UdwoF71D.d.ts} +1 -1
  280. package/dist/qmd-preflight.d.ts +2 -2
  281. package/dist/qmd-recall-cache.d.ts +1 -1
  282. package/dist/qmd.d.ts +2 -2
  283. package/dist/qmd.js +4 -4
  284. package/dist/recall-concurrency-config.d.ts +1 -1
  285. package/dist/recall-disclosure-escalation.d.ts +1 -1
  286. package/dist/recall-explain-renderer.d.ts +1 -1
  287. package/dist/recall-explain-renderer.js +3 -3
  288. package/dist/recall-memory-map.d.ts +1 -1
  289. package/dist/recall-planner-llm.d.ts +1 -1
  290. package/dist/recall-state.d.ts +1 -1
  291. package/dist/recall-tag-filter.d.ts +1 -1
  292. package/dist/recall-timings.d.ts +1 -1
  293. package/dist/recall-xray-cli.d.ts +1 -1
  294. package/dist/recall-xray-cli.js +4 -4
  295. package/dist/recall-xray-renderer.d.ts +1 -1
  296. package/dist/recall-xray-renderer.js +3 -3
  297. package/dist/recall-xray.d.ts +1 -1
  298. package/dist/recall-xray.js +2 -2
  299. package/dist/reconcile/cursor.d.ts +1 -1
  300. package/dist/reconcile/manifest.d.ts +1 -1
  301. package/dist/reconcile/plan.d.ts +1 -1
  302. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  303. package/dist/replay/normalizers/claude.d.ts +1 -1
  304. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  305. package/dist/replay/normalizers/shared.d.ts +1 -1
  306. package/dist/replay/runner.d.ts +1 -1
  307. package/dist/replay/types.d.ts +1 -1
  308. package/dist/replica-divergence.d.ts +1 -1
  309. package/dist/replica-peers-config.d.ts +1 -1
  310. package/dist/resolve-auth-token.d.ts +1 -1
  311. package/dist/retrieval-agents.d.ts +2 -2
  312. package/dist/retrieval-tiers.d.ts +1 -1
  313. package/dist/routing/engine.d.ts +1 -1
  314. package/dist/routing/store.d.ts +1 -1
  315. package/dist/salvage-envelope.d.ts +1 -1
  316. package/dist/schemas.d.ts +76 -76
  317. package/dist/{scope-profiles-BJzp2F5A.d.ts → scope-profiles-APjhSe-w.d.ts} +1 -1
  318. package/dist/sdk-compat.js.map +1 -1
  319. package/dist/search/embed-helper.d.ts +1 -1
  320. package/dist/search/factory.d.ts +1 -1
  321. package/dist/search/factory.js +8 -8
  322. package/dist/search/index.d.ts +1 -1
  323. package/dist/search/index.js +14 -14
  324. package/dist/search/lancedb-backend.d.ts +1 -1
  325. package/dist/search/meilisearch-backend.d.ts +1 -1
  326. package/dist/search/noop-backend.d.ts +1 -1
  327. package/dist/search/orama-backend.d.ts +1 -1
  328. package/dist/search/port.d.ts +1 -1
  329. package/dist/search/remote-backend.d.ts +1 -1
  330. package/dist/{semantic-consolidation-D4KAZO2G.d.ts → semantic-consolidation-CrySDbk3.d.ts} +1 -1
  331. package/dist/semantic-consolidation.d.ts +2 -2
  332. package/dist/semantic-consolidation.js +7 -6
  333. package/dist/semantic-rule-promotion.js +6 -5
  334. package/dist/semantic-rule-verifier.d.ts +1 -1
  335. package/dist/semantic-rule-verifier.js +6 -5
  336. package/dist/{service-BeDxSqE-.d.ts → service-DJ0LDyuN.d.ts} +2 -2
  337. package/dist/session-observer-bands.d.ts +1 -1
  338. package/dist/session-observer-state.d.ts +1 -1
  339. package/dist/shared-context/manager.d.ts +9 -9
  340. package/dist/signal.d.ts +1 -1
  341. package/dist/source-agent-qualifier.d.ts +4 -1
  342. package/dist/source-agent-qualifier.js +10 -9
  343. package/dist/{storage-DfjxusTE.d.ts → storage-y340tYKb.d.ts} +5 -2
  344. package/dist/storage.d.ts +2 -2
  345. package/dist/storage.js +5 -4
  346. package/dist/summarizer.d.ts +1 -1
  347. package/dist/summary-snapshot.d.ts +1 -1
  348. package/dist/temporal-supersession.d.ts +2 -2
  349. package/dist/temporal-timeline-recall.d.ts +1 -1
  350. package/dist/temporal-validity.d.ts +1 -1
  351. package/dist/threading.d.ts +1 -1
  352. package/dist/tier-migration.d.ts +2 -2
  353. package/dist/tier-migration.js +1 -1
  354. package/dist/tier-routing.d.ts +1 -1
  355. package/dist/topics.d.ts +1 -1
  356. package/dist/transcript.d.ts +1 -1
  357. package/dist/transfer/types.d.ts +66 -66
  358. package/dist/trust-score-stage.d.ts +1 -1
  359. package/dist/trust-score.d.ts +1 -1
  360. package/dist/{types-yX_FwERf.d.ts → types-D_Au9qJO.d.ts} +13 -2
  361. package/dist/types.d.ts +1 -1
  362. package/dist/types.js +1 -1
  363. package/dist/utility-runtime.d.ts +1 -1
  364. package/dist/verified-recall.js +6 -5
  365. package/dist/write-envelope.d.ts +1 -1
  366. package/package.json +2 -12
  367. package/src/access-http-offline-stream.ts +1 -0
  368. package/src/access-http.ts +0 -57
  369. package/src/access-operations-batch.ts +1 -1
  370. package/src/access-service-observe-lcm-parity.test.ts +45 -20
  371. package/src/access-service.ts +3 -4
  372. package/src/ambient-provenance.test.ts +510 -0
  373. package/src/ambient-provenance.ts +229 -0
  374. package/src/buffer-turn-helpers.ts +17 -1
  375. package/src/compat/checks.test.ts +45 -1
  376. package/src/compat/checks.ts +16 -16
  377. package/src/external-wiki-cli.ts +28 -20
  378. package/src/external-wiki-search.test.ts +68 -2
  379. package/src/external-wiki.ts +12 -38
  380. package/src/extraction-prompt.ts +142 -0
  381. package/src/extraction.ts +37 -148
  382. package/src/index.ts +1 -5
  383. package/src/maintenance/first-start-migration.ts +11 -11
  384. package/src/meetings/memory-gen.test.ts +51 -0
  385. package/src/meetings/memory-gen.ts +36 -8
  386. package/src/meetings/summary-extractor.ts +4 -2
  387. package/src/memory-snapshot.ts +15 -0
  388. package/src/orchestration/recall-internal.ts +5 -148
  389. package/src/orchestration/recall-profile-storage.ts +194 -0
  390. package/src/orchestration/recall-search-pipeline.ts +13 -182
  391. package/src/orchestration/recall-search-prefilter.ts +254 -0
  392. package/src/orchestration/session-context.ts +1 -1
  393. package/src/orchestrator.ts +1 -1
  394. package/src/sdk-compat.ts +2 -4
  395. package/src/source-agent-qualifier.ts +3 -0
  396. package/src/storage-contract/cache-coherence.test.ts +99 -0
  397. package/src/storage-fact-hash-index-defer.test.ts +14 -7
  398. package/src/storage.ts +47 -48
  399. package/src/testing/subjects/first-start-tier-migration.test.ts +75 -0
  400. package/src/testing/subjects/recall-profile-storage.test.ts +362 -0
  401. package/src/testing/subjects/recall-search-prefilter.test.ts +365 -0
  402. package/src/tier-migration.ts +10 -12
  403. package/src/types.ts +2 -2
  404. package/src/wearables/memory-gen.test.ts +82 -0
  405. package/src/wearables/memory-gen.ts +54 -5
  406. package/src/wearables/trust.ts +19 -2
  407. package/dist/chunk-AJQ57VV3.js.map +0 -1
  408. package/dist/chunk-DYVMXPCF.js.map +0 -1
  409. package/dist/chunk-DZPFMQZ7.js.map +0 -1
  410. package/dist/chunk-ER7W6H4T.js.map +0 -1
  411. package/dist/chunk-FZP32336.js.map +0 -1
  412. package/dist/chunk-GQL52GQ5.js.map +0 -1
  413. package/dist/chunk-MDISBSYA.js.map +0 -1
  414. package/dist/chunk-ULVR5KG7.js.map +0 -1
  415. package/dist/chunk-UV72DEZD.js.map +0 -1
  416. package/dist/chunk-VOUOLGIP.js.map +0 -1
  417. package/dist/chunk-ZI32MKDW.js.map +0 -1
  418. package/dist/chunk-ZMAYKGPN.js.map +0 -1
  419. package/dist/legacy-hook-compat.d.ts +0 -3
  420. package/dist/legacy-hook-compat.js +0 -36
  421. package/dist/legacy-hook-compat.js.map +0 -1
  422. package/src/legacy-hook-compat.test.ts +0 -20
  423. package/src/legacy-hook-compat.ts +0 -45
  424. /package/dist/{chunk-7RZJWZ46.js.map → chunk-227UFSEQ.js.map} +0 -0
  425. /package/dist/{chunk-UQWIKLQK.js.map → chunk-47J4EDGR.js.map} +0 -0
  426. /package/dist/{chunk-5SNZSWWR.js.map → chunk-5LRDM4R7.js.map} +0 -0
  427. /package/dist/{chunk-7YERSTN7.js.map → chunk-5R6S4DJZ.js.map} +0 -0
  428. /package/dist/{chunk-C26TE27X.js.map → chunk-5VQPZ4GV.js.map} +0 -0
  429. /package/dist/{chunk-U2VLVBBH.js.map → chunk-64BHFFKZ.js.map} +0 -0
  430. /package/dist/{chunk-7CITSYSH.js.map → chunk-7T4TOGMS.js.map} +0 -0
  431. /package/dist/{chunk-YMAQDHQM.js.map → chunk-BDNL34CT.js.map} +0 -0
  432. /package/dist/{chunk-JH6BPLOP.js.map → chunk-E4FOAENZ.js.map} +0 -0
  433. /package/dist/{chunk-ZFGZ6PZ2.js.map → chunk-FULKGK7P.js.map} +0 -0
  434. /package/dist/{chunk-BGHFOD5A.js.map → chunk-HJ3SVHUW.js.map} +0 -0
  435. /package/dist/{chunk-TYISDI6B.js.map → chunk-HXXTXLKA.js.map} +0 -0
  436. /package/dist/{chunk-7SHJHPTY.js.map → chunk-ILBLZ5Y5.js.map} +0 -0
  437. /package/dist/{chunk-DSUAAZZX.js.map → chunk-JFO5QZ7N.js.map} +0 -0
  438. /package/dist/{chunk-EJHEWCGQ.js.map → chunk-KA47C7BF.js.map} +0 -0
  439. /package/dist/{chunk-NUEQKLNB.js.map → chunk-KMWYZTIE.js.map} +0 -0
  440. /package/dist/{chunk-TQ4GD737.js.map → chunk-L7G72WY4.js.map} +0 -0
  441. /package/dist/{chunk-CLB32OHM.js.map → chunk-LI7OE7G6.js.map} +0 -0
  442. /package/dist/{chunk-TN76AKO3.js.map → chunk-M2INOSTA.js.map} +0 -0
  443. /package/dist/{chunk-WQIHRA5F.js.map → chunk-N3LL5NEU.js.map} +0 -0
  444. /package/dist/{chunk-HFPASSFV.js.map → chunk-P2OTGMTR.js.map} +0 -0
  445. /package/dist/{chunk-Y7HRYCNW.js.map → chunk-PFJXPOD4.js.map} +0 -0
  446. /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
  447. /package/dist/{chunk-QCECHYZL.js.map → chunk-RVO6TCTU.js.map} +0 -0
  448. /package/dist/{chunk-D3I2MCN7.js.map → chunk-RVPTS4U5.js.map} +0 -0
  449. /package/dist/{chunk-W3IC7QOY.js.map → chunk-RVYVMQK4.js.map} +0 -0
  450. /package/dist/{chunk-2MRHJNWL.js.map → chunk-ST5IEK3H.js.map} +0 -0
  451. /package/dist/{chunk-O4KMGRXE.js.map → chunk-SXWHN7GC.js.map} +0 -0
  452. /package/dist/{chunk-KXEFRMCF.js.map → chunk-T6JRMVOV.js.map} +0 -0
  453. /package/dist/{chunk-R5RFK3CB.js.map → chunk-U6JGQ37L.js.map} +0 -0
  454. /package/dist/{chunk-EITZHSX6.js.map → chunk-V5FE3UAI.js.map} +0 -0
  455. /package/dist/{chunk-NTOIP2E6.js.map → chunk-W2ZSNIBP.js.map} +0 -0
  456. /package/dist/{chunk-QVSBTCVP.js.map → chunk-WHWDBTCJ.js.map} +0 -0
  457. /package/dist/{chunk-5CEECY6P.js.map → chunk-WOC6DXP5.js.map} +0 -0
  458. /package/dist/{chunk-XTAUXTDO.js.map → chunk-XBMJ35IP.js.map} +0 -0
  459. /package/dist/{chunk-P7NGM24P.js.map → chunk-YWCOJOUI.js.map} +0 -0
  460. /package/dist/{chunk-6NNNURLK.js.map → chunk-Z54EM5YZ.js.map} +0 -0
@@ -1,65 +1,66 @@
1
1
  import {
2
2
  Orchestrator
3
- } from "./chunk-DYVMXPCF.js";
4
- import "./chunk-UV72DEZD.js";
5
- import "./chunk-6LKEUCEM.js";
6
- import "./chunk-JH6BPLOP.js";
3
+ } from "./chunk-M32URQXV.js";
4
+ import "./chunk-UYUYZ4WY.js";
5
+ import "./chunk-E4FOAENZ.js";
7
6
  import "./chunk-I74SUMNI.js";
8
7
  import "./chunk-ILNPU5W5.js";
9
8
  import "./chunk-7HYPN2GC.js";
9
+ import "./chunk-6LKEUCEM.js";
10
10
  import "./chunk-666A3MOW.js";
11
- import "./chunk-KBL3JJR6.js";
12
- import "./chunk-FQ7HAWWC.js";
13
11
  import "./chunk-VDC6RZI4.js";
14
12
  import "./chunk-UWK5OXUJ.js";
15
- import "./chunk-6NNNURLK.js";
13
+ import "./chunk-KBL3JJR6.js";
14
+ import "./chunk-FQ7HAWWC.js";
15
+ import "./chunk-Z54EM5YZ.js";
16
+ import "./chunk-TPDBFYEG.js";
16
17
  import "./chunk-UXPUUL3G.js";
17
18
  import "./chunk-DDA47TES.js";
18
19
  import "./chunk-PBGWYM3H.js";
19
20
  import "./chunk-LTAVSOZW.js";
20
21
  import "./chunk-7N4KAIGN.js";
21
- import "./chunk-TPDBFYEG.js";
22
22
  import "./chunk-V5OCT34X.js";
23
23
  import "./chunk-TECVW3JP.js";
24
24
  import "./chunk-C5JF6EZ7.js";
25
- import "./chunk-KXEFRMCF.js";
25
+ import "./chunk-T6JRMVOV.js";
26
26
  import "./chunk-M23RF3LJ.js";
27
27
  import "./chunk-LXOM6IQU.js";
28
- import "./chunk-VOUOLGIP.js";
28
+ import "./chunk-4EX5WZ4M.js";
29
+ import "./chunk-YRFAYOFQ.js";
29
30
  import "./chunk-S75M5ZRK.js";
30
31
  import "./chunk-ECZU5BJH.js";
31
32
  import "./chunk-UHGBNIOS.js";
33
+ import "./chunk-T67LUYCR.js";
32
34
  import "./chunk-I6WYQSX4.js";
33
- import "./chunk-4EX5WZ4M.js";
34
35
  import "./chunk-LLJMAULE.js";
35
36
  import "./chunk-6DNMUYEE.js";
36
- import "./chunk-T67LUYCR.js";
37
37
  import "./chunk-QFN4U7AG.js";
38
+ import "./chunk-6TCXIRP5.js";
38
39
  import "./chunk-XPRJSHNI.js";
39
40
  import "./chunk-ZOKZIR5K.js";
40
41
  import "./chunk-5IZL4DCV.js";
41
42
  import "./chunk-FQC3DHH2.js";
43
+ import "./chunk-X7XN6YU4.js";
42
44
  import "./chunk-LULR4IUW.js";
43
45
  import "./chunk-LUDXM7MD.js";
44
- import "./chunk-6TCXIRP5.js";
46
+ import "./chunk-C3AKM55W.js";
45
47
  import "./chunk-NM2WP3B7.js";
46
- import "./chunk-X7XN6YU4.js";
47
48
  import "./chunk-D3V3UMET.js";
48
49
  import "./chunk-YDBIWGNI.js";
49
- import "./chunk-C3AKM55W.js";
50
50
  import "./chunk-ZZTOURJI.js";
51
51
  import "./chunk-ROI7BK7H.js";
52
- import "./chunk-3GPTTA4J.js";
53
52
  import "./chunk-23L3IXFD.js";
53
+ import "./chunk-3GPTTA4J.js";
54
54
  import "./chunk-H63EDPFJ.js";
55
55
  import "./chunk-HTIIXNJQ.js";
56
- import "./chunk-YAZNBMNF.js";
57
- import "./chunk-OH7QLI6W.js";
58
56
  import "./chunk-PHRLJFWZ.js";
59
57
  import "./chunk-64NJRYU2.js";
60
- import "./chunk-MDISBSYA.js";
58
+ import "./chunk-YAZNBMNF.js";
59
+ import "./chunk-OH7QLI6W.js";
60
+ import "./chunk-K2TDK7GG.js";
61
+ import "./chunk-PKCLQ7KM.js";
61
62
  import "./chunk-4RA3C3EV.js";
62
- import "./chunk-ULVR5KG7.js";
63
+ import "./chunk-ZDAYWJV6.js";
63
64
  import "./chunk-CMQZNEIF.js";
64
65
  import "./chunk-54V4BZWP.js";
65
66
  import "./chunk-2CGLBUW3.js";
@@ -67,31 +68,33 @@ import "./chunk-WLZYGLJ4.js";
67
68
  import "./chunk-L6CQ7WIW.js";
68
69
  import "./chunk-WKDFJXW5.js";
69
70
  import "./chunk-JUXOTY6J.js";
71
+ import "./chunk-J7T4MX7P.js";
70
72
  import "./chunk-NK5RGJ65.js";
71
73
  import "./chunk-4POAMKV6.js";
72
74
  import "./chunk-WAS4HV46.js";
73
75
  import "./chunk-BLDBT6HZ.js";
74
76
  import "./chunk-PWFCHOB3.js";
75
- import "./chunk-K2TDK7GG.js";
76
77
  import "./chunk-TVIVY7KU.js";
77
78
  import "./chunk-YVVQUAOO.js";
78
- import "./chunk-YMAQDHQM.js";
79
+ import "./chunk-VL35ZFSZ.js";
80
+ import "./chunk-BDNL34CT.js";
79
81
  import "./chunk-SVH57F5Z.js";
80
82
  import "./chunk-DEOYTFA6.js";
81
83
  import "./chunk-LUPVCGYK.js";
82
- import "./chunk-IAIPNEHD.js";
83
84
  import "./chunk-DGFU5MSX.js";
85
+ import "./chunk-IAIPNEHD.js";
84
86
  import "./chunk-RPSYDM6C.js";
85
87
  import "./chunk-VEWZZM3H.js";
86
88
  import "./chunk-CSOYVTRX.js";
87
89
  import "./chunk-6HEM6HTQ.js";
88
90
  import "./chunk-YK6BDDHP.js";
89
- import "./chunk-DSUAAZZX.js";
90
- import "./chunk-5SNZSWWR.js";
91
- import "./chunk-MMACM5G2.js";
91
+ import "./chunk-JFO5QZ7N.js";
92
+ import "./chunk-5LRDM4R7.js";
92
93
  import "./chunk-54BGIBCR.js";
93
94
  import "./chunk-H4CKS5B2.js";
95
+ import "./chunk-MMACM5G2.js";
94
96
  import "./chunk-FXZTL7F7.js";
97
+ import "./chunk-UP6MOYCB.js";
95
98
  import "./chunk-BV2TIZ4F.js";
96
99
  import "./chunk-HDDRVXX4.js";
97
100
  import "./chunk-PYHOAXTI.js";
@@ -100,46 +103,45 @@ import "./chunk-OZKVVUJB.js";
100
103
  import "./chunk-2DL3OFLD.js";
101
104
  import "./chunk-G4IAEX6D.js";
102
105
  import "./chunk-2NLLXCJG.js";
103
- import "./chunk-UP6MOYCB.js";
104
106
  import "./chunk-765K3SAT.js";
107
+ import "./chunk-XL24QQ63.js";
105
108
  import "./chunk-FGDKJJZS.js";
106
109
  import "./chunk-AJVLDJU6.js";
107
- import "./chunk-XL24QQ63.js";
108
110
  import "./chunk-EEC4PCG5.js";
109
111
  import "./chunk-PYIFUBRK.js";
110
112
  import "./chunk-MNB5RMAY.js";
111
- import "./chunk-R5RFK3CB.js";
113
+ import "./chunk-U6JGQ37L.js";
112
114
  import "./chunk-DX3XRGLH.js";
113
115
  import "./chunk-P65YJEEL.js";
114
116
  import "./chunk-MC6XO7T4.js";
115
- import "./chunk-GQL52GQ5.js";
116
117
  import "./chunk-HSSERO3E.js";
117
118
  import "./chunk-NOUJNHWG.js";
118
- import "./chunk-NTOIP2E6.js";
119
+ import "./chunk-CDKHKZL5.js";
120
+ import "./chunk-W2ZSNIBP.js";
121
+ import "./chunk-HL4DB7TO.js";
119
122
  import "./chunk-2F6NP3NT.js";
120
123
  import "./chunk-TERNBNJB.js";
121
124
  import "./chunk-OJP3N7UK.js";
122
- import "./chunk-TYISDI6B.js";
123
- import "./chunk-P7NGM24P.js";
125
+ import "./chunk-HXXTXLKA.js";
126
+ import "./chunk-YWCOJOUI.js";
124
127
  import "./chunk-5546W5SI.js";
125
128
  import "./chunk-ZRWB5D4H.js";
126
129
  import "./chunk-HYQJQGD3.js";
127
- import "./chunk-W3IC7QOY.js";
130
+ import "./chunk-RVYVMQK4.js";
128
131
  import "./chunk-33JBK2XP.js";
129
- import "./chunk-7YERSTN7.js";
130
- import "./chunk-7SHJHPTY.js";
132
+ import "./chunk-5R6S4DJZ.js";
133
+ import "./chunk-ILBLZ5Y5.js";
131
134
  import "./chunk-KFY3SGN7.js";
132
- import "./chunk-3T74IZB3.js";
133
135
  import {
134
136
  resolvePluginEntry
135
137
  } from "./chunk-CMTINOFS.js";
136
- import "./chunk-2MRHJNWL.js";
138
+ import "./chunk-ST5IEK3H.js";
137
139
  import "./chunk-RMMVQQA6.js";
140
+ import "./chunk-3T74IZB3.js";
138
141
  import "./chunk-UR6PBX2J.js";
139
142
  import "./chunk-6GUG4YNM.js";
140
- import "./chunk-HL4DB7TO.js";
141
- import "./chunk-KVJRXN2E.js";
142
143
  import "./chunk-JXS5PDQ7.js";
144
+ import "./chunk-KVJRXN2E.js";
143
145
  import "./chunk-C7SRUWBW.js";
144
146
  import "./chunk-OZKOPQCM.js";
145
147
  import "./chunk-3PY7VHV7.js";
@@ -148,21 +150,22 @@ import "./chunk-YNDLCWXS.js";
148
150
  import "./chunk-AUDJPF4N.js";
149
151
  import "./chunk-44442YCH.js";
150
152
  import "./chunk-Y4Z4I6WK.js";
153
+ import "./chunk-OKTXM5H4.js";
151
154
  import "./chunk-HAYSYUAB.js";
152
- import "./chunk-5CEECY6P.js";
155
+ import "./chunk-WOC6DXP5.js";
153
156
  import "./chunk-KJTKLXTH.js";
154
157
  import "./chunk-2DQ2XREU.js";
155
158
  import "./chunk-LMDRGRJ2.js";
156
159
  import "./chunk-3I4FUAVJ.js";
157
- import "./chunk-OKTXM5H4.js";
158
- import "./chunk-TN76AKO3.js";
160
+ import "./chunk-M2INOSTA.js";
159
161
  import "./chunk-JLNBQWZ2.js";
162
+ import "./chunk-B7RWBZXW.js";
160
163
  import "./chunk-YBPYIAA5.js";
161
164
  import "./chunk-66SLUXKM.js";
162
165
  import "./chunk-P4BC54KI.js";
163
166
  import "./chunk-UQ7RN5HK.js";
164
- import "./chunk-U2VLVBBH.js";
165
- import "./chunk-ER7W6H4T.js";
167
+ import "./chunk-64BHFFKZ.js";
168
+ import "./chunk-2AD5SXO4.js";
166
169
  import "./chunk-7BZOBA5J.js";
167
170
  import {
168
171
  parseConfig
@@ -176,33 +179,33 @@ import "./chunk-NLDVVWCL.js";
176
179
  import "./chunk-JV3C2MNQ.js";
177
180
  import "./chunk-OO42R444.js";
178
181
  import "./chunk-PIG4WJFQ.js";
182
+ import "./chunk-QW27DOHG.js";
179
183
  import "./chunk-LBJBNWS2.js";
180
184
  import "./chunk-KD3QD3A5.js";
181
185
  import "./chunk-MYVPLJOO.js";
182
186
  import "./chunk-H3FZVNRN.js";
183
187
  import "./chunk-KFZY2OFH.js";
184
- import "./chunk-B7RWBZXW.js";
185
- import "./chunk-XSFHWBQO.js";
188
+ import "./chunk-2DSUT7DZ.js";
186
189
  import "./chunk-V7IZKJI3.js";
190
+ import "./chunk-MKQBXQKU.js";
187
191
  import "./chunk-SEDEKFYQ.js";
188
- import "./chunk-2QSZNTDO.js";
192
+ import "./chunk-RKNJBZ55.js";
193
+ import "./chunk-J64TK33U.js";
189
194
  import "./chunk-RSUYKGGZ.js";
190
195
  import "./chunk-42NQ7AVG.js";
191
196
  import "./chunk-TMSXWOBZ.js";
192
- import "./chunk-MKQBXQKU.js";
193
- import "./chunk-J64TK33U.js";
194
197
  import "./chunk-7RXCMVFQ.js";
195
198
  import "./chunk-6ZYQ36IB.js";
196
- import "./chunk-XTAUXTDO.js";
199
+ import "./chunk-XBMJ35IP.js";
197
200
  import "./chunk-WB7JSQCP.js";
198
201
  import "./chunk-A5KNZSNA.js";
199
202
  import "./chunk-D24OXEPB.js";
200
- import "./chunk-BGHFOD5A.js";
201
- import "./chunk-D3I2MCN7.js";
202
- import "./chunk-7CITSYSH.js";
203
- import "./chunk-ZMAYKGPN.js";
203
+ import "./chunk-HJ3SVHUW.js";
204
+ import "./chunk-RVPTS4U5.js";
205
+ import "./chunk-7T4TOGMS.js";
206
+ import "./chunk-7YQ6ESEA.js";
204
207
  import "./chunk-NIS256NW.js";
205
- import "./chunk-AJQ57VV3.js";
208
+ import "./chunk-6H744ZBH.js";
206
209
  import "./chunk-HNZKVLAN.js";
207
210
  import "./chunk-EQWEIIKQ.js";
208
211
  import "./chunk-UTRO5UJU.js";
@@ -214,33 +217,33 @@ import "./chunk-56BSXSHC.js";
214
217
  import "./chunk-YYQAKIDJ.js";
215
218
  import "./chunk-44N6ESJ4.js";
216
219
  import "./chunk-TQZ4DVBC.js";
217
- import "./chunk-WGP57SR3.js";
220
+ import "./chunk-CK5KOVHW.js";
218
221
  import "./chunk-OADWQ5CR.js";
219
- import "./chunk-QVSBTCVP.js";
222
+ import "./chunk-WHWDBTCJ.js";
220
223
  import {
221
224
  EngramAccessService,
222
225
  getOperation
223
- } from "./chunk-ZI32MKDW.js";
226
+ } from "./chunk-RCU25Z66.js";
224
227
  import "./chunk-GDASG7NC.js";
225
228
  import "./chunk-GDB4J2H3.js";
226
229
  import "./chunk-A4JMGKCD.js";
227
230
  import "./chunk-VQ7B2Q6M.js";
228
231
  import "./chunk-PJSK6OJM.js";
229
- import "./chunk-JGSKJHF7.js";
230
232
  import "./chunk-GNVZQ5JN.js";
231
233
  import "./chunk-YN2UN7N3.js";
234
+ import "./chunk-JGSKJHF7.js";
232
235
  import "./chunk-P5FPO2BR.js";
233
236
  import "./chunk-S4DDLTPX.js";
234
- import "./chunk-O4KMGRXE.js";
235
- import "./chunk-SOBJ6NEY.js";
236
- import "./chunk-HFPASSFV.js";
237
237
  import "./chunk-AHVEHR6K.js";
238
238
  import "./chunk-H7XKCNR6.js";
239
- import "./chunk-EJHEWCGQ.js";
239
+ import "./chunk-SXWHN7GC.js";
240
+ import "./chunk-SOBJ6NEY.js";
241
+ import "./chunk-P2OTGMTR.js";
242
+ import "./chunk-KA47C7BF.js";
243
+ import "./chunk-CVILPI77.js";
240
244
  import "./chunk-ICP53SKG.js";
241
245
  import "./chunk-AQEJKOKI.js";
242
246
  import "./chunk-6HMYUWXR.js";
243
- import "./chunk-CVILPI77.js";
244
247
  import "./chunk-EIR5VLIH.js";
245
248
  import "./chunk-IISBCCWR.js";
246
249
  import "./chunk-JYIFGGEM.js";
@@ -253,44 +256,46 @@ import "./chunk-NLE6TSLG.js";
253
256
  import "./chunk-QDW3E4RD.js";
254
257
  import "./chunk-S5NZBKKQ.js";
255
258
  import "./chunk-C37ZRXX7.js";
256
- import "./chunk-EITZHSX6.js";
257
- import "./chunk-Y7HRYCNW.js";
258
- import "./chunk-C26TE27X.js";
259
- import "./chunk-NUEQKLNB.js";
260
- import "./chunk-UQWIKLQK.js";
259
+ import "./chunk-UFGFMWAD.js";
260
+ import "./chunk-V5FE3UAI.js";
261
+ import "./chunk-PFJXPOD4.js";
262
+ import "./chunk-5VQPZ4GV.js";
263
+ import "./chunk-KMWYZTIE.js";
264
+ import "./chunk-47J4EDGR.js";
265
+ import "./chunk-XL3TATMJ.js";
266
+ import "./chunk-VANZKHTN.js";
261
267
  import "./chunk-CYEPCZN5.js";
262
268
  import "./chunk-YLHM5BQQ.js";
263
269
  import "./chunk-VYISFWVX.js";
264
- import "./chunk-GWFSVJ4P.js";
265
- import "./chunk-XL3TATMJ.js";
266
- import "./chunk-VANZKHTN.js";
267
270
  import "./chunk-W7IGLX4G.js";
271
+ import "./chunk-GWFSVJ4P.js";
268
272
  import "./chunk-GUMZC2BO.js";
269
- import "./chunk-CLB32OHM.js";
270
- import "./chunk-7RZJWZ46.js";
271
- import "./chunk-A7Q43EUZ.js";
273
+ import "./chunk-LI7OE7G6.js";
274
+ import "./chunk-227UFSEQ.js";
272
275
  import "./chunk-ET356KSB.js";
273
276
  import "./chunk-72A4L5JJ.js";
277
+ import "./chunk-A7Q43EUZ.js";
274
278
  import "./chunk-3ONXXHQO.js";
275
- import "./chunk-UFGFMWAD.js";
276
- import "./chunk-ZFGZ6PZ2.js";
279
+ import "./chunk-ZY2MNJR6.js";
280
+ import "./chunk-FULKGK7P.js";
277
281
  import "./chunk-KSXJOC4F.js";
278
282
  import "./chunk-L2DPF4DF.js";
279
283
  import "./chunk-2LSZVONP.js";
280
284
  import "./chunk-DEUNUKTD.js";
281
285
  import "./chunk-W4FBGYGK.js";
282
- import "./chunk-TQ4GD737.js";
283
- import "./chunk-FZP32336.js";
284
- import "./chunk-UHVXE24Y.js";
286
+ import "./chunk-L7G72WY4.js";
287
+ import "./chunk-IDE5AR5W.js";
285
288
  import "./chunk-ENTCVTQR.js";
289
+ import "./chunk-UHVXE24Y.js";
286
290
  import "./chunk-SXIMQLGV.js";
287
291
  import "./chunk-S2V7RUCL.js";
288
292
  import "./chunk-J6A3CX5N.js";
289
- import "./chunk-DZPFMQZ7.js";
293
+ import "./chunk-3S63QIFQ.js";
294
+ import "./chunk-S2HLHAZ4.js";
290
295
  import "./chunk-SCU65EZI.js";
291
296
  import "./chunk-WRJVB3C2.js";
292
- import "./chunk-DM2T26WE.js";
293
297
  import "./chunk-LDXUBPMO.js";
298
+ import "./chunk-DM2T26WE.js";
294
299
  import "./chunk-JYIJNNN3.js";
295
300
  import "./chunk-AAD2ZS6P.js";
296
301
  import "./chunk-SYUBB3WM.js";
@@ -305,12 +310,12 @@ import "./chunk-PDJTHRAW.js";
305
310
  import "./chunk-NZBZ7IS2.js";
306
311
  import "./chunk-DNHVPZOD.js";
307
312
  import "./chunk-6CIAGZ6X.js";
308
- import "./chunk-WQIHRA5F.js";
313
+ import "./chunk-N3LL5NEU.js";
309
314
  import "./chunk-PD6O7AXF.js";
310
- import "./chunk-QCECHYZL.js";
315
+ import "./chunk-RVO6TCTU.js";
311
316
  import "./chunk-URS5GSM7.js";
312
- import "./chunk-ZLQ37WJX.js";
313
317
  import "./chunk-IUM3VSHI.js";
318
+ import "./chunk-ZLQ37WJX.js";
314
319
  import "./chunk-OD4FM2U7.js";
315
320
  import "./chunk-XMMESCPD.js";
316
321
  import "./chunk-42JKGUFJ.js";
@@ -320,7 +325,6 @@ import "./chunk-L2EXJQJP.js";
320
325
  import "./chunk-45GF7Y3V.js";
321
326
  import "./chunk-RGMVMVMF.js";
322
327
  import "./chunk-N7RWREIQ.js";
323
- import "./chunk-ZY2MNJR6.js";
324
328
  import "./chunk-P32IDSHD.js";
325
329
  import "./chunk-WNIUPHWV.js";
326
330
  import "./chunk-IJ6WHMFB.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-cli.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseConfig } from \"./config.js\";\nimport type { PluginConfig } from \"./types.js\";\nimport { Orchestrator } from \"./orchestrator.js\";\nimport { EngramAccessService } from \"./access-service.js\";\nimport { readEnvVar, resolveHomeDir } from \"./runtime/env.js\";\nimport { resolvePluginEntry } from \"./plugin-entry-resolver.js\";\nimport { expandTildePath } from \"./utils/path.js\";\nimport { getOperation } from \"./access-boundary.js\";\n// Importing access-operations registers the pilot boundary operations as a\n// side effect; the store command dispatches through the registry (issue #1525).\nimport \"./access-operations.js\";\nimport { projectTagProjectId } from \"./coding/coding-namespace.js\";\n\nconst OPENCLAW_REMNIC_PLUGIN_IDS = [\"openclaw-remnic\", \"openclaw-engram\"] as const;\n\ntype CommandName =\n | \"browse\"\n | \"store\"\n | \"extraction-flush\"\n | \"decision\"\n | \"architecture\"\n | \"delta\"\n | \"correct\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<string>;\n};\n\ntype CommandSpec = {\n valueOptions: ReadonlySet<string>;\n flagOptions: ReadonlySet<string>;\n};\n\ntype Runtime = {\n config: PluginConfig;\n service: EngramAccessService;\n};\n\nexport type AccessCliOptions = {\n /**\n * The calling plugin's own id (e.g. `\"openclaw-engram\"` when invoked by the\n * shim binary). Forwarded to the plugin-entry resolver so shim CLI\n * users target their own `plugins.entries[\"openclaw-engram\"]` block instead\n * of accidentally resolving to the canonical `\"openclaw-remnic\"` entry when\n * `plugins.slots.memory` is unset (#403).\n */\n preferredId?: string;\n};\n\nfunction getOpenClawPluginEntries(raw: Record<string, unknown>): Record<string, unknown> | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const entries =\n plugins && plugins[\"entries\"] && typeof plugins[\"entries\"] === \"object\" && !Array.isArray(plugins[\"entries\"])\n ? (plugins[\"entries\"] as Record<string, unknown>)\n : undefined;\n return entries;\n}\n\nfunction getOpenClawMemorySlotId(raw: Record<string, unknown>): string | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const slots =\n plugins && plugins[\"slots\"] && typeof plugins[\"slots\"] === \"object\" && !Array.isArray(plugins[\"slots\"])\n ? (plugins[\"slots\"] as Record<string, unknown>)\n : undefined;\n const slotId = slots?.[\"memory\"];\n return typeof slotId === \"string\" ? slotId : undefined;\n}\n\nfunction resolveOpenClawRemnicPluginEntry(raw: unknown, preferredId?: string): Record<string, unknown> | undefined {\n return resolvePluginEntry(raw, {\n candidateIds: OPENCLAW_REMNIC_PLUGIN_IDS,\n preferredId,\n getEntries: getOpenClawPluginEntries,\n getSlotId: getOpenClawMemorySlotId,\n });\n}\n\nfunction hasAllowedOpenClawRemnicPluginId(value: string): boolean {\n return (OPENCLAW_REMNIC_PLUGIN_IDS as readonly string[]).includes(value);\n}\n\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\n | \"unknown-option\"\n | \"invalid-option\"\n | \"option-does-not-take-value\"\n | \"missing-option\"\n | \"missing-content\"\n | \"invalid-integer\"\n | \"invalid-number\";\n\nclass UsageError extends Error {\n constructor(\n readonly kind: UsageErrorKind,\n readonly optionName?: string,\n readonly acceptedValues?: readonly string[],\n ) {\n super(\"invalid access-cli arguments\");\n }\n}\n\nfunction formatUsageError(error: UsageError): string {\n switch (error.kind) {\n case \"unsupported-command\":\n return \"unsupported command\";\n case \"unexpected-positional\":\n return \"unexpected positional argument\";\n case \"unknown-option\":\n return `unknown option: --${error.optionName ?? \"unknown\"}`;\n case \"invalid-option\": {\n const accepted = error.acceptedValues?.length ? `. Accepted: ${error.acceptedValues.join(\", \")}.` : \"\";\n return `invalid value for --${error.optionName ?? \"unknown\"}${accepted}`;\n }\n case \"option-does-not-take-value\":\n return `option does not accept a value: --${error.optionName ?? \"unknown\"}`;\n case \"missing-option\":\n return `missing required option: --${error.optionName ?? \"unknown\"}`;\n case \"missing-content\":\n return \"missing required option: --content or --content-file\";\n case \"invalid-integer\":\n return `invalid integer for --${error.optionName ?? \"unknown\"}`;\n case \"invalid-number\":\n return `invalid number for --${error.optionName ?? \"unknown\"}`;\n }\n}\n\nfunction writeCliOutput(text: string = \"\"): void {\n process.stdout.write(`${text}\\n`);\n}\n\nfunction usage(): string {\n return [\n \" engram-access browse [options]\",\n \" engram-access store [options]\",\n \" engram-access extraction-flush [options]\",\n \" engram-access decision [options]\",\n \" engram-access architecture [options]\",\n \" engram-access delta [options]\",\n \" engram-access correct [options]\",\n \"\",\n \"Browse options:\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --query <text>\",\n \" --category <name>\",\n \" --status <name>\",\n \" --sort <updated_desc|updated_asc|created_desc|created_asc>\",\n \" --limit <n>\",\n \" --offset <n>\",\n \"\",\n \"Store options:\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --content <text> | --content-file <path>\",\n \" --category <name>\",\n \" --confidence <0-1>\",\n \" --tag <tag> (repeatable)\",\n \" --entity-ref <ref>\",\n \" --ttl <duration>\",\n \" --source-reason <text>\",\n \" --idempotency-key <key>\",\n \" --dry-run\",\n \"\",\n \"Extraction flush options:\",\n \" --session-key <key>\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --cwd <path>\",\n \" --project-tag <tag>\",\n \" --deadline-ms <timestamp>\",\n \"\",\n \"Decision options:\",\n \" --subcommand <list|get|record|supersede>\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --id <id> (get/supersede)\",\n \" --title <title> (record/supersede)\",\n \" --status <proposed|accepted|superseded|rejected> (record)\",\n \" --context <text> (record/supersede)\",\n \" --decision <text> (record/supersede)\",\n \" --consequences <text> (record/supersede)\",\n \" --entity-ref <ref> (repeatable)\",\n \" --project-tag <tag> (attach coding context for this invocation)\",\n \" --supersedes-id <id> (alias for --id on supersede)\",\n \"\",\n \"Architecture options:\",\n \" --subcommand <get|refresh>\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --project-tag <tag> (attach coding context for this invocation)\",\n \" --repo-root <path> (repo to scan for refresh; defaults to the current directory)\",\n \"\",\n \"Correct options (issue #1580 — one plan/apply pipeline for all corrections):\",\n \" --text \\\"<correction>\\\" plan a correction from natural language\",\n \" --id <memoryId> (repeatable) explicit target memory ids\",\n \" --apply apply a pending plan (requires --plan-id + --confirm)\",\n \" --plan-id <id> the plan to apply or discard\",\n \" --confirm confirm the apply (safety guard, rule 48)\",\n \" --list list pending plans\",\n \" --discard discard a pending plan (requires --plan-id)\",\n \" --namespace <name> namespace (validated by policy)\",\n \" --session-key <key> session identifier for namespace resolution\",\n \" --principal <principal>\",\n ].join(\"\\n\");\n}\n\nconst COMMAND_SPECS: Record<CommandName, CommandSpec> = {\n browse: {\n valueOptions: new Set([\n \"namespace\",\n \"principal\",\n \"query\",\n \"category\",\n \"status\",\n \"sort\",\n \"limit\",\n \"offset\",\n ]),\n flagOptions: new Set(),\n },\n store: {\n valueOptions: new Set([\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"content\",\n \"content-file\",\n \"category\",\n \"confidence\",\n \"tag\",\n \"entity-ref\",\n \"ttl\",\n \"source-reason\",\n \"idempotency-key\",\n ]),\n flagOptions: new Set([\"dry-run\"]),\n },\n \"extraction-flush\": {\n valueOptions: new Set([\"session-key\", \"namespace\", \"principal\", \"cwd\", \"project-tag\", \"deadline-ms\"]),\n flagOptions: new Set(),\n },\n decision: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"id\",\n \"title\",\n \"status\",\n \"context\",\n \"decision\",\n \"consequences\",\n \"entity-ref\",\n \"project-tag\",\n \"supersedes-id\",\n ]),\n flagOptions: new Set(),\n },\n architecture: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"project-tag\",\n \"repo-root\",\n ]),\n flagOptions: new Set(),\n },\n delta: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"project-tag\",\n \"repo-root\",\n ]),\n flagOptions: new Set(),\n },\n correct: {\n valueOptions: new Set([\n \"text\",\n \"id\",\n \"plan-id\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n ]),\n flagOptions: new Set([\"apply\", \"list\", \"discard\", \"confirm\", \"yes\"]),\n },\n};\nconst BROWSE_SORT_VALUES = Object.freeze([\n \"updated_desc\",\n \"updated_asc\",\n \"created_desc\",\n \"created_asc\",\n] as const);\n\ntype BrowseSort = (typeof BROWSE_SORT_VALUES)[number];\n\n/**\n * Type guard for {@link CommandName}. Enumerating the union (rather than a\n * bare `value in COMMAND_SPECS`) is what lets TypeScript NARROW the string\n * to `CommandName` — the `in` operator alone yields TS2322 on the\n * `command: commandRaw` assignment below (codex review P2).\n */\nfunction isCommandName(value: string): value is CommandName {\n return (\n value === \"browse\" ||\n value === \"store\" ||\n value === \"extraction-flush\" ||\n value === \"decision\" ||\n value === \"architecture\" ||\n value === \"delta\" ||\n value === \"correct\"\n );\n}\n\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (!isCommandName(commandRaw)) {\n throw new UsageError(\"unsupported-command\");\n }\n const spec = COMMAND_SPECS[commandRaw];\n\n const options: Record<string, string[]> = {};\n const flags = new Set<string>();\n\n for (let i = 0; i < rest.length; i += 1) {\n const token = rest[i];\n if (!token.startsWith(\"--\")) {\n throw new UsageError(\"unexpected-positional\");\n }\n const rawKey = token.slice(2);\n if (!rawKey) {\n throw new UsageError(\"unknown-option\", rawKey);\n }\n const equalsIndex = rawKey.indexOf(\"=\");\n const key = equalsIndex === -1 ? rawKey : rawKey.slice(0, equalsIndex);\n const inlineValue = equalsIndex === -1 ? undefined : rawKey.slice(equalsIndex + 1);\n\n if (!spec.valueOptions.has(key) && !spec.flagOptions.has(key)) {\n throw new UsageError(\"unknown-option\", key);\n }\n\n if (spec.flagOptions.has(key)) {\n if (inlineValue !== undefined) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n const next = rest[i + 1];\n if (next && !next.startsWith(\"--\")) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n flags.add(key);\n continue;\n }\n\n if (inlineValue !== undefined) {\n if (inlineValue.length === 0) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(inlineValue);\n continue;\n }\n\n const next = rest[i + 1];\n if (next === undefined || next.length === 0 || next.startsWith(\"--\")) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(next);\n i += 1;\n }\n\n return {\n command: commandRaw,\n options,\n flags,\n };\n}\n\nfunction getLastOption(args: ParsedArgs, name: string): string | undefined {\n const values = args.options[name];\n if (!values || values.length === 0) return undefined;\n return values[values.length - 1];\n}\n\nfunction getAllOptions(args: ParsedArgs, name: string): string[] {\n return args.options[name] ?? [];\n}\n\nfunction requireOption(args: ParsedArgs, name: string): string {\n const value = getLastOption(args, name);\n if (!value || value.trim().length === 0) {\n throw new UsageError(\"missing-option\", name);\n }\n return value;\n}\n\nfunction parseIntegerOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n const value = Number(trimmed);\n if (!Number.isSafeInteger(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-option\", name, [`integer >= ${options.min}`]);\n }\n return value;\n}\n\nfunction parseBrowseSortOption(args: ParsedArgs, name: string): BrowseSort | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n if ((BROWSE_SORT_VALUES as readonly string[]).includes(raw)) {\n return raw as BrowseSort;\n }\n throw new UsageError(\"invalid-option\", name, BROWSE_SORT_VALUES);\n}\n\nfunction parseFloatOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number; max?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?$/i.test(trimmed)) {\n throw new UsageError(\"invalid-number\", name);\n }\n const value = Number(trimmed);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.max !== undefined && value > options.max) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n expandOptionalPath(readEnvVar(\"OPENCLAW_CONFIG_PATH\")) ||\n expandOptionalPath(readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\")) ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const slotId =\n raw && typeof raw === \"object\" && !Array.isArray(raw)\n ? getOpenClawMemorySlotId(raw as Record<string, unknown>)\n : undefined;\n if (typeof slotId === \"string\" && !hasAllowedOpenClawRemnicPluginId(slotId)) {\n throw new Error(\n `OpenClaw memory slot points to non-Remnic plugin \"${slotId}\"; refusing to use default Remnic access config.`,\n );\n }\n // Delegate slot → preferredId → canonical → legacy resolution to the\n // generic helper so all config loaders stay in sync (#403). Shim CLI\n // callers pass `preferredId: \"openclaw-engram\"` so legacy shim installs\n // target their own config block instead of falling through to the canonical\n // \"openclaw-remnic\" entry.\n const entry = resolveOpenClawRemnicPluginEntry(raw, preferredId);\n if (!entry) {\n throw new Error(\n \"OpenClaw config does not contain an allowed Remnic plugin entry; refusing to use default Remnic access config.\",\n );\n }\n return (entry?.[\"config\"] as Record<string, unknown> | undefined) ?? {};\n}\n\nfunction buildRuntime(preferredId?: string): Runtime {\n const config = parseConfig(loadPluginConfig(preferredId));\n return {\n config,\n service: new EngramAccessService(new Orchestrator(config)),\n };\n}\n\nasync function runBrowse(args: ParsedArgs, preferredId?: string): Promise<void> {\n const browseArgs = {\n namespace: getLastOption(args, \"namespace\"),\n principal: getLastOption(args, \"principal\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: parseBrowseSortOption(args, \"sort\"),\n limit: parseIntegerOption(args, \"limit\", { min: 1 }),\n offset: parseIntegerOption(args, \"offset\", { min: 0 }),\n };\n const { config, service } = buildRuntime(preferredId);\n const request = {\n namespace: browseArgs.namespace,\n authenticatedPrincipal: browseArgs.principal ?? config.agentAccessHttp.principal,\n query: browseArgs.query,\n category: browseArgs.category,\n status: browseArgs.status,\n sort: browseArgs.sort,\n limit: browseArgs.limit,\n offset: browseArgs.offset,\n };\n const result = await service.memoryBrowse(request);\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile\n ? fs.readFileSync(expandTildePath(contentFile), \"utf8\")\n : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n const storeArgs = {\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\", { min: 0, max: 1 }),\n tags: getAllOptions(args, \"tag\"),\n entityRef: getLastOption(args, \"entity-ref\"),\n ttl: getLastOption(args, \"ttl\"),\n sourceReason: getLastOption(args, \"source-reason\"),\n idempotencyKey: getLastOption(args, \"idempotency-key\"),\n dryRun: args.flags.has(\"dry-run\"),\n };\n\n const { config, service } = buildRuntime(preferredId);\n // Migrated through the access boundary (issue #1525): the store command\n // dispatches through the same registry entry as the MCP tool and HTTP\n // route, so validation/normalization is owned in ONE place. The CLI has no\n // write-quota hook (it is a one-shot process), so no hooks are forwarded.\n const op = getOperation(\"memory_store\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: memory_store\");\n }\n const output = (await op.run(\n {\n namespace: storeArgs.namespace,\n sessionKey: storeArgs.sessionKey,\n content: storeArgs.content,\n category: storeArgs.category,\n confidence: storeArgs.confidence,\n tags: storeArgs.tags,\n entityRef: storeArgs.entityRef,\n ttl: storeArgs.ttl,\n sourceReason: storeArgs.sourceReason,\n idempotencyKey: storeArgs.idempotencyKey,\n dryRun: storeArgs.dryRun,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\nasync function runExtractionFlush(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const op = getOperation(\"extraction_force_flush\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: extraction_force_flush\");\n }\n const output = (await op.run(\n {\n sessionKey: requireOption(args, \"session-key\"),\n namespace: getLastOption(args, \"namespace\"),\n cwd: expandOptionalPath(getLastOption(args, \"cwd\")),\n projectTag: getLastOption(args, \"project-tag\"),\n deadlineMs: parseIntegerOption(args, \"deadline-ms\", { min: 0 }),\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\nfunction expandOptionalPath(value: string | undefined): string | undefined {\n return value === undefined ? undefined : expandTildePath(value);\n}\n\n/**\n * Decision-record surface (issue #1548 Track A PR 2). Dispatches through the\n * same `coding_decision` operation as the MCP tool and HTTP route — one\n * validation boundary, three transports.\n */\nasync function runDecision(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // The CLI creates a fresh Orchestrator per invocation, so the session\n // coding-context map is empty. If --project-tag + --session-key are\n // provided, attach a coding context BEFORE dispatching so the gate\n // passes and project-scoped writes resolve to the right namespace\n // (review P2).\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (projectTag && projectTag.trim().length > 0 && sessionKey && sessionKey.trim().length > 0) {\n const projectId = projectTagProjectId(projectTag.trim());\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: projectId,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_decision\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_decision\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n id: getLastOption(args, \"id\"),\n supersedesId: getLastOption(args, \"supersedes-id\"),\n title: getLastOption(args, \"title\"),\n status: getLastOption(args, \"status\"),\n context: getLastOption(args, \"context\"),\n decision: getLastOption(args, \"decision\"),\n consequences: getLastOption(args, \"consequences\"),\n entityRefs: getAllOptions(args, \"entity-ref\"),\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Architecture-card surface (issue #1548 Track A PR 3). Dispatches through\n * the same `coding_architecture` operation as the MCP tool and HTTP route —\n * one validation boundary, three transports.\n */\nasync function runArchitecture(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // Same coding-context attachment as runDecision (review P2): the CLI's\n // fresh Orchestrator has an empty session coding-context map, so attach\n // a context BEFORE dispatching when --project-tag + --session-key are\n // given, so the gate passes and writes resolve to the right namespace.\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (sessionKey && sessionKey.trim().length > 0) {\n // refresh scans codingContext.rootPath, so it must be a REAL checkout\n // path. Default to the CWD (or an explicit --repo-root) so a one-shot\n // CLI refresh scans the caller's repo, not a non-existent tag path.\n const repoRoot = expandOptionalPath(getLastOption(args, \"repo-root\")) ?? process.cwd();\n // --project-tag supplies the context id (namespace); when absent, derive\n // a default from the repo-root basename so refresh works with just\n // --session-key + --repo-root (codex review).\n const projectId =\n projectTag && projectTag.trim().length > 0\n ? projectTagProjectId(projectTag.trim())\n : projectTagProjectId(path.basename(repoRoot));\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: repoRoot,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_architecture\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_architecture\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Session-delta surface (issue #1548 Track A PR 4). Dispatches through the\n * same `coding_delta` operation as the MCP tool and HTTP route — one\n * validation boundary, three transports.\n */\nasync function runDelta(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // Same coding-context attachment as runArchitecture/runDecision: the CLI's\n // fresh Orchestrator has an empty session coding-context map, so attach a\n // context BEFORE dispatching so the gate passes.\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (sessionKey && sessionKey.trim().length > 0) {\n const repoRoot = expandOptionalPath(getLastOption(args, \"repo-root\")) ?? process.cwd();\n const projectId =\n projectTag && projectTag.trim().length > 0\n ? projectTagProjectId(projectTag.trim())\n : projectTagProjectId(path.basename(repoRoot));\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: repoRoot,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_delta\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_delta\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Correction Contract surface (issue #1580). Dispatches through the same\n * `memory_correct_plan` / `memory_correct_apply` operations as the MCP tool\n * and HTTP route — one validation boundary, three transports.\n *\n * Modes:\n * remnic correct \"<text>\" [--id <id>...] → plan + print diff\n * remnic correct --apply <planId> [--confirm] → apply a pending plan\n * remnic correct --list → list pending plans\n * remnic correct --discard <planId> → discard a pending plan\n */\nasync function runCorrect(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const principal = getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal;\n const namespace = getLastOption(args, \"namespace\");\n const sessionKey = getLastOption(args, \"session-key\");\n\n if (args.flags.has(\"list\")) {\n const plans = await service.correctionListPending({\n ...(namespace ? { namespace } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n principal,\n });\n console.log(JSON.stringify(plans, null, 2));\n return;\n }\n\n if (args.flags.has(\"discard\")) {\n const planId = requireOption(args, \"plan-id\");\n await service.correctionDiscard(planId, {\n ...(namespace ? { namespace } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n principal,\n });\n console.log(JSON.stringify({ discarded: planId }));\n return;\n }\n\n if (args.flags.has(\"apply\")) {\n const planId = requireOption(args, \"plan-id\");\n const op = getOperation(\"memory_correct_apply\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: memory_correct_apply\");\n }\n const output = (await op.run(\n {\n planId,\n confirm: args.flags.has(\"confirm\") || args.flags.has(\"yes\"),\n ...(sessionKey ? { sessionKey } : {}),\n ...(namespace ? { namespace } : {}),\n },\n { service, authenticatedPrincipal: principal },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n return;\n }\n\n // Default mode: plan from text — dispatch through the boundary operation\n // so schema validation + namespace policy reach this path (same as MCP/HTTP).\n const text = requireOption(args, \"text\");\n const targetIds = getAllOptions(args, \"id\");\n const planOp = getOperation(\"memory_correct_plan\");\n if (!planOp) {\n throw new Error(\"access-boundary: operation not registered: memory_correct_plan\");\n }\n const planOutput = (await planOp.run(\n {\n text,\n ...(targetIds.length > 0 ? { targetIds } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n ...(namespace ? { namespace } : {}),\n },\n { service, authenticatedPrincipal: principal },\n )) as { result: unknown };\n console.log(JSON.stringify(planOutput.result, null, 2));\n}\n\nexport async function main(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n const args = parseArgs(argv);\n if (args.command === \"browse\") {\n await runBrowse(args, options.preferredId);\n return;\n }\n if (args.command === \"extraction-flush\") {\n await runExtractionFlush(args, options.preferredId);\n return;\n }\n if (args.command === \"decision\") {\n await runDecision(args, options.preferredId);\n return;\n }\n if (args.command === \"architecture\") {\n await runArchitecture(args, options.preferredId);\n return;\n }\n if (args.command === \"delta\") {\n await runDelta(args, options.preferredId);\n return;\n }\n if (args.command === \"correct\") {\n await runCorrect(args, options.preferredId);\n return;\n }\n await runStore(args, options.preferredId);\n}\n\nexport function sanitizeAccessCliErrorMessage(message: string): string {\n return message.replace(\n /\\b(openaiApiKey|localLlmApiKey)\\b(\\s*[:=]\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\s,}\\]]+)/gi,\n (_match, name: string, separator: string) => `${name}${separator}[redacted]`,\n );\n}\n\nexport function printUsage(): void {\n writeCliOutput(usage());\n}\n\nexport async function runCli(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n try {\n await main(argv, options);\n } catch (error) {\n if (error instanceof UsageError) {\n writeCliOutput(formatUsageError(error));\n writeCliOutput();\n printUsage();\n process.exit(1);\n }\n\n console.error(\"access-cli failed: runtime error\");\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["next"]}
1
+ {"version":3,"sources":["../src/access-cli.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { parseConfig } from \"./config.js\";\nimport type { PluginConfig } from \"./types.js\";\nimport { Orchestrator } from \"./orchestrator.js\";\nimport { EngramAccessService } from \"./access-service.js\";\nimport { readEnvVar, resolveHomeDir } from \"./runtime/env.js\";\nimport { resolvePluginEntry } from \"./plugin-entry-resolver.js\";\nimport { expandTildePath } from \"./utils/path.js\";\nimport { getOperation } from \"./access-boundary.js\";\n// Importing access-operations registers the pilot boundary operations as a\n// side effect; the store command dispatches through the registry (issue #1525).\nimport \"./access-operations.js\";\nimport { projectTagProjectId } from \"./coding/coding-namespace.js\";\n\nconst OPENCLAW_REMNIC_PLUGIN_IDS = [\"openclaw-remnic\", \"openclaw-engram\"] as const;\n\ntype CommandName =\n | \"browse\"\n | \"store\"\n | \"extraction-flush\"\n | \"decision\"\n | \"architecture\"\n | \"delta\"\n | \"correct\";\n\ntype ParsedArgs = {\n command: CommandName;\n options: Record<string, string[]>;\n flags: Set<string>;\n};\n\ntype CommandSpec = {\n valueOptions: ReadonlySet<string>;\n flagOptions: ReadonlySet<string>;\n};\n\ntype Runtime = {\n config: PluginConfig;\n service: EngramAccessService;\n};\n\nexport type AccessCliOptions = {\n /**\n * The calling plugin's own id (e.g. `\"openclaw-engram\"` when invoked by the\n * shim binary). Forwarded to the plugin-entry resolver so shim CLI\n * users target their own `plugins.entries[\"openclaw-engram\"]` block instead\n * of accidentally resolving to the canonical `\"openclaw-remnic\"` entry when\n * `plugins.slots.memory` is unset (#403).\n */\n preferredId?: string;\n};\n\nfunction getOpenClawPluginEntries(raw: Record<string, unknown>): Record<string, unknown> | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const entries =\n plugins && plugins[\"entries\"] && typeof plugins[\"entries\"] === \"object\" && !Array.isArray(plugins[\"entries\"])\n ? (plugins[\"entries\"] as Record<string, unknown>)\n : undefined;\n return entries;\n}\n\nfunction getOpenClawMemorySlotId(raw: Record<string, unknown>): string | undefined {\n const plugins =\n raw[\"plugins\"] && typeof raw[\"plugins\"] === \"object\" && !Array.isArray(raw[\"plugins\"])\n ? (raw[\"plugins\"] as Record<string, unknown>)\n : undefined;\n const slots =\n plugins && plugins[\"slots\"] && typeof plugins[\"slots\"] === \"object\" && !Array.isArray(plugins[\"slots\"])\n ? (plugins[\"slots\"] as Record<string, unknown>)\n : undefined;\n const slotId = slots?.[\"memory\"];\n return typeof slotId === \"string\" ? slotId : undefined;\n}\n\nfunction resolveOpenClawRemnicPluginEntry(raw: unknown, preferredId?: string): Record<string, unknown> | undefined {\n return resolvePluginEntry(raw, {\n candidateIds: OPENCLAW_REMNIC_PLUGIN_IDS,\n preferredId,\n getEntries: getOpenClawPluginEntries,\n getSlotId: getOpenClawMemorySlotId,\n });\n}\n\nfunction hasAllowedOpenClawRemnicPluginId(value: string): boolean {\n return (OPENCLAW_REMNIC_PLUGIN_IDS as readonly string[]).includes(value);\n}\n\ntype UsageErrorKind =\n | \"unsupported-command\"\n | \"unexpected-positional\"\n | \"unknown-option\"\n | \"invalid-option\"\n | \"option-does-not-take-value\"\n | \"missing-option\"\n | \"missing-content\"\n | \"invalid-integer\"\n | \"invalid-number\";\n\nclass UsageError extends Error {\n constructor(\n readonly kind: UsageErrorKind,\n readonly optionName?: string,\n readonly acceptedValues?: readonly string[],\n ) {\n super(\"invalid access-cli arguments\");\n }\n}\n\nfunction formatUsageError(error: UsageError): string {\n switch (error.kind) {\n case \"unsupported-command\":\n return \"unsupported command\";\n case \"unexpected-positional\":\n return \"unexpected positional argument\";\n case \"unknown-option\":\n return `unknown option: --${error.optionName ?? \"unknown\"}`;\n case \"invalid-option\": {\n const accepted = error.acceptedValues?.length ? `. Accepted: ${error.acceptedValues.join(\", \")}.` : \"\";\n return `invalid value for --${error.optionName ?? \"unknown\"}${accepted}`;\n }\n case \"option-does-not-take-value\":\n return `option does not accept a value: --${error.optionName ?? \"unknown\"}`;\n case \"missing-option\":\n return `missing required option: --${error.optionName ?? \"unknown\"}`;\n case \"missing-content\":\n return \"missing required option: --content or --content-file\";\n case \"invalid-integer\":\n return `invalid integer for --${error.optionName ?? \"unknown\"}`;\n case \"invalid-number\":\n return `invalid number for --${error.optionName ?? \"unknown\"}`;\n }\n}\n\nfunction writeCliOutput(text: string = \"\"): void {\n process.stdout.write(`${text}\\n`);\n}\n\nfunction usage(): string {\n return [\n \" engram-access browse [options]\",\n \" engram-access store [options]\",\n \" engram-access extraction-flush [options]\",\n \" engram-access decision [options]\",\n \" engram-access architecture [options]\",\n \" engram-access delta [options]\",\n \" engram-access correct [options]\",\n \"\",\n \"Browse options:\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --query <text>\",\n \" --category <name>\",\n \" --status <name>\",\n \" --sort <updated_desc|updated_asc|created_desc|created_asc>\",\n \" --limit <n>\",\n \" --offset <n>\",\n \"\",\n \"Store options:\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --content <text> | --content-file <path>\",\n \" --category <name>\",\n \" --confidence <0-1>\",\n \" --tag <tag> (repeatable)\",\n \" --entity-ref <ref>\",\n \" --ttl <duration>\",\n \" --source-reason <text>\",\n \" --idempotency-key <key>\",\n \" --dry-run\",\n \"\",\n \"Extraction flush options:\",\n \" --session-key <key>\",\n \" --namespace <name>\",\n \" --principal <principal>\",\n \" --cwd <path>\",\n \" --project-tag <tag>\",\n \" --deadline-ms <timestamp>\",\n \"\",\n \"Decision options:\",\n \" --subcommand <list|get|record|supersede>\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --id <id> (get/supersede)\",\n \" --title <title> (record/supersede)\",\n \" --status <proposed|accepted|superseded|rejected> (record)\",\n \" --context <text> (record/supersede)\",\n \" --decision <text> (record/supersede)\",\n \" --consequences <text> (record/supersede)\",\n \" --entity-ref <ref> (repeatable)\",\n \" --project-tag <tag> (attach coding context for this invocation)\",\n \" --supersedes-id <id> (alias for --id on supersede)\",\n \"\",\n \"Architecture options:\",\n \" --subcommand <get|refresh>\",\n \" --namespace <name>\",\n \" --session-key <key>\",\n \" --principal <principal>\",\n \" --project-tag <tag> (attach coding context for this invocation)\",\n \" --repo-root <path> (repo to scan for refresh; defaults to the current directory)\",\n \"\",\n \"Correct options (issue #1580 — one plan/apply pipeline for all corrections):\",\n \" --text \\\"<correction>\\\" plan a correction from natural language\",\n \" --id <memoryId> (repeatable) explicit target memory ids\",\n \" --apply apply a pending plan (requires --plan-id + --confirm)\",\n \" --plan-id <id> the plan to apply or discard\",\n \" --confirm confirm the apply (safety guard, rule 48)\",\n \" --list list pending plans\",\n \" --discard discard a pending plan (requires --plan-id)\",\n \" --namespace <name> namespace (validated by policy)\",\n \" --session-key <key> session identifier for namespace resolution\",\n \" --principal <principal>\",\n ].join(\"\\n\");\n}\n\nconst COMMAND_SPECS: Record<CommandName, CommandSpec> = {\n browse: {\n valueOptions: new Set([\n \"namespace\",\n \"principal\",\n \"query\",\n \"category\",\n \"status\",\n \"sort\",\n \"limit\",\n \"offset\",\n ]),\n flagOptions: new Set(),\n },\n store: {\n valueOptions: new Set([\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"content\",\n \"content-file\",\n \"category\",\n \"confidence\",\n \"tag\",\n \"entity-ref\",\n \"ttl\",\n \"source-reason\",\n \"idempotency-key\",\n ]),\n flagOptions: new Set([\"dry-run\"]),\n },\n \"extraction-flush\": {\n valueOptions: new Set([\"session-key\", \"namespace\", \"principal\", \"cwd\", \"project-tag\", \"deadline-ms\"]),\n flagOptions: new Set(),\n },\n decision: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"id\",\n \"title\",\n \"status\",\n \"context\",\n \"decision\",\n \"consequences\",\n \"entity-ref\",\n \"project-tag\",\n \"supersedes-id\",\n ]),\n flagOptions: new Set(),\n },\n architecture: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"project-tag\",\n \"repo-root\",\n ]),\n flagOptions: new Set(),\n },\n delta: {\n valueOptions: new Set([\n \"subcommand\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n \"project-tag\",\n \"repo-root\",\n ]),\n flagOptions: new Set(),\n },\n correct: {\n valueOptions: new Set([\n \"text\",\n \"id\",\n \"plan-id\",\n \"namespace\",\n \"session-key\",\n \"principal\",\n ]),\n flagOptions: new Set([\"apply\", \"list\", \"discard\", \"confirm\", \"yes\"]),\n },\n};\nconst BROWSE_SORT_VALUES = Object.freeze([\n \"updated_desc\",\n \"updated_asc\",\n \"created_desc\",\n \"created_asc\",\n] as const);\n\ntype BrowseSort = (typeof BROWSE_SORT_VALUES)[number];\n\n/**\n * Type guard for {@link CommandName}. Enumerating the union (rather than a\n * bare `value in COMMAND_SPECS`) is what lets TypeScript NARROW the string\n * to `CommandName` — the `in` operator alone yields TS2322 on the\n * `command: commandRaw` assignment below (codex review P2).\n */\nfunction isCommandName(value: string): value is CommandName {\n return (\n value === \"browse\" ||\n value === \"store\" ||\n value === \"extraction-flush\" ||\n value === \"decision\" ||\n value === \"architecture\" ||\n value === \"delta\" ||\n value === \"correct\"\n );\n}\n\nfunction parseArgs(argv: string[]): ParsedArgs {\n const [commandRaw, ...rest] = argv;\n if (!isCommandName(commandRaw)) {\n throw new UsageError(\"unsupported-command\");\n }\n const spec = COMMAND_SPECS[commandRaw];\n\n const options: Record<string, string[]> = {};\n const flags = new Set<string>();\n\n for (let i = 0; i < rest.length; i += 1) {\n const token = rest[i];\n if (!token.startsWith(\"--\")) {\n throw new UsageError(\"unexpected-positional\");\n }\n const rawKey = token.slice(2);\n if (!rawKey) {\n throw new UsageError(\"unknown-option\", rawKey);\n }\n const equalsIndex = rawKey.indexOf(\"=\");\n const key = equalsIndex === -1 ? rawKey : rawKey.slice(0, equalsIndex);\n const inlineValue = equalsIndex === -1 ? undefined : rawKey.slice(equalsIndex + 1);\n\n if (!spec.valueOptions.has(key) && !spec.flagOptions.has(key)) {\n throw new UsageError(\"unknown-option\", key);\n }\n\n if (spec.flagOptions.has(key)) {\n if (inlineValue !== undefined) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n const next = rest[i + 1];\n if (next && !next.startsWith(\"--\")) {\n throw new UsageError(\"option-does-not-take-value\", key);\n }\n flags.add(key);\n continue;\n }\n\n if (inlineValue !== undefined) {\n if (inlineValue.length === 0) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(inlineValue);\n continue;\n }\n\n const next = rest[i + 1];\n if (next === undefined || next.length === 0 || next.startsWith(\"--\")) {\n throw new UsageError(\"missing-option\", key);\n }\n if (!options[key]) {\n options[key] = [];\n }\n options[key].push(next);\n i += 1;\n }\n\n return {\n command: commandRaw,\n options,\n flags,\n };\n}\n\nfunction getLastOption(args: ParsedArgs, name: string): string | undefined {\n const values = args.options[name];\n if (!values || values.length === 0) return undefined;\n return values[values.length - 1];\n}\n\nfunction getAllOptions(args: ParsedArgs, name: string): string[] {\n return args.options[name] ?? [];\n}\n\nfunction requireOption(args: ParsedArgs, name: string): string {\n const value = getLastOption(args, name);\n if (!value || value.trim().length === 0) {\n throw new UsageError(\"missing-option\", name);\n }\n return value;\n}\n\nfunction parseIntegerOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n const value = Number(trimmed);\n if (!Number.isSafeInteger(value)) {\n throw new UsageError(\"invalid-integer\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-option\", name, [`integer >= ${options.min}`]);\n }\n return value;\n}\n\nfunction parseBrowseSortOption(args: ParsedArgs, name: string): BrowseSort | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n if ((BROWSE_SORT_VALUES as readonly string[]).includes(raw)) {\n return raw as BrowseSort;\n }\n throw new UsageError(\"invalid-option\", name, BROWSE_SORT_VALUES);\n}\n\nfunction parseFloatOption(\n args: ParsedArgs,\n name: string,\n options: { min?: number; max?: number } = {},\n): number | undefined {\n const raw = getLastOption(args, name);\n if (!raw) return undefined;\n const trimmed = raw.trim();\n if (!/^[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?$/i.test(trimmed)) {\n throw new UsageError(\"invalid-number\", name);\n }\n const value = Number(trimmed);\n if (!Number.isFinite(value)) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.min !== undefined && value < options.min) {\n throw new UsageError(\"invalid-number\", name);\n }\n if (options.max !== undefined && value > options.max) {\n throw new UsageError(\"invalid-number\", name);\n }\n return value;\n}\n\nfunction loadPluginConfig(preferredId?: string): Record<string, unknown> {\n const configPath =\n expandOptionalPath(readEnvVar(\"OPENCLAW_CONFIG_PATH\")) ||\n expandOptionalPath(readEnvVar(\"OPENCLAW_ENGRAM_CONFIG_PATH\")) ||\n path.join(resolveHomeDir(), \".openclaw\", \"openclaw.json\");\n const raw = JSON.parse(fs.readFileSync(configPath, \"utf8\"));\n const slotId =\n raw && typeof raw === \"object\" && !Array.isArray(raw)\n ? getOpenClawMemorySlotId(raw as Record<string, unknown>)\n : undefined;\n if (typeof slotId === \"string\" && !hasAllowedOpenClawRemnicPluginId(slotId)) {\n throw new Error(\n `OpenClaw memory slot points to non-Remnic plugin \"${slotId}\"; refusing to use default Remnic access config.`,\n );\n }\n // Delegate slot → preferredId → canonical → legacy resolution to the\n // generic helper so all config loaders stay in sync (#403). Shim CLI\n // callers pass `preferredId: \"openclaw-engram\"` so legacy shim installs\n // target their own config block instead of falling through to the canonical\n // \"openclaw-remnic\" entry.\n const entry = resolveOpenClawRemnicPluginEntry(raw, preferredId);\n if (!entry) {\n throw new Error(\n \"OpenClaw config does not contain an allowed Remnic plugin entry; refusing to use default Remnic access config.\",\n );\n }\n return (entry?.[\"config\"] as Record<string, unknown> | undefined) ?? {};\n}\n\nfunction buildRuntime(preferredId?: string): Runtime {\n const config = parseConfig(loadPluginConfig(preferredId));\n return {\n config,\n service: new EngramAccessService(new Orchestrator(config)),\n };\n}\n\nasync function runBrowse(args: ParsedArgs, preferredId?: string): Promise<void> {\n const browseArgs = {\n namespace: getLastOption(args, \"namespace\"),\n principal: getLastOption(args, \"principal\"),\n query: getLastOption(args, \"query\"),\n category: getLastOption(args, \"category\"),\n status: getLastOption(args, \"status\"),\n sort: parseBrowseSortOption(args, \"sort\"),\n limit: parseIntegerOption(args, \"limit\", { min: 1 }),\n offset: parseIntegerOption(args, \"offset\", { min: 0 }),\n };\n const { config, service } = buildRuntime(preferredId);\n const request = {\n namespace: browseArgs.namespace,\n authenticatedPrincipal: browseArgs.principal ?? config.agentAccessHttp.principal,\n query: browseArgs.query,\n category: browseArgs.category,\n status: browseArgs.status,\n sort: browseArgs.sort,\n limit: browseArgs.limit,\n offset: browseArgs.offset,\n };\n const result = await service.memoryBrowse(request);\n console.log(JSON.stringify(result, null, 2));\n}\n\nasync function runStore(args: ParsedArgs, preferredId?: string): Promise<void> {\n const contentFile = getLastOption(args, \"content-file\");\n const inlineContent = getLastOption(args, \"content\");\n const content = contentFile\n ? fs.readFileSync(expandTildePath(contentFile), \"utf8\")\n : inlineContent;\n if (!content || content.trim().length === 0) {\n throw new UsageError(\"missing-content\");\n }\n const storeArgs = {\n namespace: getLastOption(args, \"namespace\"),\n sessionKey: getLastOption(args, \"session-key\"),\n content,\n category: requireOption(args, \"category\"),\n confidence: parseFloatOption(args, \"confidence\", { min: 0, max: 1 }),\n tags: getAllOptions(args, \"tag\"),\n entityRef: getLastOption(args, \"entity-ref\"),\n ttl: getLastOption(args, \"ttl\"),\n sourceReason: getLastOption(args, \"source-reason\"),\n idempotencyKey: getLastOption(args, \"idempotency-key\"),\n dryRun: args.flags.has(\"dry-run\"),\n };\n\n const { config, service } = buildRuntime(preferredId);\n // Migrated through the access boundary (issue #1525): the store command\n // dispatches through the same registry entry as the MCP tool and HTTP\n // route, so validation/normalization is owned in ONE place. The CLI has no\n // write-quota hook (it is a one-shot process), so no hooks are forwarded.\n const op = getOperation(\"memory_store\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: memory_store\");\n }\n const output = (await op.run(\n {\n namespace: storeArgs.namespace,\n sessionKey: storeArgs.sessionKey,\n content: storeArgs.content,\n category: storeArgs.category,\n confidence: storeArgs.confidence,\n tags: storeArgs.tags,\n entityRef: storeArgs.entityRef,\n ttl: storeArgs.ttl,\n sourceReason: storeArgs.sourceReason,\n idempotencyKey: storeArgs.idempotencyKey,\n dryRun: storeArgs.dryRun,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\nasync function runExtractionFlush(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const op = getOperation(\"extraction_force_flush\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: extraction_force_flush\");\n }\n const output = (await op.run(\n {\n sessionKey: requireOption(args, \"session-key\"),\n namespace: getLastOption(args, \"namespace\"),\n cwd: expandOptionalPath(getLastOption(args, \"cwd\")),\n projectTag: getLastOption(args, \"project-tag\"),\n deadlineMs: parseIntegerOption(args, \"deadline-ms\", { min: 0 }),\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\nfunction expandOptionalPath(value: string | undefined): string | undefined {\n return value === undefined ? undefined : expandTildePath(value);\n}\n\n/**\n * Decision-record surface (issue #1548 Track A PR 2). Dispatches through the\n * same `coding_decision` operation as the MCP tool and HTTP route — one\n * validation boundary, three transports.\n */\nasync function runDecision(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // The CLI creates a fresh Orchestrator per invocation, so the session\n // coding-context map is empty. If --project-tag + --session-key are\n // provided, attach a coding context BEFORE dispatching so the gate\n // passes and project-scoped writes resolve to the right namespace\n // (review P2).\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (projectTag && projectTag.trim().length > 0 && sessionKey && sessionKey.trim().length > 0) {\n const projectId = projectTagProjectId(projectTag.trim());\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: projectId,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_decision\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_decision\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n id: getLastOption(args, \"id\"),\n supersedesId: getLastOption(args, \"supersedes-id\"),\n title: getLastOption(args, \"title\"),\n status: getLastOption(args, \"status\"),\n context: getLastOption(args, \"context\"),\n decision: getLastOption(args, \"decision\"),\n consequences: getLastOption(args, \"consequences\"),\n entityRefs: getAllOptions(args, \"entity-ref\"),\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Architecture-card surface (issue #1548 Track A PR 3). Dispatches through\n * the same `coding_architecture` operation as the MCP tool and HTTP route —\n * one validation boundary, three transports.\n */\nasync function runArchitecture(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // Same coding-context attachment as runDecision (review P2): the CLI's\n // fresh Orchestrator has an empty session coding-context map, so attach\n // a context BEFORE dispatching when --project-tag + --session-key are\n // given, so the gate passes and writes resolve to the right namespace.\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (sessionKey && sessionKey.trim().length > 0) {\n // refresh scans codingContext.rootPath, so it must be a REAL checkout\n // path. Default to the CWD (or an explicit --repo-root) so a one-shot\n // CLI refresh scans the caller's repo, not a non-existent tag path.\n const repoRoot = expandOptionalPath(getLastOption(args, \"repo-root\")) ?? process.cwd();\n // --project-tag supplies the context id (namespace); when absent, derive\n // a default from the repo-root basename so refresh works with just\n // --session-key + --repo-root (codex review).\n const projectId =\n projectTag && projectTag.trim().length > 0\n ? projectTagProjectId(projectTag.trim())\n : projectTagProjectId(path.basename(repoRoot));\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: repoRoot,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_architecture\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_architecture\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Session-delta surface (issue #1548 Track A PR 4). Dispatches through the\n * same `coding_delta` operation as the MCP tool and HTTP route — one\n * validation boundary, three transports.\n */\nasync function runDelta(args: ParsedArgs, preferredId?: string): Promise<void> {\n const subcommand = requireOption(args, \"subcommand\");\n const { config, service } = buildRuntime(preferredId);\n // Same coding-context attachment as runArchitecture/runDecision: the CLI's\n // fresh Orchestrator has an empty session coding-context map, so attach a\n // context BEFORE dispatching so the gate passes.\n const projectTag = getLastOption(args, \"project-tag\");\n const sessionKey = getLastOption(args, \"session-key\");\n if (sessionKey && sessionKey.trim().length > 0) {\n const repoRoot = expandOptionalPath(getLastOption(args, \"repo-root\")) ?? process.cwd();\n const projectId =\n projectTag && projectTag.trim().length > 0\n ? projectTagProjectId(projectTag.trim())\n : projectTagProjectId(path.basename(repoRoot));\n service.setCodingContext({\n sessionKey,\n codingContext: {\n projectId,\n branch: null,\n rootPath: repoRoot,\n defaultBranch: null,\n },\n });\n }\n const op = getOperation(\"coding_delta\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: coding_delta\");\n }\n const output = (await op.run(\n {\n subcommand,\n namespace: getLastOption(args, \"namespace\"),\n sessionKey,\n },\n {\n service,\n authenticatedPrincipal: getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal,\n },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n}\n\n/**\n * Correction Contract surface (issue #1580). Dispatches through the same\n * `memory_correct_plan` / `memory_correct_apply` operations as the MCP tool\n * and HTTP route — one validation boundary, three transports.\n *\n * Modes:\n * remnic correct \"<text>\" [--id <id>...] → plan + print diff\n * remnic correct --apply <planId> [--confirm] → apply a pending plan\n * remnic correct --list → list pending plans\n * remnic correct --discard <planId> → discard a pending plan\n */\nasync function runCorrect(args: ParsedArgs, preferredId?: string): Promise<void> {\n const { config, service } = buildRuntime(preferredId);\n const principal = getLastOption(args, \"principal\") ?? config.agentAccessHttp.principal;\n const namespace = getLastOption(args, \"namespace\");\n const sessionKey = getLastOption(args, \"session-key\");\n\n if (args.flags.has(\"list\")) {\n const plans = await service.correctionListPending({\n ...(namespace ? { namespace } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n principal,\n });\n console.log(JSON.stringify(plans, null, 2));\n return;\n }\n\n if (args.flags.has(\"discard\")) {\n const planId = requireOption(args, \"plan-id\");\n await service.correctionDiscard(planId, {\n ...(namespace ? { namespace } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n principal,\n });\n console.log(JSON.stringify({ discarded: planId }));\n return;\n }\n\n if (args.flags.has(\"apply\")) {\n const planId = requireOption(args, \"plan-id\");\n const op = getOperation(\"memory_correct_apply\");\n if (!op) {\n throw new Error(\"access-boundary: operation not registered: memory_correct_apply\");\n }\n const output = (await op.run(\n {\n planId,\n confirm: args.flags.has(\"confirm\") || args.flags.has(\"yes\"),\n ...(sessionKey ? { sessionKey } : {}),\n ...(namespace ? { namespace } : {}),\n },\n { service, authenticatedPrincipal: principal },\n )) as { result: unknown };\n console.log(JSON.stringify(output.result, null, 2));\n return;\n }\n\n // Default mode: plan from text — dispatch through the boundary operation\n // so schema validation + namespace policy reach this path (same as MCP/HTTP).\n const text = requireOption(args, \"text\");\n const targetIds = getAllOptions(args, \"id\");\n const planOp = getOperation(\"memory_correct_plan\");\n if (!planOp) {\n throw new Error(\"access-boundary: operation not registered: memory_correct_plan\");\n }\n const planOutput = (await planOp.run(\n {\n text,\n ...(targetIds.length > 0 ? { targetIds } : {}),\n ...(sessionKey ? { sessionKey } : {}),\n ...(namespace ? { namespace } : {}),\n },\n { service, authenticatedPrincipal: principal },\n )) as { result: unknown };\n console.log(JSON.stringify(planOutput.result, null, 2));\n}\n\nexport async function main(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n const args = parseArgs(argv);\n if (args.command === \"browse\") {\n await runBrowse(args, options.preferredId);\n return;\n }\n if (args.command === \"extraction-flush\") {\n await runExtractionFlush(args, options.preferredId);\n return;\n }\n if (args.command === \"decision\") {\n await runDecision(args, options.preferredId);\n return;\n }\n if (args.command === \"architecture\") {\n await runArchitecture(args, options.preferredId);\n return;\n }\n if (args.command === \"delta\") {\n await runDelta(args, options.preferredId);\n return;\n }\n if (args.command === \"correct\") {\n await runCorrect(args, options.preferredId);\n return;\n }\n await runStore(args, options.preferredId);\n}\n\nexport function sanitizeAccessCliErrorMessage(message: string): string {\n return message.replace(\n /\\b(openaiApiKey|localLlmApiKey)\\b(\\s*[:=]\\s*)(?:\"[^\"]*\"|'[^']*'|[^\\s,}\\]]+)/gi,\n (_match, name: string, separator: string) => `${name}${separator}[redacted]`,\n );\n}\n\nexport function printUsage(): void {\n writeCliOutput(usage());\n}\n\nexport async function runCli(\n argv: string[] = process.argv.slice(2),\n options: AccessCliOptions = {},\n): Promise<void> {\n try {\n await main(argv, options);\n } catch (error) {\n if (error instanceof UsageError) {\n writeCliOutput(formatUsageError(error));\n writeCliOutput();\n printUsage();\n process.exit(1);\n }\n\n console.error(\"access-cli failed: runtime error\");\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["next"]}
@@ -1,4 +1,4 @@
1
- import { C as CodingContext } from './types-yX_FwERf.js';
1
+ import { C as CodingContext } from './types-D_Au9qJO.js';
2
2
  import './message-parts/index.js';
3
3
  import './bounded-jsonl-state.js';
4
4
  import './operator-doctor-types.js';