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