@atomicmemory/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +201 -0
  3. package/README.md +314 -0
  4. package/dist/app/bind-ephemeral.d.ts +18 -0
  5. package/dist/app/bind-ephemeral.js +22 -0
  6. package/dist/app/cors-headers.d.ts +12 -0
  7. package/dist/app/cors-headers.js +18 -0
  8. package/dist/app/create-app.d.ts +25 -0
  9. package/dist/app/create-app.js +156 -0
  10. package/dist/app/runtime-config-route-snapshot.d.ts +27 -0
  11. package/dist/app/runtime-config-route-snapshot.js +27 -0
  12. package/dist/app/runtime-container.d.ts +281 -0
  13. package/dist/app/runtime-container.js +297 -0
  14. package/dist/app/startup-checks.d.ts +28 -0
  15. package/dist/app/startup-checks.js +45 -0
  16. package/dist/bin.d.ts +17 -0
  17. package/dist/bin.js +128 -0
  18. package/dist/config.d.ts +680 -0
  19. package/dist/config.js +808 -0
  20. package/dist/db/agent-trust-repository.d.ts +49 -0
  21. package/dist/db/agent-trust-repository.js +66 -0
  22. package/dist/db/belief-edges-repository.d.ts +68 -0
  23. package/dist/db/belief-edges-repository.js +124 -0
  24. package/dist/db/claim-repository.d.ts +6 -0
  25. package/dist/db/claim-repository.js +4 -0
  26. package/dist/db/contradictions-repository.d.ts +56 -0
  27. package/dist/db/contradictions-repository.js +88 -0
  28. package/dist/db/document-chunk-repository.d.ts +48 -0
  29. package/dist/db/document-chunk-repository.js +145 -0
  30. package/dist/db/document-chunk-types.d.ts +35 -0
  31. package/dist/db/document-chunk-types.js +9 -0
  32. package/dist/db/document-list-cursor.d.ts +45 -0
  33. package/dist/db/document-list-cursor.js +111 -0
  34. package/dist/db/document-list-repository.d.ts +103 -0
  35. package/dist/db/document-list-repository.js +204 -0
  36. package/dist/db/entity-cards-repository.d.ts +37 -0
  37. package/dist/db/entity-cards-repository.js +46 -0
  38. package/dist/db/entity-values-repository.d.ts +26 -0
  39. package/dist/db/entity-values-repository.js +57 -0
  40. package/dist/db/link-repository.d.ts +30 -0
  41. package/dist/db/link-repository.js +54 -0
  42. package/dist/db/memory-repository.d.ts +163 -0
  43. package/dist/db/memory-repository.js +232 -0
  44. package/dist/db/migrate.d.ts +6 -0
  45. package/dist/db/migrate.js +36 -0
  46. package/dist/db/mmr.d.ts +14 -0
  47. package/dist/db/mmr.js +57 -0
  48. package/dist/db/passport-feed-repository.d.ts +91 -0
  49. package/dist/db/passport-feed-repository.js +198 -0
  50. package/dist/db/pg-episode-store.d.ts +19 -0
  51. package/dist/db/pg-episode-store.js +17 -0
  52. package/dist/db/pg-link-store.d.ts +17 -0
  53. package/dist/db/pg-link-store.js +14 -0
  54. package/dist/db/pg-memory-store.d.ts +68 -0
  55. package/dist/db/pg-memory-store.js +53 -0
  56. package/dist/db/pg-recap-store.d.ts +13 -0
  57. package/dist/db/pg-recap-store.js +19 -0
  58. package/dist/db/pg-representation-store.d.ts +17 -0
  59. package/dist/db/pg-representation-store.js +17 -0
  60. package/dist/db/pg-search-store.d.ts +29 -0
  61. package/dist/db/pg-search-store.js +47 -0
  62. package/dist/db/pool.d.ts +5 -0
  63. package/dist/db/pool.js +21 -0
  64. package/dist/db/ppr.d.ts +56 -0
  65. package/dist/db/ppr.js +178 -0
  66. package/dist/db/query-helpers.d.ts +44 -0
  67. package/dist/db/query-helpers.js +60 -0
  68. package/dist/db/raw-doc-artifact-sync.d.ts +128 -0
  69. package/dist/db/raw-doc-artifact-sync.js +259 -0
  70. package/dist/db/raw-document-blob-repository.d.ts +148 -0
  71. package/dist/db/raw-document-blob-repository.js +300 -0
  72. package/dist/db/raw-document-repository.d.ts +104 -0
  73. package/dist/db/raw-document-repository.js +410 -0
  74. package/dist/db/raw-document-status-repository.d.ts +122 -0
  75. package/dist/db/raw-document-status-repository.js +183 -0
  76. package/dist/db/raw-document-types.d.ts +236 -0
  77. package/dist/db/raw-document-types.js +10 -0
  78. package/dist/db/raw-storage-reconciliation-repository.d.ts +110 -0
  79. package/dist/db/raw-storage-reconciliation-repository.js +200 -0
  80. package/dist/db/reflection-jobs-repository.d.ts +33 -0
  81. package/dist/db/reflection-jobs-repository.js +48 -0
  82. package/dist/db/reflections-repository.d.ts +41 -0
  83. package/dist/db/reflections-repository.js +83 -0
  84. package/dist/db/repository-claims.d.ts +141 -0
  85. package/dist/db/repository-claims.js +376 -0
  86. package/dist/db/repository-deferred-audn.d.ts +33 -0
  87. package/dist/db/repository-deferred-audn.js +69 -0
  88. package/dist/db/repository-document-delete.d.ts +53 -0
  89. package/dist/db/repository-document-delete.js +156 -0
  90. package/dist/db/repository-entities.d.ts +114 -0
  91. package/dist/db/repository-entities.js +317 -0
  92. package/dist/db/repository-entity-attributes.d.ts +41 -0
  93. package/dist/db/repository-entity-attributes.js +65 -0
  94. package/dist/db/repository-entity-graph.d.ts +32 -0
  95. package/dist/db/repository-entity-graph.js +87 -0
  96. package/dist/db/repository-first-mentions.d.ts +41 -0
  97. package/dist/db/repository-first-mentions.js +79 -0
  98. package/dist/db/repository-lessons.d.ts +51 -0
  99. package/dist/db/repository-lessons.js +90 -0
  100. package/dist/db/repository-links.d.ts +26 -0
  101. package/dist/db/repository-links.js +105 -0
  102. package/dist/db/repository-observation.d.ts +26 -0
  103. package/dist/db/repository-observation.js +51 -0
  104. package/dist/db/repository-read.d.ts +56 -0
  105. package/dist/db/repository-read.js +271 -0
  106. package/dist/db/repository-recaps.d.ts +59 -0
  107. package/dist/db/repository-recaps.js +158 -0
  108. package/dist/db/repository-representations.d.ts +48 -0
  109. package/dist/db/repository-representations.js +162 -0
  110. package/dist/db/repository-temporal-state.d.ts +35 -0
  111. package/dist/db/repository-temporal-state.js +46 -0
  112. package/dist/db/repository-tll.d.ts +88 -0
  113. package/dist/db/repository-tll.js +179 -0
  114. package/dist/db/repository-types.d.ts +313 -0
  115. package/dist/db/repository-types.js +142 -0
  116. package/dist/db/repository-user-profiles.d.ts +17 -0
  117. package/dist/db/repository-user-profiles.js +28 -0
  118. package/dist/db/repository-vector-search.d.ts +33 -0
  119. package/dist/db/repository-vector-search.js +373 -0
  120. package/dist/db/repository-wipe.d.ts +34 -0
  121. package/dist/db/repository-wipe.js +94 -0
  122. package/dist/db/repository-write.d.ts +61 -0
  123. package/dist/db/repository-write.js +279 -0
  124. package/dist/db/schema.sql +1355 -0
  125. package/dist/db/storage-artifact-delete-tx.d.ts +56 -0
  126. package/dist/db/storage-artifact-delete-tx.js +123 -0
  127. package/dist/db/storage-artifact-providers.d.ts +21 -0
  128. package/dist/db/storage-artifact-providers.js +21 -0
  129. package/dist/db/storage-artifact-recovery-repository.d.ts +66 -0
  130. package/dist/db/storage-artifact-recovery-repository.js +58 -0
  131. package/dist/db/storage-artifact-repository.d.ts +329 -0
  132. package/dist/db/storage-artifact-repository.js +497 -0
  133. package/dist/db/stores.d.ts +220 -0
  134. package/dist/db/stores.js +12 -0
  135. package/dist/db/summaries-repository.d.ts +74 -0
  136. package/dist/db/summaries-repository.js +125 -0
  137. package/dist/eval/beam-10m-loader.d.ts +98 -0
  138. package/dist/eval/beam-10m-loader.js +128 -0
  139. package/dist/index.d.ts +18 -0
  140. package/dist/index.js +17 -0
  141. package/dist/middleware/require-bearer.d.ts +27 -0
  142. package/dist/middleware/require-bearer.js +60 -0
  143. package/dist/middleware/validate-response.d.ts +33 -0
  144. package/dist/middleware/validate-response.js +55 -0
  145. package/dist/middleware/validate.d.ts +43 -0
  146. package/dist/middleware/validate.js +85 -0
  147. package/dist/routes/agents.d.ts +13 -0
  148. package/dist/routes/agents.js +89 -0
  149. package/dist/routes/document-response-formatters.d.ts +98 -0
  150. package/dist/routes/document-response-formatters.js +243 -0
  151. package/dist/routes/documents.d.ts +74 -0
  152. package/dist/routes/documents.js +425 -0
  153. package/dist/routes/memories.d.ts +29 -0
  154. package/dist/routes/memories.js +725 -0
  155. package/dist/routes/memory-response-formatters.d.ts +179 -0
  156. package/dist/routes/memory-response-formatters.js +210 -0
  157. package/dist/routes/public-raw-storage-metadata.d.ts +54 -0
  158. package/dist/routes/public-raw-storage-metadata.js +56 -0
  159. package/dist/routes/reflect.d.ts +14 -0
  160. package/dist/routes/reflect.js +19 -0
  161. package/dist/routes/response-schema-map.d.ts +14 -0
  162. package/dist/routes/response-schema-map.js +69 -0
  163. package/dist/routes/route-errors.d.ts +12 -0
  164. package/dist/routes/route-errors.js +30 -0
  165. package/dist/routes/storage-error-handlers.d.ts +34 -0
  166. package/dist/routes/storage-error-handlers.js +185 -0
  167. package/dist/routes/storage-response-formatters.d.ts +44 -0
  168. package/dist/routes/storage-response-formatters.js +155 -0
  169. package/dist/routes/storage.d.ts +38 -0
  170. package/dist/routes/storage.js +369 -0
  171. package/dist/routes/upstream-provider-errors.d.ts +19 -0
  172. package/dist/routes/upstream-provider-errors.js +95 -0
  173. package/dist/schemas/agents.d.ts +79 -0
  174. package/dist/schemas/agents.js +126 -0
  175. package/dist/schemas/common.d.ts +110 -0
  176. package/dist/schemas/common.js +190 -0
  177. package/dist/schemas/document-list-responses.d.ts +102 -0
  178. package/dist/schemas/document-list-responses.js +87 -0
  179. package/dist/schemas/document-list-schemas.d.ts +123 -0
  180. package/dist/schemas/document-list-schemas.js +174 -0
  181. package/dist/schemas/document-response-schemas.d.ts +610 -0
  182. package/dist/schemas/document-response-schemas.js +264 -0
  183. package/dist/schemas/document-status-envelope.d.ts +48 -0
  184. package/dist/schemas/document-status-envelope.js +54 -0
  185. package/dist/schemas/documents.d.ts +292 -0
  186. package/dist/schemas/documents.js +449 -0
  187. package/dist/schemas/errors.d.ts +75 -0
  188. package/dist/schemas/errors.js +105 -0
  189. package/dist/schemas/memories.d.ts +378 -0
  190. package/dist/schemas/memories.js +542 -0
  191. package/dist/schemas/openapi.d.ts +24 -0
  192. package/dist/schemas/openapi.js +1038 -0
  193. package/dist/schemas/response-scalars.d.ts +10 -0
  194. package/dist/schemas/response-scalars.js +10 -0
  195. package/dist/schemas/responses.d.ts +536 -0
  196. package/dist/schemas/responses.js +350 -0
  197. package/dist/schemas/search-response-parts.d.ts +97 -0
  198. package/dist/schemas/search-response-parts.js +103 -0
  199. package/dist/schemas/storage-schemas.d.ts +175 -0
  200. package/dist/schemas/storage-schemas.js +277 -0
  201. package/dist/schemas/zod-setup.d.ts +15 -0
  202. package/dist/schemas/zod-setup.js +17 -0
  203. package/dist/server.d.ts +13 -0
  204. package/dist/server.js +57 -0
  205. package/dist/services/abstract-query-policy.d.ts +13 -0
  206. package/dist/services/abstract-query-policy.js +50 -0
  207. package/dist/services/affinity-clustering.d.ts +66 -0
  208. package/dist/services/affinity-clustering.js +125 -0
  209. package/dist/services/agentic-retrieval.d.ts +38 -0
  210. package/dist/services/agentic-retrieval.js +126 -0
  211. package/dist/services/answer-format.d.ts +56 -0
  212. package/dist/services/answer-format.js +118 -0
  213. package/dist/services/answer-rescue.d.ts +72 -0
  214. package/dist/services/answer-rescue.js +177 -0
  215. package/dist/services/answer-verifier.d.ts +24 -0
  216. package/dist/services/answer-verifier.js +73 -0
  217. package/dist/services/api-retry.d.ts +6 -0
  218. package/dist/services/api-retry.js +41 -0
  219. package/dist/services/assistant-turn-filter.d.ts +20 -0
  220. package/dist/services/assistant-turn-filter.js +69 -0
  221. package/dist/services/atomicmem-uri.d.ts +33 -0
  222. package/dist/services/atomicmem-uri.js +86 -0
  223. package/dist/services/audit-events.d.ts +54 -0
  224. package/dist/services/audit-events.js +56 -0
  225. package/dist/services/chunked-extraction.d.ts +21 -0
  226. package/dist/services/chunked-extraction.js +108 -0
  227. package/dist/services/claim-slotting.d.ts +27 -0
  228. package/dist/services/claim-slotting.js +38 -0
  229. package/dist/services/claude-code-llm.d.ts +19 -0
  230. package/dist/services/claude-code-llm.js +96 -0
  231. package/dist/services/composite-dedup.d.ts +50 -0
  232. package/dist/services/composite-dedup.js +153 -0
  233. package/dist/services/composite-grouping.d.ts +41 -0
  234. package/dist/services/composite-grouping.js +111 -0
  235. package/dist/services/composite-staleness.d.ts +20 -0
  236. package/dist/services/composite-staleness.js +50 -0
  237. package/dist/services/conciseness-preference.d.ts +14 -0
  238. package/dist/services/conciseness-preference.js +42 -0
  239. package/dist/services/conflict-policy.d.ts +20 -0
  240. package/dist/services/conflict-policy.js +335 -0
  241. package/dist/services/consensus-extraction.d.ts +39 -0
  242. package/dist/services/consensus-extraction.js +147 -0
  243. package/dist/services/consensus-validation.d.ts +52 -0
  244. package/dist/services/consensus-validation.js +206 -0
  245. package/dist/services/consolidation-service.d.ts +60 -0
  246. package/dist/services/consolidation-service.js +171 -0
  247. package/dist/services/content-detection.d.ts +18 -0
  248. package/dist/services/content-detection.js +25 -0
  249. package/dist/services/contradiction-surfacing.d.ts +62 -0
  250. package/dist/services/contradiction-surfacing.js +111 -0
  251. package/dist/services/cost-telemetry.d.ts +39 -0
  252. package/dist/services/cost-telemetry.js +58 -0
  253. package/dist/services/counter-evidence.d.ts +34 -0
  254. package/dist/services/counter-evidence.js +92 -0
  255. package/dist/services/current-state-ranking.d.ts +21 -0
  256. package/dist/services/current-state-ranking.js +152 -0
  257. package/dist/services/deferred-audn.d.ts +47 -0
  258. package/dist/services/deferred-audn.js +162 -0
  259. package/dist/services/document-chunker.d.ts +50 -0
  260. package/dist/services/document-chunker.js +153 -0
  261. package/dist/services/document-failure-markers.d.ts +91 -0
  262. package/dist/services/document-failure-markers.js +305 -0
  263. package/dist/services/document-indexer.d.ts +122 -0
  264. package/dist/services/document-indexer.js +405 -0
  265. package/dist/services/document-service.d.ts +245 -0
  266. package/dist/services/document-service.js +325 -0
  267. package/dist/services/document-upload-artifact-sync.d.ts +80 -0
  268. package/dist/services/document-upload-artifact-sync.js +162 -0
  269. package/dist/services/document-upload-beta2-recovery.d.ts +72 -0
  270. package/dist/services/document-upload-beta2-recovery.js +94 -0
  271. package/dist/services/document-upload.d.ts +44 -0
  272. package/dist/services/document-upload.js +353 -0
  273. package/dist/services/embedding.d.ts +57 -0
  274. package/dist/services/embedding.js +416 -0
  275. package/dist/services/entity-attribute-extractor.d.ts +34 -0
  276. package/dist/services/entity-attribute-extractor.js +117 -0
  277. package/dist/services/entity-card-synthesis.d.ts +54 -0
  278. package/dist/services/entity-card-synthesis.js +92 -0
  279. package/dist/services/entity-dedup.d.ts +9 -0
  280. package/dist/services/entity-dedup.js +14 -0
  281. package/dist/services/entity-graph.d.ts +17 -0
  282. package/dist/services/entity-graph.js +135 -0
  283. package/dist/services/entropy-gate.d.ts +52 -0
  284. package/dist/services/entropy-gate.js +56 -0
  285. package/dist/services/episode-fetcher.d.ts +47 -0
  286. package/dist/services/episode-fetcher.js +128 -0
  287. package/dist/services/event-anchor-facts.d.ts +8 -0
  288. package/dist/services/event-anchor-facts.js +205 -0
  289. package/dist/services/event-chain-detector.d.ts +52 -0
  290. package/dist/services/event-chain-detector.js +83 -0
  291. package/dist/services/extraction-cache.d.ts +9 -0
  292. package/dist/services/extraction-cache.js +54 -0
  293. package/dist/services/extraction-enrichment.d.ts +9 -0
  294. package/dist/services/extraction-enrichment.js +223 -0
  295. package/dist/services/extraction.d.ts +69 -0
  296. package/dist/services/extraction.js +596 -0
  297. package/dist/services/fact-normalization.d.ts +12 -0
  298. package/dist/services/fact-normalization.js +248 -0
  299. package/dist/services/filecoin-observability.d.ts +127 -0
  300. package/dist/services/filecoin-observability.js +200 -0
  301. package/dist/services/first-mention-service.d.ts +76 -0
  302. package/dist/services/first-mention-service.js +186 -0
  303. package/dist/services/hierarchical-retrieval.d.ts +49 -0
  304. package/dist/services/hierarchical-retrieval.js +50 -0
  305. package/dist/services/ingest-fact-pipeline.d.ts +32 -0
  306. package/dist/services/ingest-fact-pipeline.js +212 -0
  307. package/dist/services/ingest-post-write.d.ts +50 -0
  308. package/dist/services/ingest-post-write.js +117 -0
  309. package/dist/services/ingest-trace.d.ts +32 -0
  310. package/dist/services/ingest-trace.js +60 -0
  311. package/dist/services/input-sanitizer.d.ts +41 -0
  312. package/dist/services/input-sanitizer.js +135 -0
  313. package/dist/services/iterative-retrieval.d.ts +26 -0
  314. package/dist/services/iterative-retrieval.js +139 -0
  315. package/dist/services/keyword-expansion.d.ts +10 -0
  316. package/dist/services/keyword-expansion.js +26 -0
  317. package/dist/services/lesson-service.d.ts +68 -0
  318. package/dist/services/lesson-service.js +178 -0
  319. package/dist/services/literal-extractor.d.ts +16 -0
  320. package/dist/services/literal-extractor.js +74 -0
  321. package/dist/services/literal-list-protection.d.ts +17 -0
  322. package/dist/services/literal-list-protection.js +134 -0
  323. package/dist/services/literal-query-expansion.d.ts +20 -0
  324. package/dist/services/literal-query-expansion.js +181 -0
  325. package/dist/services/llm.d.ts +61 -0
  326. package/dist/services/llm.js +265 -0
  327. package/dist/services/memcell-projection.d.ts +17 -0
  328. package/dist/services/memcell-projection.js +41 -0
  329. package/dist/services/memory-audn.d.ts +43 -0
  330. package/dist/services/memory-audn.js +419 -0
  331. package/dist/services/memory-crud.d.ts +93 -0
  332. package/dist/services/memory-crud.js +255 -0
  333. package/dist/services/memory-ingest.d.ts +21 -0
  334. package/dist/services/memory-ingest.js +249 -0
  335. package/dist/services/memory-lifecycle.d.ts +75 -0
  336. package/dist/services/memory-lifecycle.js +108 -0
  337. package/dist/services/memory-lineage.d.ts +181 -0
  338. package/dist/services/memory-lineage.js +232 -0
  339. package/dist/services/memory-network.d.ts +40 -0
  340. package/dist/services/memory-network.js +75 -0
  341. package/dist/services/memory-search-types.d.ts +25 -0
  342. package/dist/services/memory-search-types.js +10 -0
  343. package/dist/services/memory-search.d.ts +48 -0
  344. package/dist/services/memory-search.js +505 -0
  345. package/dist/services/memory-service-types.d.ts +371 -0
  346. package/dist/services/memory-service-types.js +8 -0
  347. package/dist/services/memory-service.d.ts +152 -0
  348. package/dist/services/memory-service.js +225 -0
  349. package/dist/services/memory-storage.d.ts +33 -0
  350. package/dist/services/memory-storage.js +328 -0
  351. package/dist/services/msr-aggregator.d.ts +38 -0
  352. package/dist/services/msr-aggregator.js +97 -0
  353. package/dist/services/msr-detector.d.ts +35 -0
  354. package/dist/services/msr-detector.js +65 -0
  355. package/dist/services/namespace-retrieval.d.ts +60 -0
  356. package/dist/services/namespace-retrieval.js +180 -0
  357. package/dist/services/observation-date-extraction.d.ts +12 -0
  358. package/dist/services/observation-date-extraction.js +50 -0
  359. package/dist/services/observation-service.d.ts +27 -0
  360. package/dist/services/observation-service.js +84 -0
  361. package/dist/services/packaging-observability.d.ts +29 -0
  362. package/dist/services/packaging-observability.js +146 -0
  363. package/dist/services/query-expansion.d.ts +83 -0
  364. package/dist/services/query-expansion.js +242 -0
  365. package/dist/services/query-keyword-matches.d.ts +6 -0
  366. package/dist/services/query-keyword-matches.js +56 -0
  367. package/dist/services/query-term-visibility.d.ts +28 -0
  368. package/dist/services/query-term-visibility.js +100 -0
  369. package/dist/services/quick-extraction.d.ts +25 -0
  370. package/dist/services/quick-extraction.js +431 -0
  371. package/dist/services/quoted-entity-extraction.d.ts +10 -0
  372. package/dist/services/quoted-entity-extraction.js +161 -0
  373. package/dist/services/raw-storage-reconciler-backoff.d.ts +8 -0
  374. package/dist/services/raw-storage-reconciler-backoff.js +14 -0
  375. package/dist/services/raw-storage-reconciler-scheduler.d.ts +29 -0
  376. package/dist/services/raw-storage-reconciler-scheduler.js +43 -0
  377. package/dist/services/raw-storage-reconciler.d.ts +71 -0
  378. package/dist/services/raw-storage-reconciler.js +278 -0
  379. package/dist/services/recap-builder.d.ts +49 -0
  380. package/dist/services/recap-builder.js +157 -0
  381. package/dist/services/reflect-jobs.d.ts +23 -0
  382. package/dist/services/reflect-jobs.js +36 -0
  383. package/dist/services/reflect-prompts.d.ts +71 -0
  384. package/dist/services/reflect-prompts.js +99 -0
  385. package/dist/services/reflect-retrieval.d.ts +33 -0
  386. package/dist/services/reflect-retrieval.js +30 -0
  387. package/dist/services/reflect.d.ts +49 -0
  388. package/dist/services/reflect.js +84 -0
  389. package/dist/services/relative-temporal.d.ts +14 -0
  390. package/dist/services/relative-temporal.js +163 -0
  391. package/dist/services/relevance-policy.d.ts +37 -0
  392. package/dist/services/relevance-policy.js +109 -0
  393. package/dist/services/rerank.d.ts +32 -0
  394. package/dist/services/rerank.js +118 -0
  395. package/dist/services/reranker.d.ts +20 -0
  396. package/dist/services/reranker.js +99 -0
  397. package/dist/services/retrieval-channel-rules.d.ts +34 -0
  398. package/dist/services/retrieval-channel-rules.js +41 -0
  399. package/dist/services/retrieval-config-overlay.d.ts +36 -0
  400. package/dist/services/retrieval-config-overlay.js +44 -0
  401. package/dist/services/retrieval-format.d.ts +119 -0
  402. package/dist/services/retrieval-format.js +559 -0
  403. package/dist/services/retrieval-policy.d.ts +69 -0
  404. package/dist/services/retrieval-policy.js +275 -0
  405. package/dist/services/retrieval-profiles.d.ts +37 -0
  406. package/dist/services/retrieval-profiles.js +90 -0
  407. package/dist/services/retrieval-side-effects.d.ts +14 -0
  408. package/dist/services/retrieval-side-effects.js +26 -0
  409. package/dist/services/retrieval-trace.d.ts +108 -0
  410. package/dist/services/retrieval-trace.js +147 -0
  411. package/dist/services/rrf-fusion.d.ts +18 -0
  412. package/dist/services/rrf-fusion.js +34 -0
  413. package/dist/services/search-pipeline.d.ts +71 -0
  414. package/dist/services/search-pipeline.js +788 -0
  415. package/dist/services/session-date.d.ts +20 -0
  416. package/dist/services/session-date.js +61 -0
  417. package/dist/services/session-packaging.d.ts +53 -0
  418. package/dist/services/session-packaging.js +182 -0
  419. package/dist/services/session-summary-generator.d.ts +53 -0
  420. package/dist/services/session-summary-generator.js +134 -0
  421. package/dist/services/specialists/cr-specialist.d.ts +52 -0
  422. package/dist/services/specialists/cr-specialist.js +121 -0
  423. package/dist/services/specialists/dispatch.d.ts +53 -0
  424. package/dist/services/specialists/dispatch.js +102 -0
  425. package/dist/services/specialists/ie-ku-specialist.d.ts +37 -0
  426. package/dist/services/specialists/ie-ku-specialist.js +63 -0
  427. package/dist/services/specialists/msr-specialist.d.ts +61 -0
  428. package/dist/services/specialists/msr-specialist.js +162 -0
  429. package/dist/services/specialists/tr-specialist.d.ts +37 -0
  430. package/dist/services/specialists/tr-specialist.js +146 -0
  431. package/dist/services/storage-key-prefix.d.ts +42 -0
  432. package/dist/services/storage-key-prefix.js +45 -0
  433. package/dist/services/storage-put-recovery.d.ts +71 -0
  434. package/dist/services/storage-put-recovery.js +269 -0
  435. package/dist/services/storage-service-errors.d.ts +124 -0
  436. package/dist/services/storage-service-errors.js +189 -0
  437. package/dist/services/storage-service.d.ts +176 -0
  438. package/dist/services/storage-service.js +423 -0
  439. package/dist/services/subject-aware-ranking.d.ts +19 -0
  440. package/dist/services/subject-aware-ranking.js +161 -0
  441. package/dist/services/supplemental-extraction.d.ts +7 -0
  442. package/dist/services/supplemental-extraction.js +116 -0
  443. package/dist/services/tbc-execution.d.ts +49 -0
  444. package/dist/services/tbc-execution.js +284 -0
  445. package/dist/services/temporal-classifier.d.ts +56 -0
  446. package/dist/services/temporal-classifier.js +94 -0
  447. package/dist/services/temporal-endpoint-evidence.d.ts +12 -0
  448. package/dist/services/temporal-endpoint-evidence.js +313 -0
  449. package/dist/services/temporal-fingerprint.d.ts +6 -0
  450. package/dist/services/temporal-fingerprint.js +12 -0
  451. package/dist/services/temporal-format.d.ts +9 -0
  452. package/dist/services/temporal-format.js +21 -0
  453. package/dist/services/temporal-intent.d.ts +39 -0
  454. package/dist/services/temporal-intent.js +78 -0
  455. package/dist/services/temporal-query-constraints.d.ts +16 -0
  456. package/dist/services/temporal-query-constraints.js +107 -0
  457. package/dist/services/temporal-query-expansion.d.ts +14 -0
  458. package/dist/services/temporal-query-expansion.js +131 -0
  459. package/dist/services/temporal-rerank.d.ts +22 -0
  460. package/dist/services/temporal-rerank.js +47 -0
  461. package/dist/services/temporal-result-protection.d.ts +7 -0
  462. package/dist/services/temporal-result-protection.js +60 -0
  463. package/dist/services/temporal-state-write.d.ts +57 -0
  464. package/dist/services/temporal-state-write.js +45 -0
  465. package/dist/services/tiered-context.d.ts +87 -0
  466. package/dist/services/tiered-context.js +214 -0
  467. package/dist/services/tiered-loading.d.ts +88 -0
  468. package/dist/services/tiered-loading.js +263 -0
  469. package/dist/services/timeline-pack.d.ts +36 -0
  470. package/dist/services/timeline-pack.js +50 -0
  471. package/dist/services/timing.d.ts +13 -0
  472. package/dist/services/timing.js +72 -0
  473. package/dist/services/tll-augmentation.d.ts +20 -0
  474. package/dist/services/tll-augmentation.js +125 -0
  475. package/dist/services/tll-retrieval.d.ts +55 -0
  476. package/dist/services/tll-retrieval.js +101 -0
  477. package/dist/services/topic-abstraction.d.ts +36 -0
  478. package/dist/services/topic-abstraction.js +105 -0
  479. package/dist/services/trust-scoring.d.ts +43 -0
  480. package/dist/services/trust-scoring.js +89 -0
  481. package/dist/services/typed-belief-calculus.d.ts +126 -0
  482. package/dist/services/typed-belief-calculus.js +204 -0
  483. package/dist/services/upload-config.d.ts +34 -0
  484. package/dist/services/upload-config.js +23 -0
  485. package/dist/services/upload-decision.d.ts +65 -0
  486. package/dist/services/upload-decision.js +98 -0
  487. package/dist/services/upload-helpers.d.ts +107 -0
  488. package/dist/services/upload-helpers.js +148 -0
  489. package/dist/services/user-profile-builder.d.ts +22 -0
  490. package/dist/services/user-profile-builder.js +109 -0
  491. package/dist/services/voyage-embedding.d.ts +22 -0
  492. package/dist/services/voyage-embedding.js +77 -0
  493. package/dist/services/write-security.d.ts +31 -0
  494. package/dist/services/write-security.js +64 -0
  495. package/dist/storage/artifact-public-redaction.d.ts +34 -0
  496. package/dist/storage/artifact-public-redaction.js +83 -0
  497. package/dist/storage/cleanup.d.ts +103 -0
  498. package/dist/storage/cleanup.js +138 -0
  499. package/dist/storage/codec-factory.d.ts +17 -0
  500. package/dist/storage/codec-factory.js +33 -0
  501. package/dist/storage/codecs/aes-gcm-codec.d.ts +44 -0
  502. package/dist/storage/codecs/aes-gcm-codec.js +108 -0
  503. package/dist/storage/codecs/noop-codec.d.ts +16 -0
  504. package/dist/storage/codecs/noop-codec.js +23 -0
  505. package/dist/storage/factory.d.ts +44 -0
  506. package/dist/storage/factory.js +99 -0
  507. package/dist/storage/filecoin-cid-validation.d.ts +82 -0
  508. package/dist/storage/filecoin-cid-validation.js +122 -0
  509. package/dist/storage/filecoin-public-metadata.d.ts +73 -0
  510. package/dist/storage/filecoin-public-metadata.js +110 -0
  511. package/dist/storage/local-fs-store.d.ts +39 -0
  512. package/dist/storage/local-fs-store.js +145 -0
  513. package/dist/storage/pointer-uri-allowlist.d.ts +38 -0
  514. package/dist/storage/pointer-uri-allowlist.js +70 -0
  515. package/dist/storage/provider-metadata-projection.d.ts +27 -0
  516. package/dist/storage/provider-metadata-projection.js +68 -0
  517. package/dist/storage/providers/filecoin/backend.d.ts +42 -0
  518. package/dist/storage/providers/filecoin/backend.js +250 -0
  519. package/dist/storage/providers/filecoin/config.d.ts +70 -0
  520. package/dist/storage/providers/filecoin/config.js +275 -0
  521. package/dist/storage/providers/filecoin/errors.d.ts +45 -0
  522. package/dist/storage/providers/filecoin/errors.js +56 -0
  523. package/dist/storage/providers/filecoin/filecoin-pin-car.d.ts +78 -0
  524. package/dist/storage/providers/filecoin/filecoin-pin-car.js +155 -0
  525. package/dist/storage/providers/filecoin/filecoin-pin-client.d.ts +92 -0
  526. package/dist/storage/providers/filecoin/filecoin-pin-client.js +199 -0
  527. package/dist/storage/providers/filecoin/filecoin-pin-mapping.d.ts +58 -0
  528. package/dist/storage/providers/filecoin/filecoin-pin-mapping.js +103 -0
  529. package/dist/storage/providers/filecoin/filecoin-pin-timeout.d.ts +30 -0
  530. package/dist/storage/providers/filecoin/filecoin-pin-timeout.js +53 -0
  531. package/dist/storage/providers/filecoin/filecoin-pin-vendor.d.ts +111 -0
  532. package/dist/storage/providers/filecoin/filecoin-pin-vendor.js +87 -0
  533. package/dist/storage/providers/filecoin/hints.d.ts +71 -0
  534. package/dist/storage/providers/filecoin/hints.js +123 -0
  535. package/dist/storage/providers/filecoin/index.d.ts +51 -0
  536. package/dist/storage/providers/filecoin/index.js +103 -0
  537. package/dist/storage/providers/filecoin/ipfs-cid.d.ts +50 -0
  538. package/dist/storage/providers/filecoin/ipfs-cid.js +64 -0
  539. package/dist/storage/providers/filecoin/metadata.d.ts +72 -0
  540. package/dist/storage/providers/filecoin/metadata.js +137 -0
  541. package/dist/storage/providers/filecoin/piece-cid.d.ts +48 -0
  542. package/dist/storage/providers/filecoin/piece-cid.js +57 -0
  543. package/dist/storage/providers/filecoin/provider-client.d.ts +234 -0
  544. package/dist/storage/providers/filecoin/provider-client.js +27 -0
  545. package/dist/storage/providers/filecoin/readiness.d.ts +62 -0
  546. package/dist/storage/providers/filecoin/readiness.js +85 -0
  547. package/dist/storage/providers/filecoin/retriever.d.ts +82 -0
  548. package/dist/storage/providers/filecoin/retriever.js +63 -0
  549. package/dist/storage/providers/filecoin/skeleton-client.d.ts +36 -0
  550. package/dist/storage/providers/filecoin/skeleton-client.js +55 -0
  551. package/dist/storage/providers/filecoin/synapse-client.d.ts +169 -0
  552. package/dist/storage/providers/filecoin/synapse-client.js +343 -0
  553. package/dist/storage/providers/filecoin/synapse-construction.d.ts +26 -0
  554. package/dist/storage/providers/filecoin/synapse-construction.js +47 -0
  555. package/dist/storage/providers/filecoin/synapse-error-mapping.d.ts +23 -0
  556. package/dist/storage/providers/filecoin/synapse-error-mapping.js +49 -0
  557. package/dist/storage/providers/filecoin/synapse-readiness.d.ts +37 -0
  558. package/dist/storage/providers/filecoin/synapse-readiness.js +231 -0
  559. package/dist/storage/providers/filecoin/uri.d.ts +49 -0
  560. package/dist/storage/providers/filecoin/uri.js +84 -0
  561. package/dist/storage/providers/filecoin/verified-fetch-lifecycle.d.ts +77 -0
  562. package/dist/storage/providers/filecoin/verified-fetch-lifecycle.js +196 -0
  563. package/dist/storage/providers/filecoin/verified-fetch-retriever.d.ts +54 -0
  564. package/dist/storage/providers/filecoin/verified-fetch-retriever.js +81 -0
  565. package/dist/storage/providers/filecoin/verified-fetch-vendor.d.ts +71 -0
  566. package/dist/storage/providers/filecoin/verified-fetch-vendor.js +94 -0
  567. package/dist/storage/raw-content-codec.d.ts +89 -0
  568. package/dist/storage/raw-content-codec.js +47 -0
  569. package/dist/storage/raw-content-store-backend-adapter.d.ts +28 -0
  570. package/dist/storage/raw-content-store-backend-adapter.js +67 -0
  571. package/dist/storage/raw-content-store.d.ts +228 -0
  572. package/dist/storage/raw-content-store.js +27 -0
  573. package/dist/storage/s3-store.d.ts +42 -0
  574. package/dist/storage/s3-store.js +181 -0
  575. package/dist/storage/storage-backend-registry.d.ts +58 -0
  576. package/dist/storage/storage-backend-registry.js +56 -0
  577. package/dist/storage/storage-backend.d.ts +82 -0
  578. package/dist/storage/storage-backend.js +14 -0
  579. package/dist/storage/storage-capabilities.d.ts +56 -0
  580. package/dist/storage/storage-capabilities.js +170 -0
  581. package/dist/storage/store-registry.d.ts +67 -0
  582. package/dist/storage/store-registry.js +77 -0
  583. package/dist/vector-math.d.ts +15 -0
  584. package/dist/vector-math.js +31 -0
  585. package/dist/xml-escape.d.ts +5 -0
  586. package/dist/xml-escape.js +7 -0
  587. package/openapi.json +15395 -0
  588. package/openapi.yaml +10794 -0
  589. package/package.json +119 -0
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Domain-facing store interfaces for Phase 5.
3
+ *
4
+ * Each interface exposes only the methods its domain consumers need.
5
+ * Implementations delegate to the existing split repository modules
6
+ * (repository-read.ts, repository-write.ts, repository-links.ts, etc.).
7
+ *
8
+ * For ClaimStore, EntityStore, and LessonStore, the existing repository
9
+ * classes already serve as implementations — these interfaces are extracted
10
+ * from their public surfaces.
11
+ */
12
+ import type pg from 'pg';
13
+ import type { EntityAttributesRepository } from './repository-entity-attributes.js';
14
+ import type { EntityValuesRepository } from './entity-values-repository.js';
15
+ import type { EntityCardsRepository } from './entity-cards-repository.js';
16
+ import type { ContradictionsRepository } from './contradictions-repository.js';
17
+ import type { BeliefEdgesRepository } from './belief-edges-repository.js';
18
+ import type { AgentScope, AtomicFactRow, CanonicalMemoryObjectLineage, ForesightRow, MemoryRow, SearchResult, EpisodeRow, StoreMemoryInput } from './repository-types.js';
19
+ import type { CandidateRow } from './repository-vector-search.js';
20
+ /** A topic-similarity candidate row returned by findTopicCandidates. */
21
+ export interface TopicCandidateRow extends CandidateRow {
22
+ topic_abstraction: string;
23
+ }
24
+ /** Recap-layer store (Sprint 3 v1). Cross-session synthesis. */
25
+ export interface RecapStore {
26
+ findUnconsolidatedClusters(userId: string, minSize: number, pivot?: 'topic' | 'session'): Promise<{
27
+ topic: string;
28
+ member_ids: string[];
29
+ member_contents: string[];
30
+ time_range_start: Date | null;
31
+ time_range_end: Date | null;
32
+ }[]>;
33
+ storeRecap(input: {
34
+ userId: string;
35
+ recapText: string;
36
+ recapEmbedding: number[];
37
+ topic: string;
38
+ memberMemoryIds: string[];
39
+ timeRangeStart: Date | null;
40
+ timeRangeEnd: Date | null;
41
+ }): Promise<string>;
42
+ findRecapCandidates(userId: string, queryEmbedding: number[], limit: number): Promise<{
43
+ id: string;
44
+ user_id: string;
45
+ recap_text: string;
46
+ recap_embedding: number[];
47
+ topic: string;
48
+ member_count: number;
49
+ similarity: number;
50
+ }[]>;
51
+ }
52
+ import type { StoreAtomicFactInput, StoreForesightInput } from './repository-representations.js';
53
+ import type { MemoryLink } from './repository-links.js';
54
+ import type { SummariesRepository } from './summaries-repository.js';
55
+ import type { ManagedBlobRefRow } from './raw-document-blob-repository.js';
56
+ export type { StoreMemoryInput };
57
+ export interface MemoryStore {
58
+ storeMemory(input: StoreMemoryInput): Promise<string>;
59
+ getMemory(id: string, userId?: string): Promise<MemoryRow | null>;
60
+ getMemoryIncludingDeleted(id: string, userId?: string): Promise<MemoryRow | null>;
61
+ listMemories(userId: string, limit?: number, offset?: number, sourceSite?: string, episodeId?: string): Promise<MemoryRow[]>;
62
+ softDeleteMemory(userId: string, id: string): Promise<void>;
63
+ updateMemoryContent(userId: string, id: string, content: string, embedding: number[], importance: number, keywords?: string, trustScore?: number): Promise<void>;
64
+ updateMemoryMetadata(userId: string, id: string, metadata: Record<string, unknown>): Promise<void>;
65
+ expireMemory(userId: string, id: string): Promise<void>;
66
+ touchMemory(id: string): Promise<void>;
67
+ countMemories(userId?: string): Promise<number>;
68
+ getMemoryStats(userId: string): Promise<{
69
+ count: number;
70
+ avgImportance: number;
71
+ sourceDistribution: Record<string, number>;
72
+ }>;
73
+ deleteBySource(userId: string, sourceSite: string): Promise<{
74
+ deletedMemories: number;
75
+ deletedEpisodes: number;
76
+ deletedDocuments: number;
77
+ /** Managed-blob refs the caller hands to `cleanupManagedBlobs()`
78
+ * after the DB tx commits. Each ref carries `rawDocumentId` so
79
+ * the cleanup loop can sync the paired artifact by id. */
80
+ blobs: ManagedBlobRefRow[];
81
+ }>;
82
+ deleteAll(userId?: string): Promise<void>;
83
+ backdateMemories(ids: string[], timestamp: Date): Promise<void>;
84
+ updateOpinionConfidence(userId: string, memoryId: string, newConfidence: number): Promise<void>;
85
+ countNeedsClarification(userId: string): Promise<number>;
86
+ storeCanonicalMemoryObject(input: {
87
+ userId: string;
88
+ objectFamily: 'ingested_fact';
89
+ payloadFormat?: string;
90
+ canonicalPayload: {
91
+ factText: string;
92
+ factType: string;
93
+ headline: string;
94
+ keywords: string[];
95
+ };
96
+ provenance: {
97
+ episodeId: string | null;
98
+ sourceSite: string;
99
+ sourceUrl: string;
100
+ };
101
+ observedAt?: Date;
102
+ lineage: CanonicalMemoryObjectLineage;
103
+ }): Promise<string>;
104
+ getMemoryInWorkspace(id: string, workspaceId: string, callerAgentId?: string): Promise<MemoryRow | null>;
105
+ listMemoriesInWorkspace(workspaceId: string, limit?: number, offset?: number, callerAgentId?: string): Promise<MemoryRow[]>;
106
+ softDeleteMemoryInWorkspace(id: string, workspaceId: string): Promise<void>;
107
+ }
108
+ export interface EpisodeStore {
109
+ storeEpisode(input: {
110
+ userId: string;
111
+ content: string;
112
+ sourceSite: string;
113
+ sourceUrl?: string;
114
+ sessionId?: string;
115
+ workspaceId?: string;
116
+ agentId?: string;
117
+ }): Promise<string>;
118
+ getEpisode(id: string): Promise<EpisodeRow | null>;
119
+ }
120
+ export interface SearchStore {
121
+ searchSimilar(userId: string, queryEmbedding: number[], limit: number, sourceSite?: string, referenceTime?: Date): Promise<SearchResult[]>;
122
+ searchHybrid(userId: string, queryText: string, queryEmbedding: number[], limit: number, sourceSite?: string, referenceTime?: Date): Promise<SearchResult[]>;
123
+ searchKeyword(userId: string, queryText: string, limit: number, sourceSite?: string): Promise<SearchResult[]>;
124
+ searchAtomicFactsHybrid(userId: string, queryText: string, queryEmbedding: number[], limit: number, sourceSite?: string, referenceTime?: Date): Promise<SearchResult[]>;
125
+ findNearDuplicates(userId: string, embedding: number[], threshold: number, limit?: number): Promise<CandidateRow[]>;
126
+ findKeywordCandidates(userId: string, keywords: string[], limit?: number, includeExpired?: boolean): Promise<CandidateRow[]>;
127
+ findTopicCandidates(userId: string, queryEmbedding: number[], limit: number): Promise<TopicCandidateRow[]>;
128
+ findTemporalNeighbors(userId: string, anchorTimestamps: Date[], queryEmbedding: number[], windowMinutes: number, excludeIds: Set<string>, limit: number, referenceTime?: Date): Promise<SearchResult[]>;
129
+ fetchMemoriesByIds(userId: string, ids: string[], queryEmbedding: number[], referenceTime?: Date, includeExpired?: boolean): Promise<SearchResult[]>;
130
+ searchSimilarInWorkspace(workspaceId: string, queryEmbedding: number[], limit: number, agentScope?: AgentScope, callerAgentId?: string, referenceTime?: Date): Promise<SearchResult[]>;
131
+ findNearDuplicatesInWorkspace(workspaceId: string, embedding: number[], threshold: number, limit?: number, agentScope?: AgentScope, callerAgentId?: string): Promise<CandidateRow[]>;
132
+ }
133
+ export interface SemanticLinkStore {
134
+ createLinks(links: MemoryLink[]): Promise<number>;
135
+ findLinkCandidates(userId: string, embedding: number[], threshold: number, excludeId: string, limit?: number): Promise<Array<{
136
+ id: string;
137
+ similarity: number;
138
+ }>>;
139
+ findLinkedMemoryIds(memoryIds: string[], excludeIds: Set<string>, limit: number): Promise<string[]>;
140
+ countLinks(): Promise<number>;
141
+ }
142
+ export interface RepresentationStore {
143
+ storeAtomicFacts(facts: StoreAtomicFactInput[]): Promise<string[]>;
144
+ storeForesight(entries: StoreForesightInput[]): Promise<string[]>;
145
+ listAtomicFactsForMemory(userId: string, parentMemoryId: string): Promise<AtomicFactRow[]>;
146
+ listForesightForMemory(userId: string, parentMemoryId: string): Promise<ForesightRow[]>;
147
+ replaceAtomicFactsForMemory(userId: string, parentMemoryId: string, facts: StoreAtomicFactInput[]): Promise<string[]>;
148
+ replaceForesightForMemory(userId: string, parentMemoryId: string, entries: StoreForesightInput[]): Promise<string[]>;
149
+ }
150
+ export type ClaimStore = Pick<import('./repository-claims.js').ClaimRepository, 'addEvidence' | 'createClaim' | 'createClaimVersion' | 'createUpdateVersion' | 'findClaimByMemoryId' | 'getActiveClaimTargetBySlot' | 'getClaimVersionByMemoryId' | 'getRecentMutations' | 'getReversalChain' | 'getUserMutationSummary' | 'invalidateClaim' | 'listClaimsMissingSlots' | 'searchClaimVersions' | 'setClaimCurrentVersion' | 'supersedeClaimVersion' | 'updateClaimSlot' | 'deleteAll'>;
151
+ export type EntityStore = Pick<import('./repository-entities.js').EntityRepository, 'resolveEntity' | 'linkMemoryToEntity' | 'getEntitiesForMemory' | 'getEntity' | 'searchEntities' | 'findEntitiesByName' | 'findMemoryIdsByEntities' | 'findRelatedEntityIds' | 'findDeterministicEntity' | 'getRelationsForMemory' | 'upsertRelation' | 'countEntities'>;
152
+ export type LessonStore = Pick<import('./repository-lessons.js').LessonRepository, 'createLesson' | 'findSimilarLessons' | 'getLessonsByUser' | 'getLessonsByType' | 'deactivateLesson' | 'countActiveLessons' | 'deleteAll'>;
153
+ export interface CoreStores {
154
+ memory: MemoryStore;
155
+ episode: EpisodeStore;
156
+ /** Recap layer (Sprint 3 v1). Optional/null disables Recap features. */
157
+ recap: RecapStore | null;
158
+ search: SearchStore;
159
+ link: SemanticLinkStore;
160
+ representation: RepresentationStore;
161
+ claim: ClaimStore;
162
+ entity: EntityStore | null;
163
+ /** Entity-attribute index (EAI). Null when entityAttributesEnabled is off. */
164
+ entityAttributes: EntityAttributesRepository | null;
165
+ lesson: LessonStore | null;
166
+ /**
167
+ * Hierarchical retrieval summaries (TBC sprint). Null when
168
+ * `hierarchicalRetrievalEnabled` is off — gates the 5th RRF arm
169
+ * in search-pipeline.
170
+ */
171
+ summaries: SummariesRepository | null;
172
+ /**
173
+ * User-profile store (Sprint 3 v1.5 — H2). Null when
174
+ * `userProfileChannelEnabled` is off.
175
+ */
176
+ userProfile: import('./repository-user-profiles.js').UserProfileRepository | null;
177
+ /**
178
+ * Reflection retrieval store (BEAM-0.85 Phase 1, Task 1.9). Null when
179
+ * `reflectEnabled` is off — the reflect-retrieval helper short-circuits
180
+ * on the disabled flag so callers always pass the store through.
181
+ */
182
+ reflections: import('./reflections-repository.js').ReflectionsRepository | null;
183
+ /**
184
+ * Reflection job queue (BEAM-0.85 Phase 1, Task 1.12). Null when
185
+ * `reflectEnabled` is off.
186
+ */
187
+ reflectionJobs: import('./reflection-jobs-repository.js').ReflectionJobsRepository | null;
188
+ /**
189
+ * Belief-edges repository for the CR bilateral-contradiction specialist
190
+ * (BEAM-0.85 Phase 2). Null when `tbcEnabled` is off — the CR specialist
191
+ * dispatcher short-circuits when the repo is absent.
192
+ */
193
+ beliefEdges: BeliefEdgesRepository | null;
194
+ /**
195
+ * Entity-values store for the IE/KU literal-value specialist (BEAM-0.85
196
+ * Phase 2). Null when `phase2SpecialistsEnabled` is off — the specialist
197
+ * dispatcher short-circuits when the repo is absent.
198
+ */
199
+ entityValues: EntityValuesRepository | null;
200
+ /**
201
+ * Entity-cards store for the always-on ENTITY_CARD channel (BEAM-0.85 —
202
+ * Honcho parity). Null when `entityCardEnabled` is off. When present, the
203
+ * search pipeline reads cards by (userId, conversationId) and injects
204
+ * them as `## ENTITY_STATE` at the top of every answer-LLM prompt.
205
+ */
206
+ entityCards: EntityCardsRepository | null;
207
+ /**
208
+ * Contradictions store for AUDN bilateral preservation (BEAM CR fix).
209
+ * Null when `contradictionPreservationEnabled` is off. When present,
210
+ * AUDN's DELETE/SUPERSEDE path keeps both memories and records the pair
211
+ * here instead of discarding the older side.
212
+ */
213
+ contradictions: ContradictionsRepository | null;
214
+ /**
215
+ * Raw pool access for call sites that still need it (PPR, deferred-audn
216
+ * reconciliation, link generation). Will be removed when those paths
217
+ * move behind dedicated store methods.
218
+ */
219
+ pool: pg.Pool;
220
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Domain-facing store interfaces for Phase 5.
3
+ *
4
+ * Each interface exposes only the methods its domain consumers need.
5
+ * Implementations delegate to the existing split repository modules
6
+ * (repository-read.ts, repository-write.ts, repository-links.ts, etc.).
7
+ *
8
+ * For ClaimStore, EntityStore, and LessonStore, the existing repository
9
+ * classes already serve as implementations — these interfaces are extracted
10
+ * from their public surfaces.
11
+ */
12
+ export {};
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Repository for hierarchical-retrieval session + conversation summaries.
3
+ * Schema lives in src/db/schema.sql under "Hierarchical Retrieval" section.
4
+ * Activated only when `HIERARCHICAL_RETRIEVAL_ENABLED=true`; see
5
+ * docs/hierarchical-retrieval.md.
6
+ *
7
+ * Reads use pgvector cosine distance (`embedding <=> $1`) returning
8
+ * `1 - distance` as similarity. The `pgvector` package converts JS
9
+ * arrays to the SQL vector literal at call time.
10
+ */
11
+ import pg from 'pg';
12
+ export interface AppendSessionSummaryInput {
13
+ userId: string;
14
+ sessionId: string;
15
+ conversationId: string;
16
+ sessionIndex: number;
17
+ summaryText: string;
18
+ summaryEmbedding: number[];
19
+ topics: string[];
20
+ factCount: number;
21
+ occurredStart?: Date | null;
22
+ occurredEnd?: Date | null;
23
+ workspaceId?: string | null;
24
+ agentId?: string | null;
25
+ }
26
+ export interface AppendConvSummaryInput {
27
+ userId: string;
28
+ conversationId: string;
29
+ summaryText: string;
30
+ summaryEmbedding: number[];
31
+ sessionCount: number;
32
+ factCount: number;
33
+ occurredStart?: Date | null;
34
+ occurredEnd?: Date | null;
35
+ workspaceId?: string | null;
36
+ agentId?: string | null;
37
+ }
38
+ export interface ConvSummaryHit {
39
+ id: string;
40
+ conversationId: string;
41
+ similarity: number;
42
+ summaryText: string;
43
+ }
44
+ export interface SessionSummaryHit {
45
+ id: string;
46
+ sessionId: string;
47
+ conversationId: string;
48
+ sessionIndex: number;
49
+ similarity: number;
50
+ summaryText: string;
51
+ }
52
+ export declare class SummariesRepository {
53
+ private readonly pool;
54
+ constructor(pool: pg.Pool);
55
+ /** Insert a session summary; returns the new row id. */
56
+ appendSessionSummary(input: AppendSessionSummaryInput): Promise<string>;
57
+ /** Insert a conversation summary; returns the new row id. */
58
+ appendConvSummary(input: AppendConvSummaryInput): Promise<string>;
59
+ /** Stage 1: top-K conversation summaries by query-embedding similarity. */
60
+ searchTopConvSummaries(userId: string, queryEmbedding: number[], topK: number): Promise<ConvSummaryHit[]>;
61
+ /**
62
+ * Stage 2: top-K session summaries by query-embedding similarity, filtered
63
+ * to a set of conversation IDs (typically the matches from stage 1).
64
+ */
65
+ searchTopSessionSummaries(userId: string, conversationIds: string[], queryEmbedding: number[], topK: number): Promise<SessionSummaryHit[]>;
66
+ /**
67
+ * Stage 3: expand from a set of session_ids to atomic-memory ids by
68
+ * joining through episodes. The 5th RRF arm hands these ids to the
69
+ * existing rank pipeline.
70
+ */
71
+ getMemoryIdsForSessions(userId: string, sessionIds: string[], limit: number): Promise<string[]>;
72
+ /** Test/dev helper. */
73
+ deleteAllForUser(userId: string): Promise<void>;
74
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Repository for hierarchical-retrieval session + conversation summaries.
3
+ * Schema lives in src/db/schema.sql under "Hierarchical Retrieval" section.
4
+ * Activated only when `HIERARCHICAL_RETRIEVAL_ENABLED=true`; see
5
+ * docs/hierarchical-retrieval.md.
6
+ *
7
+ * Reads use pgvector cosine distance (`embedding <=> $1`) returning
8
+ * `1 - distance` as similarity. The `pgvector` package converts JS
9
+ * arrays to the SQL vector literal at call time.
10
+ */
11
+ export class SummariesRepository {
12
+ pool;
13
+ constructor(pool) {
14
+ this.pool = pool;
15
+ }
16
+ /** Insert a session summary; returns the new row id. */
17
+ async appendSessionSummary(input) {
18
+ const pgvector = await import('pgvector/pg');
19
+ const result = await this.pool.query(`INSERT INTO session_summaries
20
+ (user_id, session_id, conversation_id, session_index, summary_text,
21
+ summary_embedding, topics, fact_count, occurred_start, occurred_end,
22
+ workspace_id, agent_id)
23
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)
24
+ RETURNING id`, [
25
+ input.userId,
26
+ input.sessionId,
27
+ input.conversationId,
28
+ input.sessionIndex,
29
+ input.summaryText,
30
+ pgvector.default.toSql(input.summaryEmbedding),
31
+ input.topics,
32
+ input.factCount,
33
+ input.occurredStart ?? null,
34
+ input.occurredEnd ?? null,
35
+ input.workspaceId ?? null,
36
+ input.agentId ?? null,
37
+ ]);
38
+ return result.rows[0]?.id ?? '';
39
+ }
40
+ /** Insert a conversation summary; returns the new row id. */
41
+ async appendConvSummary(input) {
42
+ const pgvector = await import('pgvector/pg');
43
+ const result = await this.pool.query(`INSERT INTO conv_summaries
44
+ (user_id, conversation_id, summary_text, summary_embedding,
45
+ session_count, fact_count, occurred_start, occurred_end,
46
+ workspace_id, agent_id)
47
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
48
+ RETURNING id`, [
49
+ input.userId,
50
+ input.conversationId,
51
+ input.summaryText,
52
+ pgvector.default.toSql(input.summaryEmbedding),
53
+ input.sessionCount,
54
+ input.factCount,
55
+ input.occurredStart ?? null,
56
+ input.occurredEnd ?? null,
57
+ input.workspaceId ?? null,
58
+ input.agentId ?? null,
59
+ ]);
60
+ return result.rows[0]?.id ?? '';
61
+ }
62
+ /** Stage 1: top-K conversation summaries by query-embedding similarity. */
63
+ async searchTopConvSummaries(userId, queryEmbedding, topK) {
64
+ const pgvector = await import('pgvector/pg');
65
+ const result = await this.pool.query(`SELECT id, conversation_id, summary_text,
66
+ 1 - (summary_embedding <=> $1) AS similarity
67
+ FROM conv_summaries
68
+ WHERE user_id = $2
69
+ ORDER BY summary_embedding <=> $1
70
+ LIMIT $3`, [pgvector.default.toSql(queryEmbedding), userId, topK]);
71
+ return result.rows.map((row) => ({
72
+ id: row.id,
73
+ conversationId: row.conversation_id,
74
+ similarity: Number(row.similarity),
75
+ summaryText: row.summary_text,
76
+ }));
77
+ }
78
+ /**
79
+ * Stage 2: top-K session summaries by query-embedding similarity, filtered
80
+ * to a set of conversation IDs (typically the matches from stage 1).
81
+ */
82
+ async searchTopSessionSummaries(userId, conversationIds, queryEmbedding, topK) {
83
+ if (conversationIds.length === 0)
84
+ return [];
85
+ const pgvector = await import('pgvector/pg');
86
+ const result = await this.pool.query(`SELECT id, session_id, conversation_id, session_index, summary_text,
87
+ 1 - (summary_embedding <=> $1) AS similarity
88
+ FROM session_summaries
89
+ WHERE user_id = $2 AND conversation_id = ANY($3::text[])
90
+ ORDER BY summary_embedding <=> $1
91
+ LIMIT $4`, [pgvector.default.toSql(queryEmbedding), userId, conversationIds, topK]);
92
+ return result.rows.map((row) => ({
93
+ id: row.id,
94
+ sessionId: row.session_id,
95
+ conversationId: row.conversation_id,
96
+ sessionIndex: row.session_index,
97
+ similarity: Number(row.similarity),
98
+ summaryText: row.summary_text,
99
+ }));
100
+ }
101
+ /**
102
+ * Stage 3: expand from a set of session_ids to atomic-memory ids by
103
+ * joining through episodes. The 5th RRF arm hands these ids to the
104
+ * existing rank pipeline.
105
+ */
106
+ async getMemoryIdsForSessions(userId, sessionIds, limit) {
107
+ if (sessionIds.length === 0)
108
+ return [];
109
+ const result = await this.pool.query(`SELECT m.id
110
+ FROM memories m
111
+ JOIN episodes e ON m.episode_id = e.id
112
+ WHERE m.user_id = $1
113
+ AND e.session_id = ANY($2::text[])
114
+ AND m.deleted_at IS NULL
115
+ AND m.expired_at IS NULL
116
+ ORDER BY m.created_at DESC
117
+ LIMIT $3`, [userId, sessionIds, limit]);
118
+ return result.rows.map((r) => r.id);
119
+ }
120
+ /** Test/dev helper. */
121
+ async deleteAllForUser(userId) {
122
+ await this.pool.query(`DELETE FROM session_summaries WHERE user_id = $1`, [userId]);
123
+ await this.pool.query(`DELETE FROM conv_summaries WHERE user_id = $1`, [userId]);
124
+ }
125
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * BEAM-10M dataset loader (T3.1 scaffold).
3
+ *
4
+ * Source: HuggingFace `Mohammadta/BEAM-10M` (200 questions / 10 conversations).
5
+ * The 10M tier averages ~1.4M tokens of conversation context per system —
6
+ * the highest-difficulty BEAM tier and the SOTA target for this sprint.
7
+ *
8
+ * This loader is a *stub*: it returns the typed shape for tests and the
9
+ * smoke design without invoking the HuggingFace API. Real loading lives
10
+ * in `atomicmemory-benchmarks/atomicbench/src/eval/` once the loader is
11
+ * promoted out of the worktree.
12
+ */
13
+ /** A single ingest-time message in a session. */
14
+ export interface Beam10MMessage {
15
+ role: 'user' | 'assistant';
16
+ content: string;
17
+ /** ISO timestamp anchoring the turn for temporal queries. */
18
+ timestamp: string;
19
+ }
20
+ /** One session = one chunked conversation segment with shared time anchor. */
21
+ export interface Beam10MSession {
22
+ /** Stable session id used as both ingest scope and summary key. */
23
+ sessionId: string;
24
+ /** 0-based position within the parent conversation. */
25
+ sessionIndex: number;
26
+ /** ISO date the session started (for temporal RRF arm). */
27
+ startedAt: string;
28
+ /** Ordered messages in this session. */
29
+ messages: Beam10MMessage[];
30
+ }
31
+ /** A BEAM probing question — same shape across all tiers. */
32
+ export interface Beam10MQuestion {
33
+ /** Stable id (e.g. `c1-q3-KU`). */
34
+ id: string;
35
+ /** BEAM ability category; one of the 10 standard codes. */
36
+ ability: 'ABS' | 'CR' | 'EO' | 'IE' | 'IF' | 'KU' | 'MSR' | 'PF' | 'SUM' | 'TR';
37
+ /** Question text. */
38
+ question: string;
39
+ /** Ground-truth answer / rubric anchor — used by the judge. */
40
+ ideal: string;
41
+ /** Optional per-rubric criteria the judge scores. */
42
+ rubric: string[];
43
+ }
44
+ /** One conversation = many sessions + a fixed set of probing questions. */
45
+ export interface Beam10MConversation {
46
+ /** 1-based conversation id (matches Mem0's published numbering). */
47
+ conversationId: number;
48
+ /** Ordered sessions; ingest happens session-by-session. */
49
+ sessions: Beam10MSession[];
50
+ /** 20 probing questions per conversation × 10 conversations = 200 total. */
51
+ questions: Beam10MQuestion[];
52
+ /** Approximate total tokens of conversation transcript (≈ 1.4M for 10M tier). */
53
+ approxTokens: number;
54
+ }
55
+ /** The full BEAM-10M dataset as returned by the loader. */
56
+ export interface Beam10MDataset {
57
+ schemaVersion: 'beam-10m.v1';
58
+ /** Tier identifier. */
59
+ tier: '10M';
60
+ conversations: Beam10MConversation[];
61
+ /** Total question count across all conversations (200 in the canonical set). */
62
+ totalQuestions: number;
63
+ }
64
+ export interface LoadBeam10MOptions {
65
+ /** Limit to first N questions per conversation (for smoke / cost control). */
66
+ sliceSize?: number;
67
+ /** Restrict to specific conversation ids (e.g. [1] for conv-1 smoke). */
68
+ conversationIds?: number[];
69
+ }
70
+ /**
71
+ * Load the BEAM-10M dataset. If the normalized JSON cache produced by
72
+ * `atomicmemory-benchmarks/data/beam-10m/preprocess.py` exists at the
73
+ * resolved path, parses it and returns the real dataset. Otherwise falls
74
+ * back to a deterministic stub fixture matching the canonical
75
+ * 10-conversation × 20-question shape, so tests and cost-estimator code
76
+ * keep working without the ~344 MB parquet shards on disk.
77
+ */
78
+ export declare function loadBeam10MDataset(opts?: LoadBeam10MOptions): Promise<Beam10MDataset>;
79
+ /**
80
+ * Cost projection for a given dataset slice. Used by the smoke plan to
81
+ * estimate per-seed cost before committing the full multirun budget.
82
+ *
83
+ * Cost components per system per question:
84
+ * - ingest (one-time): ~$0.002/fact × ~150 facts/conv = $0.30/conv
85
+ * - summary generation (hierarchical only): ~$0.001/session × 50 sessions = $0.05/conv
86
+ * - search + answer + judge: ~$0.10/question (multi-iter)
87
+ *
88
+ * Per-conv: ~$2 ingest + $2 questions = ~$4/conv. 10 convs = ~$40/seed.
89
+ * The smoke (conv-1 × 20 q) is ~$4. n=3 multirun on full set = ~$120.
90
+ */
91
+ export declare function estimateBeamCost(dataset: Beam10MDataset, opts?: {
92
+ hierarchicalEnabled?: boolean;
93
+ }): {
94
+ ingestUsd: number;
95
+ summaryUsd: number;
96
+ questionsUsd: number;
97
+ totalUsd: number;
98
+ };
@@ -0,0 +1,128 @@
1
+ /**
2
+ * BEAM-10M dataset loader (T3.1 scaffold).
3
+ *
4
+ * Source: HuggingFace `Mohammadta/BEAM-10M` (200 questions / 10 conversations).
5
+ * The 10M tier averages ~1.4M tokens of conversation context per system —
6
+ * the highest-difficulty BEAM tier and the SOTA target for this sprint.
7
+ *
8
+ * This loader is a *stub*: it returns the typed shape for tests and the
9
+ * smoke design without invoking the HuggingFace API. Real loading lives
10
+ * in `atomicmemory-benchmarks/atomicbench/src/eval/` once the loader is
11
+ * promoted out of the worktree.
12
+ */
13
+ /**
14
+ * Resolve the on-disk normalized JSON cache path. Set
15
+ * `BEAM_10M_NORMALIZED_PATH` to override (used by tests + the in-tree
16
+ * `atomicmemory-benchmarks/data/beam-10m/preprocess.py` output).
17
+ */
18
+ function resolveCachePath() {
19
+ const env = process.env.BEAM_10M_NORMALIZED_PATH;
20
+ if (env)
21
+ return env;
22
+ // Default: sibling repo path. The harness runs from the benchmarks repo
23
+ // so this resolves correctly when invoked through atomicbench.
24
+ const candidate = '/Users/moralespanitz/me/supernet/atomicmemory-benchmarks/data/beam-10m/beam-10m-normalized.json';
25
+ return candidate;
26
+ }
27
+ /**
28
+ * Load the BEAM-10M dataset. If the normalized JSON cache produced by
29
+ * `atomicmemory-benchmarks/data/beam-10m/preprocess.py` exists at the
30
+ * resolved path, parses it and returns the real dataset. Otherwise falls
31
+ * back to a deterministic stub fixture matching the canonical
32
+ * 10-conversation × 20-question shape, so tests and cost-estimator code
33
+ * keep working without the ~344 MB parquet shards on disk.
34
+ */
35
+ export async function loadBeam10MDataset(opts = {}) {
36
+ const allConversations = await loadConversationsOrStub();
37
+ const filtered = opts.conversationIds && opts.conversationIds.length > 0
38
+ ? allConversations.filter((c) => opts.conversationIds.includes(c.conversationId))
39
+ : allConversations;
40
+ const sliced = opts.sliceSize !== undefined
41
+ ? filtered.map((c) => ({ ...c, questions: c.questions.slice(0, opts.sliceSize) }))
42
+ : filtered;
43
+ const totalQuestions = sliced.reduce((sum, c) => sum + c.questions.length, 0);
44
+ return {
45
+ schemaVersion: 'beam-10m.v1',
46
+ tier: '10M',
47
+ conversations: sliced,
48
+ totalQuestions,
49
+ };
50
+ }
51
+ async function loadConversationsOrStub() {
52
+ const cachePath = resolveCachePath();
53
+ if (!cachePath)
54
+ return buildStubFixture();
55
+ try {
56
+ const fs = await import('node:fs/promises');
57
+ const raw = await fs.readFile(cachePath, 'utf8');
58
+ const parsed = JSON.parse(raw);
59
+ if (!parsed.conversations || !Array.isArray(parsed.conversations)) {
60
+ return buildStubFixture();
61
+ }
62
+ return parsed.conversations;
63
+ }
64
+ catch {
65
+ return buildStubFixture();
66
+ }
67
+ }
68
+ /**
69
+ * Cost projection for a given dataset slice. Used by the smoke plan to
70
+ * estimate per-seed cost before committing the full multirun budget.
71
+ *
72
+ * Cost components per system per question:
73
+ * - ingest (one-time): ~$0.002/fact × ~150 facts/conv = $0.30/conv
74
+ * - summary generation (hierarchical only): ~$0.001/session × 50 sessions = $0.05/conv
75
+ * - search + answer + judge: ~$0.10/question (multi-iter)
76
+ *
77
+ * Per-conv: ~$2 ingest + $2 questions = ~$4/conv. 10 convs = ~$40/seed.
78
+ * The smoke (conv-1 × 20 q) is ~$4. n=3 multirun on full set = ~$120.
79
+ */
80
+ export function estimateBeamCost(dataset, opts = {}) {
81
+ const convCount = dataset.conversations.length;
82
+ const factsPerConv = 150; // empirical average from BEAM-100K
83
+ const sessionsPerConv = 50;
84
+ const questionsTotal = dataset.totalQuestions;
85
+ const ingestUsd = convCount * factsPerConv * 0.002;
86
+ const summaryUsd = opts.hierarchicalEnabled
87
+ ? convCount * sessionsPerConv * 0.001 + convCount * 0.005
88
+ : 0;
89
+ const questionsUsd = questionsTotal * 0.10;
90
+ const totalUsd = ingestUsd + summaryUsd + questionsUsd;
91
+ return { ingestUsd, summaryUsd, questionsUsd, totalUsd };
92
+ }
93
+ /**
94
+ * Stub fixture: 10 conversations × 1 session × 1 message + 20 placeholder
95
+ * questions per conversation. Real data has ~50 sessions × ~30 messages
96
+ * each per conversation; this stub gives the shape only.
97
+ */
98
+ function buildStubFixture() {
99
+ const convs = [];
100
+ for (let cid = 1; cid <= 10; cid += 1) {
101
+ const sessions = [
102
+ {
103
+ sessionId: `c${cid}-s0`,
104
+ sessionIndex: 0,
105
+ startedAt: '2026-01-01T00:00:00Z',
106
+ messages: [
107
+ { role: 'user', content: `placeholder-c${cid}-msg`, timestamp: '2026-01-01T00:00:00Z' },
108
+ ],
109
+ },
110
+ ];
111
+ const questions = [];
112
+ const abilities = [
113
+ 'ABS', 'CR', 'EO', 'IE', 'IF', 'KU', 'MSR', 'PF', 'SUM', 'TR',
114
+ ];
115
+ for (let qi = 1; qi <= 20; qi += 1) {
116
+ const ability = abilities[(qi - 1) % abilities.length];
117
+ questions.push({
118
+ id: `c${cid}-q${qi}-${ability}`,
119
+ ability,
120
+ question: `placeholder-question-${qi}`,
121
+ ideal: `placeholder-answer-${qi}`,
122
+ rubric: [],
123
+ });
124
+ }
125
+ convs.push({ conversationId: cid, sessions, questions, approxTokens: 1_400_000 });
126
+ }
127
+ return convs;
128
+ }