@remnic/core 9.65.6 → 9.65.7

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 (506) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -11
  2. package/dist/access-admin-ops-surface.js +31 -31
  3. package/dist/access-audit.js +2 -2
  4. package/dist/access-authorization-probe.d.ts +11 -11
  5. package/dist/access-authorization-probe.js +32 -32
  6. package/dist/access-boundary.d.ts +11 -11
  7. package/dist/access-boundary.js +31 -31
  8. package/dist/access-cli.js +111 -106
  9. package/dist/access-cli.js.map +1 -1
  10. package/dist/access-coding-context-resolution.d.ts +1 -1
  11. package/dist/access-extraction-force-flush.d.ts +11 -11
  12. package/dist/access-extraction-force-flush.js +31 -31
  13. package/dist/access-health-types.d.ts +1 -1
  14. package/dist/access-http-lcm-compaction.d.ts +11 -11
  15. package/dist/access-http-lifecycle-flush.d.ts +11 -11
  16. package/dist/access-http-offline-stream.d.ts +11 -11
  17. package/dist/access-http-query.d.ts +2 -2
  18. package/dist/access-http-query.js +33 -33
  19. package/dist/access-http.d.ts +13 -18
  20. package/dist/access-http.js +50 -48
  21. package/dist/access-identity-continuity-surface.d.ts +9 -9
  22. package/dist/access-identity-continuity-surface.js +31 -31
  23. package/dist/access-lcm-surface.d.ts +11 -11
  24. package/dist/access-lcm-surface.js +31 -31
  25. package/dist/access-mcp-output-schemas.js +1 -1
  26. package/dist/access-mcp.d.ts +11 -11
  27. package/dist/access-mcp.js +42 -40
  28. package/dist/access-memory-search-fanout.d.ts +2 -2
  29. package/dist/{access-namespace-preflight-D_6mo8ms.d.ts → access-namespace-preflight-8VYKmRX0.d.ts} +1 -1
  30. package/dist/access-namespace-preflight.d.ts +3 -3
  31. package/dist/access-namespace-preflight.js +31 -31
  32. package/dist/access-observe-write-surface.d.ts +11 -11
  33. package/dist/access-observe-write-surface.js +31 -31
  34. package/dist/access-offline-manifest.d.ts +9 -9
  35. package/dist/access-operations-batch.js +34 -34
  36. package/dist/access-operations.d.ts +12 -12
  37. package/dist/access-operations.js +39 -37
  38. package/dist/access-recall-concurrency.d.ts +11 -11
  39. package/dist/access-recall-concurrency.js +31 -31
  40. package/dist/access-recall-response.d.ts +11 -11
  41. package/dist/access-recall-response.js +31 -31
  42. package/dist/access-recall-surface.d.ts +11 -11
  43. package/dist/access-recall-surface.js +31 -31
  44. package/dist/access-schema.js +3 -3
  45. package/dist/{access-service-sbiNS5UB.d.ts → access-service-Crk__Git.d.ts} +8 -8
  46. package/dist/access-service-helpers.d.ts +11 -11
  47. package/dist/access-service.d.ts +11 -11
  48. package/dist/access-service.js +31 -31
  49. package/dist/access-surface-catalog.d.ts +11 -11
  50. package/dist/access-surface-catalog.js +43 -33
  51. package/dist/access-surface-catalog.js.map +1 -1
  52. package/dist/access-wearables-meetings-surface.d.ts +3 -3
  53. package/dist/action-confidence.d.ts +1 -1
  54. package/dist/active-memory-bridge.d.ts +1 -1
  55. package/dist/active-recall.d.ts +1 -1
  56. package/dist/active-recall.js +4 -4
  57. package/dist/adapters/index.js +4 -4
  58. package/dist/adapters/registry.js +2 -2
  59. package/dist/ambient-provenance.d.ts +1 -1
  60. package/dist/artifact-search.d.ts +1 -1
  61. package/dist/behavior-learner.d.ts +1 -1
  62. package/dist/behavior-signals.d.ts +1 -1
  63. package/dist/bootstrap.d.ts +9 -9
  64. package/dist/briefing-window.d.ts +2 -2
  65. package/dist/briefing.d.ts +2 -2
  66. package/dist/briefing.js +10 -10
  67. package/dist/buffer-surprise-report.d.ts +1 -1
  68. package/dist/buffer-turn-helpers.d.ts +1 -1
  69. package/dist/buffer.d.ts +2 -2
  70. package/dist/bulk-import/index.d.ts +3 -3
  71. package/dist/calibration.d.ts +1 -1
  72. package/dist/capabilities.d.ts +1 -1
  73. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  74. package/dist/{catalog-DO_7zfkv.d.ts → catalog-DybwVNW3.d.ts} +1 -1
  75. package/dist/causal-behavior.d.ts +1 -1
  76. package/dist/causal-behavior.js +2 -2
  77. package/dist/causal-chain.js +2 -2
  78. package/dist/causal-consolidation.d.ts +1 -1
  79. package/dist/causal-consolidation.js +13 -13
  80. package/dist/causal-retrieval.js +2 -2
  81. package/dist/causal-trajectory-graph.d.ts +1 -1
  82. package/dist/causal-trajectory-graph.js +2 -2
  83. package/dist/causal-trajectory.js +1 -1
  84. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  85. package/dist/{chunk-NZPFCP5A.js → chunk-2PSX5BJU.js} +2 -2
  86. package/dist/chunk-3BCULS4U.js +1093 -0
  87. package/dist/chunk-3BCULS4U.js.map +1 -0
  88. package/dist/{chunk-W6J4POB6.js → chunk-3RI5Y7KU.js} +2 -2
  89. package/dist/{chunk-H7BZBSP6.js → chunk-52II7PB6.js} +4 -4
  90. package/dist/{chunk-IF4EY26E.js → chunk-5DH6PG4B.js} +2 -2
  91. package/dist/{chunk-M4AHBM72.js → chunk-5HERQ5FX.js} +10 -10
  92. package/dist/{chunk-IRXMJLTW.js → chunk-5HK3CJAR.js} +2 -2
  93. package/dist/{chunk-XAWIL7TC.js → chunk-5S4LQOPE.js} +2 -2
  94. package/dist/{chunk-IDQ6DKXC.js → chunk-5VPQSRQO.js} +3 -3
  95. package/dist/{chunk-ROEAEANL.js → chunk-6CPUQ5D6.js} +10 -10
  96. package/dist/{chunk-SR7JIRAR.js → chunk-7F27PCSN.js} +2 -2
  97. package/dist/{chunk-7OZSHBWK.js → chunk-7TCGNUVP.js} +2 -2
  98. package/dist/{chunk-KBOG7FJV.js → chunk-7WR462EM.js} +2 -2
  99. package/dist/{chunk-AYAZWXJI.js → chunk-A32YEQAM.js} +2 -2
  100. package/dist/{chunk-5GIZM4RX.js → chunk-ACOC27BB.js} +2 -2
  101. package/dist/{chunk-5W7MKXMU.js → chunk-AFR6AIM4.js} +144 -78
  102. package/dist/chunk-AFR6AIM4.js.map +1 -0
  103. package/dist/{chunk-OMZLBT4B.js → chunk-ANJXPFRS.js} +47 -26
  104. package/dist/chunk-ANJXPFRS.js.map +1 -0
  105. package/dist/{chunk-FC7TIRFS.js → chunk-AX7UXCHJ.js} +6 -1
  106. package/dist/chunk-AX7UXCHJ.js.map +1 -0
  107. package/dist/{chunk-6LS5OX3U.js → chunk-BJTHRFFC.js} +6 -6
  108. package/dist/chunk-BWGCOLEL.js +61 -0
  109. package/dist/chunk-BWGCOLEL.js.map +1 -0
  110. package/dist/{chunk-PGW64IFQ.js → chunk-CFGU52XJ.js} +2 -2
  111. package/dist/{chunk-DPNXADEI.js → chunk-D4QVPP3G.js} +2 -2
  112. package/dist/{chunk-2RXUZVPU.js → chunk-EOHKUWXW.js} +2 -2
  113. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  114. package/dist/{chunk-ZK4BFABK.js → chunk-F635GAL7.js} +4 -4
  115. package/dist/{chunk-HWVNYNIV.js → chunk-F6QHHRWP.js} +2 -2
  116. package/dist/{chunk-YUTTMSC7.js → chunk-FMQ4MOQO.js} +89 -26
  117. package/dist/chunk-FMQ4MOQO.js.map +1 -0
  118. package/dist/{chunk-LDBFXD4F.js → chunk-FP7YTTVO.js} +3 -1
  119. package/dist/chunk-FP7YTTVO.js.map +1 -0
  120. package/dist/{chunk-O4BAGJDN.js → chunk-GEPACVWN.js} +2 -2
  121. package/dist/{chunk-XZBXINXZ.js → chunk-GIC6BASP.js} +4 -4
  122. package/dist/{chunk-PP7R754B.js → chunk-GPFZFCRN.js} +1 -1
  123. package/dist/{chunk-LSYD7GHZ.js → chunk-GTSVEEP3.js} +2 -2
  124. package/dist/{chunk-RQ2EQRRR.js → chunk-I4343FIA.js} +79 -6
  125. package/dist/chunk-I4343FIA.js.map +1 -0
  126. package/dist/{chunk-YWBOOBDP.js → chunk-I7EX6KSH.js} +58 -58
  127. package/dist/{chunk-3I22VWB3.js → chunk-IP4ZNT4U.js} +2 -2
  128. package/dist/{chunk-AXGFOFNY.js → chunk-IY7UXD3J.js} +2 -2
  129. package/dist/{chunk-6FUMA6AA.js → chunk-JAQXUGLN.js} +2 -2
  130. package/dist/{chunk-RKNJBZ55.js → chunk-JBPKEARU.js} +4 -4
  131. package/dist/chunk-JCCWJHOP.js +240 -0
  132. package/dist/chunk-JCCWJHOP.js.map +1 -0
  133. package/dist/{chunk-5W7CTZ2E.js → chunk-KQAFEZQX.js} +4 -4
  134. package/dist/{chunk-D2YNNDML.js → chunk-KWIGDKM2.js} +2 -2
  135. package/dist/{chunk-2JHRCWHT.js → chunk-LLQCM2U2.js} +85 -85
  136. package/dist/{chunk-OLBZ2WGG.js → chunk-LTBKKSCX.js} +2 -2
  137. package/dist/{chunk-RACZB5HT.js → chunk-N37X5RU7.js} +4 -4
  138. package/dist/{chunk-FEO2CDXR.js → chunk-NG3MBQV4.js} +2 -2
  139. package/dist/{chunk-AG46P24C.js → chunk-NNBZS3DY.js} +4 -4
  140. package/dist/{chunk-JGG5HVI2.js → chunk-OPGL46PX.js} +2 -2
  141. package/dist/{chunk-OUKBMQ2O.js → chunk-PD66CVSD.js} +2 -2
  142. package/dist/{chunk-7SSRXEZJ.js → chunk-PDDSFELN.js} +2 -2
  143. package/dist/{chunk-MVIYRRVJ.js → chunk-PMVPCZJZ.js} +5 -5
  144. package/dist/{chunk-D35XLYQ7.js → chunk-RGCF4XNH.js} +9 -9
  145. package/dist/{chunk-PNAGNVGK.js → chunk-RQE4TITU.js} +35 -30
  146. package/dist/chunk-RQE4TITU.js.map +1 -0
  147. package/dist/{chunk-X2DWBWOX.js → chunk-S3K2CIK5.js} +2 -2
  148. package/dist/{chunk-TWBQQ3FT.js → chunk-SEA6M7SS.js} +2 -2
  149. package/dist/{chunk-DYO24BNB.js → chunk-SVVIASVX.js} +2 -2
  150. package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
  151. package/dist/{chunk-4K7IW3F7.js → chunk-UD7UNYRD.js} +34 -3
  152. package/dist/chunk-UD7UNYRD.js.map +1 -0
  153. package/dist/chunk-ULM7JCDH.js +154 -0
  154. package/dist/chunk-ULM7JCDH.js.map +1 -0
  155. package/dist/{chunk-NLUCDKLT.js → chunk-VKCAHCBI.js} +2 -2
  156. package/dist/{chunk-BXXOPKT5.js → chunk-VXVZ2GM3.js} +2 -2
  157. package/dist/chunk-W2UOAATB.js +521 -0
  158. package/dist/chunk-W2UOAATB.js.map +1 -0
  159. package/dist/{chunk-JFWZRUKP.js → chunk-WTOZBZNN.js} +3 -3
  160. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  161. package/dist/{chunk-5TG4MU2U.js → chunk-YKWFK7XA.js} +5 -5
  162. package/dist/{chunk-BIJAWZYW.js → chunk-YMOPYG3K.js} +6 -6
  163. package/dist/{chunk-XUZ5CIEE.js → chunk-YRVAKONL.js} +1 -1
  164. package/dist/{chunk-53MZQEBD.js → chunk-YWSQD2IB.js} +2 -2
  165. package/dist/{chunk-US4IRASK.js → chunk-Z4U3UN56.js} +2 -2
  166. package/dist/{chunk-QMZY3GG6.js → chunk-ZAOHJDKH.js} +3 -3
  167. package/dist/{chunk-ZXUZ54Z5.js → chunk-ZIJDI4CP.js} +2 -2
  168. package/dist/{cli-Bfgo0n1L.d.ts → cli-B322UMvB.d.ts} +5 -5
  169. package/dist/cli.d.ts +13 -13
  170. package/dist/cli.js +75 -74
  171. package/dist/coding/pre-action-gate.d.ts +1 -1
  172. package/dist/coding/pre-action-gate.js +2 -2
  173. package/dist/compounding/engine.d.ts +2 -2
  174. package/dist/compounding/engine.js +10 -10
  175. package/dist/compounding/preference-consolidator.d.ts +1 -1
  176. package/dist/compression-optimizer.d.ts +1 -1
  177. package/dist/config.d.ts +1 -1
  178. package/dist/config.js +4 -4
  179. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  180. package/dist/connectors/codex-materialize-runner.js +10 -10
  181. package/dist/connectors/codex-materialize.d.ts +1 -1
  182. package/dist/connectors/index.d.ts +1 -1
  183. package/dist/connectors/index.js +10 -10
  184. package/dist/consolidation-provenance-check.d.ts +2 -2
  185. package/dist/consolidation-undo.d.ts +2 -2
  186. package/dist/contradiction/index.d.ts +3 -3
  187. package/dist/converge-config.d.ts +1 -1
  188. package/dist/convergence-refresh.d.ts +2 -2
  189. package/dist/convergence-refresh.js +12 -12
  190. package/dist/conversation-index/backend.d.ts +1 -1
  191. package/dist/conversation-index/chunker.d.ts +1 -1
  192. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  193. package/dist/conversation-index/indexer.d.ts +1 -1
  194. package/dist/conversation-index/search.d.ts +1 -1
  195. package/dist/corpus-watermark.d.ts +1 -1
  196. package/dist/corpus-watermark.js +12 -12
  197. package/dist/cross-lingual-recall.d.ts +1 -1
  198. package/dist/dashboard-runtime.js +2 -2
  199. package/dist/day-summary.d.ts +1 -1
  200. package/dist/delinearize.d.ts +1 -1
  201. package/dist/dependency-propagation-config.d.ts +1 -1
  202. package/dist/{dependency-propagation-delivery-D23_x-s5.d.ts → dependency-propagation-delivery-BGcNairQ.d.ts} +1 -1
  203. package/dist/direct-answer-wiring.d.ts +1 -1
  204. package/dist/direct-answer.d.ts +1 -1
  205. package/dist/embedding-fallback.d.ts +1 -1
  206. package/dist/enrichment/index.d.ts +1 -1
  207. package/dist/entity-origin-fields.d.ts +1 -1
  208. package/dist/entity-retrieval.d.ts +2 -2
  209. package/dist/entity-retrieval.js +10 -10
  210. package/dist/entity-schema.d.ts +1 -1
  211. package/dist/episodic-context.d.ts +1 -1
  212. package/dist/eval-trajectory-contracts.d.ts +256 -0
  213. package/dist/eval-trajectory-contracts.js +56 -0
  214. package/dist/eval-trajectory-store.d.ts +39 -0
  215. package/dist/eval-trajectory-store.js +19 -0
  216. package/dist/eval-trajectory-store.js.map +1 -0
  217. package/dist/eval-trajectory.d.ts +67 -0
  218. package/dist/eval-trajectory.js +46 -0
  219. package/dist/eval-trajectory.js.map +1 -0
  220. package/dist/event-order-recall.js +2 -2
  221. package/dist/explicit-capture.d.ts +9 -9
  222. package/dist/external-wiki-access.d.ts +11 -11
  223. package/dist/external-wiki-access.js +32 -32
  224. package/dist/external-wiki-collection-registration.d.ts +1 -1
  225. package/dist/external-wiki-collection.d.ts +1 -1
  226. package/dist/external-wiki-mcp-tools.d.ts +11 -11
  227. package/dist/extraction-error-classification.d.ts +1 -1
  228. package/dist/extraction-faithfulness.d.ts +1 -1
  229. package/dist/extraction-judge-telemetry.d.ts +1 -1
  230. package/dist/extraction-judge-training.d.ts +1 -1
  231. package/dist/extraction-judge.d.ts +1 -1
  232. package/dist/extraction-liveness.d.ts +1 -1
  233. package/dist/extraction-normalization.d.ts +1 -1
  234. package/dist/extraction-prompt.d.ts +1 -1
  235. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  236. package/dist/extraction-source-grounding.d.ts +1 -1
  237. package/dist/extraction.d.ts +1 -1
  238. package/dist/extraction.js +12 -12
  239. package/dist/fallback-llm.d.ts +1 -1
  240. package/dist/graph-dashboard-diff.d.ts +1 -1
  241. package/dist/graph-dashboard-key.d.ts +1 -1
  242. package/dist/graph-dashboard-parser.d.ts +1 -1
  243. package/dist/{graph-edge-decay-FXGELBFA.js → graph-edge-decay-A4SDFMMS.js} +4 -4
  244. package/dist/graph-edge-decay-A4SDFMMS.js.map +1 -0
  245. package/dist/graph-edge-reinforcement.d.ts +1 -1
  246. package/dist/graph-path-reconstruction.d.ts +1 -1
  247. package/dist/graph-path-scoring.d.ts +1 -1
  248. package/dist/graph-snapshot.d.ts +1 -1
  249. package/dist/graph-snapshot.js +3 -3
  250. package/dist/graph.d.ts +1 -1
  251. package/dist/graph.js +3 -3
  252. package/dist/harmonic-retrieval.js +1 -1
  253. package/dist/importance.d.ts +1 -1
  254. package/dist/importers/index.d.ts +1 -1
  255. package/dist/in-flight-reads.d.ts +1 -1
  256. package/dist/{index--QhGIXF2.d.ts → index-By2QUAMh.d.ts} +2 -2
  257. package/dist/index.d.ts +26 -23
  258. package/dist/index.js +184 -142
  259. package/dist/intent.d.ts +1 -1
  260. package/dist/lcm/engine.d.ts +1 -1
  261. package/dist/lcm/engine.js +4 -4
  262. package/dist/lcm/index.d.ts +1 -1
  263. package/dist/lcm/index.js +13 -13
  264. package/dist/lcm/tools.d.ts +1 -1
  265. package/dist/lifecycle.d.ts +1 -1
  266. package/dist/live-connectors-runner.d.ts +1 -1
  267. package/dist/local-llm.d.ts +1 -1
  268. package/dist/local-model-endpoint.d.ts +1 -1
  269. package/dist/location/index.d.ts +128 -1
  270. package/dist/location/index.js +60 -750
  271. package/dist/location/index.js.map +1 -1
  272. package/dist/maintenance/memory-governance.d.ts +1 -1
  273. package/dist/maintenance/memory-governance.js +10 -10
  274. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  275. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
  276. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  277. package/dist/maintenance/rebuild-memory-projection.js +11 -11
  278. package/dist/{maintenance-PFvY1Pw_.d.ts → maintenance-Dm2McrIx.d.ts} +4 -3
  279. package/dist/mcp-memory-inspector-app.d.ts +11 -11
  280. package/dist/mcp-read-only-tools.js +1 -1
  281. package/dist/memory-action-policy.d.ts +1 -1
  282. package/dist/memory-cache.d.ts +1 -1
  283. package/dist/memory-controller.d.ts +1 -1
  284. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  285. package/dist/memory-projection-store.d.ts +1 -1
  286. package/dist/memory-provenance.d.ts +1 -1
  287. package/dist/memory-snapshot.d.ts +1 -1
  288. package/dist/memory-subject-cli.d.ts +11 -11
  289. package/dist/memory-subject.d.ts +11 -11
  290. package/dist/memory-worth-outcomes.d.ts +47 -3
  291. package/dist/memory-worth-outcomes.js +5 -3
  292. package/dist/models-json.d.ts +1 -1
  293. package/dist/namespaces/migrate.d.ts +3 -3
  294. package/dist/namespaces/migrate.js +11 -11
  295. package/dist/namespaces/principal.d.ts +1 -1
  296. package/dist/namespaces/search.d.ts +1 -1
  297. package/dist/namespaces/search.js +7 -7
  298. package/dist/namespaces/storage.d.ts +3 -3
  299. package/dist/namespaces/storage.js +10 -10
  300. package/dist/native-knowledge.d.ts +1 -1
  301. package/dist/offline-sync-impression-drain.d.ts +1 -1
  302. package/dist/operator-doctor-corpus.d.ts +1 -1
  303. package/dist/operator-doctor-corpus.js +13 -13
  304. package/dist/operator-doctor-replica.d.ts +1 -1
  305. package/dist/operator-toolkit.d.ts +3 -3
  306. package/dist/operator-toolkit.js +24 -24
  307. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  308. package/dist/orchestration/maintenance.d.ts +4 -4
  309. package/dist/orchestration/maintenance.js +18 -16
  310. package/dist/{orchestrator-4wzJrPVm.d.ts → orchestrator-Co1DyfuP.d.ts} +8 -8
  311. package/dist/orchestrator.d.ts +9 -9
  312. package/dist/orchestrator.js +111 -106
  313. package/dist/patterns-cli.d.ts +1 -1
  314. package/dist/{pipeline-CgXgdIrF.d.ts → pipeline-DotMnb6y.d.ts} +1 -1
  315. package/dist/policy-runtime.d.ts +1 -1
  316. package/dist/proactive-contention.d.ts +1 -1
  317. package/dist/provenance.d.ts +1 -1
  318. package/dist/{public-http-BP3VQDl5.d.ts → public-http-PJRtnSi-.d.ts} +1 -1
  319. package/dist/{qmd-BppGGxsi.d.ts → qmd-BP0n11fR.d.ts} +1 -1
  320. package/dist/qmd-preflight.d.ts +2 -2
  321. package/dist/qmd-recall-cache.d.ts +1 -1
  322. package/dist/qmd.d.ts +2 -2
  323. package/dist/recall-concurrency-config.d.ts +1 -1
  324. package/dist/recall-disclosure-escalation.d.ts +1 -1
  325. package/dist/recall-explain-renderer.d.ts +1 -1
  326. package/dist/recall-memory-map.d.ts +1 -1
  327. package/dist/recall-planner-llm.d.ts +1 -1
  328. package/dist/recall-state.d.ts +1 -1
  329. package/dist/recall-tag-filter.d.ts +1 -1
  330. package/dist/recall-timings.d.ts +1 -1
  331. package/dist/recall-xray-cli.d.ts +1 -1
  332. package/dist/recall-xray-renderer.d.ts +1 -1
  333. package/dist/recall-xray.d.ts +1 -1
  334. package/dist/reconcile/cursor.d.ts +1 -1
  335. package/dist/reconcile/manifest.d.ts +1 -1
  336. package/dist/reconcile/plan.d.ts +1 -1
  337. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  338. package/dist/replay/normalizers/claude.d.ts +1 -1
  339. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  340. package/dist/replay/normalizers/shared.d.ts +1 -1
  341. package/dist/replay/runner.d.ts +1 -1
  342. package/dist/replay/types.d.ts +1 -1
  343. package/dist/replica-divergence.d.ts +1 -1
  344. package/dist/replica-peers-config.d.ts +1 -1
  345. package/dist/resolve-auth-token.d.ts +1 -1
  346. package/dist/resume-bundles.js +5 -5
  347. package/dist/retrieval-agents.d.ts +2 -2
  348. package/dist/retrieval-tiers.d.ts +1 -1
  349. package/dist/routing/engine.d.ts +1 -1
  350. package/dist/routing/store.d.ts +1 -1
  351. package/dist/salvage-envelope.d.ts +1 -1
  352. package/dist/{scope-profiles-ChZUtxDU.d.ts → scope-profiles-6ChZKTy-.d.ts} +1 -1
  353. package/dist/search/embed-helper.d.ts +1 -1
  354. package/dist/search/factory.d.ts +1 -1
  355. package/dist/search/factory.js +6 -6
  356. package/dist/search/index.d.ts +1 -1
  357. package/dist/search/index.js +10 -10
  358. package/dist/search/lancedb-backend.d.ts +1 -1
  359. package/dist/search/lancedb-backend.js +2 -2
  360. package/dist/search/meilisearch-backend.d.ts +1 -1
  361. package/dist/search/meilisearch-backend.js +2 -2
  362. package/dist/search/noop-backend.d.ts +1 -1
  363. package/dist/search/orama-backend.d.ts +1 -1
  364. package/dist/search/orama-backend.js +2 -2
  365. package/dist/search/port.d.ts +1 -1
  366. package/dist/search/remote-backend.d.ts +1 -1
  367. package/dist/{semantic-consolidation-mSPwQSmF.d.ts → semantic-consolidation-DziYcW5J.d.ts} +1 -1
  368. package/dist/semantic-consolidation.d.ts +2 -2
  369. package/dist/semantic-consolidation.js +11 -11
  370. package/dist/semantic-rule-promotion.js +10 -10
  371. package/dist/semantic-rule-verifier.d.ts +1 -1
  372. package/dist/semantic-rule-verifier.js +10 -10
  373. package/dist/{service-BICWLwSP.d.ts → service-C7rIBuK_.d.ts} +2 -2
  374. package/dist/session-observer-bands.d.ts +1 -1
  375. package/dist/session-observer-state.d.ts +1 -1
  376. package/dist/shared-context/manager.d.ts +1 -1
  377. package/dist/signal.d.ts +1 -1
  378. package/dist/source-agent-qualifier.d.ts +1 -1
  379. package/dist/source-agent-qualifier.js +10 -10
  380. package/dist/{storage-B7urx1K3.d.ts → storage-B1hEx8Xg.d.ts} +1 -1
  381. package/dist/storage.d.ts +2 -2
  382. package/dist/storage.js +9 -9
  383. package/dist/subject-config.d.ts +1 -1
  384. package/dist/summarizer.d.ts +1 -1
  385. package/dist/summary-snapshot.d.ts +1 -1
  386. package/dist/support-passport/index.d.ts +14 -14
  387. package/dist/support-passport/index.js +34 -34
  388. package/dist/temporal-supersession.d.ts +2 -2
  389. package/dist/temporal-timeline-recall.d.ts +1 -1
  390. package/dist/temporal-validity.d.ts +1 -1
  391. package/dist/threading.d.ts +1 -1
  392. package/dist/tier-migration.d.ts +2 -2
  393. package/dist/tier-routing.d.ts +1 -1
  394. package/dist/topics.d.ts +1 -1
  395. package/dist/transcript.d.ts +1 -1
  396. package/dist/transfer/backup.js +2 -2
  397. package/dist/transfer/capsule-export.js +2 -2
  398. package/dist/transfer/capsule-import.js +2 -2
  399. package/dist/trust-score-stage.d.ts +1 -1
  400. package/dist/trust-score.d.ts +1 -1
  401. package/dist/{types-ETU5N6nB.d.ts → types-BHDNxGTT.d.ts} +1 -1
  402. package/dist/types.d.ts +1 -1
  403. package/dist/utility-runtime.d.ts +1 -1
  404. package/dist/verified-recall.js +10 -10
  405. package/dist/who-knows-cli.d.ts +11 -11
  406. package/dist/who-knows-cli.js +11 -11
  407. package/dist/who-knows.d.ts +11 -11
  408. package/dist/who-knows.js +10 -10
  409. package/dist/write-envelope.d.ts +1 -1
  410. package/package.json +2 -2
  411. package/src/access-boundary.ts +5 -0
  412. package/src/access-http.ts +15 -16
  413. package/src/access-mcp-output-schemas.ts +5 -0
  414. package/src/access-mcp.ts +6 -6
  415. package/src/access-operations.ts +2 -0
  416. package/src/access-surface-catalog.ts +10 -0
  417. package/src/eval-trajectory-contracts.ts +411 -0
  418. package/src/eval-trajectory-store.ts +306 -0
  419. package/src/eval-trajectory.test.ts +534 -0
  420. package/src/eval-trajectory.ts +773 -0
  421. package/src/index.ts +2 -0
  422. package/src/location/access-operations.ts +84 -0
  423. package/src/location/http-glue.test.ts +100 -0
  424. package/src/location/http-glue.ts +85 -0
  425. package/src/location/index.ts +3 -0
  426. package/src/location/mcp-tools.ts +82 -0
  427. package/src/location/provider-setup.test.ts +106 -0
  428. package/src/location/provider-setup.ts +103 -0
  429. package/src/location/scheduler.test.ts +113 -0
  430. package/src/location/scheduler.ts +98 -0
  431. package/src/location/surfaces.test.ts +241 -0
  432. package/src/location/surfaces.ts +329 -0
  433. package/src/maintenance/day-summary-cron.ts +45 -0
  434. package/src/mcp-read-only-tools.ts +2 -0
  435. package/src/memory-worth-outcomes.test.ts +53 -18
  436. package/src/memory-worth-outcomes.ts +91 -9
  437. package/src/orchestration/maintenance.ts +22 -30
  438. package/src/wearables/http-glue.ts +28 -0
  439. package/dist/chunk-4K7IW3F7.js.map +0 -1
  440. package/dist/chunk-5W7MKXMU.js.map +0 -1
  441. package/dist/chunk-FC7TIRFS.js.map +0 -1
  442. package/dist/chunk-LDBFXD4F.js.map +0 -1
  443. package/dist/chunk-OMZLBT4B.js.map +0 -1
  444. package/dist/chunk-PNAGNVGK.js.map +0 -1
  445. package/dist/chunk-RQ2EQRRR.js.map +0 -1
  446. package/dist/chunk-YUTTMSC7.js.map +0 -1
  447. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  448. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  449. /package/dist/{chunk-NZPFCP5A.js.map → chunk-2PSX5BJU.js.map} +0 -0
  450. /package/dist/{chunk-W6J4POB6.js.map → chunk-3RI5Y7KU.js.map} +0 -0
  451. /package/dist/{chunk-H7BZBSP6.js.map → chunk-52II7PB6.js.map} +0 -0
  452. /package/dist/{chunk-IF4EY26E.js.map → chunk-5DH6PG4B.js.map} +0 -0
  453. /package/dist/{chunk-M4AHBM72.js.map → chunk-5HERQ5FX.js.map} +0 -0
  454. /package/dist/{chunk-IRXMJLTW.js.map → chunk-5HK3CJAR.js.map} +0 -0
  455. /package/dist/{chunk-XAWIL7TC.js.map → chunk-5S4LQOPE.js.map} +0 -0
  456. /package/dist/{chunk-IDQ6DKXC.js.map → chunk-5VPQSRQO.js.map} +0 -0
  457. /package/dist/{chunk-ROEAEANL.js.map → chunk-6CPUQ5D6.js.map} +0 -0
  458. /package/dist/{chunk-SR7JIRAR.js.map → chunk-7F27PCSN.js.map} +0 -0
  459. /package/dist/{chunk-7OZSHBWK.js.map → chunk-7TCGNUVP.js.map} +0 -0
  460. /package/dist/{chunk-KBOG7FJV.js.map → chunk-7WR462EM.js.map} +0 -0
  461. /package/dist/{chunk-AYAZWXJI.js.map → chunk-A32YEQAM.js.map} +0 -0
  462. /package/dist/{chunk-5GIZM4RX.js.map → chunk-ACOC27BB.js.map} +0 -0
  463. /package/dist/{chunk-6LS5OX3U.js.map → chunk-BJTHRFFC.js.map} +0 -0
  464. /package/dist/{chunk-PGW64IFQ.js.map → chunk-CFGU52XJ.js.map} +0 -0
  465. /package/dist/{chunk-DPNXADEI.js.map → chunk-D4QVPP3G.js.map} +0 -0
  466. /package/dist/{chunk-2RXUZVPU.js.map → chunk-EOHKUWXW.js.map} +0 -0
  467. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  468. /package/dist/{chunk-ZK4BFABK.js.map → chunk-F635GAL7.js.map} +0 -0
  469. /package/dist/{chunk-HWVNYNIV.js.map → chunk-F6QHHRWP.js.map} +0 -0
  470. /package/dist/{chunk-O4BAGJDN.js.map → chunk-GEPACVWN.js.map} +0 -0
  471. /package/dist/{chunk-XZBXINXZ.js.map → chunk-GIC6BASP.js.map} +0 -0
  472. /package/dist/{chunk-PP7R754B.js.map → chunk-GPFZFCRN.js.map} +0 -0
  473. /package/dist/{chunk-LSYD7GHZ.js.map → chunk-GTSVEEP3.js.map} +0 -0
  474. /package/dist/{chunk-YWBOOBDP.js.map → chunk-I7EX6KSH.js.map} +0 -0
  475. /package/dist/{chunk-3I22VWB3.js.map → chunk-IP4ZNT4U.js.map} +0 -0
  476. /package/dist/{chunk-AXGFOFNY.js.map → chunk-IY7UXD3J.js.map} +0 -0
  477. /package/dist/{chunk-6FUMA6AA.js.map → chunk-JAQXUGLN.js.map} +0 -0
  478. /package/dist/{chunk-RKNJBZ55.js.map → chunk-JBPKEARU.js.map} +0 -0
  479. /package/dist/{chunk-5W7CTZ2E.js.map → chunk-KQAFEZQX.js.map} +0 -0
  480. /package/dist/{chunk-D2YNNDML.js.map → chunk-KWIGDKM2.js.map} +0 -0
  481. /package/dist/{chunk-2JHRCWHT.js.map → chunk-LLQCM2U2.js.map} +0 -0
  482. /package/dist/{chunk-OLBZ2WGG.js.map → chunk-LTBKKSCX.js.map} +0 -0
  483. /package/dist/{chunk-RACZB5HT.js.map → chunk-N37X5RU7.js.map} +0 -0
  484. /package/dist/{chunk-FEO2CDXR.js.map → chunk-NG3MBQV4.js.map} +0 -0
  485. /package/dist/{chunk-AG46P24C.js.map → chunk-NNBZS3DY.js.map} +0 -0
  486. /package/dist/{chunk-JGG5HVI2.js.map → chunk-OPGL46PX.js.map} +0 -0
  487. /package/dist/{chunk-OUKBMQ2O.js.map → chunk-PD66CVSD.js.map} +0 -0
  488. /package/dist/{chunk-7SSRXEZJ.js.map → chunk-PDDSFELN.js.map} +0 -0
  489. /package/dist/{chunk-MVIYRRVJ.js.map → chunk-PMVPCZJZ.js.map} +0 -0
  490. /package/dist/{chunk-D35XLYQ7.js.map → chunk-RGCF4XNH.js.map} +0 -0
  491. /package/dist/{chunk-X2DWBWOX.js.map → chunk-S3K2CIK5.js.map} +0 -0
  492. /package/dist/{chunk-TWBQQ3FT.js.map → chunk-SEA6M7SS.js.map} +0 -0
  493. /package/dist/{chunk-DYO24BNB.js.map → chunk-SVVIASVX.js.map} +0 -0
  494. /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
  495. /package/dist/{chunk-NLUCDKLT.js.map → chunk-VKCAHCBI.js.map} +0 -0
  496. /package/dist/{chunk-BXXOPKT5.js.map → chunk-VXVZ2GM3.js.map} +0 -0
  497. /package/dist/{chunk-JFWZRUKP.js.map → chunk-WTOZBZNN.js.map} +0 -0
  498. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  499. /package/dist/{chunk-5TG4MU2U.js.map → chunk-YKWFK7XA.js.map} +0 -0
  500. /package/dist/{chunk-BIJAWZYW.js.map → chunk-YMOPYG3K.js.map} +0 -0
  501. /package/dist/{chunk-XUZ5CIEE.js.map → chunk-YRVAKONL.js.map} +0 -0
  502. /package/dist/{chunk-53MZQEBD.js.map → chunk-YWSQD2IB.js.map} +0 -0
  503. /package/dist/{chunk-US4IRASK.js.map → chunk-Z4U3UN56.js.map} +0 -0
  504. /package/dist/{chunk-QMZY3GG6.js.map → chunk-ZAOHJDKH.js.map} +0 -0
  505. /package/dist/{chunk-ZXUZ54Z5.js.map → chunk-ZIJDI4CP.js.map} +0 -0
  506. /package/dist/{graph-edge-decay-FXGELBFA.js.map → eval-trajectory-contracts.js.map} +0 -0
@@ -1,3 +1,6 @@
1
+ import {
2
+ openclawReplayNormalizer
3
+ } from "./chunk-H4CKS5B2.js";
1
4
  import {
2
5
  chatgptReplayNormalizer
3
6
  } from "./chunk-MMACM5G2.js";
@@ -5,32 +8,29 @@ import {
5
8
  claudeReplayNormalizer
6
9
  } from "./chunk-54BGIBCR.js";
7
10
  import {
8
- openclawReplayNormalizer
9
- } from "./chunk-H4CKS5B2.js";
11
+ exportSqlite
12
+ } from "./chunk-BV2TIZ4F.js";
10
13
  import {
11
14
  importMarkdownBundle
12
15
  } from "./chunk-HDDRVXX4.js";
13
16
  import {
14
17
  importSqlite
15
18
  } from "./chunk-PYHOAXTI.js";
16
- import {
17
- backupMemoryDir
18
- } from "./chunk-OWHERGF2.js";
19
- import {
20
- exportJsonBundle
21
- } from "./chunk-UP6MOYCB.js";
22
- import {
23
- exportSqlite
24
- } from "./chunk-BV2TIZ4F.js";
25
19
  import {
26
20
  detectImportFormat
27
21
  } from "./chunk-OZKVVUJB.js";
28
22
  import {
29
23
  importJsonBundle
30
24
  } from "./chunk-2DL3OFLD.js";
25
+ import {
26
+ backupMemoryDir
27
+ } from "./chunk-2NLLXCJG.js";
31
28
  import {
32
29
  exportMarkdownBundle
33
30
  } from "./chunk-765K3SAT.js";
31
+ import {
32
+ exportJsonBundle
33
+ } from "./chunk-UP6MOYCB.js";
34
34
  import {
35
35
  buildReplayNormalizerRegistry,
36
36
  clampBatchSize,
@@ -49,18 +49,18 @@ import {
49
49
  import {
50
50
  WebDavServer
51
51
  } from "./chunk-PYIFUBRK.js";
52
+ import {
53
+ migrateObservations
54
+ } from "./chunk-IIFFC3RL.js";
55
+ import {
56
+ rebuildMemoryLifecycleLedger
57
+ } from "./chunk-7WR462EM.js";
52
58
  import {
53
59
  rebuildObservations
54
60
  } from "./chunk-DQTCGVFK.js";
55
61
  import {
56
62
  archiveObservations
57
63
  } from "./chunk-YLBE6PLR.js";
58
- import {
59
- migrateObservations
60
- } from "./chunk-IIFFC3RL.js";
61
- import {
62
- rebuildMemoryLifecycleLedger
63
- } from "./chunk-KBOG7FJV.js";
64
64
  import {
65
65
  getBulkImportSource,
66
66
  listBulkImportSources,
@@ -70,9 +70,6 @@ import {
70
70
  import {
71
71
  runCompatChecks
72
72
  } from "./chunk-CDKHKZL5.js";
73
- import {
74
- searchVerifiedEpisodes
75
- } from "./chunk-53MZQEBD.js";
76
73
  import {
77
74
  getUtilityLearningStatus,
78
75
  learnUtilityPromotionWeights
@@ -81,20 +78,23 @@ import {
81
78
  getUtilityTelemetryStatus,
82
79
  recordUtilityTelemetryEvent
83
80
  } from "./chunk-6FC3IZ26.js";
81
+ import {
82
+ searchVerifiedEpisodes
83
+ } from "./chunk-YWSQD2IB.js";
84
84
  import {
85
85
  ThreadingManager
86
86
  } from "./chunk-OJP3N7UK.js";
87
- import {
88
- searchVerifiedSemanticRules
89
- } from "./chunk-TWBQQ3FT.js";
90
87
  import {
91
88
  promoteSemanticRuleFromMemory
92
- } from "./chunk-IF4EY26E.js";
89
+ } from "./chunk-5DH6PG4B.js";
90
+ import {
91
+ searchVerifiedSemanticRules
92
+ } from "./chunk-SEA6M7SS.js";
93
93
  import {
94
94
  buildResumeBundleFromState,
95
95
  getResumeBundleStatus,
96
96
  recordResumeBundle
97
- } from "./chunk-AXGFOFNY.js";
97
+ } from "./chunk-IY7UXD3J.js";
98
98
  import {
99
99
  getWorkProductLedgerStatus,
100
100
  recordWorkProductLedgerEntry,
@@ -106,19 +106,6 @@ import {
106
106
  import {
107
107
  parseXrayCliOptions
108
108
  } from "./chunk-R2MZCYA6.js";
109
- import {
110
- collectPatternMemories,
111
- explainPatternMemory,
112
- parsePatternsExplainOptions,
113
- parsePatternsListOptions,
114
- parseStrictCliDate,
115
- renderPatternExplain,
116
- renderPatternsList
117
- } from "./chunk-3T74IZB3.js";
118
- import {
119
- readRuntimePolicySnapshot,
120
- sanitizeRuntimePolicyValues
121
- } from "./chunk-2LA3H54D.js";
122
109
  import {
123
110
  formatNamespaceMaintenanceHealthText,
124
111
  runBenchmarkRecall,
@@ -127,12 +114,25 @@ import {
127
114
  runOperatorInventory,
128
115
  runOperatorRepair,
129
116
  runOperatorSetup
130
- } from "./chunk-ROEAEANL.js";
117
+ } from "./chunk-6CPUQ5D6.js";
131
118
  import {
132
119
  analyzeSessionIntegrity,
133
120
  applySessionRepair,
134
121
  planSessionRepair
135
122
  } from "./chunk-KFY3SGN7.js";
123
+ import {
124
+ collectPatternMemories,
125
+ explainPatternMemory,
126
+ parsePatternsExplainOptions,
127
+ parsePatternsListOptions,
128
+ parseStrictCliDate,
129
+ renderPatternExplain,
130
+ renderPatternsList
131
+ } from "./chunk-3T74IZB3.js";
132
+ import {
133
+ readRuntimePolicySnapshot,
134
+ sanitizeRuntimePolicyValues
135
+ } from "./chunk-2LA3H54D.js";
136
136
  import {
137
137
  GITHUB_CONNECTOR_ID,
138
138
  GMAIL_CONNECTOR_ID,
@@ -150,12 +150,12 @@ import {
150
150
  import {
151
151
  listConnectorStates
152
152
  } from "./chunk-6GUG4YNM.js";
153
- import {
154
- searchHarmonicRetrieval
155
- } from "./chunk-XUZ5CIEE.js";
156
153
  import {
157
154
  rescoreMemoryImportance
158
155
  } from "./chunk-UOBPK2OS.js";
156
+ import {
157
+ searchHarmonicRetrieval
158
+ } from "./chunk-YRVAKONL.js";
159
159
  import {
160
160
  createEvalBaselineSnapshot,
161
161
  getEvalHarnessStatus,
@@ -170,12 +170,12 @@ import {
170
170
  } from "./chunk-ACPCA4NO.js";
171
171
  import {
172
172
  GraphDashboardServer
173
- } from "./chunk-YNDLCWXS.js";
173
+ } from "./chunk-EZ25VE3G.js";
174
174
  import {
175
175
  rebuildMemoryProjection,
176
176
  repairMemoryProjection,
177
177
  verifyMemoryProjection
178
- } from "./chunk-JFWZRUKP.js";
178
+ } from "./chunk-WTOZBZNN.js";
179
179
  import {
180
180
  buildConnectorRowsFromDefinitions,
181
181
  parseConnectorsListOptions,
@@ -196,11 +196,11 @@ import {
196
196
  } from "./chunk-6TBIWIAG.js";
197
197
  import {
198
198
  parseConfig
199
- } from "./chunk-DPNXADEI.js";
199
+ } from "./chunk-D4QVPP3G.js";
200
200
  import {
201
201
  EngramAccessHttpServer,
202
202
  MeetingsInputError
203
- } from "./chunk-YUTTMSC7.js";
203
+ } from "./chunk-FMQ4MOQO.js";
204
204
  import {
205
205
  WearablesInputError
206
206
  } from "./chunk-V7IZKJI3.js";
@@ -210,13 +210,13 @@ import {
210
210
  loadChatSession,
211
211
  processChatMessage,
212
212
  sessionBelongsToPrincipal
213
- } from "./chunk-RQ2EQRRR.js";
213
+ } from "./chunk-I4343FIA.js";
214
214
  import {
215
215
  getAbstractionNodeStoreStatus
216
216
  } from "./chunk-DJUKBGAD.js";
217
217
  import {
218
218
  EngramAccessService
219
- } from "./chunk-PNAGNVGK.js";
219
+ } from "./chunk-RQE4TITU.js";
220
220
  import {
221
221
  WorkStorage
222
222
  } from "./chunk-GDB4J2H3.js";
@@ -236,7 +236,7 @@ import {
236
236
  } from "./chunk-YOXVZJFM.js";
237
237
  import {
238
238
  readAggregateExtractionWatermark
239
- } from "./chunk-XAWIL7TC.js";
239
+ } from "./chunk-5S4LQOPE.js";
240
240
  import {
241
241
  getObjectiveStateStoreStatus
242
242
  } from "./chunk-HTP6XRUI.js";
@@ -245,23 +245,23 @@ import {
245
245
  readMemoryGovernanceRunArtifact,
246
246
  restoreMemoryGovernanceRun,
247
247
  runMemoryGovernance
248
- } from "./chunk-DYO24BNB.js";
248
+ } from "./chunk-SVVIASVX.js";
249
249
  import {
250
250
  listNamespaces,
251
251
  runNamespaceMigration,
252
252
  verifyNamespaces
253
- } from "./chunk-IDQ6DKXC.js";
253
+ } from "./chunk-5VPQSRQO.js";
254
254
  import {
255
255
  analyzeGraphHealth
256
- } from "./chunk-BIJAWZYW.js";
256
+ } from "./chunk-YMOPYG3K.js";
257
257
  import {
258
258
  resolveNamespaceChildRoot
259
- } from "./chunk-O4BAGJDN.js";
259
+ } from "./chunk-GEPACVWN.js";
260
260
  import {
261
261
  OKF_RESERVED_BASENAMES,
262
262
  meetingIdDate,
263
263
  okfTypeForCategory
264
- } from "./chunk-6LS5OX3U.js";
264
+ } from "./chunk-BJTHRFFC.js";
265
265
  import {
266
266
  isValidTranscriptDate
267
267
  } from "./chunk-UHVXE24Y.js";
@@ -302,7 +302,7 @@ import {
302
302
  } from "./chunk-QDW3E4RD.js";
303
303
  import {
304
304
  getCausalTrajectoryStoreStatus
305
- } from "./chunk-PP7R754B.js";
305
+ } from "./chunk-GPFZFCRN.js";
306
306
  import {
307
307
  padEndDisplay,
308
308
  truncateGraphemeSafe
@@ -5394,7 +5394,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
5394
5394
  }
5395
5395
  }
5396
5396
  if (sourceArchive.endsWith(".enc")) {
5397
- const { isEncryptedCapsuleFile } = await import("./capsule-crypto-GWVG7LGC.js");
5397
+ const { isEncryptedCapsuleFile } = await import("./capsule-crypto-7FJQINUR.js");
5398
5398
  const encDetected = await isEncryptedCapsuleFile(sourceArchive).catch(() => true);
5399
5399
  if (encDetected) {
5400
5400
  throw new Error(
@@ -5557,7 +5557,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
5557
5557
  const { parseExportBundle } = await import("./transfer/types.js");
5558
5558
  let decryptedBuf;
5559
5559
  try {
5560
- const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-GWVG7LGC.js");
5560
+ const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-7FJQINUR.js");
5561
5561
  decryptedBuf = await decryptCapsuleFileInMemory(archivePath, memoryDir);
5562
5562
  } catch (decErr) {
5563
5563
  const msg = decErr instanceof Error ? decErr.message : String(decErr);
@@ -8811,4 +8811,4 @@ export {
8811
8811
  listMemoryMarkdownFilePaths,
8812
8812
  registerCli
8813
8813
  };
8814
- //# sourceMappingURL=chunk-YWBOOBDP.js.map
8814
+ //# sourceMappingURL=chunk-I7EX6KSH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-JFWZRUKP.js";
3
+ } from "./chunk-WTOZBZNN.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-3I22VWB3.js.map
35
+ //# sourceMappingURL=chunk-IP4ZNT4U.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-NOB2T2FC.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-DPNXADEI.js";
14
+ } from "./chunk-D4QVPP3G.js";
15
15
  import {
16
16
  resolveObjectiveStateStoreDir,
17
17
  validateObjectiveStateSnapshot
@@ -268,4 +268,4 @@ export {
268
268
  recordResumeBundle,
269
269
  getResumeBundleStatus
270
270
  };
271
- //# sourceMappingURL=chunk-AXGFOFNY.js.map
271
+ //# sourceMappingURL=chunk-IY7UXD3J.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-D35XLYQ7.js";
3
+ } from "./chunk-RGCF4XNH.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -470,4 +470,4 @@ export {
470
470
  NamespaceSearchRouter,
471
471
  normalizeQmdResultPath
472
472
  };
473
- //# sourceMappingURL=chunk-6FUMA6AA.js.map
473
+ //# sourceMappingURL=chunk-JAQXUGLN.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ ReplitAdapter
3
+ } from "./chunk-TMSXWOBZ.js";
1
4
  import {
2
5
  ClaudeCodeAdapter
3
6
  } from "./chunk-J64TK33U.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  HermesAdapter
9
12
  } from "./chunk-42NQ7AVG.js";
10
- import {
11
- ReplitAdapter
12
- } from "./chunk-TMSXWOBZ.js";
13
13
 
14
14
  // src/adapters/registry.ts
15
15
  var AdapterRegistry = class {
@@ -53,4 +53,4 @@ var AdapterRegistry = class {
53
53
  export {
54
54
  AdapterRegistry
55
55
  };
56
- //# sourceMappingURL=chunk-RKNJBZ55.js.map
56
+ //# sourceMappingURL=chunk-JBPKEARU.js.map
@@ -0,0 +1,240 @@
1
+ import {
2
+ DEFAULT_EVAL_TRAJECTORY_REPORT_MAX_AGE_MS,
3
+ DESTRUCTIVE_ACTION_TYPES,
4
+ EVAL_TRAJECTORY_PROMOTION_THRESHOLDS,
5
+ EVAL_TRAJECTORY_REPORT_SCHEMA_VERSION,
6
+ canonicalJson,
7
+ compareRows,
8
+ isFiniteNumber,
9
+ isHexSha256,
10
+ isIsoTimestamp,
11
+ isMemoryActionType,
12
+ isRowStatus,
13
+ resolveEvalTrajectoryRunConfig,
14
+ serializeEvalTrajectoryReport,
15
+ sha256Hex
16
+ } from "./chunk-ULM7JCDH.js";
17
+ import {
18
+ resolveEvalStoreDir
19
+ } from "./chunk-MCA2X4WH.js";
20
+
21
+ // src/eval-trajectory-store.ts
22
+ import { mkdir, readFile, rename, rm, writeFile } from "fs/promises";
23
+ import path from "path";
24
+ function deriveUnifiedMemoryPromotionReport(report) {
25
+ const { aggregates } = report;
26
+ const trustViolations = report.rows.reduce(
27
+ (sum, row) => sum + (row.status === "joined" && row.trustViolation === 1 ? 1 : 0),
28
+ 0
29
+ );
30
+ const staleHarms = report.rows.reduce(
31
+ (sum, row) => sum + (row.status === "joined" && row.staleMemoryHarm > 0 ? 1 : 0),
32
+ 0
33
+ );
34
+ const destructiveJoinedRows = aggregates.byAction.filter((group) => DESTRUCTIVE_ACTION_TYPES[group.action] === true).reduce((sum, group) => sum + group.rowCount, 0);
35
+ const reasons = [];
36
+ let state;
37
+ if (trustViolations > 0 || staleHarms > 0) {
38
+ state = "demote_to_shadow";
39
+ reasons.push("safety_fault_present");
40
+ } else if (aggregates.coverage.joined < EVAL_TRAJECTORY_PROMOTION_THRESHOLDS.minJoinedRows) {
41
+ state = "insufficient_evidence";
42
+ reasons.push("insufficient_joined_rows");
43
+ } else if (aggregates.coverage.reach !== null && aggregates.coverage.reach < EVAL_TRAJECTORY_PROMOTION_THRESHOLDS.minReach) {
44
+ state = "shadow_eligible";
45
+ reasons.push("reach_below_floor");
46
+ } else if (destructiveJoinedRows > 0) {
47
+ state = "active_destructive_review_only";
48
+ reasons.push("destructive_actions_present");
49
+ } else if (aggregates.metricMeans.actionConditionedUtility === null) {
50
+ state = "shadow_eligible";
51
+ reasons.push("utility_mean_unavailable");
52
+ } else {
53
+ state = "active_reversible_eligible";
54
+ }
55
+ const draft = {
56
+ schemaVersion: 1,
57
+ sourceReportId: report.reportId,
58
+ namespaceDigest: report.namespaceDigest,
59
+ asOf: report.asOf,
60
+ inputFingerprint: report.inputFingerprint,
61
+ state,
62
+ reasons,
63
+ evidence: {
64
+ joinedRows: aggregates.coverage.joined,
65
+ reach: aggregates.coverage.reach,
66
+ meanUtility: aggregates.metricMeans.actionConditionedUtility,
67
+ trustViolations,
68
+ staleHarms,
69
+ destructiveJoinedRows
70
+ },
71
+ contentHash: ""
72
+ };
73
+ draft.contentHash = sha256Hex(canonicalJson({ ...draft, contentHash: void 0 }));
74
+ return draft;
75
+ }
76
+ var FORBIDDEN_EXPORT_KEYS = {
77
+ inputSummary: true,
78
+ goal: true,
79
+ actionSummary: true,
80
+ observationSummary: true,
81
+ outcomeSummary: true,
82
+ prompt: true,
83
+ promptText: true,
84
+ promptHash: true,
85
+ memoryText: true,
86
+ noteText: true,
87
+ sessionKey: true,
88
+ sourceSessionKey: true,
89
+ filePath: true,
90
+ path: true,
91
+ storeDir: true,
92
+ memoryDir: true,
93
+ actionId: true,
94
+ trajectoryId: true,
95
+ memoryId: true,
96
+ outcomeId: true,
97
+ namespace: true,
98
+ salt: true,
99
+ rationale: true,
100
+ summary: true,
101
+ content: true,
102
+ text: true
103
+ };
104
+ function assertEvalTrajectoryReportRedacted(value, label = "report") {
105
+ const scan = (node, trail) => {
106
+ if (Array.isArray(node)) {
107
+ node.forEach((item, index) => scan(item, `${trail}[${index}]`));
108
+ return;
109
+ }
110
+ if (typeof node === "object" && node !== null) {
111
+ for (const [key, child] of Object.entries(node)) {
112
+ if (FORBIDDEN_EXPORT_KEYS[key] === true) {
113
+ throw new Error(`${label} contains forbidden field '${key}' at ${trail} \u2014 redaction fails closed`);
114
+ }
115
+ scan(child, `${trail}.${key}`);
116
+ }
117
+ }
118
+ };
119
+ scan(value, "$");
120
+ }
121
+ function validateEvalTrajectoryReport(raw) {
122
+ if (typeof raw !== "object" || raw === null) throw new Error("eval trajectory report must be an object");
123
+ assertEvalTrajectoryReportRedacted(raw, "eval trajectory report");
124
+ const report = raw;
125
+ if (report.schemaVersion !== EVAL_TRAJECTORY_REPORT_SCHEMA_VERSION) {
126
+ throw new Error("eval trajectory report schemaVersion must be 1");
127
+ }
128
+ if (!isHexSha256(report.reportId) || !isHexSha256(report.namespaceDigest) || !isHexSha256(report.inputFingerprint)) {
129
+ throw new Error("eval trajectory report ids and digests must be sha256 hex");
130
+ }
131
+ if (!isIsoTimestamp(report.asOf)) throw new Error("eval trajectory report asOf must be an ISO timestamp");
132
+ if (!Array.isArray(report.rows)) throw new Error("eval trajectory report rows must be an array");
133
+ const contentHash = report.contentHash;
134
+ if (!isHexSha256(contentHash)) throw new Error("eval trajectory report contentHash must be sha256 hex");
135
+ const expectedHash = sha256Hex(canonicalJson({ ...report, contentHash: void 0 }));
136
+ if (contentHash !== expectedHash) {
137
+ throw new Error("eval trajectory report contentHash mismatch \u2014 tampered or corrupted report");
138
+ }
139
+ resolveEvalTrajectoryRunConfig(report.config);
140
+ for (const row of report.rows) {
141
+ if (typeof row !== "object" || row === null) throw new Error("report rows must be objects");
142
+ const candidate = row;
143
+ if (candidate.schemaVersion !== 1 || !isHexSha256(candidate.actionDigest)) {
144
+ throw new Error("report row has invalid schemaVersion or actionDigest");
145
+ }
146
+ if (!isRowStatus(candidate.status)) throw new Error("report row has invalid status");
147
+ if (candidate.outcomeDigest !== null && candidate.outcomeDigest !== void 0 && !isHexSha256(candidate.outcomeDigest)) {
148
+ throw new Error("report row outcomeDigest must be sha256 hex or null");
149
+ }
150
+ if (candidate.status === "joined" && (candidate.outcomeDigest == null || candidate.join == null) || candidate.status !== "joined" && candidate.actionConditionedUtility !== null) {
151
+ throw new Error("report row join/utility invariants violated");
152
+ }
153
+ for (const metric of ["taskOutcome", "contextTokenCost", "actionConditionedUtility"]) {
154
+ const value = candidate[metric];
155
+ if (value !== null && value !== void 0 && !isFiniteNumber(value)) {
156
+ throw new Error(`report row ${metric} must be numeric or null`);
157
+ }
158
+ }
159
+ if (candidate.trustViolation !== 0 && candidate.trustViolation !== 1) {
160
+ throw new Error("report row trustViolation must be 0 or 1");
161
+ }
162
+ if (candidate.staleMemoryHarm !== 0 && candidate.staleMemoryHarm !== 0.5 && candidate.staleMemoryHarm !== 1) {
163
+ throw new Error("report row staleMemoryHarm must be 0, 0.5, or 1");
164
+ }
165
+ }
166
+ for (let index = 1; index < report.rows.length; index += 1) {
167
+ if (compareRows(report.rows[index - 1], report.rows[index]) > 0) {
168
+ throw new Error("report rows must be sorted by (outcomeRecordedAt, actionDigest)");
169
+ }
170
+ }
171
+ const rows = report.rows;
172
+ const statusCounts = {
173
+ joined: 0,
174
+ ambiguous: 0,
175
+ late_outcome: 0,
176
+ future_outcome: 0,
177
+ missing_within_window: 0
178
+ };
179
+ for (const row of rows) statusCounts[row.status] += 1;
180
+ const joinedRows = rows.filter((row) => row.status === "joined");
181
+ const mean = (values) => values.length === 0 ? null : values.reduce((sum, value) => sum + value, 0) / values.length;
182
+ const aggregates = report.aggregates;
183
+ if (typeof aggregates !== "object" || aggregates === null || aggregates.rowCount !== rows.length || canonicalJson(aggregates.statusCounts) !== canonicalJson(statusCounts) || aggregates.coverage.joined !== statusCounts.joined || aggregates.coverage.missingWithinWindow !== statusCounts.missing_within_window || aggregates.coverage.lateOutcome !== statusCounts.late_outcome || aggregates.coverage.futureOutcome !== statusCounts.future_outcome || aggregates.coverage.ambiguous !== statusCounts.ambiguous || aggregates.coverage.excludedFromMeans !== rows.length - statusCounts.joined || aggregates.metricMeans.taskOutcome !== mean(joinedRows.map((row) => row.taskOutcome).filter(isFiniteNumber)) || aggregates.metricMeans.actionConditionedUtility !== mean(joinedRows.map((row) => row.actionConditionedUtility).filter(isFiniteNumber)) || !Array.isArray(aggregates.byAction) || !aggregates.byAction.every((group) => isMemoryActionType(group.action))) {
184
+ throw new Error("eval trajectory report aggregates do not match rows \u2014 tampered or corrupted report");
185
+ }
186
+ return raw;
187
+ }
188
+ function assertPathWithin(rootDir, targetPath, field) {
189
+ const relative = path.relative(path.resolve(rootDir), path.resolve(targetPath));
190
+ if (relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative)) return;
191
+ throw new Error(`${field} must stay within ${rootDir}`);
192
+ }
193
+ async function writeEvalTrajectoryReport(options) {
194
+ const validated = validateEvalTrajectoryReport(options.report);
195
+ if (!options.memoryDir && !options.evalStoreDir) {
196
+ throw new Error("writeEvalTrajectoryReport requires memoryDir or evalStoreDir");
197
+ }
198
+ const rootDir = resolveEvalStoreDir(options.memoryDir ?? "", options.evalStoreDir);
199
+ const trajectoryDir = path.join(rootDir, "trajectory", validated.asOf.slice(0, 10));
200
+ const targetPath = path.join(trajectoryDir, `${validated.reportId}.json`);
201
+ assertPathWithin(rootDir, targetPath, "eval trajectory report path");
202
+ const payload = serializeEvalTrajectoryReport(validated);
203
+ const tmpPath = `${targetPath}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;
204
+ await mkdir(trajectoryDir, { recursive: true });
205
+ try {
206
+ await writeFile(tmpPath, payload, "utf8");
207
+ await rename(tmpPath, targetPath);
208
+ } catch (error) {
209
+ await rm(tmpPath, { force: true }).catch(() => {
210
+ });
211
+ throw error;
212
+ }
213
+ return targetPath;
214
+ }
215
+ async function readEvalTrajectoryReport(options) {
216
+ const raw = await readFile(options.reportPath, "utf8");
217
+ let parsed;
218
+ try {
219
+ parsed = JSON.parse(raw);
220
+ } catch {
221
+ throw new Error("eval trajectory report file is not valid JSON");
222
+ }
223
+ const report = validateEvalTrajectoryReport(parsed);
224
+ const nowMs = options.now !== void 0 ? Date.parse(options.now) : Date.now();
225
+ if (!Number.isFinite(nowMs)) throw new Error("now must be a parseable timestamp");
226
+ const maxAgeMs = options.maxReportAgeMs ?? DEFAULT_EVAL_TRAJECTORY_REPORT_MAX_AGE_MS;
227
+ const asOfMs = Date.parse(report.asOf);
228
+ if (nowMs < asOfMs) throw new Error("eval trajectory report is dated after now \u2014 rejected");
229
+ if (nowMs - asOfMs > maxAgeMs) throw new Error("eval trajectory report is expired \u2014 rejected");
230
+ return report;
231
+ }
232
+
233
+ export {
234
+ deriveUnifiedMemoryPromotionReport,
235
+ assertEvalTrajectoryReportRedacted,
236
+ validateEvalTrajectoryReport,
237
+ writeEvalTrajectoryReport,
238
+ readEvalTrajectoryReport
239
+ };
240
+ //# sourceMappingURL=chunk-JCCWJHOP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/eval-trajectory-store.ts"],"sourcesContent":["/**\n * Issue #2345 — validation, redaction, persistence, and the promotion gate for\n * trajectory-eval reports.\n *\n * Fail-closed by construction:\n * - every report is redaction-scanned before it can be validated or written,\n * - the content hash and row-derived aggregates are recomputed on read,\n * - the checked reader rejects tampered, future-dated, and expired reports,\n * - the promotion gate can only recommend; it never runs an action.\n */\n\nimport { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n DEFAULT_EVAL_TRAJECTORY_REPORT_MAX_AGE_MS,\n DESTRUCTIVE_ACTION_TYPES,\n EVAL_TRAJECTORY_PROMOTION_THRESHOLDS,\n EVAL_TRAJECTORY_REPORT_SCHEMA_VERSION,\n type EvalActionOutcomeRow,\n type EvalTrajectoryReport,\n type EvalTrajectoryRowStatus,\n type EvalTrajectoryRunConfig,\n type UnifiedMemoryPromotionReport,\n type UnifiedMemoryPromotionState,\n canonicalJson,\n compareRows,\n isFiniteNumber,\n isHexSha256,\n isIsoTimestamp,\n isMemoryActionType,\n isRowStatus,\n resolveEvalTrajectoryRunConfig,\n serializeEvalTrajectoryReport,\n sha256Hex,\n} from \"./eval-trajectory-contracts.js\";\nimport { resolveEvalStoreDir } from \"./evals.js\";\n\n// ---------------------------------------------------------------------------\n// Promotion gate derivation (#2348 consumes this; it never runs actions here)\n// ---------------------------------------------------------------------------\n\nexport function deriveUnifiedMemoryPromotionReport(report: EvalTrajectoryReport): UnifiedMemoryPromotionReport {\n const { aggregates } = report;\n const trustViolations = report.rows.reduce(\n (sum, row) => sum + (row.status === \"joined\" && row.trustViolation === 1 ? 1 : 0),\n 0\n );\n const staleHarms = report.rows.reduce(\n (sum, row) => sum + (row.status === \"joined\" && row.staleMemoryHarm > 0 ? 1 : 0),\n 0\n );\n const destructiveJoinedRows = aggregates.byAction\n .filter((group) => DESTRUCTIVE_ACTION_TYPES[group.action] === true)\n .reduce((sum, group) => sum + group.rowCount, 0);\n\n const reasons: string[] = [];\n let state: UnifiedMemoryPromotionState;\n if (trustViolations > 0 || staleHarms > 0) {\n state = \"demote_to_shadow\";\n reasons.push(\"safety_fault_present\");\n } else if (aggregates.coverage.joined < EVAL_TRAJECTORY_PROMOTION_THRESHOLDS.minJoinedRows) {\n state = \"insufficient_evidence\";\n reasons.push(\"insufficient_joined_rows\");\n } else if (\n aggregates.coverage.reach !== null &&\n aggregates.coverage.reach < EVAL_TRAJECTORY_PROMOTION_THRESHOLDS.minReach\n ) {\n state = \"shadow_eligible\";\n reasons.push(\"reach_below_floor\");\n } else if (destructiveJoinedRows > 0) {\n state = \"active_destructive_review_only\";\n reasons.push(\"destructive_actions_present\");\n } else if (aggregates.metricMeans.actionConditionedUtility === null) {\n state = \"shadow_eligible\";\n reasons.push(\"utility_mean_unavailable\");\n } else {\n state = \"active_reversible_eligible\";\n }\n\n const draft: UnifiedMemoryPromotionReport = {\n schemaVersion: 1,\n sourceReportId: report.reportId,\n namespaceDigest: report.namespaceDigest,\n asOf: report.asOf,\n inputFingerprint: report.inputFingerprint,\n state,\n reasons,\n evidence: {\n joinedRows: aggregates.coverage.joined,\n reach: aggregates.coverage.reach,\n meanUtility: aggregates.metricMeans.actionConditionedUtility,\n trustViolations,\n staleHarms,\n destructiveJoinedRows,\n },\n contentHash: \"\",\n };\n draft.contentHash = sha256Hex(canonicalJson({ ...draft, contentHash: undefined }));\n return draft;\n}\n\n// ---------------------------------------------------------------------------\n// Redaction (fail closed) + validation\n// ---------------------------------------------------------------------------\n\nconst FORBIDDEN_EXPORT_KEYS: Record<string, true> = {\n inputSummary: true,\n goal: true,\n actionSummary: true,\n observationSummary: true,\n outcomeSummary: true,\n prompt: true,\n promptText: true,\n promptHash: true,\n memoryText: true,\n noteText: true,\n sessionKey: true,\n sourceSessionKey: true,\n filePath: true,\n path: true,\n storeDir: true,\n memoryDir: true,\n actionId: true,\n trajectoryId: true,\n memoryId: true,\n outcomeId: true,\n namespace: true,\n salt: true,\n rationale: true,\n summary: true,\n content: true,\n text: true,\n};\n\nexport function assertEvalTrajectoryReportRedacted(value: unknown, label = \"report\"): void {\n const scan = (node: unknown, trail: string): void => {\n if (Array.isArray(node)) {\n node.forEach((item, index) => scan(item, `${trail}[${index}]`));\n return;\n }\n if (typeof node === \"object\" && node !== null) {\n for (const [key, child] of Object.entries(node as Record<string, unknown>)) {\n if (FORBIDDEN_EXPORT_KEYS[key] === true) {\n throw new Error(`${label} contains forbidden field '${key}' at ${trail} — redaction fails closed`);\n }\n scan(child, `${trail}.${key}`);\n }\n }\n };\n scan(value, \"$\");\n}\n\nexport function validateEvalTrajectoryReport(raw: unknown): EvalTrajectoryReport {\n if (typeof raw !== \"object\" || raw === null) throw new Error(\"eval trajectory report must be an object\");\n assertEvalTrajectoryReportRedacted(raw, \"eval trajectory report\");\n const report = raw as Partial<EvalTrajectoryReport> & Record<string, unknown>;\n if (report.schemaVersion !== EVAL_TRAJECTORY_REPORT_SCHEMA_VERSION) {\n throw new Error(\"eval trajectory report schemaVersion must be 1\");\n }\n if (!isHexSha256(report.reportId) || !isHexSha256(report.namespaceDigest) || !isHexSha256(report.inputFingerprint)) {\n throw new Error(\"eval trajectory report ids and digests must be sha256 hex\");\n }\n if (!isIsoTimestamp(report.asOf)) throw new Error(\"eval trajectory report asOf must be an ISO timestamp\");\n if (!Array.isArray(report.rows)) throw new Error(\"eval trajectory report rows must be an array\");\n const contentHash = report.contentHash;\n if (!isHexSha256(contentHash)) throw new Error(\"eval trajectory report contentHash must be sha256 hex\");\n const expectedHash = sha256Hex(canonicalJson({ ...report, contentHash: undefined }));\n if (contentHash !== expectedHash) {\n throw new Error(\"eval trajectory report contentHash mismatch — tampered or corrupted report\");\n }\n // Bounds-check the embedded config through the same parser builders use.\n resolveEvalTrajectoryRunConfig(report.config as Partial<EvalTrajectoryRunConfig>);\n\n for (const row of report.rows) {\n if (typeof row !== \"object\" || row === null) throw new Error(\"report rows must be objects\");\n const candidate = row as Partial<EvalActionOutcomeRow>;\n if (candidate.schemaVersion !== 1 || !isHexSha256(candidate.actionDigest)) {\n throw new Error(\"report row has invalid schemaVersion or actionDigest\");\n }\n if (!isRowStatus(candidate.status)) throw new Error(\"report row has invalid status\");\n if (\n candidate.outcomeDigest !== null &&\n candidate.outcomeDigest !== undefined &&\n !isHexSha256(candidate.outcomeDigest)\n ) {\n throw new Error(\"report row outcomeDigest must be sha256 hex or null\");\n }\n if (\n (candidate.status === \"joined\" && (candidate.outcomeDigest == null || candidate.join == null)) ||\n (candidate.status !== \"joined\" && candidate.actionConditionedUtility !== null)\n ) {\n throw new Error(\"report row join/utility invariants violated\");\n }\n for (const metric of [\"taskOutcome\", \"contextTokenCost\", \"actionConditionedUtility\"] as const) {\n const value = candidate[metric];\n if (value !== null && value !== undefined && !isFiniteNumber(value)) {\n throw new Error(`report row ${metric} must be numeric or null`);\n }\n }\n if (candidate.trustViolation !== 0 && candidate.trustViolation !== 1) {\n throw new Error(\"report row trustViolation must be 0 or 1\");\n }\n if (candidate.staleMemoryHarm !== 0 && candidate.staleMemoryHarm !== 0.5 && candidate.staleMemoryHarm !== 1) {\n throw new Error(\"report row staleMemoryHarm must be 0, 0.5, or 1\");\n }\n }\n for (let index = 1; index < report.rows.length; index += 1) {\n if (compareRows(report.rows[index - 1] as EvalActionOutcomeRow, report.rows[index] as EvalActionOutcomeRow) > 0) {\n throw new Error(\"report rows must be sorted by (outcomeRecordedAt, actionDigest)\");\n }\n }\n\n // Derivable-aggregate verification: recompute from rows so tampering fails closed.\n const rows = report.rows as EvalActionOutcomeRow[];\n const statusCounts: Record<EvalTrajectoryRowStatus, number> = {\n joined: 0,\n ambiguous: 0,\n late_outcome: 0,\n future_outcome: 0,\n missing_within_window: 0,\n };\n for (const row of rows) statusCounts[row.status] += 1;\n const joinedRows = rows.filter((row) => row.status === \"joined\");\n const mean = (values: number[]): number | null =>\n values.length === 0 ? null : values.reduce((sum, value) => sum + value, 0) / values.length;\n const aggregates = report.aggregates;\n if (\n typeof aggregates !== \"object\" ||\n aggregates === null ||\n aggregates.rowCount !== rows.length ||\n canonicalJson(aggregates.statusCounts) !== canonicalJson(statusCounts) ||\n aggregates.coverage.joined !== statusCounts.joined ||\n aggregates.coverage.missingWithinWindow !== statusCounts.missing_within_window ||\n aggregates.coverage.lateOutcome !== statusCounts.late_outcome ||\n aggregates.coverage.futureOutcome !== statusCounts.future_outcome ||\n aggregates.coverage.ambiguous !== statusCounts.ambiguous ||\n aggregates.coverage.excludedFromMeans !== rows.length - statusCounts.joined ||\n aggregates.metricMeans.taskOutcome !== mean(joinedRows.map((row) => row.taskOutcome).filter(isFiniteNumber)) ||\n aggregates.metricMeans.actionConditionedUtility !==\n mean(joinedRows.map((row) => row.actionConditionedUtility).filter(isFiniteNumber)) ||\n !Array.isArray(aggregates.byAction) ||\n !aggregates.byAction.every((group) => isMemoryActionType(group.action))\n ) {\n throw new Error(\"eval trajectory report aggregates do not match rows — tampered or corrupted report\");\n }\n\n return raw as EvalTrajectoryReport;\n}\n\n// ---------------------------------------------------------------------------\n// Persistence (atomic write beside the existing shadow artifacts)\n// ---------------------------------------------------------------------------\n\nfunction assertPathWithin(rootDir: string, targetPath: string, field: string): void {\n const relative = path.relative(path.resolve(rootDir), path.resolve(targetPath));\n if (relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative))) return;\n throw new Error(`${field} must stay within ${rootDir}`);\n}\n\nexport async function writeEvalTrajectoryReport(options: {\n memoryDir?: string;\n evalStoreDir?: string;\n report: EvalTrajectoryReport;\n}): Promise<string> {\n const validated = validateEvalTrajectoryReport(options.report);\n if (!options.memoryDir && !options.evalStoreDir) {\n throw new Error(\"writeEvalTrajectoryReport requires memoryDir or evalStoreDir\");\n }\n const rootDir = resolveEvalStoreDir(options.memoryDir ?? \"\", options.evalStoreDir);\n const trajectoryDir = path.join(rootDir, \"trajectory\", validated.asOf.slice(0, 10));\n const targetPath = path.join(trajectoryDir, `${validated.reportId}.json`);\n assertPathWithin(rootDir, targetPath, \"eval trajectory report path\");\n const payload = serializeEvalTrajectoryReport(validated);\n const tmpPath = `${targetPath}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;\n await mkdir(trajectoryDir, { recursive: true });\n try {\n await writeFile(tmpPath, payload, \"utf8\");\n await rename(tmpPath, targetPath);\n } catch (error) {\n await rm(tmpPath, { force: true }).catch(() => {});\n throw error;\n }\n return targetPath;\n}\n\nexport async function readEvalTrajectoryReport(options: {\n reportPath: string;\n now?: string;\n maxReportAgeMs?: number;\n}): Promise<EvalTrajectoryReport> {\n const raw = await readFile(options.reportPath, \"utf8\");\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch {\n throw new Error(\"eval trajectory report file is not valid JSON\");\n }\n const report = validateEvalTrajectoryReport(parsed);\n const nowMs = options.now !== undefined ? Date.parse(options.now) : Date.now();\n if (!Number.isFinite(nowMs)) throw new Error(\"now must be a parseable timestamp\");\n const maxAgeMs = options.maxReportAgeMs ?? DEFAULT_EVAL_TRAJECTORY_REPORT_MAX_AGE_MS;\n const asOfMs = Date.parse(report.asOf);\n if (nowMs < asOfMs) throw new Error(\"eval trajectory report is dated after now — rejected\");\n if (nowMs - asOfMs > maxAgeMs) throw new Error(\"eval trajectory report is expired — rejected\");\n return report;\n}\n"],"mappings":"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","names":[]}
@@ -1,12 +1,12 @@
1
- import {
2
- encryptCapsuleFile
3
- } from "./chunk-UVYI6VIX.js";
4
1
  import {
5
2
  CAPSULE_ID_PATTERN,
6
3
  CapsuleBlockSchema,
7
4
  ExportBundleV2Schema,
8
5
  ExportManifestV2Schema
9
6
  } from "./chunk-WEHSQBFR.js";
7
+ import {
8
+ encryptCapsuleFile
9
+ } from "./chunk-X7Y7WX73.js";
10
10
  import {
11
11
  CAPSULE_SCHEMA_VERSION,
12
12
  EXPORT_FORMAT
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-5W7CTZ2E.js.map
264
+ //# sourceMappingURL=chunk-KQAFEZQX.js.map
@@ -2,7 +2,7 @@ import {
2
2
  readCausalTrajectoryRecordsStrict,
3
3
  readCausalTrajectoryRevisionToken,
4
4
  resolveCausalTrajectoryStoreDir
5
- } from "./chunk-PP7R754B.js";
5
+ } from "./chunk-GPFZFCRN.js";
6
6
 
7
7
  // src/coding/pre-action-gate.ts
8
8
  import { createHash } from "crypto";
@@ -221,4 +221,4 @@ export {
221
221
  normalizeActionIntent,
222
222
  PreActionFailureGate
223
223
  };
224
- //# sourceMappingURL=chunk-D2YNNDML.js.map
224
+ //# sourceMappingURL=chunk-KWIGDKM2.js.map