@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
package/src/client/factory.ts
CHANGED
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Personal Data Wallet Client Factory
|
|
3
|
-
*
|
|
4
|
-
* Provides convenience functions for creating PDW-enabled Sui clients
|
|
5
|
-
* following MystenLabs best practices for client extensions.
|
|
6
|
-
*
|
|
7
|
-
* Also includes Simple PDW Client for easy function-based API.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { SuiClient } from '@mysten/sui/client';
|
|
11
|
-
import type { PDWConfig } from '../types';
|
|
12
|
-
import { createDefaultConfig, createTestnetConfig } from '../config/defaults';
|
|
13
|
-
import { validateConfig, mergeConfigs } from '../config/validation';
|
|
14
|
-
import { PersonalDataWallet } from './PersonalDataWallet';
|
|
15
|
-
import { SimplePDWClient, type SimplePDWConfig } from './SimplePDWClient';
|
|
16
|
-
import type { Keypair } from '@mysten/sui/cryptography';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Create a new SuiClient extended with Personal Data Wallet functionality
|
|
20
|
-
*
|
|
21
|
-
* @param suiClientConfig - Standard SuiClient configuration
|
|
22
|
-
* @param pdwConfig - PDW-specific configuration
|
|
23
|
-
* @returns Extended SuiClient with PDW capabilities
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const client = createPDWClient(
|
|
28
|
-
* { url: 'https://fullnode.devnet.sui.io' },
|
|
29
|
-
* {
|
|
30
|
-
* packageId: '0x123...'
|
|
31
|
-
* }
|
|
32
|
-
* );
|
|
33
|
-
*
|
|
34
|
-
* // Now use PDW functionality
|
|
35
|
-
* const memory = await client.pdw.createMemory({
|
|
36
|
-
* content: 'My first memory',
|
|
37
|
-
* category: 'personal',
|
|
38
|
-
* userAddress: '0x789...'
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export function createPDWClient(
|
|
43
|
-
suiClientConfig: ConstructorParameters<typeof SuiClient>[0],
|
|
44
|
-
pdwConfig?: Partial<PDWConfig>
|
|
45
|
-
) {
|
|
46
|
-
const suiClient = new SuiClient(suiClientConfig);
|
|
47
|
-
const fullConfig = validateConfig(mergeConfigs(createDefaultConfig(), pdwConfig || {}));
|
|
48
|
-
|
|
49
|
-
return suiClient.$extend(PersonalDataWallet.asClientExtension(pdwConfig));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Extend an existing SuiClient with Personal Data Wallet functionality
|
|
54
|
-
*
|
|
55
|
-
* @param client - Existing SuiClient instance
|
|
56
|
-
* @param pdwConfig - PDW-specific configuration
|
|
57
|
-
* @returns Extended client with PDW capabilities
|
|
58
|
-
*/
|
|
59
|
-
export function extendWithPDW(
|
|
60
|
-
client: SuiClient,
|
|
61
|
-
pdwConfig?: Partial<PDWConfig>
|
|
62
|
-
) {
|
|
63
|
-
return client.$extend(PersonalDataWallet.asClientExtension(pdwConfig));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Create a PDW client with common development settings
|
|
68
|
-
*
|
|
69
|
-
* @param overrides - Any configuration overrides
|
|
70
|
-
* @returns Development-ready PDW client
|
|
71
|
-
*/
|
|
72
|
-
export function createDevPDWClient(overrides?: {
|
|
73
|
-
suiUrl?: string;
|
|
74
|
-
packageId?: string;
|
|
75
|
-
}) {
|
|
76
|
-
return createPDWClient(
|
|
77
|
-
{
|
|
78
|
-
url: overrides?.suiUrl || 'https://fullnode.devnet.sui.io',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
packageId: overrides?.packageId || '0x0',
|
|
82
|
-
encryptionConfig: {
|
|
83
|
-
enabled: true,
|
|
84
|
-
keyServers: ['0x0'], // Placeholder for development
|
|
85
|
-
policyConfig: {
|
|
86
|
-
threshold: 2,
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
storageConfig: {
|
|
90
|
-
provider: 'walrus',
|
|
91
|
-
cacheEnabled: true,
|
|
92
|
-
encryptionEnabled: true,
|
|
93
|
-
},
|
|
94
|
-
}
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Create a PDW client configured for testnet
|
|
100
|
-
*
|
|
101
|
-
* @param overrides - Any configuration overrides
|
|
102
|
-
* @returns Testnet-ready PDW client
|
|
103
|
-
*/
|
|
104
|
-
export function createTestnetPDWClient(overrides?: Partial<PDWConfig>) {
|
|
105
|
-
const testnetConfig = createTestnetConfig(overrides);
|
|
106
|
-
|
|
107
|
-
return createPDWClient(
|
|
108
|
-
{ url: 'https://fullnode.testnet.sui.io' },
|
|
109
|
-
testnetConfig
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// ==================== SIMPLE PDW CLIENT ====================
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Create a Simple PDW Client (function-based API, no hooks)
|
|
117
|
-
*
|
|
118
|
-
* @param config - Simple client configuration
|
|
119
|
-
* @returns Initialized simple client
|
|
120
|
-
*
|
|
121
|
-
* @example
|
|
122
|
-
* ```typescript
|
|
123
|
-
* import { createSimplePDWClient } from 'personal-data-wallet-sdk';
|
|
124
|
-
*
|
|
125
|
-
* const pdw = await createSimplePDWClient({
|
|
126
|
-
* signer: keypair,
|
|
127
|
-
* network: 'testnet',
|
|
128
|
-
* geminiApiKey: process.env.GEMINI_API_KEY
|
|
129
|
-
* });
|
|
130
|
-
*
|
|
131
|
-
* await pdw.memory.create('I love TypeScript');
|
|
132
|
-
* const results = await pdw.search.vector('programming');
|
|
133
|
-
* ```
|
|
134
|
-
*/
|
|
135
|
-
export async function createSimplePDWClient(config: SimplePDWConfig): Promise<SimplePDWClient> {
|
|
136
|
-
const client = new SimplePDWClient(config);
|
|
137
|
-
await client.ready();
|
|
138
|
-
return client;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Create Simple PDW Client from Keypair
|
|
143
|
-
*
|
|
144
|
-
* Helper for Node.js environments
|
|
145
|
-
*/
|
|
146
|
-
export async function createSimplePDWClientFromKeypair(
|
|
147
|
-
keypair: Keypair,
|
|
148
|
-
config: Omit<SimplePDWConfig, 'signer' | 'userAddress'>
|
|
149
|
-
): Promise<SimplePDWClient> {
|
|
150
|
-
return createSimplePDWClient({
|
|
151
|
-
...config,
|
|
152
|
-
signer: keypair,
|
|
153
|
-
userAddress: keypair.getPublicKey().toSuiAddress()
|
|
154
|
-
});
|
|
1
|
+
/**
|
|
2
|
+
* Personal Data Wallet Client Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides convenience functions for creating PDW-enabled Sui clients
|
|
5
|
+
* following MystenLabs best practices for client extensions.
|
|
6
|
+
*
|
|
7
|
+
* Also includes Simple PDW Client for easy function-based API.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { SuiClient } from '@mysten/sui/client';
|
|
11
|
+
import type { PDWConfig } from '../types';
|
|
12
|
+
import { createDefaultConfig, createTestnetConfig } from '../config/defaults';
|
|
13
|
+
import { validateConfig, mergeConfigs } from '../config/validation';
|
|
14
|
+
import { PersonalDataWallet } from './PersonalDataWallet';
|
|
15
|
+
import { SimplePDWClient, type SimplePDWConfig } from './SimplePDWClient';
|
|
16
|
+
import type { Keypair } from '@mysten/sui/cryptography';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new SuiClient extended with Personal Data Wallet functionality
|
|
20
|
+
*
|
|
21
|
+
* @param suiClientConfig - Standard SuiClient configuration
|
|
22
|
+
* @param pdwConfig - PDW-specific configuration
|
|
23
|
+
* @returns Extended SuiClient with PDW capabilities
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const client = createPDWClient(
|
|
28
|
+
* { url: 'https://fullnode.devnet.sui.io' },
|
|
29
|
+
* {
|
|
30
|
+
* packageId: '0x123...'
|
|
31
|
+
* }
|
|
32
|
+
* );
|
|
33
|
+
*
|
|
34
|
+
* // Now use PDW functionality
|
|
35
|
+
* const memory = await client.pdw.createMemory({
|
|
36
|
+
* content: 'My first memory',
|
|
37
|
+
* category: 'personal',
|
|
38
|
+
* userAddress: '0x789...'
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function createPDWClient(
|
|
43
|
+
suiClientConfig: ConstructorParameters<typeof SuiClient>[0],
|
|
44
|
+
pdwConfig?: Partial<PDWConfig>
|
|
45
|
+
) {
|
|
46
|
+
const suiClient = new SuiClient(suiClientConfig);
|
|
47
|
+
const fullConfig = validateConfig(mergeConfigs(createDefaultConfig(), pdwConfig || {}));
|
|
48
|
+
|
|
49
|
+
return suiClient.$extend(PersonalDataWallet.asClientExtension(pdwConfig));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Extend an existing SuiClient with Personal Data Wallet functionality
|
|
54
|
+
*
|
|
55
|
+
* @param client - Existing SuiClient instance
|
|
56
|
+
* @param pdwConfig - PDW-specific configuration
|
|
57
|
+
* @returns Extended client with PDW capabilities
|
|
58
|
+
*/
|
|
59
|
+
export function extendWithPDW(
|
|
60
|
+
client: SuiClient,
|
|
61
|
+
pdwConfig?: Partial<PDWConfig>
|
|
62
|
+
) {
|
|
63
|
+
return client.$extend(PersonalDataWallet.asClientExtension(pdwConfig));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Create a PDW client with common development settings
|
|
68
|
+
*
|
|
69
|
+
* @param overrides - Any configuration overrides
|
|
70
|
+
* @returns Development-ready PDW client
|
|
71
|
+
*/
|
|
72
|
+
export function createDevPDWClient(overrides?: {
|
|
73
|
+
suiUrl?: string;
|
|
74
|
+
packageId?: string;
|
|
75
|
+
}) {
|
|
76
|
+
return createPDWClient(
|
|
77
|
+
{
|
|
78
|
+
url: overrides?.suiUrl || 'https://fullnode.devnet.sui.io',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
packageId: overrides?.packageId || '0x0',
|
|
82
|
+
encryptionConfig: {
|
|
83
|
+
enabled: true,
|
|
84
|
+
keyServers: ['0x0'], // Placeholder for development
|
|
85
|
+
policyConfig: {
|
|
86
|
+
threshold: 2,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
storageConfig: {
|
|
90
|
+
provider: 'walrus',
|
|
91
|
+
cacheEnabled: true,
|
|
92
|
+
encryptionEnabled: true,
|
|
93
|
+
},
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Create a PDW client configured for testnet
|
|
100
|
+
*
|
|
101
|
+
* @param overrides - Any configuration overrides
|
|
102
|
+
* @returns Testnet-ready PDW client
|
|
103
|
+
*/
|
|
104
|
+
export function createTestnetPDWClient(overrides?: Partial<PDWConfig>) {
|
|
105
|
+
const testnetConfig = createTestnetConfig(overrides);
|
|
106
|
+
|
|
107
|
+
return createPDWClient(
|
|
108
|
+
{ url: 'https://fullnode.testnet.sui.io' },
|
|
109
|
+
testnetConfig
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ==================== SIMPLE PDW CLIENT ====================
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Create a Simple PDW Client (function-based API, no hooks)
|
|
117
|
+
*
|
|
118
|
+
* @param config - Simple client configuration
|
|
119
|
+
* @returns Initialized simple client
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* import { createSimplePDWClient } from 'personal-data-wallet-sdk';
|
|
124
|
+
*
|
|
125
|
+
* const pdw = await createSimplePDWClient({
|
|
126
|
+
* signer: keypair,
|
|
127
|
+
* network: 'testnet',
|
|
128
|
+
* geminiApiKey: process.env.GEMINI_API_KEY
|
|
129
|
+
* });
|
|
130
|
+
*
|
|
131
|
+
* await pdw.memory.create('I love TypeScript');
|
|
132
|
+
* const results = await pdw.search.vector('programming');
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export async function createSimplePDWClient(config: SimplePDWConfig): Promise<SimplePDWClient> {
|
|
136
|
+
const client = new SimplePDWClient(config);
|
|
137
|
+
await client.ready();
|
|
138
|
+
return client;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Create Simple PDW Client from Keypair
|
|
143
|
+
*
|
|
144
|
+
* Helper for Node.js environments
|
|
145
|
+
*/
|
|
146
|
+
export async function createSimplePDWClientFromKeypair(
|
|
147
|
+
keypair: Keypair,
|
|
148
|
+
config: Omit<SimplePDWConfig, 'signer' | 'userAddress'>
|
|
149
|
+
): Promise<SimplePDWClient> {
|
|
150
|
+
return createSimplePDWClient({
|
|
151
|
+
...config,
|
|
152
|
+
signer: keypair,
|
|
153
|
+
userAddress: keypair.getPublicKey().toSuiAddress()
|
|
154
|
+
});
|
|
155
155
|
}
|