@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.
- package/CHANGELOG.md +27 -0
- package/LICENSE +201 -0
- package/README.md +314 -0
- package/dist/app/bind-ephemeral.d.ts +18 -0
- package/dist/app/bind-ephemeral.js +22 -0
- package/dist/app/cors-headers.d.ts +12 -0
- package/dist/app/cors-headers.js +18 -0
- package/dist/app/create-app.d.ts +25 -0
- package/dist/app/create-app.js +156 -0
- package/dist/app/runtime-config-route-snapshot.d.ts +27 -0
- package/dist/app/runtime-config-route-snapshot.js +27 -0
- package/dist/app/runtime-container.d.ts +281 -0
- package/dist/app/runtime-container.js +297 -0
- package/dist/app/startup-checks.d.ts +28 -0
- package/dist/app/startup-checks.js +45 -0
- package/dist/bin.d.ts +17 -0
- package/dist/bin.js +128 -0
- package/dist/config.d.ts +680 -0
- package/dist/config.js +808 -0
- package/dist/db/agent-trust-repository.d.ts +49 -0
- package/dist/db/agent-trust-repository.js +66 -0
- package/dist/db/belief-edges-repository.d.ts +68 -0
- package/dist/db/belief-edges-repository.js +124 -0
- package/dist/db/claim-repository.d.ts +6 -0
- package/dist/db/claim-repository.js +4 -0
- package/dist/db/contradictions-repository.d.ts +56 -0
- package/dist/db/contradictions-repository.js +88 -0
- package/dist/db/document-chunk-repository.d.ts +48 -0
- package/dist/db/document-chunk-repository.js +145 -0
- package/dist/db/document-chunk-types.d.ts +35 -0
- package/dist/db/document-chunk-types.js +9 -0
- package/dist/db/document-list-cursor.d.ts +45 -0
- package/dist/db/document-list-cursor.js +111 -0
- package/dist/db/document-list-repository.d.ts +103 -0
- package/dist/db/document-list-repository.js +204 -0
- package/dist/db/entity-cards-repository.d.ts +37 -0
- package/dist/db/entity-cards-repository.js +46 -0
- package/dist/db/entity-values-repository.d.ts +26 -0
- package/dist/db/entity-values-repository.js +57 -0
- package/dist/db/link-repository.d.ts +30 -0
- package/dist/db/link-repository.js +54 -0
- package/dist/db/memory-repository.d.ts +163 -0
- package/dist/db/memory-repository.js +232 -0
- package/dist/db/migrate.d.ts +6 -0
- package/dist/db/migrate.js +36 -0
- package/dist/db/mmr.d.ts +14 -0
- package/dist/db/mmr.js +57 -0
- package/dist/db/passport-feed-repository.d.ts +91 -0
- package/dist/db/passport-feed-repository.js +198 -0
- package/dist/db/pg-episode-store.d.ts +19 -0
- package/dist/db/pg-episode-store.js +17 -0
- package/dist/db/pg-link-store.d.ts +17 -0
- package/dist/db/pg-link-store.js +14 -0
- package/dist/db/pg-memory-store.d.ts +68 -0
- package/dist/db/pg-memory-store.js +53 -0
- package/dist/db/pg-recap-store.d.ts +13 -0
- package/dist/db/pg-recap-store.js +19 -0
- package/dist/db/pg-representation-store.d.ts +17 -0
- package/dist/db/pg-representation-store.js +17 -0
- package/dist/db/pg-search-store.d.ts +29 -0
- package/dist/db/pg-search-store.js +47 -0
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +21 -0
- package/dist/db/ppr.d.ts +56 -0
- package/dist/db/ppr.js +178 -0
- package/dist/db/query-helpers.d.ts +44 -0
- package/dist/db/query-helpers.js +60 -0
- package/dist/db/raw-doc-artifact-sync.d.ts +128 -0
- package/dist/db/raw-doc-artifact-sync.js +259 -0
- package/dist/db/raw-document-blob-repository.d.ts +148 -0
- package/dist/db/raw-document-blob-repository.js +300 -0
- package/dist/db/raw-document-repository.d.ts +104 -0
- package/dist/db/raw-document-repository.js +410 -0
- package/dist/db/raw-document-status-repository.d.ts +122 -0
- package/dist/db/raw-document-status-repository.js +183 -0
- package/dist/db/raw-document-types.d.ts +236 -0
- package/dist/db/raw-document-types.js +10 -0
- package/dist/db/raw-storage-reconciliation-repository.d.ts +110 -0
- package/dist/db/raw-storage-reconciliation-repository.js +200 -0
- package/dist/db/reflection-jobs-repository.d.ts +33 -0
- package/dist/db/reflection-jobs-repository.js +48 -0
- package/dist/db/reflections-repository.d.ts +41 -0
- package/dist/db/reflections-repository.js +83 -0
- package/dist/db/repository-claims.d.ts +141 -0
- package/dist/db/repository-claims.js +376 -0
- package/dist/db/repository-deferred-audn.d.ts +33 -0
- package/dist/db/repository-deferred-audn.js +69 -0
- package/dist/db/repository-document-delete.d.ts +53 -0
- package/dist/db/repository-document-delete.js +156 -0
- package/dist/db/repository-entities.d.ts +114 -0
- package/dist/db/repository-entities.js +317 -0
- package/dist/db/repository-entity-attributes.d.ts +41 -0
- package/dist/db/repository-entity-attributes.js +65 -0
- package/dist/db/repository-entity-graph.d.ts +32 -0
- package/dist/db/repository-entity-graph.js +87 -0
- package/dist/db/repository-first-mentions.d.ts +41 -0
- package/dist/db/repository-first-mentions.js +79 -0
- package/dist/db/repository-lessons.d.ts +51 -0
- package/dist/db/repository-lessons.js +90 -0
- package/dist/db/repository-links.d.ts +26 -0
- package/dist/db/repository-links.js +105 -0
- package/dist/db/repository-observation.d.ts +26 -0
- package/dist/db/repository-observation.js +51 -0
- package/dist/db/repository-read.d.ts +56 -0
- package/dist/db/repository-read.js +271 -0
- package/dist/db/repository-recaps.d.ts +59 -0
- package/dist/db/repository-recaps.js +158 -0
- package/dist/db/repository-representations.d.ts +48 -0
- package/dist/db/repository-representations.js +162 -0
- package/dist/db/repository-temporal-state.d.ts +35 -0
- package/dist/db/repository-temporal-state.js +46 -0
- package/dist/db/repository-tll.d.ts +88 -0
- package/dist/db/repository-tll.js +179 -0
- package/dist/db/repository-types.d.ts +313 -0
- package/dist/db/repository-types.js +142 -0
- package/dist/db/repository-user-profiles.d.ts +17 -0
- package/dist/db/repository-user-profiles.js +28 -0
- package/dist/db/repository-vector-search.d.ts +33 -0
- package/dist/db/repository-vector-search.js +373 -0
- package/dist/db/repository-wipe.d.ts +34 -0
- package/dist/db/repository-wipe.js +94 -0
- package/dist/db/repository-write.d.ts +61 -0
- package/dist/db/repository-write.js +279 -0
- package/dist/db/schema.sql +1355 -0
- package/dist/db/storage-artifact-delete-tx.d.ts +56 -0
- package/dist/db/storage-artifact-delete-tx.js +123 -0
- package/dist/db/storage-artifact-providers.d.ts +21 -0
- package/dist/db/storage-artifact-providers.js +21 -0
- package/dist/db/storage-artifact-recovery-repository.d.ts +66 -0
- package/dist/db/storage-artifact-recovery-repository.js +58 -0
- package/dist/db/storage-artifact-repository.d.ts +329 -0
- package/dist/db/storage-artifact-repository.js +497 -0
- package/dist/db/stores.d.ts +220 -0
- package/dist/db/stores.js +12 -0
- package/dist/db/summaries-repository.d.ts +74 -0
- package/dist/db/summaries-repository.js +125 -0
- package/dist/eval/beam-10m-loader.d.ts +98 -0
- package/dist/eval/beam-10m-loader.js +128 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +17 -0
- package/dist/middleware/require-bearer.d.ts +27 -0
- package/dist/middleware/require-bearer.js +60 -0
- package/dist/middleware/validate-response.d.ts +33 -0
- package/dist/middleware/validate-response.js +55 -0
- package/dist/middleware/validate.d.ts +43 -0
- package/dist/middleware/validate.js +85 -0
- package/dist/routes/agents.d.ts +13 -0
- package/dist/routes/agents.js +89 -0
- package/dist/routes/document-response-formatters.d.ts +98 -0
- package/dist/routes/document-response-formatters.js +243 -0
- package/dist/routes/documents.d.ts +74 -0
- package/dist/routes/documents.js +425 -0
- package/dist/routes/memories.d.ts +29 -0
- package/dist/routes/memories.js +725 -0
- package/dist/routes/memory-response-formatters.d.ts +179 -0
- package/dist/routes/memory-response-formatters.js +210 -0
- package/dist/routes/public-raw-storage-metadata.d.ts +54 -0
- package/dist/routes/public-raw-storage-metadata.js +56 -0
- package/dist/routes/reflect.d.ts +14 -0
- package/dist/routes/reflect.js +19 -0
- package/dist/routes/response-schema-map.d.ts +14 -0
- package/dist/routes/response-schema-map.js +69 -0
- package/dist/routes/route-errors.d.ts +12 -0
- package/dist/routes/route-errors.js +30 -0
- package/dist/routes/storage-error-handlers.d.ts +34 -0
- package/dist/routes/storage-error-handlers.js +185 -0
- package/dist/routes/storage-response-formatters.d.ts +44 -0
- package/dist/routes/storage-response-formatters.js +155 -0
- package/dist/routes/storage.d.ts +38 -0
- package/dist/routes/storage.js +369 -0
- package/dist/routes/upstream-provider-errors.d.ts +19 -0
- package/dist/routes/upstream-provider-errors.js +95 -0
- package/dist/schemas/agents.d.ts +79 -0
- package/dist/schemas/agents.js +126 -0
- package/dist/schemas/common.d.ts +110 -0
- package/dist/schemas/common.js +190 -0
- package/dist/schemas/document-list-responses.d.ts +102 -0
- package/dist/schemas/document-list-responses.js +87 -0
- package/dist/schemas/document-list-schemas.d.ts +123 -0
- package/dist/schemas/document-list-schemas.js +174 -0
- package/dist/schemas/document-response-schemas.d.ts +610 -0
- package/dist/schemas/document-response-schemas.js +264 -0
- package/dist/schemas/document-status-envelope.d.ts +48 -0
- package/dist/schemas/document-status-envelope.js +54 -0
- package/dist/schemas/documents.d.ts +292 -0
- package/dist/schemas/documents.js +449 -0
- package/dist/schemas/errors.d.ts +75 -0
- package/dist/schemas/errors.js +105 -0
- package/dist/schemas/memories.d.ts +378 -0
- package/dist/schemas/memories.js +542 -0
- package/dist/schemas/openapi.d.ts +24 -0
- package/dist/schemas/openapi.js +1038 -0
- package/dist/schemas/response-scalars.d.ts +10 -0
- package/dist/schemas/response-scalars.js +10 -0
- package/dist/schemas/responses.d.ts +536 -0
- package/dist/schemas/responses.js +350 -0
- package/dist/schemas/search-response-parts.d.ts +97 -0
- package/dist/schemas/search-response-parts.js +103 -0
- package/dist/schemas/storage-schemas.d.ts +175 -0
- package/dist/schemas/storage-schemas.js +277 -0
- package/dist/schemas/zod-setup.d.ts +15 -0
- package/dist/schemas/zod-setup.js +17 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.js +57 -0
- package/dist/services/abstract-query-policy.d.ts +13 -0
- package/dist/services/abstract-query-policy.js +50 -0
- package/dist/services/affinity-clustering.d.ts +66 -0
- package/dist/services/affinity-clustering.js +125 -0
- package/dist/services/agentic-retrieval.d.ts +38 -0
- package/dist/services/agentic-retrieval.js +126 -0
- package/dist/services/answer-format.d.ts +56 -0
- package/dist/services/answer-format.js +118 -0
- package/dist/services/answer-rescue.d.ts +72 -0
- package/dist/services/answer-rescue.js +177 -0
- package/dist/services/answer-verifier.d.ts +24 -0
- package/dist/services/answer-verifier.js +73 -0
- package/dist/services/api-retry.d.ts +6 -0
- package/dist/services/api-retry.js +41 -0
- package/dist/services/assistant-turn-filter.d.ts +20 -0
- package/dist/services/assistant-turn-filter.js +69 -0
- package/dist/services/atomicmem-uri.d.ts +33 -0
- package/dist/services/atomicmem-uri.js +86 -0
- package/dist/services/audit-events.d.ts +54 -0
- package/dist/services/audit-events.js +56 -0
- package/dist/services/chunked-extraction.d.ts +21 -0
- package/dist/services/chunked-extraction.js +108 -0
- package/dist/services/claim-slotting.d.ts +27 -0
- package/dist/services/claim-slotting.js +38 -0
- package/dist/services/claude-code-llm.d.ts +19 -0
- package/dist/services/claude-code-llm.js +96 -0
- package/dist/services/composite-dedup.d.ts +50 -0
- package/dist/services/composite-dedup.js +153 -0
- package/dist/services/composite-grouping.d.ts +41 -0
- package/dist/services/composite-grouping.js +111 -0
- package/dist/services/composite-staleness.d.ts +20 -0
- package/dist/services/composite-staleness.js +50 -0
- package/dist/services/conciseness-preference.d.ts +14 -0
- package/dist/services/conciseness-preference.js +42 -0
- package/dist/services/conflict-policy.d.ts +20 -0
- package/dist/services/conflict-policy.js +335 -0
- package/dist/services/consensus-extraction.d.ts +39 -0
- package/dist/services/consensus-extraction.js +147 -0
- package/dist/services/consensus-validation.d.ts +52 -0
- package/dist/services/consensus-validation.js +206 -0
- package/dist/services/consolidation-service.d.ts +60 -0
- package/dist/services/consolidation-service.js +171 -0
- package/dist/services/content-detection.d.ts +18 -0
- package/dist/services/content-detection.js +25 -0
- package/dist/services/contradiction-surfacing.d.ts +62 -0
- package/dist/services/contradiction-surfacing.js +111 -0
- package/dist/services/cost-telemetry.d.ts +39 -0
- package/dist/services/cost-telemetry.js +58 -0
- package/dist/services/counter-evidence.d.ts +34 -0
- package/dist/services/counter-evidence.js +92 -0
- package/dist/services/current-state-ranking.d.ts +21 -0
- package/dist/services/current-state-ranking.js +152 -0
- package/dist/services/deferred-audn.d.ts +47 -0
- package/dist/services/deferred-audn.js +162 -0
- package/dist/services/document-chunker.d.ts +50 -0
- package/dist/services/document-chunker.js +153 -0
- package/dist/services/document-failure-markers.d.ts +91 -0
- package/dist/services/document-failure-markers.js +305 -0
- package/dist/services/document-indexer.d.ts +122 -0
- package/dist/services/document-indexer.js +405 -0
- package/dist/services/document-service.d.ts +245 -0
- package/dist/services/document-service.js +325 -0
- package/dist/services/document-upload-artifact-sync.d.ts +80 -0
- package/dist/services/document-upload-artifact-sync.js +162 -0
- package/dist/services/document-upload-beta2-recovery.d.ts +72 -0
- package/dist/services/document-upload-beta2-recovery.js +94 -0
- package/dist/services/document-upload.d.ts +44 -0
- package/dist/services/document-upload.js +353 -0
- package/dist/services/embedding.d.ts +57 -0
- package/dist/services/embedding.js +416 -0
- package/dist/services/entity-attribute-extractor.d.ts +34 -0
- package/dist/services/entity-attribute-extractor.js +117 -0
- package/dist/services/entity-card-synthesis.d.ts +54 -0
- package/dist/services/entity-card-synthesis.js +92 -0
- package/dist/services/entity-dedup.d.ts +9 -0
- package/dist/services/entity-dedup.js +14 -0
- package/dist/services/entity-graph.d.ts +17 -0
- package/dist/services/entity-graph.js +135 -0
- package/dist/services/entropy-gate.d.ts +52 -0
- package/dist/services/entropy-gate.js +56 -0
- package/dist/services/episode-fetcher.d.ts +47 -0
- package/dist/services/episode-fetcher.js +128 -0
- package/dist/services/event-anchor-facts.d.ts +8 -0
- package/dist/services/event-anchor-facts.js +205 -0
- package/dist/services/event-chain-detector.d.ts +52 -0
- package/dist/services/event-chain-detector.js +83 -0
- package/dist/services/extraction-cache.d.ts +9 -0
- package/dist/services/extraction-cache.js +54 -0
- package/dist/services/extraction-enrichment.d.ts +9 -0
- package/dist/services/extraction-enrichment.js +223 -0
- package/dist/services/extraction.d.ts +69 -0
- package/dist/services/extraction.js +596 -0
- package/dist/services/fact-normalization.d.ts +12 -0
- package/dist/services/fact-normalization.js +248 -0
- package/dist/services/filecoin-observability.d.ts +127 -0
- package/dist/services/filecoin-observability.js +200 -0
- package/dist/services/first-mention-service.d.ts +76 -0
- package/dist/services/first-mention-service.js +186 -0
- package/dist/services/hierarchical-retrieval.d.ts +49 -0
- package/dist/services/hierarchical-retrieval.js +50 -0
- package/dist/services/ingest-fact-pipeline.d.ts +32 -0
- package/dist/services/ingest-fact-pipeline.js +212 -0
- package/dist/services/ingest-post-write.d.ts +50 -0
- package/dist/services/ingest-post-write.js +117 -0
- package/dist/services/ingest-trace.d.ts +32 -0
- package/dist/services/ingest-trace.js +60 -0
- package/dist/services/input-sanitizer.d.ts +41 -0
- package/dist/services/input-sanitizer.js +135 -0
- package/dist/services/iterative-retrieval.d.ts +26 -0
- package/dist/services/iterative-retrieval.js +139 -0
- package/dist/services/keyword-expansion.d.ts +10 -0
- package/dist/services/keyword-expansion.js +26 -0
- package/dist/services/lesson-service.d.ts +68 -0
- package/dist/services/lesson-service.js +178 -0
- package/dist/services/literal-extractor.d.ts +16 -0
- package/dist/services/literal-extractor.js +74 -0
- package/dist/services/literal-list-protection.d.ts +17 -0
- package/dist/services/literal-list-protection.js +134 -0
- package/dist/services/literal-query-expansion.d.ts +20 -0
- package/dist/services/literal-query-expansion.js +181 -0
- package/dist/services/llm.d.ts +61 -0
- package/dist/services/llm.js +265 -0
- package/dist/services/memcell-projection.d.ts +17 -0
- package/dist/services/memcell-projection.js +41 -0
- package/dist/services/memory-audn.d.ts +43 -0
- package/dist/services/memory-audn.js +419 -0
- package/dist/services/memory-crud.d.ts +93 -0
- package/dist/services/memory-crud.js +255 -0
- package/dist/services/memory-ingest.d.ts +21 -0
- package/dist/services/memory-ingest.js +249 -0
- package/dist/services/memory-lifecycle.d.ts +75 -0
- package/dist/services/memory-lifecycle.js +108 -0
- package/dist/services/memory-lineage.d.ts +181 -0
- package/dist/services/memory-lineage.js +232 -0
- package/dist/services/memory-network.d.ts +40 -0
- package/dist/services/memory-network.js +75 -0
- package/dist/services/memory-search-types.d.ts +25 -0
- package/dist/services/memory-search-types.js +10 -0
- package/dist/services/memory-search.d.ts +48 -0
- package/dist/services/memory-search.js +505 -0
- package/dist/services/memory-service-types.d.ts +371 -0
- package/dist/services/memory-service-types.js +8 -0
- package/dist/services/memory-service.d.ts +152 -0
- package/dist/services/memory-service.js +225 -0
- package/dist/services/memory-storage.d.ts +33 -0
- package/dist/services/memory-storage.js +328 -0
- package/dist/services/msr-aggregator.d.ts +38 -0
- package/dist/services/msr-aggregator.js +97 -0
- package/dist/services/msr-detector.d.ts +35 -0
- package/dist/services/msr-detector.js +65 -0
- package/dist/services/namespace-retrieval.d.ts +60 -0
- package/dist/services/namespace-retrieval.js +180 -0
- package/dist/services/observation-date-extraction.d.ts +12 -0
- package/dist/services/observation-date-extraction.js +50 -0
- package/dist/services/observation-service.d.ts +27 -0
- package/dist/services/observation-service.js +84 -0
- package/dist/services/packaging-observability.d.ts +29 -0
- package/dist/services/packaging-observability.js +146 -0
- package/dist/services/query-expansion.d.ts +83 -0
- package/dist/services/query-expansion.js +242 -0
- package/dist/services/query-keyword-matches.d.ts +6 -0
- package/dist/services/query-keyword-matches.js +56 -0
- package/dist/services/query-term-visibility.d.ts +28 -0
- package/dist/services/query-term-visibility.js +100 -0
- package/dist/services/quick-extraction.d.ts +25 -0
- package/dist/services/quick-extraction.js +431 -0
- package/dist/services/quoted-entity-extraction.d.ts +10 -0
- package/dist/services/quoted-entity-extraction.js +161 -0
- package/dist/services/raw-storage-reconciler-backoff.d.ts +8 -0
- package/dist/services/raw-storage-reconciler-backoff.js +14 -0
- package/dist/services/raw-storage-reconciler-scheduler.d.ts +29 -0
- package/dist/services/raw-storage-reconciler-scheduler.js +43 -0
- package/dist/services/raw-storage-reconciler.d.ts +71 -0
- package/dist/services/raw-storage-reconciler.js +278 -0
- package/dist/services/recap-builder.d.ts +49 -0
- package/dist/services/recap-builder.js +157 -0
- package/dist/services/reflect-jobs.d.ts +23 -0
- package/dist/services/reflect-jobs.js +36 -0
- package/dist/services/reflect-prompts.d.ts +71 -0
- package/dist/services/reflect-prompts.js +99 -0
- package/dist/services/reflect-retrieval.d.ts +33 -0
- package/dist/services/reflect-retrieval.js +30 -0
- package/dist/services/reflect.d.ts +49 -0
- package/dist/services/reflect.js +84 -0
- package/dist/services/relative-temporal.d.ts +14 -0
- package/dist/services/relative-temporal.js +163 -0
- package/dist/services/relevance-policy.d.ts +37 -0
- package/dist/services/relevance-policy.js +109 -0
- package/dist/services/rerank.d.ts +32 -0
- package/dist/services/rerank.js +118 -0
- package/dist/services/reranker.d.ts +20 -0
- package/dist/services/reranker.js +99 -0
- package/dist/services/retrieval-channel-rules.d.ts +34 -0
- package/dist/services/retrieval-channel-rules.js +41 -0
- package/dist/services/retrieval-config-overlay.d.ts +36 -0
- package/dist/services/retrieval-config-overlay.js +44 -0
- package/dist/services/retrieval-format.d.ts +119 -0
- package/dist/services/retrieval-format.js +559 -0
- package/dist/services/retrieval-policy.d.ts +69 -0
- package/dist/services/retrieval-policy.js +275 -0
- package/dist/services/retrieval-profiles.d.ts +37 -0
- package/dist/services/retrieval-profiles.js +90 -0
- package/dist/services/retrieval-side-effects.d.ts +14 -0
- package/dist/services/retrieval-side-effects.js +26 -0
- package/dist/services/retrieval-trace.d.ts +108 -0
- package/dist/services/retrieval-trace.js +147 -0
- package/dist/services/rrf-fusion.d.ts +18 -0
- package/dist/services/rrf-fusion.js +34 -0
- package/dist/services/search-pipeline.d.ts +71 -0
- package/dist/services/search-pipeline.js +788 -0
- package/dist/services/session-date.d.ts +20 -0
- package/dist/services/session-date.js +61 -0
- package/dist/services/session-packaging.d.ts +53 -0
- package/dist/services/session-packaging.js +182 -0
- package/dist/services/session-summary-generator.d.ts +53 -0
- package/dist/services/session-summary-generator.js +134 -0
- package/dist/services/specialists/cr-specialist.d.ts +52 -0
- package/dist/services/specialists/cr-specialist.js +121 -0
- package/dist/services/specialists/dispatch.d.ts +53 -0
- package/dist/services/specialists/dispatch.js +102 -0
- package/dist/services/specialists/ie-ku-specialist.d.ts +37 -0
- package/dist/services/specialists/ie-ku-specialist.js +63 -0
- package/dist/services/specialists/msr-specialist.d.ts +61 -0
- package/dist/services/specialists/msr-specialist.js +162 -0
- package/dist/services/specialists/tr-specialist.d.ts +37 -0
- package/dist/services/specialists/tr-specialist.js +146 -0
- package/dist/services/storage-key-prefix.d.ts +42 -0
- package/dist/services/storage-key-prefix.js +45 -0
- package/dist/services/storage-put-recovery.d.ts +71 -0
- package/dist/services/storage-put-recovery.js +269 -0
- package/dist/services/storage-service-errors.d.ts +124 -0
- package/dist/services/storage-service-errors.js +189 -0
- package/dist/services/storage-service.d.ts +176 -0
- package/dist/services/storage-service.js +423 -0
- package/dist/services/subject-aware-ranking.d.ts +19 -0
- package/dist/services/subject-aware-ranking.js +161 -0
- package/dist/services/supplemental-extraction.d.ts +7 -0
- package/dist/services/supplemental-extraction.js +116 -0
- package/dist/services/tbc-execution.d.ts +49 -0
- package/dist/services/tbc-execution.js +284 -0
- package/dist/services/temporal-classifier.d.ts +56 -0
- package/dist/services/temporal-classifier.js +94 -0
- package/dist/services/temporal-endpoint-evidence.d.ts +12 -0
- package/dist/services/temporal-endpoint-evidence.js +313 -0
- package/dist/services/temporal-fingerprint.d.ts +6 -0
- package/dist/services/temporal-fingerprint.js +12 -0
- package/dist/services/temporal-format.d.ts +9 -0
- package/dist/services/temporal-format.js +21 -0
- package/dist/services/temporal-intent.d.ts +39 -0
- package/dist/services/temporal-intent.js +78 -0
- package/dist/services/temporal-query-constraints.d.ts +16 -0
- package/dist/services/temporal-query-constraints.js +107 -0
- package/dist/services/temporal-query-expansion.d.ts +14 -0
- package/dist/services/temporal-query-expansion.js +131 -0
- package/dist/services/temporal-rerank.d.ts +22 -0
- package/dist/services/temporal-rerank.js +47 -0
- package/dist/services/temporal-result-protection.d.ts +7 -0
- package/dist/services/temporal-result-protection.js +60 -0
- package/dist/services/temporal-state-write.d.ts +57 -0
- package/dist/services/temporal-state-write.js +45 -0
- package/dist/services/tiered-context.d.ts +87 -0
- package/dist/services/tiered-context.js +214 -0
- package/dist/services/tiered-loading.d.ts +88 -0
- package/dist/services/tiered-loading.js +263 -0
- package/dist/services/timeline-pack.d.ts +36 -0
- package/dist/services/timeline-pack.js +50 -0
- package/dist/services/timing.d.ts +13 -0
- package/dist/services/timing.js +72 -0
- package/dist/services/tll-augmentation.d.ts +20 -0
- package/dist/services/tll-augmentation.js +125 -0
- package/dist/services/tll-retrieval.d.ts +55 -0
- package/dist/services/tll-retrieval.js +101 -0
- package/dist/services/topic-abstraction.d.ts +36 -0
- package/dist/services/topic-abstraction.js +105 -0
- package/dist/services/trust-scoring.d.ts +43 -0
- package/dist/services/trust-scoring.js +89 -0
- package/dist/services/typed-belief-calculus.d.ts +126 -0
- package/dist/services/typed-belief-calculus.js +204 -0
- package/dist/services/upload-config.d.ts +34 -0
- package/dist/services/upload-config.js +23 -0
- package/dist/services/upload-decision.d.ts +65 -0
- package/dist/services/upload-decision.js +98 -0
- package/dist/services/upload-helpers.d.ts +107 -0
- package/dist/services/upload-helpers.js +148 -0
- package/dist/services/user-profile-builder.d.ts +22 -0
- package/dist/services/user-profile-builder.js +109 -0
- package/dist/services/voyage-embedding.d.ts +22 -0
- package/dist/services/voyage-embedding.js +77 -0
- package/dist/services/write-security.d.ts +31 -0
- package/dist/services/write-security.js +64 -0
- package/dist/storage/artifact-public-redaction.d.ts +34 -0
- package/dist/storage/artifact-public-redaction.js +83 -0
- package/dist/storage/cleanup.d.ts +103 -0
- package/dist/storage/cleanup.js +138 -0
- package/dist/storage/codec-factory.d.ts +17 -0
- package/dist/storage/codec-factory.js +33 -0
- package/dist/storage/codecs/aes-gcm-codec.d.ts +44 -0
- package/dist/storage/codecs/aes-gcm-codec.js +108 -0
- package/dist/storage/codecs/noop-codec.d.ts +16 -0
- package/dist/storage/codecs/noop-codec.js +23 -0
- package/dist/storage/factory.d.ts +44 -0
- package/dist/storage/factory.js +99 -0
- package/dist/storage/filecoin-cid-validation.d.ts +82 -0
- package/dist/storage/filecoin-cid-validation.js +122 -0
- package/dist/storage/filecoin-public-metadata.d.ts +73 -0
- package/dist/storage/filecoin-public-metadata.js +110 -0
- package/dist/storage/local-fs-store.d.ts +39 -0
- package/dist/storage/local-fs-store.js +145 -0
- package/dist/storage/pointer-uri-allowlist.d.ts +38 -0
- package/dist/storage/pointer-uri-allowlist.js +70 -0
- package/dist/storage/provider-metadata-projection.d.ts +27 -0
- package/dist/storage/provider-metadata-projection.js +68 -0
- package/dist/storage/providers/filecoin/backend.d.ts +42 -0
- package/dist/storage/providers/filecoin/backend.js +250 -0
- package/dist/storage/providers/filecoin/config.d.ts +70 -0
- package/dist/storage/providers/filecoin/config.js +275 -0
- package/dist/storage/providers/filecoin/errors.d.ts +45 -0
- package/dist/storage/providers/filecoin/errors.js +56 -0
- package/dist/storage/providers/filecoin/filecoin-pin-car.d.ts +78 -0
- package/dist/storage/providers/filecoin/filecoin-pin-car.js +155 -0
- package/dist/storage/providers/filecoin/filecoin-pin-client.d.ts +92 -0
- package/dist/storage/providers/filecoin/filecoin-pin-client.js +199 -0
- package/dist/storage/providers/filecoin/filecoin-pin-mapping.d.ts +58 -0
- package/dist/storage/providers/filecoin/filecoin-pin-mapping.js +103 -0
- package/dist/storage/providers/filecoin/filecoin-pin-timeout.d.ts +30 -0
- package/dist/storage/providers/filecoin/filecoin-pin-timeout.js +53 -0
- package/dist/storage/providers/filecoin/filecoin-pin-vendor.d.ts +111 -0
- package/dist/storage/providers/filecoin/filecoin-pin-vendor.js +87 -0
- package/dist/storage/providers/filecoin/hints.d.ts +71 -0
- package/dist/storage/providers/filecoin/hints.js +123 -0
- package/dist/storage/providers/filecoin/index.d.ts +51 -0
- package/dist/storage/providers/filecoin/index.js +103 -0
- package/dist/storage/providers/filecoin/ipfs-cid.d.ts +50 -0
- package/dist/storage/providers/filecoin/ipfs-cid.js +64 -0
- package/dist/storage/providers/filecoin/metadata.d.ts +72 -0
- package/dist/storage/providers/filecoin/metadata.js +137 -0
- package/dist/storage/providers/filecoin/piece-cid.d.ts +48 -0
- package/dist/storage/providers/filecoin/piece-cid.js +57 -0
- package/dist/storage/providers/filecoin/provider-client.d.ts +234 -0
- package/dist/storage/providers/filecoin/provider-client.js +27 -0
- package/dist/storage/providers/filecoin/readiness.d.ts +62 -0
- package/dist/storage/providers/filecoin/readiness.js +85 -0
- package/dist/storage/providers/filecoin/retriever.d.ts +82 -0
- package/dist/storage/providers/filecoin/retriever.js +63 -0
- package/dist/storage/providers/filecoin/skeleton-client.d.ts +36 -0
- package/dist/storage/providers/filecoin/skeleton-client.js +55 -0
- package/dist/storage/providers/filecoin/synapse-client.d.ts +169 -0
- package/dist/storage/providers/filecoin/synapse-client.js +343 -0
- package/dist/storage/providers/filecoin/synapse-construction.d.ts +26 -0
- package/dist/storage/providers/filecoin/synapse-construction.js +47 -0
- package/dist/storage/providers/filecoin/synapse-error-mapping.d.ts +23 -0
- package/dist/storage/providers/filecoin/synapse-error-mapping.js +49 -0
- package/dist/storage/providers/filecoin/synapse-readiness.d.ts +37 -0
- package/dist/storage/providers/filecoin/synapse-readiness.js +231 -0
- package/dist/storage/providers/filecoin/uri.d.ts +49 -0
- package/dist/storage/providers/filecoin/uri.js +84 -0
- package/dist/storage/providers/filecoin/verified-fetch-lifecycle.d.ts +77 -0
- package/dist/storage/providers/filecoin/verified-fetch-lifecycle.js +196 -0
- package/dist/storage/providers/filecoin/verified-fetch-retriever.d.ts +54 -0
- package/dist/storage/providers/filecoin/verified-fetch-retriever.js +81 -0
- package/dist/storage/providers/filecoin/verified-fetch-vendor.d.ts +71 -0
- package/dist/storage/providers/filecoin/verified-fetch-vendor.js +94 -0
- package/dist/storage/raw-content-codec.d.ts +89 -0
- package/dist/storage/raw-content-codec.js +47 -0
- package/dist/storage/raw-content-store-backend-adapter.d.ts +28 -0
- package/dist/storage/raw-content-store-backend-adapter.js +67 -0
- package/dist/storage/raw-content-store.d.ts +228 -0
- package/dist/storage/raw-content-store.js +27 -0
- package/dist/storage/s3-store.d.ts +42 -0
- package/dist/storage/s3-store.js +181 -0
- package/dist/storage/storage-backend-registry.d.ts +58 -0
- package/dist/storage/storage-backend-registry.js +56 -0
- package/dist/storage/storage-backend.d.ts +82 -0
- package/dist/storage/storage-backend.js +14 -0
- package/dist/storage/storage-capabilities.d.ts +56 -0
- package/dist/storage/storage-capabilities.js +170 -0
- package/dist/storage/store-registry.d.ts +67 -0
- package/dist/storage/store-registry.js +77 -0
- package/dist/vector-math.d.ts +15 -0
- package/dist/vector-math.js +31 -0
- package/dist/xml-escape.d.ts +5 -0
- package/dist/xml-escape.js +7 -0
- package/openapi.json +15395 -0
- package/openapi.yaml +10794 -0
- 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
|
+
}
|