@cmdoss/memwal-sdk 0.7.0 → 0.9.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/README.md +427 -41
- package/dist/client/ClientMemoryManager.js +2 -2
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/PersonalDataWallet.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +88 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +102 -11
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/IndexNamespace.js +7 -4
- package/dist/client/namespaces/IndexNamespace.js.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +45 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +292 -46
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts +215 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts.map +1 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.js +214 -0
- package/dist/client/namespaces/consolidated/AdvancedNamespace.js.map +1 -0
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +12 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +40 -2
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +67 -2
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +549 -16
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/index.d.ts +1 -0
- package/dist/client/namespaces/consolidated/index.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/index.js +1 -0
- package/dist/client/namespaces/consolidated/index.js.map +1 -1
- package/dist/config/ConfigurationHelper.js +61 -61
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +11 -6
- package/dist/config/defaults.js.map +1 -1
- package/dist/core/types/index.d.ts +4 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/graph/GraphService.js +20 -20
- package/dist/infrastructure/seal/EncryptionService.d.ts +9 -5
- package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -1
- package/dist/infrastructure/seal/EncryptionService.js +37 -15
- package/dist/infrastructure/seal/EncryptionService.js.map +1 -1
- package/dist/infrastructure/seal/SealService.d.ts +13 -5
- package/dist/infrastructure/seal/SealService.d.ts.map +1 -1
- package/dist/infrastructure/seal/SealService.js +36 -34
- package/dist/infrastructure/seal/SealService.js.map +1 -1
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts +6 -0
- package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -1
- package/dist/infrastructure/walrus/WalrusStorageService.js +23 -4
- package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -1
- package/dist/langchain/createPDWRAG.js +30 -30
- package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js +2 -1
- package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -1
- package/dist/services/CapabilityService.d.ts.map +1 -1
- package/dist/services/CapabilityService.js +30 -14
- package/dist/services/CapabilityService.js.map +1 -1
- package/dist/services/CrossContextPermissionService.d.ts.map +1 -1
- package/dist/services/CrossContextPermissionService.js +9 -7
- package/dist/services/CrossContextPermissionService.js.map +1 -1
- package/dist/services/EmbeddingService.d.ts +9 -0
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +31 -10
- package/dist/services/EmbeddingService.js.map +1 -1
- package/dist/services/EncryptionService.d.ts.map +1 -1
- package/dist/services/EncryptionService.js +6 -5
- package/dist/services/EncryptionService.js.map +1 -1
- package/dist/services/GeminiAIService.js +309 -309
- package/dist/services/MemoryIndexService.d.ts +2 -0
- package/dist/services/MemoryIndexService.d.ts.map +1 -1
- package/dist/services/MemoryIndexService.js +11 -4
- package/dist/services/MemoryIndexService.js.map +1 -1
- package/dist/services/StorageService.d.ts +1 -0
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js +60 -10
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/TransactionService.d.ts +20 -0
- package/dist/services/TransactionService.d.ts.map +1 -1
- package/dist/services/TransactionService.js +43 -0
- package/dist/services/TransactionService.js.map +1 -1
- package/dist/services/VectorService.js +1 -1
- package/dist/services/VectorService.js.map +1 -1
- package/dist/services/ViewService.js +2 -2
- package/dist/services/ViewService.js.map +1 -1
- package/dist/vector/BrowserHnswIndexService.js +1 -1
- package/dist/vector/BrowserHnswIndexService.js.map +1 -1
- package/dist/vector/HnswWasmService.js +1 -1
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/NodeHnswService.js +1 -1
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/package.json +1 -1
- package/src/access/PermissionService.ts +635 -635
- package/src/access/index.ts +8 -8
- package/src/aggregation/AggregationService.ts +389 -389
- package/src/aggregation/index.ts +8 -8
- package/src/ai-sdk/PDWVectorStore.ts +715 -715
- package/src/ai-sdk/index.ts +65 -65
- package/src/ai-sdk/tools.ts +460 -460
- package/src/ai-sdk/types.ts +404 -404
- package/src/batch/BatchManager.ts +597 -597
- package/src/batch/BatchingService.ts +429 -429
- package/src/batch/MemoryProcessingCache.ts +492 -492
- package/src/batch/index.ts +30 -30
- package/src/browser.ts +200 -200
- package/src/client/ClientMemoryManager.ts +987 -987
- package/src/client/PersonalDataWallet.ts +345 -345
- package/src/client/SimplePDWClient.ts +1369 -1237
- package/src/client/factory.ts +154 -154
- package/src/client/namespaces/AnalyticsNamespace.ts +377 -377
- package/src/client/namespaces/BatchNamespace.ts +356 -356
- package/src/client/namespaces/CacheNamespace.ts +123 -123
- package/src/client/namespaces/CapabilityNamespace.ts +217 -217
- package/src/client/namespaces/ClassifyNamespace.ts +169 -169
- package/src/client/namespaces/ContextNamespace.ts +297 -297
- package/src/client/namespaces/EmbeddingsNamespace.ts +99 -99
- package/src/client/namespaces/EncryptionNamespace.ts +221 -221
- package/src/client/namespaces/GraphNamespace.ts +468 -468
- package/src/client/namespaces/IndexNamespace.ts +364 -361
- package/src/client/namespaces/MemoryNamespace.ts +1569 -1272
- package/src/client/namespaces/PermissionsNamespace.ts +254 -254
- package/src/client/namespaces/PipelineNamespace.ts +220 -220
- package/src/client/namespaces/SearchNamespace.ts +1049 -1049
- package/src/client/namespaces/StorageNamespace.ts +458 -458
- package/src/client/namespaces/TxNamespace.ts +260 -260
- package/src/client/namespaces/WalletNamespace.ts +243 -243
- package/src/client/namespaces/consolidated/AINamespace.ts +449 -449
- package/src/client/namespaces/consolidated/AdvancedNamespace.ts +264 -0
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -564
- package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
- package/src/client/namespaces/consolidated/StorageNamespace.ts +1141 -497
- package/src/client/namespaces/consolidated/index.ts +41 -39
- package/src/client/signers/DappKitSigner.ts +207 -207
- package/src/client/signers/KeypairSigner.ts +108 -108
- package/src/client/signers/UnifiedSigner.ts +110 -110
- package/src/client/signers/WalletAdapterSigner.ts +159 -159
- package/src/client/signers/index.ts +26 -26
- package/src/config/ConfigurationHelper.ts +412 -412
- package/src/config/defaults.ts +56 -51
- package/src/config/index.ts +8 -8
- package/src/config/validation.ts +70 -70
- package/src/core/index.ts +14 -14
- package/src/core/interfaces/IService.ts +307 -307
- package/src/core/interfaces/index.ts +8 -8
- package/src/core/types/capability.ts +297 -297
- package/src/core/types/index.ts +874 -870
- package/src/core/types/wallet.ts +270 -270
- package/src/core/types.ts +9 -9
- package/src/core/wallet.ts +222 -222
- package/src/embedding/index.ts +19 -19
- package/src/embedding/types.ts +357 -357
- package/src/errors/index.ts +602 -602
- package/src/errors/recovery.ts +461 -461
- package/src/errors/validation.ts +567 -567
- package/src/generated/pdw/capability.ts +319 -319
- package/src/generated/pdw/deps/sui/object.ts +12 -12
- package/src/generated/pdw/deps/sui/vec_map.ts +32 -32
- package/src/generated/pdw/memory.ts +1087 -1087
- package/src/generated/pdw/wallet.ts +123 -123
- package/src/generated/utils/index.ts +159 -159
- package/src/graph/GraphService.ts +887 -887
- package/src/graph/KnowledgeGraphManager.ts +728 -728
- package/src/graph/index.ts +25 -25
- package/src/index.ts +498 -498
- package/src/infrastructure/index.ts +22 -22
- package/src/infrastructure/seal/EncryptionService.ts +628 -603
- package/src/infrastructure/seal/SealService.ts +613 -615
- package/src/infrastructure/seal/index.ts +9 -9
- package/src/infrastructure/sui/BlockchainManager.ts +627 -627
- package/src/infrastructure/sui/SuiService.ts +888 -888
- package/src/infrastructure/sui/index.ts +9 -9
- package/src/infrastructure/walrus/StorageManager.ts +604 -604
- package/src/infrastructure/walrus/WalrusStorageService.ts +637 -612
- package/src/infrastructure/walrus/index.ts +9 -9
- package/src/langchain/PDWEmbeddings.ts +145 -145
- package/src/langchain/PDWVectorStore.ts +456 -456
- package/src/langchain/createPDWRAG.ts +303 -303
- package/src/langchain/index.ts +47 -47
- package/src/permissions/ConsentRepository.browser.ts +249 -249
- package/src/permissions/ConsentRepository.ts +364 -364
- package/src/permissions/index.ts +9 -9
- package/src/pipeline/MemoryPipeline.ts +862 -862
- package/src/pipeline/PipelineManager.ts +683 -683
- package/src/pipeline/index.ts +26 -26
- package/src/retrieval/AdvancedSearchService.ts +629 -629
- package/src/retrieval/MemoryAnalyticsService.ts +711 -711
- package/src/retrieval/MemoryDecryptionPipeline.ts +825 -824
- package/src/retrieval/MemoryRetrievalService.ts +904 -904
- package/src/retrieval/index.ts +42 -42
- package/src/services/BatchService.ts +352 -352
- package/src/services/CapabilityService.ts +464 -448
- package/src/services/ClassifierService.ts +465 -465
- package/src/services/CrossContextPermissionService.ts +486 -484
- package/src/services/EmbeddingService.ts +796 -771
- package/src/services/EncryptionService.ts +712 -711
- package/src/services/GeminiAIService.ts +753 -753
- package/src/services/IndexManager.ts +977 -977
- package/src/services/MemoryIndexService.ts +1009 -1003
- package/src/services/MemoryService.ts +369 -369
- package/src/services/QueryService.ts +890 -890
- package/src/services/StorageService.ts +1182 -1126
- package/src/services/TransactionService.ts +838 -790
- package/src/services/VectorService.ts +462 -462
- package/src/services/ViewService.ts +484 -484
- package/src/services/index.ts +25 -25
- package/src/services/storage/BlobAttributesManager.ts +333 -333
- package/src/services/storage/KnowledgeGraphManager.ts +425 -425
- package/src/services/storage/MemorySearchManager.ts +387 -387
- package/src/services/storage/QuiltBatchManager.ts +1130 -1130
- package/src/services/storage/WalrusMetadataManager.ts +268 -268
- package/src/services/storage/WalrusStorageManager.ts +287 -287
- package/src/services/storage/index.ts +57 -57
- package/src/types/index.ts +13 -13
- package/src/utils/LRUCache.ts +378 -378
- package/src/utils/index.ts +76 -76
- package/src/utils/memoryIndexOnChain.ts +507 -507
- package/src/utils/rebuildIndex.ts +290 -290
- package/src/utils/rebuildIndexNode.ts +771 -771
- package/src/vector/BrowserHnswIndexService.ts +758 -758
- package/src/vector/HnswWasmService.ts +731 -731
- package/src/vector/IHnswService.ts +233 -233
- package/src/vector/NodeHnswService.ts +833 -833
- package/src/vector/VectorManager.ts +478 -478
- package/src/vector/createHnswService.ts +135 -135
- package/src/vector/index.ts +56 -56
- package/src/wallet/ContextWalletService.ts +656 -656
- package/src/wallet/MainWalletService.ts +317 -317
- package/src/wallet/index.ts +17 -17
|
@@ -40,10 +40,10 @@ export class IndexNamespace {
|
|
|
40
40
|
* This method is provided for explicit initialization or VectorService compatibility.
|
|
41
41
|
*
|
|
42
42
|
* @param spaceId - Index space identifier (e.g., userAddress)
|
|
43
|
-
* @param dimension - Vector dimension (default:
|
|
43
|
+
* @param dimension - Vector dimension (default: 768)
|
|
44
44
|
* @param config - Optional HNSW config (used by VectorService)
|
|
45
45
|
*/
|
|
46
|
-
async create(spaceId, dimension =
|
|
46
|
+
async create(spaceId, dimension = 768, config) {
|
|
47
47
|
const { type, service } = this.getService();
|
|
48
48
|
if (type === 'memoryIndex') {
|
|
49
49
|
// MemoryIndexService auto-creates indices on first indexMemory() call
|
|
@@ -68,8 +68,11 @@ export class IndexNamespace {
|
|
|
68
68
|
const { type, service } = this.getService();
|
|
69
69
|
if (type === 'memoryIndex') {
|
|
70
70
|
// MemoryIndexService uses batched add internally via HnswWasmService
|
|
71
|
-
// Option A+: Pass isEncrypted to control content storage
|
|
72
|
-
await service.indexMemory(spaceId, vectorId.toString(), metadata?.blobId || '', metadata?.content || '', metadata || {}, vector, {
|
|
71
|
+
// Option A+: Pass isEncrypted and forceStoreContent to control content storage
|
|
72
|
+
await service.indexMemory(spaceId, vectorId.toString(), metadata?.blobId || '', metadata?.content || '', metadata || {}, vector, {
|
|
73
|
+
isEncrypted: metadata?.isEncrypted ?? false,
|
|
74
|
+
forceStoreContent: metadata?.forceStoreContent ?? false
|
|
75
|
+
});
|
|
73
76
|
}
|
|
74
77
|
else {
|
|
75
78
|
await service.addVector(spaceId, vectorId, vector, metadata);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexNamespace.js","sourceRoot":"","sources":["../../../src/client/namespaces/IndexNamespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACzB,YAAoB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;IAElD;;OAEG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,aAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,YAAoB,
|
|
1
|
+
{"version":3,"file":"IndexNamespace.js","sourceRoot":"","sources":["../../../src/client/namespaces/IndexNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,10 @@ export interface Memory {
|
|
|
21
21
|
embedding?: number[];
|
|
22
22
|
metadata?: Record<string, any>;
|
|
23
23
|
encrypted?: boolean;
|
|
24
|
+
/** Capability ID for decryption (v2.2) */
|
|
25
|
+
memoryCapId?: string;
|
|
26
|
+
/** Key ID (hex string) for decryption (v2.2) */
|
|
27
|
+
keyId?: string;
|
|
24
28
|
createdAt: number;
|
|
25
29
|
updatedAt?: number;
|
|
26
30
|
}
|
|
@@ -32,6 +36,8 @@ export interface CreateMemoryOptions {
|
|
|
32
36
|
importance?: number;
|
|
33
37
|
topic?: string;
|
|
34
38
|
metadata?: Record<string, any>;
|
|
39
|
+
/** Pre-generated embedding (if provided, skips embedding generation) */
|
|
40
|
+
embedding?: number[];
|
|
35
41
|
onProgress?: (stage: string, percent: number) => void;
|
|
36
42
|
}
|
|
37
43
|
/**
|
|
@@ -65,6 +71,19 @@ export interface ListMemoryOptions {
|
|
|
65
71
|
sortBy?: 'date' | 'importance' | 'relevance';
|
|
66
72
|
order?: 'asc' | 'desc';
|
|
67
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Options for searching memories
|
|
76
|
+
*/
|
|
77
|
+
export interface SearchMemoryOptions {
|
|
78
|
+
/** Maximum number of results (default: 10) */
|
|
79
|
+
limit?: number;
|
|
80
|
+
/** Minimum similarity threshold 0-1 (default: 0.5) */
|
|
81
|
+
threshold?: number;
|
|
82
|
+
/** Filter by category */
|
|
83
|
+
category?: string;
|
|
84
|
+
/** Include full content in results (default: true) */
|
|
85
|
+
includeContent?: boolean;
|
|
86
|
+
}
|
|
68
87
|
/**
|
|
69
88
|
* Memory context with related memories
|
|
70
89
|
*/
|
|
@@ -174,6 +193,32 @@ export declare class MemoryNamespace {
|
|
|
174
193
|
* @returns Array of memories
|
|
175
194
|
*/
|
|
176
195
|
list(options?: ListMemoryOptions): Promise<Memory[]>;
|
|
196
|
+
/**
|
|
197
|
+
* Search memories using natural language query
|
|
198
|
+
*
|
|
199
|
+
* Unified search that:
|
|
200
|
+
* 1. Converts query text to embedding
|
|
201
|
+
* 2. Performs vector similarity search
|
|
202
|
+
* 3. Returns ranked results with content
|
|
203
|
+
*
|
|
204
|
+
* @param query - Natural language search query
|
|
205
|
+
* @param options - Search options (limit, threshold, category)
|
|
206
|
+
* @returns Array of matching memories sorted by relevance
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* // Simple search
|
|
211
|
+
* const results = await pdw.memory.search('meeting notes');
|
|
212
|
+
*
|
|
213
|
+
* // With options
|
|
214
|
+
* const results = await pdw.memory.search('TypeScript tips', {
|
|
215
|
+
* limit: 5,
|
|
216
|
+
* category: 'note',
|
|
217
|
+
* threshold: 0.7
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
search(query: string, options?: SearchMemoryOptions): Promise<Memory[]>;
|
|
177
222
|
/**
|
|
178
223
|
* Create multiple memories in batch using Walrus Quilt
|
|
179
224
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNamespace.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/MemoryNamespace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAC7C,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryNamespace.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/MemoryNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ export class MemoryNamespace {
|
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
48
|
async create(content, options = {}) {
|
|
49
|
-
const { importance = 5, topic, metadata, onProgress } = options;
|
|
49
|
+
const { importance = 5, topic, metadata, onProgress, embedding: preGeneratedEmbedding } = options;
|
|
50
50
|
let category = options.category || 'general';
|
|
51
51
|
try {
|
|
52
52
|
// Validate content
|
|
@@ -70,32 +70,61 @@ export class MemoryNamespace {
|
|
|
70
70
|
console.warn('Auto-classification failed, using default category:', classifyError);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
// 2.
|
|
74
|
-
let embedding;
|
|
75
|
-
if (
|
|
73
|
+
// 2. Use pre-generated embedding or generate new one
|
|
74
|
+
let embedding = preGeneratedEmbedding;
|
|
75
|
+
if (embedding && embedding.length > 0) {
|
|
76
|
+
console.log(`✅ Using pre-generated embedding: ${embedding.length}D`);
|
|
77
|
+
}
|
|
78
|
+
else if (this.services.embedding) {
|
|
76
79
|
onProgress?.('generating embedding', 20);
|
|
77
|
-
const embResult = await this.services.embedding.embedText({
|
|
78
|
-
text: content
|
|
79
|
-
});
|
|
80
|
+
const embResult = await this.services.embedding.embedText({ text: content });
|
|
80
81
|
embedding = embResult.vector;
|
|
82
|
+
console.log(`✅ Embedding generated: ${embedding?.length || 0}D`);
|
|
81
83
|
}
|
|
82
|
-
|
|
84
|
+
else {
|
|
85
|
+
console.warn('⚠️ No embedding available');
|
|
86
|
+
}
|
|
87
|
+
// 3. Encrypt (if enabled) - Use capability-based encryption (v2.2)
|
|
83
88
|
let encryptedContent;
|
|
84
|
-
|
|
85
|
-
|
|
89
|
+
let encryptedEmbedding;
|
|
90
|
+
let memoryCapId;
|
|
91
|
+
let keyId;
|
|
92
|
+
if (this.services.config.features.enableEncryption && this.services.encryption && this.services.capability) {
|
|
93
|
+
onProgress?.('encrypting', 30);
|
|
86
94
|
try {
|
|
95
|
+
console.log('🔐 Using capability-based encryption (v2.2)...');
|
|
96
|
+
// Step 3.1: Get or create capability for this category
|
|
97
|
+
const cap = await this.services.capability.getOrCreate({
|
|
98
|
+
appId: category,
|
|
99
|
+
userAddress: this.services.config.userAddress
|
|
100
|
+
}, this.services.config.signer);
|
|
101
|
+
memoryCapId = cap.id;
|
|
102
|
+
console.log(` ✅ Capability ready: ${memoryCapId}`);
|
|
103
|
+
// Step 3.2: Compute key_id from capability
|
|
104
|
+
keyId = this.services.capability.computeKeyId(cap);
|
|
105
|
+
console.log(` 🔑 Key ID computed: ${keyId.substring(0, 20)}...`);
|
|
106
|
+
// Step 3.3: Encrypt content
|
|
87
107
|
const contentBytes = new TextEncoder().encode(content);
|
|
88
|
-
const
|
|
108
|
+
const encryptContentResult = await this.services.encryption.encrypt(contentBytes, keyId, 2 // threshold: 2 of 2 key servers
|
|
89
109
|
);
|
|
90
|
-
encryptedContent =
|
|
110
|
+
encryptedContent = encryptContentResult.encryptedObject;
|
|
111
|
+
console.log(` ✅ Content encrypted: ${contentBytes.length} → ${encryptedContent?.length || 0} bytes`);
|
|
112
|
+
// Step 3.4: Encrypt embedding (v2.2 - full encryption)
|
|
113
|
+
if (embedding && embedding.length > 0) {
|
|
114
|
+
const embeddingBytes = new TextEncoder().encode(JSON.stringify(embedding));
|
|
115
|
+
const encryptEmbeddingResult = await this.services.encryption.encrypt(embeddingBytes, keyId, 2);
|
|
116
|
+
encryptedEmbedding = encryptEmbeddingResult.encryptedObject;
|
|
117
|
+
console.log(` ✅ Embedding encrypted: ${embedding.length}D → ${encryptedEmbedding?.length || 0} bytes`);
|
|
118
|
+
}
|
|
91
119
|
}
|
|
92
120
|
catch (error) {
|
|
93
|
-
console.warn('
|
|
121
|
+
console.warn('⚠️ Capability-based encryption failed, falling back to plaintext:', error);
|
|
94
122
|
// Continue without encryption if it fails
|
|
95
123
|
}
|
|
96
124
|
}
|
|
97
|
-
// 4. Upload to Walrus
|
|
98
|
-
onProgress?.('uploading to Walrus',
|
|
125
|
+
// 4. Upload to Walrus (v2.2 format if encrypted)
|
|
126
|
+
onProgress?.('uploading to Walrus', 50);
|
|
127
|
+
console.log(`📤 Uploading to Walrus: content=${content.length} chars, embedding=${embedding?.length || 0}D, encrypted=${!!encryptedContent}`);
|
|
99
128
|
const uploadResult = await this.services.storage.uploadMemoryPackage({
|
|
100
129
|
content,
|
|
101
130
|
embedding: embedding || [],
|
|
@@ -103,9 +132,13 @@ export class MemoryNamespace {
|
|
|
103
132
|
category,
|
|
104
133
|
importance,
|
|
105
134
|
topic: topic || '',
|
|
135
|
+
memoryCapId,
|
|
136
|
+
keyId,
|
|
106
137
|
...metadata
|
|
107
138
|
},
|
|
108
139
|
encryptedContent,
|
|
140
|
+
encryptedEmbedding, // v2.2: encrypted embedding
|
|
141
|
+
encryptionType: encryptedContent ? 'seal-capability' : undefined,
|
|
109
142
|
identity: this.services.config.userAddress
|
|
110
143
|
}, {
|
|
111
144
|
signer: this.services.config.signer,
|
|
@@ -122,24 +155,65 @@ export class MemoryNamespace {
|
|
|
122
155
|
let memoryObjectId;
|
|
123
156
|
// Use modulo to keep vectorId within u32 range (max 4,294,967,295)
|
|
124
157
|
const vectorId = Date.now() % 4294967295;
|
|
125
|
-
if (this.services.tx) {
|
|
158
|
+
if (this.services.tx && this.services.capability) {
|
|
126
159
|
try {
|
|
127
|
-
console.log('🔨 Building on-chain transaction
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
console.log('🔨 Building on-chain transaction...');
|
|
161
|
+
// Reuse memoryCapId from encryption step (avoid duplicate capability creation)
|
|
162
|
+
const capId = memoryCapId;
|
|
163
|
+
if (capId) {
|
|
164
|
+
console.log(` Using existing capability: ${capId}`);
|
|
165
|
+
}
|
|
166
|
+
// Use capability-based creation if capId available
|
|
167
|
+
const tx = capId
|
|
168
|
+
? this.services.tx.buildCreateMemoryRecordLightweightWithCap({
|
|
169
|
+
category,
|
|
170
|
+
vectorId,
|
|
171
|
+
blobId: uploadResult.blobId,
|
|
172
|
+
importance,
|
|
173
|
+
gasBudget: undefined,
|
|
174
|
+
capId
|
|
175
|
+
})
|
|
176
|
+
: this.services.tx.buildCreateMemoryRecordLightweight({
|
|
177
|
+
category,
|
|
178
|
+
vectorId,
|
|
179
|
+
blobId: uploadResult.blobId,
|
|
180
|
+
importance,
|
|
181
|
+
gasBudget: undefined
|
|
182
|
+
});
|
|
183
|
+
console.log('📤 Executing on-chain transaction...');
|
|
184
|
+
// Use signer's signAndExecuteTransaction for browser wallet compatibility
|
|
185
|
+
const signer = this.services.config.signer;
|
|
186
|
+
let txResult;
|
|
187
|
+
if ('signAndExecuteTransaction' in signer && typeof signer.signAndExecuteTransaction === 'function') {
|
|
188
|
+
// Browser wallet (DappKitSigner) - use signAndExecuteTransaction directly
|
|
189
|
+
const result = await signer.signAndExecuteTransaction(tx);
|
|
190
|
+
// Extract created objects
|
|
191
|
+
let createdObjects;
|
|
192
|
+
if (result.objectChanges && Array.isArray(result.objectChanges)) {
|
|
193
|
+
createdObjects = result.objectChanges
|
|
194
|
+
.filter((change) => change.type === 'created')
|
|
195
|
+
.map((change) => ({
|
|
196
|
+
objectId: change.objectId,
|
|
197
|
+
objectType: change.objectType || 'unknown',
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
// Determine status
|
|
201
|
+
const effectsStatus = result.effects?.status?.status;
|
|
202
|
+
const status = effectsStatus === 'failure' ? 'failure' :
|
|
203
|
+
effectsStatus === 'success' ? 'success' :
|
|
204
|
+
result.digest ? 'success' : 'failure';
|
|
205
|
+
txResult = {
|
|
206
|
+
digest: result.digest,
|
|
207
|
+
status,
|
|
208
|
+
createdObjects,
|
|
209
|
+
effects: result.effects,
|
|
210
|
+
objectChanges: result.objectChanges
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// Server-side signer - use TransactionService
|
|
215
|
+
txResult = await this.services.tx.executeTransaction(tx, signer);
|
|
216
|
+
}
|
|
143
217
|
console.log('📋 Transaction result:', txResult.status, txResult.digest);
|
|
144
218
|
if (txResult.status === 'success') {
|
|
145
219
|
// Get created Memory object ID
|
|
@@ -229,9 +303,13 @@ export class MemoryNamespace {
|
|
|
229
303
|
category,
|
|
230
304
|
importance,
|
|
231
305
|
topic,
|
|
306
|
+
memoryCapId,
|
|
307
|
+
keyId,
|
|
232
308
|
...metadata
|
|
233
309
|
},
|
|
234
310
|
encrypted: !!encryptedContent,
|
|
311
|
+
memoryCapId, // v2.2: capability ID for decryption
|
|
312
|
+
keyId, // v2.2: key ID for decryption
|
|
235
313
|
createdAt: Date.now()
|
|
236
314
|
};
|
|
237
315
|
}
|
|
@@ -460,6 +538,122 @@ export class MemoryNamespace {
|
|
|
460
538
|
throw new Error(`Failed to list memories: ${error instanceof Error ? error.message : String(error)}`);
|
|
461
539
|
}
|
|
462
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Search memories using natural language query
|
|
543
|
+
*
|
|
544
|
+
* Unified search that:
|
|
545
|
+
* 1. Converts query text to embedding
|
|
546
|
+
* 2. Performs vector similarity search
|
|
547
|
+
* 3. Returns ranked results with content
|
|
548
|
+
*
|
|
549
|
+
* @param query - Natural language search query
|
|
550
|
+
* @param options - Search options (limit, threshold, category)
|
|
551
|
+
* @returns Array of matching memories sorted by relevance
|
|
552
|
+
*
|
|
553
|
+
* @example
|
|
554
|
+
* ```typescript
|
|
555
|
+
* // Simple search
|
|
556
|
+
* const results = await pdw.memory.search('meeting notes');
|
|
557
|
+
*
|
|
558
|
+
* // With options
|
|
559
|
+
* const results = await pdw.memory.search('TypeScript tips', {
|
|
560
|
+
* limit: 5,
|
|
561
|
+
* category: 'note',
|
|
562
|
+
* threshold: 0.7
|
|
563
|
+
* });
|
|
564
|
+
* ```
|
|
565
|
+
*/
|
|
566
|
+
async search(query, options = {}) {
|
|
567
|
+
const { limit = 10, threshold = 0.5, category, includeContent = true } = options;
|
|
568
|
+
try {
|
|
569
|
+
// Validate query
|
|
570
|
+
if (!query || query.trim().length === 0) {
|
|
571
|
+
return [];
|
|
572
|
+
}
|
|
573
|
+
// Step 1: Generate embedding for query
|
|
574
|
+
if (!this.services.embedding) {
|
|
575
|
+
throw new Error('Embedding service not available - cannot perform semantic search');
|
|
576
|
+
}
|
|
577
|
+
const embResult = await this.services.embedding.embedText({ text: query });
|
|
578
|
+
const queryEmbedding = embResult.vector;
|
|
579
|
+
// Step 2: Perform vector search
|
|
580
|
+
let searchResults = [];
|
|
581
|
+
// Try local index first (faster)
|
|
582
|
+
if (this.services.vector) {
|
|
583
|
+
try {
|
|
584
|
+
const spaceId = this.services.config.userAddress;
|
|
585
|
+
const searchResult = await this.services.vector.searchVectors(spaceId, queryEmbedding, { k: limit * 2 });
|
|
586
|
+
searchResults = searchResult.results.map((r) => ({
|
|
587
|
+
id: r.metadata?.memoryObjectId || r.memoryId || String(r.vectorId),
|
|
588
|
+
vectorId: r.vectorId,
|
|
589
|
+
content: r.metadata?.content || '',
|
|
590
|
+
category: r.metadata?.category,
|
|
591
|
+
importance: r.metadata?.importance,
|
|
592
|
+
blobId: r.metadata?.blobId || r.memoryId,
|
|
593
|
+
metadata: r.metadata,
|
|
594
|
+
similarity: r.similarity || 0,
|
|
595
|
+
encrypted: r.metadata?.isEncrypted || false,
|
|
596
|
+
createdAt: r.metadata?.timestamp || Date.now()
|
|
597
|
+
}));
|
|
598
|
+
}
|
|
599
|
+
catch (indexError) {
|
|
600
|
+
console.warn('Local index search failed:', indexError);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
// Fallback to memory index service if available
|
|
604
|
+
if (searchResults.length === 0 && this.services.memoryIndex) {
|
|
605
|
+
try {
|
|
606
|
+
const results = await this.services.memoryIndex.searchMemories({
|
|
607
|
+
userAddress: this.services.config.userAddress,
|
|
608
|
+
vector: queryEmbedding,
|
|
609
|
+
k: limit * 2
|
|
610
|
+
});
|
|
611
|
+
searchResults = results.map((r) => ({
|
|
612
|
+
id: r.memoryObjectId || r.id,
|
|
613
|
+
content: r.content || '',
|
|
614
|
+
category: r.category,
|
|
615
|
+
importance: r.importance || r.metadata?.importance,
|
|
616
|
+
blobId: r.blobId || r.id,
|
|
617
|
+
metadata: r.metadata,
|
|
618
|
+
similarity: r.score || r.similarity || 0,
|
|
619
|
+
encrypted: r.isEncrypted || false,
|
|
620
|
+
createdAt: r.timestamp || Date.now()
|
|
621
|
+
}));
|
|
622
|
+
}
|
|
623
|
+
catch (memIndexError) {
|
|
624
|
+
console.warn('Memory index search failed:', memIndexError);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
// Step 3: Filter by threshold and category
|
|
628
|
+
let filtered = searchResults.filter(r => r.similarity >= threshold);
|
|
629
|
+
if (category) {
|
|
630
|
+
filtered = filtered.filter(r => r.category === category);
|
|
631
|
+
}
|
|
632
|
+
// Step 4: Limit results
|
|
633
|
+
const limited = filtered.slice(0, limit);
|
|
634
|
+
// Step 5: Optionally fetch full content for encrypted memories
|
|
635
|
+
if (includeContent) {
|
|
636
|
+
const withContent = await Promise.all(limited.map(async (r) => {
|
|
637
|
+
// If content is missing or encrypted, try to fetch from storage
|
|
638
|
+
if (!r.content && r.blobId) {
|
|
639
|
+
try {
|
|
640
|
+
const memory = await this.get(r.blobId);
|
|
641
|
+
return { ...r, content: memory.content };
|
|
642
|
+
}
|
|
643
|
+
catch {
|
|
644
|
+
return r;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
return r;
|
|
648
|
+
}));
|
|
649
|
+
return withContent;
|
|
650
|
+
}
|
|
651
|
+
return limited;
|
|
652
|
+
}
|
|
653
|
+
catch (error) {
|
|
654
|
+
throw new Error(`Failed to search memories: ${error instanceof Error ? error.message : String(error)}`);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
463
657
|
/**
|
|
464
658
|
* Create multiple memories in batch using Walrus Quilt
|
|
465
659
|
*
|
|
@@ -570,25 +764,77 @@ export class MemoryNamespace {
|
|
|
570
764
|
onProgress?.('registering on blockchain', 70);
|
|
571
765
|
const memoryObjectIds = [];
|
|
572
766
|
const vectorIds = [];
|
|
573
|
-
if (this.services.tx) {
|
|
574
|
-
// Create memory records for each file in the quilt
|
|
767
|
+
if (this.services.tx && this.services.capability) {
|
|
768
|
+
// Create memory records for each file in the quilt using auto-capability
|
|
575
769
|
for (let i = 0; i < quiltResult.files.length; i++) {
|
|
576
770
|
const file = quiltResult.files[i];
|
|
577
771
|
const vectorId = (Date.now() + i) % 4294967295;
|
|
578
772
|
vectorIds.push(vectorId);
|
|
579
773
|
try {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
774
|
+
// Auto get/create capability if encryption enabled
|
|
775
|
+
let capId;
|
|
776
|
+
if (this.services.config.features?.enableEncryption) {
|
|
777
|
+
try {
|
|
778
|
+
const cap = await this.services.capability.getOrCreate({
|
|
779
|
+
appId: categories[i],
|
|
780
|
+
userAddress: this.services.config.userAddress
|
|
781
|
+
}, this.services.config.signer);
|
|
782
|
+
capId = cap.id;
|
|
783
|
+
}
|
|
784
|
+
catch (capError) {
|
|
785
|
+
console.warn(`⚠️ Failed to auto-create capability for memory ${i}:`, capError);
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
// Use capability-based creation if capId available
|
|
789
|
+
const tx = capId
|
|
790
|
+
? this.services.tx.buildCreateMemoryRecordLightweightWithCap({
|
|
791
|
+
category: categories[i],
|
|
792
|
+
vectorId,
|
|
793
|
+
blobId: file.blobId,
|
|
794
|
+
importance,
|
|
795
|
+
gasBudget: undefined,
|
|
796
|
+
capId
|
|
797
|
+
})
|
|
798
|
+
: this.services.tx.buildCreateMemoryRecordLightweight({
|
|
799
|
+
category: categories[i],
|
|
800
|
+
vectorId,
|
|
801
|
+
blobId: file.blobId,
|
|
802
|
+
importance,
|
|
803
|
+
gasBudget: undefined
|
|
804
|
+
});
|
|
805
|
+
// Use signer's signAndExecuteTransaction for browser wallet compatibility
|
|
806
|
+
const signer = this.services.config.signer;
|
|
807
|
+
let txResult;
|
|
808
|
+
if ('signAndExecuteTransaction' in signer && typeof signer.signAndExecuteTransaction === 'function') {
|
|
809
|
+
// Browser wallet (DappKitSigner) - use signAndExecuteTransaction directly
|
|
810
|
+
const result = await signer.signAndExecuteTransaction(tx);
|
|
811
|
+
// Extract created objects
|
|
812
|
+
let createdObjects;
|
|
813
|
+
if (result.objectChanges && Array.isArray(result.objectChanges)) {
|
|
814
|
+
createdObjects = result.objectChanges
|
|
815
|
+
.filter((change) => change.type === 'created')
|
|
816
|
+
.map((change) => ({
|
|
817
|
+
objectId: change.objectId,
|
|
818
|
+
objectType: change.objectType || 'unknown',
|
|
819
|
+
}));
|
|
820
|
+
}
|
|
821
|
+
// Determine status
|
|
822
|
+
const effectsStatus = result.effects?.status?.status;
|
|
823
|
+
const status = effectsStatus === 'failure' ? 'failure' :
|
|
824
|
+
effectsStatus === 'success' ? 'success' :
|
|
825
|
+
result.digest ? 'success' : 'failure';
|
|
826
|
+
txResult = {
|
|
827
|
+
digest: result.digest,
|
|
828
|
+
status,
|
|
829
|
+
createdObjects,
|
|
830
|
+
effects: result.effects,
|
|
831
|
+
objectChanges: result.objectChanges
|
|
832
|
+
};
|
|
833
|
+
}
|
|
834
|
+
else {
|
|
835
|
+
// Server-side signer - use TransactionService
|
|
836
|
+
txResult = await this.services.tx.executeTransaction(tx, signer);
|
|
837
|
+
}
|
|
592
838
|
if (txResult.status === 'success') {
|
|
593
839
|
const memoryObject = txResult.createdObjects?.find((obj) => obj.objectType?.includes('::memory::Memory'));
|
|
594
840
|
memoryObjectIds.push(memoryObject?.objectId);
|