@cmdoss/memwal-sdk 0.6.2 → 0.8.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 +547 -547
- package/BENCHMARKS.md +238 -238
- package/README.md +310 -181
- package/dist/ai-sdk/tools.d.ts +2 -2
- package/dist/ai-sdk/tools.js +2 -2
- 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 +29 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +45 -13
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.d.ts +1 -1
- package/dist/client/namespaces/EmbeddingsNamespace.js +1 -1
- package/dist/client/namespaces/MemoryNamespace.d.ts +31 -0
- package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +272 -39
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/AINamespace.d.ts +2 -2
- package/dist/client/namespaces/consolidated/AINamespace.js +2 -2
- 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 +62 -4
- 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/config/ConfigurationHelper.js +61 -61
- package/dist/config/defaults.js +2 -2
- package/dist/config/defaults.js.map +1 -1
- package/dist/graph/GraphService.js +21 -21
- package/dist/graph/GraphService.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- 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/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/retrieval/MemoryRetrievalService.d.ts +31 -0
- package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -1
- package/dist/retrieval/MemoryRetrievalService.js +44 -4
- package/dist/retrieval/MemoryRetrievalService.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 +28 -1
- package/dist/services/EmbeddingService.d.ts.map +1 -1
- package/dist/services/EmbeddingService.js +54 -0
- 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/IndexManager.d.ts +5 -1
- package/dist/services/IndexManager.d.ts.map +1 -1
- package/dist/services/IndexManager.js +17 -40
- package/dist/services/IndexManager.js.map +1 -1
- package/dist/services/QueryService.js +1 -1
- package/dist/services/QueryService.js.map +1 -1
- package/dist/services/StorageService.d.ts +11 -0
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js +73 -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/ViewService.js +2 -2
- package/dist/services/ViewService.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +101 -1
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +410 -20
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/index.d.ts +1 -1
- package/dist/services/storage/index.d.ts.map +1 -1
- package/dist/services/storage/index.js.map +1 -1
- package/dist/utils/LRUCache.d.ts +106 -0
- package/dist/utils/LRUCache.d.ts.map +1 -0
- package/dist/utils/LRUCache.js +281 -0
- package/dist/utils/LRUCache.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/memoryIndexOnChain.d.ts +212 -0
- package/dist/utils/memoryIndexOnChain.d.ts.map +1 -0
- package/dist/utils/memoryIndexOnChain.js +312 -0
- package/dist/utils/memoryIndexOnChain.js.map +1 -0
- package/dist/utils/rebuildIndexNode.d.ts +29 -0
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
- package/dist/utils/rebuildIndexNode.js +366 -98
- package/dist/utils/rebuildIndexNode.js.map +1 -1
- package/dist/vector/HnswWasmService.d.ts +20 -5
- package/dist/vector/HnswWasmService.d.ts.map +1 -1
- package/dist/vector/HnswWasmService.js +73 -40
- package/dist/vector/HnswWasmService.js.map +1 -1
- package/dist/vector/IHnswService.d.ts +10 -1
- package/dist/vector/IHnswService.d.ts.map +1 -1
- package/dist/vector/IHnswService.js.map +1 -1
- package/dist/vector/NodeHnswService.d.ts +16 -0
- package/dist/vector/NodeHnswService.d.ts.map +1 -1
- package/dist/vector/NodeHnswService.js +84 -5
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/vector/createHnswService.d.ts +1 -1
- package/dist/vector/createHnswService.js +1 -1
- package/dist/vector/index.d.ts +1 -1
- package/dist/vector/index.js +1 -1
- package/package.json +157 -157
- package/src/access/PermissionService.ts +635 -635
- package/src/aggregation/AggregationService.ts +389 -389
- 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 +1289 -1222
- 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 +361 -361
- package/src/client/namespaces/MemoryNamespace.ts +1422 -1135
- 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/BlockchainNamespace.ts +607 -546
- 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 +39 -39
- 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 +51 -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 +870 -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/graph/GraphService.ts +887 -887
- package/src/graph/KnowledgeGraphManager.ts +728 -728
- package/src/graph/index.ts +25 -25
- package/src/index.ts +498 -474
- 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 +612 -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/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 -830
- 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 +771 -706
- package/src/services/EncryptionService.ts +712 -711
- package/src/services/GeminiAIService.ts +753 -753
- package/src/services/IndexManager.ts +977 -1004
- package/src/services/MemoryIndexService.ts +1003 -1003
- package/src/services/MemoryService.ts +369 -369
- package/src/services/QueryService.ts +890 -890
- package/src/services/StorageService.ts +1182 -1111
- 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 -660
- package/src/services/storage/WalrusMetadataManager.ts +268 -268
- package/src/services/storage/WalrusStorageManager.ts +287 -287
- package/src/services/storage/index.ts +57 -52
- package/src/types/index.ts +13 -13
- package/src/utils/LRUCache.ts +378 -0
- package/src/utils/index.ts +76 -68
- package/src/utils/memoryIndexOnChain.ts +507 -0
- package/src/utils/rebuildIndex.ts +290 -290
- package/src/utils/rebuildIndexNode.ts +771 -424
- package/src/vector/BrowserHnswIndexService.ts +758 -758
- package/src/vector/HnswWasmService.ts +731 -679
- package/src/vector/IHnswService.ts +233 -224
- package/src/vector/NodeHnswService.ts +833 -735
- 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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LRUCache - Memory-efficient LRU Cache with TTL and size limits
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Least Recently Used eviction
|
|
6
|
+
* - Time-to-live (TTL) expiration
|
|
7
|
+
* - Maximum entry count limit
|
|
8
|
+
* - Optional memory size estimation
|
|
9
|
+
* - Automatic cleanup interval
|
|
10
|
+
*/
|
|
11
|
+
export interface LRUCacheOptions<V> {
|
|
12
|
+
/** Maximum number of entries (default: 100) */
|
|
13
|
+
maxSize?: number;
|
|
14
|
+
/** Time-to-live in milliseconds (default: 30 minutes) */
|
|
15
|
+
ttlMs?: number;
|
|
16
|
+
/** Cleanup interval in milliseconds (default: 60 seconds) */
|
|
17
|
+
cleanupIntervalMs?: number;
|
|
18
|
+
/** Optional function to estimate memory size of a value */
|
|
19
|
+
sizeEstimator?: (value: V) => number;
|
|
20
|
+
/** Maximum total memory in bytes (optional, requires sizeEstimator) */
|
|
21
|
+
maxMemoryBytes?: number;
|
|
22
|
+
/** Callback when entry is evicted */
|
|
23
|
+
onEvict?: (key: string, value: V, reason: 'lru' | 'ttl' | 'memory' | 'manual') => void;
|
|
24
|
+
}
|
|
25
|
+
export declare class LRUCache<V> {
|
|
26
|
+
private cache;
|
|
27
|
+
private readonly maxSize;
|
|
28
|
+
private readonly ttlMs;
|
|
29
|
+
private readonly cleanupIntervalMs;
|
|
30
|
+
private readonly sizeEstimator?;
|
|
31
|
+
private readonly maxMemoryBytes?;
|
|
32
|
+
private readonly onEvict?;
|
|
33
|
+
private cleanupTimer?;
|
|
34
|
+
private currentMemoryBytes;
|
|
35
|
+
constructor(options?: LRUCacheOptions<V>);
|
|
36
|
+
/**
|
|
37
|
+
* Get value from cache (updates last accessed time)
|
|
38
|
+
*/
|
|
39
|
+
get(key: string): V | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Set value in cache
|
|
42
|
+
*/
|
|
43
|
+
set(key: string, value: V): void;
|
|
44
|
+
/**
|
|
45
|
+
* Check if key exists (without updating access time)
|
|
46
|
+
*/
|
|
47
|
+
has(key: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Delete entry from cache
|
|
50
|
+
*/
|
|
51
|
+
delete(key: string, reason?: 'lru' | 'ttl' | 'memory' | 'manual'): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Clear all entries
|
|
54
|
+
*/
|
|
55
|
+
clear(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get cache size
|
|
58
|
+
*/
|
|
59
|
+
get size(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Get current memory usage (if sizeEstimator provided)
|
|
62
|
+
*/
|
|
63
|
+
get memoryBytes(): number;
|
|
64
|
+
/**
|
|
65
|
+
* Get all keys
|
|
66
|
+
*/
|
|
67
|
+
keys(): IterableIterator<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Get all entries
|
|
70
|
+
*/
|
|
71
|
+
entries(): IterableIterator<[string, V]>;
|
|
72
|
+
/**
|
|
73
|
+
* Get cache statistics
|
|
74
|
+
*/
|
|
75
|
+
getStats(): {
|
|
76
|
+
size: number;
|
|
77
|
+
maxSize: number;
|
|
78
|
+
memoryBytes: number;
|
|
79
|
+
maxMemoryBytes?: number;
|
|
80
|
+
ttlMs: number;
|
|
81
|
+
oldestEntry?: number;
|
|
82
|
+
newestEntry?: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Destroy cache and cleanup resources
|
|
86
|
+
*/
|
|
87
|
+
destroy(): void;
|
|
88
|
+
private startCleanup;
|
|
89
|
+
private cleanupExpired;
|
|
90
|
+
private evictIfNeeded;
|
|
91
|
+
private evictLRU;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Estimate memory size of common JavaScript values
|
|
95
|
+
*/
|
|
96
|
+
export declare function estimateSize(value: unknown): number;
|
|
97
|
+
/**
|
|
98
|
+
* Estimate size of HNSW index cache entry
|
|
99
|
+
*/
|
|
100
|
+
export declare function estimateIndexCacheSize(entry: {
|
|
101
|
+
vectors: Map<number, number[]>;
|
|
102
|
+
metadata: Map<number, unknown>;
|
|
103
|
+
pendingVectors?: Map<number, number[]>;
|
|
104
|
+
}): number;
|
|
105
|
+
export default LRUCache;
|
|
106
|
+
//# sourceMappingURL=LRUCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LRUCache.d.ts","sourceRoot":"","sources":["../../src/utils/LRUCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LRUCache - Memory-efficient LRU Cache with TTL and size limits
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Least Recently Used eviction
|
|
6
|
+
* - Time-to-live (TTL) expiration
|
|
7
|
+
* - Maximum entry count limit
|
|
8
|
+
* - Optional memory size estimation
|
|
9
|
+
* - Automatic cleanup interval
|
|
10
|
+
*/
|
|
11
|
+
export class LRUCache {
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.cache = new Map();
|
|
14
|
+
this.currentMemoryBytes = 0;
|
|
15
|
+
this.maxSize = options.maxSize ?? 100;
|
|
16
|
+
this.ttlMs = options.ttlMs ?? 30 * 60 * 1000; // 30 minutes
|
|
17
|
+
this.cleanupIntervalMs = options.cleanupIntervalMs ?? 60 * 1000; // 1 minute
|
|
18
|
+
this.sizeEstimator = options.sizeEstimator;
|
|
19
|
+
this.maxMemoryBytes = options.maxMemoryBytes;
|
|
20
|
+
this.onEvict = options.onEvict;
|
|
21
|
+
this.startCleanup();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get value from cache (updates last accessed time)
|
|
25
|
+
*/
|
|
26
|
+
get(key) {
|
|
27
|
+
const entry = this.cache.get(key);
|
|
28
|
+
if (!entry) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
// Check TTL
|
|
32
|
+
if (Date.now() - entry.createdAt > this.ttlMs) {
|
|
33
|
+
this.delete(key, 'ttl');
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
// Update last accessed time
|
|
37
|
+
entry.lastAccessed = Date.now();
|
|
38
|
+
return entry.value;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Set value in cache
|
|
42
|
+
*/
|
|
43
|
+
set(key, value) {
|
|
44
|
+
const now = Date.now();
|
|
45
|
+
// Calculate size if estimator provided
|
|
46
|
+
const size = this.sizeEstimator ? this.sizeEstimator(value) : undefined;
|
|
47
|
+
// If key exists, remove old entry first
|
|
48
|
+
if (this.cache.has(key)) {
|
|
49
|
+
this.delete(key, 'manual');
|
|
50
|
+
}
|
|
51
|
+
// Evict if necessary before adding
|
|
52
|
+
this.evictIfNeeded(size);
|
|
53
|
+
// Add new entry
|
|
54
|
+
const entry = {
|
|
55
|
+
value,
|
|
56
|
+
lastAccessed: now,
|
|
57
|
+
createdAt: now,
|
|
58
|
+
size,
|
|
59
|
+
};
|
|
60
|
+
this.cache.set(key, entry);
|
|
61
|
+
if (size) {
|
|
62
|
+
this.currentMemoryBytes += size;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if key exists (without updating access time)
|
|
67
|
+
*/
|
|
68
|
+
has(key) {
|
|
69
|
+
const entry = this.cache.get(key);
|
|
70
|
+
if (!entry) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
// Check TTL
|
|
74
|
+
if (Date.now() - entry.createdAt > this.ttlMs) {
|
|
75
|
+
this.delete(key, 'ttl');
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Delete entry from cache
|
|
82
|
+
*/
|
|
83
|
+
delete(key, reason = 'manual') {
|
|
84
|
+
const entry = this.cache.get(key);
|
|
85
|
+
if (!entry) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (entry.size) {
|
|
89
|
+
this.currentMemoryBytes -= entry.size;
|
|
90
|
+
}
|
|
91
|
+
this.cache.delete(key);
|
|
92
|
+
if (this.onEvict) {
|
|
93
|
+
this.onEvict(key, entry.value, reason);
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Clear all entries
|
|
99
|
+
*/
|
|
100
|
+
clear() {
|
|
101
|
+
if (this.onEvict) {
|
|
102
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
103
|
+
this.onEvict(key, entry.value, 'manual');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
this.cache.clear();
|
|
107
|
+
this.currentMemoryBytes = 0;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get cache size
|
|
111
|
+
*/
|
|
112
|
+
get size() {
|
|
113
|
+
return this.cache.size;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get current memory usage (if sizeEstimator provided)
|
|
117
|
+
*/
|
|
118
|
+
get memoryBytes() {
|
|
119
|
+
return this.currentMemoryBytes;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get all keys
|
|
123
|
+
*/
|
|
124
|
+
keys() {
|
|
125
|
+
return this.cache.keys();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get all entries
|
|
129
|
+
*/
|
|
130
|
+
entries() {
|
|
131
|
+
const self = this;
|
|
132
|
+
return (function* () {
|
|
133
|
+
for (const [key, entry] of self.cache.entries()) {
|
|
134
|
+
yield [key, entry.value];
|
|
135
|
+
}
|
|
136
|
+
})();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get cache statistics
|
|
140
|
+
*/
|
|
141
|
+
getStats() {
|
|
142
|
+
let oldestEntry;
|
|
143
|
+
let newestEntry;
|
|
144
|
+
for (const entry of this.cache.values()) {
|
|
145
|
+
if (!oldestEntry || entry.createdAt < oldestEntry) {
|
|
146
|
+
oldestEntry = entry.createdAt;
|
|
147
|
+
}
|
|
148
|
+
if (!newestEntry || entry.createdAt > newestEntry) {
|
|
149
|
+
newestEntry = entry.createdAt;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
size: this.cache.size,
|
|
154
|
+
maxSize: this.maxSize,
|
|
155
|
+
memoryBytes: this.currentMemoryBytes,
|
|
156
|
+
maxMemoryBytes: this.maxMemoryBytes,
|
|
157
|
+
ttlMs: this.ttlMs,
|
|
158
|
+
oldestEntry,
|
|
159
|
+
newestEntry,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Destroy cache and cleanup resources
|
|
164
|
+
*/
|
|
165
|
+
destroy() {
|
|
166
|
+
if (this.cleanupTimer) {
|
|
167
|
+
clearInterval(this.cleanupTimer);
|
|
168
|
+
this.cleanupTimer = undefined;
|
|
169
|
+
}
|
|
170
|
+
this.clear();
|
|
171
|
+
}
|
|
172
|
+
// ==================== Private Methods ====================
|
|
173
|
+
startCleanup() {
|
|
174
|
+
this.cleanupTimer = setInterval(() => {
|
|
175
|
+
this.cleanupExpired();
|
|
176
|
+
}, this.cleanupIntervalMs);
|
|
177
|
+
}
|
|
178
|
+
cleanupExpired() {
|
|
179
|
+
const now = Date.now();
|
|
180
|
+
const expiredKeys = [];
|
|
181
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
182
|
+
if (now - entry.createdAt > this.ttlMs) {
|
|
183
|
+
expiredKeys.push(key);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
for (const key of expiredKeys) {
|
|
187
|
+
this.delete(key, 'ttl');
|
|
188
|
+
}
|
|
189
|
+
if (expiredKeys.length > 0) {
|
|
190
|
+
console.debug(`[LRUCache] Cleaned up ${expiredKeys.length} expired entries`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
evictIfNeeded(newEntrySize) {
|
|
194
|
+
// Evict by count
|
|
195
|
+
while (this.cache.size >= this.maxSize) {
|
|
196
|
+
this.evictLRU();
|
|
197
|
+
}
|
|
198
|
+
// Evict by memory (if configured)
|
|
199
|
+
if (this.maxMemoryBytes && newEntrySize) {
|
|
200
|
+
while (this.currentMemoryBytes + newEntrySize > this.maxMemoryBytes && this.cache.size > 0) {
|
|
201
|
+
this.evictLRU('memory');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
evictLRU(reason = 'lru') {
|
|
206
|
+
let oldestKey = null;
|
|
207
|
+
let oldestTime = Infinity;
|
|
208
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
209
|
+
if (entry.lastAccessed < oldestTime) {
|
|
210
|
+
oldestTime = entry.lastAccessed;
|
|
211
|
+
oldestKey = key;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
if (oldestKey) {
|
|
215
|
+
this.delete(oldestKey, reason);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Estimate memory size of common JavaScript values
|
|
221
|
+
*/
|
|
222
|
+
export function estimateSize(value) {
|
|
223
|
+
if (value === null || value === undefined) {
|
|
224
|
+
return 8;
|
|
225
|
+
}
|
|
226
|
+
if (typeof value === 'boolean') {
|
|
227
|
+
return 4;
|
|
228
|
+
}
|
|
229
|
+
if (typeof value === 'number') {
|
|
230
|
+
return 8;
|
|
231
|
+
}
|
|
232
|
+
if (typeof value === 'string') {
|
|
233
|
+
return value.length * 2; // UTF-16
|
|
234
|
+
}
|
|
235
|
+
if (Array.isArray(value)) {
|
|
236
|
+
let size = 24; // Array overhead
|
|
237
|
+
for (const item of value) {
|
|
238
|
+
size += estimateSize(item);
|
|
239
|
+
}
|
|
240
|
+
return size;
|
|
241
|
+
}
|
|
242
|
+
if (value instanceof Float32Array) {
|
|
243
|
+
return 24 + value.length * 4;
|
|
244
|
+
}
|
|
245
|
+
if (value instanceof Float64Array) {
|
|
246
|
+
return 24 + value.length * 8;
|
|
247
|
+
}
|
|
248
|
+
if (ArrayBuffer.isView(value)) {
|
|
249
|
+
return 24 + value.byteLength;
|
|
250
|
+
}
|
|
251
|
+
if (typeof value === 'object') {
|
|
252
|
+
let size = 24; // Object overhead
|
|
253
|
+
for (const key of Object.keys(value)) {
|
|
254
|
+
size += key.length * 2; // Key
|
|
255
|
+
size += estimateSize(value[key]); // Value
|
|
256
|
+
}
|
|
257
|
+
return size;
|
|
258
|
+
}
|
|
259
|
+
return 8; // Default
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Estimate size of HNSW index cache entry
|
|
263
|
+
*/
|
|
264
|
+
export function estimateIndexCacheSize(entry) {
|
|
265
|
+
let size = 100; // Base overhead
|
|
266
|
+
// Vectors: each vector is Float64 array
|
|
267
|
+
for (const vector of entry.vectors.values()) {
|
|
268
|
+
size += 24 + vector.length * 8; // Array + Float64 values
|
|
269
|
+
}
|
|
270
|
+
// Pending vectors
|
|
271
|
+
if (entry.pendingVectors) {
|
|
272
|
+
for (const vector of entry.pendingVectors.values()) {
|
|
273
|
+
size += 24 + vector.length * 8;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Metadata (rough estimate)
|
|
277
|
+
size += entry.metadata.size * 200; // Average 200 bytes per metadata entry
|
|
278
|
+
return size;
|
|
279
|
+
}
|
|
280
|
+
export default LRUCache;
|
|
281
|
+
//# sourceMappingURL=LRUCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LRUCache.js","sourceRoot":"","sources":["../../src/utils/LRUCache.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -18,4 +18,5 @@ export { isString, isNumber, isBoolean, isObject, isArray, isUint8Array, isValid
|
|
|
18
18
|
export { ConfigurationHelper, type SDKConfig, type EnvironmentConfig, } from '../config/ConfigurationHelper';
|
|
19
19
|
export { rebuildIndex, hasExistingIndex, clearIndex, type RebuildIndexOptions, type RebuildIndexResult, } from './rebuildIndex';
|
|
20
20
|
export { rebuildIndexNode, hasExistingIndexNode, clearIndexNode, type RebuildIndexNodeOptions, type RebuildIndexNodeResult, } from './rebuildIndexNode';
|
|
21
|
+
export { LRUCache, estimateSize, estimateIndexCacheSize, type LRUCacheOptions, } from './LRUCache';
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -22,6 +22,8 @@ export { ConfigurationHelper, } from '../config/ConfigurationHelper.js';
|
|
|
22
22
|
export { rebuildIndex, hasExistingIndex, clearIndex, } from './rebuildIndex.js';
|
|
23
23
|
// Rebuild index utility for Node.js environments
|
|
24
24
|
export { rebuildIndexNode, hasExistingIndexNode, clearIndexNode, } from './rebuildIndexNode.js';
|
|
25
|
+
// LRU Cache utility with memory limits
|
|
26
|
+
export { LRUCache, estimateSize, estimateIndexCacheSize, } from './LRUCache.js';
|
|
25
27
|
// Future utility exports will go here
|
|
26
28
|
// export * from './crypto';
|
|
27
29
|
// export * from './encoding';
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+DAA+D;AAC/D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,kDAAkD;AAClD,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAC;AAEvC,oEAAoE;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,gBAAgB,CAAC;AAExB,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,sCAAsC;AACtC,4BAA4B;AAC5B,8BAA8B;AAC9B,gCAAgC;AAChC,6BAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+DAA+D;AAC/D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,kDAAkD;AAClD,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAC;AAEvC,oEAAoE;AACpE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,GAGX,MAAM,gBAAgB,CAAC;AAExB,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GAGf,MAAM,oBAAoB,CAAC;AAE5B,uCAAuC;AACvC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,sBAAsB,GAEvB,MAAM,YAAY,CAAC;AAEpB,sCAAsC;AACtC,4BAA4B;AAC5B,8BAA8B;AAC9B,gCAAgC;AAChC,6BAA6B"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Index On-Chain Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for managing MemoryIndex object on Sui blockchain:
|
|
5
|
+
* - Reading current MemoryIndex state from chain
|
|
6
|
+
* - Updating blob IDs after Walrus sync
|
|
7
|
+
* - Creating new MemoryIndex if doesn't exist
|
|
8
|
+
*
|
|
9
|
+
* Environment Variables:
|
|
10
|
+
* - MEMORY_INDEX_ID: Sui object ID of the MemoryIndex
|
|
11
|
+
* - INDEX_BLOB_ID: Current Walrus blob ID for HNSW index (updated after sync)
|
|
12
|
+
* - GRAPH_BLOB_ID: Current Walrus blob ID for knowledge graph
|
|
13
|
+
*/
|
|
14
|
+
import { SuiClient } from '@mysten/sui/client';
|
|
15
|
+
import type { Signer } from '@mysten/sui/cryptography';
|
|
16
|
+
/**
|
|
17
|
+
* On-chain MemoryIndex object structure
|
|
18
|
+
*/
|
|
19
|
+
export interface OnChainMemoryIndex {
|
|
20
|
+
/** Sui object ID */
|
|
21
|
+
objectId: string;
|
|
22
|
+
/** Owner address */
|
|
23
|
+
owner: string;
|
|
24
|
+
/** Version number for optimistic locking */
|
|
25
|
+
version: number;
|
|
26
|
+
/** Walrus blob ID for HNSW index */
|
|
27
|
+
indexBlobId: string;
|
|
28
|
+
/** Walrus blob ID for knowledge graph */
|
|
29
|
+
graphBlobId: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Options for getting MemoryIndex from chain
|
|
33
|
+
*/
|
|
34
|
+
export interface GetMemoryIndexOptions {
|
|
35
|
+
/** Sui client instance */
|
|
36
|
+
client: SuiClient;
|
|
37
|
+
/** MemoryIndex object ID (from MEMORY_INDEX_ID env var) */
|
|
38
|
+
memoryIndexId: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for updating MemoryIndex on-chain
|
|
42
|
+
*/
|
|
43
|
+
export interface UpdateMemoryIndexOnChainOptions {
|
|
44
|
+
/** Sui client instance */
|
|
45
|
+
client: SuiClient;
|
|
46
|
+
/** Signer for transaction */
|
|
47
|
+
signer: Signer;
|
|
48
|
+
/** Package ID of the PDW contract */
|
|
49
|
+
packageId: string;
|
|
50
|
+
/** MemoryIndex object ID */
|
|
51
|
+
memoryIndexId: string;
|
|
52
|
+
/** Current version for optimistic locking */
|
|
53
|
+
expectedVersion: number;
|
|
54
|
+
/** New index blob ID from Walrus */
|
|
55
|
+
newIndexBlobId: string;
|
|
56
|
+
/** New graph blob ID from Walrus */
|
|
57
|
+
newGraphBlobId: string;
|
|
58
|
+
/** Optional gas budget */
|
|
59
|
+
gasBudget?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Options for creating a new MemoryIndex
|
|
63
|
+
*/
|
|
64
|
+
export interface CreateMemoryIndexOnChainOptions {
|
|
65
|
+
/** Sui client instance */
|
|
66
|
+
client: SuiClient;
|
|
67
|
+
/** Signer for transaction */
|
|
68
|
+
signer: Signer;
|
|
69
|
+
/** Package ID of the PDW contract */
|
|
70
|
+
packageId: string;
|
|
71
|
+
/** Initial index blob ID (can be placeholder) */
|
|
72
|
+
indexBlobId: string;
|
|
73
|
+
/** Initial graph blob ID (can be placeholder) */
|
|
74
|
+
graphBlobId: string;
|
|
75
|
+
/** Optional gas budget */
|
|
76
|
+
gasBudget?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Result of updating MemoryIndex
|
|
80
|
+
*/
|
|
81
|
+
export interface UpdateMemoryIndexResult {
|
|
82
|
+
success: boolean;
|
|
83
|
+
/** Transaction digest */
|
|
84
|
+
digest?: string;
|
|
85
|
+
/** New version number after update */
|
|
86
|
+
newVersion?: number;
|
|
87
|
+
/** Error message if failed */
|
|
88
|
+
error?: string;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Result of creating MemoryIndex
|
|
92
|
+
*/
|
|
93
|
+
export interface CreateMemoryIndexResult {
|
|
94
|
+
success: boolean;
|
|
95
|
+
/** Created MemoryIndex object ID */
|
|
96
|
+
memoryIndexId?: string;
|
|
97
|
+
/** Transaction digest */
|
|
98
|
+
digest?: string;
|
|
99
|
+
/** Error message if failed */
|
|
100
|
+
error?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Read MemoryIndex object from Sui blockchain
|
|
104
|
+
*
|
|
105
|
+
* @param options - Options containing client and memoryIndexId
|
|
106
|
+
* @returns The MemoryIndex object data or null if not found
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const memoryIndex = await getMemoryIndex({
|
|
111
|
+
* client: suiClient,
|
|
112
|
+
* memoryIndexId: process.env.MEMORY_INDEX_ID!
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* if (memoryIndex) {
|
|
116
|
+
* console.log(`Version: ${memoryIndex.version}`);
|
|
117
|
+
* console.log(`Index Blob: ${memoryIndex.indexBlobId}`);
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare function getMemoryIndex(options: GetMemoryIndexOptions): Promise<OnChainMemoryIndex | null>;
|
|
122
|
+
/**
|
|
123
|
+
* Update MemoryIndex on-chain with new blob IDs
|
|
124
|
+
*
|
|
125
|
+
* Call this after uploading index/graph to Walrus to update the on-chain reference.
|
|
126
|
+
* Uses optimistic locking (expectedVersion must match current version).
|
|
127
|
+
*
|
|
128
|
+
* @param options - Update options
|
|
129
|
+
* @returns Result with success status and new version
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* // First, read current state
|
|
134
|
+
* const current = await getMemoryIndex({ client, memoryIndexId });
|
|
135
|
+
*
|
|
136
|
+
* // Then upload to Walrus and get new blob ID
|
|
137
|
+
* const newBlobId = await uploadIndexToWalrus();
|
|
138
|
+
*
|
|
139
|
+
* // Finally, update on-chain
|
|
140
|
+
* const result = await updateMemoryIndexOnChain({
|
|
141
|
+
* client,
|
|
142
|
+
* signer: keypair,
|
|
143
|
+
* packageId: process.env.PACKAGE_ID!,
|
|
144
|
+
* memoryIndexId: process.env.MEMORY_INDEX_ID!,
|
|
145
|
+
* expectedVersion: current.version,
|
|
146
|
+
* newIndexBlobId: newBlobId,
|
|
147
|
+
* newGraphBlobId: current.graphBlobId, // Keep existing if not changed
|
|
148
|
+
* });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export declare function updateMemoryIndexOnChain(options: UpdateMemoryIndexOnChainOptions): Promise<UpdateMemoryIndexResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Create a new MemoryIndex on-chain
|
|
154
|
+
*
|
|
155
|
+
* Use this when setting up a new wallet or if MEMORY_INDEX_ID doesn't exist.
|
|
156
|
+
*
|
|
157
|
+
* @param options - Creation options
|
|
158
|
+
* @returns Result with created object ID
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* const result = await createMemoryIndexOnChain({
|
|
163
|
+
* client,
|
|
164
|
+
* signer: keypair,
|
|
165
|
+
* packageId: process.env.PACKAGE_ID!,
|
|
166
|
+
* indexBlobId: 'placeholder-index',
|
|
167
|
+
* graphBlobId: 'placeholder-graph',
|
|
168
|
+
* });
|
|
169
|
+
*
|
|
170
|
+
* if (result.success) {
|
|
171
|
+
* console.log(`Created MemoryIndex: ${result.memoryIndexId}`);
|
|
172
|
+
* // Save to .env: MEMORY_INDEX_ID=${result.memoryIndexId}
|
|
173
|
+
* }
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
export declare function createMemoryIndexOnChain(options: CreateMemoryIndexOnChainOptions): Promise<CreateMemoryIndexResult>;
|
|
177
|
+
/**
|
|
178
|
+
* Sync index to Walrus and update on-chain MemoryIndex
|
|
179
|
+
*
|
|
180
|
+
* Convenience function that combines:
|
|
181
|
+
* 1. Reading current MemoryIndex state
|
|
182
|
+
* 2. Uploading index to Walrus
|
|
183
|
+
* 3. Updating on-chain blob ID
|
|
184
|
+
*
|
|
185
|
+
* @param options - Combined sync options
|
|
186
|
+
* @returns Result with new blob ID and transaction digest
|
|
187
|
+
*/
|
|
188
|
+
export interface SyncAndUpdateOptions {
|
|
189
|
+
client: SuiClient;
|
|
190
|
+
signer: Signer;
|
|
191
|
+
packageId: string;
|
|
192
|
+
memoryIndexId: string;
|
|
193
|
+
/** Function to upload index to Walrus, returns new blob ID */
|
|
194
|
+
uploadToWalrus: () => Promise<string>;
|
|
195
|
+
/** Optional: also update graph blob ID */
|
|
196
|
+
newGraphBlobId?: string;
|
|
197
|
+
}
|
|
198
|
+
export interface SyncAndUpdateResult {
|
|
199
|
+
success: boolean;
|
|
200
|
+
newIndexBlobId?: string;
|
|
201
|
+
newGraphBlobId?: string;
|
|
202
|
+
digest?: string;
|
|
203
|
+
newVersion?: number;
|
|
204
|
+
error?: string;
|
|
205
|
+
}
|
|
206
|
+
export declare function syncIndexAndUpdateOnChain(options: SyncAndUpdateOptions): Promise<SyncAndUpdateResult>;
|
|
207
|
+
/**
|
|
208
|
+
* Upload placeholder blob to Walrus
|
|
209
|
+
* Used when creating initial MemoryIndex
|
|
210
|
+
*/
|
|
211
|
+
export declare function uploadPlaceholderToWalrus(walrusPublisherUrl: string, type: 'index' | 'graph'): Promise<string>;
|
|
212
|
+
//# sourceMappingURL=memoryIndexOnChain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryIndexOnChain.d.ts","sourceRoot":"","sources":["../../src/utils/memoryIndexOnChain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0BAA0B;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0BAA0B;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA0CpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,uBAAuB,CAAC,CAkElC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,uBAAuB,CAAC,CAwElC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAsD9B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,OAAO,GAAG,OAAO,GACtB,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
|