@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,82 @@
1
+ /**
2
+ * @file Provider-local retriever interface — the seam between
3
+ * the Filecoin provider client and an alternative retrieval
4
+ * backend (e.g. `@helia/verified-fetch`).
5
+ *
6
+ * Phase 6 of the harvest plan adds verified-fetch as an
7
+ * experimental retriever, sitting BEHIND the Filecoin provider
8
+ * boundary rather than the generic storage interface. Doing so
9
+ * lets us evaluate retrieval semantics without exposing a
10
+ * Filecoin-specific public API or letting `provider_details`
11
+ * JSONB drive arbitrary URL fetches.
12
+ *
13
+ * Security contract — every implementer MUST uphold:
14
+ *
15
+ * 1. **CID, not URL.** `get`'s input is a parsed `CID`
16
+ * (`multiformats/cid`), never a string URL. The
17
+ * implementation constructs the canonical
18
+ * `ipfs://<canonicalCidString>` form internally. Callers
19
+ * cannot pass an arbitrary URL — the type system rejects
20
+ * it.
21
+ *
22
+ * 2. **CID source provenance.** The `CID` argument MUST come
23
+ * from one of: the upload pipeline's just-computed root,
24
+ * a validated provider-client result, or a value that has
25
+ * already been validated via the SDK parser. Values read
26
+ * directly from `raw_storage_metadata` / `provider_details`
27
+ * JSONB are NEVER acceptable input — the parse-and-validate
28
+ * step must happen at the provider boundary first.
29
+ *
30
+ * 3. **Bounded lifecycle.** The retrieval respects
31
+ * `options.timeoutMs` via an `AbortSignal`. The
32
+ * implementation MUST clean up the underlying fetch handle
33
+ * (`stop()` / similar) on every code path — success,
34
+ * timeout, error — and MUST NOT leak network/event-loop
35
+ * resources.
36
+ *
37
+ * 4. **Sanitized errors.** Failures throw
38
+ * `FilecoinProviderError` with a closed `errorCode` literal.
39
+ * Raw vendor messages, stack traces, gateway URLs, peer
40
+ * IDs, multiaddrs, and IP addresses NEVER cross the
41
+ * boundary — only the documented stable codes:
42
+ * - `verified_fetch_failed` — generic vendor / retrieval
43
+ * failure (status ≥ 400 except 404; vendor throw).
44
+ * - `verified_fetch_timeout` — bounded lifecycle fired
45
+ * before completion.
46
+ * - `verified_fetch_not_found` — content not located on
47
+ * the IPFS network (HTTP 404).
48
+ * - `verified_fetch_unsupported` — the optional vendor
49
+ * package (or a transitive dep) is not installed; the
50
+ * retriever is unavailable in this build.
51
+ * - `verified_fetch_invalid_cid` — the supplied argument
52
+ * did not parse as a CID via `CID.parse`. Surfaced when
53
+ * a caller bypasses the TS signature.
54
+ * - `verified_fetch_body_too_large` — response body
55
+ * exceeded the configured `maxBodyBytes` ceiling.
56
+ *
57
+ * 5. **No credentials / private-IP exposure.** No private keys,
58
+ * wallet addresses, payment-rail details, or
59
+ * local/loopback addresses leak. The implementation MUST
60
+ * disable any vendor option that would connect over
61
+ * private/loopback networks by default.
62
+ */
63
+ import type { CID } from 'multiformats/cid';
64
+ export interface RetrieverGetOptions {
65
+ /** Per-call timeout in ms; the retriever wires this to an `AbortSignal`. */
66
+ readonly timeoutMs?: number;
67
+ }
68
+ export interface RetrieverGetResult {
69
+ /** Plaintext bytes addressed by the supplied CID. */
70
+ readonly body: Buffer;
71
+ /** Canonical multibase string form of the retrieved CID. */
72
+ readonly ipfsCid: string;
73
+ }
74
+ export interface FilecoinRetriever {
75
+ /**
76
+ * Retrieve the bytes addressed by `ipfsCid`. The CID MUST
77
+ * come from a validated provider-client result or the
78
+ * same-upload computed root — see the file header's security
79
+ * contract.
80
+ */
81
+ get(ipfsCid: CID, options?: RetrieverGetOptions): Promise<RetrieverGetResult>;
82
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @file Provider-local retriever interface — the seam between
3
+ * the Filecoin provider client and an alternative retrieval
4
+ * backend (e.g. `@helia/verified-fetch`).
5
+ *
6
+ * Phase 6 of the harvest plan adds verified-fetch as an
7
+ * experimental retriever, sitting BEHIND the Filecoin provider
8
+ * boundary rather than the generic storage interface. Doing so
9
+ * lets us evaluate retrieval semantics without exposing a
10
+ * Filecoin-specific public API or letting `provider_details`
11
+ * JSONB drive arbitrary URL fetches.
12
+ *
13
+ * Security contract — every implementer MUST uphold:
14
+ *
15
+ * 1. **CID, not URL.** `get`'s input is a parsed `CID`
16
+ * (`multiformats/cid`), never a string URL. The
17
+ * implementation constructs the canonical
18
+ * `ipfs://<canonicalCidString>` form internally. Callers
19
+ * cannot pass an arbitrary URL — the type system rejects
20
+ * it.
21
+ *
22
+ * 2. **CID source provenance.** The `CID` argument MUST come
23
+ * from one of: the upload pipeline's just-computed root,
24
+ * a validated provider-client result, or a value that has
25
+ * already been validated via the SDK parser. Values read
26
+ * directly from `raw_storage_metadata` / `provider_details`
27
+ * JSONB are NEVER acceptable input — the parse-and-validate
28
+ * step must happen at the provider boundary first.
29
+ *
30
+ * 3. **Bounded lifecycle.** The retrieval respects
31
+ * `options.timeoutMs` via an `AbortSignal`. The
32
+ * implementation MUST clean up the underlying fetch handle
33
+ * (`stop()` / similar) on every code path — success,
34
+ * timeout, error — and MUST NOT leak network/event-loop
35
+ * resources.
36
+ *
37
+ * 4. **Sanitized errors.** Failures throw
38
+ * `FilecoinProviderError` with a closed `errorCode` literal.
39
+ * Raw vendor messages, stack traces, gateway URLs, peer
40
+ * IDs, multiaddrs, and IP addresses NEVER cross the
41
+ * boundary — only the documented stable codes:
42
+ * - `verified_fetch_failed` — generic vendor / retrieval
43
+ * failure (status ≥ 400 except 404; vendor throw).
44
+ * - `verified_fetch_timeout` — bounded lifecycle fired
45
+ * before completion.
46
+ * - `verified_fetch_not_found` — content not located on
47
+ * the IPFS network (HTTP 404).
48
+ * - `verified_fetch_unsupported` — the optional vendor
49
+ * package (or a transitive dep) is not installed; the
50
+ * retriever is unavailable in this build.
51
+ * - `verified_fetch_invalid_cid` — the supplied argument
52
+ * did not parse as a CID via `CID.parse`. Surfaced when
53
+ * a caller bypasses the TS signature.
54
+ * - `verified_fetch_body_too_large` — response body
55
+ * exceeded the configured `maxBodyBytes` ceiling.
56
+ *
57
+ * 5. **No credentials / private-IP exposure.** No private keys,
58
+ * wallet addresses, payment-rail details, or
59
+ * local/loopback addresses leak. The implementation MUST
60
+ * disable any vendor option that would connect over
61
+ * private/loopback networks by default.
62
+ */
63
+ export {};
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file Test-only `FilecoinProviderClient` whose every
3
+ * operation throws `FilecoinNotImplementedError` and whose
4
+ * `checkReadiness` reports every required check as
5
+ * `'unknown' / 'not_implemented'`.
6
+ *
7
+ * Used by tests that need to construct a `FilecoinRawContentStore`
8
+ * without standing up a real Synapse instance. The test
9
+ * "bare selection" runtime path (`createFilecoinStorageBackend(null)`)
10
+ * has been removed — `src/storage/factory.ts` now throws when
11
+ * `rawStorageProvider='filecoin'` and `filecoinProvider` is null,
12
+ * so this class never reaches the production composition root.
13
+ *
14
+ * The real Synapse-backed implementation lives in
15
+ * `synapse-client.ts` and is constructed via
16
+ * `synapse-construction.ts` from a parsed `FilecoinProviderConfig`.
17
+ */
18
+ import type { FilecoinDeleteInput, FilecoinDeleteResult, FilecoinGetInput, FilecoinGetResult, FilecoinHeadInput, FilecoinHeadResult, FilecoinProviderClient, FilecoinPutInput, FilecoinPutResult, FilecoinReadinessCheck, FilecoinReadinessNetwork, FilecoinVerifyInput, FilecoinVerifyResult } from './provider-client.js';
19
+ export declare class SkeletonFilecoinProviderClient implements FilecoinProviderClient {
20
+ readonly provider: "filecoin";
21
+ readonly driver: "synapse";
22
+ put(_input: FilecoinPutInput): Promise<FilecoinPutResult>;
23
+ get(_input: FilecoinGetInput): Promise<FilecoinGetResult>;
24
+ head(_input: FilecoinHeadInput): Promise<FilecoinHeadResult>;
25
+ delete(_input: FilecoinDeleteInput): Promise<FilecoinDeleteResult>;
26
+ verify(_input: FilecoinVerifyInput): Promise<FilecoinVerifyResult>;
27
+ /**
28
+ * The test client reports every documented required check as
29
+ * `'unknown' / 'not_implemented'`. The aggregate
30
+ * (`aggregateFilecoinReadiness`) collapses this to
31
+ * `ready: false`, which is exactly the contract for a
32
+ * non-Synapse-backed deployment.
33
+ */
34
+ checkReadiness(_network: FilecoinReadinessNetwork): Promise<ReadonlyArray<FilecoinReadinessCheck>>;
35
+ getServiceMinUploadBytes(): Promise<number>;
36
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @file Test-only `FilecoinProviderClient` whose every
3
+ * operation throws `FilecoinNotImplementedError` and whose
4
+ * `checkReadiness` reports every required check as
5
+ * `'unknown' / 'not_implemented'`.
6
+ *
7
+ * Used by tests that need to construct a `FilecoinRawContentStore`
8
+ * without standing up a real Synapse instance. The test
9
+ * "bare selection" runtime path (`createFilecoinStorageBackend(null)`)
10
+ * has been removed — `src/storage/factory.ts` now throws when
11
+ * `rawStorageProvider='filecoin'` and `filecoinProvider` is null,
12
+ * so this class never reaches the production composition root.
13
+ *
14
+ * The real Synapse-backed implementation lives in
15
+ * `synapse-client.ts` and is constructed via
16
+ * `synapse-construction.ts` from a parsed `FilecoinProviderConfig`.
17
+ */
18
+ import { FilecoinNotImplementedError } from './errors.js';
19
+ import { FILECOIN_READINESS_REQUIRED_CHECKS } from './readiness.js';
20
+ export class SkeletonFilecoinProviderClient {
21
+ provider = 'filecoin';
22
+ driver = 'synapse';
23
+ async put(_input) {
24
+ throw new FilecoinNotImplementedError('put');
25
+ }
26
+ async get(_input) {
27
+ throw new FilecoinNotImplementedError('get');
28
+ }
29
+ async head(_input) {
30
+ throw new FilecoinNotImplementedError('head');
31
+ }
32
+ async delete(_input) {
33
+ throw new FilecoinNotImplementedError('delete');
34
+ }
35
+ async verify(_input) {
36
+ throw new FilecoinNotImplementedError('verify');
37
+ }
38
+ /**
39
+ * The test client reports every documented required check as
40
+ * `'unknown' / 'not_implemented'`. The aggregate
41
+ * (`aggregateFilecoinReadiness`) collapses this to
42
+ * `ready: false`, which is exactly the contract for a
43
+ * non-Synapse-backed deployment.
44
+ */
45
+ async checkReadiness(_network) {
46
+ return FILECOIN_READINESS_REQUIRED_CHECKS.map((name) => ({
47
+ name,
48
+ status: 'unknown',
49
+ errorCode: 'not_implemented',
50
+ }));
51
+ }
52
+ async getServiceMinUploadBytes() {
53
+ throw new FilecoinNotImplementedError('getServiceMinUploadBytes');
54
+ }
55
+ }
@@ -0,0 +1,169 @@
1
+ /**
2
+ * @file Synapse-driver implementation of `FilecoinProviderClient`.
3
+ *
4
+ * Wraps a constructed `Synapse` instance and translates the
5
+ * AtomicMemory-shaped boundary onto the SDK surface:
6
+ *
7
+ * - `put` → `synapse.storage.upload`
8
+ * - `get` → `synapse.storage.download`
9
+ * - `head` → `findDataSets` + `createContext` + `pieceStatus`
10
+ * - `delete` → `findDataSets` + `createContext` + `deletePiece`
11
+ * - `verify` → `get` + plaintext SHA-256 comparison
12
+ *
13
+ * Vendor types (`UploadResult`, `PieceCID`, `Hash`, ...) stay inside
14
+ * this file; the boundary surface (`FilecoinPutResult`, etc.) is
15
+ * the only shape that escapes the provider package.
16
+ *
17
+ * Sanitization: every Synapse error caught here is replaced with
18
+ * `FilecoinProviderError` + a stable `errorCode`. Raw vendor
19
+ * messages, wallet addresses, payment-rail state, and signed
20
+ * requests do not survive the boundary.
21
+ */
22
+ import type { PieceCID, PieceStatus, UploadResult } from '@filoz/synapse-sdk';
23
+ import type { FilecoinDeleteInput, FilecoinDeleteResult, FilecoinGetInput, FilecoinGetResult, FilecoinHeadInput, FilecoinHeadResult, FilecoinProviderClient, FilecoinPutInput, FilecoinPutResult, FilecoinReadinessCheck, FilecoinReadinessNetwork, FilecoinVerifyInput, FilecoinVerifyResult } from './provider-client.js';
24
+ /**
25
+ * Narrow subset of `Synapse` that `SynapseFilecoinProviderClient`
26
+ * actually depends on. Structural — production code passes the
27
+ * real `Synapse` instance; tests pass a hand-rolled fake exposing
28
+ * only the methods exercised.
29
+ */
30
+ export interface SynapseLike {
31
+ readonly storage: SynapseStorageLike;
32
+ readonly chain: SynapseChainLike;
33
+ readonly client: SynapseClientLike;
34
+ }
35
+ export interface SynapseChainLike {
36
+ readonly id: number | bigint;
37
+ }
38
+ export interface SynapseClientLike {
39
+ getChainId(): Promise<number | bigint>;
40
+ }
41
+ export interface SynapseStorageLike {
42
+ upload(data: Uint8Array, options?: SynapseUploadOptionsLike): Promise<UploadResult>;
43
+ download(options: SynapseDownloadOptionsLike): Promise<Uint8Array>;
44
+ findDataSets(options?: {
45
+ readonly address?: `0x${string}`;
46
+ }): Promise<ReadonlyArray<SynapseDataSetInfoLike>>;
47
+ createContext(options?: SynapseCreateContextOptionsLike): Promise<SynapseContextLike>;
48
+ getStorageInfo(): Promise<SynapseStorageInfoLike>;
49
+ getUploadCosts(options: {
50
+ readonly dataSize: bigint;
51
+ readonly withCDN?: boolean;
52
+ }): Promise<{
53
+ readonly ready: boolean;
54
+ }>;
55
+ }
56
+ export interface SynapseStorageInfoLike {
57
+ readonly providers: ReadonlyArray<SynapseProviderInfoLike>;
58
+ readonly serviceParameters: {
59
+ readonly minUploadSize: number;
60
+ readonly maxUploadSize: number;
61
+ };
62
+ readonly allowances: {
63
+ readonly isApproved: boolean;
64
+ readonly rateAllowance: bigint;
65
+ readonly rateUsed: bigint;
66
+ readonly lockupAllowance: bigint;
67
+ readonly lockupUsed: bigint;
68
+ } | null;
69
+ }
70
+ export interface SynapseProviderInfoLike {
71
+ readonly id: bigint;
72
+ }
73
+ export interface SynapseUploadOptionsLike {
74
+ readonly copies?: number;
75
+ readonly providerIds?: ReadonlyArray<bigint>;
76
+ readonly metadata?: Readonly<Record<string, string>>;
77
+ readonly pieceMetadata?: Readonly<Record<string, string>>;
78
+ readonly signal?: AbortSignal;
79
+ }
80
+ export interface SynapseDownloadOptionsLike {
81
+ readonly pieceCid: string | PieceCID;
82
+ readonly withCDN?: boolean;
83
+ readonly signal?: AbortSignal;
84
+ }
85
+ export interface SynapseCreateContextOptionsLike {
86
+ readonly dataSetId?: bigint;
87
+ readonly providerId?: bigint;
88
+ }
89
+ export interface SynapseDataSetInfoLike {
90
+ readonly dataSetId: bigint;
91
+ readonly providerId: bigint;
92
+ readonly isLive?: boolean;
93
+ }
94
+ export interface SynapseContextLike {
95
+ readonly dataSetId: bigint | undefined;
96
+ pieceStatus(options: {
97
+ readonly pieceCid: string | PieceCID;
98
+ }): Promise<PieceStatus | null>;
99
+ deletePiece(options: {
100
+ readonly piece: string | PieceCID | bigint;
101
+ }): Promise<`0x${string}`>;
102
+ }
103
+ /**
104
+ * Per-instance options the production factory threads in from the
105
+ * parsed `FilecoinProviderConfig`. The Synapse SDK takes
106
+ * provider/copy/metadata hints PER UPLOAD CALL, so we hold them on
107
+ * the client and merge with per-input overrides in `put`. The
108
+ * timeout fields are operator-configured defaults wired from
109
+ * `RAW_STORAGE_FILECOIN_UPLOAD_TIMEOUT_MS` and
110
+ * `RAW_STORAGE_FILECOIN_RETRIEVAL_TIMEOUT_MS`; per-call
111
+ * `input.timeoutMs` overrides them when supplied.
112
+ */
113
+ export interface SynapseProviderClientOptions {
114
+ readonly copies?: number | null;
115
+ readonly providerIds?: ReadonlyArray<string>;
116
+ readonly dataSetMetadata?: Readonly<Record<string, string>>;
117
+ readonly withCdn?: boolean;
118
+ readonly uploadTimeoutMs?: number | null;
119
+ readonly retrievalTimeoutMs?: number | null;
120
+ /**
121
+ * Configured min/max upload size thresholds from
122
+ * `RAW_STORAGE_FILECOIN_MIN_UPLOAD_BYTES` /
123
+ * `RAW_STORAGE_FILECOIN_MAX_UPLOAD_BYTES`. Used only by
124
+ * `checkReadiness` (`upload_size_bounds_compatible`) —
125
+ * may extend this to also gate `put` at the adapter level.
126
+ */
127
+ readonly minUploadBytes?: number | null;
128
+ readonly maxUploadBytes?: number | null;
129
+ }
130
+ export declare class SynapseFilecoinProviderClient implements FilecoinProviderClient {
131
+ private readonly synapse;
132
+ private readonly options;
133
+ readonly provider: "filecoin";
134
+ readonly driver: "synapse";
135
+ constructor(synapse: SynapseLike, options?: SynapseProviderClientOptions);
136
+ put(input: FilecoinPutInput): Promise<FilecoinPutResult>;
137
+ private callSynapseUpload;
138
+ get(input: FilecoinGetInput): Promise<FilecoinGetResult>;
139
+ private callSynapseDownload;
140
+ head(input: FilecoinHeadInput): Promise<FilecoinHeadResult>;
141
+ delete(input: FilecoinDeleteInput): Promise<FilecoinDeleteResult>;
142
+ checkReadiness(network: FilecoinReadinessNetwork): Promise<ReadonlyArray<FilecoinReadinessCheck>>;
143
+ /**
144
+ * Non-mutating SDK read of the service-advertised minimum
145
+ * upload size in bytes. Exposed for preflight/sizing callers
146
+ * (e.g. the live calibration smoke test) that need to size
147
+ * payloads against the provider's real contract rather than a
148
+ * baked-in constant. Errors map onto
149
+ * `filecoin_storage_info_failed`; vendor strings stay inside.
150
+ */
151
+ getServiceMinUploadBytes(): Promise<number>;
152
+ private readinessOptions;
153
+ verify(input: FilecoinVerifyInput): Promise<FilecoinVerifyResult>;
154
+ /**
155
+ * Resolve the StorageContext that holds `pieceCid`. When the
156
+ * caller supplied `dataSetIdHint`, build a context for that
157
+ * specific data set; otherwise iterate the signer's data sets via
158
+ * `findDataSets` and probe each with `pieceStatus`. Returns the
159
+ * first context whose `pieceStatus` is non-null.
160
+ */
161
+ private locateContext;
162
+ /**
163
+ * Variant of `locateContext` that returns the `PieceStatus`
164
+ * directly. Used by `head` so the caller doesn't have to issue a
165
+ * second `pieceStatus` call to read the status it already
166
+ * located.
167
+ */
168
+ private locatePieceStatus;
169
+ }