@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,907 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Namespace - Complete Memory CRUD Operations
|
|
3
|
+
*
|
|
4
|
+
* Provides simple API for creating, reading, updating, and deleting memories
|
|
5
|
+
* without React hooks or UI dependencies.
|
|
6
|
+
*
|
|
7
|
+
* @module client/namespaces
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Memory Namespace
|
|
11
|
+
*
|
|
12
|
+
* Handles all memory CRUD operations
|
|
13
|
+
*/
|
|
14
|
+
export class MemoryNamespace {
|
|
15
|
+
constructor(services) {
|
|
16
|
+
this.services = services;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a new memory with automatic processing
|
|
20
|
+
*
|
|
21
|
+
* Pipeline:
|
|
22
|
+
* 1. Auto-classify content (if classifier enabled and category not provided)
|
|
23
|
+
* 2. Generate embedding (if AI enabled)
|
|
24
|
+
* 3. Encrypt content (if encryption enabled)
|
|
25
|
+
* 4. Upload to Walrus
|
|
26
|
+
* 5. Register on Sui blockchain
|
|
27
|
+
* 6. Index locally (if enabled)
|
|
28
|
+
* 7. Extract knowledge graph (if enabled)
|
|
29
|
+
*
|
|
30
|
+
* @param content - Text content to save
|
|
31
|
+
* @param options - Optional metadata and callbacks
|
|
32
|
+
* @returns Created memory with ID and blob ID
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // Auto-classify and extract knowledge graph automatically
|
|
37
|
+
* const memory = await pdw.memory.create('I love TypeScript', {
|
|
38
|
+
* importance: 8,
|
|
39
|
+
* onProgress: (stage, percent) => console.log(stage, percent)
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* // Provide category to skip auto-classify
|
|
43
|
+
* const memory = await pdw.memory.create('Meeting at 3pm', {
|
|
44
|
+
* category: 'todo'
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
async create(content, options = {}) {
|
|
49
|
+
const { importance = 5, topic, metadata, onProgress } = options;
|
|
50
|
+
let category = options.category || 'general';
|
|
51
|
+
try {
|
|
52
|
+
// Validate content
|
|
53
|
+
if (!content || content.trim().length === 0) {
|
|
54
|
+
throw new Error('Content cannot be empty');
|
|
55
|
+
}
|
|
56
|
+
// Validate importance
|
|
57
|
+
if (importance < 1 || importance > 10) {
|
|
58
|
+
throw new Error('Importance must be between 1 and 10');
|
|
59
|
+
}
|
|
60
|
+
onProgress?.('analyzing', 5);
|
|
61
|
+
// 1. Auto-classify if category not provided
|
|
62
|
+
if (!options.category && this.services.classifier) {
|
|
63
|
+
onProgress?.('classifying', 10);
|
|
64
|
+
try {
|
|
65
|
+
const classifiedCategory = await this.services.classifier.classifyContent(content);
|
|
66
|
+
category = classifiedCategory || 'general';
|
|
67
|
+
console.log(`Auto-classified as: ${category}`);
|
|
68
|
+
}
|
|
69
|
+
catch (classifyError) {
|
|
70
|
+
console.warn('Auto-classification failed, using default category:', classifyError);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// 2. Generate embedding
|
|
74
|
+
let embedding;
|
|
75
|
+
if (this.services.embedding) {
|
|
76
|
+
onProgress?.('generating embedding', 20);
|
|
77
|
+
const embResult = await this.services.embedding.embedText({
|
|
78
|
+
text: content
|
|
79
|
+
});
|
|
80
|
+
embedding = embResult.vector;
|
|
81
|
+
}
|
|
82
|
+
// 3. Encrypt (if enabled)
|
|
83
|
+
let encryptedContent;
|
|
84
|
+
if (this.services.config.features.enableEncryption && this.services.encryption) {
|
|
85
|
+
onProgress?.('encrypting', 50);
|
|
86
|
+
try {
|
|
87
|
+
const contentBytes = new TextEncoder().encode(content);
|
|
88
|
+
const encryptResult = await this.services.encryption.encrypt(contentBytes, this.services.config.userAddress, 2 // threshold: require 2 key servers for decryption
|
|
89
|
+
);
|
|
90
|
+
encryptedContent = encryptResult.encryptedObject;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.warn('SEAL encryption failed, storing unencrypted:', error);
|
|
94
|
+
// Continue without encryption if it fails
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// 4. Upload to Walrus
|
|
98
|
+
onProgress?.('uploading to Walrus', 40);
|
|
99
|
+
const uploadResult = await this.services.storage.uploadMemoryPackage({
|
|
100
|
+
content,
|
|
101
|
+
embedding: embedding || [],
|
|
102
|
+
metadata: {
|
|
103
|
+
category,
|
|
104
|
+
importance,
|
|
105
|
+
topic: topic || '',
|
|
106
|
+
...metadata
|
|
107
|
+
},
|
|
108
|
+
encryptedContent,
|
|
109
|
+
identity: this.services.config.userAddress
|
|
110
|
+
}, {
|
|
111
|
+
signer: this.services.config.signer.getSigner(),
|
|
112
|
+
epochs: 3,
|
|
113
|
+
deletable: true,
|
|
114
|
+
metadata: {
|
|
115
|
+
'category': category,
|
|
116
|
+
'importance': importance.toString(),
|
|
117
|
+
'topic': topic || ''
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
// 5. Register on-chain (create Memory object on Sui)
|
|
121
|
+
onProgress?.('registering on blockchain', 60);
|
|
122
|
+
let memoryObjectId;
|
|
123
|
+
// Use modulo to keep vectorId within u32 range (max 4,294,967,295)
|
|
124
|
+
const vectorId = Date.now() % 4294967295;
|
|
125
|
+
if (this.services.tx) {
|
|
126
|
+
try {
|
|
127
|
+
console.log('🔨 Building on-chain transaction with full metadata...');
|
|
128
|
+
const tx = this.services.tx.buildCreateMemoryRecord({
|
|
129
|
+
category,
|
|
130
|
+
vectorId,
|
|
131
|
+
blobId: uploadResult.blobId,
|
|
132
|
+
contentType: 'text/plain',
|
|
133
|
+
contentSize: new TextEncoder().encode(content).length,
|
|
134
|
+
contentHash: uploadResult.blobId, // blob_id is content-addressed (blake2b256)
|
|
135
|
+
topic: topic || '',
|
|
136
|
+
importance,
|
|
137
|
+
embeddingBlobId: uploadResult.blobId, // Embedding stored in same blob
|
|
138
|
+
});
|
|
139
|
+
// SerialTransactionExecutor handles gas coin management and prevents equivocation
|
|
140
|
+
// No manual retry needed - executor caches object versions automatically
|
|
141
|
+
console.log('📤 Executing on-chain transaction (via SerialTransactionExecutor)...');
|
|
142
|
+
const txResult = await this.services.tx.executeTransaction(tx, this.services.config.signer.getSigner());
|
|
143
|
+
console.log('📋 Transaction result:', txResult.status, txResult.digest);
|
|
144
|
+
if (txResult.status === 'success') {
|
|
145
|
+
// Get created Memory object ID
|
|
146
|
+
const memoryObject = txResult.createdObjects?.find((obj) => obj.objectType?.includes('::memory::Memory'));
|
|
147
|
+
memoryObjectId = memoryObject?.objectId;
|
|
148
|
+
console.log('✅ Memory registered on-chain:', memoryObjectId);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
console.warn('❌ Failed to register memory on-chain:', txResult.error);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (txError) {
|
|
155
|
+
console.warn('❌ On-chain registration failed:', txError.message);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
console.log('TransactionService not available, skipping on-chain registration');
|
|
160
|
+
}
|
|
161
|
+
// 6. Index locally (if enabled)
|
|
162
|
+
// Option A+: Store content in index ONLY when encryption is OFF
|
|
163
|
+
// When encryption is ON, content is NOT stored (security - prevents data leakage
|
|
164
|
+
// when index is saved to Walrus)
|
|
165
|
+
// TODO(refactor): Extract common indexing logic into shared helper when adding new metadata fields.
|
|
166
|
+
// Related locations: MemoryNamespace.createBatch(), MemoryIndexService.indexMemory(),
|
|
167
|
+
// ClientMemoryManager.createMemory(), rebuildIndexNode(), rebuildIndex()
|
|
168
|
+
const isEncrypted = !!encryptedContent;
|
|
169
|
+
if (this.services.vector && embedding) {
|
|
170
|
+
onProgress?.('indexing vector', 80);
|
|
171
|
+
const spaceId = this.services.config.userAddress;
|
|
172
|
+
// Index metadata - content only when NOT encrypted (Option A+)
|
|
173
|
+
const indexMetadata = {
|
|
174
|
+
...metadata,
|
|
175
|
+
blobId: uploadResult.blobId,
|
|
176
|
+
memoryObjectId,
|
|
177
|
+
category,
|
|
178
|
+
importance,
|
|
179
|
+
topic: topic || '',
|
|
180
|
+
timestamp: Date.now(),
|
|
181
|
+
isEncrypted
|
|
182
|
+
};
|
|
183
|
+
// Option A+: Store content for fast local retrieval when encryption is OFF
|
|
184
|
+
if (!isEncrypted) {
|
|
185
|
+
indexMetadata.content = content;
|
|
186
|
+
console.log(' 💾 Content stored in local index (encryption OFF)');
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
console.log(' 🔒 Content NOT stored in index (encryption ON - security)');
|
|
190
|
+
}
|
|
191
|
+
// Auto-create index if it doesn't exist
|
|
192
|
+
try {
|
|
193
|
+
await this.services.vector.addVector(spaceId, vectorId, embedding, indexMetadata);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error.message?.includes('not found')) {
|
|
197
|
+
// Index doesn't exist, create it first
|
|
198
|
+
await this.services.vector.createIndex(spaceId, embedding.length);
|
|
199
|
+
await this.services.vector.addVector(spaceId, vectorId, embedding, indexMetadata);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// 7. Extract knowledge graph (if enabled)
|
|
207
|
+
if (this.services.config.features.enableKnowledgeGraph) {
|
|
208
|
+
onProgress?.('extracting knowledge graph', 95);
|
|
209
|
+
try {
|
|
210
|
+
const graphResult = await this.services.storage.extractAndStoreKnowledgeGraph(content, uploadResult.blobId, this.services.config.userAddress);
|
|
211
|
+
console.log(`Knowledge graph extracted: ${graphResult.entities.length} entities, ${graphResult.relationships.length} relationships`);
|
|
212
|
+
}
|
|
213
|
+
catch (graphError) {
|
|
214
|
+
console.warn('Knowledge graph extraction failed:', graphError);
|
|
215
|
+
// Continue without failing - graph extraction is optional
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
onProgress?.('complete', 100);
|
|
219
|
+
return {
|
|
220
|
+
id: memoryObjectId || uploadResult.blobId,
|
|
221
|
+
content,
|
|
222
|
+
category,
|
|
223
|
+
importance,
|
|
224
|
+
topic,
|
|
225
|
+
blobId: uploadResult.blobId,
|
|
226
|
+
vectorId,
|
|
227
|
+
embedding,
|
|
228
|
+
metadata: {
|
|
229
|
+
category,
|
|
230
|
+
importance,
|
|
231
|
+
topic,
|
|
232
|
+
...metadata
|
|
233
|
+
},
|
|
234
|
+
encrypted: !!encryptedContent,
|
|
235
|
+
createdAt: Date.now()
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
throw new Error(`Failed to create memory: ${error instanceof Error ? error.message : String(error)}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get a memory by ID
|
|
244
|
+
*
|
|
245
|
+
* @param memoryId - Memory ID (blob ID)
|
|
246
|
+
* @returns Memory with full metadata
|
|
247
|
+
*/
|
|
248
|
+
async get(memoryId) {
|
|
249
|
+
try {
|
|
250
|
+
const memoryPackage = await this.services.storage.retrieveMemoryPackage(memoryId);
|
|
251
|
+
if (memoryPackage.storageApproach === 'json-package' && memoryPackage.memoryPackage) {
|
|
252
|
+
return {
|
|
253
|
+
id: memoryId,
|
|
254
|
+
content: memoryPackage.memoryPackage.content,
|
|
255
|
+
embedding: memoryPackage.memoryPackage.embedding,
|
|
256
|
+
metadata: memoryPackage.memoryPackage.metadata,
|
|
257
|
+
category: memoryPackage.memoryPackage.metadata?.category,
|
|
258
|
+
importance: memoryPackage.memoryPackage.metadata?.importance,
|
|
259
|
+
topic: memoryPackage.memoryPackage.metadata?.topic,
|
|
260
|
+
blobId: memoryId,
|
|
261
|
+
encrypted: memoryPackage.isEncrypted,
|
|
262
|
+
createdAt: memoryPackage.memoryPackage.timestamp
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
throw new Error('Memory not found or invalid format');
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
throw new Error(`Failed to get memory: ${error instanceof Error ? error.message : String(error)}`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Update memory record on-chain
|
|
273
|
+
*
|
|
274
|
+
* Updates memory object fields via Sui transaction. Only non-empty/non-zero
|
|
275
|
+
* values will be updated.
|
|
276
|
+
*
|
|
277
|
+
* If content is provided, a new blob will be uploaded to Walrus and
|
|
278
|
+
* the blob_id will be updated on-chain.
|
|
279
|
+
*
|
|
280
|
+
* @param memoryId - Memory object ID on Sui
|
|
281
|
+
* @param updates - Fields to update
|
|
282
|
+
* @returns Updated memory object
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* ```typescript
|
|
286
|
+
* // Update importance and topic
|
|
287
|
+
* const updated = await pdw.memory.update(memoryId, {
|
|
288
|
+
* importance: 9,
|
|
289
|
+
* topic: 'programming'
|
|
290
|
+
* });
|
|
291
|
+
*
|
|
292
|
+
* // Update content (creates new Walrus blob)
|
|
293
|
+
* const updated = await pdw.memory.update(memoryId, {
|
|
294
|
+
* content: 'Updated content here'
|
|
295
|
+
* });
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
async update(memoryId, updates) {
|
|
299
|
+
try {
|
|
300
|
+
// Get current memory for comparison
|
|
301
|
+
const current = await this.get(memoryId);
|
|
302
|
+
let newBlobId = '';
|
|
303
|
+
let newEmbeddingBlobId = updates.embeddingBlobId || '';
|
|
304
|
+
let newContentHash = updates.contentHash || '';
|
|
305
|
+
let newContentSize = updates.contentSize || 0;
|
|
306
|
+
// If content is provided, upload new blob to Walrus
|
|
307
|
+
if (updates.content) {
|
|
308
|
+
// Generate new embedding if AI is enabled
|
|
309
|
+
let embedding;
|
|
310
|
+
if (this.services.embedding) {
|
|
311
|
+
const embResult = await this.services.embedding.embedText({
|
|
312
|
+
text: updates.content
|
|
313
|
+
});
|
|
314
|
+
embedding = embResult.vector;
|
|
315
|
+
}
|
|
316
|
+
// Upload new content to Walrus
|
|
317
|
+
const uploadResult = await this.services.storage.uploadMemoryPackage({
|
|
318
|
+
content: updates.content,
|
|
319
|
+
embedding: embedding || [],
|
|
320
|
+
metadata: {
|
|
321
|
+
category: updates.category || current.category,
|
|
322
|
+
importance: updates.importance || current.importance,
|
|
323
|
+
topic: updates.topic || current.topic,
|
|
324
|
+
...updates.metadata
|
|
325
|
+
},
|
|
326
|
+
identity: this.services.config.userAddress
|
|
327
|
+
}, {
|
|
328
|
+
signer: this.services.config.signer.getSigner(),
|
|
329
|
+
epochs: 3,
|
|
330
|
+
deletable: true
|
|
331
|
+
});
|
|
332
|
+
newBlobId = uploadResult.blobId;
|
|
333
|
+
newContentSize = updates.content.length;
|
|
334
|
+
newContentHash = uploadResult.blobId; // blob_id is content-addressed
|
|
335
|
+
}
|
|
336
|
+
// Build and execute update transaction
|
|
337
|
+
const tx = this.services.tx.buildUpdateMemoryRecord({
|
|
338
|
+
memoryId,
|
|
339
|
+
newBlobId,
|
|
340
|
+
newCategory: updates.category || '',
|
|
341
|
+
newTopic: updates.topic || '',
|
|
342
|
+
newImportance: updates.importance || 0,
|
|
343
|
+
newEmbeddingBlobId,
|
|
344
|
+
newContentHash,
|
|
345
|
+
newContentSize
|
|
346
|
+
});
|
|
347
|
+
// Execute transaction
|
|
348
|
+
const result = await this.services.tx.executeTransaction(tx, this.services.config.signer.getSigner());
|
|
349
|
+
if (result.status !== 'success') {
|
|
350
|
+
throw new Error(result.error || 'Transaction failed');
|
|
351
|
+
}
|
|
352
|
+
// Update local vector index if needed
|
|
353
|
+
if (this.services.vector && updates.content && this.services.embedding) {
|
|
354
|
+
const embResult = await this.services.embedding.embedText({
|
|
355
|
+
text: updates.content
|
|
356
|
+
});
|
|
357
|
+
await this.services.vector.addVector(this.services.config.userAddress, current.vectorId || Date.now(), embResult.vector, { ...current.metadata, ...updates.metadata });
|
|
358
|
+
}
|
|
359
|
+
return {
|
|
360
|
+
...current,
|
|
361
|
+
content: updates.content || current.content,
|
|
362
|
+
category: updates.category || current.category,
|
|
363
|
+
importance: updates.importance || current.importance,
|
|
364
|
+
topic: updates.topic || current.topic,
|
|
365
|
+
blobId: newBlobId || current.blobId,
|
|
366
|
+
metadata: {
|
|
367
|
+
...current.metadata,
|
|
368
|
+
...updates.metadata
|
|
369
|
+
},
|
|
370
|
+
updatedAt: Date.now()
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
throw new Error(`Failed to update memory: ${error instanceof Error ? error.message : String(error)}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Delete a memory
|
|
379
|
+
*
|
|
380
|
+
* Removes from:
|
|
381
|
+
* - Local vector index
|
|
382
|
+
* - Blockchain records (marks as deleted)
|
|
383
|
+
* Note: Walrus blobs are immutable, can only be marked as deleted
|
|
384
|
+
*
|
|
385
|
+
* @param memoryId - Memory ID to delete
|
|
386
|
+
*/
|
|
387
|
+
async delete(memoryId) {
|
|
388
|
+
try {
|
|
389
|
+
// Build and execute delete transaction on blockchain
|
|
390
|
+
const tx = await this.services.memory.tx.deleteMemory(memoryId);
|
|
391
|
+
await this.services.config.signer.signAndExecuteTransaction(tx);
|
|
392
|
+
// Remove from local vector index if it exists
|
|
393
|
+
if (this.services.memoryIndex) {
|
|
394
|
+
try {
|
|
395
|
+
await this.services.memoryIndex.removeMemory(this.services.config.userAddress, memoryId);
|
|
396
|
+
}
|
|
397
|
+
catch (indexError) {
|
|
398
|
+
console.warn(`Failed to remove memory ${memoryId} from local index:`, indexError);
|
|
399
|
+
// Don't fail the delete if index removal fails
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
catch (error) {
|
|
404
|
+
throw new Error(`Failed to delete memory: ${error instanceof Error ? error.message : String(error)}`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* List user memories with pagination
|
|
409
|
+
*
|
|
410
|
+
* @param options - Filter and pagination options
|
|
411
|
+
* @returns Array of memories
|
|
412
|
+
*/
|
|
413
|
+
async list(options = {}) {
|
|
414
|
+
try {
|
|
415
|
+
const { category, limit = 50, offset = 0, sortBy = 'date', order = 'desc' } = options;
|
|
416
|
+
// Get memories from blockchain using ViewService (direct Sui query)
|
|
417
|
+
// This doesn't require backend API
|
|
418
|
+
const viewService = this.services.viewService;
|
|
419
|
+
if (!viewService) {
|
|
420
|
+
throw new Error('ViewService not available');
|
|
421
|
+
}
|
|
422
|
+
const response = await viewService.getUserMemories(this.services.config.userAddress, { limit, category });
|
|
423
|
+
const memories = response.data;
|
|
424
|
+
// Filter by category if provided
|
|
425
|
+
let filtered = memories;
|
|
426
|
+
if (category) {
|
|
427
|
+
filtered = memories.filter((m) => m.metadata?.category === category ||
|
|
428
|
+
m.fields?.category === category);
|
|
429
|
+
}
|
|
430
|
+
// Sort
|
|
431
|
+
const sorted = [...filtered].sort((a, b) => {
|
|
432
|
+
if (sortBy === 'date') {
|
|
433
|
+
const aTime = a.timestamp || a.createdAt || 0;
|
|
434
|
+
const bTime = b.timestamp || b.createdAt || 0;
|
|
435
|
+
return order === 'desc' ? bTime - aTime : aTime - bTime;
|
|
436
|
+
}
|
|
437
|
+
else if (sortBy === 'importance') {
|
|
438
|
+
const aImp = a.importance || a.metadata?.importance || 5;
|
|
439
|
+
const bImp = b.importance || b.metadata?.importance || 5;
|
|
440
|
+
return order === 'desc' ? bImp - aImp : aImp - bImp;
|
|
441
|
+
}
|
|
442
|
+
return 0;
|
|
443
|
+
});
|
|
444
|
+
// Paginate
|
|
445
|
+
const paginated = sorted.slice(offset, offset + limit);
|
|
446
|
+
// Convert to Memory format
|
|
447
|
+
return paginated.map((m) => ({
|
|
448
|
+
id: m.id || m.blobId,
|
|
449
|
+
content: m.content || '',
|
|
450
|
+
category: m.category || m.metadata?.category,
|
|
451
|
+
importance: m.importance || m.metadata?.importance,
|
|
452
|
+
topic: m.topic || m.metadata?.topic,
|
|
453
|
+
blobId: m.blobId || m.id,
|
|
454
|
+
metadata: m.metadata,
|
|
455
|
+
encrypted: m.encrypted || false,
|
|
456
|
+
createdAt: m.timestamp || m.createdAt || Date.now()
|
|
457
|
+
}));
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
throw new Error(`Failed to list memories: ${error instanceof Error ? error.message : String(error)}`);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Create multiple memories in batch using Walrus Quilt
|
|
465
|
+
*
|
|
466
|
+
* Uses Walrus SDK's writeFiles() which automatically batches small blobs
|
|
467
|
+
* into a single Quilt transaction, providing ~90% gas savings.
|
|
468
|
+
*
|
|
469
|
+
* Pipeline (batched):
|
|
470
|
+
* 1. Auto-classify all contents (if classifier enabled)
|
|
471
|
+
* 2. Generate embeddings for all contents (parallel)
|
|
472
|
+
* 3. Encrypt all contents (if encryption enabled)
|
|
473
|
+
* 4. Batch upload to Walrus as Quilt (single transaction!)
|
|
474
|
+
* 5. Register on Sui blockchain (batched PTB)
|
|
475
|
+
* 6. Index locally (batch add to vector index)
|
|
476
|
+
*
|
|
477
|
+
* @param contents - Array of content strings
|
|
478
|
+
* @param options - Shared options for all memories
|
|
479
|
+
* @returns Array of created memories
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* ```typescript
|
|
483
|
+
* // Create multiple memories efficiently with Quilt
|
|
484
|
+
* const memories = await pdw.memory.createBatch([
|
|
485
|
+
* 'I love TypeScript',
|
|
486
|
+
* 'Meeting at 3pm tomorrow',
|
|
487
|
+
* 'Remember to buy milk'
|
|
488
|
+
* ], {
|
|
489
|
+
* category: 'note',
|
|
490
|
+
* importance: 5
|
|
491
|
+
* });
|
|
492
|
+
* // All 3 memories uploaded in 1 transaction!
|
|
493
|
+
* ```
|
|
494
|
+
*/
|
|
495
|
+
async createBatch(contents, options = {}) {
|
|
496
|
+
const { importance = 5, topic, metadata, onProgress } = options;
|
|
497
|
+
// For single item, use regular create()
|
|
498
|
+
if (contents.length === 1) {
|
|
499
|
+
const memory = await this.create(contents[0], options);
|
|
500
|
+
return [memory];
|
|
501
|
+
}
|
|
502
|
+
try {
|
|
503
|
+
onProgress?.('preparing batch', 5);
|
|
504
|
+
// Step 1: Auto-classify all contents (parallel)
|
|
505
|
+
const categories = [];
|
|
506
|
+
if (!options.category && this.services.classifier) {
|
|
507
|
+
onProgress?.('classifying', 10);
|
|
508
|
+
const classifyPromises = contents.map(async (content) => {
|
|
509
|
+
try {
|
|
510
|
+
return await this.services.classifier.classifyContent(content) || 'general';
|
|
511
|
+
}
|
|
512
|
+
catch {
|
|
513
|
+
return 'general';
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
const classifiedCategories = await Promise.all(classifyPromises);
|
|
517
|
+
categories.push(...classifiedCategories);
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
categories.push(...contents.map(() => options.category || 'general'));
|
|
521
|
+
}
|
|
522
|
+
// Step 2: Generate embeddings (parallel)
|
|
523
|
+
onProgress?.('generating embeddings', 20);
|
|
524
|
+
const embeddings = [];
|
|
525
|
+
if (this.services.embedding) {
|
|
526
|
+
const embeddingPromises = contents.map(content => this.services.embedding.embedText({ text: content }).then(r => r.vector));
|
|
527
|
+
const embeddingResults = await Promise.all(embeddingPromises);
|
|
528
|
+
embeddings.push(...embeddingResults);
|
|
529
|
+
}
|
|
530
|
+
// Step 3: Encrypt all contents (parallel, if enabled)
|
|
531
|
+
onProgress?.('encrypting', 35);
|
|
532
|
+
const encryptedContents = [];
|
|
533
|
+
if (this.services.config.features.enableEncryption && this.services.encryption) {
|
|
534
|
+
const encryptPromises = contents.map(async (content) => {
|
|
535
|
+
try {
|
|
536
|
+
const contentBytes = new TextEncoder().encode(content);
|
|
537
|
+
const result = await this.services.encryption.encrypt(contentBytes, this.services.config.userAddress, 2);
|
|
538
|
+
return result.encryptedObject;
|
|
539
|
+
}
|
|
540
|
+
catch {
|
|
541
|
+
return undefined;
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
const encryptResults = await Promise.all(encryptPromises);
|
|
545
|
+
encryptedContents.push(...encryptResults);
|
|
546
|
+
}
|
|
547
|
+
else {
|
|
548
|
+
encryptedContents.push(...contents.map(() => undefined));
|
|
549
|
+
}
|
|
550
|
+
// Step 4: Batch upload to Walrus using Quilt (single transaction!)
|
|
551
|
+
onProgress?.('uploading to Walrus (Quilt batch)', 50);
|
|
552
|
+
// Prepare batch memories for QuiltBatchManager
|
|
553
|
+
const batchMemories = contents.map((content, i) => ({
|
|
554
|
+
content,
|
|
555
|
+
category: categories[i],
|
|
556
|
+
importance,
|
|
557
|
+
topic: topic || '',
|
|
558
|
+
embedding: embeddings[i] || [],
|
|
559
|
+
encryptedContent: encryptedContents[i] || new TextEncoder().encode(content),
|
|
560
|
+
id: `memory-${Date.now()}-${i}` // Client-side tracking ID
|
|
561
|
+
}));
|
|
562
|
+
const quiltResult = await this.services.storage.uploadMemoryBatch(batchMemories, {
|
|
563
|
+
signer: this.services.config.signer.getSigner(),
|
|
564
|
+
epochs: 3,
|
|
565
|
+
userAddress: this.services.config.userAddress
|
|
566
|
+
});
|
|
567
|
+
const gasSavedEstimate = contents.length > 1 ? `~${((1 - 1 / contents.length) * 100).toFixed(0)}%` : '0%';
|
|
568
|
+
console.log(`✅ Quilt batch upload complete: ${quiltResult.files.length} files, ${gasSavedEstimate} gas saved, ${quiltResult.uploadTimeMs.toFixed(0)}ms`);
|
|
569
|
+
// Step 5: Register on-chain (batched PTB if available)
|
|
570
|
+
onProgress?.('registering on blockchain', 70);
|
|
571
|
+
const memoryObjectIds = [];
|
|
572
|
+
const vectorIds = [];
|
|
573
|
+
if (this.services.tx) {
|
|
574
|
+
// Create memory records for each file in the quilt
|
|
575
|
+
for (let i = 0; i < quiltResult.files.length; i++) {
|
|
576
|
+
const file = quiltResult.files[i];
|
|
577
|
+
const vectorId = (Date.now() + i) % 4294967295;
|
|
578
|
+
vectorIds.push(vectorId);
|
|
579
|
+
try {
|
|
580
|
+
const tx = this.services.tx.buildCreateMemoryRecord({
|
|
581
|
+
category: categories[i],
|
|
582
|
+
vectorId,
|
|
583
|
+
blobId: file.blobId,
|
|
584
|
+
contentType: 'text/plain',
|
|
585
|
+
contentSize: new TextEncoder().encode(contents[i]).length,
|
|
586
|
+
contentHash: file.blobId, // blob_id is content-addressed (blake2b256)
|
|
587
|
+
topic: options.topic || '',
|
|
588
|
+
importance,
|
|
589
|
+
embeddingBlobId: file.blobId, // Embedding stored in same blob
|
|
590
|
+
});
|
|
591
|
+
const txResult = await this.services.tx.executeTransaction(tx, this.services.config.signer.getSigner());
|
|
592
|
+
if (txResult.status === 'success') {
|
|
593
|
+
const memoryObject = txResult.createdObjects?.find((obj) => obj.objectType?.includes('::memory::Memory'));
|
|
594
|
+
memoryObjectIds.push(memoryObject?.objectId);
|
|
595
|
+
}
|
|
596
|
+
else {
|
|
597
|
+
memoryObjectIds.push(undefined);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
catch (error) {
|
|
601
|
+
console.warn(`Failed to register memory ${i} on-chain:`, error);
|
|
602
|
+
memoryObjectIds.push(undefined);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
// Step 6: Index locally (batch add to vector index)
|
|
607
|
+
// Option A+: Store content in index when encryption is OFF for fast local retrieval
|
|
608
|
+
// TODO(refactor): Extract common indexing logic into shared helper when adding new metadata fields.
|
|
609
|
+
// Related locations: MemoryNamespace.create(), MemoryIndexService.indexMemory(),
|
|
610
|
+
// ClientMemoryManager.createMemory(), rebuildIndexNode(), rebuildIndex()
|
|
611
|
+
onProgress?.('indexing vectors', 90);
|
|
612
|
+
if (this.services.vector && embeddings.length > 0) {
|
|
613
|
+
const spaceId = this.services.config.userAddress;
|
|
614
|
+
for (let i = 0; i < embeddings.length; i++) {
|
|
615
|
+
if (!embeddings[i])
|
|
616
|
+
continue;
|
|
617
|
+
const vectorId = vectorIds[i] || (Date.now() + i) % 4294967295;
|
|
618
|
+
const isEncrypted = !!encryptedContents[i] && this.services.config.features.enableEncryption;
|
|
619
|
+
const indexMetadata = {
|
|
620
|
+
...metadata,
|
|
621
|
+
blobId: quiltResult.files[i]?.blobId,
|
|
622
|
+
memoryObjectId: memoryObjectIds[i],
|
|
623
|
+
category: categories[i],
|
|
624
|
+
importance,
|
|
625
|
+
topic: topic || '',
|
|
626
|
+
timestamp: Date.now(),
|
|
627
|
+
isEncrypted
|
|
628
|
+
};
|
|
629
|
+
// Option A+: Store content for fast local retrieval when encryption is OFF
|
|
630
|
+
if (!isEncrypted) {
|
|
631
|
+
indexMetadata.content = contents[i];
|
|
632
|
+
console.log(` 💾 Batch item ${i + 1}: Content stored in local index (encryption OFF)`);
|
|
633
|
+
}
|
|
634
|
+
else {
|
|
635
|
+
console.log(` 🔒 Batch item ${i + 1}: Content NOT stored in index (encryption ON)`);
|
|
636
|
+
}
|
|
637
|
+
try {
|
|
638
|
+
await this.services.vector.addVector(spaceId, vectorId, embeddings[i], indexMetadata);
|
|
639
|
+
}
|
|
640
|
+
catch (error) {
|
|
641
|
+
if (error.message?.includes('not found')) {
|
|
642
|
+
await this.services.vector.createIndex(spaceId, embeddings[i].length);
|
|
643
|
+
await this.services.vector.addVector(spaceId, vectorId, embeddings[i], indexMetadata);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
onProgress?.('complete', 100);
|
|
649
|
+
// Build result array
|
|
650
|
+
const memories = contents.map((content, i) => ({
|
|
651
|
+
id: memoryObjectIds[i] || quiltResult.files[i]?.blobId || `batch-${i}`,
|
|
652
|
+
content,
|
|
653
|
+
category: categories[i],
|
|
654
|
+
importance,
|
|
655
|
+
topic,
|
|
656
|
+
blobId: quiltResult.files[i]?.blobId || '',
|
|
657
|
+
vectorId: vectorIds[i],
|
|
658
|
+
embedding: embeddings[i],
|
|
659
|
+
metadata: {
|
|
660
|
+
category: categories[i],
|
|
661
|
+
importance,
|
|
662
|
+
topic,
|
|
663
|
+
quiltId: quiltResult.quiltId,
|
|
664
|
+
...metadata
|
|
665
|
+
},
|
|
666
|
+
encrypted: !!encryptedContents[i],
|
|
667
|
+
createdAt: Date.now()
|
|
668
|
+
}));
|
|
669
|
+
return memories;
|
|
670
|
+
}
|
|
671
|
+
catch (error) {
|
|
672
|
+
throw new Error(`Failed to create batch memories: ${error instanceof Error ? error.message : String(error)}`);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Delete multiple memories
|
|
677
|
+
*
|
|
678
|
+
* @param memoryIds - Array of memory IDs to delete
|
|
679
|
+
*/
|
|
680
|
+
async deleteBatch(memoryIds) {
|
|
681
|
+
for (const id of memoryIds) {
|
|
682
|
+
await this.delete(id);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* Update multiple memories in batch
|
|
687
|
+
*
|
|
688
|
+
* Updates memories in parallel batches:
|
|
689
|
+
* 1. For updates with new content: uploads new blobs to Walrus
|
|
690
|
+
* 2. Executes on-chain update transactions
|
|
691
|
+
* 3. Updates local vector index if enabled
|
|
692
|
+
*
|
|
693
|
+
* @param updates - Array of {id, content?, category?, importance?, topic?}
|
|
694
|
+
* @returns Array of successfully updated memory IDs
|
|
695
|
+
*
|
|
696
|
+
* @example
|
|
697
|
+
* ```typescript
|
|
698
|
+
* const updatedIds = await pdw.memory.updateBatch([
|
|
699
|
+
* { id: 'mem1', importance: 9 },
|
|
700
|
+
* { id: 'mem2', content: 'Updated content' }
|
|
701
|
+
* ]);
|
|
702
|
+
* ```
|
|
703
|
+
*/
|
|
704
|
+
async updateBatch(updates) {
|
|
705
|
+
const successfulIds = [];
|
|
706
|
+
const BATCH_SIZE = 5;
|
|
707
|
+
for (let i = 0; i < updates.length; i += BATCH_SIZE) {
|
|
708
|
+
const batch = updates.slice(i, i + BATCH_SIZE);
|
|
709
|
+
const batchPromises = batch.map(async (update) => {
|
|
710
|
+
try {
|
|
711
|
+
await this.update(update.id, {
|
|
712
|
+
content: update.content,
|
|
713
|
+
category: update.category,
|
|
714
|
+
importance: update.importance,
|
|
715
|
+
topic: update.topic
|
|
716
|
+
});
|
|
717
|
+
return { success: true, id: update.id };
|
|
718
|
+
}
|
|
719
|
+
catch (error) {
|
|
720
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
721
|
+
console.warn(`Failed to update memory ${update.id}:`, errorMsg);
|
|
722
|
+
return { success: false, id: update.id };
|
|
723
|
+
}
|
|
724
|
+
});
|
|
725
|
+
const batchResults = await Promise.all(batchPromises);
|
|
726
|
+
for (const result of batchResults) {
|
|
727
|
+
if (result.success) {
|
|
728
|
+
successfulIds.push(result.id);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
return successfulIds;
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Get memory with related context (related memories, knowledge graph)
|
|
736
|
+
*
|
|
737
|
+
* @param memoryId - Memory ID
|
|
738
|
+
* @param options - Context options
|
|
739
|
+
* @returns Memory with context
|
|
740
|
+
*/
|
|
741
|
+
async getContext(memoryId, options = {}) {
|
|
742
|
+
const memory = await this.get(memoryId);
|
|
743
|
+
const context = {
|
|
744
|
+
memory,
|
|
745
|
+
related: []
|
|
746
|
+
};
|
|
747
|
+
// Get related memories if requested
|
|
748
|
+
if (options.includeRelated && memory.content) {
|
|
749
|
+
// Use local vector search if available
|
|
750
|
+
try {
|
|
751
|
+
if (this.services.memoryIndex) {
|
|
752
|
+
// Generate embedding for the memory content
|
|
753
|
+
const embedding = this.services.embedding
|
|
754
|
+
? await this.services.embedding.embedText({ text: memory.content.substring(0, 500) })
|
|
755
|
+
: null;
|
|
756
|
+
if (embedding) {
|
|
757
|
+
const searchResults = await this.services.memoryIndex.searchMemories({
|
|
758
|
+
userAddress: this.services.config.userAddress,
|
|
759
|
+
vector: embedding.vector,
|
|
760
|
+
k: 5
|
|
761
|
+
});
|
|
762
|
+
context.related = searchResults
|
|
763
|
+
.filter((r) => r.memoryObjectId !== memoryId)
|
|
764
|
+
.slice(0, 5)
|
|
765
|
+
.map((r) => ({
|
|
766
|
+
id: r.memoryObjectId || r.id,
|
|
767
|
+
content: r.content || '',
|
|
768
|
+
category: r.category || 'general',
|
|
769
|
+
importance: r.importance,
|
|
770
|
+
blobId: r.blobId || r.memoryObjectId || r.id,
|
|
771
|
+
metadata: r.metadata,
|
|
772
|
+
createdAt: r.timestamp || Date.now()
|
|
773
|
+
}));
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
catch (error) {
|
|
778
|
+
console.warn('Failed to get related memories:', error);
|
|
779
|
+
context.related = [];
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
// Get knowledge graph if requested
|
|
783
|
+
if (options.includeGraph) {
|
|
784
|
+
const graphData = await this.services.storage.searchKnowledgeGraph(this.services.config.userAddress, { searchText: memory.content, limit: 10 });
|
|
785
|
+
context.entities = graphData.entities.map(e => ({
|
|
786
|
+
id: e.id,
|
|
787
|
+
name: e.label,
|
|
788
|
+
type: e.type
|
|
789
|
+
}));
|
|
790
|
+
context.relationships = graphData.relationships.map(r => ({
|
|
791
|
+
source: r.source,
|
|
792
|
+
target: r.target,
|
|
793
|
+
type: r.type || 'related'
|
|
794
|
+
}));
|
|
795
|
+
}
|
|
796
|
+
return context;
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Get memories related to a specific memory
|
|
800
|
+
*
|
|
801
|
+
* @param memoryId - Memory ID
|
|
802
|
+
* @param k - Number of related memories to return
|
|
803
|
+
* @returns Array of related memories
|
|
804
|
+
*/
|
|
805
|
+
async getRelated(memoryId, k = 5) {
|
|
806
|
+
const memory = await this.get(memoryId);
|
|
807
|
+
if (!memory.content) {
|
|
808
|
+
return [];
|
|
809
|
+
}
|
|
810
|
+
try {
|
|
811
|
+
// Generate embedding for content to find similar memories
|
|
812
|
+
if (!this.services.embedding) {
|
|
813
|
+
console.warn('Embedding service not available for related memories search');
|
|
814
|
+
return [];
|
|
815
|
+
}
|
|
816
|
+
const embResult = await this.services.embedding.embedText({
|
|
817
|
+
text: memory.content.substring(0, 500)
|
|
818
|
+
});
|
|
819
|
+
if (!this.services.memoryIndex) {
|
|
820
|
+
console.warn('Memory index service not available for related memories search');
|
|
821
|
+
return [];
|
|
822
|
+
}
|
|
823
|
+
const searchResults = await this.services.memoryIndex.searchMemories({
|
|
824
|
+
userAddress: this.services.config.userAddress,
|
|
825
|
+
vector: embResult.vector,
|
|
826
|
+
k: k + 1
|
|
827
|
+
});
|
|
828
|
+
return searchResults
|
|
829
|
+
.filter((r) => (r.blobId || r.id) !== memoryId)
|
|
830
|
+
.slice(0, k)
|
|
831
|
+
.map((r) => ({
|
|
832
|
+
id: r.id,
|
|
833
|
+
content: r.content || '',
|
|
834
|
+
category: r.category,
|
|
835
|
+
importance: r.metadata?.importance,
|
|
836
|
+
blobId: r.blobId || r.id,
|
|
837
|
+
metadata: r.metadata,
|
|
838
|
+
createdAt: r.timestamp ? new Date(r.timestamp).getTime() : Date.now()
|
|
839
|
+
}));
|
|
840
|
+
}
|
|
841
|
+
catch (error) {
|
|
842
|
+
console.warn('Failed to get related memories:', error);
|
|
843
|
+
return [];
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
/**
|
|
847
|
+
* Export memories to file format
|
|
848
|
+
*
|
|
849
|
+
* Exports memories to JSON or CSV format for backup/portability
|
|
850
|
+
*
|
|
851
|
+
* @param options - Export options
|
|
852
|
+
* @returns Exported data as string
|
|
853
|
+
*/
|
|
854
|
+
async export(options = {}) {
|
|
855
|
+
const { format = 'json', includeContent = true, includeEmbeddings = false, category, limit } = options;
|
|
856
|
+
try {
|
|
857
|
+
// Get memories
|
|
858
|
+
const memories = await this.list({ category, limit });
|
|
859
|
+
if (format === 'json') {
|
|
860
|
+
// JSON export
|
|
861
|
+
const exportData = memories.map(m => ({
|
|
862
|
+
id: m.id,
|
|
863
|
+
content: includeContent ? m.content : undefined,
|
|
864
|
+
category: m.category,
|
|
865
|
+
importance: m.importance,
|
|
866
|
+
topic: m.topic,
|
|
867
|
+
blobId: m.blobId,
|
|
868
|
+
embedding: includeEmbeddings ? m.embedding : undefined,
|
|
869
|
+
metadata: m.metadata,
|
|
870
|
+
createdAt: m.createdAt,
|
|
871
|
+
updatedAt: m.updatedAt
|
|
872
|
+
}));
|
|
873
|
+
return JSON.stringify(exportData, null, 2);
|
|
874
|
+
}
|
|
875
|
+
else {
|
|
876
|
+
// CSV export
|
|
877
|
+
const headers = [
|
|
878
|
+
'id',
|
|
879
|
+
'category',
|
|
880
|
+
'importance',
|
|
881
|
+
'topic',
|
|
882
|
+
'blobId',
|
|
883
|
+
'createdAt',
|
|
884
|
+
includeContent ? 'content' : null
|
|
885
|
+
].filter(Boolean);
|
|
886
|
+
const rows = memories.map(m => [
|
|
887
|
+
m.id,
|
|
888
|
+
m.category || '',
|
|
889
|
+
m.importance || '',
|
|
890
|
+
m.topic || '',
|
|
891
|
+
m.blobId,
|
|
892
|
+
new Date(m.createdAt).toISOString(),
|
|
893
|
+
includeContent ? `"${(m.content || '').replace(/"/g, '""')}"` : null
|
|
894
|
+
].filter(v => v !== null));
|
|
895
|
+
const csv = [
|
|
896
|
+
headers.join(','),
|
|
897
|
+
...rows.map(row => row.join(','))
|
|
898
|
+
].join('\n');
|
|
899
|
+
return csv;
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
catch (error) {
|
|
903
|
+
throw new Error(`Failed to export memories: ${error instanceof Error ? error.message : String(error)}`);
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
//# sourceMappingURL=MemoryNamespace.js.map
|