@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,313 @@
1
+ /**
2
+ * Shared repository types and row normalizers.
3
+ */
4
+ export interface MemoryMetadata {
5
+ clarification_note?: string;
6
+ cmo_id?: string;
7
+ target_memory_id?: string;
8
+ [key: string]: unknown;
9
+ }
10
+ /**
11
+ * Metadata keys that core treats as load-bearing internals at runtime —
12
+ * lineage/claim, dedup, extraction outputs, consolidation, lesson
13
+ * extraction, and AUDN mutation. Inbound caller-controlled metadata
14
+ * MUST NOT include any of these; `IngestBodySchema` rejects with 400.
15
+ *
16
+ * Adding a new internal `metadata.<key>` access in core MUST add the
17
+ * key here, or the new key becomes spoofable from outside. The
18
+ * static-analysis test in `src/__tests__/reserved-metadata-keys.test.ts`
19
+ * enforces this: it scans `src/` for metadata access patterns and
20
+ * fails CI if any found key is missing from this set.
21
+ */
22
+ export declare const RESERVED_METADATA_KEYS: Set<string>;
23
+ /**
24
+ * Shared write-shape for memory rows. Used by the repository write path
25
+ * and the MemoryStore interface so the two stay in lockstep.
26
+ */
27
+ export interface StoreMemoryInput {
28
+ userId: string;
29
+ content: string;
30
+ embedding: number[];
31
+ memoryType?: string;
32
+ importance: number;
33
+ sourceSite: string;
34
+ sourceUrl?: string;
35
+ episodeId?: string;
36
+ status?: 'active' | 'needs_clarification';
37
+ metadata?: MemoryMetadata;
38
+ keywords?: string;
39
+ namespace?: string;
40
+ summary?: string;
41
+ overview?: string;
42
+ trustScore?: number;
43
+ createdAt?: Date;
44
+ observedAt?: Date;
45
+ network?: string;
46
+ opinionConfidence?: number | null;
47
+ observationSubject?: string | null;
48
+ workspaceId?: string;
49
+ agentId?: string;
50
+ visibility?: 'agent_only' | 'restricted' | 'workspace';
51
+ /**
52
+ * BEAM v38: temporal state. `stateKey` is a stable identifier for an
53
+ * evolving fact (e.g. `user:1:location`). `eventStart`/`eventEnd` define
54
+ * the validity window (NULL eventEnd = currently active).
55
+ */
56
+ stateKey?: string | null;
57
+ eventStart?: Date | null;
58
+ eventEnd?: Date | null;
59
+ /** Phase 2 provenance: raw_documents.id this memory was derived from. */
60
+ rawDocumentId?: string;
61
+ /** Phase 2 provenance: document_chunks.id that produced this memory's content. */
62
+ documentChunkId?: string;
63
+ }
64
+ export type CanonicalMemoryObjectFamily = 'ingested_fact';
65
+ export interface CanonicalFactPayload {
66
+ factText: string;
67
+ factType: string;
68
+ headline: string;
69
+ keywords: string[];
70
+ }
71
+ export interface CanonicalMemoryObjectProvenance {
72
+ episodeId: string | null;
73
+ sourceSite: string;
74
+ sourceUrl: string;
75
+ }
76
+ export interface CanonicalMemoryObjectLineage {
77
+ mutationType: 'add' | 'update' | 'supersede' | 'delete';
78
+ previousObjectId: string | null;
79
+ claimId?: string | null;
80
+ claimVersionId?: string | null;
81
+ previousVersionId?: string | null;
82
+ mutationReason?: string | null;
83
+ actorModel?: string | null;
84
+ contradictionConfidence?: number | null;
85
+ }
86
+ export interface CanonicalMemoryObjectRow {
87
+ id: string;
88
+ user_id: string;
89
+ object_family: CanonicalMemoryObjectFamily;
90
+ payload_format: string;
91
+ canonical_payload: CanonicalFactPayload;
92
+ provenance: CanonicalMemoryObjectProvenance;
93
+ observed_at: Date;
94
+ lineage: CanonicalMemoryObjectLineage;
95
+ created_at: Date;
96
+ }
97
+ export interface MemoryRow {
98
+ id: string;
99
+ user_id: string;
100
+ content: string;
101
+ embedding: number[];
102
+ memory_type: string;
103
+ importance: number;
104
+ source_site: string;
105
+ source_url: string;
106
+ episode_id: string | null;
107
+ status: 'active' | 'needs_clarification';
108
+ metadata: MemoryMetadata;
109
+ keywords: string;
110
+ namespace: string | null;
111
+ summary: string;
112
+ overview: string;
113
+ trust_score: number;
114
+ observed_at: Date;
115
+ created_at: Date;
116
+ last_accessed_at: Date;
117
+ access_count: number;
118
+ expired_at: Date | null;
119
+ deleted_at: Date | null;
120
+ network: string;
121
+ opinion_confidence: number | null;
122
+ observation_subject: string | null;
123
+ workspace_id?: string | null;
124
+ agent_id?: string | null;
125
+ visibility?: 'agent_only' | 'restricted' | 'workspace' | null;
126
+ /** BEAM v38: temporal state — populated only when temporalStateEnabled. */
127
+ state_key?: string | null;
128
+ event_start?: Date | null;
129
+ event_end?: Date | null;
130
+ }
131
+ export interface EpisodeRow {
132
+ id: string;
133
+ user_id: string;
134
+ content: string;
135
+ source_site: string;
136
+ source_url: string;
137
+ session_id: string | null;
138
+ created_at: Date;
139
+ }
140
+ export interface SearchResult extends MemoryRow {
141
+ similarity: number;
142
+ score: number;
143
+ semantic_similarity?: number;
144
+ ranking_score?: number;
145
+ relevance?: number;
146
+ matched_facts?: string[];
147
+ matched_fact_ids?: string[];
148
+ retrieval_layer?: 'memory' | 'atomic_fact';
149
+ /**
150
+ * Origin of the row in the candidate pool. Absent for similarity-ranked
151
+ * rows; set to `'tll-chain'` for rows hydrated by TLL chain expansion
152
+ * after the relevance gate (see `hydrateChainMemories`).
153
+ */
154
+ retrieval_signal?: 'tll-chain';
155
+ }
156
+ export type AtomicFactType = 'preference' | 'project' | 'knowledge' | 'person' | 'plan';
157
+ export interface AtomicFactRow {
158
+ id: string;
159
+ user_id: string;
160
+ parent_memory_id: string;
161
+ fact_text: string;
162
+ embedding: number[];
163
+ fact_type: AtomicFactType;
164
+ importance: number;
165
+ source_site: string;
166
+ source_url: string;
167
+ episode_id: string | null;
168
+ keywords: string;
169
+ metadata: MemoryMetadata;
170
+ workspace_id: string | null;
171
+ agent_id: string | null;
172
+ created_at: Date;
173
+ }
174
+ export type ForesightType = 'plan' | 'goal' | 'scheduled' | 'expected_state';
175
+ export interface ForesightRow {
176
+ id: string;
177
+ user_id: string;
178
+ parent_memory_id: string;
179
+ content: string;
180
+ embedding: number[];
181
+ foresight_type: ForesightType;
182
+ source_site: string;
183
+ source_url: string;
184
+ episode_id: string | null;
185
+ metadata: MemoryMetadata;
186
+ valid_from: Date;
187
+ valid_to: Date | null;
188
+ workspace_id: string | null;
189
+ agent_id: string | null;
190
+ created_at: Date;
191
+ }
192
+ export interface ClaimRow {
193
+ id: string;
194
+ user_id: string;
195
+ claim_type: string;
196
+ status: string;
197
+ current_version_id: string | null;
198
+ slot_key: string | null;
199
+ subject_entity_id: string | null;
200
+ relation_type: RelationType | null;
201
+ object_entity_id: string | null;
202
+ valid_at: Date;
203
+ invalid_at: Date | null;
204
+ invalidated_at: Date | null;
205
+ invalidated_by_version_id: string | null;
206
+ created_at: Date;
207
+ updated_at: Date;
208
+ }
209
+ export type MutationType = 'add' | 'update' | 'supersede' | 'delete' | 'clarify';
210
+ export interface ClaimVersionRow {
211
+ id: string;
212
+ claim_id: string;
213
+ user_id: string;
214
+ memory_id: string | null;
215
+ content: string;
216
+ embedding: number[];
217
+ importance: number;
218
+ source_site: string;
219
+ source_url: string;
220
+ episode_id: string | null;
221
+ valid_from: Date;
222
+ valid_to: Date | null;
223
+ superseded_by_version_id: string | null;
224
+ mutation_type: MutationType | null;
225
+ mutation_reason: string | null;
226
+ previous_version_id: string | null;
227
+ actor_model: string | null;
228
+ contradiction_confidence: number | null;
229
+ created_at: Date;
230
+ }
231
+ /**
232
+ * Context for workspace-scoped operations. When present, all reads and writes
233
+ * are scoped to the given workspace. When absent, the system operates in
234
+ * single-agent mode (backward-compatible).
235
+ */
236
+ export interface WorkspaceContext {
237
+ workspaceId: string;
238
+ agentId: string;
239
+ /** Controls which agents can see memories written in this context. */
240
+ visibility?: 'agent_only' | 'restricted' | 'workspace';
241
+ }
242
+ /**
243
+ * Agent scope filter for workspace searches.
244
+ * - 'all': search all agents in the workspace
245
+ * - 'self': search only the calling agent's memories
246
+ * - string: search a specific agent's memories by ID
247
+ */
248
+ export type AgentScope = 'all' | 'self' | 'others' | string | string[];
249
+ export declare function clampImportance(value: number): number;
250
+ export declare function parseEmbedding(value: unknown): number[];
251
+ export declare function parseMetadata(value: unknown): MemoryMetadata;
252
+ export declare function parseStringArray(value: unknown): string[];
253
+ export declare function normalizeMemoryRow(row: Record<string, unknown>): MemoryRow;
254
+ export declare function normalizeSearchRow(row: Record<string, unknown>): SearchResult;
255
+ export declare function normalizeVersionRow(row: Record<string, unknown>): ClaimVersionRow;
256
+ /** Phase 5 — Entity graph types */
257
+ export type EntityType = 'person' | 'tool' | 'project' | 'organization' | 'place' | 'concept';
258
+ export interface EntityRow {
259
+ id: string;
260
+ user_id: string;
261
+ name: string;
262
+ normalized_name: string;
263
+ entity_type: EntityType;
264
+ embedding: number[];
265
+ alias_names: string[];
266
+ normalized_alias_names: string[];
267
+ created_at: Date;
268
+ updated_at: Date;
269
+ }
270
+ export interface MemoryEntityRow {
271
+ memory_id: string;
272
+ entity_id: string;
273
+ created_at: Date;
274
+ }
275
+ export type RelationType = 'uses' | 'works_on' | 'works_at' | 'located_in' | 'knows' | 'prefers' | 'created' | 'belongs_to' | 'studies' | 'manages';
276
+ export interface EntityRelationRow {
277
+ id: string;
278
+ user_id: string;
279
+ source_entity_id: string;
280
+ target_entity_id: string;
281
+ relation_type: RelationType;
282
+ source_memory_id: string | null;
283
+ confidence: number;
284
+ valid_from: Date;
285
+ valid_to: Date | null;
286
+ created_at: Date;
287
+ }
288
+ /** Aggregate mutation statistics for a user's memory store. */
289
+ export interface MutationSummary {
290
+ totalVersions: number;
291
+ activeVersions: number;
292
+ supersededVersions: number;
293
+ totalClaims: number;
294
+ byMutationType: Record<string, number>;
295
+ }
296
+ /** Single-memory audit trail entry for inspecting lifecycle. */
297
+ export interface AuditTrailEntry {
298
+ versionId: string;
299
+ claimId: string;
300
+ content: string;
301
+ mutationType: MutationType | null;
302
+ mutationReason: string | null;
303
+ actorModel: string | null;
304
+ contradictionConfidence: number | null;
305
+ previousVersionId: string | null;
306
+ supersededByVersionId: string | null;
307
+ validFrom: Date;
308
+ validTo: Date | null;
309
+ memoryId: string | null;
310
+ }
311
+ export declare function normalizeEntityRow(row: Record<string, unknown>): EntityRow;
312
+ export declare function normalizeAtomicFactRow(row: Record<string, unknown>): AtomicFactRow;
313
+ export declare function normalizeForesightRow(row: Record<string, unknown>): ForesightRow;
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Shared repository types and row normalizers.
3
+ */
4
+ /**
5
+ * Metadata keys that core treats as load-bearing internals at runtime —
6
+ * lineage/claim, dedup, extraction outputs, consolidation, lesson
7
+ * extraction, and AUDN mutation. Inbound caller-controlled metadata
8
+ * MUST NOT include any of these; `IngestBodySchema` rejects with 400.
9
+ *
10
+ * Adding a new internal `metadata.<key>` access in core MUST add the
11
+ * key here, or the new key becomes spoofable from outside. The
12
+ * static-analysis test in `src/__tests__/reserved-metadata-keys.test.ts`
13
+ * enforces this: it scans `src/` for metadata access patterns and
14
+ * fails CI if any found key is missing from this set.
15
+ */
16
+ export const RESERVED_METADATA_KEYS = new Set([
17
+ // Lineage / claim — `src/services/memory-storage.ts`
18
+ 'cmo_id',
19
+ // Deduplication — `src/services/composite-dedup.ts`,
20
+ // `src/services/ingest-post-write.ts`
21
+ 'memberMemoryIds',
22
+ 'compositeVersion',
23
+ // Extraction — `src/services/memcell-projection.ts`
24
+ 'headline',
25
+ 'entities',
26
+ 'relations',
27
+ 'keywords',
28
+ // Consolidation — `src/services/consolidation-service.ts`
29
+ 'consolidated_from',
30
+ 'cluster_size',
31
+ 'avg_affinity',
32
+ // Recap retrieval channel — `src/services/search-pipeline.ts`
33
+ 'recap',
34
+ 'topic',
35
+ 'member_count',
36
+ // Lesson extraction — `src/services/lesson-service.ts`
37
+ 'sourceSite',
38
+ 'findingCount',
39
+ 'rules',
40
+ 'trustScore',
41
+ 'threshold',
42
+ 'contradictionConfidence',
43
+ 'supersededMemoryId',
44
+ // AUDN mutation — `src/services/memory-audn.ts`
45
+ 'clarification_note',
46
+ 'target_memory_id',
47
+ 'contradiction_confidence',
48
+ // Phase 4 document provenance — `src/services/document-indexer.ts`
49
+ // `materializeMemories` stamps these on every chunk-derived memory
50
+ // so SDK consumers that only read `memory.metadata` can resolve
51
+ // provenance without hitting the typed `raw_document_id` /
52
+ // `document_chunk_id` columns. Reserved so a caller can't spoof
53
+ // them via user-supplied metadata.
54
+ 'raw_document_id',
55
+ 'document_chunk_id',
56
+ // Phase 5 upload pipeline — `src/services/document-upload.ts` writes
57
+ // `upload_result.stored_status` into `raw_storage_metadata` as an
58
+ // INTERNAL sidecar Phase γ reads on the finalize-recovery path.
59
+ // `raw_storage_metadata` is a separate JSONB column from `metadata`,
60
+ // but reserving the key here is defense-in-depth in case a future
61
+ // change merges or aliases the two.
62
+ 'upload_result',
63
+ // Phase 6 reconciler reads the adapter's
64
+ // `RawContentHeadResult.metadata.providerMetadata` to deep-merge
65
+ // filecoin keys. Same defense-in-depth: the scanner picks up the
66
+ // `.metadata.providerMetadata` access chain even though it's not
67
+ // the user-controlled `metadata` JSONB column.
68
+ 'providerMetadata',
69
+ // Phase 6 review-fix (hash_verify): the reconciler reads
70
+ // `row.rawStorageMetadata.codec` to pass the codec sidecar into
71
+ // `codec.decode()` before sha256-comparing the plaintext against
72
+ // `content_hash`. Same defense-in-depth — `raw_storage_metadata` is
73
+ // a separate column from the user-controlled `metadata`, but
74
+ // reserving the key catches a future aliasing mistake.
75
+ 'codec',
76
+ ]);
77
+ export function clampImportance(value) {
78
+ return Math.max(0, Math.min(1, value));
79
+ }
80
+ export function parseEmbedding(value) {
81
+ if (Array.isArray(value))
82
+ return value.map(Number);
83
+ if (typeof value !== 'string')
84
+ return [];
85
+ return value.slice(1, -1).split(',').filter(Boolean).map(Number);
86
+ }
87
+ export function parseMetadata(value) {
88
+ if (!value || typeof value !== 'object' || Array.isArray(value))
89
+ return {};
90
+ return value;
91
+ }
92
+ export function parseStringArray(value) {
93
+ if (Array.isArray(value)) {
94
+ return value.filter((item) => typeof item === 'string');
95
+ }
96
+ if (typeof value !== 'string')
97
+ return [];
98
+ if (value.startsWith('{') && value.endsWith('}')) {
99
+ return value.slice(1, -1).split(',').filter(Boolean);
100
+ }
101
+ return [];
102
+ }
103
+ export function normalizeMemoryRow(row) {
104
+ return {
105
+ ...row,
106
+ embedding: parseEmbedding(row.embedding),
107
+ metadata: parseMetadata(row.metadata),
108
+ };
109
+ }
110
+ export function normalizeSearchRow(row) {
111
+ return {
112
+ ...normalizeMemoryRow(row),
113
+ matched_facts: parseStringArray(row.matched_facts),
114
+ matched_fact_ids: parseStringArray(row.matched_fact_ids),
115
+ retrieval_layer: row.retrieval_layer ?? 'memory',
116
+ };
117
+ }
118
+ export function normalizeVersionRow(row) {
119
+ return { ...row, embedding: parseEmbedding(row.embedding) };
120
+ }
121
+ export function normalizeEntityRow(row) {
122
+ return {
123
+ ...row,
124
+ embedding: parseEmbedding(row.embedding),
125
+ alias_names: Array.isArray(row.alias_names) ? row.alias_names : [],
126
+ normalized_alias_names: Array.isArray(row.normalized_alias_names) ? row.normalized_alias_names : [],
127
+ };
128
+ }
129
+ export function normalizeAtomicFactRow(row) {
130
+ return {
131
+ ...row,
132
+ embedding: parseEmbedding(row.embedding),
133
+ metadata: parseMetadata(row.metadata),
134
+ };
135
+ }
136
+ export function normalizeForesightRow(row) {
137
+ return {
138
+ ...row,
139
+ embedding: parseEmbedding(row.embedding),
140
+ metadata: parseMetadata(row.metadata),
141
+ };
142
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Repository for the user_profiles table (Sprint 3 v1.5 — H2).
3
+ * One row per user, mutated in place by user-profile-builder.
4
+ */
5
+ import type pg from 'pg';
6
+ export interface UserProfileRow {
7
+ user_id: string;
8
+ profile_text: string;
9
+ source_memory_ids: string[];
10
+ updated_at: Date;
11
+ }
12
+ export declare class UserProfileRepository {
13
+ private readonly pool;
14
+ constructor(pool: pg.Pool);
15
+ getProfile(userId: string): Promise<UserProfileRow | null>;
16
+ upsertProfile(userId: string, profileText: string, sourceMemoryIds: string[], expectedUpdatedAt?: Date): Promise<void>;
17
+ }
@@ -0,0 +1,28 @@
1
+ export class UserProfileRepository {
2
+ pool;
3
+ constructor(pool) {
4
+ this.pool = pool;
5
+ }
6
+ async getProfile(userId) {
7
+ const result = await this.pool.query('SELECT user_id, profile_text, source_memory_ids, updated_at FROM user_profiles WHERE user_id = $1', [userId]);
8
+ return result.rows[0] ?? null;
9
+ }
10
+ async upsertProfile(userId, profileText, sourceMemoryIds, expectedUpdatedAt) {
11
+ if (expectedUpdatedAt) {
12
+ await this.pool.query(`INSERT INTO user_profiles (user_id, profile_text, source_memory_ids, updated_at)
13
+ VALUES ($1, $2, $3, NOW())
14
+ ON CONFLICT (user_id) DO UPDATE
15
+ SET profile_text = EXCLUDED.profile_text,
16
+ source_memory_ids = EXCLUDED.source_memory_ids,
17
+ updated_at = NOW()
18
+ WHERE user_profiles.updated_at <= $4`, [userId, profileText, sourceMemoryIds, expectedUpdatedAt]);
19
+ return;
20
+ }
21
+ await this.pool.query(`INSERT INTO user_profiles (user_id, profile_text, source_memory_ids, updated_at)
22
+ VALUES ($1, $2, $3, NOW())
23
+ ON CONFLICT (user_id) DO UPDATE
24
+ SET profile_text = EXCLUDED.profile_text,
25
+ source_memory_ids = EXCLUDED.source_memory_ids,
26
+ updated_at = NOW()`, [userId, profileText, sourceMemoryIds]);
27
+ }
28
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Swappable vector search backends for the prototype repository.
3
+ */
4
+ import pg from 'pg';
5
+ import { type AgentScope, type SearchResult } from './repository-types.js';
6
+ export interface CandidateRow {
7
+ id: string;
8
+ content: string;
9
+ importance: number;
10
+ similarity: number;
11
+ }
12
+ export declare function searchVectors(pool: pg.Pool, userId: string, queryEmbedding: number[], limit: number, sourceSite?: string, referenceTime?: Date): Promise<SearchResult[]>;
13
+ /**
14
+ * Hybrid search using Reciprocal Rank Fusion (RRF) to combine vector similarity
15
+ * with PostgreSQL full-text search. Improves retrieval for keyword-heavy queries
16
+ * (names, dates, project names) where semantic similarity alone fails.
17
+ *
18
+ * Source: 2026-03-07 RAG deep dive (SeekDB link 6, GraphRAG guide link 1).
19
+ */
20
+ export declare function searchHybrid(pool: pg.Pool, userId: string, queryText: string, queryEmbedding: number[], limit: number, sourceSite?: string, referenceTime?: Date): Promise<SearchResult[]>;
21
+ export declare function searchKeyword(pool: pg.Pool, userId: string, queryText: string, limit: number, sourceSite?: string): Promise<SearchResult[]>;
22
+ export declare function findDuplicateVectors(pool: pg.Pool, userId: string, embedding: number[], threshold: number, limit: number): Promise<CandidateRow[]>;
23
+ /**
24
+ * Workspace-scoped vector search. Filters by workspace_id and optionally
25
+ * by agent_id based on AgentScope. Enforces visibility rules when a
26
+ * callerAgentId is provided.
27
+ */
28
+ export declare function searchVectorsInWorkspace(pool: pg.Pool, workspaceId: string, queryEmbedding: number[], limit: number, agentScope?: AgentScope, callerAgentId?: string, referenceTime?: Date): Promise<SearchResult[]>;
29
+ /**
30
+ * Find near-duplicate memories within a workspace scope.
31
+ * Used during workspace-scoped ingest for AUDN conflict detection.
32
+ */
33
+ export declare function findDuplicateVectorsInWorkspace(pool: pg.Pool, workspaceId: string, embedding: number[], threshold: number, limit: number, agentScope?: AgentScope, callerAgentId?: string): Promise<CandidateRow[]>;