@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/core/wallet.ts
CHANGED
|
@@ -1,223 +1,223 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wallet Architecture Types for Personal Data Wallet SDK
|
|
3
|
-
*
|
|
4
|
-
* Defines the TypeScript interfaces for the wallet system including:
|
|
5
|
-
* - Main wallet (per user identity)
|
|
6
|
-
* - Context wallets (per app per user)
|
|
7
|
-
* - Access control and permissions
|
|
8
|
-
* - Cross-app consent and grants
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Main wallet represents a user's primary identity anchor
|
|
13
|
-
* Contains derivation salts and key management metadata
|
|
14
|
-
*/
|
|
15
|
-
export interface MainWallet {
|
|
16
|
-
/** Sui address of the wallet owner */
|
|
17
|
-
owner: string;
|
|
18
|
-
/** Unique identifier for this main wallet */
|
|
19
|
-
walletId: string;
|
|
20
|
-
/** Timestamp when wallet was created */
|
|
21
|
-
createdAt: number;
|
|
22
|
-
/** Cryptographic salts for key derivation */
|
|
23
|
-
salts: {
|
|
24
|
-
/** Salt used for deriving context IDs */
|
|
25
|
-
context: string;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Context wallet represents an app-scoped data container
|
|
31
|
-
* Provides isolation between different applications
|
|
32
|
-
*/
|
|
33
|
-
export interface ContextWallet {
|
|
34
|
-
/** Unique context identifier (derived from user + app + salt) */
|
|
35
|
-
id: string;
|
|
36
|
-
/** Application ID that owns this context */
|
|
37
|
-
appId: string;
|
|
38
|
-
/** Sui address of the wallet owner */
|
|
39
|
-
owner: string;
|
|
40
|
-
/** Optional reference to access control policy */
|
|
41
|
-
policyRef?: string;
|
|
42
|
-
/** Timestamp when context was created */
|
|
43
|
-
createdAt: number;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Request for user consent to access data across contexts
|
|
48
|
-
* Used in OAuth-style permission flow
|
|
49
|
-
*/
|
|
50
|
-
export interface ConsentRequest {
|
|
51
|
-
/** Wallet requesting access */
|
|
52
|
-
requesterWallet: string;
|
|
53
|
-
/** Target wallet that owns the data */
|
|
54
|
-
targetWallet: string;
|
|
55
|
-
/** Specific permission scopes being requested */
|
|
56
|
-
targetScopes: PermissionScope[];
|
|
57
|
-
/** Human-readable purpose for the access request */
|
|
58
|
-
purpose: string;
|
|
59
|
-
/** Optional expiration timestamp for the request */
|
|
60
|
-
expiresAt?: number;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Granted access permission from user to app
|
|
65
|
-
* Stored on-chain and mirrored in Walrus for quick lookups
|
|
66
|
-
*/
|
|
67
|
-
export interface AccessGrant {
|
|
68
|
-
/** Unique grant identifier */
|
|
69
|
-
id: string;
|
|
70
|
-
/** Wallet requesting access (grantee) */
|
|
71
|
-
requestingWallet: string;
|
|
72
|
-
/** Target wallet that grants access */
|
|
73
|
-
targetWallet: string;
|
|
74
|
-
/** Specific permission scopes granted */
|
|
75
|
-
scopes: PermissionScope[];
|
|
76
|
-
/** Expiration timestamp for this grant */
|
|
77
|
-
expiresAt?: number;
|
|
78
|
-
/** Timestamp when grant was issued */
|
|
79
|
-
grantedAt: number;
|
|
80
|
-
/** Optional transaction digest once executed on-chain */
|
|
81
|
-
transactionDigest?: string;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Options for creating a new main wallet
|
|
86
|
-
*/
|
|
87
|
-
export interface CreateMainWalletOptions {
|
|
88
|
-
/** User's Sui address */
|
|
89
|
-
userAddress: string;
|
|
90
|
-
/** Optional custom salts (will be generated if not provided) */
|
|
91
|
-
salts?: {
|
|
92
|
-
context?: string;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Options for creating a new context wallet
|
|
98
|
-
*/
|
|
99
|
-
export interface CreateContextWalletOptions {
|
|
100
|
-
/** Application identifier */
|
|
101
|
-
appId: string;
|
|
102
|
-
/** Optional policy reference for access control */
|
|
103
|
-
policyRef?: string;
|
|
104
|
-
/** Optional metadata for the context */
|
|
105
|
-
metadata?: Record<string, any>;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Options for deriving a context ID
|
|
110
|
-
*/
|
|
111
|
-
export interface DeriveContextIdOptions {
|
|
112
|
-
/** User's Sui address */
|
|
113
|
-
userAddress: string;
|
|
114
|
-
/** Application identifier */
|
|
115
|
-
appId: string;
|
|
116
|
-
/** Optional custom salt (uses main wallet salt if not provided) */
|
|
117
|
-
salt?: string;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Options for key rotation
|
|
122
|
-
*/
|
|
123
|
-
export interface RotateKeysOptions {
|
|
124
|
-
/** User's Sui address */
|
|
125
|
-
userAddress: string;
|
|
126
|
-
/** Optional TTL for new session key in minutes */
|
|
127
|
-
sessionKeyTtlMin?: number;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Result of key rotation operation
|
|
132
|
-
*/
|
|
133
|
-
export interface RotateKeysResult {
|
|
134
|
-
/** New session key identifier */
|
|
135
|
-
sessionKeyId: string;
|
|
136
|
-
/** Expiration timestamp for the new session key */
|
|
137
|
-
expiresAt: number;
|
|
138
|
-
/** Whether backup key was also rotated */
|
|
139
|
-
backupKeyRotated: boolean;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Permission scope constants for OAuth-style access control
|
|
144
|
-
*/
|
|
145
|
-
export const PermissionScopes = {
|
|
146
|
-
/** Can decrypt and read user's memory data */
|
|
147
|
-
READ_MEMORIES: 'read:memories',
|
|
148
|
-
/** Can create/modify memory entries */
|
|
149
|
-
WRITE_MEMORIES: 'write:memories',
|
|
150
|
-
/** Can access user settings/preferences */
|
|
151
|
-
READ_PREFERENCES: 'read:preferences',
|
|
152
|
-
/** Can modify user settings */
|
|
153
|
-
WRITE_PREFERENCES: 'write:preferences',
|
|
154
|
-
/** Can list user's app contexts */
|
|
155
|
-
READ_CONTEXTS: 'read:contexts',
|
|
156
|
-
/** Can create new contexts for user */
|
|
157
|
-
WRITE_CONTEXTS: 'write:contexts',
|
|
158
|
-
} as const;
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Type for permission scope values
|
|
162
|
-
*/
|
|
163
|
-
export type PermissionScope = typeof PermissionScopes[keyof typeof PermissionScopes];
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Options for requesting consent
|
|
167
|
-
*/
|
|
168
|
-
export interface RequestConsentOptions {
|
|
169
|
-
/** Wallet requesting access */
|
|
170
|
-
requesterWallet: string;
|
|
171
|
-
/** Target wallet that owns the data */
|
|
172
|
-
targetWallet: string;
|
|
173
|
-
/** Permission scopes being requested */
|
|
174
|
-
scopes: PermissionScope[];
|
|
175
|
-
/** Human-readable purpose */
|
|
176
|
-
purpose: string;
|
|
177
|
-
/** Optional expiration in milliseconds from now */
|
|
178
|
-
expiresIn?: number;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Options for granting permissions
|
|
183
|
-
*/
|
|
184
|
-
export interface GrantPermissionsOptions {
|
|
185
|
-
/** Wallet requesting access (grantee) */
|
|
186
|
-
requestingWallet: string;
|
|
187
|
-
/** Target wallet that owns the data */
|
|
188
|
-
targetWallet: string;
|
|
189
|
-
/** Permission scopes to grant */
|
|
190
|
-
scopes: PermissionScope[];
|
|
191
|
-
/** Optional expiration timestamp */
|
|
192
|
-
expiresAt?: number;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Options for revoking permissions
|
|
197
|
-
*/
|
|
198
|
-
export interface RevokePermissionsOptions {
|
|
199
|
-
/** Wallet requesting access */
|
|
200
|
-
requestingWallet: string;
|
|
201
|
-
/** Target wallet that granted access */
|
|
202
|
-
targetWallet: string;
|
|
203
|
-
/** Optional scope to revoke */
|
|
204
|
-
scope?: PermissionScope;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Options for aggregated queries across contexts
|
|
209
|
-
*/
|
|
210
|
-
export interface AggregatedQueryOptions {
|
|
211
|
-
/** Wallet requesting the aggregated query */
|
|
212
|
-
requestingWallet: string;
|
|
213
|
-
/** User address for permission validation */
|
|
214
|
-
userAddress: string;
|
|
215
|
-
/** Optional list of target wallets to include */
|
|
216
|
-
targetWallets?: string[];
|
|
217
|
-
/** Search query */
|
|
218
|
-
query: string;
|
|
219
|
-
/** Required permission scope */
|
|
220
|
-
scope: PermissionScope;
|
|
221
|
-
/** Optional result limit */
|
|
222
|
-
limit?: number;
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Architecture Types for Personal Data Wallet SDK
|
|
3
|
+
*
|
|
4
|
+
* Defines the TypeScript interfaces for the wallet system including:
|
|
5
|
+
* - Main wallet (per user identity)
|
|
6
|
+
* - Context wallets (per app per user)
|
|
7
|
+
* - Access control and permissions
|
|
8
|
+
* - Cross-app consent and grants
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Main wallet represents a user's primary identity anchor
|
|
13
|
+
* Contains derivation salts and key management metadata
|
|
14
|
+
*/
|
|
15
|
+
export interface MainWallet {
|
|
16
|
+
/** Sui address of the wallet owner */
|
|
17
|
+
owner: string;
|
|
18
|
+
/** Unique identifier for this main wallet */
|
|
19
|
+
walletId: string;
|
|
20
|
+
/** Timestamp when wallet was created */
|
|
21
|
+
createdAt: number;
|
|
22
|
+
/** Cryptographic salts for key derivation */
|
|
23
|
+
salts: {
|
|
24
|
+
/** Salt used for deriving context IDs */
|
|
25
|
+
context: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Context wallet represents an app-scoped data container
|
|
31
|
+
* Provides isolation between different applications
|
|
32
|
+
*/
|
|
33
|
+
export interface ContextWallet {
|
|
34
|
+
/** Unique context identifier (derived from user + app + salt) */
|
|
35
|
+
id: string;
|
|
36
|
+
/** Application ID that owns this context */
|
|
37
|
+
appId: string;
|
|
38
|
+
/** Sui address of the wallet owner */
|
|
39
|
+
owner: string;
|
|
40
|
+
/** Optional reference to access control policy */
|
|
41
|
+
policyRef?: string;
|
|
42
|
+
/** Timestamp when context was created */
|
|
43
|
+
createdAt: number;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Request for user consent to access data across contexts
|
|
48
|
+
* Used in OAuth-style permission flow
|
|
49
|
+
*/
|
|
50
|
+
export interface ConsentRequest {
|
|
51
|
+
/** Wallet requesting access */
|
|
52
|
+
requesterWallet: string;
|
|
53
|
+
/** Target wallet that owns the data */
|
|
54
|
+
targetWallet: string;
|
|
55
|
+
/** Specific permission scopes being requested */
|
|
56
|
+
targetScopes: PermissionScope[];
|
|
57
|
+
/** Human-readable purpose for the access request */
|
|
58
|
+
purpose: string;
|
|
59
|
+
/** Optional expiration timestamp for the request */
|
|
60
|
+
expiresAt?: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Granted access permission from user to app
|
|
65
|
+
* Stored on-chain and mirrored in Walrus for quick lookups
|
|
66
|
+
*/
|
|
67
|
+
export interface AccessGrant {
|
|
68
|
+
/** Unique grant identifier */
|
|
69
|
+
id: string;
|
|
70
|
+
/** Wallet requesting access (grantee) */
|
|
71
|
+
requestingWallet: string;
|
|
72
|
+
/** Target wallet that grants access */
|
|
73
|
+
targetWallet: string;
|
|
74
|
+
/** Specific permission scopes granted */
|
|
75
|
+
scopes: PermissionScope[];
|
|
76
|
+
/** Expiration timestamp for this grant */
|
|
77
|
+
expiresAt?: number;
|
|
78
|
+
/** Timestamp when grant was issued */
|
|
79
|
+
grantedAt: number;
|
|
80
|
+
/** Optional transaction digest once executed on-chain */
|
|
81
|
+
transactionDigest?: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Options for creating a new main wallet
|
|
86
|
+
*/
|
|
87
|
+
export interface CreateMainWalletOptions {
|
|
88
|
+
/** User's Sui address */
|
|
89
|
+
userAddress: string;
|
|
90
|
+
/** Optional custom salts (will be generated if not provided) */
|
|
91
|
+
salts?: {
|
|
92
|
+
context?: string;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Options for creating a new context wallet
|
|
98
|
+
*/
|
|
99
|
+
export interface CreateContextWalletOptions {
|
|
100
|
+
/** Application identifier */
|
|
101
|
+
appId: string;
|
|
102
|
+
/** Optional policy reference for access control */
|
|
103
|
+
policyRef?: string;
|
|
104
|
+
/** Optional metadata for the context */
|
|
105
|
+
metadata?: Record<string, any>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Options for deriving a context ID
|
|
110
|
+
*/
|
|
111
|
+
export interface DeriveContextIdOptions {
|
|
112
|
+
/** User's Sui address */
|
|
113
|
+
userAddress: string;
|
|
114
|
+
/** Application identifier */
|
|
115
|
+
appId: string;
|
|
116
|
+
/** Optional custom salt (uses main wallet salt if not provided) */
|
|
117
|
+
salt?: string;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Options for key rotation
|
|
122
|
+
*/
|
|
123
|
+
export interface RotateKeysOptions {
|
|
124
|
+
/** User's Sui address */
|
|
125
|
+
userAddress: string;
|
|
126
|
+
/** Optional TTL for new session key in minutes */
|
|
127
|
+
sessionKeyTtlMin?: number;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Result of key rotation operation
|
|
132
|
+
*/
|
|
133
|
+
export interface RotateKeysResult {
|
|
134
|
+
/** New session key identifier */
|
|
135
|
+
sessionKeyId: string;
|
|
136
|
+
/** Expiration timestamp for the new session key */
|
|
137
|
+
expiresAt: number;
|
|
138
|
+
/** Whether backup key was also rotated */
|
|
139
|
+
backupKeyRotated: boolean;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Permission scope constants for OAuth-style access control
|
|
144
|
+
*/
|
|
145
|
+
export const PermissionScopes = {
|
|
146
|
+
/** Can decrypt and read user's memory data */
|
|
147
|
+
READ_MEMORIES: 'read:memories',
|
|
148
|
+
/** Can create/modify memory entries */
|
|
149
|
+
WRITE_MEMORIES: 'write:memories',
|
|
150
|
+
/** Can access user settings/preferences */
|
|
151
|
+
READ_PREFERENCES: 'read:preferences',
|
|
152
|
+
/** Can modify user settings */
|
|
153
|
+
WRITE_PREFERENCES: 'write:preferences',
|
|
154
|
+
/** Can list user's app contexts */
|
|
155
|
+
READ_CONTEXTS: 'read:contexts',
|
|
156
|
+
/** Can create new contexts for user */
|
|
157
|
+
WRITE_CONTEXTS: 'write:contexts',
|
|
158
|
+
} as const;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Type for permission scope values
|
|
162
|
+
*/
|
|
163
|
+
export type PermissionScope = typeof PermissionScopes[keyof typeof PermissionScopes];
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Options for requesting consent
|
|
167
|
+
*/
|
|
168
|
+
export interface RequestConsentOptions {
|
|
169
|
+
/** Wallet requesting access */
|
|
170
|
+
requesterWallet: string;
|
|
171
|
+
/** Target wallet that owns the data */
|
|
172
|
+
targetWallet: string;
|
|
173
|
+
/** Permission scopes being requested */
|
|
174
|
+
scopes: PermissionScope[];
|
|
175
|
+
/** Human-readable purpose */
|
|
176
|
+
purpose: string;
|
|
177
|
+
/** Optional expiration in milliseconds from now */
|
|
178
|
+
expiresIn?: number;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Options for granting permissions
|
|
183
|
+
*/
|
|
184
|
+
export interface GrantPermissionsOptions {
|
|
185
|
+
/** Wallet requesting access (grantee) */
|
|
186
|
+
requestingWallet: string;
|
|
187
|
+
/** Target wallet that owns the data */
|
|
188
|
+
targetWallet: string;
|
|
189
|
+
/** Permission scopes to grant */
|
|
190
|
+
scopes: PermissionScope[];
|
|
191
|
+
/** Optional expiration timestamp */
|
|
192
|
+
expiresAt?: number;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Options for revoking permissions
|
|
197
|
+
*/
|
|
198
|
+
export interface RevokePermissionsOptions {
|
|
199
|
+
/** Wallet requesting access */
|
|
200
|
+
requestingWallet: string;
|
|
201
|
+
/** Target wallet that granted access */
|
|
202
|
+
targetWallet: string;
|
|
203
|
+
/** Optional scope to revoke */
|
|
204
|
+
scope?: PermissionScope;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Options for aggregated queries across contexts
|
|
209
|
+
*/
|
|
210
|
+
export interface AggregatedQueryOptions {
|
|
211
|
+
/** Wallet requesting the aggregated query */
|
|
212
|
+
requestingWallet: string;
|
|
213
|
+
/** User address for permission validation */
|
|
214
|
+
userAddress: string;
|
|
215
|
+
/** Optional list of target wallets to include */
|
|
216
|
+
targetWallets?: string[];
|
|
217
|
+
/** Search query */
|
|
218
|
+
query: string;
|
|
219
|
+
/** Required permission scope */
|
|
220
|
+
scope: PermissionScope;
|
|
221
|
+
/** Optional result limit */
|
|
222
|
+
limit?: number;
|
|
223
223
|
}
|
package/src/embedding/index.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding Module
|
|
3
|
-
*
|
|
4
|
-
* AI-powered embedding generation with Google Gemini API integration,
|
|
5
|
-
* batch processing, rate limiting, and comprehensive error handling.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export { EmbeddingService } from '../services/EmbeddingService';
|
|
9
|
-
|
|
10
|
-
export type {
|
|
11
|
-
VectorEmbedding,
|
|
12
|
-
EmbeddingConfig,
|
|
13
|
-
EmbeddingOptions,
|
|
14
|
-
EmbeddingResult,
|
|
15
|
-
BatchEmbeddingResult,
|
|
16
|
-
Memory,
|
|
17
|
-
ProcessedMemory,
|
|
18
|
-
MemoryPipelineConfig,
|
|
19
|
-
MemoryPipelineResult
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Module
|
|
3
|
+
*
|
|
4
|
+
* AI-powered embedding generation with Google Gemini API integration,
|
|
5
|
+
* batch processing, rate limiting, and comprehensive error handling.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export { EmbeddingService } from '../services/EmbeddingService';
|
|
9
|
+
|
|
10
|
+
export type {
|
|
11
|
+
VectorEmbedding,
|
|
12
|
+
EmbeddingConfig,
|
|
13
|
+
EmbeddingOptions,
|
|
14
|
+
EmbeddingResult,
|
|
15
|
+
BatchEmbeddingResult,
|
|
16
|
+
Memory,
|
|
17
|
+
ProcessedMemory,
|
|
18
|
+
MemoryPipelineConfig,
|
|
19
|
+
MemoryPipelineResult
|
|
20
20
|
} from './types';
|