@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
|
@@ -1,297 +1,297 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability-Based Architecture Types for Personal Data Wallet SDK
|
|
3
|
-
*
|
|
4
|
-
* This module defines the TypeScript interfaces for the new capability-based
|
|
5
|
-
* access control system following SEAL PrivateData pattern.
|
|
6
|
-
*
|
|
7
|
-
* Key concepts:
|
|
8
|
-
* - MemoryCap: Capability object for app context access
|
|
9
|
-
* - Object ownership = access permission (SEAL idiomatic)
|
|
10
|
-
* - Transfer capability = share access
|
|
11
|
-
* - Burn capability = revoke access
|
|
12
|
-
*
|
|
13
|
-
* @see CAPABILITY-ARCHITECTURE-SUMMARY.md
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Memory capability object - core unit of access control
|
|
18
|
-
*
|
|
19
|
-
* Owns this object = can decrypt memories for this app context
|
|
20
|
-
* Can be transferred to share access with others
|
|
21
|
-
* Burn to permanently revoke access
|
|
22
|
-
*/
|
|
23
|
-
export interface MemoryCap {
|
|
24
|
-
/** Sui object ID of the capability */
|
|
25
|
-
id: string;
|
|
26
|
-
/** Random nonce for SEAL key derivation */
|
|
27
|
-
nonce: string;
|
|
28
|
-
/** Application context identifier (e.g., "MEMO", "HEALTH") */
|
|
29
|
-
appId: string;
|
|
30
|
-
/** Owner address (who can call seal_approve) */
|
|
31
|
-
owner: string;
|
|
32
|
-
/** Creation timestamp (epoch) */
|
|
33
|
-
createdAt?: number;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Options for creating a new MemoryCap
|
|
38
|
-
*/
|
|
39
|
-
export interface CreateMemoryCapOptions {
|
|
40
|
-
/** Application identifier (e.g., "MEMO", "HEALTH") */
|
|
41
|
-
appId: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Options for transferring a MemoryCap
|
|
46
|
-
*/
|
|
47
|
-
export interface TransferCapOptions {
|
|
48
|
-
/** Object ID of the capability to transfer */
|
|
49
|
-
capId: string;
|
|
50
|
-
/** Recipient address */
|
|
51
|
-
recipient: string;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Options for burning (revoking) a MemoryCap
|
|
56
|
-
*/
|
|
57
|
-
export interface BurnCapOptions {
|
|
58
|
-
/** Object ID of the capability to burn */
|
|
59
|
-
capId: string;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Options for SEAL approval
|
|
64
|
-
*/
|
|
65
|
-
export interface SealApproveOptions {
|
|
66
|
-
/** Reference to the MemoryCap object */
|
|
67
|
-
capId: string;
|
|
68
|
-
/** SEAL key ID to validate */
|
|
69
|
-
keyId: string;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Result of querying user's capabilities
|
|
74
|
-
*/
|
|
75
|
-
export interface MemoryCapList {
|
|
76
|
-
/** All capabilities owned by the user */
|
|
77
|
-
capabilities: MemoryCap[];
|
|
78
|
-
/** Total count */
|
|
79
|
-
count: number;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Options for filtering capabilities
|
|
84
|
-
*/
|
|
85
|
-
export interface ListCapsOptions {
|
|
86
|
-
/** Filter by specific app ID */
|
|
87
|
-
appId?: string;
|
|
88
|
-
/** User address (defaults to current signer) */
|
|
89
|
-
userAddress?: string;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Options for getting or creating a capability
|
|
94
|
-
*/
|
|
95
|
-
export interface GetOrCreateCapOptions {
|
|
96
|
-
/** Application identifier */
|
|
97
|
-
appId: string;
|
|
98
|
-
/** User address (defaults to current signer) */
|
|
99
|
-
userAddress?: string;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Event emitted when capability is created
|
|
104
|
-
*/
|
|
105
|
-
export interface MemoryCapCreatedEvent {
|
|
106
|
-
capId: string;
|
|
107
|
-
owner: string;
|
|
108
|
-
appId: string;
|
|
109
|
-
nonce: string;
|
|
110
|
-
createdAt: number;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Event emitted when capability is transferred
|
|
115
|
-
*/
|
|
116
|
-
export interface MemoryCapTransferredEvent {
|
|
117
|
-
capId: string;
|
|
118
|
-
from: string;
|
|
119
|
-
to: string;
|
|
120
|
-
appId: string;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Event emitted when capability is burned
|
|
125
|
-
*/
|
|
126
|
-
export interface MemoryCapBurnedEvent {
|
|
127
|
-
capId: string;
|
|
128
|
-
owner: string;
|
|
129
|
-
appId: string;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Options for computing SEAL key ID
|
|
134
|
-
*/
|
|
135
|
-
export interface ComputeKeyIdOptions {
|
|
136
|
-
/** Owner address */
|
|
137
|
-
owner: string;
|
|
138
|
-
/** Nonce from capability */
|
|
139
|
-
nonce: string;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Capability namespace for SimplePDWClient
|
|
144
|
-
* Provides methods for managing MemoryCap objects
|
|
145
|
-
*/
|
|
146
|
-
export interface CapabilityNamespace {
|
|
147
|
-
/**
|
|
148
|
-
* Create a new MemoryCap for an app context
|
|
149
|
-
* @param appId Application identifier
|
|
150
|
-
* @returns Created capability
|
|
151
|
-
*/
|
|
152
|
-
create(appId: string): Promise<MemoryCap>;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Get an existing capability by app ID
|
|
156
|
-
* @param appId Application identifier
|
|
157
|
-
* @returns Capability or null if not found
|
|
158
|
-
*/
|
|
159
|
-
get(appId: string): Promise<MemoryCap | null>;
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Get or create a capability for an app context
|
|
163
|
-
* @param appId Application identifier
|
|
164
|
-
* @returns Existing or newly created capability
|
|
165
|
-
*/
|
|
166
|
-
getOrCreate(appId: string): Promise<MemoryCap>;
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* List all capabilities owned by the user
|
|
170
|
-
* @param options Optional filter options
|
|
171
|
-
* @returns List of capabilities
|
|
172
|
-
*/
|
|
173
|
-
list(options?: ListCapsOptions): Promise<MemoryCap[]>;
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Transfer a capability to another address
|
|
177
|
-
* @param capId Capability object ID
|
|
178
|
-
* @param recipient Recipient address
|
|
179
|
-
*/
|
|
180
|
-
transfer(capId: string, recipient: string): Promise<void>;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Burn (revoke) a capability
|
|
184
|
-
* @param capId Capability object ID
|
|
185
|
-
*/
|
|
186
|
-
burn(capId: string): Promise<void>;
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Compute SEAL key ID for a capability
|
|
190
|
-
* @param cap Capability object
|
|
191
|
-
* @returns Key ID bytes as hex string
|
|
192
|
-
*/
|
|
193
|
-
computeKeyId(cap: MemoryCap): string;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Context namespace for SimplePDWClient
|
|
198
|
-
* Higher-level abstraction over capabilities
|
|
199
|
-
*/
|
|
200
|
-
export interface ContextNamespace {
|
|
201
|
-
/**
|
|
202
|
-
* Create a new context (creates MemoryCap)
|
|
203
|
-
* @param appId Application identifier
|
|
204
|
-
* @returns Created capability
|
|
205
|
-
*/
|
|
206
|
-
create(appId: string): Promise<MemoryCap>;
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Get context by app ID
|
|
210
|
-
* @param appId Application identifier
|
|
211
|
-
* @returns Capability or null
|
|
212
|
-
*/
|
|
213
|
-
get(appId: string): Promise<MemoryCap | null>;
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Get or create context
|
|
217
|
-
* @param appId Application identifier
|
|
218
|
-
* @returns Existing or new capability
|
|
219
|
-
*/
|
|
220
|
-
getOrCreate(appId: string): Promise<MemoryCap>;
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* List all contexts for user
|
|
224
|
-
* @returns List of capabilities
|
|
225
|
-
*/
|
|
226
|
-
list(): Promise<MemoryCap[]>;
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Delete a context (burns capability)
|
|
230
|
-
* @param appId Application identifier
|
|
231
|
-
*/
|
|
232
|
-
delete(appId: string): Promise<void>;
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Transfer context to another user
|
|
236
|
-
* @param appId Application identifier
|
|
237
|
-
* @param recipient Recipient address
|
|
238
|
-
*/
|
|
239
|
-
transfer(appId: string, recipient: string): Promise<void>;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Wallet namespace for SimplePDWClient
|
|
244
|
-
* Simplified wallet operations (no HD wallet complexity)
|
|
245
|
-
*/
|
|
246
|
-
export interface WalletNamespace {
|
|
247
|
-
/**
|
|
248
|
-
* Get current wallet address
|
|
249
|
-
* @returns Wallet address
|
|
250
|
-
*/
|
|
251
|
-
getAddress(): Promise<string>;
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Check if wallet is connected/ready
|
|
255
|
-
* @returns Connection status
|
|
256
|
-
*/
|
|
257
|
-
isConnected(): Promise<boolean>;
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* Get all owned objects of a specific type
|
|
261
|
-
* @param structType Move struct type
|
|
262
|
-
* @returns List of objects
|
|
263
|
-
*/
|
|
264
|
-
getOwnedObjects<T>(structType: string): Promise<T[]>;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* Memory creation options with capability
|
|
269
|
-
*/
|
|
270
|
-
export interface CreateMemoryWithCapOptions {
|
|
271
|
-
/** Capability to use for access control */
|
|
272
|
-
cap: MemoryCap;
|
|
273
|
-
/** Memory content */
|
|
274
|
-
content: string;
|
|
275
|
-
/** Memory category */
|
|
276
|
-
category: string;
|
|
277
|
-
/** Optional topic */
|
|
278
|
-
topic?: string;
|
|
279
|
-
/** Importance level 1-10 */
|
|
280
|
-
importance?: number;
|
|
281
|
-
/** Custom metadata */
|
|
282
|
-
customMetadata?: Record<string, string>;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Memory query options with context filtering
|
|
287
|
-
*/
|
|
288
|
-
export interface QueryMemoriesOptions {
|
|
289
|
-
/** User address */
|
|
290
|
-
userAddress: string;
|
|
291
|
-
/** Filter by app context (app_id) */
|
|
292
|
-
appId?: string;
|
|
293
|
-
/** Filter by category */
|
|
294
|
-
category?: string;
|
|
295
|
-
/** Maximum results */
|
|
296
|
-
limit?: number;
|
|
297
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Capability-Based Architecture Types for Personal Data Wallet SDK
|
|
3
|
+
*
|
|
4
|
+
* This module defines the TypeScript interfaces for the new capability-based
|
|
5
|
+
* access control system following SEAL PrivateData pattern.
|
|
6
|
+
*
|
|
7
|
+
* Key concepts:
|
|
8
|
+
* - MemoryCap: Capability object for app context access
|
|
9
|
+
* - Object ownership = access permission (SEAL idiomatic)
|
|
10
|
+
* - Transfer capability = share access
|
|
11
|
+
* - Burn capability = revoke access
|
|
12
|
+
*
|
|
13
|
+
* @see CAPABILITY-ARCHITECTURE-SUMMARY.md
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Memory capability object - core unit of access control
|
|
18
|
+
*
|
|
19
|
+
* Owns this object = can decrypt memories for this app context
|
|
20
|
+
* Can be transferred to share access with others
|
|
21
|
+
* Burn to permanently revoke access
|
|
22
|
+
*/
|
|
23
|
+
export interface MemoryCap {
|
|
24
|
+
/** Sui object ID of the capability */
|
|
25
|
+
id: string;
|
|
26
|
+
/** Random nonce for SEAL key derivation */
|
|
27
|
+
nonce: string;
|
|
28
|
+
/** Application context identifier (e.g., "MEMO", "HEALTH") */
|
|
29
|
+
appId: string;
|
|
30
|
+
/** Owner address (who can call seal_approve) */
|
|
31
|
+
owner: string;
|
|
32
|
+
/** Creation timestamp (epoch) */
|
|
33
|
+
createdAt?: number;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Options for creating a new MemoryCap
|
|
38
|
+
*/
|
|
39
|
+
export interface CreateMemoryCapOptions {
|
|
40
|
+
/** Application identifier (e.g., "MEMO", "HEALTH") */
|
|
41
|
+
appId: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Options for transferring a MemoryCap
|
|
46
|
+
*/
|
|
47
|
+
export interface TransferCapOptions {
|
|
48
|
+
/** Object ID of the capability to transfer */
|
|
49
|
+
capId: string;
|
|
50
|
+
/** Recipient address */
|
|
51
|
+
recipient: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Options for burning (revoking) a MemoryCap
|
|
56
|
+
*/
|
|
57
|
+
export interface BurnCapOptions {
|
|
58
|
+
/** Object ID of the capability to burn */
|
|
59
|
+
capId: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Options for SEAL approval
|
|
64
|
+
*/
|
|
65
|
+
export interface SealApproveOptions {
|
|
66
|
+
/** Reference to the MemoryCap object */
|
|
67
|
+
capId: string;
|
|
68
|
+
/** SEAL key ID to validate */
|
|
69
|
+
keyId: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Result of querying user's capabilities
|
|
74
|
+
*/
|
|
75
|
+
export interface MemoryCapList {
|
|
76
|
+
/** All capabilities owned by the user */
|
|
77
|
+
capabilities: MemoryCap[];
|
|
78
|
+
/** Total count */
|
|
79
|
+
count: number;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Options for filtering capabilities
|
|
84
|
+
*/
|
|
85
|
+
export interface ListCapsOptions {
|
|
86
|
+
/** Filter by specific app ID */
|
|
87
|
+
appId?: string;
|
|
88
|
+
/** User address (defaults to current signer) */
|
|
89
|
+
userAddress?: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Options for getting or creating a capability
|
|
94
|
+
*/
|
|
95
|
+
export interface GetOrCreateCapOptions {
|
|
96
|
+
/** Application identifier */
|
|
97
|
+
appId: string;
|
|
98
|
+
/** User address (defaults to current signer) */
|
|
99
|
+
userAddress?: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Event emitted when capability is created
|
|
104
|
+
*/
|
|
105
|
+
export interface MemoryCapCreatedEvent {
|
|
106
|
+
capId: string;
|
|
107
|
+
owner: string;
|
|
108
|
+
appId: string;
|
|
109
|
+
nonce: string;
|
|
110
|
+
createdAt: number;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Event emitted when capability is transferred
|
|
115
|
+
*/
|
|
116
|
+
export interface MemoryCapTransferredEvent {
|
|
117
|
+
capId: string;
|
|
118
|
+
from: string;
|
|
119
|
+
to: string;
|
|
120
|
+
appId: string;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Event emitted when capability is burned
|
|
125
|
+
*/
|
|
126
|
+
export interface MemoryCapBurnedEvent {
|
|
127
|
+
capId: string;
|
|
128
|
+
owner: string;
|
|
129
|
+
appId: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Options for computing SEAL key ID
|
|
134
|
+
*/
|
|
135
|
+
export interface ComputeKeyIdOptions {
|
|
136
|
+
/** Owner address */
|
|
137
|
+
owner: string;
|
|
138
|
+
/** Nonce from capability */
|
|
139
|
+
nonce: string;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Capability namespace for SimplePDWClient
|
|
144
|
+
* Provides methods for managing MemoryCap objects
|
|
145
|
+
*/
|
|
146
|
+
export interface CapabilityNamespace {
|
|
147
|
+
/**
|
|
148
|
+
* Create a new MemoryCap for an app context
|
|
149
|
+
* @param appId Application identifier
|
|
150
|
+
* @returns Created capability
|
|
151
|
+
*/
|
|
152
|
+
create(appId: string): Promise<MemoryCap>;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Get an existing capability by app ID
|
|
156
|
+
* @param appId Application identifier
|
|
157
|
+
* @returns Capability or null if not found
|
|
158
|
+
*/
|
|
159
|
+
get(appId: string): Promise<MemoryCap | null>;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Get or create a capability for an app context
|
|
163
|
+
* @param appId Application identifier
|
|
164
|
+
* @returns Existing or newly created capability
|
|
165
|
+
*/
|
|
166
|
+
getOrCreate(appId: string): Promise<MemoryCap>;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* List all capabilities owned by the user
|
|
170
|
+
* @param options Optional filter options
|
|
171
|
+
* @returns List of capabilities
|
|
172
|
+
*/
|
|
173
|
+
list(options?: ListCapsOptions): Promise<MemoryCap[]>;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Transfer a capability to another address
|
|
177
|
+
* @param capId Capability object ID
|
|
178
|
+
* @param recipient Recipient address
|
|
179
|
+
*/
|
|
180
|
+
transfer(capId: string, recipient: string): Promise<void>;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Burn (revoke) a capability
|
|
184
|
+
* @param capId Capability object ID
|
|
185
|
+
*/
|
|
186
|
+
burn(capId: string): Promise<void>;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Compute SEAL key ID for a capability
|
|
190
|
+
* @param cap Capability object
|
|
191
|
+
* @returns Key ID bytes as hex string
|
|
192
|
+
*/
|
|
193
|
+
computeKeyId(cap: MemoryCap): string;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Context namespace for SimplePDWClient
|
|
198
|
+
* Higher-level abstraction over capabilities
|
|
199
|
+
*/
|
|
200
|
+
export interface ContextNamespace {
|
|
201
|
+
/**
|
|
202
|
+
* Create a new context (creates MemoryCap)
|
|
203
|
+
* @param appId Application identifier
|
|
204
|
+
* @returns Created capability
|
|
205
|
+
*/
|
|
206
|
+
create(appId: string): Promise<MemoryCap>;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Get context by app ID
|
|
210
|
+
* @param appId Application identifier
|
|
211
|
+
* @returns Capability or null
|
|
212
|
+
*/
|
|
213
|
+
get(appId: string): Promise<MemoryCap | null>;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Get or create context
|
|
217
|
+
* @param appId Application identifier
|
|
218
|
+
* @returns Existing or new capability
|
|
219
|
+
*/
|
|
220
|
+
getOrCreate(appId: string): Promise<MemoryCap>;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* List all contexts for user
|
|
224
|
+
* @returns List of capabilities
|
|
225
|
+
*/
|
|
226
|
+
list(): Promise<MemoryCap[]>;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Delete a context (burns capability)
|
|
230
|
+
* @param appId Application identifier
|
|
231
|
+
*/
|
|
232
|
+
delete(appId: string): Promise<void>;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Transfer context to another user
|
|
236
|
+
* @param appId Application identifier
|
|
237
|
+
* @param recipient Recipient address
|
|
238
|
+
*/
|
|
239
|
+
transfer(appId: string, recipient: string): Promise<void>;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Wallet namespace for SimplePDWClient
|
|
244
|
+
* Simplified wallet operations (no HD wallet complexity)
|
|
245
|
+
*/
|
|
246
|
+
export interface WalletNamespace {
|
|
247
|
+
/**
|
|
248
|
+
* Get current wallet address
|
|
249
|
+
* @returns Wallet address
|
|
250
|
+
*/
|
|
251
|
+
getAddress(): Promise<string>;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Check if wallet is connected/ready
|
|
255
|
+
* @returns Connection status
|
|
256
|
+
*/
|
|
257
|
+
isConnected(): Promise<boolean>;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Get all owned objects of a specific type
|
|
261
|
+
* @param structType Move struct type
|
|
262
|
+
* @returns List of objects
|
|
263
|
+
*/
|
|
264
|
+
getOwnedObjects<T>(structType: string): Promise<T[]>;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Memory creation options with capability
|
|
269
|
+
*/
|
|
270
|
+
export interface CreateMemoryWithCapOptions {
|
|
271
|
+
/** Capability to use for access control */
|
|
272
|
+
cap: MemoryCap;
|
|
273
|
+
/** Memory content */
|
|
274
|
+
content: string;
|
|
275
|
+
/** Memory category */
|
|
276
|
+
category: string;
|
|
277
|
+
/** Optional topic */
|
|
278
|
+
topic?: string;
|
|
279
|
+
/** Importance level 1-10 */
|
|
280
|
+
importance?: number;
|
|
281
|
+
/** Custom metadata */
|
|
282
|
+
customMetadata?: Record<string, string>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Memory query options with context filtering
|
|
287
|
+
*/
|
|
288
|
+
export interface QueryMemoriesOptions {
|
|
289
|
+
/** User address */
|
|
290
|
+
userAddress: string;
|
|
291
|
+
/** Filter by app context (app_id) */
|
|
292
|
+
appId?: string;
|
|
293
|
+
/** Filter by category */
|
|
294
|
+
category?: string;
|
|
295
|
+
/** Maximum results */
|
|
296
|
+
limit?: number;
|
|
297
|
+
}
|