@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,156 @@
1
+ /**
2
+ * Express application factory — wires routers onto a runtime container.
3
+ *
4
+ * Separates composition (done in `runtime-container.ts`) from HTTP
5
+ * transport concerns. Tests and harnesses can create an Express app from
6
+ * any runtime container without touching the server bootstrap.
7
+ */
8
+ import express from 'express';
9
+ import { createAgentRouter } from '../routes/agents.js';
10
+ import { createDocumentRouter } from '../routes/documents.js';
11
+ import { createMemoryRouter } from '../routes/memories.js';
12
+ import { makeReflectFlushHandler } from '../routes/reflect.js';
13
+ import { runReflectForConversation } from '../services/reflect.js';
14
+ import { callAnthropicTool } from '../services/llm.js';
15
+ import { embedText } from '../services/embedding.js';
16
+ import { createStorageRouter } from '../routes/storage.js';
17
+ import { MAX_INDEX_TEXT_BYTES } from '../schemas/documents.js';
18
+ import { requireBearer } from '../middleware/require-bearer.js';
19
+ import { CORS_ALLOWED_HEADERS_VALUE } from './cors-headers.js';
20
+ /** Default JSON-body cap for non-document routers. */
21
+ const DEFAULT_JSON_BODY_LIMIT = '1mb';
22
+ /**
23
+ * Build an Express application from a composed runtime container. The
24
+ * runtime owns all deps; this module only wires HTTP concerns (CORS, body
25
+ * parsing, routes, health).
26
+ *
27
+ * Body parsing is **route-scoped per router**, not global. Each
28
+ * `app.use('/v1/<area>', ..., createXRouter())` call declares the cap
29
+ * its router needs at the mount point — no router relies on inheriting
30
+ * a parser from above. The documents router additionally owns its own
31
+ * per-route parsing internally (the `/:id/index` body uses a 25 MiB cap
32
+ * sourced from `MAX_INDEX_TEXT_BYTES`; everything else falls through to
33
+ * the documents router's own 1 MiB JSON parser). Mounting a global
34
+ * `express.json` on the app would silently override that ordering, so
35
+ * we deliberately do NOT.
36
+ */
37
+ export function createApp(runtime) {
38
+ const app = express();
39
+ // Global CORS layer. Must short-circuit OPTIONS to 204 BEFORE any
40
+ // mounted `requireBearer` middleware so browser preflights (which
41
+ // never carry `Authorization`) succeed without a 401. The
42
+ // router-level `applyCorsHeaders` in `routes/memories.ts` reads the
43
+ // same canonical Allow-Headers list (`./cors-headers.js`) so the
44
+ // header surface stays consistent regardless of which layer
45
+ // produced the response.
46
+ app.use((req, res, next) => {
47
+ res.header('Access-Control-Allow-Origin', '*');
48
+ res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
49
+ res.header('Access-Control-Allow-Headers', CORS_ALLOWED_HEADERS_VALUE);
50
+ if (req.method === 'OPTIONS') {
51
+ res.sendStatus(204);
52
+ return;
53
+ }
54
+ next();
55
+ });
56
+ // `requireBearer` validates `Authorization: Bearer <CORE_API_KEY>`
57
+ // on every SDK-facing `/v1/*` router. Built once and reused so the
58
+ // expected-key buffer is captured a single time (timingSafeEqual
59
+ // wants matching-length buffers; cheap but allocation-stable).
60
+ // `/health` and `/openapi.json` stay outside this scope.
61
+ const auth = requireBearer(runtime.config.coreApiKey);
62
+ // Route-scoped 1 MiB JSON parsers for the non-document routers.
63
+ app.use('/v1/memories', auth, express.json({ limit: DEFAULT_JSON_BODY_LIMIT }), createMemoryRouter(runtime.services.memory, runtime.configRouteAdapter));
64
+ app.use('/v1/agents', auth, express.json({ limit: DEFAULT_JSON_BODY_LIMIT }), createAgentRouter(runtime.repos.trust));
65
+ // The documents router owns its own body parsing — see
66
+ // `createDocumentRouter` for the per-route ordering. We pass
67
+ // `MAX_INDEX_TEXT_BYTES` and the raw-storage capability snapshot
68
+ // through `limits` so the route layer never imports the config
69
+ // singleton.
70
+ const rawStorageEnabled = runtime.config.rawStorageMode === 'managed_blob';
71
+ // Filecoin lifecycle refactor (Slice 4): when an adapter is
72
+ // configured, source its `provider` + `capabilities` from
73
+ // `runtime.rawContentStore`. The snapshot stays internal-camelCase;
74
+ // `formatDocumentLimitsResponse` flips to snake_case at the wire.
75
+ // Pointer-only deployments omit `provider`/`capabilities` so the
76
+ // schema's optional fields validate cleanly.
77
+ const activeStore = runtime.rawContentStore;
78
+ const rawStorageSnapshot = rawStorageEnabled
79
+ ? {
80
+ enabled: true,
81
+ mode: runtime.config.rawStorageMode,
82
+ ...(activeStore
83
+ ? {
84
+ provider: activeStore.provider,
85
+ capabilities: activeStore.capabilities,
86
+ }
87
+ : {}),
88
+ }
89
+ : {
90
+ enabled: false,
91
+ mode: runtime.config.rawStorageMode,
92
+ reason: 'raw_storage_mode is pointer_only; managed-blob upload disabled',
93
+ };
94
+ app.use('/v1/documents', auth, createDocumentRouter(runtime.services.documents, {
95
+ rawUploadMaxBytes: runtime.config.rawUploadMaxBytes,
96
+ limits: {
97
+ rawUploadMaxBytes: runtime.config.rawUploadMaxBytes,
98
+ indexMaxTextBytes: MAX_INDEX_TEXT_BYTES,
99
+ rawStorage: rawStorageSnapshot,
100
+ },
101
+ }));
102
+ // Storage-sibling Step 3 added capabilities; Step 5 adds artifact
103
+ // CRUD on the same router. The router owns its own per-route body
104
+ // parsers (JSON for pointer-mode put + verify, `express.raw` for
105
+ // managed-mode put), so we mount it WITHOUT a global JSON parser
106
+ // at this prefix to avoid double-parsing managed-mode bodies.
107
+ app.use('/v1/storage', auth, createStorageRouter({
108
+ capabilities: {
109
+ activeStore,
110
+ rawUploadMaxBytes: runtime.config.rawUploadMaxBytes,
111
+ },
112
+ service: runtime.services.storage,
113
+ managedUploadMaxBytes: runtime.config.rawUploadMaxBytes,
114
+ }));
115
+ // Reflect flush: synchronous queue drain for benchmark / eval harnesses.
116
+ // Wired regardless of reflectEnabled so the route always exists; the
117
+ // handler returns 503 when reflect is disabled.
118
+ const { reflectionJobs, reflections, entityCards } = runtime.stores;
119
+ const reflectEnabled = runtime.config.reflectEnabled;
120
+ const entityCardDeps = entityCards && runtime.config.entityCardEnabled
121
+ ? {
122
+ enabled: true,
123
+ repo: entityCards,
124
+ synth: {
125
+ llmCallTool: (system, user, schema) => callAnthropicTool(runtime.config.reflectModel, system, user, schema),
126
+ minObservations: runtime.config.entityCardMinObservations,
127
+ maxEntities: runtime.config.entityCardMaxPerSession,
128
+ },
129
+ maxCardsPerSession: runtime.config.entityCardMaxPerSession,
130
+ }
131
+ : undefined;
132
+ const reflectFlushDeps = {
133
+ jobs: reflectionJobs ?? {
134
+ fetchPending: async () => [],
135
+ markInProgress: async () => undefined,
136
+ markCompleted: async () => undefined,
137
+ markFailed: async () => undefined,
138
+ },
139
+ runReflect: (userId, conversationId) => runReflectForConversation({
140
+ fetchMemories: (u, c) => runtime.repos.memory.findByConversation(u, c),
141
+ llmCallTool: (system, user, schema) => callAnthropicTool(runtime.config.reflectModel, system, user, schema),
142
+ embed: (text) => embedText(text),
143
+ reflections: reflections ?? { insertMany: async () => undefined },
144
+ maxObservations: runtime.config.reflectMaxObservations,
145
+ entityCards: entityCardDeps,
146
+ }, userId, conversationId),
147
+ };
148
+ app.post('/v1/reflect/flush', makeReflectFlushHandler(reflectFlushDeps, reflectEnabled));
149
+ // `/health` is intentionally unversioned — it is an infrastructure
150
+ // liveness probe (load balancers, Docker, Railway), not part of the
151
+ // versioned application API. Versioned endpoints live under `/v1/*`.
152
+ app.get('/health', (_req, res) => {
153
+ res.json({ status: 'ok' });
154
+ });
155
+ return app;
156
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared runtime-config route snapshot shape and formatter.
3
+ *
4
+ * Both the composed runtime container and the legacy route module need the
5
+ * same public config subset. Keeping the projection here prevents drift in
6
+ * `/v1/memories/health` and `/v1/memories/config` responses.
7
+ */
8
+ import type { EmbeddingProviderName, LLMProviderName, RuntimeConfig } from '../config.js';
9
+ export interface RuntimeConfigRouteSnapshot {
10
+ retrievalProfile: string;
11
+ embeddingProvider: EmbeddingProviderName;
12
+ embeddingModel: string;
13
+ voyageDocumentModel: string;
14
+ voyageQueryModel: string;
15
+ llmProvider: LLMProviderName;
16
+ llmModel: string;
17
+ clarificationConflictThreshold: number;
18
+ maxSearchResults: number;
19
+ hybridSearchEnabled: boolean;
20
+ iterativeRetrievalEnabled: boolean;
21
+ entityGraphEnabled: boolean;
22
+ crossEncoderEnabled: boolean;
23
+ agenticRetrievalEnabled: boolean;
24
+ repairLoopEnabled: boolean;
25
+ runtimeConfigMutationEnabled: boolean;
26
+ }
27
+ export declare function readRuntimeConfigRouteSnapshot(config: RuntimeConfig): RuntimeConfigRouteSnapshot;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared runtime-config route snapshot shape and formatter.
3
+ *
4
+ * Both the composed runtime container and the legacy route module need the
5
+ * same public config subset. Keeping the projection here prevents drift in
6
+ * `/v1/memories/health` and `/v1/memories/config` responses.
7
+ */
8
+ export function readRuntimeConfigRouteSnapshot(config) {
9
+ return {
10
+ retrievalProfile: config.retrievalProfile,
11
+ embeddingProvider: config.embeddingProvider,
12
+ embeddingModel: config.embeddingModel,
13
+ voyageDocumentModel: config.voyageDocumentModel,
14
+ voyageQueryModel: config.voyageQueryModel,
15
+ llmProvider: config.llmProvider,
16
+ llmModel: config.llmModel,
17
+ clarificationConflictThreshold: config.clarificationConflictThreshold,
18
+ maxSearchResults: config.maxSearchResults,
19
+ hybridSearchEnabled: config.hybridSearchEnabled,
20
+ iterativeRetrievalEnabled: config.iterativeRetrievalEnabled,
21
+ entityGraphEnabled: config.entityGraphEnabled,
22
+ crossEncoderEnabled: config.crossEncoderEnabled,
23
+ agenticRetrievalEnabled: config.agenticRetrievalEnabled,
24
+ repairLoopEnabled: config.repairLoopEnabled,
25
+ runtimeConfigMutationEnabled: config.runtimeConfigMutationEnabled,
26
+ };
27
+ }
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Core runtime container — the explicit composition root for atomicmemory-core.
3
+ *
4
+ * Owns the construction of config, pool, repositories, and services so
5
+ * startup (`server.ts`), tests, and in-process research harnesses all boot
6
+ * through the same seam. Replaces the hidden singleton wiring that used to
7
+ * live inline in `server.ts`.
8
+ *
9
+ * Runtime-container wiring — the composition root that replaces
10
+ * per-startup hand-wiring of repos and services in `server.ts`.
11
+ */
12
+ import pg from 'pg';
13
+ import { type CrossEncoderDtype, type RuntimeConfig, type RuntimeConfigUpdates } from '../config.js';
14
+ import { AgentTrustRepository } from '../db/agent-trust-repository.js';
15
+ import { BeliefEdgesRepository } from '../db/belief-edges-repository.js';
16
+ import { ClaimRepository } from '../db/claim-repository.js';
17
+ import { LinkRepository } from '../db/link-repository.js';
18
+ import { MemoryRepository } from '../db/memory-repository.js';
19
+ import { EntityRepository } from '../db/repository-entities.js';
20
+ import { LessonRepository } from '../db/repository-lessons.js';
21
+ import { DocumentService } from '../services/document-service.js';
22
+ import { StorageService } from '../services/storage-service.js';
23
+ import type { RawContentStore } from '../storage/raw-content-store.js';
24
+ import { type RawContentStoreRegistry } from '../storage/store-registry.js';
25
+ import type { CoreStores } from '../db/stores.js';
26
+ import type { RetrievalProfile } from '../services/retrieval-profiles.js';
27
+ import { MemoryService } from '../services/memory-service.js';
28
+ import { type RuntimeConfigRouteSnapshot } from './runtime-config-route-snapshot.js';
29
+ /**
30
+ * Explicit runtime configuration subset currently needed by the runtime
31
+ * container, startup checks, search/runtime seams, and MemoryService deps.
32
+ *
33
+ * This is intentionally narrower than the module-level config singleton:
34
+ * it describes the config surface already threaded through those seams
35
+ * today, without claiming full runtime-wide configurability yet.
36
+ *
37
+ * NOTE (phase 1b status): `runtime.config` is normally the module-level
38
+ * singleton, but benchmark harnesses may pass an explicit composition-time
39
+ * RuntimeConfig through `createCoreRuntime({ config })`. MemoryService accepts
40
+ * an optional runtimeConfig override (stored as deps.config), and the search-
41
+ * pipeline orchestration and ingest orchestration files (memory-ingest,
42
+ * memory-storage, memory-audn, memory-lineage) read the fields listed
43
+ * in `CoreRuntimeConfig` and `IngestRuntimeConfig` through deps.config
44
+ * rather than the singleton. The route layer reads through an injectable
45
+ * adapter seam (`configRouteAdapter`) backed by this runtime config object.
46
+ *
47
+ * Leaf modules initialized by this composition root (embedding.ts and llm.ts)
48
+ * are rebound to the runtime config. Other leaf helpers still import the
49
+ * singleton directly, so config overrides are intended for isolated single-
50
+ * runtime harnesses, not multiple concurrently-active runtimes in one process.
51
+ *
52
+ * Remaining singleton importers: 33 non-test source files (tracked by
53
+ * config-singleton-audit.test.ts). This includes infrastructure, CRUD/
54
+ * lifecycle, leaf helpers, the DB repository layer, and index.ts.
55
+ */
56
+ export interface CoreRuntimeConfig {
57
+ adaptiveRetrievalEnabled: boolean;
58
+ adaptiveSimpleLimit: number;
59
+ adaptiveMediumLimit: number;
60
+ adaptiveComplexLimit: number;
61
+ adaptiveMultiHopLimit: number;
62
+ adaptiveAggregationLimit: number;
63
+ agenticRetrievalEnabled: boolean;
64
+ auditLoggingEnabled: boolean;
65
+ consensusMinMemories: number;
66
+ consensusValidationEnabled: boolean;
67
+ crossEncoderDtype: CrossEncoderDtype;
68
+ crossEncoderEnabled: boolean;
69
+ crossEncoderModel: string;
70
+ embeddingDimensions: number;
71
+ entityGraphEnabled: boolean;
72
+ entitySearchMinSimilarity: number;
73
+ hierarchicalRetrievalEnabled: boolean;
74
+ hybridSearchEnabled: boolean;
75
+ iterativeRetrievalEnabled: boolean;
76
+ lessonsEnabled: boolean;
77
+ linkExpansionBeforeMMR: boolean;
78
+ linkExpansionEnabled: boolean;
79
+ linkExpansionMax: number;
80
+ linkSimilarityThreshold: number;
81
+ literalListProtectionEnabled: boolean;
82
+ literalListProtectionMaxProtected: number;
83
+ maxSearchResults: number;
84
+ mmrEnabled: boolean;
85
+ mmrLambda: number;
86
+ namespaceClassificationEnabled: boolean;
87
+ pprDamping: number;
88
+ pprEnabled: boolean;
89
+ port: number;
90
+ queryAugmentationEnabled: boolean;
91
+ queryAugmentationMaxEntities: number;
92
+ queryAugmentationMinSimilarity: number;
93
+ queryExpansionEnabled: boolean;
94
+ queryExpansionMinSimilarity: number;
95
+ repairConfidenceFloor: number;
96
+ repairDeltaThreshold: number;
97
+ repairLoopEnabled: boolean;
98
+ repairLoopMinSimilarity: number;
99
+ rerankSkipMinGap: number;
100
+ rerankSkipTopSimilarity: number;
101
+ retrievalProfileSettings: RetrievalProfile;
102
+ similarityThreshold: number;
103
+ temporalQueryConstraintBoost: number;
104
+ temporalQueryConstraintEnabled: boolean;
105
+ topicSearchEnabled: boolean;
106
+ rerankerEnabled: boolean;
107
+ rerankerTopN: number;
108
+ recapSearchEnabled: boolean;
109
+ counterEvidenceEnabled: boolean;
110
+ packagingUseObservedAt: boolean;
111
+ packagingDualDate: boolean;
112
+ timelineChannelEnabled: boolean;
113
+ answerOnlyRetrievalFilter: boolean;
114
+ retrievalDedupEnabled: boolean;
115
+ keywordRrfWeight: number;
116
+ entityAttributesEnabled: boolean;
117
+ entityAttributesTopK: number;
118
+ userProfileChannelEnabled: boolean;
119
+ episodesChannelEnabled: boolean;
120
+ episodesChannelTopK: number;
121
+ verifierPassEnabled: boolean;
122
+ answerFormatAlignmentEnabled: boolean;
123
+ eventChainPackagingEnabled: boolean;
124
+ /** Reflect channel gate (BEAM-0.85 Phase 1, Task 1.9). */
125
+ reflectEnabled: boolean;
126
+ /** Top-K reflections to fetch when reflect retrieval is enabled. */
127
+ reflectRetrievalTopK: number;
128
+ /** Anthropic model used by the reflect worker. */
129
+ reflectModel: string;
130
+ /** Maximum observations the reflect worker persists per conversation. */
131
+ reflectMaxObservations: number;
132
+ /** Polling interval (ms) for the reflect background worker. */
133
+ reflectJobPollMs: number;
134
+ /** Debounce delay (ms) reserved for future worker throttling. */
135
+ reflectDebounceMs: number;
136
+ /**
137
+ * Phase 2 specialists gate (BEAM-0.85 Phase 2). When true, the dispatcher
138
+ * runs after top-K retrieval. First specialist with handled=true short-
139
+ * circuits the shared spine. Default false.
140
+ */
141
+ phase2SpecialistsEnabled: boolean;
142
+ /** LLM model ID (e.g. 'claude-haiku-4-5'). Used by specialist LLM calls. */
143
+ llmModel: string;
144
+ /** Master gate for all three abstention-rescue interventions. Default false. */
145
+ abstentionRescueEnabled: boolean;
146
+ /** Top-K for the iterative-retrieval rescue pass. Default 8. */
147
+ abstentionRescueRetrieveK: number;
148
+ /** Model used for the Sonnet rescue step. Default 'claude-sonnet-4-5'. */
149
+ abstentionRescueSonnetModel: string;
150
+ /**
151
+ * Per-question-type adaptive confidence prefix (v36). When true, the forced
152
+ * FORBIDDEN-abstention block only applies to SUMMARY/PREFERENCE/
153
+ * NUMERIC_COUNT/EXACT_DATE; ORDERED_LIST/CONTRADICTION/OTHER get a soft
154
+ * variant (rubric phrasing + KU temporal anchor, no FORBIDDEN block); ABSTAIN
155
+ * passes through unchanged. Requires abstentionRescueEnabled=true.
156
+ */
157
+ confidencePrefixAdaptiveEnabled: boolean;
158
+ /**
159
+ * KU recency sort (v42). When true, NUMERIC_COUNT queries matching the
160
+ * KU-style framing reorder packaged retrieval by observed_at DESC before
161
+ * injection. See RuntimeConfig for full semantics. Default false.
162
+ */
163
+ kuRecencySortEnabled: boolean;
164
+ /**
165
+ * MSR cross-conversation aggregator (v39-multihop). When true, queries
166
+ * classified as multi-session-reasoning (regex via `msr-detector.ts`) get
167
+ * an extra `## CROSS-SESSION SUMMARY` channel inserted before the standard
168
+ * OBSERVATIONS / TIMELINE / ENTITY_STATE blocks. See RuntimeConfig for
169
+ * full semantics. Default false.
170
+ */
171
+ msrAggregatorEnabled: boolean;
172
+ /**
173
+ * Anthropic API key, threaded through CoreRuntimeConfig for Sonnet rescue.
174
+ * Optional: only required when abstentionRescueEnabled is true and
175
+ * llmProvider is not 'anthropic'.
176
+ */
177
+ anthropicApiKey?: string;
178
+ /**
179
+ * Always-on ENTITY_CARD channel gate (BEAM-0.85 — Honcho parity).
180
+ * When true, the Reflect worker synthesizes per-entity summary cards and
181
+ * the search pipeline injects them at the top of every answer-LLM prompt.
182
+ */
183
+ entityCardEnabled: boolean;
184
+ /** Max entity cards synthesized per Reflect run. */
185
+ entityCardMaxPerSession: number;
186
+ /** Minimum observations an entity needs before its card is synthesized. */
187
+ entityCardMinObservations: number;
188
+ /** BEAM CR fix: bilateral preservation gate. See RuntimeConfig. */
189
+ contradictionPreservationEnabled: boolean;
190
+ /** BEAM CR fix: retrieval-side enrichment gate. See RuntimeConfig. */
191
+ contradictionSurfacingEnabled: boolean;
192
+ /**
193
+ * BEAM v38: temporal state layer. When true, ingest classifies each new
194
+ * memory with a stable `state_key` and supersedes prior memories with the
195
+ * same key; CURRENT_STATE intent reranks active state above superseded.
196
+ * Default false. See RuntimeConfig for full description.
197
+ */
198
+ temporalStateEnabled: boolean;
199
+ }
200
+ /** Repositories constructed by the runtime container. */
201
+ export interface CoreRuntimeRepos {
202
+ memory: MemoryRepository;
203
+ claims: ClaimRepository;
204
+ trust: AgentTrustRepository;
205
+ links: LinkRepository;
206
+ entities: EntityRepository | null;
207
+ lessons: LessonRepository | null;
208
+ beliefEdges: BeliefEdgesRepository | null;
209
+ }
210
+ /** Services constructed on top of repositories. */
211
+ export interface CoreRuntimeServices {
212
+ memory: MemoryService;
213
+ /** Pointer-only document registry. */
214
+ documents: DocumentService;
215
+ /** Direct storage API service. */
216
+ storage: StorageService;
217
+ }
218
+ export interface CoreRuntimeConfigRouteAdapter {
219
+ base: () => RuntimeConfig;
220
+ current: () => RuntimeConfigRouteSnapshot;
221
+ update: (updates: RuntimeConfigUpdates) => string[];
222
+ }
223
+ /**
224
+ * Explicit dependency bundle accepted by `createCoreRuntime`.
225
+ *
226
+ * `pool` is required — the composition root never reaches around to
227
+ * import the singleton `pg.Pool` itself.
228
+ *
229
+ * Optional `config` is a composition-time override for isolated harnesses
230
+ * such as AtomicBench. It is not a per-request override and should not be
231
+ * used for multiple concurrently-active runtimes in one process while
232
+ * singleton-importing leaf modules remain.
233
+ */
234
+ export interface CoreRuntimeDeps {
235
+ pool: pg.Pool;
236
+ config?: RuntimeConfig;
237
+ }
238
+ /** The composed runtime — single source of truth for route registration. */
239
+ export interface CoreRuntime {
240
+ config: RuntimeConfig;
241
+ configRouteAdapter: CoreRuntimeConfigRouteAdapter;
242
+ pool: pg.Pool;
243
+ repos: CoreRuntimeRepos;
244
+ /** Domain-facing store interfaces. Will replace repos once migration is complete. */
245
+ stores: CoreStores;
246
+ services: CoreRuntimeServices;
247
+ /**
248
+ * Active managed-blob adapter when `rawStorageMode='managed_blob'`;
249
+ * `null` for pointer-only deployments. Exposed so the composition
250
+ * root (`create-app.ts`) can read `capabilities` without re-running
251
+ * the factory or reaching back through `services.documents`.
252
+ * (Filecoin lifecycle refactor, Slice 4.)
253
+ */
254
+ rawContentStore: RawContentStore | null;
255
+ /**
256
+ * Per-row provider dispatch. Holds the active store plus
257
+ * any legacy read-only adapters built from
258
+ * `RAW_STORAGE_LEGACY_PROVIDERS`. Cleanup helpers use this to route
259
+ * a DELETE to the right adapter for historical rows that pre-date a
260
+ * provider switch.
261
+ */
262
+ storeRegistry: RawContentStoreRegistry;
263
+ /**
264
+ * Reconciler dependency bundle. Populated whenever the
265
+ * deployment has `RAW_STORAGE_PROVIDER=filecoin` AND a configured
266
+ * active Filecoin adapter; `null` otherwise. `null` is the signal
267
+ * the production bootstrap reads to decide whether to call
268
+ * `startReconciler`. `createCoreRuntime` does NOT start the
269
+ * scheduler — tests stay deterministic by calling `runOnce(deps)`
270
+ * directly.
271
+ */
272
+ reconcilerDeps: import('../services/raw-storage-reconciler.js').ReconcilerDeps | null;
273
+ }
274
+ /**
275
+ * Compose the core runtime. Instantiates repositories and the memory
276
+ * service from an explicit pool. Uses either the module-level config singleton
277
+ * or an explicit composition-time config and passes that same object into leaf
278
+ * module initializers and MemoryService so the composition root owns the seam.
279
+ * No mutation.
280
+ */
281
+ export declare function createCoreRuntime(deps: CoreRuntimeDeps): Promise<CoreRuntime>;