@cmdoss/memwal-sdk 0.6.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/ARCHITECTURE.md +463 -0
- package/BENCHMARKS.md +238 -0
- package/README.md +142 -0
- package/dist/access/PermissionService.d.ts +179 -0
- package/dist/access/PermissionService.d.ts.map +1 -0
- package/dist/access/PermissionService.js +445 -0
- package/dist/access/PermissionService.js.map +1 -0
- package/dist/access/index.d.ts +8 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/index.js +7 -0
- package/dist/access/index.js.map +1 -0
- package/dist/aggregation/AggregationService.d.ts +132 -0
- package/dist/aggregation/AggregationService.d.ts.map +1 -0
- package/dist/aggregation/AggregationService.js +225 -0
- package/dist/aggregation/AggregationService.js.map +1 -0
- package/dist/aggregation/index.d.ts +8 -0
- package/dist/aggregation/index.d.ts.map +1 -0
- package/dist/aggregation/index.js +7 -0
- package/dist/aggregation/index.js.map +1 -0
- package/dist/ai-sdk/PDWVectorStore.d.ts +124 -0
- package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -0
- package/dist/ai-sdk/PDWVectorStore.js +557 -0
- package/dist/ai-sdk/PDWVectorStore.js.map +1 -0
- package/dist/ai-sdk/index.d.ts +45 -0
- package/dist/ai-sdk/index.d.ts.map +1 -0
- package/dist/ai-sdk/index.js +45 -0
- package/dist/ai-sdk/index.js.map +1 -0
- package/dist/ai-sdk/tools.d.ts +153 -0
- package/dist/ai-sdk/tools.d.ts.map +1 -0
- package/dist/ai-sdk/tools.js +312 -0
- package/dist/ai-sdk/tools.js.map +1 -0
- package/dist/ai-sdk/types.d.ts +336 -0
- package/dist/ai-sdk/types.d.ts.map +1 -0
- package/dist/ai-sdk/types.js +36 -0
- package/dist/ai-sdk/types.js.map +1 -0
- package/dist/api/client.d.ts +43 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +136 -0
- package/dist/api/client.js.map +1 -0
- package/dist/batch/BatchManager.d.ts +147 -0
- package/dist/batch/BatchManager.d.ts.map +1 -0
- package/dist/batch/BatchManager.js +427 -0
- package/dist/batch/BatchManager.js.map +1 -0
- package/dist/batch/BatchingService.d.ts +122 -0
- package/dist/batch/BatchingService.d.ts.map +1 -0
- package/dist/batch/BatchingService.js +301 -0
- package/dist/batch/BatchingService.js.map +1 -0
- package/dist/batch/MemoryProcessingCache.d.ts +147 -0
- package/dist/batch/MemoryProcessingCache.d.ts.map +1 -0
- package/dist/batch/MemoryProcessingCache.js +349 -0
- package/dist/batch/MemoryProcessingCache.js.map +1 -0
- package/dist/batch/index.d.ts +13 -0
- package/dist/batch/index.d.ts.map +1 -0
- package/dist/batch/index.js +10 -0
- package/dist/batch/index.js.map +1 -0
- package/dist/browser.d.ts +73 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +66 -0
- package/dist/browser.js.map +1 -0
- package/dist/chat/index.d.ts +13 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +14 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/client/ClientMemoryManager.d.ts +202 -0
- package/dist/client/ClientMemoryManager.d.ts.map +1 -0
- package/dist/client/ClientMemoryManager.js +764 -0
- package/dist/client/ClientMemoryManager.js.map +1 -0
- package/dist/client/PersonalDataWallet.d.ts +406 -0
- package/dist/client/PersonalDataWallet.d.ts.map +1 -0
- package/dist/client/PersonalDataWallet.js +229 -0
- package/dist/client/PersonalDataWallet.js.map +1 -0
- package/dist/client/SimplePDWClient.d.ts +534 -0
- package/dist/client/SimplePDWClient.d.ts.map +1 -0
- package/dist/client/SimplePDWClient.js +876 -0
- package/dist/client/SimplePDWClient.js.map +1 -0
- package/dist/client/factory.d.ts +99 -0
- package/dist/client/factory.d.ts.map +1 -0
- package/dist/client/factory.js +126 -0
- package/dist/client/factory.js.map +1 -0
- package/dist/client/namespaces/AnalyticsNamespace.d.ts +178 -0
- package/dist/client/namespaces/AnalyticsNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/AnalyticsNamespace.js +261 -0
- package/dist/client/namespaces/AnalyticsNamespace.js.map +1 -0
- package/dist/client/namespaces/BatchNamespace.d.ts +120 -0
- package/dist/client/namespaces/BatchNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/BatchNamespace.js +261 -0
- package/dist/client/namespaces/BatchNamespace.js.map +1 -0
- package/dist/client/namespaces/CacheNamespace.d.ts +80 -0
- package/dist/client/namespaces/CacheNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/CacheNamespace.js +100 -0
- package/dist/client/namespaces/CacheNamespace.js.map +1 -0
- package/dist/client/namespaces/CapabilityNamespace.d.ts +145 -0
- package/dist/client/namespaces/CapabilityNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/CapabilityNamespace.js +181 -0
- package/dist/client/namespaces/CapabilityNamespace.js.map +1 -0
- package/dist/client/namespaces/ChatNamespace.d.ts +110 -0
- package/dist/client/namespaces/ChatNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/ChatNamespace.js +123 -0
- package/dist/client/namespaces/ChatNamespace.js.map +1 -0
- package/dist/client/namespaces/ClassifyNamespace.d.ts +96 -0
- package/dist/client/namespaces/ClassifyNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/ClassifyNamespace.js +149 -0
- package/dist/client/namespaces/ClassifyNamespace.js.map +1 -0
- package/dist/client/namespaces/ContextNamespace.d.ts +150 -0
- package/dist/client/namespaces/ContextNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/ContextNamespace.js +250 -0
- package/dist/client/namespaces/ContextNamespace.js.map +1 -0
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts +64 -0
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/EmbeddingsNamespace.js +86 -0
- package/dist/client/namespaces/EmbeddingsNamespace.js.map +1 -0
- package/dist/client/namespaces/EncryptionNamespace.d.ts +128 -0
- package/dist/client/namespaces/EncryptionNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/EncryptionNamespace.js +161 -0
- package/dist/client/namespaces/EncryptionNamespace.js.map +1 -0
- package/dist/client/namespaces/GraphNamespace.d.ts +168 -0
- package/dist/client/namespaces/GraphNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/GraphNamespace.js +314 -0
- package/dist/client/namespaces/GraphNamespace.js.map +1 -0
- package/dist/client/namespaces/IndexNamespace.d.ts +141 -0
- package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/IndexNamespace.js +238 -0
- package/dist/client/namespaces/IndexNamespace.js.map +1 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts +277 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/MemoryNamespace.js +907 -0
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -0
- package/dist/client/namespaces/PermissionsNamespace.d.ts +114 -0
- package/dist/client/namespaces/PermissionsNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/PermissionsNamespace.js +179 -0
- package/dist/client/namespaces/PermissionsNamespace.js.map +1 -0
- package/dist/client/namespaces/PipelineNamespace.d.ts +125 -0
- package/dist/client/namespaces/PipelineNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/PipelineNamespace.js +171 -0
- package/dist/client/namespaces/PipelineNamespace.js.map +1 -0
- package/dist/client/namespaces/SearchNamespace.d.ts +382 -0
- package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/SearchNamespace.js +821 -0
- package/dist/client/namespaces/SearchNamespace.js.map +1 -0
- package/dist/client/namespaces/StorageNamespace.d.ts +180 -0
- package/dist/client/namespaces/StorageNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/StorageNamespace.js +354 -0
- package/dist/client/namespaces/StorageNamespace.js.map +1 -0
- package/dist/client/namespaces/TxNamespace.d.ts +143 -0
- package/dist/client/namespaces/TxNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/TxNamespace.js +208 -0
- package/dist/client/namespaces/TxNamespace.js.map +1 -0
- package/dist/client/namespaces/WalletNamespace.d.ts +124 -0
- package/dist/client/namespaces/WalletNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/WalletNamespace.js +197 -0
- package/dist/client/namespaces/WalletNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/AINamespace.d.ts +265 -0
- package/dist/client/namespaces/consolidated/AINamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/AINamespace.js +390 -0
- package/dist/client/namespaces/consolidated/AINamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +265 -0
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +412 -0
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/SecurityNamespace.d.ts +354 -0
- package/dist/client/namespaces/consolidated/SecurityNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/SecurityNamespace.js +522 -0
- package/dist/client/namespaces/consolidated/SecurityNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +235 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.js +351 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/index.d.ts +17 -0
- package/dist/client/namespaces/consolidated/index.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/index.js +13 -0
- package/dist/client/namespaces/consolidated/index.js.map +1 -0
- package/dist/client/signers/KeypairSigner.d.ts +55 -0
- package/dist/client/signers/KeypairSigner.d.ts.map +1 -0
- package/dist/client/signers/KeypairSigner.js +84 -0
- package/dist/client/signers/KeypairSigner.js.map +1 -0
- package/dist/client/signers/UnifiedSigner.d.ts +88 -0
- package/dist/client/signers/UnifiedSigner.d.ts.map +1 -0
- package/dist/client/signers/UnifiedSigner.js +13 -0
- package/dist/client/signers/UnifiedSigner.js.map +1 -0
- package/dist/client/signers/WalletAdapterSigner.d.ts +94 -0
- package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -0
- package/dist/client/signers/WalletAdapterSigner.js +91 -0
- package/dist/client/signers/WalletAdapterSigner.js.map +1 -0
- package/dist/client/signers/index.d.ts +14 -0
- package/dist/client/signers/index.d.ts.map +1 -0
- package/dist/client/signers/index.js +12 -0
- package/dist/client/signers/index.js.map +1 -0
- package/dist/config/ConfigurationHelper.d.ts +167 -0
- package/dist/config/ConfigurationHelper.d.ts.map +1 -0
- package/dist/config/ConfigurationHelper.js +283 -0
- package/dist/config/ConfigurationHelper.js.map +1 -0
- package/dist/config/defaults.d.ts +9 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +49 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +8 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/validation.d.ts +12 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +61 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +13 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/interfaces/IService.d.ts +162 -0
- package/dist/core/interfaces/IService.d.ts.map +1 -0
- package/dist/core/interfaces/IService.js +159 -0
- package/dist/core/interfaces/IService.js.map +1 -0
- package/dist/core/interfaces/index.d.ts +7 -0
- package/dist/core/interfaces/index.d.ts.map +1 -0
- package/dist/core/interfaces/index.js +7 -0
- package/dist/core/interfaces/index.js.map +1 -0
- package/dist/core/types/capability.d.ts +268 -0
- package/dist/core/types/capability.d.ts.map +1 -0
- package/dist/core/types/capability.js +16 -0
- package/dist/core/types/capability.js.map +1 -0
- package/dist/core/types/index.d.ts +750 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +6 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/wallet.d.ts +254 -0
- package/dist/core/types/wallet.d.ts.map +1 -0
- package/dist/core/types/wallet.js +27 -0
- package/dist/core/types/wallet.js.map +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +8 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/wallet.d.ts +209 -0
- package/dist/core/wallet.d.ts.map +1 -0
- package/dist/core/wallet.js +27 -0
- package/dist/core/wallet.js.map +1 -0
- package/dist/embedding/index.d.ts +9 -0
- package/dist/embedding/index.d.ts.map +1 -0
- package/dist/embedding/index.js +8 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/types.d.ts +302 -0
- package/dist/embedding/types.d.ts.map +1 -0
- package/dist/embedding/types.js +9 -0
- package/dist/embedding/types.js.map +1 -0
- package/dist/encryption/index.d.ts +14 -0
- package/dist/encryption/index.d.ts.map +1 -0
- package/dist/encryption/index.js +14 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/errors/index.d.ts +149 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +301 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/recovery.d.ts +128 -0
- package/dist/errors/recovery.d.ts.map +1 -0
- package/dist/errors/recovery.js +320 -0
- package/dist/errors/recovery.js.map +1 -0
- package/dist/errors/validation.d.ts +106 -0
- package/dist/errors/validation.d.ts.map +1 -0
- package/dist/errors/validation.js +354 -0
- package/dist/errors/validation.js.map +1 -0
- package/dist/generated/pdw/capability.d.ts +223 -0
- package/dist/generated/pdw/capability.d.ts.map +1 -0
- package/dist/generated/pdw/capability.js +238 -0
- package/dist/generated/pdw/capability.js.map +1 -0
- package/dist/generated/pdw/deps/sui/object.d.ts +9 -0
- package/dist/generated/pdw/deps/sui/object.d.ts.map +1 -0
- package/dist/generated/pdw/deps/sui/object.js +11 -0
- package/dist/generated/pdw/deps/sui/object.js.map +1 -0
- package/dist/generated/pdw/deps/sui/vec_map.d.ts +37 -0
- package/dist/generated/pdw/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/generated/pdw/deps/sui/vec_map.js +28 -0
- package/dist/generated/pdw/deps/sui/vec_map.js.map +1 -0
- package/dist/generated/pdw/memory.d.ts +676 -0
- package/dist/generated/pdw/memory.d.ts.map +1 -0
- package/dist/generated/pdw/memory.js +681 -0
- package/dist/generated/pdw/memory.js.map +1 -0
- package/dist/generated/pdw/wallet.d.ts +78 -0
- package/dist/generated/pdw/wallet.d.ts.map +1 -0
- package/dist/generated/pdw/wallet.js +89 -0
- package/dist/generated/pdw/wallet.js.map +1 -0
- package/dist/generated/utils/index.d.ts +12 -0
- package/dist/generated/utils/index.d.ts.map +1 -0
- package/dist/generated/utils/index.js +132 -0
- package/dist/generated/utils/index.js.map +1 -0
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts +101 -0
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +1 -0
- package/dist/graph/BrowserKnowledgeGraphManager.js +411 -0
- package/dist/graph/BrowserKnowledgeGraphManager.js.map +1 -0
- package/dist/graph/GraphService.d.ts +194 -0
- package/dist/graph/GraphService.d.ts.map +1 -0
- package/dist/graph/GraphService.js +662 -0
- package/dist/graph/GraphService.js.map +1 -0
- package/dist/graph/KnowledgeGraphManager.d.ts +161 -0
- package/dist/graph/KnowledgeGraphManager.d.ts.map +1 -0
- package/dist/graph/KnowledgeGraphManager.js +495 -0
- package/dist/graph/KnowledgeGraphManager.js.map +1 -0
- package/dist/graph/index.d.ts +11 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +9 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/hooks.wip/index.d.ts +55 -0
- package/dist/hooks.wip/index.d.ts.map +1 -0
- package/dist/hooks.wip/index.js +58 -0
- package/dist/hooks.wip/index.js.map +1 -0
- package/dist/hooks.wip/useCreateMemory.d.ts +111 -0
- package/dist/hooks.wip/useCreateMemory.d.ts.map +1 -0
- package/dist/hooks.wip/useCreateMemory.js +149 -0
- package/dist/hooks.wip/useCreateMemory.js.map +1 -0
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts +122 -0
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +1 -0
- package/dist/hooks.wip/useCreateMemoryBatch.js +221 -0
- package/dist/hooks.wip/useCreateMemoryBatch.js.map +1 -0
- package/dist/hooks.wip/useKnowledgeGraph.d.ts +66 -0
- package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +1 -0
- package/dist/hooks.wip/useKnowledgeGraph.js +229 -0
- package/dist/hooks.wip/useKnowledgeGraph.js.map +1 -0
- package/dist/hooks.wip/useMemoryChat.d.ts +106 -0
- package/dist/hooks.wip/useMemoryChat.d.ts.map +1 -0
- package/dist/hooks.wip/useMemoryChat.js +284 -0
- package/dist/hooks.wip/useMemoryChat.js.map +1 -0
- package/dist/hooks.wip/useMemoryIndex.d.ts +90 -0
- package/dist/hooks.wip/useMemoryIndex.d.ts.map +1 -0
- package/dist/hooks.wip/useMemoryIndex.js +218 -0
- package/dist/hooks.wip/useMemoryIndex.js.map +1 -0
- package/dist/hooks.wip/useMemoryManager.d.ts +35 -0
- package/dist/hooks.wip/useMemoryManager.d.ts.map +1 -0
- package/dist/hooks.wip/useMemoryManager.js +86 -0
- package/dist/hooks.wip/useMemoryManager.js.map +1 -0
- package/dist/hooks.wip/useMemorySearch.d.ts +100 -0
- package/dist/hooks.wip/useMemorySearch.d.ts.map +1 -0
- package/dist/hooks.wip/useMemorySearch.js +278 -0
- package/dist/hooks.wip/useMemorySearch.js.map +1 -0
- package/dist/hooks.wip/useMemoryServices.d.ts +80 -0
- package/dist/hooks.wip/useMemoryServices.d.ts.map +1 -0
- package/dist/hooks.wip/useMemoryServices.js +264 -0
- package/dist/hooks.wip/useMemoryServices.js.map +1 -0
- package/dist/hooks.wip/usePDWRAG.d.ts +112 -0
- package/dist/hooks.wip/usePDWRAG.d.ts.map +1 -0
- package/dist/hooks.wip/usePDWRAG.js +121 -0
- package/dist/hooks.wip/usePDWRAG.js.map +1 -0
- package/dist/hooks.wip/usePDWVectorStore.d.ts +68 -0
- package/dist/hooks.wip/usePDWVectorStore.d.ts.map +1 -0
- package/dist/hooks.wip/usePDWVectorStore.js +102 -0
- package/dist/hooks.wip/usePDWVectorStore.js.map +1 -0
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts +138 -0
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +1 -0
- package/dist/hooks.wip/useRetrieveEmbedding.js +121 -0
- package/dist/hooks.wip/useRetrieveEmbedding.js.map +1 -0
- package/dist/hooks.wip/useSearchMemories.d.ts +103 -0
- package/dist/hooks.wip/useSearchMemories.d.ts.map +1 -0
- package/dist/hooks.wip/useSearchMemories.js +146 -0
- package/dist/hooks.wip/useSearchMemories.js.map +1 -0
- package/dist/hooks.wip/useStoreEmbedding.d.ts +174 -0
- package/dist/hooks.wip/useStoreEmbedding.d.ts.map +1 -0
- package/dist/hooks.wip/useStoreEmbedding.js +167 -0
- package/dist/hooks.wip/useStoreEmbedding.js.map +1 -0
- package/dist/hooks.wip/useWalletMemories.d.ts +119 -0
- package/dist/hooks.wip/useWalletMemories.d.ts.map +1 -0
- package/dist/hooks.wip/useWalletMemories.js +166 -0
- package/dist/hooks.wip/useWalletMemories.js.map +1 -0
- package/dist/hooks.wip/utils/cache.d.ts +25 -0
- package/dist/hooks.wip/utils/cache.d.ts.map +1 -0
- package/dist/hooks.wip/utils/cache.js +38 -0
- package/dist/hooks.wip/utils/cache.js.map +1 -0
- package/dist/hooks.wip/utils/types.d.ts +138 -0
- package/dist/hooks.wip/utils/types.d.ts.map +1 -0
- package/dist/hooks.wip/utils/types.js +5 -0
- package/dist/hooks.wip/utils/types.js.map +1 -0
- package/dist/index.d.ts +190 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +298 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/ai/EmbeddingService.d.ts +101 -0
- package/dist/infrastructure/ai/EmbeddingService.d.ts.map +1 -0
- package/dist/infrastructure/ai/EmbeddingService.js +242 -0
- package/dist/infrastructure/ai/EmbeddingService.js.map +1 -0
- package/dist/infrastructure/ai/GeminiAIService.d.ts +84 -0
- package/dist/infrastructure/ai/GeminiAIService.d.ts.map +1 -0
- package/dist/infrastructure/ai/GeminiAIService.js +300 -0
- package/dist/infrastructure/ai/GeminiAIService.js.map +1 -0
- package/dist/infrastructure/ai/index.d.ts +8 -0
- package/dist/infrastructure/ai/index.d.ts.map +1 -0
- package/dist/infrastructure/ai/index.js +8 -0
- package/dist/infrastructure/ai/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +16 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +19 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/seal/EncryptionService.d.ts +162 -0
- package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -0
- package/dist/infrastructure/seal/EncryptionService.js +466 -0
- package/dist/infrastructure/seal/EncryptionService.js.map +1 -0
- package/dist/infrastructure/seal/SealService.d.ts +132 -0
- package/dist/infrastructure/seal/SealService.d.ts.map +1 -0
- package/dist/infrastructure/seal/SealService.js +473 -0
- package/dist/infrastructure/seal/SealService.js.map +1 -0
- package/dist/infrastructure/seal/index.d.ts +8 -0
- package/dist/infrastructure/seal/index.d.ts.map +1 -0
- package/dist/infrastructure/seal/index.js +8 -0
- package/dist/infrastructure/seal/index.js.map +1 -0
- package/dist/infrastructure/sui/BlockchainManager.d.ts +161 -0
- package/dist/infrastructure/sui/BlockchainManager.d.ts.map +1 -0
- package/dist/infrastructure/sui/BlockchainManager.js +421 -0
- package/dist/infrastructure/sui/BlockchainManager.js.map +1 -0
- package/dist/infrastructure/sui/SuiService.d.ts +179 -0
- package/dist/infrastructure/sui/SuiService.d.ts.map +1 -0
- package/dist/infrastructure/sui/SuiService.js +658 -0
- package/dist/infrastructure/sui/SuiService.js.map +1 -0
- package/dist/infrastructure/sui/index.d.ts +8 -0
- package/dist/infrastructure/sui/index.d.ts.map +1 -0
- package/dist/infrastructure/sui/index.js +8 -0
- package/dist/infrastructure/sui/index.js.map +1 -0
- package/dist/infrastructure/walrus/StorageManager.d.ts +207 -0
- package/dist/infrastructure/walrus/StorageManager.d.ts.map +1 -0
- package/dist/infrastructure/walrus/StorageManager.js +413 -0
- package/dist/infrastructure/walrus/StorageManager.js.map +1 -0
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts +177 -0
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -0
- package/dist/infrastructure/walrus/WalrusStorageService.js +403 -0
- package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -0
- package/dist/infrastructure/walrus/index.d.ts +8 -0
- package/dist/infrastructure/walrus/index.d.ts.map +1 -0
- package/dist/infrastructure/walrus/index.js +8 -0
- package/dist/infrastructure/walrus/index.js.map +1 -0
- package/dist/langchain/PDWEmbeddings.d.ts +77 -0
- package/dist/langchain/PDWEmbeddings.d.ts.map +1 -0
- package/dist/langchain/PDWEmbeddings.js +96 -0
- package/dist/langchain/PDWEmbeddings.js.map +1 -0
- package/dist/langchain/PDWVectorStore.d.ts +173 -0
- package/dist/langchain/PDWVectorStore.d.ts.map +1 -0
- package/dist/langchain/PDWVectorStore.js +304 -0
- package/dist/langchain/PDWVectorStore.js.map +1 -0
- package/dist/langchain/createPDWRAG.d.ts +115 -0
- package/dist/langchain/createPDWRAG.d.ts.map +1 -0
- package/dist/langchain/createPDWRAG.js +181 -0
- package/dist/langchain/createPDWRAG.js.map +1 -0
- package/dist/langchain/index.d.ts +35 -0
- package/dist/langchain/index.d.ts.map +1 -0
- package/dist/langchain/index.js +35 -0
- package/dist/langchain/index.js.map +1 -0
- package/dist/memory/index.d.ts +13 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +14 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/permissions/ConsentRepository.d.ts +71 -0
- package/dist/permissions/ConsentRepository.d.ts.map +1 -0
- package/dist/permissions/ConsentRepository.js +297 -0
- package/dist/permissions/ConsentRepository.js.map +1 -0
- package/dist/permissions/index.d.ts +9 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +8 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/pipeline/MemoryPipeline.d.ts +191 -0
- package/dist/pipeline/MemoryPipeline.d.ts.map +1 -0
- package/dist/pipeline/MemoryPipeline.js +588 -0
- package/dist/pipeline/MemoryPipeline.js.map +1 -0
- package/dist/pipeline/PipelineManager.d.ts +178 -0
- package/dist/pipeline/PipelineManager.d.ts.map +1 -0
- package/dist/pipeline/PipelineManager.js +485 -0
- package/dist/pipeline/PipelineManager.js.map +1 -0
- package/dist/pipeline/index.d.ts +13 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +11 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/retrieval/AdvancedSearchService.d.ts +231 -0
- package/dist/retrieval/AdvancedSearchService.d.ts.map +1 -0
- package/dist/retrieval/AdvancedSearchService.js +384 -0
- package/dist/retrieval/AdvancedSearchService.js.map +1 -0
- package/dist/retrieval/MemoryAnalyticsService.d.ts +227 -0
- package/dist/retrieval/MemoryAnalyticsService.d.ts.map +1 -0
- package/dist/retrieval/MemoryAnalyticsService.js +417 -0
- package/dist/retrieval/MemoryAnalyticsService.js.map +1 -0
- package/dist/retrieval/MemoryDecryptionPipeline.d.ts +191 -0
- package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -0
- package/dist/retrieval/MemoryDecryptionPipeline.js +623 -0
- package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts +248 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -0
- package/dist/retrieval/MemoryRetrievalService.js +519 -0
- package/dist/retrieval/MemoryRetrievalService.js.map +1 -0
- package/dist/retrieval/index.d.ts +14 -0
- package/dist/retrieval/index.d.ts.map +1 -0
- package/dist/retrieval/index.js +10 -0
- package/dist/retrieval/index.js.map +1 -0
- package/dist/services/BatchService.d.ts +109 -0
- package/dist/services/BatchService.d.ts.map +1 -0
- package/dist/services/BatchService.js +259 -0
- package/dist/services/BatchService.js.map +1 -0
- package/dist/services/CapabilityService.d.ts +141 -0
- package/dist/services/CapabilityService.d.ts.map +1 -0
- package/dist/services/CapabilityService.js +361 -0
- package/dist/services/CapabilityService.js.map +1 -0
- package/dist/services/ChatService.d.ts +89 -0
- package/dist/services/ChatService.d.ts.map +1 -0
- package/dist/services/ChatService.js +319 -0
- package/dist/services/ChatService.js.map +1 -0
- package/dist/services/ClassifierService.d.ts +104 -0
- package/dist/services/ClassifierService.d.ts.map +1 -0
- package/dist/services/ClassifierService.js +374 -0
- package/dist/services/ClassifierService.js.map +1 -0
- package/dist/services/CrossContextPermissionService.d.ts +149 -0
- package/dist/services/CrossContextPermissionService.d.ts.map +1 -0
- package/dist/services/CrossContextPermissionService.js +337 -0
- package/dist/services/CrossContextPermissionService.js.map +1 -0
- package/dist/services/EmbeddingService.d.ts +206 -0
- package/dist/services/EmbeddingService.d.ts.map +1 -0
- package/dist/services/EmbeddingService.js +504 -0
- package/dist/services/EmbeddingService.js.map +1 -0
- package/dist/services/EncryptionService.d.ts +201 -0
- package/dist/services/EncryptionService.d.ts.map +1 -0
- package/dist/services/EncryptionService.js +558 -0
- package/dist/services/EncryptionService.js.map +1 -0
- package/dist/services/GeminiAIService.d.ts +112 -0
- package/dist/services/GeminiAIService.d.ts.map +1 -0
- package/dist/services/GeminiAIService.js +389 -0
- package/dist/services/GeminiAIService.js.map +1 -0
- package/dist/services/IndexManager.d.ts +238 -0
- package/dist/services/IndexManager.d.ts.map +1 -0
- package/dist/services/IndexManager.js +691 -0
- package/dist/services/IndexManager.js.map +1 -0
- package/dist/services/MemoryIndexService.d.ts +222 -0
- package/dist/services/MemoryIndexService.d.ts.map +1 -0
- package/dist/services/MemoryIndexService.js +695 -0
- package/dist/services/MemoryIndexService.js.map +1 -0
- package/dist/services/MemoryService.d.ts +156 -0
- package/dist/services/MemoryService.d.ts.map +1 -0
- package/dist/services/MemoryService.js +273 -0
- package/dist/services/MemoryService.js.map +1 -0
- package/dist/services/QueryService.d.ts +182 -0
- package/dist/services/QueryService.d.ts.map +1 -0
- package/dist/services/QueryService.js +631 -0
- package/dist/services/QueryService.js.map +1 -0
- package/dist/services/StorageService.d.ts +523 -0
- package/dist/services/StorageService.d.ts.map +1 -0
- package/dist/services/StorageService.js +627 -0
- package/dist/services/StorageService.js.map +1 -0
- package/dist/services/TransactionService.d.ts +179 -0
- package/dist/services/TransactionService.d.ts.map +1 -0
- package/dist/services/TransactionService.js +639 -0
- package/dist/services/TransactionService.js.map +1 -0
- package/dist/services/VectorService.d.ts +122 -0
- package/dist/services/VectorService.d.ts.map +1 -0
- package/dist/services/VectorService.js +371 -0
- package/dist/services/VectorService.js.map +1 -0
- package/dist/services/ViewService.d.ts +126 -0
- package/dist/services/ViewService.d.ts.map +1 -0
- package/dist/services/ViewService.js +356 -0
- package/dist/services/ViewService.js.map +1 -0
- package/dist/services/index.d.ts +12 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +11 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/storage/BlobAttributesManager.d.ts +60 -0
- package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -0
- package/dist/services/storage/BlobAttributesManager.js +265 -0
- package/dist/services/storage/BlobAttributesManager.js.map +1 -0
- package/dist/services/storage/KnowledgeGraphManager.d.ts +162 -0
- package/dist/services/storage/KnowledgeGraphManager.d.ts.map +1 -0
- package/dist/services/storage/KnowledgeGraphManager.js +303 -0
- package/dist/services/storage/KnowledgeGraphManager.js.map +1 -0
- package/dist/services/storage/MemorySearchManager.d.ts +154 -0
- package/dist/services/storage/MemorySearchManager.d.ts.map +1 -0
- package/dist/services/storage/MemorySearchManager.js +260 -0
- package/dist/services/storage/MemorySearchManager.js.map +1 -0
- package/dist/services/storage/QuiltBatchManager.d.ts +185 -0
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -0
- package/dist/services/storage/QuiltBatchManager.js +385 -0
- package/dist/services/storage/QuiltBatchManager.js.map +1 -0
- package/dist/services/storage/WalrusMetadataManager.d.ts +89 -0
- package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -0
- package/dist/services/storage/WalrusMetadataManager.js +177 -0
- package/dist/services/storage/WalrusMetadataManager.js.map +1 -0
- package/dist/services/storage/WalrusStorageManager.d.ts +113 -0
- package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -0
- package/dist/services/storage/WalrusStorageManager.js +211 -0
- package/dist/services/storage/WalrusStorageManager.js.map +1 -0
- package/dist/services/storage/index.d.ts +24 -0
- package/dist/services/storage/index.d.ts.map +1 -0
- package/dist/services/storage/index.js +18 -0
- package/dist/services/storage/index.js.map +1 -0
- package/dist/transactions/index.d.ts +13 -0
- package/dist/transactions/index.d.ts.map +1 -0
- package/dist/transactions/index.js +14 -0
- package/dist/transactions/index.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/wallet.d.ts +12 -0
- package/dist/types/wallet.d.ts.map +1 -0
- package/dist/types/wallet.js +13 -0
- package/dist/types/wallet.js.map +1 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +30 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/rebuildIndex.d.ts +79 -0
- package/dist/utils/rebuildIndex.d.ts.map +1 -0
- package/dist/utils/rebuildIndex.js +211 -0
- package/dist/utils/rebuildIndex.js.map +1 -0
- package/dist/utils/rebuildIndexNode.d.ts +70 -0
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -0
- package/dist/utils/rebuildIndexNode.js +236 -0
- package/dist/utils/rebuildIndexNode.js.map +1 -0
- package/dist/vector/BrowserHnswIndexService.d.ts +93 -0
- package/dist/vector/BrowserHnswIndexService.d.ts.map +1 -0
- package/dist/vector/BrowserHnswIndexService.js +581 -0
- package/dist/vector/BrowserHnswIndexService.js.map +1 -0
- package/dist/vector/HnswWasmService.d.ts +97 -0
- package/dist/vector/HnswWasmService.d.ts.map +1 -0
- package/dist/vector/HnswWasmService.js +518 -0
- package/dist/vector/HnswWasmService.js.map +1 -0
- package/dist/vector/IHnswService.d.ts +179 -0
- package/dist/vector/IHnswService.d.ts.map +1 -0
- package/dist/vector/IHnswService.js +25 -0
- package/dist/vector/IHnswService.js.map +1 -0
- package/dist/vector/NodeHnswService.d.ts +80 -0
- package/dist/vector/NodeHnswService.d.ts.map +1 -0
- package/dist/vector/NodeHnswService.js +589 -0
- package/dist/vector/NodeHnswService.js.map +1 -0
- package/dist/vector/VectorManager.d.ts +142 -0
- package/dist/vector/VectorManager.d.ts.map +1 -0
- package/dist/vector/VectorManager.js +339 -0
- package/dist/vector/VectorManager.js.map +1 -0
- package/dist/vector/createHnswService.d.ts +51 -0
- package/dist/vector/createHnswService.d.ts.map +1 -0
- package/dist/vector/createHnswService.js +120 -0
- package/dist/vector/createHnswService.js.map +1 -0
- package/dist/vector/index.d.ts +24 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/dist/vector/index.js +24 -0
- package/dist/vector/index.js.map +1 -0
- package/dist/view/ViewService.d.ts +136 -0
- package/dist/view/ViewService.d.ts.map +1 -0
- package/dist/view/ViewService.js +325 -0
- package/dist/view/ViewService.js.map +1 -0
- package/dist/view/index.d.ts +7 -0
- package/dist/view/index.d.ts.map +1 -0
- package/dist/view/index.js +7 -0
- package/dist/view/index.js.map +1 -0
- package/dist/wallet/ContextWalletService.d.ts +172 -0
- package/dist/wallet/ContextWalletService.d.ts.map +1 -0
- package/dist/wallet/ContextWalletService.js +510 -0
- package/dist/wallet/ContextWalletService.js.map +1 -0
- package/dist/wallet/MainWalletService.d.ts +114 -0
- package/dist/wallet/MainWalletService.d.ts.map +1 -0
- package/dist/wallet/MainWalletService.js +259 -0
- package/dist/wallet/MainWalletService.js.map +1 -0
- package/dist/wallet/index.d.ts +16 -0
- package/dist/wallet/index.d.ts.map +1 -0
- package/dist/wallet/index.js +14 -0
- package/dist/wallet/index.js.map +1 -0
- package/package.json +150 -0
- package/src/access/PermissionService.ts +636 -0
- package/src/access/index.ts +8 -0
- package/src/aggregation/AggregationService.ts +390 -0
- package/src/aggregation/index.ts +8 -0
- package/src/ai-sdk/PDWVectorStore.ts +712 -0
- package/src/ai-sdk/index.ts +65 -0
- package/src/ai-sdk/tools.ts +460 -0
- package/src/ai-sdk/types.ts +404 -0
- package/src/batch/BatchManager.ts +598 -0
- package/src/batch/BatchingService.ts +430 -0
- package/src/batch/MemoryProcessingCache.ts +493 -0
- package/src/batch/index.ts +31 -0
- package/src/browser.ts +196 -0
- package/src/client/ClientMemoryManager.ts +982 -0
- package/src/client/PersonalDataWallet.ts +346 -0
- package/src/client/SimplePDWClient.ts +1180 -0
- package/src/client/factory.ts +155 -0
- package/src/client/namespaces/AnalyticsNamespace.ts +377 -0
- package/src/client/namespaces/BatchNamespace.ts +356 -0
- package/src/client/namespaces/CacheNamespace.ts +123 -0
- package/src/client/namespaces/CapabilityNamespace.ts +217 -0
- package/src/client/namespaces/ClassifyNamespace.ts +169 -0
- package/src/client/namespaces/ContextNamespace.ts +297 -0
- package/src/client/namespaces/EmbeddingsNamespace.ts +99 -0
- package/src/client/namespaces/EncryptionNamespace.ts +221 -0
- package/src/client/namespaces/GraphNamespace.ts +468 -0
- package/src/client/namespaces/IndexNamespace.ts +283 -0
- package/src/client/namespaces/MemoryNamespace.ts +1135 -0
- package/src/client/namespaces/PermissionsNamespace.ts +254 -0
- package/src/client/namespaces/PipelineNamespace.ts +220 -0
- package/src/client/namespaces/SearchNamespace.ts +1036 -0
- package/src/client/namespaces/StorageNamespace.ts +458 -0
- package/src/client/namespaces/TxNamespace.ts +260 -0
- package/src/client/namespaces/WalletNamespace.ts +243 -0
- package/src/client/namespaces/consolidated/AINamespace.ts +449 -0
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +492 -0
- package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -0
- package/src/client/namespaces/consolidated/StorageNamespace.ts +440 -0
- package/src/client/namespaces/consolidated/index.ts +39 -0
- package/src/client/signers/KeypairSigner.ts +101 -0
- package/src/client/signers/UnifiedSigner.ts +99 -0
- package/src/client/signers/WalletAdapterSigner.ts +149 -0
- package/src/client/signers/index.ts +19 -0
- package/src/config/ConfigurationHelper.ts +413 -0
- package/src/config/defaults.ts +52 -0
- package/src/config/index.ts +9 -0
- package/src/config/validation.ts +71 -0
- package/src/core/index.ts +14 -0
- package/src/core/interfaces/IService.ts +307 -0
- package/src/core/interfaces/index.ts +8 -0
- package/src/core/types/capability.ts +297 -0
- package/src/core/types/index.ts +871 -0
- package/src/core/types/wallet.ts +271 -0
- package/src/core/types.ts +9 -0
- package/src/core/wallet.ts +223 -0
- package/src/embedding/index.ts +20 -0
- package/src/embedding/types.ts +358 -0
- package/src/errors/index.ts +603 -0
- package/src/errors/recovery.ts +462 -0
- package/src/errors/validation.ts +568 -0
- package/src/generated/pdw/capability.ts +319 -0
- package/src/generated/pdw/deps/sui/object.ts +13 -0
- package/src/generated/pdw/deps/sui/vec_map.ts +33 -0
- package/src/generated/pdw/memory.ts +1088 -0
- package/src/generated/pdw/wallet.ts +124 -0
- package/src/generated/utils/index.ts +159 -0
- package/src/graph/GraphService.ts +888 -0
- package/src/graph/KnowledgeGraphManager.ts +729 -0
- package/src/graph/index.ts +26 -0
- package/src/index.ts +458 -0
- package/src/infrastructure/index.ts +22 -0
- package/src/infrastructure/seal/EncryptionService.ts +604 -0
- package/src/infrastructure/seal/SealService.ts +616 -0
- package/src/infrastructure/seal/index.ts +9 -0
- package/src/infrastructure/sui/BlockchainManager.ts +628 -0
- package/src/infrastructure/sui/SuiService.ts +888 -0
- package/src/infrastructure/sui/index.ts +9 -0
- package/src/infrastructure/walrus/StorageManager.ts +605 -0
- package/src/infrastructure/walrus/WalrusStorageService.ts +613 -0
- package/src/infrastructure/walrus/index.ts +9 -0
- package/src/langchain/PDWEmbeddings.ts +145 -0
- package/src/langchain/PDWVectorStore.ts +456 -0
- package/src/langchain/README.md +116 -0
- package/src/langchain/createPDWRAG.ts +303 -0
- package/src/langchain/index.ts +47 -0
- package/src/permissions/ConsentRepository.ts +364 -0
- package/src/permissions/index.ts +9 -0
- package/src/pipeline/MemoryPipeline.ts +863 -0
- package/src/pipeline/PipelineManager.ts +684 -0
- package/src/pipeline/index.ts +27 -0
- package/src/retrieval/AdvancedSearchService.ts +630 -0
- package/src/retrieval/MemoryAnalyticsService.ts +712 -0
- package/src/retrieval/MemoryDecryptionPipeline.ts +825 -0
- package/src/retrieval/MemoryRetrievalService.ts +831 -0
- package/src/retrieval/index.ts +43 -0
- package/src/services/BatchService.ts +353 -0
- package/src/services/CapabilityService.ts +448 -0
- package/src/services/ClassifierService.ts +466 -0
- package/src/services/CrossContextPermissionService.ts +484 -0
- package/src/services/EmbeddingService.ts +706 -0
- package/src/services/EncryptionService.ts +712 -0
- package/src/services/GeminiAIService.ts +497 -0
- package/src/services/IndexManager.ts +1004 -0
- package/src/services/MemoryIndexService.ts +922 -0
- package/src/services/MemoryService.ts +370 -0
- package/src/services/QueryService.ts +891 -0
- package/src/services/StorageService.ts +1111 -0
- package/src/services/TransactionService.ts +791 -0
- package/src/services/VectorService.ts +462 -0
- package/src/services/ViewService.ts +485 -0
- package/src/services/index.ts +25 -0
- package/src/services/storage/BlobAttributesManager.ts +342 -0
- package/src/services/storage/KnowledgeGraphManager.ts +425 -0
- package/src/services/storage/MemorySearchManager.ts +387 -0
- package/src/services/storage/QuiltBatchManager.ts +532 -0
- package/src/services/storage/WalrusMetadataManager.ts +271 -0
- package/src/services/storage/WalrusStorageManager.ts +290 -0
- package/src/services/storage/index.ts +52 -0
- package/src/types/index.ts +13 -0
- package/src/utils/index.ts +68 -0
- package/src/utils/rebuildIndex.ts +290 -0
- package/src/utils/rebuildIndexNode.ts +341 -0
- package/src/vector/BrowserHnswIndexService.ts +758 -0
- package/src/vector/HnswWasmService.ts +679 -0
- package/src/vector/IHnswService.ts +224 -0
- package/src/vector/NodeHnswService.ts +713 -0
- package/src/vector/VectorManager.ts +479 -0
- package/src/vector/createHnswService.ts +135 -0
- package/src/vector/index.ts +57 -0
- package/src/wallet/ContextWalletService.ts +657 -0
- package/src/wallet/MainWalletService.ts +318 -0
- package/src/wallet/index.ts +17 -0
|
@@ -0,0 +1,922 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryIndexService - Enhanced Memory Indexing and Vector Search
|
|
3
|
+
*
|
|
4
|
+
* Hybrid HNSW-powered memory indexing service providing:
|
|
5
|
+
* - O(log N) vector similarity search performance
|
|
6
|
+
* - Advanced clustering and graph-based memory organization
|
|
7
|
+
* - Intelligent semantic search with relevance scoring
|
|
8
|
+
* - Dynamic index optimization and parameter tuning
|
|
9
|
+
* - Multi-dimensional vector space analysis
|
|
10
|
+
*
|
|
11
|
+
* Automatically selects the appropriate HNSW implementation:
|
|
12
|
+
* - Browser: hnswlib-wasm (WebAssembly)
|
|
13
|
+
* - Node.js: hnswlib-node (native bindings)
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { createHnswService, isBrowser, isNode } from '../vector/createHnswService';
|
|
17
|
+
import type { IHnswService, IHnswSearchOptions } from '../vector/IHnswService';
|
|
18
|
+
import { EmbeddingService } from './EmbeddingService';
|
|
19
|
+
import { StorageService, type MemoryMetadata } from './StorageService';
|
|
20
|
+
|
|
21
|
+
export interface MemoryIndexEntry {
|
|
22
|
+
memoryId: string;
|
|
23
|
+
blobId: string;
|
|
24
|
+
vectorId: number;
|
|
25
|
+
embedding: number[];
|
|
26
|
+
metadata: MemoryMetadata;
|
|
27
|
+
indexedAt: Date;
|
|
28
|
+
lastAccessed?: Date;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface MemoryIndexOptions {
|
|
32
|
+
maxElements?: number;
|
|
33
|
+
dimension?: number;
|
|
34
|
+
efConstruction?: number;
|
|
35
|
+
m?: number;
|
|
36
|
+
batchSize?: number;
|
|
37
|
+
autoFlushInterval?: number;
|
|
38
|
+
/** Pre-initialized HNSW service instance (shared singleton) */
|
|
39
|
+
hnswService?: IHnswService;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface MemorySearchQuery {
|
|
43
|
+
query?: string;
|
|
44
|
+
vector?: number[];
|
|
45
|
+
userAddress: string;
|
|
46
|
+
k?: number;
|
|
47
|
+
threshold?: number;
|
|
48
|
+
|
|
49
|
+
// Memory-specific filters
|
|
50
|
+
categories?: string[];
|
|
51
|
+
dateRange?: {
|
|
52
|
+
start?: Date;
|
|
53
|
+
end?: Date;
|
|
54
|
+
};
|
|
55
|
+
importanceRange?: {
|
|
56
|
+
min?: number;
|
|
57
|
+
max?: number;
|
|
58
|
+
};
|
|
59
|
+
tags?: string[];
|
|
60
|
+
includeContent?: boolean;
|
|
61
|
+
|
|
62
|
+
// Enhanced search features
|
|
63
|
+
searchMode?: 'semantic' | 'hybrid' | 'exact'; // Search strategy
|
|
64
|
+
boostRecent?: boolean; // Boost recently created memories
|
|
65
|
+
diversityFactor?: number; // Result diversity (0-1)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface MemorySearchResult {
|
|
69
|
+
memoryId: string;
|
|
70
|
+
blobId: string;
|
|
71
|
+
metadata: MemoryMetadata;
|
|
72
|
+
similarity: number;
|
|
73
|
+
relevanceScore: number;
|
|
74
|
+
content?: string | Uint8Array;
|
|
75
|
+
extractedAt?: Date;
|
|
76
|
+
embedding?: number[]; // Optional embedding vector for advanced similarity operations
|
|
77
|
+
clusterInfo?: {
|
|
78
|
+
clusterId: number;
|
|
79
|
+
clusterCenter: number[];
|
|
80
|
+
intraClusterSimilarity: number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Memory-focused indexing service providing high-level memory operations
|
|
86
|
+
* Uses hybrid HNSW implementation (browser: wasm, node: native) for optimal performance
|
|
87
|
+
*/
|
|
88
|
+
export class MemoryIndexService {
|
|
89
|
+
private hnswService: IHnswService | null = null;
|
|
90
|
+
private hnswServicePromise: Promise<IHnswService> | null = null;
|
|
91
|
+
private embeddingService?: EmbeddingService;
|
|
92
|
+
private storageService?: StorageService;
|
|
93
|
+
private memoryIndex = new Map<string, Map<string, MemoryIndexEntry>>(); // userAddress -> memoryId -> entry
|
|
94
|
+
private nextMemoryId = 1;
|
|
95
|
+
private options: MemoryIndexOptions;
|
|
96
|
+
|
|
97
|
+
// Performance tracking
|
|
98
|
+
private indexStats = new Map<string, {
|
|
99
|
+
totalVectors: number;
|
|
100
|
+
avgSimilarity: number;
|
|
101
|
+
searchLatency: number[];
|
|
102
|
+
lastOptimized: Date;
|
|
103
|
+
}>();
|
|
104
|
+
|
|
105
|
+
constructor(
|
|
106
|
+
storageService?: StorageService,
|
|
107
|
+
options: MemoryIndexOptions = {}
|
|
108
|
+
) {
|
|
109
|
+
this.storageService = storageService;
|
|
110
|
+
this.options = options;
|
|
111
|
+
|
|
112
|
+
// Use pre-initialized HNSW service if provided (shared singleton pattern)
|
|
113
|
+
if (options.hnswService) {
|
|
114
|
+
this.hnswService = options.hnswService;
|
|
115
|
+
console.log('✅ MemoryIndexService using shared HNSW service instance');
|
|
116
|
+
} else {
|
|
117
|
+
// Initialize HNSW service asynchronously using factory
|
|
118
|
+
this.hnswServicePromise = this.initializeHnswService();
|
|
119
|
+
|
|
120
|
+
const envType = isBrowser() ? 'browser (hnswlib-wasm)' : isNode() ? 'Node.js (hnswlib-node)' : 'unknown';
|
|
121
|
+
console.log(`✅ MemoryIndexService initializing with hybrid HNSW (${envType})`);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
console.log(` Max elements: ${options.maxElements || 10000}`);
|
|
125
|
+
console.log(` Embedding dimension: ${options.dimension || 3072}`);
|
|
126
|
+
console.log(` HNSW parameters: M=${options.m || 16}, efConstruction=${options.efConstruction || 200}`);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Initialize HNSW service using factory (auto-detects environment)
|
|
131
|
+
*/
|
|
132
|
+
private async initializeHnswService(): Promise<IHnswService> {
|
|
133
|
+
try {
|
|
134
|
+
const service = await createHnswService({
|
|
135
|
+
indexConfig: {
|
|
136
|
+
dimension: this.options.dimension || 3072,
|
|
137
|
+
maxElements: this.options.maxElements || 10000,
|
|
138
|
+
efConstruction: this.options.efConstruction || 200,
|
|
139
|
+
m: this.options.m || 16
|
|
140
|
+
},
|
|
141
|
+
batchConfig: {
|
|
142
|
+
maxBatchSize: this.options.batchSize || 100,
|
|
143
|
+
batchDelayMs: this.options.autoFlushInterval || 5000
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
this.hnswService = service;
|
|
148
|
+
console.log('✅ HNSW service initialized successfully');
|
|
149
|
+
return service;
|
|
150
|
+
} catch (error) {
|
|
151
|
+
console.error('❌ Failed to initialize HNSW service:', error);
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Get HNSW service (waits for initialization if needed)
|
|
158
|
+
*/
|
|
159
|
+
private async getHnswService(): Promise<IHnswService> {
|
|
160
|
+
if (this.hnswService) {
|
|
161
|
+
return this.hnswService;
|
|
162
|
+
}
|
|
163
|
+
if (this.hnswServicePromise) {
|
|
164
|
+
return this.hnswServicePromise;
|
|
165
|
+
}
|
|
166
|
+
throw new Error('HNSW service not initialized');
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Initialize with embedding service
|
|
171
|
+
*/
|
|
172
|
+
initialize(embeddingService: EmbeddingService, storageService?: StorageService) {
|
|
173
|
+
this.embeddingService = embeddingService;
|
|
174
|
+
if (storageService) {
|
|
175
|
+
this.storageService = storageService;
|
|
176
|
+
}
|
|
177
|
+
console.log('✅ MemoryIndexService: Embedding service connected');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Index a memory with its content, metadata, and vector embedding
|
|
182
|
+
*
|
|
183
|
+
* @param userAddress - User's wallet address
|
|
184
|
+
* @param memoryId - Unique memory identifier
|
|
185
|
+
* @param blobId - Walrus blob ID for the memory
|
|
186
|
+
* @param content - Memory content (stored in index only if not encrypted)
|
|
187
|
+
* @param metadata - Memory metadata
|
|
188
|
+
* @param embedding - Pre-computed embedding vector (optional)
|
|
189
|
+
* @param options - Indexing options
|
|
190
|
+
* @param options.isEncrypted - If true, content will NOT be stored in index (security)
|
|
191
|
+
*/
|
|
192
|
+
async indexMemory(
|
|
193
|
+
userAddress: string,
|
|
194
|
+
memoryId: string,
|
|
195
|
+
blobId: string,
|
|
196
|
+
content: string,
|
|
197
|
+
metadata: MemoryMetadata,
|
|
198
|
+
embedding?: number[],
|
|
199
|
+
options?: { isEncrypted?: boolean }
|
|
200
|
+
): Promise<{ vectorId: number; indexed: boolean }> {
|
|
201
|
+
try {
|
|
202
|
+
console.log(`📊 Indexing memory ${memoryId} for user ${userAddress}`);
|
|
203
|
+
|
|
204
|
+
// Generate embedding if not provided
|
|
205
|
+
let memoryEmbedding = embedding;
|
|
206
|
+
if (!memoryEmbedding && this.embeddingService) {
|
|
207
|
+
const embeddingResult = await this.embeddingService.embedText({ text: content });
|
|
208
|
+
memoryEmbedding = embeddingResult.vector;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (!memoryEmbedding) {
|
|
212
|
+
throw new Error('No embedding provided and no embedding service available');
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Generate vector ID
|
|
216
|
+
const vectorId = this.nextMemoryId++;
|
|
217
|
+
|
|
218
|
+
// Add to HNSW index with batching
|
|
219
|
+
// Option A+: Store content in index ONLY when encryption is OFF (security consideration)
|
|
220
|
+
const hnswService = await this.getHnswService();
|
|
221
|
+
const isEncrypted = options?.isEncrypted ?? false;
|
|
222
|
+
|
|
223
|
+
const vectorMetadata: Record<string, unknown> = {
|
|
224
|
+
memoryId,
|
|
225
|
+
blobId,
|
|
226
|
+
category: metadata.category,
|
|
227
|
+
topic: metadata.topic,
|
|
228
|
+
importance: metadata.importance,
|
|
229
|
+
contentType: metadata.contentType,
|
|
230
|
+
createdTimestamp: metadata.createdTimestamp,
|
|
231
|
+
customMetadata: metadata.customMetadata
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
// Only store content if NOT encrypted (privacy-safe)
|
|
235
|
+
if (!isEncrypted && content) {
|
|
236
|
+
vectorMetadata.content = content;
|
|
237
|
+
console.log(' 💾 Content stored in local index (encryption OFF)');
|
|
238
|
+
} else if (isEncrypted) {
|
|
239
|
+
console.log(' 🔒 Content NOT stored in index (encryption ON - security)');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
await hnswService.addVector(
|
|
243
|
+
userAddress,
|
|
244
|
+
vectorId,
|
|
245
|
+
memoryEmbedding,
|
|
246
|
+
vectorMetadata
|
|
247
|
+
);
|
|
248
|
+
|
|
249
|
+
// Update performance statistics
|
|
250
|
+
this.updateIndexStats(userAddress);
|
|
251
|
+
|
|
252
|
+
// Store in memory index
|
|
253
|
+
if (!this.memoryIndex.has(userAddress)) {
|
|
254
|
+
this.memoryIndex.set(userAddress, new Map());
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const indexEntry: MemoryIndexEntry = {
|
|
258
|
+
memoryId,
|
|
259
|
+
blobId,
|
|
260
|
+
vectorId,
|
|
261
|
+
embedding: memoryEmbedding,
|
|
262
|
+
metadata,
|
|
263
|
+
indexedAt: new Date()
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
this.memoryIndex.get(userAddress)!.set(memoryId, indexEntry);
|
|
267
|
+
|
|
268
|
+
console.log(`✅ Memory indexed: ${memoryId} (vector ${vectorId})`);
|
|
269
|
+
console.log(` Category: ${metadata.category}`);
|
|
270
|
+
console.log(` Importance: ${metadata.importance}`);
|
|
271
|
+
console.log(` Embedding dimension: ${memoryEmbedding.length}`);
|
|
272
|
+
|
|
273
|
+
return { vectorId, indexed: true };
|
|
274
|
+
|
|
275
|
+
} catch (error) {
|
|
276
|
+
console.error('❌ Failed to index memory:', error);
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Enhanced memory search using native HNSW with advanced features
|
|
283
|
+
* Supports semantic search, metadata filtering, and intelligent relevance scoring
|
|
284
|
+
*/
|
|
285
|
+
async searchMemories(query: MemorySearchQuery): Promise<MemorySearchResult[]> {
|
|
286
|
+
const startTime = performance.now();
|
|
287
|
+
|
|
288
|
+
try {
|
|
289
|
+
console.log(`🔍 Memory search for user ${query.userAddress}`);
|
|
290
|
+
console.log(` Query: "${query.query || 'vector search'}"`);
|
|
291
|
+
console.log(` Mode: ${query.searchMode || 'semantic'}, K: ${query.k || 10}`);
|
|
292
|
+
|
|
293
|
+
// Generate query vector if needed
|
|
294
|
+
let queryVector = query.vector;
|
|
295
|
+
if (!queryVector && query.query && this.embeddingService) {
|
|
296
|
+
const embeddingResult = await this.embeddingService.embedText({ text: query.query });
|
|
297
|
+
queryVector = embeddingResult.vector;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (!queryVector) {
|
|
301
|
+
throw new Error('No query vector provided and no query text with embedding service');
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
const userMemories = this.memoryIndex.get(query.userAddress);
|
|
305
|
+
if (!userMemories || userMemories.size === 0) {
|
|
306
|
+
console.log(' No memories found for user');
|
|
307
|
+
return [];
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Configure search parameters based on query mode
|
|
311
|
+
const searchK = query.k || 10;
|
|
312
|
+
const efSearch = query.searchMode === 'exact' ? searchK * 4 :
|
|
313
|
+
query.searchMode === 'hybrid' ? searchK * 2 : searchK;
|
|
314
|
+
|
|
315
|
+
// Perform HNSW search using native implementation
|
|
316
|
+
const hnswService = await this.getHnswService();
|
|
317
|
+
const hnswResults = await hnswService.search(
|
|
318
|
+
query.userAddress,
|
|
319
|
+
queryVector,
|
|
320
|
+
{
|
|
321
|
+
k: Math.min(searchK * 3, 100), // Get more candidates for post-filtering
|
|
322
|
+
ef: efSearch,
|
|
323
|
+
filter: this.createMetadataFilter(query)
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
|
|
327
|
+
// Convert to memory search results with enhanced scoring
|
|
328
|
+
const results: MemorySearchResult[] = [];
|
|
329
|
+
|
|
330
|
+
for (const result of hnswResults) {
|
|
331
|
+
const vectorId = result.vectorId;
|
|
332
|
+
const distance = result.distance;
|
|
333
|
+
// Calculate similarity from distance (cosine distance: similarity = 1 - distance)
|
|
334
|
+
const similarity = result.score;
|
|
335
|
+
|
|
336
|
+
// Skip results below threshold
|
|
337
|
+
if (query.threshold && similarity < query.threshold) {
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Find memory entry by vector ID
|
|
342
|
+
const memoryEntry = Array.from(userMemories.values()).find(entry => entry.vectorId === vectorId);
|
|
343
|
+
if (!memoryEntry) continue;
|
|
344
|
+
|
|
345
|
+
// Enhanced relevance scoring
|
|
346
|
+
let relevanceScore = this.calculateAdvancedRelevanceScore(
|
|
347
|
+
similarity,
|
|
348
|
+
memoryEntry.metadata,
|
|
349
|
+
query,
|
|
350
|
+
queryVector,
|
|
351
|
+
memoryEntry.embedding || []
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
// Apply recency boost if requested
|
|
355
|
+
if (query.boostRecent) {
|
|
356
|
+
const recencyBoost = this.calculateRecencyBoost(memoryEntry.metadata.createdTimestamp || 0);
|
|
357
|
+
relevanceScore += recencyBoost * 0.1;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Option A+: Get content from HNSW metadata if available (avoids Walrus fetch!)
|
|
361
|
+
// Content is only stored when encryption is OFF (see indexMemory)
|
|
362
|
+
const indexedContent = result.metadata?.content as string | undefined;
|
|
363
|
+
|
|
364
|
+
results.push({
|
|
365
|
+
memoryId: memoryEntry.memoryId,
|
|
366
|
+
blobId: memoryEntry.blobId,
|
|
367
|
+
metadata: memoryEntry.metadata,
|
|
368
|
+
similarity,
|
|
369
|
+
relevanceScore,
|
|
370
|
+
content: indexedContent, // ✅ Return content from local index (no Walrus fetch needed!)
|
|
371
|
+
extractedAt: memoryEntry.indexedAt
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// Apply diversity filtering if requested
|
|
376
|
+
let finalResults = results;
|
|
377
|
+
if (query.diversityFactor && query.diversityFactor > 0) {
|
|
378
|
+
finalResults = this.diversifyResults(results, query.diversityFactor);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// Sort by relevance score and limit results
|
|
382
|
+
finalResults.sort((a, b) => b.relevanceScore - a.relevanceScore);
|
|
383
|
+
finalResults = finalResults.slice(0, searchK);
|
|
384
|
+
|
|
385
|
+
// Update search statistics
|
|
386
|
+
const searchLatency = performance.now() - startTime;
|
|
387
|
+
this.updateSearchStats(query.userAddress, searchLatency);
|
|
388
|
+
|
|
389
|
+
// Count how many results have content from local index (Option A+)
|
|
390
|
+
const resultsWithLocalContent = finalResults.filter(r => r.content !== undefined).length;
|
|
391
|
+
|
|
392
|
+
console.log(`✅ Search completed in ${searchLatency.toFixed(2)}ms`);
|
|
393
|
+
console.log(` Found ${finalResults.length} results (similarity range: ${finalResults.length > 0 ? finalResults[finalResults.length-1].similarity.toFixed(3) : 'N/A'} - ${finalResults.length > 0 ? finalResults[0].similarity.toFixed(3) : 'N/A'}`);
|
|
394
|
+
if (resultsWithLocalContent > 0) {
|
|
395
|
+
console.log(` 📦 ${resultsWithLocalContent}/${finalResults.length} results have content from local index (no Walrus fetch needed!)`);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return finalResults;
|
|
399
|
+
|
|
400
|
+
} catch (error) {
|
|
401
|
+
console.error('❌ Memory search failed:', error);
|
|
402
|
+
throw error;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Get all memories for a user with optional filtering
|
|
408
|
+
*/
|
|
409
|
+
async getUserMemories(
|
|
410
|
+
userAddress: string,
|
|
411
|
+
filters?: {
|
|
412
|
+
categories?: string[];
|
|
413
|
+
dateRange?: { start?: Date; end?: Date };
|
|
414
|
+
importanceRange?: { min?: number; max?: number };
|
|
415
|
+
limit?: number;
|
|
416
|
+
}
|
|
417
|
+
): Promise<MemorySearchResult[]> {
|
|
418
|
+
const userMemories = this.memoryIndex.get(userAddress);
|
|
419
|
+
if (!userMemories) {
|
|
420
|
+
return [];
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
const results: MemorySearchResult[] = [];
|
|
424
|
+
|
|
425
|
+
for (const [memoryId, entry] of userMemories) {
|
|
426
|
+
// Apply filters
|
|
427
|
+
if (filters) {
|
|
428
|
+
if (filters.categories && !filters.categories.includes(entry.metadata.category)) {
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
if (filters.importanceRange) {
|
|
433
|
+
const importance = entry.metadata.importance || 5;
|
|
434
|
+
if (filters.importanceRange.min && importance < filters.importanceRange.min) continue;
|
|
435
|
+
if (filters.importanceRange.max && importance > filters.importanceRange.max) continue;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
if (filters.dateRange) {
|
|
439
|
+
const created = new Date(entry.metadata.createdTimestamp || 0);
|
|
440
|
+
if (filters.dateRange.start && created < filters.dateRange.start) continue;
|
|
441
|
+
if (filters.dateRange.end && created > filters.dateRange.end) continue;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
results.push({
|
|
446
|
+
memoryId: entry.memoryId,
|
|
447
|
+
blobId: entry.blobId,
|
|
448
|
+
metadata: entry.metadata,
|
|
449
|
+
similarity: 1.0, // No similarity for direct listing
|
|
450
|
+
relevanceScore: entry.metadata.importance || 5,
|
|
451
|
+
extractedAt: entry.indexedAt
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// Sort by importance and creation time
|
|
456
|
+
results.sort((a, b) => {
|
|
457
|
+
const importanceDiff = (b.metadata.importance || 5) - (a.metadata.importance || 5);
|
|
458
|
+
if (importanceDiff !== 0) return importanceDiff;
|
|
459
|
+
return (b.metadata.createdTimestamp || 0) - (a.metadata.createdTimestamp || 0);
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
// Apply limit
|
|
463
|
+
if (filters?.limit) {
|
|
464
|
+
return results.slice(0, filters.limit);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
return results;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Remove memory from index
|
|
472
|
+
*/
|
|
473
|
+
async removeMemory(userAddress: string, memoryId: string): Promise<boolean> {
|
|
474
|
+
try {
|
|
475
|
+
const userMemories = this.memoryIndex.get(userAddress);
|
|
476
|
+
if (!userMemories) {
|
|
477
|
+
return false;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
const entry = userMemories.get(memoryId);
|
|
481
|
+
if (!entry) {
|
|
482
|
+
return false;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// Remove from HNSW index (if supported)
|
|
486
|
+
// Note: hnswlib-node doesn't support deletion, so we just mark as removed
|
|
487
|
+
|
|
488
|
+
// Remove from memory index
|
|
489
|
+
userMemories.delete(memoryId);
|
|
490
|
+
|
|
491
|
+
console.log(`✅ Memory removed from index: ${memoryId}`);
|
|
492
|
+
return true;
|
|
493
|
+
|
|
494
|
+
} catch (error) {
|
|
495
|
+
console.error('❌ Failed to remove memory from index:', error);
|
|
496
|
+
return false;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Get index statistics for a user
|
|
502
|
+
*/
|
|
503
|
+
getIndexStats(userAddress: string): {
|
|
504
|
+
totalMemories: number;
|
|
505
|
+
categoryCounts: Record<string, number>;
|
|
506
|
+
importanceDistribution: Record<number, number>;
|
|
507
|
+
averageImportance: number;
|
|
508
|
+
oldestMemory: Date | null;
|
|
509
|
+
newestMemory: Date | null;
|
|
510
|
+
indexSize: number;
|
|
511
|
+
} {
|
|
512
|
+
const userMemories = this.memoryIndex.get(userAddress);
|
|
513
|
+
if (!userMemories) {
|
|
514
|
+
return {
|
|
515
|
+
totalMemories: 0,
|
|
516
|
+
categoryCounts: {},
|
|
517
|
+
importanceDistribution: {},
|
|
518
|
+
averageImportance: 0,
|
|
519
|
+
oldestMemory: null,
|
|
520
|
+
newestMemory: null,
|
|
521
|
+
indexSize: 0
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const categoryCounts: Record<string, number> = {};
|
|
526
|
+
const importanceDistribution: Record<number, number> = {};
|
|
527
|
+
let totalImportance = 0;
|
|
528
|
+
let oldestMemory: Date | null = null;
|
|
529
|
+
let newestMemory: Date | null = null;
|
|
530
|
+
|
|
531
|
+
for (const entry of userMemories.values()) {
|
|
532
|
+
// Categories
|
|
533
|
+
categoryCounts[entry.metadata.category] = (categoryCounts[entry.metadata.category] || 0) + 1;
|
|
534
|
+
|
|
535
|
+
// Importance
|
|
536
|
+
const importance = entry.metadata.importance || 5;
|
|
537
|
+
importanceDistribution[importance] = (importanceDistribution[importance] || 0) + 1;
|
|
538
|
+
totalImportance += importance;
|
|
539
|
+
|
|
540
|
+
// Dates
|
|
541
|
+
const created = new Date(entry.metadata.createdTimestamp || 0);
|
|
542
|
+
if (!oldestMemory || created < oldestMemory) {
|
|
543
|
+
oldestMemory = created;
|
|
544
|
+
}
|
|
545
|
+
if (!newestMemory || created > newestMemory) {
|
|
546
|
+
newestMemory = created;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
return {
|
|
551
|
+
totalMemories: userMemories.size,
|
|
552
|
+
categoryCounts,
|
|
553
|
+
importanceDistribution,
|
|
554
|
+
averageImportance: userMemories.size > 0 ? totalImportance / userMemories.size : 0,
|
|
555
|
+
oldestMemory,
|
|
556
|
+
newestMemory,
|
|
557
|
+
indexSize: userMemories.size
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Flush pending operations and save index
|
|
563
|
+
*/
|
|
564
|
+
async flush(userAddress: string): Promise<void> {
|
|
565
|
+
const hnswService = await this.getHnswService();
|
|
566
|
+
await hnswService.flushBatch(userAddress);
|
|
567
|
+
console.log(`✅ Memory index flushed for user ${userAddress}`);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* Load index from storage
|
|
572
|
+
*/
|
|
573
|
+
async loadIndex(userAddress: string, indexBlobId?: string): Promise<void> {
|
|
574
|
+
const hnswService = await this.getHnswService();
|
|
575
|
+
const loaded = await hnswService.loadIndex(userAddress);
|
|
576
|
+
if (loaded) {
|
|
577
|
+
console.log(`✅ Memory index loaded for user ${userAddress}`);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Save index to storage
|
|
583
|
+
*/
|
|
584
|
+
async saveIndex(userAddress: string): Promise<void> {
|
|
585
|
+
const hnswService = await this.getHnswService();
|
|
586
|
+
await hnswService.saveIndex(userAddress);
|
|
587
|
+
console.log(`✅ Memory index saved for user ${userAddress}`);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Clear user's index
|
|
592
|
+
*/
|
|
593
|
+
async clearUserIndex(userAddress: string): Promise<void> {
|
|
594
|
+
this.memoryIndex.delete(userAddress);
|
|
595
|
+
const hnswService = await this.getHnswService();
|
|
596
|
+
await hnswService.deleteIndex(userAddress);
|
|
597
|
+
console.log(`✅ Memory index cleared for user ${userAddress}`);
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Get overall service statistics
|
|
602
|
+
*/
|
|
603
|
+
async getServiceStats() {
|
|
604
|
+
const totalMemories = Array.from(this.memoryIndex.values())
|
|
605
|
+
.reduce((sum, userMemories) => sum + userMemories.size, 0);
|
|
606
|
+
|
|
607
|
+
let hnswStats = null;
|
|
608
|
+
if (this.hnswService) {
|
|
609
|
+
hnswStats = this.hnswService.getBatchStats();
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
return {
|
|
613
|
+
totalUsers: this.memoryIndex.size,
|
|
614
|
+
totalMemories,
|
|
615
|
+
hnswStats,
|
|
616
|
+
hasEmbeddingService: !!this.embeddingService,
|
|
617
|
+
hasStorageService: !!this.storageService
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Destroy service and cleanup resources
|
|
623
|
+
*/
|
|
624
|
+
destroy(): void {
|
|
625
|
+
if (this.hnswService) {
|
|
626
|
+
this.hnswService.destroy();
|
|
627
|
+
}
|
|
628
|
+
this.hnswService = null;
|
|
629
|
+
this.hnswServicePromise = null;
|
|
630
|
+
this.memoryIndex.clear();
|
|
631
|
+
console.log('✅ MemoryIndexService destroyed');
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
// ==================== PRIVATE HELPER METHODS ====================
|
|
635
|
+
|
|
636
|
+
private createMemoryFilter(query: MemorySearchQuery) {
|
|
637
|
+
return (metadata: any) => {
|
|
638
|
+
// Category filter
|
|
639
|
+
if (query.categories && query.categories.length > 0) {
|
|
640
|
+
if (!query.categories.includes(metadata.category)) {
|
|
641
|
+
return false;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
// Date range filter
|
|
646
|
+
if (query.dateRange) {
|
|
647
|
+
const created = new Date(metadata.createdTimestamp || 0);
|
|
648
|
+
if (query.dateRange.start && created < query.dateRange.start) {
|
|
649
|
+
return false;
|
|
650
|
+
}
|
|
651
|
+
if (query.dateRange.end && created > query.dateRange.end) {
|
|
652
|
+
return false;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
// Importance range filter
|
|
657
|
+
if (query.importanceRange) {
|
|
658
|
+
const importance = metadata.importance || 5;
|
|
659
|
+
if (query.importanceRange.min && importance < query.importanceRange.min) {
|
|
660
|
+
return false;
|
|
661
|
+
}
|
|
662
|
+
if (query.importanceRange.max && importance > query.importanceRange.max) {
|
|
663
|
+
return false;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
// Tags filter (search in custom metadata)
|
|
668
|
+
if (query.tags && query.tags.length > 0) {
|
|
669
|
+
const metadataText = JSON.stringify(metadata).toLowerCase();
|
|
670
|
+
const hasAnyTag = query.tags.some(tag =>
|
|
671
|
+
metadataText.includes(tag.toLowerCase())
|
|
672
|
+
);
|
|
673
|
+
if (!hasAnyTag) {
|
|
674
|
+
return false;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
return true;
|
|
679
|
+
};
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
// ==================== HNSW HELPER METHODS ====================
|
|
683
|
+
|
|
684
|
+
/**
|
|
685
|
+
* Create metadata filter for HNSW search
|
|
686
|
+
*/
|
|
687
|
+
private createMetadataFilter(query: MemorySearchQuery): ((metadata: any) => boolean) | undefined {
|
|
688
|
+
if (!query.categories && !query.dateRange && !query.importanceRange && !query.tags) {
|
|
689
|
+
return undefined;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
return (metadata: any) => {
|
|
693
|
+
// Category filter
|
|
694
|
+
if (query.categories && query.categories.length > 0) {
|
|
695
|
+
if (!query.categories.includes(metadata.category)) {
|
|
696
|
+
return false;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
// Date range filter
|
|
701
|
+
if (query.dateRange) {
|
|
702
|
+
const created = new Date(metadata.createdTimestamp || 0);
|
|
703
|
+
if (query.dateRange.start && created < query.dateRange.start) {
|
|
704
|
+
return false;
|
|
705
|
+
}
|
|
706
|
+
if (query.dateRange.end && created > query.dateRange.end) {
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
// Importance range filter
|
|
712
|
+
if (query.importanceRange) {
|
|
713
|
+
const importance = metadata.importance || 5;
|
|
714
|
+
if (query.importanceRange.min && importance < query.importanceRange.min) {
|
|
715
|
+
return false;
|
|
716
|
+
}
|
|
717
|
+
if (query.importanceRange.max && importance > query.importanceRange.max) {
|
|
718
|
+
return false;
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
// Tags filter
|
|
723
|
+
if (query.tags && query.tags.length > 0) {
|
|
724
|
+
const metadataText = JSON.stringify(metadata).toLowerCase();
|
|
725
|
+
const hasAnyTag = query.tags.some(tag =>
|
|
726
|
+
metadataText.includes(tag.toLowerCase())
|
|
727
|
+
);
|
|
728
|
+
if (!hasAnyTag) {
|
|
729
|
+
return false;
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
return true;
|
|
734
|
+
};
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* Update index statistics for a user
|
|
739
|
+
*/
|
|
740
|
+
private updateIndexStats(userAddress: string): void {
|
|
741
|
+
let stats = this.indexStats.get(userAddress);
|
|
742
|
+
if (!stats) {
|
|
743
|
+
stats = {
|
|
744
|
+
totalVectors: 0,
|
|
745
|
+
avgSimilarity: 0,
|
|
746
|
+
searchLatency: [],
|
|
747
|
+
lastOptimized: new Date()
|
|
748
|
+
};
|
|
749
|
+
this.indexStats.set(userAddress, stats);
|
|
750
|
+
}
|
|
751
|
+
stats.totalVectors++;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Enhanced relevance scoring with multiple factors
|
|
756
|
+
*/
|
|
757
|
+
private calculateAdvancedRelevanceScore(
|
|
758
|
+
similarity: number,
|
|
759
|
+
metadata: MemoryMetadata,
|
|
760
|
+
query: MemorySearchQuery,
|
|
761
|
+
queryVector: number[],
|
|
762
|
+
documentVector: number[]
|
|
763
|
+
): number {
|
|
764
|
+
let score = similarity * 0.7; // Base similarity weight (increased)
|
|
765
|
+
|
|
766
|
+
// Importance boost
|
|
767
|
+
const importance = metadata.importance || 5;
|
|
768
|
+
score += (importance - 5) * 0.02; // -0.1 to +0.1 boost
|
|
769
|
+
|
|
770
|
+
// Category exact match boost
|
|
771
|
+
if (query.categories && query.categories.includes(metadata.category)) {
|
|
772
|
+
score += 0.15;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
// Topic relevance boost
|
|
776
|
+
if (query.query && metadata.topic) {
|
|
777
|
+
const queryLower = query.query.toLowerCase();
|
|
778
|
+
const topicLower = metadata.topic.toLowerCase();
|
|
779
|
+
if (queryLower.includes(topicLower) || topicLower.includes(queryLower)) {
|
|
780
|
+
score += 0.1;
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
// Vector quality boost (based on vector magnitude)
|
|
785
|
+
const vectorMagnitude = this.calculateVectorMagnitude(documentVector);
|
|
786
|
+
if (vectorMagnitude > 0.1) { // Well-formed embedding
|
|
787
|
+
score += 0.05;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
// Semantic consistency boost (cosine similarity in different metric)
|
|
791
|
+
const semanticConsistency = this.calculateSemanticConsistency(queryVector, documentVector);
|
|
792
|
+
score += semanticConsistency * 0.1;
|
|
793
|
+
|
|
794
|
+
return Math.min(1.0, Math.max(0.0, score));
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* Calculate recency boost based on creation timestamp
|
|
799
|
+
*/
|
|
800
|
+
private calculateRecencyBoost(createdTimestamp: number): number {
|
|
801
|
+
const now = Date.now();
|
|
802
|
+
const ageInDays = (now - createdTimestamp) / (1000 * 60 * 60 * 24);
|
|
803
|
+
|
|
804
|
+
// Exponential decay: more recent = higher boost
|
|
805
|
+
if (ageInDays < 1) return 1.0; // Last day: full boost
|
|
806
|
+
if (ageInDays < 7) return 0.8; // Last week: 80% boost
|
|
807
|
+
if (ageInDays < 30) return 0.5; // Last month: 50% boost
|
|
808
|
+
if (ageInDays < 90) return 0.2; // Last quarter: 20% boost
|
|
809
|
+
return 0.0; // Older: no boost
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
/**
|
|
813
|
+
* Diversify search results to avoid clustering
|
|
814
|
+
*/
|
|
815
|
+
private diversifyResults(results: MemorySearchResult[], diversityFactor: number): MemorySearchResult[] {
|
|
816
|
+
if (diversityFactor <= 0 || results.length <= 1) return results;
|
|
817
|
+
|
|
818
|
+
const diversified: MemorySearchResult[] = [];
|
|
819
|
+
const remaining = [...results];
|
|
820
|
+
|
|
821
|
+
// Always include the top result
|
|
822
|
+
if (remaining.length > 0) {
|
|
823
|
+
diversified.push(remaining.shift()!);
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
while (remaining.length > 0 && diversified.length < results.length * 0.8) {
|
|
827
|
+
let bestIndex = 0;
|
|
828
|
+
let bestScore = 0;
|
|
829
|
+
|
|
830
|
+
for (let i = 0; i < remaining.length; i++) {
|
|
831
|
+
const candidate = remaining[i];
|
|
832
|
+
|
|
833
|
+
// Calculate diversity score (distance from already selected results)
|
|
834
|
+
let minSimilarity = 1.0;
|
|
835
|
+
for (const selected of diversified) {
|
|
836
|
+
const similarity = candidate.similarity; // Could enhance with actual vector similarity
|
|
837
|
+
minSimilarity = Math.min(minSimilarity, similarity);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
// Combine relevance and diversity
|
|
841
|
+
const diversityScore = candidate.relevanceScore * (1 - diversityFactor) +
|
|
842
|
+
(1 - minSimilarity) * diversityFactor;
|
|
843
|
+
|
|
844
|
+
if (diversityScore > bestScore) {
|
|
845
|
+
bestScore = diversityScore;
|
|
846
|
+
bestIndex = i;
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
diversified.push(remaining.splice(bestIndex, 1)[0]);
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
return diversified;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
/**
|
|
857
|
+
* Update search performance statistics
|
|
858
|
+
*/
|
|
859
|
+
private updateSearchStats(userAddress: string, latency: number): void {
|
|
860
|
+
let stats = this.indexStats.get(userAddress);
|
|
861
|
+
if (!stats) {
|
|
862
|
+
stats = {
|
|
863
|
+
totalVectors: 0,
|
|
864
|
+
avgSimilarity: 0,
|
|
865
|
+
searchLatency: [],
|
|
866
|
+
lastOptimized: new Date()
|
|
867
|
+
};
|
|
868
|
+
this.indexStats.set(userAddress, stats);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
stats.searchLatency.push(latency);
|
|
872
|
+
|
|
873
|
+
// Keep only last 100 latency measurements
|
|
874
|
+
if (stats.searchLatency.length > 100) {
|
|
875
|
+
stats.searchLatency = stats.searchLatency.slice(-100);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
/**
|
|
880
|
+
* Calculate vector magnitude
|
|
881
|
+
*/
|
|
882
|
+
private calculateVectorMagnitude(vector: number[]): number {
|
|
883
|
+
let sum = 0;
|
|
884
|
+
for (const val of vector) {
|
|
885
|
+
sum += val * val;
|
|
886
|
+
}
|
|
887
|
+
return Math.sqrt(sum);
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* Calculate cosine similarity between two vectors
|
|
892
|
+
* Used for semantic consistency scoring
|
|
893
|
+
*/
|
|
894
|
+
private cosineSimilarity(a: number[], b: number[]): number {
|
|
895
|
+
if (a.length !== b.length) return 0;
|
|
896
|
+
|
|
897
|
+
let dotProduct = 0;
|
|
898
|
+
let normA = 0;
|
|
899
|
+
let normB = 0;
|
|
900
|
+
|
|
901
|
+
for (let i = 0; i < a.length; i++) {
|
|
902
|
+
dotProduct += a[i] * b[i];
|
|
903
|
+
normA += a[i] * a[i];
|
|
904
|
+
normB += b[i] * b[i];
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
|
|
908
|
+
return magnitude === 0 ? 0 : dotProduct / magnitude;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
/**
|
|
912
|
+
* Calculate semantic consistency score
|
|
913
|
+
*/
|
|
914
|
+
private calculateSemanticConsistency(queryVector: number[], documentVector: number[]): number {
|
|
915
|
+
// Calculate angle between vectors (semantic consistency)
|
|
916
|
+
const similarity = this.cosineSimilarity(queryVector, documentVector);
|
|
917
|
+
const angle = Math.acos(Math.max(-1, Math.min(1, similarity)));
|
|
918
|
+
|
|
919
|
+
// Convert angle to consistency score (0-1, where 1 is perfect alignment)
|
|
920
|
+
return 1 - (angle / Math.PI);
|
|
921
|
+
}
|
|
922
|
+
}
|