@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/ai-sdk/types.ts
CHANGED
|
@@ -1,404 +1,404 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AI SDK Integration Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the PDW Vector Store adapter designed for
|
|
5
|
-
* seamless integration with Vercel AI SDK and other AI frameworks.
|
|
6
|
-
*
|
|
7
|
-
* Provides a familiar API similar to Pinecone/Chroma while leveraging
|
|
8
|
-
* PDW's full capabilities: Walrus storage, Sui blockchain, knowledge graphs,
|
|
9
|
-
* and optional SEAL encryption.
|
|
10
|
-
*
|
|
11
|
-
* @module ai-sdk/types
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type { SuiClient } from '@mysten/sui/client';
|
|
15
|
-
import type { UnifiedSigner } from '../client/signers/UnifiedSigner';
|
|
16
|
-
import type { SealService } from '../infrastructure/seal/SealService';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Configuration for initializing PDWVectorStore
|
|
20
|
-
*/
|
|
21
|
-
export interface PDWVectorStoreConfig {
|
|
22
|
-
/**
|
|
23
|
-
* Walrus storage configuration
|
|
24
|
-
*/
|
|
25
|
-
walrus: {
|
|
26
|
-
/** Walrus aggregator URL for reading blobs */
|
|
27
|
-
aggregator: string;
|
|
28
|
-
/** Walrus publisher URL for writing blobs (optional, defaults to aggregator) */
|
|
29
|
-
publisher?: string;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Sui blockchain configuration
|
|
34
|
-
*/
|
|
35
|
-
sui: {
|
|
36
|
-
/** Network to use: 'testnet', 'mainnet', or 'devnet' */
|
|
37
|
-
network: 'testnet' | 'mainnet' | 'devnet';
|
|
38
|
-
/** PDW package ID deployed on Sui */
|
|
39
|
-
packageId: string;
|
|
40
|
-
/** Optional: Pre-configured SuiClient (created automatically if not provided) */
|
|
41
|
-
client?: SuiClient;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* User identity and signing
|
|
46
|
-
*/
|
|
47
|
-
signer: UnifiedSigner;
|
|
48
|
-
userAddress: string;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Vector configuration
|
|
52
|
-
*/
|
|
53
|
-
dimensions: number;
|
|
54
|
-
distanceMetric?: 'cosine' | 'euclidean' | 'ip';
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Optional features
|
|
58
|
-
*/
|
|
59
|
-
features?: {
|
|
60
|
-
/** Enable SEAL encryption for stored content (default: false) */
|
|
61
|
-
encryption?: boolean;
|
|
62
|
-
/** Automatically extract knowledge graphs from text (default: true) */
|
|
63
|
-
extractKnowledgeGraph?: boolean;
|
|
64
|
-
/** Enable batch processing for better performance (default: true) */
|
|
65
|
-
enableBatching?: boolean;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Optional: SEAL encryption service (required if features.encryption = true)
|
|
70
|
-
*/
|
|
71
|
-
sealService?: SealService;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Optional: Gemini API key for knowledge graph extraction
|
|
75
|
-
* (required if features.extractKnowledgeGraph = true)
|
|
76
|
-
*/
|
|
77
|
-
geminiApiKey?: string;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Storage configuration
|
|
81
|
-
*/
|
|
82
|
-
storage?: {
|
|
83
|
-
/** Number of epochs to store data on Walrus (default: 3) */
|
|
84
|
-
epochs?: number;
|
|
85
|
-
/** Enable deletable blobs (default: true) */
|
|
86
|
-
deletable?: boolean;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Index configuration
|
|
91
|
-
*/
|
|
92
|
-
index?: {
|
|
93
|
-
/** HNSW ef construction parameter (default: 200) */
|
|
94
|
-
efConstruction?: number;
|
|
95
|
-
/** HNSW M parameter (default: 16) */
|
|
96
|
-
M?: number;
|
|
97
|
-
/** Max elements in index (default: 10000) */
|
|
98
|
-
maxElements?: number;
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Parameters for adding a vector to the store
|
|
104
|
-
*/
|
|
105
|
-
export interface AddVectorParams {
|
|
106
|
-
/** Unique identifier for this vector/document */
|
|
107
|
-
id: string;
|
|
108
|
-
|
|
109
|
-
/** The embedding vector (from AI SDK or any embedding provider) */
|
|
110
|
-
vector: number[];
|
|
111
|
-
|
|
112
|
-
/** Original text content that was embedded */
|
|
113
|
-
text: string;
|
|
114
|
-
|
|
115
|
-
/** Optional metadata for filtering and retrieval */
|
|
116
|
-
metadata?: Record<string, any>;
|
|
117
|
-
|
|
118
|
-
/** Optional: Category for organization (default: 'general') */
|
|
119
|
-
category?: string;
|
|
120
|
-
|
|
121
|
-
/** Optional: Importance score 1-10 (default: 5) */
|
|
122
|
-
importance?: number;
|
|
123
|
-
|
|
124
|
-
/** Optional: Topic/tag for grouping */
|
|
125
|
-
topic?: string;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Batch add parameters for multiple vectors
|
|
130
|
-
*/
|
|
131
|
-
export interface AddVectorBatchParams {
|
|
132
|
-
vectors: AddVectorParams[];
|
|
133
|
-
|
|
134
|
-
/** Optional: Progress callback for batch operations */
|
|
135
|
-
onProgress?: (progress: {
|
|
136
|
-
current: number;
|
|
137
|
-
total: number;
|
|
138
|
-
stage: 'uploading' | 'indexing' | 'blockchain';
|
|
139
|
-
message: string;
|
|
140
|
-
}) => void;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Parameters for searching vectors
|
|
145
|
-
*/
|
|
146
|
-
export interface SearchParams {
|
|
147
|
-
/** Query embedding vector */
|
|
148
|
-
vector: number[];
|
|
149
|
-
|
|
150
|
-
/** Number of results to return (default: 5) */
|
|
151
|
-
limit?: number;
|
|
152
|
-
|
|
153
|
-
/** Metadata filters (AND logic) */
|
|
154
|
-
filters?: {
|
|
155
|
-
category?: string | string[];
|
|
156
|
-
topic?: string | string[];
|
|
157
|
-
importance?: { min?: number; max?: number };
|
|
158
|
-
tags?: string[];
|
|
159
|
-
[key: string]: any;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
/** Minimum similarity score (0-1, default: 0) */
|
|
163
|
-
minScore?: number;
|
|
164
|
-
|
|
165
|
-
/** Include related entities from knowledge graph (default: false) */
|
|
166
|
-
includeGraph?: boolean;
|
|
167
|
-
|
|
168
|
-
/** Include full text content in results (default: true) */
|
|
169
|
-
includeContent?: boolean;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Search result item
|
|
174
|
-
*/
|
|
175
|
-
export interface SearchResult {
|
|
176
|
-
/** Document ID */
|
|
177
|
-
id: string;
|
|
178
|
-
|
|
179
|
-
/** Original text content (if includeContent = true) */
|
|
180
|
-
text: string;
|
|
181
|
-
|
|
182
|
-
/** Metadata associated with this vector */
|
|
183
|
-
metadata: Record<string, any>;
|
|
184
|
-
|
|
185
|
-
/** Similarity score (0-1, higher is more similar) */
|
|
186
|
-
score: number;
|
|
187
|
-
|
|
188
|
-
/** Distance from query vector (lower is more similar) */
|
|
189
|
-
distance: number;
|
|
190
|
-
|
|
191
|
-
/** Walrus blob ID for the stored content */
|
|
192
|
-
blobId: string;
|
|
193
|
-
|
|
194
|
-
/** Sui transaction digest for blockchain record */
|
|
195
|
-
txDigest?: string;
|
|
196
|
-
|
|
197
|
-
/** Related entities from knowledge graph (if includeGraph = true) */
|
|
198
|
-
relatedEntities?: Array<{
|
|
199
|
-
id: string;
|
|
200
|
-
name: string;
|
|
201
|
-
type: string;
|
|
202
|
-
confidence: number;
|
|
203
|
-
}>;
|
|
204
|
-
|
|
205
|
-
/** Related relationships (if includeGraph = true) */
|
|
206
|
-
relatedRelationships?: Array<{
|
|
207
|
-
source: string;
|
|
208
|
-
target: string;
|
|
209
|
-
type: string;
|
|
210
|
-
confidence: number;
|
|
211
|
-
}>;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Result from adding a vector
|
|
216
|
-
*/
|
|
217
|
-
export interface AddVectorResult {
|
|
218
|
-
/** Document ID */
|
|
219
|
-
id: string;
|
|
220
|
-
|
|
221
|
-
/** Walrus blob ID */
|
|
222
|
-
blobId: string;
|
|
223
|
-
|
|
224
|
-
/** Sui transaction digest */
|
|
225
|
-
txDigest: string;
|
|
226
|
-
|
|
227
|
-
/** Vector ID in HNSW index */
|
|
228
|
-
vectorId: number;
|
|
229
|
-
|
|
230
|
-
/** Whether knowledge graph was extracted */
|
|
231
|
-
graphExtracted: boolean;
|
|
232
|
-
|
|
233
|
-
/** Whether content was encrypted */
|
|
234
|
-
encrypted: boolean;
|
|
235
|
-
|
|
236
|
-
/** Upload time in milliseconds */
|
|
237
|
-
uploadTimeMs: number;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Result from batch add operation
|
|
242
|
-
*/
|
|
243
|
-
export interface AddVectorBatchResult {
|
|
244
|
-
/** Successfully added vectors */
|
|
245
|
-
successful: AddVectorResult[];
|
|
246
|
-
|
|
247
|
-
/** Failed vectors with error messages */
|
|
248
|
-
failed: Array<{
|
|
249
|
-
id: string;
|
|
250
|
-
error: string;
|
|
251
|
-
}>;
|
|
252
|
-
|
|
253
|
-
/** Total processing time in milliseconds */
|
|
254
|
-
totalTimeMs: number;
|
|
255
|
-
|
|
256
|
-
/** Quilt ID if batch was uploaded as a Walrus Quilt */
|
|
257
|
-
quiltId?: string;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Parameters for retrieving a vector by ID
|
|
262
|
-
*/
|
|
263
|
-
export interface GetVectorParams {
|
|
264
|
-
/** Document ID to retrieve */
|
|
265
|
-
id: string;
|
|
266
|
-
|
|
267
|
-
/** Include full text content (default: true) */
|
|
268
|
-
includeContent?: boolean;
|
|
269
|
-
|
|
270
|
-
/** Include knowledge graph data (default: false) */
|
|
271
|
-
includeGraph?: boolean;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Result from getting a vector by ID
|
|
276
|
-
*/
|
|
277
|
-
export interface GetVectorResult {
|
|
278
|
-
/** Document ID */
|
|
279
|
-
id: string;
|
|
280
|
-
|
|
281
|
-
/** The embedding vector */
|
|
282
|
-
vector: number[];
|
|
283
|
-
|
|
284
|
-
/** Original text content */
|
|
285
|
-
text: string;
|
|
286
|
-
|
|
287
|
-
/** Metadata */
|
|
288
|
-
metadata: Record<string, any>;
|
|
289
|
-
|
|
290
|
-
/** Walrus blob ID */
|
|
291
|
-
blobId: string;
|
|
292
|
-
|
|
293
|
-
/** Knowledge graph data (if includeGraph = true) */
|
|
294
|
-
graph?: {
|
|
295
|
-
entities: Array<{
|
|
296
|
-
id: string;
|
|
297
|
-
name: string;
|
|
298
|
-
type: string;
|
|
299
|
-
confidence: number;
|
|
300
|
-
}>;
|
|
301
|
-
relationships: Array<{
|
|
302
|
-
source: string;
|
|
303
|
-
target: string;
|
|
304
|
-
type: string;
|
|
305
|
-
confidence: number;
|
|
306
|
-
}>;
|
|
307
|
-
};
|
|
308
|
-
|
|
309
|
-
/** Whether content is encrypted */
|
|
310
|
-
encrypted: boolean;
|
|
311
|
-
|
|
312
|
-
/** Timestamp when created */
|
|
313
|
-
createdAt: number;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Parameters for deleting vectors
|
|
318
|
-
*/
|
|
319
|
-
export interface DeleteVectorParams {
|
|
320
|
-
/** Document IDs to delete */
|
|
321
|
-
ids: string[];
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Result from delete operation
|
|
326
|
-
*/
|
|
327
|
-
export interface DeleteVectorResult {
|
|
328
|
-
/** Successfully deleted IDs */
|
|
329
|
-
deleted: string[];
|
|
330
|
-
|
|
331
|
-
/** Failed deletions with error messages */
|
|
332
|
-
failed: Array<{
|
|
333
|
-
id: string;
|
|
334
|
-
error: string;
|
|
335
|
-
}>;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Statistics about the vector store
|
|
340
|
-
*/
|
|
341
|
-
export interface VectorStoreStats {
|
|
342
|
-
/** Total number of vectors stored */
|
|
343
|
-
totalVectors: number;
|
|
344
|
-
|
|
345
|
-
/** Total storage used in bytes */
|
|
346
|
-
storageBytes: number;
|
|
347
|
-
|
|
348
|
-
/** Number of blockchain transactions */
|
|
349
|
-
blockchainTxCount: number;
|
|
350
|
-
|
|
351
|
-
/** Knowledge graph statistics */
|
|
352
|
-
graph?: {
|
|
353
|
-
totalEntities: number;
|
|
354
|
-
totalRelationships: number;
|
|
355
|
-
entityTypes: Record<string, number>;
|
|
356
|
-
relationshipTypes: Record<string, number>;
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
/** Index statistics */
|
|
360
|
-
index: {
|
|
361
|
-
dimensions: number;
|
|
362
|
-
distanceMetric: string;
|
|
363
|
-
indexSize: number;
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
/**
|
|
368
|
-
* Progress callback for long-running operations
|
|
369
|
-
*/
|
|
370
|
-
export interface ProgressCallback {
|
|
371
|
-
(progress: {
|
|
372
|
-
stage: 'embedding' | 'encrypting' | 'uploading' | 'blockchain' | 'indexing' | 'graph';
|
|
373
|
-
message: string;
|
|
374
|
-
percent: number;
|
|
375
|
-
current?: number;
|
|
376
|
-
total?: number;
|
|
377
|
-
}): void;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Error types for PDW operations
|
|
382
|
-
*/
|
|
383
|
-
export enum PDWErrorType {
|
|
384
|
-
NETWORK_ERROR = 'NETWORK_ERROR',
|
|
385
|
-
STORAGE_ERROR = 'STORAGE_ERROR',
|
|
386
|
-
BLOCKCHAIN_ERROR = 'BLOCKCHAIN_ERROR',
|
|
387
|
-
ENCRYPTION_ERROR = 'ENCRYPTION_ERROR',
|
|
388
|
-
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
389
|
-
INDEX_ERROR = 'INDEX_ERROR',
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Custom error class for PDW operations
|
|
394
|
-
*/
|
|
395
|
-
export class PDWVectorStoreError extends Error {
|
|
396
|
-
constructor(
|
|
397
|
-
public type: PDWErrorType,
|
|
398
|
-
message: string,
|
|
399
|
-
public originalError?: Error
|
|
400
|
-
) {
|
|
401
|
-
super(message);
|
|
402
|
-
this.name = 'PDWVectorStoreError';
|
|
403
|
-
}
|
|
404
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* AI SDK Integration Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the PDW Vector Store adapter designed for
|
|
5
|
+
* seamless integration with Vercel AI SDK and other AI frameworks.
|
|
6
|
+
*
|
|
7
|
+
* Provides a familiar API similar to Pinecone/Chroma while leveraging
|
|
8
|
+
* PDW's full capabilities: Walrus storage, Sui blockchain, knowledge graphs,
|
|
9
|
+
* and optional SEAL encryption.
|
|
10
|
+
*
|
|
11
|
+
* @module ai-sdk/types
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import type { SuiClient } from '@mysten/sui/client';
|
|
15
|
+
import type { UnifiedSigner } from '../client/signers/UnifiedSigner';
|
|
16
|
+
import type { SealService } from '../infrastructure/seal/SealService';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Configuration for initializing PDWVectorStore
|
|
20
|
+
*/
|
|
21
|
+
export interface PDWVectorStoreConfig {
|
|
22
|
+
/**
|
|
23
|
+
* Walrus storage configuration
|
|
24
|
+
*/
|
|
25
|
+
walrus: {
|
|
26
|
+
/** Walrus aggregator URL for reading blobs */
|
|
27
|
+
aggregator: string;
|
|
28
|
+
/** Walrus publisher URL for writing blobs (optional, defaults to aggregator) */
|
|
29
|
+
publisher?: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Sui blockchain configuration
|
|
34
|
+
*/
|
|
35
|
+
sui: {
|
|
36
|
+
/** Network to use: 'testnet', 'mainnet', or 'devnet' */
|
|
37
|
+
network: 'testnet' | 'mainnet' | 'devnet';
|
|
38
|
+
/** PDW package ID deployed on Sui */
|
|
39
|
+
packageId: string;
|
|
40
|
+
/** Optional: Pre-configured SuiClient (created automatically if not provided) */
|
|
41
|
+
client?: SuiClient;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* User identity and signing
|
|
46
|
+
*/
|
|
47
|
+
signer: UnifiedSigner;
|
|
48
|
+
userAddress: string;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Vector configuration
|
|
52
|
+
*/
|
|
53
|
+
dimensions: number;
|
|
54
|
+
distanceMetric?: 'cosine' | 'euclidean' | 'ip';
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Optional features
|
|
58
|
+
*/
|
|
59
|
+
features?: {
|
|
60
|
+
/** Enable SEAL encryption for stored content (default: false) */
|
|
61
|
+
encryption?: boolean;
|
|
62
|
+
/** Automatically extract knowledge graphs from text (default: true) */
|
|
63
|
+
extractKnowledgeGraph?: boolean;
|
|
64
|
+
/** Enable batch processing for better performance (default: true) */
|
|
65
|
+
enableBatching?: boolean;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Optional: SEAL encryption service (required if features.encryption = true)
|
|
70
|
+
*/
|
|
71
|
+
sealService?: SealService;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Optional: Gemini API key for knowledge graph extraction
|
|
75
|
+
* (required if features.extractKnowledgeGraph = true)
|
|
76
|
+
*/
|
|
77
|
+
geminiApiKey?: string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Storage configuration
|
|
81
|
+
*/
|
|
82
|
+
storage?: {
|
|
83
|
+
/** Number of epochs to store data on Walrus (default: 3) */
|
|
84
|
+
epochs?: number;
|
|
85
|
+
/** Enable deletable blobs (default: true) */
|
|
86
|
+
deletable?: boolean;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Index configuration
|
|
91
|
+
*/
|
|
92
|
+
index?: {
|
|
93
|
+
/** HNSW ef construction parameter (default: 200) */
|
|
94
|
+
efConstruction?: number;
|
|
95
|
+
/** HNSW M parameter (default: 16) */
|
|
96
|
+
M?: number;
|
|
97
|
+
/** Max elements in index (default: 10000) */
|
|
98
|
+
maxElements?: number;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Parameters for adding a vector to the store
|
|
104
|
+
*/
|
|
105
|
+
export interface AddVectorParams {
|
|
106
|
+
/** Unique identifier for this vector/document */
|
|
107
|
+
id: string;
|
|
108
|
+
|
|
109
|
+
/** The embedding vector (from AI SDK or any embedding provider) */
|
|
110
|
+
vector: number[];
|
|
111
|
+
|
|
112
|
+
/** Original text content that was embedded */
|
|
113
|
+
text: string;
|
|
114
|
+
|
|
115
|
+
/** Optional metadata for filtering and retrieval */
|
|
116
|
+
metadata?: Record<string, any>;
|
|
117
|
+
|
|
118
|
+
/** Optional: Category for organization (default: 'general') */
|
|
119
|
+
category?: string;
|
|
120
|
+
|
|
121
|
+
/** Optional: Importance score 1-10 (default: 5) */
|
|
122
|
+
importance?: number;
|
|
123
|
+
|
|
124
|
+
/** Optional: Topic/tag for grouping */
|
|
125
|
+
topic?: string;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Batch add parameters for multiple vectors
|
|
130
|
+
*/
|
|
131
|
+
export interface AddVectorBatchParams {
|
|
132
|
+
vectors: AddVectorParams[];
|
|
133
|
+
|
|
134
|
+
/** Optional: Progress callback for batch operations */
|
|
135
|
+
onProgress?: (progress: {
|
|
136
|
+
current: number;
|
|
137
|
+
total: number;
|
|
138
|
+
stage: 'uploading' | 'indexing' | 'blockchain';
|
|
139
|
+
message: string;
|
|
140
|
+
}) => void;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Parameters for searching vectors
|
|
145
|
+
*/
|
|
146
|
+
export interface SearchParams {
|
|
147
|
+
/** Query embedding vector */
|
|
148
|
+
vector: number[];
|
|
149
|
+
|
|
150
|
+
/** Number of results to return (default: 5) */
|
|
151
|
+
limit?: number;
|
|
152
|
+
|
|
153
|
+
/** Metadata filters (AND logic) */
|
|
154
|
+
filters?: {
|
|
155
|
+
category?: string | string[];
|
|
156
|
+
topic?: string | string[];
|
|
157
|
+
importance?: { min?: number; max?: number };
|
|
158
|
+
tags?: string[];
|
|
159
|
+
[key: string]: any;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/** Minimum similarity score (0-1, default: 0) */
|
|
163
|
+
minScore?: number;
|
|
164
|
+
|
|
165
|
+
/** Include related entities from knowledge graph (default: false) */
|
|
166
|
+
includeGraph?: boolean;
|
|
167
|
+
|
|
168
|
+
/** Include full text content in results (default: true) */
|
|
169
|
+
includeContent?: boolean;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Search result item
|
|
174
|
+
*/
|
|
175
|
+
export interface SearchResult {
|
|
176
|
+
/** Document ID */
|
|
177
|
+
id: string;
|
|
178
|
+
|
|
179
|
+
/** Original text content (if includeContent = true) */
|
|
180
|
+
text: string;
|
|
181
|
+
|
|
182
|
+
/** Metadata associated with this vector */
|
|
183
|
+
metadata: Record<string, any>;
|
|
184
|
+
|
|
185
|
+
/** Similarity score (0-1, higher is more similar) */
|
|
186
|
+
score: number;
|
|
187
|
+
|
|
188
|
+
/** Distance from query vector (lower is more similar) */
|
|
189
|
+
distance: number;
|
|
190
|
+
|
|
191
|
+
/** Walrus blob ID for the stored content */
|
|
192
|
+
blobId: string;
|
|
193
|
+
|
|
194
|
+
/** Sui transaction digest for blockchain record */
|
|
195
|
+
txDigest?: string;
|
|
196
|
+
|
|
197
|
+
/** Related entities from knowledge graph (if includeGraph = true) */
|
|
198
|
+
relatedEntities?: Array<{
|
|
199
|
+
id: string;
|
|
200
|
+
name: string;
|
|
201
|
+
type: string;
|
|
202
|
+
confidence: number;
|
|
203
|
+
}>;
|
|
204
|
+
|
|
205
|
+
/** Related relationships (if includeGraph = true) */
|
|
206
|
+
relatedRelationships?: Array<{
|
|
207
|
+
source: string;
|
|
208
|
+
target: string;
|
|
209
|
+
type: string;
|
|
210
|
+
confidence: number;
|
|
211
|
+
}>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Result from adding a vector
|
|
216
|
+
*/
|
|
217
|
+
export interface AddVectorResult {
|
|
218
|
+
/** Document ID */
|
|
219
|
+
id: string;
|
|
220
|
+
|
|
221
|
+
/** Walrus blob ID */
|
|
222
|
+
blobId: string;
|
|
223
|
+
|
|
224
|
+
/** Sui transaction digest */
|
|
225
|
+
txDigest: string;
|
|
226
|
+
|
|
227
|
+
/** Vector ID in HNSW index */
|
|
228
|
+
vectorId: number;
|
|
229
|
+
|
|
230
|
+
/** Whether knowledge graph was extracted */
|
|
231
|
+
graphExtracted: boolean;
|
|
232
|
+
|
|
233
|
+
/** Whether content was encrypted */
|
|
234
|
+
encrypted: boolean;
|
|
235
|
+
|
|
236
|
+
/** Upload time in milliseconds */
|
|
237
|
+
uploadTimeMs: number;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Result from batch add operation
|
|
242
|
+
*/
|
|
243
|
+
export interface AddVectorBatchResult {
|
|
244
|
+
/** Successfully added vectors */
|
|
245
|
+
successful: AddVectorResult[];
|
|
246
|
+
|
|
247
|
+
/** Failed vectors with error messages */
|
|
248
|
+
failed: Array<{
|
|
249
|
+
id: string;
|
|
250
|
+
error: string;
|
|
251
|
+
}>;
|
|
252
|
+
|
|
253
|
+
/** Total processing time in milliseconds */
|
|
254
|
+
totalTimeMs: number;
|
|
255
|
+
|
|
256
|
+
/** Quilt ID if batch was uploaded as a Walrus Quilt */
|
|
257
|
+
quiltId?: string;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Parameters for retrieving a vector by ID
|
|
262
|
+
*/
|
|
263
|
+
export interface GetVectorParams {
|
|
264
|
+
/** Document ID to retrieve */
|
|
265
|
+
id: string;
|
|
266
|
+
|
|
267
|
+
/** Include full text content (default: true) */
|
|
268
|
+
includeContent?: boolean;
|
|
269
|
+
|
|
270
|
+
/** Include knowledge graph data (default: false) */
|
|
271
|
+
includeGraph?: boolean;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Result from getting a vector by ID
|
|
276
|
+
*/
|
|
277
|
+
export interface GetVectorResult {
|
|
278
|
+
/** Document ID */
|
|
279
|
+
id: string;
|
|
280
|
+
|
|
281
|
+
/** The embedding vector */
|
|
282
|
+
vector: number[];
|
|
283
|
+
|
|
284
|
+
/** Original text content */
|
|
285
|
+
text: string;
|
|
286
|
+
|
|
287
|
+
/** Metadata */
|
|
288
|
+
metadata: Record<string, any>;
|
|
289
|
+
|
|
290
|
+
/** Walrus blob ID */
|
|
291
|
+
blobId: string;
|
|
292
|
+
|
|
293
|
+
/** Knowledge graph data (if includeGraph = true) */
|
|
294
|
+
graph?: {
|
|
295
|
+
entities: Array<{
|
|
296
|
+
id: string;
|
|
297
|
+
name: string;
|
|
298
|
+
type: string;
|
|
299
|
+
confidence: number;
|
|
300
|
+
}>;
|
|
301
|
+
relationships: Array<{
|
|
302
|
+
source: string;
|
|
303
|
+
target: string;
|
|
304
|
+
type: string;
|
|
305
|
+
confidence: number;
|
|
306
|
+
}>;
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
/** Whether content is encrypted */
|
|
310
|
+
encrypted: boolean;
|
|
311
|
+
|
|
312
|
+
/** Timestamp when created */
|
|
313
|
+
createdAt: number;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Parameters for deleting vectors
|
|
318
|
+
*/
|
|
319
|
+
export interface DeleteVectorParams {
|
|
320
|
+
/** Document IDs to delete */
|
|
321
|
+
ids: string[];
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Result from delete operation
|
|
326
|
+
*/
|
|
327
|
+
export interface DeleteVectorResult {
|
|
328
|
+
/** Successfully deleted IDs */
|
|
329
|
+
deleted: string[];
|
|
330
|
+
|
|
331
|
+
/** Failed deletions with error messages */
|
|
332
|
+
failed: Array<{
|
|
333
|
+
id: string;
|
|
334
|
+
error: string;
|
|
335
|
+
}>;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Statistics about the vector store
|
|
340
|
+
*/
|
|
341
|
+
export interface VectorStoreStats {
|
|
342
|
+
/** Total number of vectors stored */
|
|
343
|
+
totalVectors: number;
|
|
344
|
+
|
|
345
|
+
/** Total storage used in bytes */
|
|
346
|
+
storageBytes: number;
|
|
347
|
+
|
|
348
|
+
/** Number of blockchain transactions */
|
|
349
|
+
blockchainTxCount: number;
|
|
350
|
+
|
|
351
|
+
/** Knowledge graph statistics */
|
|
352
|
+
graph?: {
|
|
353
|
+
totalEntities: number;
|
|
354
|
+
totalRelationships: number;
|
|
355
|
+
entityTypes: Record<string, number>;
|
|
356
|
+
relationshipTypes: Record<string, number>;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/** Index statistics */
|
|
360
|
+
index: {
|
|
361
|
+
dimensions: number;
|
|
362
|
+
distanceMetric: string;
|
|
363
|
+
indexSize: number;
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Progress callback for long-running operations
|
|
369
|
+
*/
|
|
370
|
+
export interface ProgressCallback {
|
|
371
|
+
(progress: {
|
|
372
|
+
stage: 'embedding' | 'encrypting' | 'uploading' | 'blockchain' | 'indexing' | 'graph';
|
|
373
|
+
message: string;
|
|
374
|
+
percent: number;
|
|
375
|
+
current?: number;
|
|
376
|
+
total?: number;
|
|
377
|
+
}): void;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* Error types for PDW operations
|
|
382
|
+
*/
|
|
383
|
+
export enum PDWErrorType {
|
|
384
|
+
NETWORK_ERROR = 'NETWORK_ERROR',
|
|
385
|
+
STORAGE_ERROR = 'STORAGE_ERROR',
|
|
386
|
+
BLOCKCHAIN_ERROR = 'BLOCKCHAIN_ERROR',
|
|
387
|
+
ENCRYPTION_ERROR = 'ENCRYPTION_ERROR',
|
|
388
|
+
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
389
|
+
INDEX_ERROR = 'INDEX_ERROR',
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Custom error class for PDW operations
|
|
394
|
+
*/
|
|
395
|
+
export class PDWVectorStoreError extends Error {
|
|
396
|
+
constructor(
|
|
397
|
+
public type: PDWErrorType,
|
|
398
|
+
message: string,
|
|
399
|
+
public originalError?: Error
|
|
400
|
+
) {
|
|
401
|
+
super(message);
|
|
402
|
+
this.name = 'PDWVectorStoreError';
|
|
403
|
+
}
|
|
404
|
+
}
|