@fgv/ts-agent-memory 5.1.0-47 → 5.1.0-49
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/dist/packlets/ingest/orchestrator.js +11 -1
- package/dist/packlets/ingest/orchestrator.js.map +1 -1
- package/dist/packlets/observe/memoryObservationStore.js +6 -0
- package/dist/packlets/observe/memoryObservationStore.js.map +1 -1
- package/dist/packlets/observe/observer.js.map +1 -1
- package/dist/packlets/retrieve/linkTraversalRetriever.js +1 -1
- package/dist/packlets/retrieve/linkTraversalRetriever.js.map +1 -1
- package/dist/packlets/retrieve/recencyRetriever.js +1 -1
- package/dist/packlets/retrieve/recencyRetriever.js.map +1 -1
- package/dist/packlets/retrieve/retriever.js +11 -5
- package/dist/packlets/retrieve/retriever.js.map +1 -1
- package/dist/packlets/retrieve/structuredFilterRetriever.js +27 -5
- package/dist/packlets/retrieve/structuredFilterRetriever.js.map +1 -1
- package/dist/packlets/retrieve/tagRetriever.js +1 -1
- package/dist/packlets/retrieve/tagRetriever.js.map +1 -1
- package/dist/packlets/retrieve/temporalRetrievers.js +1 -1
- package/dist/packlets/retrieve/temporalRetrievers.js.map +1 -1
- package/dist/packlets/store/fileTreeMemoryStore.js +152 -132
- package/dist/packlets/store/fileTreeMemoryStore.js.map +1 -1
- package/dist/packlets/store/vectorMaintenance.js +251 -0
- package/dist/packlets/store/vectorMaintenance.js.map +1 -0
- package/dist/packlets/types/envelope.js.map +1 -1
- package/dist/packlets/vector/inMemoryCosineIndex.js +81 -18
- package/dist/packlets/vector/inMemoryCosineIndex.js.map +1 -1
- package/dist/packlets/vector/inMemoryFragmentCosineIndex.js +7 -0
- package/dist/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -1
- package/dist/packlets/vector/vectorIndex.js.map +1 -1
- package/dist/ts-agent-memory.d.ts +431 -79
- package/lib/packlets/ingest/orchestrator.d.ts.map +1 -1
- package/lib/packlets/ingest/orchestrator.js +11 -1
- package/lib/packlets/ingest/orchestrator.js.map +1 -1
- package/lib/packlets/observe/memoryObservationStore.d.ts.map +1 -1
- package/lib/packlets/observe/memoryObservationStore.js +6 -0
- package/lib/packlets/observe/memoryObservationStore.js.map +1 -1
- package/lib/packlets/observe/observer.d.ts +61 -0
- package/lib/packlets/observe/observer.d.ts.map +1 -1
- package/lib/packlets/observe/observer.js.map +1 -1
- package/lib/packlets/retrieve/linkTraversalRetriever.d.ts +1 -1
- package/lib/packlets/retrieve/linkTraversalRetriever.js +1 -1
- package/lib/packlets/retrieve/linkTraversalRetriever.js.map +1 -1
- package/lib/packlets/retrieve/recencyRetriever.d.ts +1 -1
- package/lib/packlets/retrieve/recencyRetriever.js +1 -1
- package/lib/packlets/retrieve/recencyRetriever.js.map +1 -1
- package/lib/packlets/retrieve/retriever.d.ts +26 -7
- package/lib/packlets/retrieve/retriever.d.ts.map +1 -1
- package/lib/packlets/retrieve/retriever.js +11 -5
- package/lib/packlets/retrieve/retriever.js.map +1 -1
- package/lib/packlets/retrieve/structuredFilterRetriever.d.ts +26 -4
- package/lib/packlets/retrieve/structuredFilterRetriever.d.ts.map +1 -1
- package/lib/packlets/retrieve/structuredFilterRetriever.js +27 -5
- package/lib/packlets/retrieve/structuredFilterRetriever.js.map +1 -1
- package/lib/packlets/retrieve/tagRetriever.d.ts +1 -1
- package/lib/packlets/retrieve/tagRetriever.js +1 -1
- package/lib/packlets/retrieve/tagRetriever.js.map +1 -1
- package/lib/packlets/retrieve/temporalRetrievers.js +1 -1
- package/lib/packlets/retrieve/temporalRetrievers.js.map +1 -1
- package/lib/packlets/store/fileTreeMemoryStore.d.ts +135 -59
- package/lib/packlets/store/fileTreeMemoryStore.d.ts.map +1 -1
- package/lib/packlets/store/fileTreeMemoryStore.js +151 -131
- package/lib/packlets/store/fileTreeMemoryStore.js.map +1 -1
- package/lib/packlets/store/vectorMaintenance.d.ts +149 -0
- package/lib/packlets/store/vectorMaintenance.d.ts.map +1 -0
- package/lib/packlets/store/vectorMaintenance.js +255 -0
- package/lib/packlets/store/vectorMaintenance.js.map +1 -0
- package/lib/packlets/types/envelope.d.ts +11 -0
- package/lib/packlets/types/envelope.d.ts.map +1 -1
- package/lib/packlets/types/envelope.js.map +1 -1
- package/lib/packlets/vector/inMemoryCosineIndex.d.ts +30 -7
- package/lib/packlets/vector/inMemoryCosineIndex.d.ts.map +1 -1
- package/lib/packlets/vector/inMemoryCosineIndex.js +80 -17
- package/lib/packlets/vector/inMemoryCosineIndex.js.map +1 -1
- package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts +7 -0
- package/lib/packlets/vector/inMemoryFragmentCosineIndex.d.ts.map +1 -1
- package/lib/packlets/vector/inMemoryFragmentCosineIndex.js +7 -0
- package/lib/packlets/vector/inMemoryFragmentCosineIndex.js.map +1 -1
- package/lib/packlets/vector/vectorIndex.d.ts +129 -1
- package/lib/packlets/vector/vectorIndex.d.ts.map +1 -1
- package/lib/packlets/vector/vectorIndex.js.map +1 -1
- package/package.json +17 -7
- package/.rush/temp/5667e36f1c0cc503a5c20a3ebff76e7b9a702d41.tar.log +0 -468
- package/.rush/temp/chunked-rush-logs/ts-agent-memory.build.chunks.jsonl +0 -9
- package/.rush/temp/operation/build/all.log +0 -9
- package/.rush/temp/operation/build/log-chunks.jsonl +0 -9
- package/.rush/temp/operation/build/state.json +0 -3
- package/.rush/temp/shrinkwrap-deps.json +0 -689
- package/config/api-extractor.json +0 -343
- package/config/jest.config.json +0 -14
- package/config/rig.json +0 -4
- package/dist/test/unit/converters/antagonistRoundTrip.test.js +0 -95
- package/dist/test/unit/converters/antagonistRoundTrip.test.js.map +0 -1
- package/dist/test/unit/converters/bodyConverterRegistry.test.js +0 -72
- package/dist/test/unit/converters/bodyConverterRegistry.test.js.map +0 -1
- package/dist/test/unit/converters/envelopeConverter.test.js +0 -313
- package/dist/test/unit/converters/envelopeConverter.test.js.map +0 -1
- package/dist/test/unit/index/memoryIndex.test.js +0 -214
- package/dist/test/unit/index/memoryIndex.test.js.map +0 -1
- package/dist/test/unit/ingest/antagonistCycleAndParity.test.js +0 -277
- package/dist/test/unit/ingest/antagonistCycleAndParity.test.js.map +0 -1
- package/dist/test/unit/ingest/cycleGuard.test.js +0 -81
- package/dist/test/unit/ingest/cycleGuard.test.js.map +0 -1
- package/dist/test/unit/ingest/dedupScope.test.js +0 -434
- package/dist/test/unit/ingest/dedupScope.test.js.map +0 -1
- package/dist/test/unit/ingest/orchestrator.test.js +0 -1058
- package/dist/test/unit/ingest/orchestrator.test.js.map +0 -1
- package/dist/test/unit/observe/memoryObservationStore.test.js +0 -118
- package/dist/test/unit/observe/memoryObservationStore.test.js.map +0 -1
- package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js +0 -116
- package/dist/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +0 -1
- package/dist/test/unit/retrieve/linkTraversalRetriever.test.js +0 -257
- package/dist/test/unit/retrieve/linkTraversalRetriever.test.js.map +0 -1
- package/dist/test/unit/retrieve/retrievers.test.js +0 -768
- package/dist/test/unit/retrieve/retrievers.test.js.map +0 -1
- package/dist/test/unit/retrieve/temporalRetrievers.test.js +0 -182
- package/dist/test/unit/retrieve/temporalRetrievers.test.js.map +0 -1
- package/dist/test/unit/store/antagonistTemporalBoundary.test.js +0 -120
- package/dist/test/unit/store/antagonistTemporalBoundary.test.js.map +0 -1
- package/dist/test/unit/store/embedOnWrite.test.js +0 -317
- package/dist/test/unit/store/embedOnWrite.test.js.map +0 -1
- package/dist/test/unit/store/fileTreeMemoryStore.test.js +0 -778
- package/dist/test/unit/store/fileTreeMemoryStore.test.js.map +0 -1
- package/dist/test/unit/store/fragmentEmbedOnWrite.test.js +0 -255
- package/dist/test/unit/store/fragmentEmbedOnWrite.test.js.map +0 -1
- package/dist/test/unit/store/indexInjection.test.js +0 -432
- package/dist/test/unit/store/indexInjection.test.js.map +0 -1
- package/dist/test/unit/store/lenientOpen.test.js +0 -248
- package/dist/test/unit/store/lenientOpen.test.js.map +0 -1
- package/dist/test/unit/store/listScoped.test.js +0 -109
- package/dist/test/unit/store/listScoped.test.js.map +0 -1
- package/dist/test/unit/store/observations.test.js +0 -239
- package/dist/test/unit/store/observations.test.js.map +0 -1
- package/dist/test/unit/store/rankAxis.test.js +0 -254
- package/dist/test/unit/store/rankAxis.test.js.map +0 -1
- package/dist/test/unit/store/scopeEncoding.test.js +0 -24
- package/dist/test/unit/store/scopeEncoding.test.js.map +0 -1
- package/dist/test/unit/store/temporalStore.test.js +0 -398
- package/dist/test/unit/store/temporalStore.test.js.map +0 -1
- package/dist/test/unit/tools/memoryTools.test.js +0 -842
- package/dist/test/unit/tools/memoryTools.test.js.map +0 -1
- package/dist/test/unit/types/identityCodec.test.js +0 -187
- package/dist/test/unit/types/identityCodec.test.js.map +0 -1
- package/dist/test/unit/types/ids.test.js +0 -84
- package/dist/test/unit/types/ids.test.js.map +0 -1
- package/dist/test/unit/types/temporalCodec.test.js +0 -203
- package/dist/test/unit/types/temporalCodec.test.js.map +0 -1
- package/dist/test/unit/types/temporalPolicy.test.js +0 -83
- package/dist/test/unit/types/temporalPolicy.test.js.map +0 -1
- package/dist/test/unit/types/writePolicy.test.js +0 -331
- package/dist/test/unit/types/writePolicy.test.js.map +0 -1
- package/dist/test/unit/vector/fragmentConverters.test.js +0 -58
- package/dist/test/unit/vector/fragmentConverters.test.js.map +0 -1
- package/dist/test/unit/vector/inMemoryCosineIndex.test.js +0 -252
- package/dist/test/unit/vector/inMemoryCosineIndex.test.js.map +0 -1
- package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js +0 -362
- package/dist/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +0 -1
- package/dist/test/unit/vector/vectorIndex.test.js +0 -51
- package/dist/test/unit/vector/vectorIndex.test.js.map +0 -1
- package/eslint.config.js +0 -15
- package/etc/ts-agent-memory.api.md +0 -940
- package/lib/test/unit/converters/antagonistRoundTrip.test.d.ts +0 -10
- package/lib/test/unit/converters/antagonistRoundTrip.test.d.ts.map +0 -1
- package/lib/test/unit/converters/antagonistRoundTrip.test.js +0 -97
- package/lib/test/unit/converters/antagonistRoundTrip.test.js.map +0 -1
- package/lib/test/unit/converters/bodyConverterRegistry.test.d.ts +0 -2
- package/lib/test/unit/converters/bodyConverterRegistry.test.d.ts.map +0 -1
- package/lib/test/unit/converters/bodyConverterRegistry.test.js +0 -74
- package/lib/test/unit/converters/bodyConverterRegistry.test.js.map +0 -1
- package/lib/test/unit/converters/envelopeConverter.test.d.ts +0 -2
- package/lib/test/unit/converters/envelopeConverter.test.d.ts.map +0 -1
- package/lib/test/unit/converters/envelopeConverter.test.js +0 -315
- package/lib/test/unit/converters/envelopeConverter.test.js.map +0 -1
- package/lib/test/unit/index/memoryIndex.test.d.ts +0 -2
- package/lib/test/unit/index/memoryIndex.test.d.ts.map +0 -1
- package/lib/test/unit/index/memoryIndex.test.js +0 -216
- package/lib/test/unit/index/memoryIndex.test.js.map +0 -1
- package/lib/test/unit/ingest/antagonistCycleAndParity.test.d.ts +0 -9
- package/lib/test/unit/ingest/antagonistCycleAndParity.test.d.ts.map +0 -1
- package/lib/test/unit/ingest/antagonistCycleAndParity.test.js +0 -279
- package/lib/test/unit/ingest/antagonistCycleAndParity.test.js.map +0 -1
- package/lib/test/unit/ingest/cycleGuard.test.d.ts +0 -2
- package/lib/test/unit/ingest/cycleGuard.test.d.ts.map +0 -1
- package/lib/test/unit/ingest/cycleGuard.test.js +0 -83
- package/lib/test/unit/ingest/cycleGuard.test.js.map +0 -1
- package/lib/test/unit/ingest/dedupScope.test.d.ts +0 -2
- package/lib/test/unit/ingest/dedupScope.test.d.ts.map +0 -1
- package/lib/test/unit/ingest/dedupScope.test.js +0 -436
- package/lib/test/unit/ingest/dedupScope.test.js.map +0 -1
- package/lib/test/unit/ingest/orchestrator.test.d.ts +0 -2
- package/lib/test/unit/ingest/orchestrator.test.d.ts.map +0 -1
- package/lib/test/unit/ingest/orchestrator.test.js +0 -1060
- package/lib/test/unit/ingest/orchestrator.test.js.map +0 -1
- package/lib/test/unit/observe/memoryObservationStore.test.d.ts +0 -2
- package/lib/test/unit/observe/memoryObservationStore.test.d.ts.map +0 -1
- package/lib/test/unit/observe/memoryObservationStore.test.js +0 -120
- package/lib/test/unit/observe/memoryObservationStore.test.js.map +0 -1
- package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts +0 -2
- package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.d.ts.map +0 -1
- package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js +0 -118
- package/lib/test/unit/retrieve/fragmentSemanticRetriever.test.js.map +0 -1
- package/lib/test/unit/retrieve/linkTraversalRetriever.test.d.ts +0 -2
- package/lib/test/unit/retrieve/linkTraversalRetriever.test.d.ts.map +0 -1
- package/lib/test/unit/retrieve/linkTraversalRetriever.test.js +0 -259
- package/lib/test/unit/retrieve/linkTraversalRetriever.test.js.map +0 -1
- package/lib/test/unit/retrieve/retrievers.test.d.ts +0 -2
- package/lib/test/unit/retrieve/retrievers.test.d.ts.map +0 -1
- package/lib/test/unit/retrieve/retrievers.test.js +0 -770
- package/lib/test/unit/retrieve/retrievers.test.js.map +0 -1
- package/lib/test/unit/retrieve/temporalRetrievers.test.d.ts +0 -2
- package/lib/test/unit/retrieve/temporalRetrievers.test.d.ts.map +0 -1
- package/lib/test/unit/retrieve/temporalRetrievers.test.js +0 -184
- package/lib/test/unit/retrieve/temporalRetrievers.test.js.map +0 -1
- package/lib/test/unit/store/antagonistTemporalBoundary.test.d.ts +0 -9
- package/lib/test/unit/store/antagonistTemporalBoundary.test.d.ts.map +0 -1
- package/lib/test/unit/store/antagonistTemporalBoundary.test.js +0 -122
- package/lib/test/unit/store/antagonistTemporalBoundary.test.js.map +0 -1
- package/lib/test/unit/store/embedOnWrite.test.d.ts +0 -2
- package/lib/test/unit/store/embedOnWrite.test.d.ts.map +0 -1
- package/lib/test/unit/store/embedOnWrite.test.js +0 -319
- package/lib/test/unit/store/embedOnWrite.test.js.map +0 -1
- package/lib/test/unit/store/fileTreeMemoryStore.test.d.ts +0 -2
- package/lib/test/unit/store/fileTreeMemoryStore.test.d.ts.map +0 -1
- package/lib/test/unit/store/fileTreeMemoryStore.test.js +0 -780
- package/lib/test/unit/store/fileTreeMemoryStore.test.js.map +0 -1
- package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts +0 -2
- package/lib/test/unit/store/fragmentEmbedOnWrite.test.d.ts.map +0 -1
- package/lib/test/unit/store/fragmentEmbedOnWrite.test.js +0 -257
- package/lib/test/unit/store/fragmentEmbedOnWrite.test.js.map +0 -1
- package/lib/test/unit/store/indexInjection.test.d.ts +0 -2
- package/lib/test/unit/store/indexInjection.test.d.ts.map +0 -1
- package/lib/test/unit/store/indexInjection.test.js +0 -434
- package/lib/test/unit/store/indexInjection.test.js.map +0 -1
- package/lib/test/unit/store/lenientOpen.test.d.ts +0 -2
- package/lib/test/unit/store/lenientOpen.test.d.ts.map +0 -1
- package/lib/test/unit/store/lenientOpen.test.js +0 -250
- package/lib/test/unit/store/lenientOpen.test.js.map +0 -1
- package/lib/test/unit/store/listScoped.test.d.ts +0 -2
- package/lib/test/unit/store/listScoped.test.d.ts.map +0 -1
- package/lib/test/unit/store/listScoped.test.js +0 -111
- package/lib/test/unit/store/listScoped.test.js.map +0 -1
- package/lib/test/unit/store/observations.test.d.ts +0 -2
- package/lib/test/unit/store/observations.test.d.ts.map +0 -1
- package/lib/test/unit/store/observations.test.js +0 -241
- package/lib/test/unit/store/observations.test.js.map +0 -1
- package/lib/test/unit/store/rankAxis.test.d.ts +0 -2
- package/lib/test/unit/store/rankAxis.test.d.ts.map +0 -1
- package/lib/test/unit/store/rankAxis.test.js +0 -256
- package/lib/test/unit/store/rankAxis.test.js.map +0 -1
- package/lib/test/unit/store/scopeEncoding.test.d.ts +0 -2
- package/lib/test/unit/store/scopeEncoding.test.d.ts.map +0 -1
- package/lib/test/unit/store/scopeEncoding.test.js +0 -26
- package/lib/test/unit/store/scopeEncoding.test.js.map +0 -1
- package/lib/test/unit/store/temporalStore.test.d.ts +0 -2
- package/lib/test/unit/store/temporalStore.test.d.ts.map +0 -1
- package/lib/test/unit/store/temporalStore.test.js +0 -400
- package/lib/test/unit/store/temporalStore.test.js.map +0 -1
- package/lib/test/unit/tools/memoryTools.test.d.ts +0 -2
- package/lib/test/unit/tools/memoryTools.test.d.ts.map +0 -1
- package/lib/test/unit/tools/memoryTools.test.js +0 -844
- package/lib/test/unit/tools/memoryTools.test.js.map +0 -1
- package/lib/test/unit/types/identityCodec.test.d.ts +0 -2
- package/lib/test/unit/types/identityCodec.test.d.ts.map +0 -1
- package/lib/test/unit/types/identityCodec.test.js +0 -189
- package/lib/test/unit/types/identityCodec.test.js.map +0 -1
- package/lib/test/unit/types/ids.test.d.ts +0 -2
- package/lib/test/unit/types/ids.test.d.ts.map +0 -1
- package/lib/test/unit/types/ids.test.js +0 -86
- package/lib/test/unit/types/ids.test.js.map +0 -1
- package/lib/test/unit/types/temporalCodec.test.d.ts +0 -2
- package/lib/test/unit/types/temporalCodec.test.d.ts.map +0 -1
- package/lib/test/unit/types/temporalCodec.test.js +0 -205
- package/lib/test/unit/types/temporalCodec.test.js.map +0 -1
- package/lib/test/unit/types/temporalPolicy.test.d.ts +0 -2
- package/lib/test/unit/types/temporalPolicy.test.d.ts.map +0 -1
- package/lib/test/unit/types/temporalPolicy.test.js +0 -85
- package/lib/test/unit/types/temporalPolicy.test.js.map +0 -1
- package/lib/test/unit/types/writePolicy.test.d.ts +0 -2
- package/lib/test/unit/types/writePolicy.test.d.ts.map +0 -1
- package/lib/test/unit/types/writePolicy.test.js +0 -333
- package/lib/test/unit/types/writePolicy.test.js.map +0 -1
- package/lib/test/unit/vector/fragmentConverters.test.d.ts +0 -2
- package/lib/test/unit/vector/fragmentConverters.test.d.ts.map +0 -1
- package/lib/test/unit/vector/fragmentConverters.test.js +0 -60
- package/lib/test/unit/vector/fragmentConverters.test.js.map +0 -1
- package/lib/test/unit/vector/inMemoryCosineIndex.test.d.ts +0 -2
- package/lib/test/unit/vector/inMemoryCosineIndex.test.d.ts.map +0 -1
- package/lib/test/unit/vector/inMemoryCosineIndex.test.js +0 -254
- package/lib/test/unit/vector/inMemoryCosineIndex.test.js.map +0 -1
- package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts +0 -2
- package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.d.ts.map +0 -1
- package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js +0 -364
- package/lib/test/unit/vector/inMemoryFragmentCosineIndex.test.js.map +0 -1
- package/lib/test/unit/vector/vectorIndex.test.d.ts +0 -2
- package/lib/test/unit/vector/vectorIndex.test.d.ts.map +0 -1
- package/lib/test/unit/vector/vectorIndex.test.js +0 -53
- package/lib/test/unit/vector/vectorIndex.test.js.map +0 -1
- package/rush-logs/ts-agent-memory.build.cache.log +0 -3
- package/rush-logs/ts-agent-memory.build.log +0 -9
- package/src/index.ts +0 -14
- package/src/packlets/converters/bodyConverterRegistry.ts +0 -105
- package/src/packlets/converters/envelopeConverter.ts +0 -233
- package/src/packlets/converters/index.ts +0 -7
- package/src/packlets/index/index.ts +0 -6
- package/src/packlets/index/memoryIndex.ts +0 -332
- package/src/packlets/ingest/cycleGuard.ts +0 -153
- package/src/packlets/ingest/hostStages.ts +0 -111
- package/src/packlets/ingest/index.ts +0 -9
- package/src/packlets/ingest/model.ts +0 -195
- package/src/packlets/ingest/orchestrator.ts +0 -968
- package/src/packlets/observe/index.ts +0 -7
- package/src/packlets/observe/memoryObservationStore.ts +0 -153
- package/src/packlets/observe/observer.ts +0 -119
- package/src/packlets/retrieve/fragmentSemanticRetriever.ts +0 -138
- package/src/packlets/retrieve/hybridRetriever.ts +0 -194
- package/src/packlets/retrieve/index.ts +0 -14
- package/src/packlets/retrieve/linkTraversalRetriever.ts +0 -158
- package/src/packlets/retrieve/recencyRetriever.ts +0 -54
- package/src/packlets/retrieve/retriever.ts +0 -291
- package/src/packlets/retrieve/semanticRetriever.ts +0 -152
- package/src/packlets/retrieve/structuredFilterRetriever.ts +0 -58
- package/src/packlets/retrieve/tagRetriever.ts +0 -58
- package/src/packlets/retrieve/temporalRetrievers.ts +0 -210
- package/src/packlets/store/fileTreeMemoryStore.ts +0 -1872
- package/src/packlets/store/index.ts +0 -7
- package/src/packlets/store/scopeEncoding.ts +0 -36
- package/src/packlets/tools/index.ts +0 -6
- package/src/packlets/tools/memoryTools.ts +0 -706
- package/src/packlets/types/envelope.ts +0 -196
- package/src/packlets/types/filenameSafety.ts +0 -57
- package/src/packlets/types/identityCodec.ts +0 -447
- package/src/packlets/types/ids.ts +0 -124
- package/src/packlets/types/index.ts +0 -11
- package/src/packlets/types/temporal.ts +0 -96
- package/src/packlets/types/writePolicy.ts +0 -612
- package/src/packlets/vector/fragmentConverters.ts +0 -55
- package/src/packlets/vector/inMemoryCosineIndex.ts +0 -196
- package/src/packlets/vector/inMemoryFragmentCosineIndex.ts +0 -289
- package/src/packlets/vector/index.ts +0 -9
- package/src/packlets/vector/vectorIndex.ts +0 -273
- package/src/test/unit/converters/antagonistRoundTrip.test.ts +0 -110
- package/src/test/unit/converters/bodyConverterRegistry.test.ts +0 -89
- package/src/test/unit/converters/envelopeConverter.test.ts +0 -418
- package/src/test/unit/index/memoryIndex.test.ts +0 -272
- package/src/test/unit/ingest/antagonistCycleAndParity.test.ts +0 -367
- package/src/test/unit/ingest/cycleGuard.test.ts +0 -110
- package/src/test/unit/ingest/dedupScope.test.ts +0 -542
- package/src/test/unit/ingest/orchestrator.test.ts +0 -1355
- package/src/test/unit/observe/memoryObservationStore.test.ts +0 -158
- package/src/test/unit/retrieve/fragmentSemanticRetriever.test.ts +0 -163
- package/src/test/unit/retrieve/linkTraversalRetriever.test.ts +0 -329
- package/src/test/unit/retrieve/retrievers.test.ts +0 -1018
- package/src/test/unit/retrieve/temporalRetrievers.test.ts +0 -226
- package/src/test/unit/store/antagonistTemporalBoundary.test.ts +0 -158
- package/src/test/unit/store/embedOnWrite.test.ts +0 -418
- package/src/test/unit/store/fileTreeMemoryStore.test.ts +0 -1041
- package/src/test/unit/store/fragmentEmbedOnWrite.test.ts +0 -349
- package/src/test/unit/store/indexInjection.test.ts +0 -550
- package/src/test/unit/store/lenientOpen.test.ts +0 -292
- package/src/test/unit/store/listScoped.test.ts +0 -138
- package/src/test/unit/store/observations.test.ts +0 -290
- package/src/test/unit/store/rankAxis.test.ts +0 -349
- package/src/test/unit/store/scopeEncoding.test.ts +0 -37
- package/src/test/unit/store/temporalStore.test.ts +0 -469
- package/src/test/unit/tools/memoryTools.test.ts +0 -1121
- package/src/test/unit/types/identityCodec.test.ts +0 -266
- package/src/test/unit/types/ids.test.ts +0 -94
- package/src/test/unit/types/temporalCodec.test.ts +0 -259
- package/src/test/unit/types/temporalPolicy.test.ts +0 -124
- package/src/test/unit/types/writePolicy.test.ts +0 -446
- package/src/test/unit/vector/fragmentConverters.test.ts +0 -80
- package/src/test/unit/vector/inMemoryCosineIndex.test.ts +0 -318
- package/src/test/unit/vector/inMemoryFragmentCosineIndex.test.ts +0 -477
- package/src/test/unit/vector/vectorIndex.test.ts +0 -64
- package/temp/build/lint/_eslint-5eVG3S6w.json +0 -306
- package/temp/build/typescript/ts_8nwakTlr.json +0 -1
- package/temp/ts-agent-memory.api.json +0 -21030
- package/temp/ts-agent-memory.api.md +0 -940
- package/tsconfig.json +0 -8
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Erik Fortune
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Result, succeed } from '@fgv/ts-utils';
|
|
7
|
-
import { IMemoryRecord } from '../types';
|
|
8
|
-
import { IMemoryIndex } from '../index';
|
|
9
|
-
import {
|
|
10
|
-
IMemoryQuery,
|
|
11
|
-
IMemoryRetriever,
|
|
12
|
-
IMemoryRetrieverCapabilities,
|
|
13
|
-
NON_SEMANTIC_CAPABILITIES,
|
|
14
|
-
guardRetrieverCapabilities,
|
|
15
|
-
limitRecords,
|
|
16
|
-
orderingCompare,
|
|
17
|
-
selectByQuery
|
|
18
|
-
} from './retriever';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Returns records matching `query.filter`, narrowed by any scope / kind / tag
|
|
22
|
-
* pre-filter and recency-ordered. The predicate is this retriever's axis: a
|
|
23
|
-
* query without a `filter` is not its concern and yields an empty success (so it
|
|
24
|
-
* contributes nothing to a {@link HybridRetriever}, rather than failing).
|
|
25
|
-
* @public
|
|
26
|
-
*/
|
|
27
|
-
export class StructuredFilterRetriever implements IMemoryRetriever {
|
|
28
|
-
private readonly _index: IMemoryIndex;
|
|
29
|
-
|
|
30
|
-
private constructor(index: IMemoryIndex) {
|
|
31
|
-
this._index = index;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** {@inheritDoc IMemoryRetriever.capabilities} */
|
|
35
|
-
public get capabilities(): IMemoryRetrieverCapabilities {
|
|
36
|
-
return NON_SEMANTIC_CAPABILITIES;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Family-convention factory. */
|
|
40
|
-
public static create(index: IMemoryIndex): Result<StructuredFilterRetriever> {
|
|
41
|
-
return succeed(new StructuredFilterRetriever(index));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** {@inheritDoc IMemoryRetriever.retrieve} */
|
|
45
|
-
public retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>> {
|
|
46
|
-
return Promise.resolve(
|
|
47
|
-
guardRetrieverCapabilities(query, this.capabilities).onSuccess(() => {
|
|
48
|
-
if (query.filter === undefined) {
|
|
49
|
-
return succeed([]);
|
|
50
|
-
}
|
|
51
|
-
const ordered: IMemoryRecord<unknown>[] = selectByQuery(this._index.entries(), query).sort(
|
|
52
|
-
orderingCompare(query.orderBy)
|
|
53
|
-
);
|
|
54
|
-
return succeed(limitRecords(ordered, query.limit, query.offset));
|
|
55
|
-
})
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Erik Fortune
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Result, succeed } from '@fgv/ts-utils';
|
|
7
|
-
import { IMemoryRecord } from '../types';
|
|
8
|
-
import { IMemoryIndex } from '../index';
|
|
9
|
-
import {
|
|
10
|
-
IMemoryQuery,
|
|
11
|
-
IMemoryRetriever,
|
|
12
|
-
IMemoryRetrieverCapabilities,
|
|
13
|
-
NON_SEMANTIC_CAPABILITIES,
|
|
14
|
-
guardRetrieverCapabilities,
|
|
15
|
-
limitRecords,
|
|
16
|
-
orderingCompare,
|
|
17
|
-
selectByQuery
|
|
18
|
-
} from './retriever';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Returns records carrying `query.tag`, recency-ordered within the tag and
|
|
22
|
-
* narrowed by any scope / kind / predicate filters. Tag is this retriever's
|
|
23
|
-
* axis: a query without a `tag` is not its concern and yields an empty success
|
|
24
|
-
* (so it contributes nothing to a {@link HybridRetriever}, rather than failing).
|
|
25
|
-
* @public
|
|
26
|
-
*/
|
|
27
|
-
export class TagRetriever implements IMemoryRetriever {
|
|
28
|
-
private readonly _index: IMemoryIndex;
|
|
29
|
-
|
|
30
|
-
private constructor(index: IMemoryIndex) {
|
|
31
|
-
this._index = index;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** {@inheritDoc IMemoryRetriever.capabilities} */
|
|
35
|
-
public get capabilities(): IMemoryRetrieverCapabilities {
|
|
36
|
-
return NON_SEMANTIC_CAPABILITIES;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Family-convention factory. */
|
|
40
|
-
public static create(index: IMemoryIndex): Result<TagRetriever> {
|
|
41
|
-
return succeed(new TagRetriever(index));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** {@inheritDoc IMemoryRetriever.retrieve} */
|
|
45
|
-
public retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>> {
|
|
46
|
-
return Promise.resolve(
|
|
47
|
-
guardRetrieverCapabilities(query, this.capabilities).onSuccess(() => {
|
|
48
|
-
if (query.tag === undefined) {
|
|
49
|
-
return succeed([]);
|
|
50
|
-
}
|
|
51
|
-
const ordered: IMemoryRecord<unknown>[] = selectByQuery(this._index.entries(), query).sort(
|
|
52
|
-
orderingCompare(query.orderBy)
|
|
53
|
-
);
|
|
54
|
-
return succeed(limitRecords(ordered, query.limit, query.offset));
|
|
55
|
-
})
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Erik Fortune
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Result, succeed } from '@fgv/ts-utils';
|
|
7
|
-
import { IMemoryRecord, isTemporalRecord, selectCurrentVersion, selectVersionAsOf } from '../types';
|
|
8
|
-
import { IMemoryIndex } from '../index';
|
|
9
|
-
import {
|
|
10
|
-
IMemoryQuery,
|
|
11
|
-
IMemoryRetriever,
|
|
12
|
-
IMemoryRetrieverCapabilities,
|
|
13
|
-
guardRetrieverCapabilities,
|
|
14
|
-
indexedRecordMatchesQuery,
|
|
15
|
-
limitRecords,
|
|
16
|
-
recencyCompare
|
|
17
|
-
} from './retriever';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* The capabilities every temporal retriever exposes: temporal "as-of" queries
|
|
21
|
-
* are operational (semantic recall and link traversal are not this retriever's
|
|
22
|
-
* concern).
|
|
23
|
-
* @public
|
|
24
|
-
*/
|
|
25
|
-
export const TEMPORAL_CAPABILITIES: IMemoryRetrieverCapabilities = {
|
|
26
|
-
supportsSemanticRecall: false,
|
|
27
|
-
supportsTemporalQuery: true,
|
|
28
|
-
supportsLinkTraversal: false
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Group the temporal records surviving a query's scope / kind / tag / predicate
|
|
33
|
-
* pre-filter by entity (`kind` + `entityId`). Non-temporal records are excluded —
|
|
34
|
-
* the temporal retrievers operate only over versioned entities. The map values
|
|
35
|
-
* are each entity's versions (unordered).
|
|
36
|
-
*/
|
|
37
|
-
function groupTemporalVersionsByEntity(
|
|
38
|
-
index: IMemoryIndex,
|
|
39
|
-
query: IMemoryQuery
|
|
40
|
-
): Map<string, IMemoryRecord<unknown>[]> {
|
|
41
|
-
const groups: Map<string, IMemoryRecord<unknown>[]> = new Map<string, IMemoryRecord<unknown>[]>();
|
|
42
|
-
for (const entry of index.entries()) {
|
|
43
|
-
if (!isTemporalRecord(entry.record) || !indexedRecordMatchesQuery(entry, query)) {
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
const key: string = `${entry.record.envelope.kind}\0${entry.record.envelope.entityId}`;
|
|
47
|
-
const existing: IMemoryRecord<unknown>[] | undefined = groups.get(key);
|
|
48
|
-
if (existing === undefined) {
|
|
49
|
-
groups.set(key, [entry.record]);
|
|
50
|
-
} else {
|
|
51
|
-
existing.push(entry.record);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return groups;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Temporal retriever returning the **current** version of each temporal entity
|
|
59
|
-
* matching the query (the newest version whose `invalid_at` is null/absent),
|
|
60
|
-
* recency-ordered and limited. A fully-invalidated (soft-deleted) entity
|
|
61
|
-
* contributes nothing. Non-temporal records are not this retriever's concern.
|
|
62
|
-
* @public
|
|
63
|
-
*/
|
|
64
|
-
export class CurrentValidRetriever implements IMemoryRetriever {
|
|
65
|
-
private readonly _index: IMemoryIndex;
|
|
66
|
-
|
|
67
|
-
private constructor(index: IMemoryIndex) {
|
|
68
|
-
this._index = index;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** {@inheritDoc IMemoryRetriever.capabilities} */
|
|
72
|
-
public get capabilities(): IMemoryRetrieverCapabilities {
|
|
73
|
-
return TEMPORAL_CAPABILITIES;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/** Family-convention factory. */
|
|
77
|
-
public static create(index: IMemoryIndex): Result<CurrentValidRetriever> {
|
|
78
|
-
return succeed(new CurrentValidRetriever(index));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** {@inheritDoc IMemoryRetriever.retrieve} */
|
|
82
|
-
public retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>> {
|
|
83
|
-
return Promise.resolve(
|
|
84
|
-
guardRetrieverCapabilities(query, this.capabilities).onSuccess(() => {
|
|
85
|
-
const selected: IMemoryRecord<unknown>[] = [];
|
|
86
|
-
for (const versions of groupTemporalVersionsByEntity(this._index, query).values()) {
|
|
87
|
-
const current: IMemoryRecord<unknown> | undefined = selectCurrentVersion(versions);
|
|
88
|
-
if (current !== undefined) {
|
|
89
|
-
selected.push(current);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
selected.sort(recencyCompare);
|
|
93
|
-
return succeed(limitRecords(selected, query.limit, query.offset));
|
|
94
|
-
})
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Temporal retriever returning, for each temporal entity matching the query, the
|
|
101
|
-
* version valid at `query.asOf` (epoch ms). `asOf` is this retriever's axis: a
|
|
102
|
-
* query without it yields an empty success (a no-op contribution to a
|
|
103
|
-
* {@link HybridRetriever}, not a failure). Results are recency-ordered and
|
|
104
|
-
* limited.
|
|
105
|
-
* @public
|
|
106
|
-
*/
|
|
107
|
-
export class AsOfRetriever implements IMemoryRetriever {
|
|
108
|
-
private readonly _index: IMemoryIndex;
|
|
109
|
-
|
|
110
|
-
private constructor(index: IMemoryIndex) {
|
|
111
|
-
this._index = index;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/** {@inheritDoc IMemoryRetriever.capabilities} */
|
|
115
|
-
public get capabilities(): IMemoryRetrieverCapabilities {
|
|
116
|
-
return TEMPORAL_CAPABILITIES;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/** Family-convention factory. */
|
|
120
|
-
public static create(index: IMemoryIndex): Result<AsOfRetriever> {
|
|
121
|
-
return succeed(new AsOfRetriever(index));
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/** {@inheritDoc IMemoryRetriever.retrieve} */
|
|
125
|
-
public retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>> {
|
|
126
|
-
return Promise.resolve(
|
|
127
|
-
guardRetrieverCapabilities(query, this.capabilities).onSuccess(() => {
|
|
128
|
-
if (query.asOf === undefined) {
|
|
129
|
-
return succeed([]);
|
|
130
|
-
}
|
|
131
|
-
const asOf: number = query.asOf;
|
|
132
|
-
const selected: IMemoryRecord<unknown>[] = [];
|
|
133
|
-
for (const versions of groupTemporalVersionsByEntity(this._index, query).values()) {
|
|
134
|
-
const valid: IMemoryRecord<unknown> | undefined = selectVersionAsOf(versions, asOf);
|
|
135
|
-
if (valid !== undefined) {
|
|
136
|
-
selected.push(valid);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
selected.sort(recencyCompare);
|
|
140
|
-
return succeed(limitRecords(selected, query.limit, query.offset));
|
|
141
|
-
})
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Temporal retriever returning **every** version of each temporal entity matching
|
|
148
|
-
* the query, ordered ascending by `valid_at` (then `seq` as a stable tiebreak) —
|
|
149
|
-
* the entity's full history. Limited after ordering.
|
|
150
|
-
*
|
|
151
|
-
* @remarks
|
|
152
|
-
* When the query matches more than one entity, the result is a single
|
|
153
|
-
* CROSS-entity list globally sorted by `valid_at` — versions of different
|
|
154
|
-
* entities interleave, NOT grouped per entity — so `limit` truncates that
|
|
155
|
-
* globally-sorted list. Constrain to one entity (e.g. via `query.scope`) for a
|
|
156
|
-
* single entity's contiguous history.
|
|
157
|
-
* @public
|
|
158
|
-
*/
|
|
159
|
-
export class HistoryRetriever implements IMemoryRetriever {
|
|
160
|
-
private readonly _index: IMemoryIndex;
|
|
161
|
-
|
|
162
|
-
private constructor(index: IMemoryIndex) {
|
|
163
|
-
this._index = index;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/** {@inheritDoc IMemoryRetriever.capabilities} */
|
|
167
|
-
public get capabilities(): IMemoryRetrieverCapabilities {
|
|
168
|
-
return TEMPORAL_CAPABILITIES;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/** Family-convention factory. */
|
|
172
|
-
public static create(index: IMemoryIndex): Result<HistoryRetriever> {
|
|
173
|
-
return succeed(new HistoryRetriever(index));
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/** {@inheritDoc IMemoryRetriever.retrieve} */
|
|
177
|
-
public retrieve(query: IMemoryQuery): Promise<Result<ReadonlyArray<IMemoryRecord<unknown>>>> {
|
|
178
|
-
return Promise.resolve(
|
|
179
|
-
guardRetrieverCapabilities(query, this.capabilities).onSuccess(() => {
|
|
180
|
-
const history: IMemoryRecord<unknown>[] = [];
|
|
181
|
-
for (const versions of groupTemporalVersionsByEntity(this._index, query).values()) {
|
|
182
|
-
history.push(...versions);
|
|
183
|
-
}
|
|
184
|
-
history.sort(HistoryRetriever._byValidAtAscending);
|
|
185
|
-
return succeed(limitRecords(history, query.limit, query.offset));
|
|
186
|
-
})
|
|
187
|
-
);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/** A version's world-truth start: its `valid_at`, defaulting to `created` when absent. */
|
|
191
|
-
private static _startOf(record: IMemoryRecord<unknown>): number {
|
|
192
|
-
const temporal: IMemoryRecord<unknown>['envelope']['temporal'] = record.envelope.temporal;
|
|
193
|
-
/* c8 ignore next 3 -- unreachable: HistoryRetriever orders only temporal records (pre-filtered by isTemporalRecord), so `temporal` is always present; the guard keeps the type honest */
|
|
194
|
-
if (temporal === undefined) {
|
|
195
|
-
return record.envelope.created;
|
|
196
|
-
}
|
|
197
|
-
return temporal.valid_at ?? record.envelope.created;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Ascending-by-`valid_at` comparator (a version's `valid_at` defaults to its
|
|
202
|
-
* `created` when absent), with `seq` as a stable ascending tiebreak so
|
|
203
|
-
* same-instant versions order by write sequence.
|
|
204
|
-
*/
|
|
205
|
-
private static _byValidAtAscending(a: IMemoryRecord<unknown>, b: IMemoryRecord<unknown>): number {
|
|
206
|
-
const aStart: number = HistoryRetriever._startOf(a);
|
|
207
|
-
const bStart: number = HistoryRetriever._startOf(b);
|
|
208
|
-
return aStart !== bStart ? aStart - bStart : a.envelope.seq - b.envelope.seq;
|
|
209
|
-
}
|
|
210
|
-
}
|