@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,196 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Erik Fortune
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { EntityId, Kind, LinkType, MemoryId, MemoryScopeKey, Tag } from './ids';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Origin of a provenance attribution. Open vocabulary: the three named
|
|
10
|
-
* sources are conventional, but the `(string & {})` arm admits any other
|
|
11
|
-
* source string without resignature.
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
|
-
export type ProvenanceSource = 'agent' | 'host-ingest' | 'human' | (string & {});
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Structured provenance for a record or an edge. Never a flat enum — the
|
|
18
|
-
* `[key: string]: unknown` index signature lets a consumer attach an opaque
|
|
19
|
-
* domain payload (e.g. PersonAIlity's sentiment / epistemic blocks) without
|
|
20
|
-
* changing this interface, while still satisfying the no-`any` rule.
|
|
21
|
-
* @public
|
|
22
|
-
*/
|
|
23
|
-
export interface IProvenance {
|
|
24
|
-
/** Where the attribution came from. */
|
|
25
|
-
readonly source: ProvenanceSource;
|
|
26
|
-
/** Optional human or agent identifier responsible for the write. */
|
|
27
|
-
readonly by?: string;
|
|
28
|
-
/** Optional model identifier, when a model produced the content. */
|
|
29
|
-
readonly model?: string;
|
|
30
|
-
/** Optional confidence in `[0, 1]`. */
|
|
31
|
-
readonly confidence?: number;
|
|
32
|
-
/**
|
|
33
|
-
* Scope-qualified back-link to the source record. Enables the cross-kind
|
|
34
|
-
* provenance spine. A scope-qualified {@link IEdgeTarget} (not a bare
|
|
35
|
-
* {@link MemoryId}) because per-scope codecs (e.g. the MTM codec's `turn-<n>`
|
|
36
|
-
* stems) legally reuse a stem across scopes, so a bare id would be ambiguous —
|
|
37
|
-
* the same reason {@link IEdge.target} is scope-qualified.
|
|
38
|
-
*/
|
|
39
|
-
readonly derivedFrom?: IEdgeTarget;
|
|
40
|
-
/** Opaque extension payload — consumer-owned, never interpreted by the store. */
|
|
41
|
-
readonly [key: string]: unknown;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* The physical address of a linked-to record: the `(scope, id)` pair that
|
|
46
|
-
* uniquely identifies it. Both components are required because a bare
|
|
47
|
-
* {@link MemoryId} is NOT unique across scopes — per-scope codecs (e.g. the
|
|
48
|
-
* medium-term codec's `turn-<n>` stems) legally mint the same stem under
|
|
49
|
-
* different scopes, so an edge that carried only the id would be ambiguous.
|
|
50
|
-
* `(scope, id)` matches the store's `getById(scope, id)` addressing and the
|
|
51
|
-
* index's composite primary key.
|
|
52
|
-
* @public
|
|
53
|
-
*/
|
|
54
|
-
export interface IEdgeTarget {
|
|
55
|
-
/** The scope the target record lives under. */
|
|
56
|
-
readonly scope: MemoryScopeKey;
|
|
57
|
-
/** The target record's stable file-stem id (unique WITHIN {@link IEdgeTarget.scope}). */
|
|
58
|
-
readonly id: MemoryId;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* The canonical composite-key string for an {@link IEdgeTarget}: scope + id,
|
|
63
|
-
* NUL-separated. NUL is excluded from both components (scope segments are
|
|
64
|
-
* filename-safe; {@link MemoryId} is portable-filename-safe), so it is a
|
|
65
|
-
* collision-proof separator. This is the ONE canonicalization every consumer
|
|
66
|
-
* that keys on a scoped target uses — the backlink index, the cycle guard, and
|
|
67
|
-
* the ingest edge-validation path all route through it so their notions of
|
|
68
|
-
* "same target" cannot drift.
|
|
69
|
-
* @public
|
|
70
|
-
*/
|
|
71
|
-
export function edgeTargetKey(target: IEdgeTarget): string {
|
|
72
|
-
return `${target.scope}\0${target.id}`;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* An attributed link between two records. Carries the relation type, the
|
|
77
|
-
* scope-qualified {@link IEdgeTarget | target}, and optional confidence /
|
|
78
|
-
* provenance / world-truth validity. Replaces bare string references (e.g.
|
|
79
|
-
* PersonAIlity's `IMtmRef` becomes an `IEdge` with `type: LinkType('mtm-ref')`).
|
|
80
|
-
* @public
|
|
81
|
-
*/
|
|
82
|
-
export interface IEdge {
|
|
83
|
-
/** Open-vocabulary relation type. */
|
|
84
|
-
readonly type: LinkType;
|
|
85
|
-
/** The scope-qualified address of the linked-to record. */
|
|
86
|
-
readonly target: IEdgeTarget;
|
|
87
|
-
/** Optional confidence in `[0, 1]`. */
|
|
88
|
-
readonly confidence?: number;
|
|
89
|
-
/** Optional structured provenance for the link itself. */
|
|
90
|
-
readonly provenance?: IProvenance;
|
|
91
|
-
/** World-truth validity start (epoch ms). Present only on temporal edges. */
|
|
92
|
-
readonly valid_at?: number;
|
|
93
|
-
/**
|
|
94
|
-
* World-truth validity end (epoch ms). `null` = still valid; absent = no
|
|
95
|
-
* temporal extent.
|
|
96
|
-
*/
|
|
97
|
-
// eslint-disable-next-line @rushstack/no-new-null -- null is a meaningful value here (still-valid) distinct from absent (no temporal extent); design-lock §2.3
|
|
98
|
-
readonly invalid_at?: number | null;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Optional bi-temporal validity block on an envelope. Present only on
|
|
103
|
-
* temporal kinds; absent = zero cost for atemporal kinds.
|
|
104
|
-
* @public
|
|
105
|
-
*/
|
|
106
|
-
export interface ITemporalBlock {
|
|
107
|
-
/** World-truth validity start (epoch ms). */
|
|
108
|
-
readonly valid_at?: number;
|
|
109
|
-
/** World-truth validity end (epoch ms). `null` = still valid. */
|
|
110
|
-
// eslint-disable-next-line @rushstack/no-new-null -- null is a meaningful value here (still-valid) distinct from absent; design-lock §2.4
|
|
111
|
-
readonly invalid_at?: number | null;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* The invariant identity + transaction-time envelope carried by every memory
|
|
116
|
-
* record, independent of the per-kind body.
|
|
117
|
-
* @public
|
|
118
|
-
*/
|
|
119
|
-
export interface IMemoryEnvelope {
|
|
120
|
-
// --- Core identity ---
|
|
121
|
-
/** Stable file-stem identifier. MUST equal the on-disk filename stem. */
|
|
122
|
-
readonly id: MemoryId;
|
|
123
|
-
/** Consumer-supplied domain key. Equals {@link IMemoryEnvelope.id | id} for non-temporal kinds. */
|
|
124
|
-
readonly entityId: EntityId;
|
|
125
|
-
/** Consumer-registered kind; dispatches the body Converter. */
|
|
126
|
-
readonly kind: Kind;
|
|
127
|
-
/** Open-vocabulary tags. */
|
|
128
|
-
readonly tags: ReadonlyArray<Tag>;
|
|
129
|
-
/** Attributed outbound edges. */
|
|
130
|
-
readonly links: ReadonlyArray<IEdge>;
|
|
131
|
-
|
|
132
|
-
// --- Transaction-time metadata (always present) ---
|
|
133
|
-
/** Epoch ms of the first write. Immutable after creation. */
|
|
134
|
-
readonly created: number;
|
|
135
|
-
/** Epoch ms of the most recent write. */
|
|
136
|
-
readonly updated: number;
|
|
137
|
-
/**
|
|
138
|
-
* Monotonic write counter within the store instance, assigned by the store
|
|
139
|
-
* on every successful put. Enables stable cursor paging over observation
|
|
140
|
-
* records without a full walk.
|
|
141
|
-
*/
|
|
142
|
-
readonly seq: number;
|
|
143
|
-
/**
|
|
144
|
-
* Content hash over the canonical `{ kind, body, links }`. The dedup key:
|
|
145
|
-
* an exact match is a no-op upsert that returns the existing record.
|
|
146
|
-
*/
|
|
147
|
-
readonly contentHash: string;
|
|
148
|
-
/**
|
|
149
|
-
* Store-computed host-defined ordering value, produced by the kind's
|
|
150
|
-
* {@link RankProjector} on every put/update and stamped into the envelope in
|
|
151
|
-
* the same pass that recomputes {@link IMemoryEnvelope.contentHash | contentHash}.
|
|
152
|
-
* Absent when the kind has no registered projector (or the projector threw on
|
|
153
|
-
* this record). Ordered retrieval (`orderBy: 'rank'`) and the index's rank view
|
|
154
|
-
* sort by this value descending, placing records with an absent `rank` last.
|
|
155
|
-
*/
|
|
156
|
-
readonly rank?: number;
|
|
157
|
-
/** Structured provenance (never a flat enum). */
|
|
158
|
-
readonly provenance: IProvenance;
|
|
159
|
-
|
|
160
|
-
// --- Optional temporal block ---
|
|
161
|
-
/** Bi-temporal validity. Present only on temporal kinds. */
|
|
162
|
-
readonly temporal?: ITemporalBlock;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Vector-index entry reference, set by the vector index on write. `null` =
|
|
166
|
-
* not embedded; absent = same as `null` (backwards-compat seam).
|
|
167
|
-
*/
|
|
168
|
-
// eslint-disable-next-line @rushstack/no-new-null -- null is the explicit "not embedded" sentinel distinct from absent (backwards-compat seam); design-lock §2.5
|
|
169
|
-
readonly embeddingRef?: string | null;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* A complete memory record: the invariant {@link IMemoryEnvelope} plus the
|
|
174
|
-
* typed, per-kind body. The store's public surface uses
|
|
175
|
-
* `IMemoryRecord<unknown>`; consumers narrow `TBody` by checking
|
|
176
|
-
* `envelope.kind` and validating through the registered Converter.
|
|
177
|
-
* @public
|
|
178
|
-
*/
|
|
179
|
-
export interface IMemoryRecord<TBody = unknown> {
|
|
180
|
-
/** The invariant identity + transaction-time envelope. */
|
|
181
|
-
readonly envelope: IMemoryEnvelope;
|
|
182
|
-
/** The per-kind, Converter-validated body. */
|
|
183
|
-
readonly body: TBody;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* A per-kind host projection from a fully-resolved (post-merge) memory record
|
|
188
|
-
* to a numeric ordering value. Registered per kind at store construction (see
|
|
189
|
-
* `rankProjectors`); the store runs it on every put/update over the same
|
|
190
|
-
* resolved record whose `contentHash` it computes, stamping the result into
|
|
191
|
-
* {@link IMemoryEnvelope.rank}. The store never interprets the body — the host
|
|
192
|
-
* owns what the number means. A projector that throws is treated as "no rank
|
|
193
|
-
* for this record" (logged at `warn`), never failing the write.
|
|
194
|
-
* @public
|
|
195
|
-
*/
|
|
196
|
-
export type RankProjector = (record: IMemoryRecord<unknown>) => number;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Erik Fortune
|
|
3
|
-
* SPDX-License-Identifier: MIT
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Result, fail, succeed } from '@fgv/ts-utils';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Reserved Windows device basenames. Includes `COM0..9` and `LPT0..9` — the
|
|
10
|
-
* 0-suffixed variants were added in Windows 11 / Server 2022. Matched
|
|
11
|
-
* case-insensitively against the basename (text before the first `.`).
|
|
12
|
-
*/
|
|
13
|
-
const RESERVED_WIN_DEVICES: ReadonlySet<string> = new Set<string>([
|
|
14
|
-
'CON',
|
|
15
|
-
'PRN',
|
|
16
|
-
'AUX',
|
|
17
|
-
'NUL',
|
|
18
|
-
...Array.from({ length: 10 }, (__v, i) => `COM${i}`),
|
|
19
|
-
...Array.from({ length: 10 }, (__v, i) => `LPT${i}`)
|
|
20
|
-
]);
|
|
21
|
-
|
|
22
|
-
const PORTABLE_FILENAME_RE: RegExp = /^[A-Za-z0-9._-]+$/;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Validates a single filename stem against the POSIX portable filename set
|
|
26
|
-
* (`[A-Za-z0-9._-]`), rejecting a leading or trailing `.` and reserved Windows
|
|
27
|
-
* device names. This is the cross-platform filename-stem contract for the
|
|
28
|
-
* package: {@link MemoryId} values, the concrete {@link IIdentityCodec}
|
|
29
|
-
* implementations, and the store's `verifyFilenameId` all gate on it.
|
|
30
|
-
*
|
|
31
|
-
* @remarks
|
|
32
|
-
* A trailing `.` is rejected because Windows silently strips trailing dots from
|
|
33
|
-
* filenames, so such a stem would not round-trip verbatim through the file
|
|
34
|
-
* layer even though it is otherwise portable-set-valid.
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
export function assertPortableFilenameStem(stem: string): Result<string> {
|
|
38
|
-
if (stem.length === 0) {
|
|
39
|
-
return fail('idStem: must be a non-empty string');
|
|
40
|
-
}
|
|
41
|
-
if (stem.startsWith('.')) {
|
|
42
|
-
return fail(`idStem '${stem}': may not begin with '.'`);
|
|
43
|
-
}
|
|
44
|
-
if (stem.endsWith('.')) {
|
|
45
|
-
return fail(`idStem '${stem}': may not end with '.' (Windows strips trailing dots)`);
|
|
46
|
-
}
|
|
47
|
-
if (!PORTABLE_FILENAME_RE.test(stem)) {
|
|
48
|
-
return fail(
|
|
49
|
-
`idStem '${stem}': contains characters outside the POSIX portable filename set ([A-Za-z0-9._-])`
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
const basename: string = stem.split('.')[0];
|
|
53
|
-
if (RESERVED_WIN_DEVICES.has(basename.toUpperCase())) {
|
|
54
|
-
return fail(`idStem '${stem}': basename '${basename}' matches a reserved Windows device name`);
|
|
55
|
-
}
|
|
56
|
-
return succeed(stem);
|
|
57
|
-
}
|