@remnic/core 9.45.5 → 9.46.1

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 (402) hide show
  1. package/dist/access-admin-ops-surface.d.ts +10 -10
  2. package/dist/access-admin-ops-surface.js +24 -24
  3. package/dist/access-authorization-probe.d.ts +10 -10
  4. package/dist/access-authorization-probe.js +25 -25
  5. package/dist/access-boundary.d.ts +10 -10
  6. package/dist/access-boundary.js +24 -24
  7. package/dist/access-cli.js +73 -71
  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 +24 -24
  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-query.js +24 -24
  17. package/dist/access-http.d.ts +10 -10
  18. package/dist/access-http.js +31 -31
  19. package/dist/access-identity-continuity-surface.d.ts +8 -8
  20. package/dist/access-identity-continuity-surface.js +24 -24
  21. package/dist/access-lcm-surface.d.ts +10 -10
  22. package/dist/access-lcm-surface.js +24 -24
  23. package/dist/access-mcp.d.ts +10 -10
  24. package/dist/access-mcp.js +28 -28
  25. package/dist/access-memory-search-fanout.d.ts +2 -2
  26. package/dist/{access-namespace-preflight-CWUDwB4M.d.ts → access-namespace-preflight--H6HwN85.d.ts} +1 -1
  27. package/dist/access-namespace-preflight.d.ts +3 -3
  28. package/dist/access-namespace-preflight.js +24 -24
  29. package/dist/access-observe-write-surface.d.ts +10 -10
  30. package/dist/access-observe-write-surface.js +24 -24
  31. package/dist/access-offline-manifest.d.ts +8 -8
  32. package/dist/access-operations-batch.js +25 -25
  33. package/dist/access-operations.d.ts +13 -13
  34. package/dist/access-operations.js +27 -27
  35. package/dist/access-recall-concurrency.d.ts +10 -10
  36. package/dist/access-recall-concurrency.js +24 -24
  37. package/dist/access-recall-response.d.ts +10 -10
  38. package/dist/access-recall-response.js +24 -24
  39. package/dist/access-recall-surface.d.ts +10 -10
  40. package/dist/access-recall-surface.js +24 -24
  41. package/dist/access-schema.d.ts +84 -84
  42. package/dist/access-service-helpers.d.ts +10 -10
  43. package/dist/{access-service-CNN89xyn.d.ts → access-service-loJadYd7.d.ts} +7 -7
  44. package/dist/access-service.d.ts +10 -10
  45. package/dist/access-service.js +24 -24
  46. package/dist/access-surface-catalog.d.ts +10 -10
  47. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  48. package/dist/action-confidence.d.ts +1 -1
  49. package/dist/active-memory-bridge.d.ts +1 -1
  50. package/dist/active-recall.d.ts +1 -1
  51. package/dist/ambient-provenance.d.ts +109 -0
  52. package/dist/ambient-provenance.js +22 -0
  53. package/dist/ambient-provenance.js.map +1 -0
  54. package/dist/{auto-sync-UPTUVE4X.js → auto-sync-7O6RP2RT.js} +3 -2
  55. package/dist/{auto-sync-UPTUVE4X.js.map → auto-sync-7O6RP2RT.js.map} +1 -1
  56. package/dist/behavior-learner.d.ts +1 -1
  57. package/dist/behavior-signals.d.ts +1 -1
  58. package/dist/bootstrap.d.ts +8 -8
  59. package/dist/briefing.d.ts +2 -2
  60. package/dist/briefing.js +5 -5
  61. package/dist/buffer-surprise-report.d.ts +1 -1
  62. package/dist/buffer-turn-helpers.d.ts +1 -1
  63. package/dist/buffer-turn-helpers.js +1 -1
  64. package/dist/buffer.d.ts +2 -2
  65. package/dist/buffer.js +2 -2
  66. package/dist/bulk-import/index.d.ts +3 -3
  67. package/dist/calibration.d.ts +1 -1
  68. package/dist/capabilities.d.ts +1 -1
  69. package/dist/{catalog-bctMURhN.d.ts → catalog-Iwbk9h5E.d.ts} +1 -1
  70. package/dist/causal-behavior.d.ts +1 -1
  71. package/dist/causal-consolidation.d.ts +1 -1
  72. package/dist/causal-consolidation.js +6 -6
  73. package/dist/causal-trajectory-graph.d.ts +1 -1
  74. package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
  75. package/dist/{chunk-ER7W6H4T.js → chunk-2AD5SXO4.js} +5 -2
  76. package/dist/chunk-2AD5SXO4.js.map +1 -0
  77. package/dist/{chunk-CX4ZUMC6.js → chunk-2DSUT7DZ.js} +9 -9
  78. package/dist/{chunk-DZPFMQZ7.js → chunk-3S63QIFQ.js} +1 -1
  79. package/dist/chunk-3S63QIFQ.js.map +1 -0
  80. package/dist/{chunk-DAJPRXBR.js → chunk-47J4EDGR.js} +5 -5
  81. package/dist/{chunk-QVJPH7SH.js → chunk-5LRDM4R7.js} +40 -40
  82. package/dist/{chunk-XAGYS7X6.js → chunk-5R6S4DJZ.js} +7 -7
  83. package/dist/{chunk-QR6G5KF4.js → chunk-5VQPZ4GV.js} +3 -3
  84. package/dist/{chunk-E5XQIWAL.js → chunk-64BHFFKZ.js} +2 -2
  85. package/dist/{chunk-GRUYA45P.js → chunk-6H744ZBH.js} +3 -3
  86. package/dist/{chunk-6ISC4AVB.js → chunk-BDNL34CT.js} +2 -2
  87. package/dist/{chunk-GQL52GQ5.js → chunk-CDKHKZL5.js} +15 -12
  88. package/dist/chunk-CDKHKZL5.js.map +1 -0
  89. package/dist/{chunk-AC5OWJLV.js → chunk-E4FOAENZ.js} +4 -4
  90. package/dist/{chunk-UW66OZTD.js → chunk-FULKGK7P.js} +2 -2
  91. package/dist/{chunk-V2TNYF6Q.js → chunk-HJ3SVHUW.js} +3 -3
  92. package/dist/{chunk-A4IJCD2Z.js → chunk-HXXTXLKA.js} +2 -2
  93. package/dist/{chunk-FUCYDRE5.js → chunk-IDE5AR5W.js} +11 -11
  94. package/dist/{chunk-2FSTB6BJ.js → chunk-ILBLZ5Y5.js} +2 -2
  95. package/dist/chunk-J7T4MX7P.js +131 -0
  96. package/dist/chunk-J7T4MX7P.js.map +1 -0
  97. package/dist/{chunk-WZ3TOIDW.js → chunk-JFO5QZ7N.js} +2 -2
  98. package/dist/{chunk-FR27HBBA.js → chunk-KA47C7BF.js} +2 -2
  99. package/dist/{chunk-JZH4LWHB.js → chunk-KMWYZTIE.js} +2 -2
  100. package/dist/{chunk-LPYDOLSM.js → chunk-L7G72WY4.js} +2 -2
  101. package/dist/{chunk-AMAUBUKY.js → chunk-LI7OE7G6.js} +2 -2
  102. package/dist/{chunk-MO4HSXHZ.js → chunk-M2INOSTA.js} +2 -2
  103. package/dist/{chunk-GODSPTOT.js → chunk-M32URQXV.js} +652 -601
  104. package/dist/chunk-M32URQXV.js.map +1 -0
  105. package/dist/{chunk-HFPASSFV.js → chunk-P2OTGMTR.js} +2 -2
  106. package/dist/{chunk-W2V7UESE.js → chunk-PFJXPOD4.js} +2 -2
  107. package/dist/{chunk-R3KHKU7M.js → chunk-PKCLQ7KM.js} +43 -143
  108. package/dist/chunk-PKCLQ7KM.js.map +1 -0
  109. package/dist/chunk-QW27DOHG.js +84 -0
  110. package/dist/chunk-QW27DOHG.js.map +1 -0
  111. package/dist/{chunk-QUENPGWZ.js → chunk-RCU25Z66.js} +24 -24
  112. package/dist/{chunk-QUENPGWZ.js.map → chunk-RCU25Z66.js.map} +1 -1
  113. package/dist/{chunk-NEF7LR5J.js → chunk-RVPTS4U5.js} +2 -2
  114. package/dist/{chunk-W3IC7QOY.js → chunk-RVYVMQK4.js} +3 -3
  115. package/dist/{chunk-GUAL4PQH.js → chunk-ST5IEK3H.js} +2 -2
  116. package/dist/{chunk-O4KMGRXE.js → chunk-SXWHN7GC.js} +2 -2
  117. package/dist/{chunk-RNHVVMFN.js → chunk-T6JRMVOV.js} +2 -2
  118. package/dist/{chunk-5QJQHBLE.js → chunk-U6JGQ37L.js} +2 -2
  119. package/dist/{chunk-UV72DEZD.js → chunk-UYUYZ4WY.js} +36 -10
  120. package/dist/chunk-UYUYZ4WY.js.map +1 -0
  121. package/dist/{chunk-HC3PBX23.js → chunk-V5FE3UAI.js} +2 -2
  122. package/dist/{chunk-ERZ2R42X.js → chunk-W2ZSNIBP.js} +2 -2
  123. package/dist/{chunk-3COYXTGM.js → chunk-WHWDBTCJ.js} +2 -2
  124. package/dist/{chunk-FIK3CQNA.js → chunk-WOC6DXP5.js} +3 -3
  125. package/dist/{chunk-4FBVAGV3.js → chunk-XBMJ35IP.js} +2 -2
  126. package/dist/{chunk-GFCVUY6G.js → chunk-YWCOJOUI.js} +2 -2
  127. package/dist/{chunk-2X2T2UVE.js → chunk-ZDAYWJV6.js} +1 -1
  128. package/dist/chunk-ZDAYWJV6.js.map +1 -0
  129. package/dist/{cli-BHBswmUa.d.ts → cli-D_RcqXfZ.d.ts} +5 -5
  130. package/dist/cli.d.ts +12 -12
  131. package/dist/cli.js +50 -50
  132. package/dist/compat/checks.js +1 -1
  133. package/dist/compounding/engine.d.ts +2 -2
  134. package/dist/compounding/engine.js +5 -5
  135. package/dist/compounding/preference-consolidator.d.ts +1 -1
  136. package/dist/compression-optimizer.d.ts +1 -1
  137. package/dist/config.d.ts +1 -1
  138. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  139. package/dist/connectors/codex-materialize-runner.js +5 -5
  140. package/dist/connectors/codex-materialize.d.ts +1 -1
  141. package/dist/connectors/index.d.ts +1 -1
  142. package/dist/connectors/index.js +5 -5
  143. package/dist/consolidation-provenance-check.d.ts +2 -2
  144. package/dist/consolidation-undo.d.ts +2 -2
  145. package/dist/contradiction/index.d.ts +2 -2
  146. package/dist/converge-config.d.ts +1 -1
  147. package/dist/convergence-refresh.d.ts +2 -2
  148. package/dist/convergence-refresh.js +7 -7
  149. package/dist/conversation-index/backend.d.ts +1 -1
  150. package/dist/conversation-index/backend.js +2 -2
  151. package/dist/conversation-index/chunker.d.ts +1 -1
  152. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  153. package/dist/conversation-index/indexer.d.ts +1 -1
  154. package/dist/conversation-index/search.d.ts +1 -1
  155. package/dist/corpus-watermark.d.ts +1 -1
  156. package/dist/corpus-watermark.js +13 -13
  157. package/dist/day-summary.d.ts +1 -1
  158. package/dist/delinearize.d.ts +1 -1
  159. package/dist/direct-answer-wiring.d.ts +1 -1
  160. package/dist/direct-answer.d.ts +1 -1
  161. package/dist/embedding-fallback.d.ts +1 -1
  162. package/dist/enrichment/index.d.ts +1 -1
  163. package/dist/entity-retrieval.d.ts +2 -2
  164. package/dist/entity-retrieval.js +5 -5
  165. package/dist/entity-schema.d.ts +1 -1
  166. package/dist/explicit-capture.d.ts +8 -8
  167. package/dist/external-wiki-access.d.ts +10 -10
  168. package/dist/external-wiki-access.js +25 -25
  169. package/dist/external-wiki-collection-registration.d.ts +1 -1
  170. package/dist/external-wiki-collection.d.ts +1 -1
  171. package/dist/external-wiki-mcp-tools.d.ts +10 -10
  172. package/dist/extraction-error-classification.d.ts +1 -1
  173. package/dist/extraction-faithfulness.d.ts +1 -1
  174. package/dist/extraction-judge-telemetry.d.ts +1 -1
  175. package/dist/extraction-judge-training.d.ts +1 -1
  176. package/dist/extraction-judge.d.ts +1 -1
  177. package/dist/extraction-liveness.d.ts +1 -1
  178. package/dist/extraction-prompt.d.ts +36 -0
  179. package/dist/extraction-prompt.js +16 -0
  180. package/dist/extraction-prompt.js.map +1 -0
  181. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  182. package/dist/extraction-source-grounding.d.ts +1 -1
  183. package/dist/extraction.d.ts +6 -14
  184. package/dist/extraction.js +9 -7
  185. package/dist/fallback-llm.d.ts +1 -1
  186. package/dist/graph-dashboard-diff.d.ts +1 -1
  187. package/dist/graph-dashboard-key.d.ts +1 -1
  188. package/dist/graph-dashboard-parser.d.ts +1 -1
  189. package/dist/graph-edge-reinforcement.d.ts +1 -1
  190. package/dist/graph-snapshot.d.ts +1 -1
  191. package/dist/graph.d.ts +1 -1
  192. package/dist/importance.d.ts +1 -1
  193. package/dist/importers/index.d.ts +1 -1
  194. package/dist/in-flight-reads.d.ts +1 -1
  195. package/dist/index.d.ts +699 -696
  196. package/dist/index.js +124 -122
  197. package/dist/intent.d.ts +1 -1
  198. package/dist/lcm/engine.d.ts +1 -1
  199. package/dist/lcm/index.d.ts +1 -1
  200. package/dist/lcm/tools.d.ts +1 -1
  201. package/dist/lifecycle.d.ts +1 -1
  202. package/dist/live-connectors-runner.d.ts +1 -1
  203. package/dist/local-llm.d.ts +1 -1
  204. package/dist/local-model-endpoint.d.ts +1 -1
  205. package/dist/maintenance/memory-governance.d.ts +1 -1
  206. package/dist/maintenance/memory-governance.js +5 -5
  207. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  208. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
  209. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  210. package/dist/maintenance/rebuild-memory-projection.js +6 -6
  211. package/dist/{maintenance-CoRikzIt.d.ts → maintenance-DQrL93Uu.d.ts} +3 -3
  212. package/dist/mcp-memory-inspector-app.d.ts +10 -10
  213. package/dist/memory-action-policy.d.ts +1 -1
  214. package/dist/memory-cache.d.ts +1 -1
  215. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  216. package/dist/memory-projection-store.d.ts +1 -1
  217. package/dist/memory-provenance.d.ts +1 -1
  218. package/dist/memory-snapshot.d.ts +1 -1
  219. package/dist/memory-worth-outcomes.d.ts +2 -2
  220. package/dist/models-json.d.ts +1 -1
  221. package/dist/namespaces/migrate.d.ts +3 -3
  222. package/dist/namespaces/migrate.js +12 -12
  223. package/dist/namespaces/principal.d.ts +1 -1
  224. package/dist/namespaces/search.d.ts +1 -1
  225. package/dist/namespaces/search.js +6 -6
  226. package/dist/namespaces/storage.d.ts +3 -3
  227. package/dist/namespaces/storage.js +5 -5
  228. package/dist/native-knowledge.d.ts +1 -1
  229. package/dist/offline-sync-impression-drain.d.ts +1 -1
  230. package/dist/operator-doctor-corpus.d.ts +1 -1
  231. package/dist/operator-doctor-corpus.js +14 -14
  232. package/dist/operator-doctor-replica.d.ts +1 -1
  233. package/dist/operator-toolkit.d.ts +3 -3
  234. package/dist/operator-toolkit.js +18 -18
  235. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  236. package/dist/orchestration/maintenance.d.ts +4 -4
  237. package/dist/orchestration/maintenance.js +10 -10
  238. package/dist/{orchestrator-BJeq7Pw1.d.ts → orchestrator-LPGegii3.d.ts} +8 -8
  239. package/dist/orchestrator.d.ts +8 -8
  240. package/dist/orchestrator.js +73 -71
  241. package/dist/patterns-cli.d.ts +1 -1
  242. package/dist/{pipeline-CNjY4wk3.d.ts → pipeline-1h2GpiHP.d.ts} +1 -1
  243. package/dist/policy-runtime.d.ts +1 -1
  244. package/dist/proactive-contention.d.ts +1 -1
  245. package/dist/provenance.d.ts +1 -1
  246. package/dist/{qmd-C0UDZidt.d.ts → qmd-UdwoF71D.d.ts} +1 -1
  247. package/dist/qmd-preflight.d.ts +2 -2
  248. package/dist/qmd-recall-cache.d.ts +1 -1
  249. package/dist/qmd.d.ts +2 -2
  250. package/dist/recall-concurrency-config.d.ts +1 -1
  251. package/dist/recall-disclosure-escalation.d.ts +1 -1
  252. package/dist/recall-explain-renderer.d.ts +1 -1
  253. package/dist/recall-explain-renderer.js +3 -3
  254. package/dist/recall-memory-map.d.ts +1 -1
  255. package/dist/recall-planner-llm.d.ts +1 -1
  256. package/dist/recall-state.d.ts +1 -1
  257. package/dist/recall-tag-filter.d.ts +1 -1
  258. package/dist/recall-timings.d.ts +1 -1
  259. package/dist/recall-xray-cli.d.ts +1 -1
  260. package/dist/recall-xray-cli.js +4 -4
  261. package/dist/recall-xray-renderer.d.ts +1 -1
  262. package/dist/recall-xray-renderer.js +3 -3
  263. package/dist/recall-xray.d.ts +1 -1
  264. package/dist/recall-xray.js +2 -2
  265. package/dist/reconcile/cursor.d.ts +1 -1
  266. package/dist/reconcile/manifest.d.ts +1 -1
  267. package/dist/reconcile/plan.d.ts +1 -1
  268. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  269. package/dist/replay/normalizers/claude.d.ts +1 -1
  270. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  271. package/dist/replay/normalizers/shared.d.ts +1 -1
  272. package/dist/replay/runner.d.ts +1 -1
  273. package/dist/replay/types.d.ts +1 -1
  274. package/dist/replica-divergence.d.ts +1 -1
  275. package/dist/replica-peers-config.d.ts +1 -1
  276. package/dist/resolve-auth-token.d.ts +1 -1
  277. package/dist/retrieval-agents.d.ts +2 -2
  278. package/dist/retrieval-tiers.d.ts +1 -1
  279. package/dist/routing/engine.d.ts +1 -1
  280. package/dist/routing/store.d.ts +1 -1
  281. package/dist/salvage-envelope.d.ts +1 -1
  282. package/dist/schemas.d.ts +76 -76
  283. package/dist/{scope-profiles-BJzp2F5A.d.ts → scope-profiles-APjhSe-w.d.ts} +1 -1
  284. package/dist/sdk-compat.js.map +1 -1
  285. package/dist/search/embed-helper.d.ts +1 -1
  286. package/dist/search/factory.d.ts +1 -1
  287. package/dist/search/factory.js +5 -5
  288. package/dist/search/index.d.ts +1 -1
  289. package/dist/search/index.js +9 -9
  290. package/dist/search/lancedb-backend.d.ts +1 -1
  291. package/dist/search/meilisearch-backend.d.ts +1 -1
  292. package/dist/search/noop-backend.d.ts +1 -1
  293. package/dist/search/orama-backend.d.ts +1 -1
  294. package/dist/search/port.d.ts +1 -1
  295. package/dist/search/remote-backend.d.ts +1 -1
  296. package/dist/{semantic-consolidation-D4KAZO2G.d.ts → semantic-consolidation-CrySDbk3.d.ts} +1 -1
  297. package/dist/semantic-consolidation.d.ts +2 -2
  298. package/dist/semantic-consolidation.js +6 -6
  299. package/dist/semantic-rule-promotion.js +5 -5
  300. package/dist/semantic-rule-verifier.d.ts +1 -1
  301. package/dist/semantic-rule-verifier.js +5 -5
  302. package/dist/{service-DWC4tq7p.d.ts → service-DJ0LDyuN.d.ts} +2 -2
  303. package/dist/session-observer-bands.d.ts +1 -1
  304. package/dist/session-observer-state.d.ts +1 -1
  305. package/dist/shared-context/manager.d.ts +9 -9
  306. package/dist/signal.d.ts +1 -1
  307. package/dist/source-agent-qualifier.d.ts +4 -1
  308. package/dist/source-agent-qualifier.js +6 -6
  309. package/dist/{storage-DPGjB-8e.d.ts → storage-y340tYKb.d.ts} +1 -1
  310. package/dist/storage.d.ts +2 -2
  311. package/dist/storage.js +4 -4
  312. package/dist/summarizer.d.ts +1 -1
  313. package/dist/summary-snapshot.d.ts +1 -1
  314. package/dist/temporal-supersession.d.ts +2 -2
  315. package/dist/temporal-timeline-recall.d.ts +1 -1
  316. package/dist/temporal-validity.d.ts +1 -1
  317. package/dist/threading.d.ts +1 -1
  318. package/dist/tier-migration.d.ts +2 -2
  319. package/dist/tier-routing.d.ts +1 -1
  320. package/dist/topics.d.ts +1 -1
  321. package/dist/transcript.d.ts +1 -1
  322. package/dist/transfer/types.d.ts +66 -66
  323. package/dist/trust-score-stage.d.ts +1 -1
  324. package/dist/trust-score.d.ts +1 -1
  325. package/dist/{types-yX_FwERf.d.ts → types-D_Au9qJO.d.ts} +13 -2
  326. package/dist/types.d.ts +1 -1
  327. package/dist/types.js +1 -1
  328. package/dist/utility-runtime.d.ts +1 -1
  329. package/dist/verified-recall.js +5 -5
  330. package/dist/write-envelope.d.ts +1 -1
  331. package/package.json +2 -12
  332. package/src/ambient-provenance.test.ts +510 -0
  333. package/src/ambient-provenance.ts +229 -0
  334. package/src/buffer-turn-helpers.ts +17 -1
  335. package/src/compat/checks.test.ts +45 -1
  336. package/src/compat/checks.ts +16 -16
  337. package/src/extraction-prompt.ts +142 -0
  338. package/src/extraction.ts +37 -148
  339. package/src/meetings/memory-gen.test.ts +51 -0
  340. package/src/meetings/memory-gen.ts +36 -8
  341. package/src/meetings/summary-extractor.ts +4 -2
  342. package/src/orchestration/recall-internal.ts +5 -148
  343. package/src/orchestration/recall-profile-storage.ts +194 -0
  344. package/src/orchestration/recall-search-pipeline.ts +13 -182
  345. package/src/orchestration/recall-search-prefilter.ts +254 -0
  346. package/src/orchestration/session-context.ts +1 -1
  347. package/src/orchestrator.ts +1 -1
  348. package/src/sdk-compat.ts +2 -4
  349. package/src/source-agent-qualifier.ts +3 -0
  350. package/src/testing/subjects/recall-profile-storage.test.ts +362 -0
  351. package/src/testing/subjects/recall-search-prefilter.test.ts +365 -0
  352. package/src/types.ts +2 -2
  353. package/src/wearables/memory-gen.test.ts +82 -0
  354. package/src/wearables/memory-gen.ts +54 -5
  355. package/src/wearables/trust.ts +19 -2
  356. package/dist/chunk-2X2T2UVE.js.map +0 -1
  357. package/dist/chunk-DZPFMQZ7.js.map +0 -1
  358. package/dist/chunk-ER7W6H4T.js.map +0 -1
  359. package/dist/chunk-GODSPTOT.js.map +0 -1
  360. package/dist/chunk-GQL52GQ5.js.map +0 -1
  361. package/dist/chunk-R3KHKU7M.js.map +0 -1
  362. package/dist/chunk-UV72DEZD.js.map +0 -1
  363. package/dist/legacy-hook-compat.d.ts +0 -3
  364. package/dist/legacy-hook-compat.js +0 -36
  365. package/dist/legacy-hook-compat.js.map +0 -1
  366. package/src/legacy-hook-compat.test.ts +0 -20
  367. package/src/legacy-hook-compat.ts +0 -45
  368. /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
  369. /package/dist/{chunk-CX4ZUMC6.js.map → chunk-2DSUT7DZ.js.map} +0 -0
  370. /package/dist/{chunk-DAJPRXBR.js.map → chunk-47J4EDGR.js.map} +0 -0
  371. /package/dist/{chunk-QVJPH7SH.js.map → chunk-5LRDM4R7.js.map} +0 -0
  372. /package/dist/{chunk-XAGYS7X6.js.map → chunk-5R6S4DJZ.js.map} +0 -0
  373. /package/dist/{chunk-QR6G5KF4.js.map → chunk-5VQPZ4GV.js.map} +0 -0
  374. /package/dist/{chunk-E5XQIWAL.js.map → chunk-64BHFFKZ.js.map} +0 -0
  375. /package/dist/{chunk-GRUYA45P.js.map → chunk-6H744ZBH.js.map} +0 -0
  376. /package/dist/{chunk-6ISC4AVB.js.map → chunk-BDNL34CT.js.map} +0 -0
  377. /package/dist/{chunk-AC5OWJLV.js.map → chunk-E4FOAENZ.js.map} +0 -0
  378. /package/dist/{chunk-UW66OZTD.js.map → chunk-FULKGK7P.js.map} +0 -0
  379. /package/dist/{chunk-V2TNYF6Q.js.map → chunk-HJ3SVHUW.js.map} +0 -0
  380. /package/dist/{chunk-A4IJCD2Z.js.map → chunk-HXXTXLKA.js.map} +0 -0
  381. /package/dist/{chunk-FUCYDRE5.js.map → chunk-IDE5AR5W.js.map} +0 -0
  382. /package/dist/{chunk-2FSTB6BJ.js.map → chunk-ILBLZ5Y5.js.map} +0 -0
  383. /package/dist/{chunk-WZ3TOIDW.js.map → chunk-JFO5QZ7N.js.map} +0 -0
  384. /package/dist/{chunk-FR27HBBA.js.map → chunk-KA47C7BF.js.map} +0 -0
  385. /package/dist/{chunk-JZH4LWHB.js.map → chunk-KMWYZTIE.js.map} +0 -0
  386. /package/dist/{chunk-LPYDOLSM.js.map → chunk-L7G72WY4.js.map} +0 -0
  387. /package/dist/{chunk-AMAUBUKY.js.map → chunk-LI7OE7G6.js.map} +0 -0
  388. /package/dist/{chunk-MO4HSXHZ.js.map → chunk-M2INOSTA.js.map} +0 -0
  389. /package/dist/{chunk-HFPASSFV.js.map → chunk-P2OTGMTR.js.map} +0 -0
  390. /package/dist/{chunk-W2V7UESE.js.map → chunk-PFJXPOD4.js.map} +0 -0
  391. /package/dist/{chunk-NEF7LR5J.js.map → chunk-RVPTS4U5.js.map} +0 -0
  392. /package/dist/{chunk-W3IC7QOY.js.map → chunk-RVYVMQK4.js.map} +0 -0
  393. /package/dist/{chunk-GUAL4PQH.js.map → chunk-ST5IEK3H.js.map} +0 -0
  394. /package/dist/{chunk-O4KMGRXE.js.map → chunk-SXWHN7GC.js.map} +0 -0
  395. /package/dist/{chunk-RNHVVMFN.js.map → chunk-T6JRMVOV.js.map} +0 -0
  396. /package/dist/{chunk-5QJQHBLE.js.map → chunk-U6JGQ37L.js.map} +0 -0
  397. /package/dist/{chunk-HC3PBX23.js.map → chunk-V5FE3UAI.js.map} +0 -0
  398. /package/dist/{chunk-ERZ2R42X.js.map → chunk-W2ZSNIBP.js.map} +0 -0
  399. /package/dist/{chunk-3COYXTGM.js.map → chunk-WHWDBTCJ.js.map} +0 -0
  400. /package/dist/{chunk-FIK3CQNA.js.map → chunk-WOC6DXP5.js.map} +0 -0
  401. /package/dist/{chunk-4FBVAGV3.js.map → chunk-XBMJ35IP.js.map} +0 -0
  402. /package/dist/{chunk-GFCVUY6G.js.map → chunk-YWCOJOUI.js.map} +0 -0
@@ -1,3 +1,6 @@
1
+ import {
2
+ claudeReplayNormalizer
3
+ } from "./chunk-54BGIBCR.js";
1
4
  import {
2
5
  openclawReplayNormalizer
3
6
  } from "./chunk-H4CKS5B2.js";
@@ -5,8 +8,8 @@ import {
5
8
  chatgptReplayNormalizer
6
9
  } from "./chunk-MMACM5G2.js";
7
10
  import {
8
- claudeReplayNormalizer
9
- } from "./chunk-54BGIBCR.js";
11
+ exportJsonBundle
12
+ } from "./chunk-UP6MOYCB.js";
10
13
  import {
11
14
  exportSqlite
12
15
  } from "./chunk-BV2TIZ4F.js";
@@ -29,8 +32,8 @@ import {
29
32
  exportMarkdownBundle
30
33
  } from "./chunk-765K3SAT.js";
31
34
  import {
32
- exportJsonBundle
33
- } from "./chunk-UP6MOYCB.js";
35
+ RoutingRulesStore
36
+ } from "./chunk-XL24QQ63.js";
34
37
  import {
35
38
  buildReplayNormalizerRegistry,
36
39
  clampBatchSize,
@@ -40,9 +43,6 @@ import {
40
43
  isReplaySource,
41
44
  normalizeReplaySessionKey
42
45
  } from "./chunk-AJVLDJU6.js";
43
- import {
44
- RoutingRulesStore
45
- } from "./chunk-XL24QQ63.js";
46
46
  import {
47
47
  TailscaleHelper
48
48
  } from "./chunk-EEC4PCG5.js";
@@ -54,25 +54,25 @@ import {
54
54
  } from "./chunk-MNB5RMAY.js";
55
55
  import {
56
56
  rebuildMemoryLifecycleLedger
57
- } from "./chunk-5QJQHBLE.js";
57
+ } from "./chunk-U6JGQ37L.js";
58
58
  import {
59
59
  rebuildObservations
60
60
  } from "./chunk-DX3XRGLH.js";
61
61
  import {
62
62
  archiveObservations
63
63
  } from "./chunk-MC6XO7T4.js";
64
- import {
65
- runCompatChecks
66
- } from "./chunk-GQL52GQ5.js";
67
64
  import {
68
65
  getBulkImportSource,
69
66
  listBulkImportSources,
70
67
  registerBulkImportSource,
71
68
  runBulkImportPipeline
72
69
  } from "./chunk-HSSERO3E.js";
70
+ import {
71
+ runCompatChecks
72
+ } from "./chunk-CDKHKZL5.js";
73
73
  import {
74
74
  searchVerifiedEpisodes
75
- } from "./chunk-ERZ2R42X.js";
75
+ } from "./chunk-W2ZSNIBP.js";
76
76
  import {
77
77
  getUtilityLearningStatus,
78
78
  learnUtilityPromotionWeights
@@ -86,10 +86,10 @@ import {
86
86
  } from "./chunk-OJP3N7UK.js";
87
87
  import {
88
88
  promoteSemanticRuleFromMemory
89
- } from "./chunk-A4IJCD2Z.js";
89
+ } from "./chunk-HXXTXLKA.js";
90
90
  import {
91
91
  searchVerifiedSemanticRules
92
- } from "./chunk-GFCVUY6G.js";
92
+ } from "./chunk-YWCOJOUI.js";
93
93
  import {
94
94
  buildResumeBundleFromState,
95
95
  getResumeBundleStatus,
@@ -105,7 +105,7 @@ import {
105
105
  } from "./chunk-HYQJQGD3.js";
106
106
  import {
107
107
  parseXrayCliOptions
108
- } from "./chunk-W3IC7QOY.js";
108
+ } from "./chunk-RVYVMQK4.js";
109
109
  import {
110
110
  readRuntimePolicySnapshot,
111
111
  sanitizeRuntimePolicyValues
@@ -118,7 +118,7 @@ import {
118
118
  runOperatorInventory,
119
119
  runOperatorRepair,
120
120
  runOperatorSetup
121
- } from "./chunk-XAGYS7X6.js";
121
+ } from "./chunk-5R6S4DJZ.js";
122
122
  import {
123
123
  analyzeSessionIntegrity,
124
124
  applySessionRepair,
@@ -150,12 +150,12 @@ import {
150
150
  import {
151
151
  listConnectorStates
152
152
  } from "./chunk-6GUG4YNM.js";
153
- import {
154
- searchHarmonicRetrieval
155
- } from "./chunk-KVJRXN2E.js";
156
153
  import {
157
154
  rescoreMemoryImportance
158
155
  } from "./chunk-JXS5PDQ7.js";
156
+ import {
157
+ searchHarmonicRetrieval
158
+ } from "./chunk-KVJRXN2E.js";
159
159
  import {
160
160
  createEvalBaselineSnapshot,
161
161
  getEvalHarnessStatus,
@@ -171,26 +171,26 @@ import {
171
171
  import {
172
172
  GraphDashboardServer
173
173
  } from "./chunk-YNDLCWXS.js";
174
+ import {
175
+ buildConnectorRowsFromDefinitions,
176
+ parseConnectorsListOptions,
177
+ parseConnectorsRunName,
178
+ parseConnectorsStatusOptions,
179
+ renderConnectorsList,
180
+ renderConnectorsRunResult,
181
+ runConnectorPollOnce
182
+ } from "./chunk-OKTXM5H4.js";
174
183
  import {
175
184
  rebuildMemoryProjection,
176
185
  repairMemoryProjection,
177
186
  verifyMemoryProjection
178
- } from "./chunk-FIK3CQNA.js";
187
+ } from "./chunk-WOC6DXP5.js";
179
188
  import {
180
189
  applyCommitmentLedgerLifecycle,
181
190
  getCommitmentLedgerStatus,
182
191
  recordCommitmentLedgerEntry,
183
192
  transitionCommitmentLedgerEntryState
184
193
  } from "./chunk-LMDRGRJ2.js";
185
- import {
186
- buildConnectorRowsFromDefinitions,
187
- parseConnectorsListOptions,
188
- parseConnectorsRunName,
189
- parseConnectorsStatusOptions,
190
- renderConnectorsList,
191
- renderConnectorsRunResult,
192
- runConnectorPollOnce
193
- } from "./chunk-OKTXM5H4.js";
194
194
  import {
195
195
  chunkContent
196
196
  } from "./chunk-UQ7RN5HK.js";
@@ -200,7 +200,7 @@ import {
200
200
  import {
201
201
  EngramAccessHttpServer,
202
202
  MeetingsInputError
203
- } from "./chunk-CX4ZUMC6.js";
203
+ } from "./chunk-2DSUT7DZ.js";
204
204
  import {
205
205
  WearablesInputError
206
206
  } from "./chunk-V7IZKJI3.js";
@@ -213,13 +213,13 @@ import {
213
213
  createProductionChatLlmAdapter,
214
214
  loadChatSession,
215
215
  sessionBelongsToPrincipal
216
- } from "./chunk-4FBVAGV3.js";
216
+ } from "./chunk-XBMJ35IP.js";
217
217
  import {
218
218
  getAbstractionNodeStoreStatus
219
219
  } from "./chunk-OADWQ5CR.js";
220
220
  import {
221
221
  EngramAccessService
222
- } from "./chunk-QUENPGWZ.js";
222
+ } from "./chunk-RCU25Z66.js";
223
223
  import {
224
224
  WorkStorage
225
225
  } from "./chunk-GDB4J2H3.js";
@@ -236,10 +236,10 @@ import {
236
236
  parseRecallExplainFormat,
237
237
  renderRecallExplain,
238
238
  renderXray
239
- } from "./chunk-O4KMGRXE.js";
239
+ } from "./chunk-SXWHN7GC.js";
240
240
  import {
241
241
  readAggregateExtractionWatermark
242
- } from "./chunk-FR27HBBA.js";
242
+ } from "./chunk-KA47C7BF.js";
243
243
  import {
244
244
  getObjectiveStateStoreStatus
245
245
  } from "./chunk-6HMYUWXR.js";
@@ -248,15 +248,15 @@ import {
248
248
  readMemoryGovernanceRunArtifact,
249
249
  restoreMemoryGovernanceRun,
250
250
  runMemoryGovernance
251
- } from "./chunk-HC3PBX23.js";
251
+ } from "./chunk-V5FE3UAI.js";
252
252
  import {
253
253
  listNamespaces,
254
254
  runNamespaceMigration,
255
255
  verifyNamespaces
256
- } from "./chunk-QR6G5KF4.js";
256
+ } from "./chunk-5VQPZ4GV.js";
257
257
  import {
258
258
  resolveNamespaceChildRoot
259
- } from "./chunk-UW66OZTD.js";
259
+ } from "./chunk-FULKGK7P.js";
260
260
  import {
261
261
  analyzeGraphHealth
262
262
  } from "./chunk-L2DPF4DF.js";
@@ -265,14 +265,14 @@ import {
265
265
  } from "./chunk-W4FBGYGK.js";
266
266
  import {
267
267
  meetingIdDate
268
- } from "./chunk-FUCYDRE5.js";
268
+ } from "./chunk-IDE5AR5W.js";
269
269
  import {
270
270
  isValidTranscriptDate
271
271
  } from "./chunk-UHVXE24Y.js";
272
272
  import {
273
273
  RECALL_DISCLOSURE_LEVELS,
274
274
  isRecallDisclosure
275
- } from "./chunk-DZPFMQZ7.js";
275
+ } from "./chunk-3S63QIFQ.js";
276
276
  import {
277
277
  bumpMemoryCorpusVersionForDir
278
278
  } from "./chunk-IJ7HK452.js";
@@ -7985,4 +7985,4 @@ export {
7985
7985
  listMemoryMarkdownFilePaths,
7986
7986
  registerCli
7987
7987
  };
7988
- //# sourceMappingURL=chunk-QVJPH7SH.js.map
7988
+ //# sourceMappingURL=chunk-5LRDM4R7.js.map
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-2FSTB6BJ.js";
6
+ } from "./chunk-ILBLZ5Y5.js";
7
7
  import {
8
8
  analyzeSessionIntegrity,
9
9
  applySessionRepair,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-CMTINOFS.js";
15
15
  import {
16
16
  summarizeCorpusAndReplica
17
- } from "./chunk-GUAL4PQH.js";
17
+ } from "./chunk-ST5IEK3H.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -41,20 +41,20 @@ import {
41
41
  } from "./chunk-AUMWZSE7.js";
42
42
  import {
43
43
  readAggregateExtractionWatermark
44
- } from "./chunk-FR27HBBA.js";
44
+ } from "./chunk-KA47C7BF.js";
45
45
  import {
46
46
  listMemoryGovernanceRuns,
47
47
  readMemoryGovernanceRunArtifact
48
- } from "./chunk-HC3PBX23.js";
48
+ } from "./chunk-V5FE3UAI.js";
49
49
  import {
50
50
  listNamespaces
51
- } from "./chunk-QR6G5KF4.js";
51
+ } from "./chunk-5VQPZ4GV.js";
52
52
  import {
53
53
  analyzeGraphHealth
54
54
  } from "./chunk-L2DPF4DF.js";
55
55
  import {
56
56
  StorageManager
57
- } from "./chunk-FUCYDRE5.js";
57
+ } from "./chunk-IDE5AR5W.js";
58
58
  import {
59
59
  lintWorkspaceFiles
60
60
  } from "./chunk-DM2T26WE.js";
@@ -1683,4 +1683,4 @@ export {
1683
1683
  runBenchmarkRecall,
1684
1684
  runOperatorRepair
1685
1685
  };
1686
- //# sourceMappingURL=chunk-XAGYS7X6.js.map
1686
+ //# sourceMappingURL=chunk-5R6S4DJZ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  namespaceCollectionName
3
- } from "./chunk-JZH4LWHB.js";
3
+ } from "./chunk-KMWYZTIE.js";
4
4
  import {
5
5
  NamespaceStorageRouter
6
- } from "./chunk-AMAUBUKY.js";
6
+ } from "./chunk-LI7OE7G6.js";
7
7
  import {
8
8
  namespaceIdentityFromToken,
9
9
  namespaceIdentityToken
@@ -213,4 +213,4 @@ export {
213
213
  verifyNamespaces,
214
214
  runNamespaceMigration
215
215
  };
216
- //# sourceMappingURL=chunk-QR6G5KF4.js.map
216
+ //# sourceMappingURL=chunk-5VQPZ4GV.js.map
@@ -7,7 +7,7 @@ import {
7
7
  liveTurnsFromExtractionSnapshot,
8
8
  matchingQueuedExtractionPrefixLength,
9
9
  probeWithTimeout
10
- } from "./chunk-ER7W6H4T.js";
10
+ } from "./chunk-2AD5SXO4.js";
11
11
  import {
12
12
  scanSignals
13
13
  } from "./chunk-H3FZVNRN.js";
@@ -792,4 +792,4 @@ var SmartBuffer = class {
792
792
  export {
793
793
  SmartBuffer
794
794
  };
795
- //# sourceMappingURL=chunk-E5XQIWAL.js.map
795
+ //# sourceMappingURL=chunk-64BHFFKZ.js.map
@@ -28,10 +28,10 @@ import {
28
28
  defineOperation,
29
29
  parseNamespacePreflightWriteOp,
30
30
  resolveAuthorizedNamespaceWritablePreflight
31
- } from "./chunk-QUENPGWZ.js";
31
+ } from "./chunk-RCU25Z66.js";
32
32
  import {
33
33
  validateBriefingFormat
34
- } from "./chunk-LPYDOLSM.js";
34
+ } from "./chunk-L7G72WY4.js";
35
35
  import {
36
36
  enforceNamespaceAllowList,
37
37
  tokenCapabilityStore
@@ -494,4 +494,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
494
494
  defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
495
495
  defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
496
496
  defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
497
- //# sourceMappingURL=chunk-GRUYA45P.js.map
497
+ //# sourceMappingURL=chunk-6H744ZBH.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-2DQ2XREU.js";
7
7
  import {
8
8
  compareEntityTimestamps
9
- } from "./chunk-FUCYDRE5.js";
9
+ } from "./chunk-IDE5AR5W.js";
10
10
  import {
11
11
  normalizeEntityName
12
12
  } from "./chunk-YXZG5TVN.js";
@@ -862,4 +862,4 @@ export {
862
862
  entityIndexVersion,
863
863
  entityRecentTranscriptLookbackHours
864
864
  };
865
- //# sourceMappingURL=chunk-6ISC4AVB.js.map
865
+ //# sourceMappingURL=chunk-BDNL34CT.js.map
@@ -8,8 +8,7 @@ import {
8
8
  // src/compat/checks.ts
9
9
  import { access, readFile } from "fs/promises";
10
10
  import path from "path";
11
- var REQUIRED_HOOKS_LEGACY = ["before_agent_start", "agent_end"];
12
- var REQUIRED_HOOKS_NEW = ["before_prompt_build", "agent_end"];
11
+ var REQUIRED_HOOKS = ["before_prompt_build", "agent_end"];
13
12
  var OPENCLAW_REMNIC_PLUGIN_ID = "openclaw-remnic";
14
13
  var OPENCLAW_REMNIC_LEGACY_PLUGIN_ID = "openclaw-engram";
15
14
  function isSafeCommandToken(command) {
@@ -578,15 +577,12 @@ async function runCompatChecks(options) {
578
577
  const indexRaw = await readFile(indexPath, "utf-8");
579
578
  const structuralSource = stripCommentsAndStrings(indexRaw);
580
579
  const hooks = parseHookRegistrations(indexRaw);
581
- const missingLegacy = REQUIRED_HOOKS_LEGACY.filter((hook) => !hooks.has(hook));
582
- const missingNew = REQUIRED_HOOKS_NEW.filter((hook) => !hooks.has(hook));
580
+ const missingHooks = REQUIRED_HOOKS.filter((hook) => !hooks.has(hook));
583
581
  const hasMemoryPromptSection = hasMemoryPromptSectionRegistration(structuralSource);
584
- const missingLegacyAdj = hasMemoryPromptSection ? missingLegacy.filter((h) => h !== "before_agent_start") : missingLegacy;
585
- const missingNewAdj = hasMemoryPromptSection ? missingNew.filter((h) => h !== "before_prompt_build") : missingNew;
586
- const missingHooks = missingNewAdj.length <= missingLegacyAdj.length ? missingNewAdj : missingLegacyAdj;
582
+ const missingRequiredHooks = hasMemoryPromptSection ? missingHooks.filter((hook) => hook !== "before_prompt_build") : missingHooks;
587
583
  const hasGatewayStartHook = hooks.has("gateway_start");
588
584
  const hasServiceStart = hasServiceStartRegistration(structuralSource);
589
- if (missingHooks.length === 0 && (hasGatewayStartHook || hasServiceStart)) {
585
+ if (missingRequiredHooks.length === 0 && (hasGatewayStartHook || hasServiceStart)) {
590
586
  checks.push({
591
587
  id: "hook-registration-core",
592
588
  title: "Core hook registration",
@@ -595,18 +591,25 @@ async function runCompatChecks(options) {
595
591
  });
596
592
  } else {
597
593
  const missingParts = [];
598
- if (missingHooks.length > 0) {
599
- missingParts.push(`hooks: ${missingHooks.join(", ")}`);
594
+ if (missingRequiredHooks.length > 0) {
595
+ missingParts.push(`hooks: ${missingRequiredHooks.join(", ")}`);
600
596
  }
601
597
  if (!hasGatewayStartHook && !hasServiceStart) {
602
598
  missingParts.push("startup wiring: gateway_start hook or api.registerService({ start })");
603
599
  }
600
+ const remediationParts = [];
601
+ if (missingRequiredHooks.length > 0) {
602
+ remediationParts.push(`registers ${missingRequiredHooks.join(", ")}`);
603
+ }
604
+ if (!hasGatewayStartHook && !hasServiceStart) {
605
+ remediationParts.push("registers gateway_start or api.registerService({ start })");
606
+ }
604
607
  checks.push({
605
608
  id: "hook-registration-core",
606
609
  title: "Core hook registration",
607
610
  level: "error",
608
611
  message: `Missing expected registration(s): ${missingParts.join("; ")}`,
609
- remediation: "Ensure src/index.ts registers before_prompt_build (or before_agent_start) and agent_end, plus either gateway_start or api.registerService({ start })."
612
+ remediation: `Ensure src/index.ts ${remediationParts.join(" and ")}.`
610
613
  });
611
614
  }
612
615
  const cliWired = hasCliRegistration(structuralSource);
@@ -644,4 +647,4 @@ async function runCompatChecks(options) {
644
647
  export {
645
648
  runCompatChecks
646
649
  };
647
- //# sourceMappingURL=chunk-GQL52GQ5.js.map
650
+ //# sourceMappingURL=chunk-CDKHKZL5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/compat/checks.ts"],"sourcesContent":["import { access, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CompatCheckOptions, CompatCheckResult, CompatReport, CompatRunner } from \"./types.js\";\nimport { compareVersions } from \"../version-utils.js\";\nimport { launchProcess } from \"../runtime/child-process.js\";\n\nconst REQUIRED_HOOKS = [\"before_prompt_build\", \"agent_end\"];\nconst OPENCLAW_REMNIC_PLUGIN_ID = \"openclaw-remnic\";\nconst OPENCLAW_REMNIC_LEGACY_PLUGIN_ID = \"openclaw-engram\";\n\nfunction isSafeCommandToken(command: string): boolean {\n return /^[a-zA-Z0-9._-]+$/.test(command);\n}\n\nconst defaultRunner: CompatRunner = {\n async commandExists(command: string): Promise<boolean> {\n if (!isSafeCommandToken(command)) return false;\n const binary = process.platform === \"win32\" ? \"where\" : \"which\";\n const args = [command];\n return new Promise<boolean>((resolve) => {\n const child = launchProcess(binary, args, { stdio: \"ignore\" });\n child.on(\"error\", () => resolve(false));\n child.on(\"close\", (code) => resolve(code === 0));\n });\n },\n};\n\nfunction summarize(checks: CompatCheckResult[]): { ok: number; warn: number; error: number } {\n const out = { ok: 0, warn: 0, error: 0 };\n for (const check of checks) {\n out[check.level] += 1;\n }\n return out;\n}\n\nfunction stripCommentsAndStrings(source: string): string {\n const out: string[] = [];\n let i = 0;\n while (i < source.length) {\n const ch = source[i];\n const next = source[i + 1];\n\n if (ch === \"/\" && next === \"/\") {\n out.push(\" \", \" \");\n i += 2;\n while (i < source.length && source[i] !== \"\\n\") {\n out.push(\" \");\n i += 1;\n }\n continue;\n }\n\n if (ch === \"/\" && next === \"*\") {\n out.push(\" \", \" \");\n i += 2;\n while (i < source.length) {\n const c = source[i];\n const n = source[i + 1];\n out.push(c === \"\\n\" ? \"\\n\" : \" \");\n i += 1;\n if (c === \"*\" && n === \"/\") {\n out.push(\" \");\n i += 1;\n break;\n }\n }\n continue;\n }\n\n if (ch === '\"' || ch === \"'\" || ch === \"`\") {\n const quote = ch;\n out.push(\" \");\n i += 1;\n while (i < source.length) {\n const c = source[i];\n if (c === \"\\\\\") {\n out.push(\" \");\n i += 1;\n if (i < source.length) {\n out.push(source[i] === \"\\n\" ? \"\\n\" : \" \");\n i += 1;\n }\n continue;\n }\n out.push(c === \"\\n\" ? \"\\n\" : \" \");\n i += 1;\n if (c === quote) break;\n }\n continue;\n }\n\n out.push(ch);\n i += 1;\n }\n return out.join(\"\");\n}\n\nfunction parseHookRegistrations(source: string): Set<string> {\n const hooks = new Set<string>();\n let i = 0;\n\n while (i < source.length) {\n const ch = source[i];\n const next = source[i + 1];\n\n if (ch === \"/\" && next === \"/\") {\n i += 2;\n while (i < source.length && source[i] !== \"\\n\") i += 1;\n continue;\n }\n\n if (ch === \"/\" && next === \"*\") {\n i += 2;\n while (i + 1 < source.length) {\n if (source[i] === \"*\" && source[i + 1] === \"/\") {\n i += 2;\n break;\n }\n i += 1;\n }\n continue;\n }\n\n if (ch === '\"' || ch === \"'\" || ch === \"`\") {\n const quote = ch;\n i += 1;\n while (i < source.length) {\n if (source[i] === \"\\\\\") {\n i += 2;\n continue;\n }\n if (source[i] === quote) {\n i += 1;\n break;\n }\n i += 1;\n }\n continue;\n }\n\n if (source.startsWith(\"api.on\", i) && (i === 0 || !/[a-zA-Z0-9_$\\.]/.test(source[i - 1]))) {\n let j = i + \"api.on\".length;\n while (j < source.length && /\\s/.test(source[j])) j += 1;\n if (source[j] !== \"(\") {\n i += 1;\n continue;\n }\n\n j += 1;\n while (j < source.length && /\\s/.test(source[j])) j += 1;\n const quote = source[j];\n if (quote !== '\"' && quote !== \"'\") {\n i += 1;\n continue;\n }\n\n j += 1;\n const start = j;\n while (j < source.length && source[j] !== quote) {\n if (source[j] === \"\\\\\") {\n j += 2;\n } else {\n j += 1;\n }\n }\n if (j < source.length) {\n const hook = source.slice(start, j);\n if (/^[a-z_]+$/.test(hook)) hooks.add(hook);\n i = j + 1;\n continue;\n }\n }\n\n i += 1;\n }\n\n return hooks;\n}\n\nfunction hasServiceStartRegistration(source: string): boolean {\n let i = 0;\n while (i < source.length) {\n const callIndex = source.indexOf(\"api.registerService\", i);\n if (callIndex === -1) return false;\n if (callIndex > 0 && /[a-zA-Z0-9_$\\.]/.test(source[callIndex - 1])) {\n i = callIndex + 1;\n continue;\n }\n\n let cursor = callIndex + \"api.registerService\".length;\n while (cursor < source.length && /\\s/.test(source[cursor])) cursor += 1;\n if (source[cursor] !== \"(\") {\n i = callIndex + 1;\n continue;\n }\n\n cursor += 1;\n while (cursor < source.length && /\\s/.test(source[cursor])) cursor += 1;\n if (source[cursor] !== \"{\") {\n i = callIndex + 1;\n continue;\n }\n\n if (objectLiteralHasTopLevelStart(source, cursor)) return true;\n i = cursor + 1;\n }\n return false;\n}\n\nfunction objectLiteralHasTopLevelStart(source: string, objectStart: number): boolean {\n let depth = 0;\n let i = objectStart;\n while (i < source.length) {\n const ch = source[i];\n if (ch === \"{\") {\n depth += 1;\n i += 1;\n continue;\n }\n if (ch === \"}\") {\n depth -= 1;\n if (depth === 0) return false;\n i += 1;\n continue;\n }\n if (depth === 1 && source.startsWith(\"start\", i)) {\n const before = source[i - 1];\n const after = source[i + \"start\".length];\n if (\n (!before || !/[a-zA-Z0-9_$]/.test(before)) &&\n (!after || !/[a-zA-Z0-9_$]/.test(after))\n ) {\n let cursor = i + \"start\".length;\n while (cursor < source.length && /\\s/.test(source[cursor])) cursor += 1;\n if (source[cursor] === \":\" || source[cursor] === \"(\") return true;\n }\n }\n i += 1;\n }\n return false;\n}\n\nfunction hasCliRegistration(source: string): boolean {\n return /registerCli\\s*\\([^)]*\\borchestrator\\b[^)]*\\)/m.test(source);\n}\n\nfunction parseCurrentNodeVersion(raw: string): [number, number, number] | null {\n const normalized = raw.startsWith(\"v\") ? raw.slice(1) : raw;\n const match = normalized.match(/^(\\d+)\\.(\\d+)\\.(\\d+)/);\n if (!match) return null;\n return [Number(match[1]), Number(match[2]), Number(match[3])];\n}\n\ntype NodeEngineEvaluation =\n | { status: \"satisfied\" }\n | { status: \"unsatisfied\" }\n | { status: \"unsupported\"; reason: string };\n\ntype ComparatorOperator = \">\" | \">=\" | \"<\" | \"<=\" | \"=\";\n\ninterface ParsedRangeVersion {\n version: [number, number, number];\n specifiedParts: number;\n}\n\nfunction parseRangeVersion(raw: string): ParsedRangeVersion | null {\n const match = raw.trim().match(/^v?(\\d+)(?:\\.(\\d+|x|\\*))?(?:\\.(\\d+|x|\\*))?$/i);\n if (!match) return null;\n\n const minor = match[2];\n const patch = match[3];\n if (minor && /^(x|\\*)$/i.test(minor)) {\n return { version: [Number(match[1]), 0, 0], specifiedParts: 1 };\n }\n if (patch && /^(x|\\*)$/i.test(patch)) {\n return {\n version: [Number(match[1]), Number(minor ?? 0), 0],\n specifiedParts: 2,\n };\n }\n\n return {\n version: [Number(match[1]), Number(minor ?? 0), Number(patch ?? 0)],\n specifiedParts: patch ? 3 : minor ? 2 : 1,\n };\n}\n\nfunction upperBoundForPartial(\n parsed: ParsedRangeVersion,\n): [number, number, number] | null {\n if (parsed.specifiedParts === 1) {\n return [parsed.version[0] + 1, 0, 0];\n }\n if (parsed.specifiedParts === 2) {\n return [parsed.version[0], parsed.version[1] + 1, 0];\n }\n return null;\n}\n\nfunction upperBoundForCaret(\n parsed: ParsedRangeVersion,\n): [number, number, number] {\n const [major, minor, patch] = parsed.version;\n if (parsed.specifiedParts === 1) {\n return [major + 1, 0, 0];\n }\n if (major > 0) return [major + 1, 0, 0];\n if (parsed.specifiedParts === 2) {\n return [0, minor + 1, 0];\n }\n if (minor > 0) return [0, minor + 1, 0];\n return [0, 0, patch + 1];\n}\n\nfunction upperBoundForTilde(\n parsed: ParsedRangeVersion,\n): [number, number, number] {\n const [major, minor] = parsed.version;\n if (parsed.specifiedParts === 1) {\n return [major + 1, 0, 0];\n }\n return [major, minor + 1, 0];\n}\n\nfunction compareWithOperator(\n current: [number, number, number],\n operator: ComparatorOperator,\n target: [number, number, number],\n): boolean {\n const comparison = compareVersions(current, target);\n switch (operator) {\n case \">\":\n return comparison > 0;\n case \">=\":\n return comparison >= 0;\n case \"<\":\n return comparison < 0;\n case \"<=\":\n return comparison <= 0;\n case \"=\":\n return comparison === 0;\n }\n}\n\nfunction evaluateComparatorToken(\n token: string,\n current: [number, number, number],\n): NodeEngineEvaluation {\n const trimmed = token.trim();\n if (!trimmed || trimmed === \"*\" || /^x$/i.test(trimmed)) {\n return { status: \"satisfied\" };\n }\n\n const shorthand = trimmed.match(/^([~^])\\s*(.+)$/);\n if (shorthand) {\n const parsed = parseRangeVersion(shorthand[2]);\n if (!parsed) {\n return {\n status: \"unsupported\",\n reason: `unsupported node engine comparator \"${trimmed}\"`,\n };\n }\n const upper = shorthand[1] === \"^\"\n ? upperBoundForCaret(parsed)\n : upperBoundForTilde(parsed);\n return compareWithOperator(current, \">=\", parsed.version)\n && compareWithOperator(current, \"<\", upper)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n }\n\n const comparator = trimmed.match(/^(>=|<=|>|<|=)?\\s*(.+)$/);\n if (!comparator) {\n return {\n status: \"unsupported\",\n reason: `unsupported node engine comparator \"${trimmed}\"`,\n };\n }\n const operator = (comparator[1] ?? \"=\") as ComparatorOperator;\n const parsed = parseRangeVersion(comparator[2]);\n if (!parsed) {\n return {\n status: \"unsupported\",\n reason: `unsupported node engine comparator \"${trimmed}\"`,\n };\n }\n\n if (!comparator[1]) {\n const upper = upperBoundForPartial(parsed);\n if (upper) {\n return compareWithOperator(current, \">=\", parsed.version)\n && compareWithOperator(current, \"<\", upper)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n }\n }\n\n const partialUpper = upperBoundForPartial(parsed);\n if (partialUpper) {\n switch (operator) {\n case \"=\":\n return compareWithOperator(current, \">=\", parsed.version)\n && compareWithOperator(current, \"<\", partialUpper)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n case \">=\":\n return compareWithOperator(current, \">=\", parsed.version)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n case \">\":\n return compareWithOperator(current, \">=\", partialUpper)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n case \"<=\":\n return compareWithOperator(current, \"<\", partialUpper)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n case \"<\":\n return compareWithOperator(current, \"<\", parsed.version)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n }\n }\n\n return compareWithOperator(current, operator, parsed.version)\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n}\n\nfunction tokenizeRangeAlternative(alternative: string): string[] {\n const tokens: string[] = [];\n let i = 0;\n\n while (i < alternative.length) {\n while (i < alternative.length && /\\s/.test(alternative[i])) i += 1;\n if (i >= alternative.length) break;\n\n let operator = \"\";\n const ch = alternative[i];\n if (ch === \">\" || ch === \"<\") {\n operator = ch;\n i += 1;\n if (alternative[i] === \"=\") {\n operator += \"=\";\n i += 1;\n }\n } else if (ch === \"=\" || ch === \"^\" || ch === \"~\") {\n operator = ch;\n i += 1;\n }\n\n while (i < alternative.length && /\\s/.test(alternative[i])) i += 1;\n const versionStart = i;\n while (i < alternative.length && !/\\s/.test(alternative[i])) i += 1;\n const version = alternative.slice(versionStart, i);\n tokens.push(`${operator}${version}`);\n }\n\n return tokens;\n}\n\nfunction evaluateHyphenRange(\n alternative: string,\n current: [number, number, number],\n): NodeEngineEvaluation | null {\n const match = alternative.match(/^(.+?)\\s+-\\s+(.+)$/);\n if (!match) return null;\n\n const lower = parseRangeVersion(match[1]);\n const upper = parseRangeVersion(match[2]);\n if (!lower || !upper) {\n return {\n status: \"unsupported\",\n reason: `unsupported node engine hyphen range \"${alternative}\"`,\n };\n }\n\n const lowerSatisfied = compareWithOperator(current, \">=\", lower.version);\n const upperBound = upperBoundForPartial(upper);\n const upperSatisfied = upperBound\n ? compareWithOperator(current, \"<\", upperBound)\n : compareWithOperator(current, \"<=\", upper.version);\n return lowerSatisfied && upperSatisfied\n ? { status: \"satisfied\" }\n : { status: \"unsatisfied\" };\n}\n\nfunction evaluateNodeEngineRange(\n rawRange: string | undefined,\n currentVersion: [number, number, number],\n): NodeEngineEvaluation {\n if (!rawRange || rawRange.trim().length === 0) {\n return { status: \"unsupported\", reason: \"missing node engine range\" };\n }\n\n const alternatives = rawRange.split(\"||\").map((part) => part.trim()).filter(Boolean);\n if (alternatives.length === 0) {\n return { status: \"unsupported\", reason: \"missing node engine range\" };\n }\n\n let firstUnsupported: string | undefined;\n let hasUnsatisfiedAlternative = false;\n for (const alternative of alternatives) {\n const hyphenResult = evaluateHyphenRange(alternative, currentVersion);\n if (hyphenResult) {\n if (hyphenResult.status === \"satisfied\") {\n return { status: \"satisfied\" };\n }\n if (hyphenResult.status === \"unsupported\") {\n firstUnsupported ??= hyphenResult.reason;\n } else {\n hasUnsatisfiedAlternative = true;\n }\n continue;\n }\n\n const tokens = tokenizeRangeAlternative(alternative).filter(Boolean);\n if (tokens.length === 0) continue;\n let alternativeSatisfied = true;\n for (const token of tokens) {\n const result = evaluateComparatorToken(token, currentVersion);\n if (result.status === \"unsupported\") {\n firstUnsupported ??= result.reason;\n alternativeSatisfied = false;\n break;\n }\n if (result.status === \"unsatisfied\") {\n hasUnsatisfiedAlternative = true;\n alternativeSatisfied = false;\n break;\n }\n }\n if (alternativeSatisfied) {\n return { status: \"satisfied\" };\n }\n }\n\n if (hasUnsatisfiedAlternative) {\n return { status: \"unsatisfied\" };\n }\n if (firstUnsupported) {\n return { status: \"unsupported\", reason: firstUnsupported };\n }\n return { status: \"unsatisfied\" };\n}\n\nfunction hasMemoryPromptSectionRegistration(source: string): boolean {\n const apiReceiver = String.raw`(?:\\bapi|\\(\\s*api\\s*\\)|\\(\\s*api\\s+as\\s+[^)]+\\)|\\(\\s*<[^>]+>\\s*api\\s*\\))`;\n return new RegExp(\n `${apiReceiver}\\\\s*\\\\??\\\\.\\\\s*registerMemoryPromptSection\\\\s*(?:\\\\?\\\\.)?\\\\s*\\\\(`,\n ).test(source);\n}\n\nexport async function runCompatChecks(options: CompatCheckOptions): Promise<CompatReport> {\n const checks: CompatCheckResult[] = [];\n const runner = options.runner ?? defaultRunner;\n const pluginJsonPath = path.join(options.repoRoot, \"openclaw.plugin.json\");\n const packageJsonPath = path.join(options.repoRoot, \"package.json\");\n const indexPath = path.join(options.repoRoot, \"src\", \"index.ts\");\n\n let pluginRaw = \"\";\n let pluginManifestPresent = false;\n try {\n pluginRaw = await readFile(pluginJsonPath, \"utf-8\");\n pluginManifestPresent = true;\n checks.push({\n id: \"plugin-manifest-present\",\n title: \"Plugin manifest present\",\n level: \"ok\",\n message: \"Found openclaw.plugin.json\",\n });\n } catch {\n checks.push({\n id: \"plugin-manifest-present\",\n title: \"Plugin manifest present\",\n level: \"error\",\n message: \"openclaw.plugin.json is missing\",\n remediation: \"Restore openclaw.plugin.json at repo root with plugin metadata.\",\n });\n }\n\n if (pluginManifestPresent) {\n try {\n const plugin = JSON.parse(pluginRaw) as { id?: string; kind?: string };\n const isValidId = plugin.id === OPENCLAW_REMNIC_PLUGIN_ID || plugin.id === OPENCLAW_REMNIC_LEGACY_PLUGIN_ID;\n if (isValidId && plugin.kind === \"memory\") {\n checks.push({\n id: \"plugin-manifest-shape\",\n title: \"Plugin manifest ID and kind\",\n level: \"ok\",\n message: \"Plugin manifest id/kind match expected values.\",\n });\n } else {\n checks.push({\n id: \"plugin-manifest-shape\",\n title: \"Plugin manifest ID and kind\",\n level: \"error\",\n message: `Unexpected manifest values (id=${String(plugin.id)}, kind=${String(plugin.kind)})`,\n remediation: `Set manifest id=${OPENCLAW_REMNIC_PLUGIN_ID} (or ${OPENCLAW_REMNIC_LEGACY_PLUGIN_ID} for the shim) and kind=memory.`,\n });\n }\n } catch {\n checks.push({\n id: \"plugin-manifest-shape\",\n title: \"Plugin manifest ID and kind\",\n level: \"error\",\n message: \"openclaw.plugin.json is not valid JSON\",\n remediation: \"Fix JSON syntax in openclaw.plugin.json.\",\n });\n }\n }\n\n let packageRaw = \"\";\n let packageJsonPresent = false;\n try {\n packageRaw = await readFile(packageJsonPath, \"utf-8\");\n packageJsonPresent = true;\n } catch {\n checks.push({\n id: \"package-json-present\",\n title: \"package.json present\",\n level: \"error\",\n message: \"package.json is missing\",\n remediation: \"Restore package.json at repo root.\",\n });\n }\n\n if (packageJsonPresent) {\n try {\n const pkg = JSON.parse(packageRaw) as {\n openclaw?: { plugin?: string; extensions?: string[] };\n engines?: { node?: string };\n };\n const pluginPathOk = pkg.openclaw?.plugin === \"./openclaw.plugin.json\";\n const extOk = Array.isArray(pkg.openclaw?.extensions)\n && pkg.openclaw?.extensions.includes(\"./dist/index.js\");\n if (pluginPathOk && extOk) {\n checks.push({\n id: \"package-openclaw-exports\",\n title: \"package.json OpenClaw export wiring\",\n level: \"ok\",\n message: \"package.json openclaw.plugin/extensions wiring looks valid.\",\n });\n } else {\n checks.push({\n id: \"package-openclaw-exports\",\n title: \"package.json OpenClaw export wiring\",\n level: \"error\",\n message: \"package.json openclaw plugin/extension wiring is missing or invalid.\",\n remediation: \"Set openclaw.plugin to ./openclaw.plugin.json and include ./dist/index.js in openclaw.extensions.\",\n });\n }\n\n const currentNode = options.currentNodeVersion ?? process.version;\n const currentVersion = parseCurrentNodeVersion(currentNode);\n const engineEvaluation: NodeEngineEvaluation = currentVersion\n ? evaluateNodeEngineRange(pkg.engines?.node, currentVersion)\n : { status: \"unsupported\", reason: \"unable to parse current Node version\" };\n if (engineEvaluation.status === \"unsupported\") {\n checks.push({\n id: \"node-version-compat\",\n title: \"Node runtime compatibility\",\n level: \"warn\",\n message: `Unable to evaluate node engine/current version: ${engineEvaluation.reason}.`,\n remediation: \"Confirm Node version meets package.json engines.node requirement.\",\n metadata: { enginesNode: pkg.engines?.node, currentNode },\n });\n } else if (engineEvaluation.status === \"satisfied\") {\n checks.push({\n id: \"node-version-compat\",\n title: \"Node runtime compatibility\",\n level: \"ok\",\n message: `Current Node ${currentNode} satisfies engines requirement ${pkg.engines?.node}.`,\n });\n } else {\n checks.push({\n id: \"node-version-compat\",\n title: \"Node runtime compatibility\",\n level: \"error\",\n message: `Current Node ${currentNode} does not satisfy engines requirement ${pkg.engines?.node}.`,\n remediation: \"Upgrade Node runtime to meet package.json engines.node minimum.\",\n });\n }\n } catch {\n checks.push({\n id: \"package-json-parse\",\n title: \"package.json parse\",\n level: \"error\",\n message: \"package.json is not valid JSON\",\n remediation: \"Fix JSON syntax in package.json.\",\n });\n }\n }\n\n try {\n await access(indexPath);\n const indexRaw = await readFile(indexPath, \"utf-8\");\n const structuralSource = stripCommentsAndStrings(indexRaw);\n const hooks = parseHookRegistrations(indexRaw);\n const missingHooks = REQUIRED_HOOKS.filter((hook) => !hooks.has(hook));\n // registerMemoryPromptSection is a valid alternative to the recall hook only\n // when it is registered on the OpenClaw plugin API object.\n const hasMemoryPromptSection = hasMemoryPromptSectionRegistration(structuralSource);\n const missingRequiredHooks = hasMemoryPromptSection\n ? missingHooks.filter((hook) => hook !== \"before_prompt_build\")\n : missingHooks;\n const hasGatewayStartHook = hooks.has(\"gateway_start\");\n const hasServiceStart = hasServiceStartRegistration(structuralSource);\n if (missingRequiredHooks.length === 0 && (hasGatewayStartHook || hasServiceStart)) {\n checks.push({\n id: \"hook-registration-core\",\n title: \"Core hook registration\",\n level: \"ok\",\n message: \"Core recall/extraction hooks and startup wiring are registered in src/index.ts.\",\n });\n } else {\n const missingParts: string[] = [];\n if (missingRequiredHooks.length > 0) {\n missingParts.push(`hooks: ${missingRequiredHooks.join(\", \")}`);\n }\n if (!hasGatewayStartHook && !hasServiceStart) {\n missingParts.push(\"startup wiring: gateway_start hook or api.registerService({ start })\");\n }\n const remediationParts: string[] = [];\n if (missingRequiredHooks.length > 0) {\n remediationParts.push(`registers ${missingRequiredHooks.join(\", \")}`);\n }\n if (!hasGatewayStartHook && !hasServiceStart) {\n remediationParts.push(\"registers gateway_start or api.registerService({ start })\");\n }\n checks.push({\n id: \"hook-registration-core\",\n title: \"Core hook registration\",\n level: \"error\",\n message: `Missing expected registration(s): ${missingParts.join(\"; \")}`,\n remediation: `Ensure src/index.ts ${remediationParts.join(\" and \")}.`,\n });\n }\n\n const cliWired = hasCliRegistration(structuralSource);\n checks.push({\n id: \"cli-registration\",\n title: \"CLI registration wiring\",\n level: cliWired ? \"ok\" : \"warn\",\n message: cliWired\n ? \"CLI registration is wired in plugin bootstrap.\"\n : \"CLI registration call not found in src/index.ts.\",\n remediation: cliWired ? undefined : \"Call registerCli(api, orchestrator) during plugin registration.\",\n });\n } catch {\n checks.push({\n id: \"hook-registration-core\",\n title: \"Core hook registration\",\n level: \"error\",\n message: \"src/index.ts is missing; cannot validate hook wiring.\",\n remediation: \"Restore src/index.ts and register required hooks.\",\n });\n }\n\n const qmdAvailable = await runner.commandExists(\"qmd\");\n checks.push({\n id: \"qmd-binary-availability\",\n title: \"QMD binary availability\",\n level: qmdAvailable ? \"ok\" : \"warn\",\n message: qmdAvailable\n ? \"qmd binary is available in PATH.\"\n : \"qmd binary is not available in PATH.\",\n remediation: qmdAvailable ? undefined : \"Install qmd or configure qmdPath in plugin config.\",\n });\n\n return {\n generatedAt: (options.now ?? new Date()).toISOString(),\n checks,\n summary: summarize(checks),\n };\n}\n"],"mappings":"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","names":["parsed"]}
@@ -9,14 +9,14 @@ import {
9
9
  } from "./chunk-666A3MOW.js";
10
10
  import {
11
11
  rebuildMemoryLifecycleLedger
12
- } from "./chunk-5QJQHBLE.js";
12
+ } from "./chunk-U6JGQ37L.js";
13
13
  import {
14
14
  planNamespaceMaintenance,
15
15
  runNamespaceMaintenanceBatchPlan
16
- } from "./chunk-2FSTB6BJ.js";
16
+ } from "./chunk-ILBLZ5Y5.js";
17
17
  import {
18
18
  rebuildMemoryProjection
19
- } from "./chunk-FIK3CQNA.js";
19
+ } from "./chunk-WOC6DXP5.js";
20
20
  import {
21
21
  activityDayWindow,
22
22
  activityDigestPath,
@@ -1714,4 +1714,4 @@ export {
1714
1714
  ActivitySyncScheduler,
1715
1715
  MaintenanceScheduler
1716
1716
  };
1717
- //# sourceMappingURL=chunk-AC5OWJLV.js.map
1717
+ //# sourceMappingURL=chunk-E4FOAENZ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-KSXJOC4F.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-FUCYDRE5.js";
7
+ } from "./chunk-IDE5AR5W.js";
8
8
  import {
9
9
  isSafeRouteNamespace
10
10
  } from "./chunk-U3PN77QT.js";
@@ -134,4 +134,4 @@ export {
134
134
  runCodexMaterialize,
135
135
  runPostConsolidationMaterialize
136
136
  };
137
- //# sourceMappingURL=chunk-UW66OZTD.js.map
137
+ //# sourceMappingURL=chunk-FULKGK7P.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-NEF7LR5J.js";
3
+ } from "./chunk-RVPTS4U5.js";
4
4
  import {
5
5
  memoryStoreRequestSchema
6
6
  } from "./chunk-NIS256NW.js";
@@ -10,7 +10,7 @@ import {
10
10
  DELTA_SUBCOMMANDS,
11
11
  defineOperation,
12
12
  isCodegraphToolName
13
- } from "./chunk-QUENPGWZ.js";
13
+ } from "./chunk-RCU25Z66.js";
14
14
  import {
15
15
  serializeMutations,
16
16
  withHeldFileLock
@@ -1813,4 +1813,4 @@ export {
1813
1813
  codegraphIngestTracesOperation,
1814
1814
  REGISTERED_OPERATIONS
1815
1815
  };
1816
- //# sourceMappingURL=chunk-V2TNYF6Q.js.map
1816
+ //# sourceMappingURL=chunk-HJ3SVHUW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FUCYDRE5.js";
3
+ } from "./chunk-IDE5AR5W.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
6
  } from "./chunk-CGASUJVP.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-A4IJCD2Z.js.map
549
+ //# sourceMappingURL=chunk-HXXTXLKA.js.map
@@ -1,3 +1,9 @@
1
+ import {
2
+ TombstoneStore,
3
+ applyTombstoneResurrectionGate,
4
+ buildRetiredFactTombstoneInputs,
5
+ collectRetiredMemoriesForRebuild
6
+ } from "./chunk-ENTCVTQR.js";
1
7
  import {
2
8
  WEARABLES_DIR_NAME,
3
9
  escapeSegmentText,
@@ -9,12 +15,6 @@ import {
9
15
  unescapeSegmentText,
10
16
  unescapeSpeakerLabel
11
17
  } from "./chunk-UHVXE24Y.js";
12
- import {
13
- TombstoneStore,
14
- applyTombstoneResurrectionGate,
15
- buildRetiredFactTombstoneInputs,
16
- collectRetiredMemoriesForRebuild
17
- } from "./chunk-ENTCVTQR.js";
18
18
  import {
19
19
  withholdToolScopedFromSharedNamespace
20
20
  } from "./chunk-S2V7RUCL.js";
@@ -26,7 +26,7 @@ import {
26
26
  import {
27
27
  SPECULATIVE_TTL_DAYS,
28
28
  confidenceTier
29
- } from "./chunk-DZPFMQZ7.js";
29
+ } from "./chunk-3S63QIFQ.js";
30
30
  import {
31
31
  createMemorySnapshot
32
32
  } from "./chunk-S2HLHAZ4.js";
@@ -38,9 +38,6 @@ import {
38
38
  rewriteProjectedEntityReferences,
39
39
  rewriteProjectedMemoryEntityReference
40
40
  } from "./chunk-WRJVB3C2.js";
41
- import {
42
- rotateMarkdownFileToArchive
43
- } from "./chunk-DM2T26WE.js";
44
41
  import {
45
42
  closeContinuityIncidentRecord,
46
43
  createContinuityIncidentRecord,
@@ -50,6 +47,9 @@ import {
50
47
  serializeContinuityIncident,
51
48
  upsertContinuityLoopInMarkdown
52
49
  } from "./chunk-LDXUBPMO.js";
50
+ import {
51
+ rotateMarkdownFileToArchive
52
+ } from "./chunk-DM2T26WE.js";
53
53
  import {
54
54
  parseFaithfulnessField,
55
55
  serializeFaithfulnessFields
@@ -10842,4 +10842,4 @@ export {
10842
10842
  isValidBufferSurpriseEvent,
10843
10843
  StorageManager3 as StorageManager
10844
10844
  };
10845
- //# sourceMappingURL=chunk-FUCYDRE5.js.map
10845
+ //# sourceMappingURL=chunk-IDE5AR5W.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-AMAUBUKY.js";
4
+ } from "./chunk-LI7OE7G6.js";
5
5
  import {
6
6
  getConfiguredNamespaces
7
7
  } from "./chunk-YN6ASZUG.js";
@@ -2204,4 +2204,4 @@ export {
2204
2204
  runNamespaceMaintenancePlan,
2205
2205
  runNamespaceMaintenanceBatchPlan
2206
2206
  };
2207
- //# sourceMappingURL=chunk-2FSTB6BJ.js.map
2207
+ //# sourceMappingURL=chunk-ILBLZ5Y5.js.map