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