@cmdoss/memwal-sdk 0.6.0 → 0.6.2
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 -463
- package/BENCHMARKS.md +238 -238
- package/README.md +181 -142
- package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -1
- package/dist/ai-sdk/PDWVectorStore.js +4 -1
- package/dist/ai-sdk/PDWVectorStore.js.map +1 -1
- package/dist/ai-sdk/types.d.ts +2 -2
- package/dist/ai-sdk/types.d.ts.map +1 -1
- package/dist/browser.d.ts +12 -13
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +18 -12
- package/dist/browser.js.map +1 -1
- package/dist/client/ClientMemoryManager.d.ts +1 -0
- package/dist/client/ClientMemoryManager.d.ts.map +1 -1
- package/dist/client/ClientMemoryManager.js +5 -1
- package/dist/client/ClientMemoryManager.js.map +1 -1
- package/dist/client/SimplePDWClient.d.ts +23 -0
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +19 -6
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/BatchNamespace.js +2 -2
- package/dist/client/namespaces/BatchNamespace.js.map +1 -1
- package/dist/client/namespaces/IndexNamespace.d.ts +38 -9
- package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/IndexNamespace.js +77 -10
- package/dist/client/namespaces/IndexNamespace.js.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +3 -3
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/SearchNamespace.js +25 -14
- package/dist/client/namespaces/SearchNamespace.js.map +1 -1
- package/dist/client/namespaces/StorageNamespace.js +4 -4
- package/dist/client/namespaces/StorageNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js +49 -1
- package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +46 -0
- package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +36 -2
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/client/signers/DappKitSigner.d.ts +136 -0
- package/dist/client/signers/DappKitSigner.d.ts.map +1 -0
- package/dist/client/signers/DappKitSigner.js +128 -0
- package/dist/client/signers/DappKitSigner.js.map +1 -0
- package/dist/client/signers/KeypairSigner.d.ts +4 -0
- package/dist/client/signers/KeypairSigner.d.ts.map +1 -1
- package/dist/client/signers/KeypairSigner.js +6 -0
- package/dist/client/signers/KeypairSigner.js.map +1 -1
- package/dist/client/signers/UnifiedSigner.d.ts +10 -0
- package/dist/client/signers/UnifiedSigner.d.ts.map +1 -1
- package/dist/client/signers/WalletAdapterSigner.d.ts +7 -0
- package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -1
- package/dist/client/signers/WalletAdapterSigner.js +9 -0
- package/dist/client/signers/WalletAdapterSigner.js.map +1 -1
- package/dist/client/signers/index.d.ts +3 -0
- package/dist/client/signers/index.d.ts.map +1 -1
- package/dist/client/signers/index.js +2 -0
- package/dist/client/signers/index.js.map +1 -1
- package/dist/generated/utils/index.js +1 -1
- package/dist/generated/utils/index.js.map +1 -1
- package/dist/graph/GraphService.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/permissions/ConsentRepository.browser.d.ts +56 -0
- package/dist/permissions/ConsentRepository.browser.d.ts.map +1 -0
- package/dist/permissions/ConsentRepository.browser.js +198 -0
- package/dist/permissions/ConsentRepository.browser.js.map +1 -0
- package/dist/services/CapabilityService.js +1 -1
- package/dist/services/CapabilityService.js.map +1 -1
- package/dist/services/EncryptionService.js +1 -1
- package/dist/services/EncryptionService.js.map +1 -1
- package/dist/services/GeminiAIService.d.ts.map +1 -1
- package/dist/services/GeminiAIService.js +283 -27
- package/dist/services/GeminiAIService.js.map +1 -1
- package/dist/services/MemoryIndexService.d.ts +31 -2
- package/dist/services/MemoryIndexService.d.ts.map +1 -1
- package/dist/services/MemoryIndexService.js +75 -3
- package/dist/services/MemoryIndexService.js.map +1 -1
- package/dist/services/StorageService.d.ts +8 -8
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/VectorService.js +2 -2
- package/dist/services/VectorService.js.map +1 -1
- package/dist/services/storage/BlobAttributesManager.d.ts +4 -4
- package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -1
- package/dist/services/storage/BlobAttributesManager.js +6 -15
- package/dist/services/storage/BlobAttributesManager.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +33 -8
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +153 -48
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/WalrusMetadataManager.d.ts +2 -2
- package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -1
- package/dist/services/storage/WalrusMetadataManager.js +2 -5
- package/dist/services/storage/WalrusMetadataManager.js.map +1 -1
- package/dist/services/storage/WalrusStorageManager.d.ts +2 -2
- package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -1
- package/dist/services/storage/WalrusStorageManager.js +7 -11
- package/dist/services/storage/WalrusStorageManager.js.map +1 -1
- package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
- package/dist/utils/rebuildIndexNode.js +109 -35
- package/dist/utils/rebuildIndexNode.js.map +1 -1
- package/dist/vector/NodeHnswService.d.ts.map +1 -1
- package/dist/vector/NodeHnswService.js +26 -7
- package/dist/vector/NodeHnswService.js.map +1 -1
- package/dist/wallet/MainWalletService.js +1 -1
- package/dist/wallet/MainWalletService.js.map +1 -1
- package/package.json +10 -3
- package/src/access/index.ts +8 -8
- package/src/aggregation/index.ts +8 -8
- package/src/ai-sdk/PDWVectorStore.ts +4 -1
- package/src/ai-sdk/types.ts +2 -2
- package/src/browser.ts +28 -24
- package/src/client/ClientMemoryManager.ts +6 -1
- package/src/client/SimplePDWClient.ts +57 -15
- package/src/client/namespaces/BatchNamespace.ts +2 -2
- package/src/client/namespaces/IndexNamespace.ts +89 -11
- package/src/client/namespaces/MemoryNamespace.ts +3 -3
- package/src/client/namespaces/SearchNamespace.ts +27 -14
- package/src/client/namespaces/StorageNamespace.ts +4 -4
- package/src/client/namespaces/consolidated/BlockchainNamespace.ts +55 -1
- package/src/client/namespaces/consolidated/StorageNamespace.ts +59 -2
- package/src/client/signers/DappKitSigner.ts +207 -0
- package/src/client/signers/KeypairSigner.ts +7 -0
- package/src/client/signers/UnifiedSigner.ts +11 -0
- package/src/client/signers/WalletAdapterSigner.ts +10 -0
- package/src/client/signers/index.ts +7 -0
- package/src/generated/pdw/capability.ts +319 -319
- package/src/generated/utils/index.ts +1 -1
- package/src/graph/GraphService.ts +1 -1
- package/src/index.ts +16 -0
- package/src/permissions/ConsentRepository.browser.ts +249 -0
- package/src/permissions/index.ts +9 -9
- package/src/services/CapabilityService.ts +1 -1
- package/src/services/EncryptionService.ts +1 -1
- package/src/services/GeminiAIService.ts +283 -27
- package/src/services/MemoryIndexService.ts +85 -3
- package/src/services/StorageService.ts +8 -8
- package/src/services/VectorService.ts +2 -2
- package/src/services/storage/BlobAttributesManager.ts +10 -19
- package/src/services/storage/QuiltBatchManager.ts +178 -50
- package/src/services/storage/WalrusMetadataManager.ts +4 -7
- package/src/services/storage/WalrusStorageManager.ts +10 -13
- package/src/utils/rebuildIndexNode.ts +126 -43
- package/src/vector/NodeHnswService.ts +29 -7
- package/src/wallet/MainWalletService.ts +1 -1
- package/src/wallet/index.ts +17 -17
- package/dist/api/client.d.ts +0 -43
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js +0 -136
- package/dist/api/client.js.map +0 -1
- package/dist/chat/index.d.ts +0 -13
- package/dist/chat/index.d.ts.map +0 -1
- package/dist/chat/index.js +0 -14
- package/dist/chat/index.js.map +0 -1
- package/dist/client/namespaces/ChatNamespace.d.ts +0 -110
- package/dist/client/namespaces/ChatNamespace.d.ts.map +0 -1
- package/dist/client/namespaces/ChatNamespace.js +0 -123
- package/dist/client/namespaces/ChatNamespace.js.map +0 -1
- package/dist/encryption/index.d.ts +0 -14
- package/dist/encryption/index.d.ts.map +0 -1
- package/dist/encryption/index.js +0 -14
- package/dist/encryption/index.js.map +0 -1
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts +0 -101
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +0 -1
- package/dist/graph/BrowserKnowledgeGraphManager.js +0 -411
- package/dist/graph/BrowserKnowledgeGraphManager.js.map +0 -1
- package/dist/hooks.wip/index.d.ts +0 -55
- package/dist/hooks.wip/index.d.ts.map +0 -1
- package/dist/hooks.wip/index.js +0 -58
- package/dist/hooks.wip/index.js.map +0 -1
- package/dist/hooks.wip/useCreateMemory.d.ts +0 -111
- package/dist/hooks.wip/useCreateMemory.d.ts.map +0 -1
- package/dist/hooks.wip/useCreateMemory.js +0 -149
- package/dist/hooks.wip/useCreateMemory.js.map +0 -1
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts +0 -122
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +0 -1
- package/dist/hooks.wip/useCreateMemoryBatch.js +0 -221
- package/dist/hooks.wip/useCreateMemoryBatch.js.map +0 -1
- package/dist/hooks.wip/useKnowledgeGraph.d.ts +0 -66
- package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +0 -1
- package/dist/hooks.wip/useKnowledgeGraph.js +0 -229
- package/dist/hooks.wip/useKnowledgeGraph.js.map +0 -1
- package/dist/hooks.wip/useMemoryChat.d.ts +0 -106
- package/dist/hooks.wip/useMemoryChat.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryChat.js +0 -284
- package/dist/hooks.wip/useMemoryChat.js.map +0 -1
- package/dist/hooks.wip/useMemoryIndex.d.ts +0 -90
- package/dist/hooks.wip/useMemoryIndex.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryIndex.js +0 -218
- package/dist/hooks.wip/useMemoryIndex.js.map +0 -1
- package/dist/hooks.wip/useMemoryManager.d.ts +0 -35
- package/dist/hooks.wip/useMemoryManager.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryManager.js +0 -86
- package/dist/hooks.wip/useMemoryManager.js.map +0 -1
- package/dist/hooks.wip/useMemorySearch.d.ts +0 -100
- package/dist/hooks.wip/useMemorySearch.d.ts.map +0 -1
- package/dist/hooks.wip/useMemorySearch.js +0 -278
- package/dist/hooks.wip/useMemorySearch.js.map +0 -1
- package/dist/hooks.wip/useMemoryServices.d.ts +0 -80
- package/dist/hooks.wip/useMemoryServices.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryServices.js +0 -264
- package/dist/hooks.wip/useMemoryServices.js.map +0 -1
- package/dist/hooks.wip/usePDWRAG.d.ts +0 -112
- package/dist/hooks.wip/usePDWRAG.d.ts.map +0 -1
- package/dist/hooks.wip/usePDWRAG.js +0 -121
- package/dist/hooks.wip/usePDWRAG.js.map +0 -1
- package/dist/hooks.wip/usePDWVectorStore.d.ts +0 -68
- package/dist/hooks.wip/usePDWVectorStore.d.ts.map +0 -1
- package/dist/hooks.wip/usePDWVectorStore.js +0 -102
- package/dist/hooks.wip/usePDWVectorStore.js.map +0 -1
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts +0 -138
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +0 -1
- package/dist/hooks.wip/useRetrieveEmbedding.js +0 -121
- package/dist/hooks.wip/useRetrieveEmbedding.js.map +0 -1
- package/dist/hooks.wip/useSearchMemories.d.ts +0 -103
- package/dist/hooks.wip/useSearchMemories.d.ts.map +0 -1
- package/dist/hooks.wip/useSearchMemories.js +0 -146
- package/dist/hooks.wip/useSearchMemories.js.map +0 -1
- package/dist/hooks.wip/useStoreEmbedding.d.ts +0 -174
- package/dist/hooks.wip/useStoreEmbedding.d.ts.map +0 -1
- package/dist/hooks.wip/useStoreEmbedding.js +0 -167
- package/dist/hooks.wip/useStoreEmbedding.js.map +0 -1
- package/dist/hooks.wip/useWalletMemories.d.ts +0 -119
- package/dist/hooks.wip/useWalletMemories.d.ts.map +0 -1
- package/dist/hooks.wip/useWalletMemories.js +0 -166
- package/dist/hooks.wip/useWalletMemories.js.map +0 -1
- package/dist/hooks.wip/utils/cache.d.ts +0 -25
- package/dist/hooks.wip/utils/cache.d.ts.map +0 -1
- package/dist/hooks.wip/utils/cache.js +0 -38
- package/dist/hooks.wip/utils/cache.js.map +0 -1
- package/dist/hooks.wip/utils/types.d.ts +0 -138
- package/dist/hooks.wip/utils/types.d.ts.map +0 -1
- package/dist/hooks.wip/utils/types.js +0 -5
- package/dist/hooks.wip/utils/types.js.map +0 -1
- package/dist/infrastructure/ai/EmbeddingService.d.ts +0 -101
- package/dist/infrastructure/ai/EmbeddingService.d.ts.map +0 -1
- package/dist/infrastructure/ai/EmbeddingService.js +0 -242
- package/dist/infrastructure/ai/EmbeddingService.js.map +0 -1
- package/dist/infrastructure/ai/GeminiAIService.d.ts +0 -84
- package/dist/infrastructure/ai/GeminiAIService.d.ts.map +0 -1
- package/dist/infrastructure/ai/GeminiAIService.js +0 -300
- package/dist/infrastructure/ai/GeminiAIService.js.map +0 -1
- package/dist/infrastructure/ai/index.d.ts +0 -8
- package/dist/infrastructure/ai/index.d.ts.map +0 -1
- package/dist/infrastructure/ai/index.js +0 -8
- package/dist/infrastructure/ai/index.js.map +0 -1
- package/dist/memory/index.d.ts +0 -13
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -14
- package/dist/memory/index.js.map +0 -1
- package/dist/services/ChatService.d.ts +0 -89
- package/dist/services/ChatService.d.ts.map +0 -1
- package/dist/services/ChatService.js +0 -319
- package/dist/services/ChatService.js.map +0 -1
- package/dist/transactions/index.d.ts +0 -13
- package/dist/transactions/index.d.ts.map +0 -1
- package/dist/transactions/index.js +0 -14
- package/dist/transactions/index.js.map +0 -1
- package/dist/types/wallet.d.ts +0 -12
- package/dist/types/wallet.d.ts.map +0 -1
- package/dist/types/wallet.js +0 -13
- package/dist/types/wallet.js.map +0 -1
- package/dist/view/ViewService.d.ts +0 -136
- package/dist/view/ViewService.d.ts.map +0 -1
- package/dist/view/ViewService.js +0 -325
- package/dist/view/ViewService.js.map +0 -1
- package/dist/view/index.d.ts +0 -7
- package/dist/view/index.d.ts.map +0 -1
- package/dist/view/index.js +0 -7
- package/dist/view/index.js.map +0 -1
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import type { SuiClient } from '@mysten/sui/client';
|
|
15
|
-
import type { Signer } from '@mysten/sui/cryptography';
|
|
16
15
|
import { Transaction } from '@mysten/sui/transactions';
|
|
16
|
+
import type { UnifiedSigner } from '../../client/signers/UnifiedSigner';
|
|
17
17
|
|
|
18
18
|
export interface WalrusMemoryMetadata {
|
|
19
19
|
// Content identification
|
|
@@ -154,7 +154,7 @@ export class WalrusMetadataManager {
|
|
|
154
154
|
async attachMetadataToBlob(
|
|
155
155
|
blobId: string,
|
|
156
156
|
metadata: WalrusMemoryMetadata,
|
|
157
|
-
signer:
|
|
157
|
+
signer: UnifiedSigner,
|
|
158
158
|
walrusPackageId: string
|
|
159
159
|
): Promise<{ digest: string; effects: any }> {
|
|
160
160
|
try {
|
|
@@ -179,12 +179,9 @@ export class WalrusMetadataManager {
|
|
|
179
179
|
],
|
|
180
180
|
});
|
|
181
181
|
|
|
182
|
-
tx.setSender(signer.
|
|
182
|
+
tx.setSender(signer.getAddress());
|
|
183
183
|
|
|
184
|
-
const result = await signer.signAndExecuteTransaction(
|
|
185
|
-
transaction: tx,
|
|
186
|
-
client: this.suiClient,
|
|
187
|
-
});
|
|
184
|
+
const result = await signer.signAndExecuteTransaction(tx);
|
|
188
185
|
|
|
189
186
|
console.log(`✅ Metadata attached successfully. Digest: ${result.digest}`);
|
|
190
187
|
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
import { SuiClient, getFullnodeUrl } from '@mysten/sui/client';
|
|
17
17
|
import { WalrusClient } from '@mysten/walrus';
|
|
18
|
-
import type { Signer } from '@mysten/sui/cryptography';
|
|
19
18
|
import type { ClientWithExtensions } from '@mysten/sui/experimental';
|
|
19
|
+
import type { UnifiedSigner } from '../../client/signers/UnifiedSigner';
|
|
20
20
|
|
|
21
21
|
export interface WalrusStorageConfig {
|
|
22
22
|
suiClient?: SuiClient;
|
|
@@ -28,7 +28,7 @@ export interface WalrusStorageConfig {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export interface BlobUploadOptions {
|
|
31
|
-
signer:
|
|
31
|
+
signer: UnifiedSigner;
|
|
32
32
|
epochs?: number;
|
|
33
33
|
deletable?: boolean;
|
|
34
34
|
useUploadRelay?: boolean;
|
|
@@ -160,29 +160,26 @@ export class WalrusStorageManager {
|
|
|
160
160
|
// Step 1: Encode blob
|
|
161
161
|
await flow.encode();
|
|
162
162
|
|
|
163
|
+
// Get signer address
|
|
164
|
+
const signerAddress = options.signer.getAddress();
|
|
165
|
+
|
|
163
166
|
// Step 2: Register blob on-chain
|
|
164
167
|
const registerTx = flow.register({
|
|
165
168
|
epochs: options.epochs || this.config.epochs || 3,
|
|
166
169
|
deletable: options.deletable ?? true,
|
|
167
|
-
owner:
|
|
170
|
+
owner: signerAddress,
|
|
168
171
|
});
|
|
169
172
|
|
|
170
|
-
registerTx.setSender(
|
|
171
|
-
const { digest: registerDigest } = await options.signer.signAndExecuteTransaction(
|
|
172
|
-
transaction: registerTx,
|
|
173
|
-
client: this.suiClient,
|
|
174
|
-
});
|
|
173
|
+
registerTx.setSender(signerAddress);
|
|
174
|
+
const { digest: registerDigest } = await options.signer.signAndExecuteTransaction(registerTx);
|
|
175
175
|
|
|
176
176
|
// Step 3: Upload to storage
|
|
177
177
|
await flow.upload({ digest: registerDigest });
|
|
178
178
|
|
|
179
179
|
// Step 4: Certify blob on-chain
|
|
180
180
|
const certifyTx = flow.certify();
|
|
181
|
-
certifyTx.setSender(
|
|
182
|
-
await options.signer.signAndExecuteTransaction(
|
|
183
|
-
transaction: certifyTx,
|
|
184
|
-
client: this.suiClient,
|
|
185
|
-
});
|
|
181
|
+
certifyTx.setSender(signerAddress);
|
|
182
|
+
await options.signer.signAndExecuteTransaction(certifyTx);
|
|
186
183
|
|
|
187
184
|
// Get blob info
|
|
188
185
|
const blob = await flow.getBlob();
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
29
|
import type { SuiClient } from '@mysten/sui/client';
|
|
30
|
-
import { WalrusClient } from '@mysten/walrus';
|
|
30
|
+
import { WalrusClient, WalrusFile } from '@mysten/walrus';
|
|
31
31
|
|
|
32
32
|
export interface RebuildIndexNodeOptions {
|
|
33
33
|
/** User's blockchain address */
|
|
@@ -212,60 +212,143 @@ export async function rebuildIndexNode(options: RebuildIndexNodeOptions): Promis
|
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
// Process
|
|
215
|
+
// Process memories grouped by blobId (for Quilt support)
|
|
216
|
+
// In a Quilt, multiple memories share the same blobId
|
|
217
|
+
const memoriesByBlobId = new Map<string, typeof memories>();
|
|
218
|
+
for (const memory of memories) {
|
|
219
|
+
const list = memoriesByBlobId.get(memory.blobId) || [];
|
|
220
|
+
list.push(memory);
|
|
221
|
+
memoriesByBlobId.set(memory.blobId, list);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
console.log(`[rebuildIndexNode] Unique blobIds: ${memoriesByBlobId.size} (${memoriesByBlobId.size < totalMemories ? 'Quilt detected' : 'individual blobs'})`);
|
|
225
|
+
|
|
216
226
|
let indexedCount = 0;
|
|
217
227
|
let failedCount = 0;
|
|
228
|
+
let processedCount = 0;
|
|
218
229
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const progress = `Memory ${i + 1}/${totalMemories}`;
|
|
230
|
+
// Cache for Quilt files to avoid re-fetching
|
|
231
|
+
const quiltFileCache = new Map<string, WalrusFile[]>();
|
|
222
232
|
|
|
223
|
-
|
|
224
|
-
|
|
233
|
+
for (const [blobId, memoriesInBlob] of memoriesByBlobId) {
|
|
234
|
+
console.log(`[rebuildIndexNode] Processing blobId ${blobId.substring(0, 20)}... (${memoriesInBlob.length} memories)`);
|
|
225
235
|
|
|
226
236
|
try {
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
// Use getBlob().files() to correctly parse Quilt structure
|
|
238
|
+
// For regular blob: returns [singleFile]
|
|
239
|
+
// For Quilt: returns [file1, file2, ...] - all files in the quilt
|
|
240
|
+
let files: WalrusFile[];
|
|
241
|
+
|
|
242
|
+
if (quiltFileCache.has(blobId)) {
|
|
243
|
+
files = quiltFileCache.get(blobId)!;
|
|
244
|
+
console.log(`[rebuildIndexNode] ♻️ Using cached files (${files.length} files)`);
|
|
245
|
+
} else {
|
|
246
|
+
const blob = await walrusClient.walrus.getBlob({ blobId });
|
|
247
|
+
files = await blob.files();
|
|
248
|
+
quiltFileCache.set(blobId, files);
|
|
249
|
+
console.log(`[rebuildIndexNode] 📥 Fetched ${files.length} file(s) from Walrus`);
|
|
239
250
|
}
|
|
240
251
|
|
|
241
|
-
//
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
{
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
252
|
+
// For each memory in this blobId
|
|
253
|
+
for (let i = 0; i < memoriesInBlob.length; i++) {
|
|
254
|
+
const memory = memoriesInBlob[i];
|
|
255
|
+
processedCount++;
|
|
256
|
+
const progress = `Memory ${processedCount}/${totalMemories}`;
|
|
257
|
+
|
|
258
|
+
console.log(`[rebuildIndexNode] Processing ${progress}: vectorId=${memory.vectorId}`);
|
|
259
|
+
onProgress?.(processedCount, totalMemories, `Processing ${progress}...`);
|
|
260
|
+
|
|
261
|
+
try {
|
|
262
|
+
// Determine which file to use
|
|
263
|
+
// For Quilt: match by index
|
|
264
|
+
// For single blob: use the only file
|
|
265
|
+
const fileIndex = files.length === 1 ? 0 : Math.min(i, files.length - 1);
|
|
266
|
+
const file = files[fileIndex];
|
|
267
|
+
|
|
268
|
+
if (!file) {
|
|
269
|
+
throw new Error(`No file found at index ${fileIndex}`);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Get file content
|
|
273
|
+
const rawBytes = await file.bytes();
|
|
274
|
+
const rawText = new TextDecoder().decode(rawBytes);
|
|
275
|
+
const trimmedText = rawText.trim();
|
|
276
|
+
|
|
277
|
+
// Get file identifier and tags if available (for Quilts)
|
|
278
|
+
const identifier = await file.getIdentifier();
|
|
279
|
+
const tags = await file.getTags();
|
|
280
|
+
|
|
281
|
+
if (identifier) {
|
|
282
|
+
console.log(`[rebuildIndexNode] 📎 File identifier: ${identifier}`);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
let content: string;
|
|
286
|
+
let embedding: number[];
|
|
287
|
+
let metadata: { category?: string; importance?: number; topic?: string } = {};
|
|
288
|
+
let timestamp = Date.now();
|
|
289
|
+
|
|
290
|
+
if (trimmedText.startsWith('{') && trimmedText.endsWith('}')) {
|
|
291
|
+
// JSON package format (correct format)
|
|
292
|
+
try {
|
|
293
|
+
const memoryData: MemoryContent = JSON.parse(trimmedText);
|
|
294
|
+
content = memoryData.content;
|
|
295
|
+
embedding = memoryData.embedding;
|
|
296
|
+
metadata = memoryData.metadata || {};
|
|
297
|
+
timestamp = memoryData.timestamp || Date.now();
|
|
298
|
+
|
|
299
|
+
if (!embedding || embedding.length !== 3072) {
|
|
300
|
+
throw new Error(`Invalid embedding in JSON: length=${embedding?.length || 0}`);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
console.log(`[rebuildIndexNode] 📦 Format: JSON package`);
|
|
304
|
+
} catch (jsonError) {
|
|
305
|
+
throw new Error(`Invalid JSON structure: ${(jsonError as Error).message}`);
|
|
306
|
+
}
|
|
307
|
+
} else if (trimmedText.length > 0 && !trimmedText.includes('\x00') && trimmedText.length < 10000) {
|
|
308
|
+
// Plain text format - cannot index without embedding
|
|
309
|
+
throw new Error('Plain text format detected but no embedding available - skip');
|
|
310
|
+
} else {
|
|
311
|
+
throw new Error('Binary, encrypted, or empty content - cannot index');
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Add to HNSW index
|
|
315
|
+
await hnswService.addVector(
|
|
316
|
+
userAddress,
|
|
317
|
+
memory.vectorId,
|
|
318
|
+
embedding,
|
|
319
|
+
{
|
|
320
|
+
blobId: memory.blobId,
|
|
321
|
+
memoryObjectId: memory.id,
|
|
322
|
+
category: metadata.category || memory.category || tags?.['category'],
|
|
323
|
+
importance: metadata.importance || memory.importance || parseInt(tags?.['importance'] || '5'),
|
|
324
|
+
topic: metadata.topic || tags?.['topic'] || '',
|
|
325
|
+
timestamp,
|
|
326
|
+
content,
|
|
327
|
+
isEncrypted: false
|
|
328
|
+
}
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
indexedCount++;
|
|
332
|
+
console.log(`[rebuildIndexNode] ✓ Indexed: "${content.substring(0, 30)}..."`);
|
|
333
|
+
|
|
334
|
+
} catch (error: any) {
|
|
335
|
+
failedCount++;
|
|
336
|
+
const errorMsg = error.message || String(error);
|
|
337
|
+
errors.push({ blobId: memory.blobId, error: errorMsg });
|
|
338
|
+
console.error(`[rebuildIndexNode] ✗ Failed: ${errorMsg}`);
|
|
258
339
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
indexedCount++;
|
|
262
|
-
console.log(`[rebuildIndexNode] ✓ Indexed: ${memory.blobId.substring(0, 20)}...`);
|
|
340
|
+
}
|
|
263
341
|
|
|
264
342
|
} catch (error: any) {
|
|
265
|
-
|
|
343
|
+
// Failed to fetch files for this blobId
|
|
266
344
|
const errorMsg = error.message || String(error);
|
|
267
|
-
|
|
268
|
-
|
|
345
|
+
console.error(`[rebuildIndexNode] ✗ Failed to fetch blobId: ${errorMsg}`);
|
|
346
|
+
|
|
347
|
+
for (const memory of memoriesInBlob) {
|
|
348
|
+
processedCount++;
|
|
349
|
+
failedCount++;
|
|
350
|
+
errors.push({ blobId: memory.blobId, error: `Failed to fetch blob: ${errorMsg}` });
|
|
351
|
+
}
|
|
269
352
|
}
|
|
270
353
|
}
|
|
271
354
|
|
|
@@ -248,6 +248,7 @@ export class NodeHnswService implements IHnswService {
|
|
|
248
248
|
vector: number[],
|
|
249
249
|
metadata?: Record<string, any>
|
|
250
250
|
): Promise<void> {
|
|
251
|
+
console.log(`[NodeHnswService] addVector: userAddress=${userAddress.slice(0, 10)}..., vectorId=${vectorId}, dims=${vector.length}`);
|
|
251
252
|
await this.getOrCreateIndex(userAddress);
|
|
252
253
|
|
|
253
254
|
const entry = this.indexCache.get(userAddress);
|
|
@@ -262,9 +263,11 @@ export class NodeHnswService implements IHnswService {
|
|
|
262
263
|
}
|
|
263
264
|
entry.isDirty = true;
|
|
264
265
|
this.batchStats.pendingJobs++;
|
|
266
|
+
console.log(`[NodeHnswService] addVector: Added to pending batch. Pending: ${entry.pendingVectors.size}, isDirty: ${entry.isDirty}`);
|
|
265
267
|
|
|
266
268
|
// Flush if batch is large enough
|
|
267
269
|
if (entry.pendingVectors.size >= 50) {
|
|
270
|
+
console.log(`[NodeHnswService] addVector: Batch size >= 50, auto-flushing...`);
|
|
268
271
|
await this.flushBatch(userAddress);
|
|
269
272
|
}
|
|
270
273
|
}
|
|
@@ -338,8 +341,12 @@ export class NodeHnswService implements IHnswService {
|
|
|
338
341
|
|
|
339
342
|
async flushBatch(userAddress: string): Promise<void> {
|
|
340
343
|
const entry = this.indexCache.get(userAddress);
|
|
341
|
-
if (!entry || entry.pendingVectors.size === 0)
|
|
344
|
+
if (!entry || entry.pendingVectors.size === 0) {
|
|
345
|
+
console.log(`[NodeHnswService] flushBatch: No pending vectors for ${userAddress.slice(0, 10)}..., skipping`);
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
342
348
|
|
|
349
|
+
console.log(`[NodeHnswService] flushBatch: Flushing ${entry.pendingVectors.size} vectors for ${userAddress.slice(0, 10)}...`);
|
|
343
350
|
const startTime = Date.now();
|
|
344
351
|
let processed = 0;
|
|
345
352
|
|
|
@@ -348,6 +355,7 @@ export class NodeHnswService implements IHnswService {
|
|
|
348
355
|
entry.index.addPoint(vector, vectorId);
|
|
349
356
|
processed++;
|
|
350
357
|
}
|
|
358
|
+
console.log(`[NodeHnswService] flushBatch: Added ${processed} points to index`);
|
|
351
359
|
|
|
352
360
|
entry.pendingVectors.clear();
|
|
353
361
|
entry.isDirty = true;
|
|
@@ -361,21 +369,28 @@ export class NodeHnswService implements IHnswService {
|
|
|
361
369
|
(this.batchStats.averageProcessingTime + processingTime) / 2;
|
|
362
370
|
|
|
363
371
|
// Auto-save
|
|
372
|
+
console.log(`[NodeHnswService] flushBatch: Calling saveIndex()...`);
|
|
364
373
|
await this.saveIndex(userAddress);
|
|
374
|
+
console.log(`[NodeHnswService] flushBatch: Complete in ${processingTime}ms`);
|
|
365
375
|
} catch (error) {
|
|
366
376
|
this.batchStats.failedJobs++;
|
|
367
|
-
console.error('[NodeHnswService]
|
|
377
|
+
console.error('[NodeHnswService] flushBatch error:', error);
|
|
368
378
|
throw error;
|
|
369
379
|
}
|
|
370
380
|
}
|
|
371
381
|
|
|
372
382
|
async saveIndex(userAddress: string): Promise<void> {
|
|
373
383
|
const entry = this.indexCache.get(userAddress);
|
|
374
|
-
if (!entry)
|
|
384
|
+
if (!entry) {
|
|
385
|
+
console.log(`[NodeHnswService] saveIndex: No cache entry for ${userAddress}, skipping`);
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
375
388
|
|
|
376
389
|
try {
|
|
377
390
|
const indexPath = this.getIndexPath(userAddress);
|
|
391
|
+
console.log(`[NodeHnswService] saveIndex: Writing to ${indexPath}`);
|
|
378
392
|
entry.index.writeIndex(indexPath);
|
|
393
|
+
console.log(`[NodeHnswService] saveIndex: writeIndex() complete`);
|
|
379
394
|
|
|
380
395
|
// Save metadata separately
|
|
381
396
|
const fs = await import('fs/promises');
|
|
@@ -385,19 +400,26 @@ export class NodeHnswService implements IHnswService {
|
|
|
385
400
|
metadataObj[k] = v;
|
|
386
401
|
}
|
|
387
402
|
|
|
388
|
-
// Preserve existing
|
|
389
|
-
|
|
403
|
+
// Preserve existing metadata and merge with in-memory metadata
|
|
404
|
+
// This prevents data loss when cache is cleared between requests
|
|
405
|
+
let existingMeta: Record<string, any> = {};
|
|
390
406
|
try {
|
|
391
407
|
const existingContent = await fs.readFile(metadataPath, 'utf-8');
|
|
392
|
-
|
|
408
|
+
existingMeta = JSON.parse(existingContent);
|
|
393
409
|
} catch {
|
|
394
410
|
// No existing metadata file
|
|
395
411
|
}
|
|
396
412
|
|
|
413
|
+
// Merge: existing metadata + in-memory metadata (in-memory takes priority for same keys)
|
|
414
|
+
const mergedMetadata = {
|
|
415
|
+
...(existingMeta.metadata || {}),
|
|
416
|
+
...metadataObj
|
|
417
|
+
};
|
|
418
|
+
|
|
397
419
|
await fs.writeFile(metadataPath, JSON.stringify({
|
|
398
420
|
version: entry.version,
|
|
399
421
|
dimensions: entry.dimensions,
|
|
400
|
-
metadata:
|
|
422
|
+
metadata: mergedMetadata,
|
|
401
423
|
walrusBlobId: existingMeta.walrusBlobId,
|
|
402
424
|
walrusSyncTime: existingMeta.walrusSyncTime
|
|
403
425
|
}));
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* - On-chain wallet registry integration
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
import { sha3_256 } from '@noble/hashes/sha3';
|
|
27
|
+
import { sha3_256 } from '@noble/hashes/sha3.js';
|
|
28
28
|
import { SuiClient } from '@mysten/sui/client';
|
|
29
29
|
import { Transaction } from '@mysten/sui/transactions';
|
|
30
30
|
// Use Web Crypto API (browser-compatible)
|
package/src/wallet/index.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wallet Module
|
|
3
|
-
*
|
|
4
|
-
* @deprecated This module is deprecated. Use CapabilityService and ContextNamespace instead.
|
|
5
|
-
* - MainWalletService → CapabilityService (from services/CapabilityService)
|
|
6
|
-
* - ContextWalletService → ContextNamespace (from client/namespaces/ContextNamespace)
|
|
7
|
-
*
|
|
8
|
-
* These services will be removed in the next major version.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/** @deprecated Use CapabilityService instead */
|
|
12
|
-
export { MainWalletService } from './MainWalletService';
|
|
13
|
-
export type { MainWalletServiceConfig } from './MainWalletService';
|
|
14
|
-
|
|
15
|
-
/** @deprecated Use ContextNamespace instead */
|
|
16
|
-
export { ContextWalletService } from './ContextWalletService';
|
|
17
|
-
export type { ContextWalletServiceConfig } from './ContextWalletService';
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Module
|
|
3
|
+
*
|
|
4
|
+
* @deprecated This module is deprecated. Use CapabilityService and ContextNamespace instead.
|
|
5
|
+
* - MainWalletService → CapabilityService (from services/CapabilityService)
|
|
6
|
+
* - ContextWalletService → ContextNamespace (from client/namespaces/ContextNamespace)
|
|
7
|
+
*
|
|
8
|
+
* These services will be removed in the next major version.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** @deprecated Use CapabilityService instead */
|
|
12
|
+
export { MainWalletService } from './MainWalletService';
|
|
13
|
+
export type { MainWalletServiceConfig } from './MainWalletService';
|
|
14
|
+
|
|
15
|
+
/** @deprecated Use ContextNamespace instead */
|
|
16
|
+
export { ContextWalletService } from './ContextWalletService';
|
|
17
|
+
export type { ContextWalletServiceConfig } from './ContextWalletService';
|
package/dist/api/client.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Client for Personal Data Wallet Backend
|
|
3
|
-
*
|
|
4
|
-
* Handles HTTP communication with the NestJS backend API
|
|
5
|
-
*/
|
|
6
|
-
import type { APIResponse, MemoryCreateOptions, MemorySearchOptions, MemorySearchResult, MemoryContext, MemoryContextOptions, ChatOptions, ChatSession, CreateSessionOptions, MemoryStatsResponse } from '../types';
|
|
7
|
-
import type { BatchStats } from '../core';
|
|
8
|
-
export declare class PDWApiClient {
|
|
9
|
-
private baseUrl;
|
|
10
|
-
private headers;
|
|
11
|
-
get baseURL(): string;
|
|
12
|
-
get defaultHeaders(): Record<string, string>;
|
|
13
|
-
constructor(apiUrl: string);
|
|
14
|
-
private request;
|
|
15
|
-
createMemory(options: MemoryCreateOptions): Promise<APIResponse<{
|
|
16
|
-
memoryId: string;
|
|
17
|
-
}>>;
|
|
18
|
-
getUserMemories(userAddress: string): Promise<APIResponse<{
|
|
19
|
-
memories: MemorySearchResult[];
|
|
20
|
-
}>>;
|
|
21
|
-
searchMemories(options: MemorySearchOptions): Promise<APIResponse<{
|
|
22
|
-
results: MemorySearchResult[];
|
|
23
|
-
}>>;
|
|
24
|
-
getMemoryContext(options: MemoryContextOptions): Promise<APIResponse<MemoryContext>>;
|
|
25
|
-
getMemoryStats(userAddress: string): Promise<APIResponse<MemoryStatsResponse>>;
|
|
26
|
-
deleteMemory(memoryId: string, userAddress: string): Promise<APIResponse<void>>;
|
|
27
|
-
getBatchStats(): Promise<APIResponse<BatchStats>>;
|
|
28
|
-
getChatSessions(userAddress: string): Promise<APIResponse<{
|
|
29
|
-
sessions: ChatSession[];
|
|
30
|
-
}>>;
|
|
31
|
-
getChatSession(sessionId: string, userAddress: string): Promise<APIResponse<ChatSession>>;
|
|
32
|
-
createChatSession(options: CreateSessionOptions): Promise<APIResponse<ChatSession>>;
|
|
33
|
-
deleteChatSession(sessionId: string, userAddress: string): Promise<APIResponse<void>>;
|
|
34
|
-
sendChatMessage(options: ChatOptions): Promise<APIResponse<any>>;
|
|
35
|
-
updateChatSessionTitle(sessionId: string, userAddress: string, title: string): Promise<APIResponse<void>>;
|
|
36
|
-
addMessageToSession(sessionId: string, content: string, type: string, userAddress: string): Promise<APIResponse<void>>;
|
|
37
|
-
saveChatSummary(sessionId: string, summary: string, userAddress: string): Promise<APIResponse<void>>;
|
|
38
|
-
/**
|
|
39
|
-
* Create EventSource for streaming chat responses
|
|
40
|
-
*/
|
|
41
|
-
createChatStream(options: ChatOptions): EventSource;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/api/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAyB;IAExC,IAAI,OAAO,WAA2B;IACtC,IAAI,cAAc,2BAA2B;gBAEjC,MAAM,EAAE,MAAM;YAOZ,OAAO;IAwBf,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IActF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC,CAAC;IAI9F,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC,CAAC;IAOrG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAOpF,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAI9E,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAO/E,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAMjD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC,CAAC;IAIvF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAIzF,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAOnF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAOrF,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAchE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAOzG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAOtH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAO1G;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;CAYpD"}
|
package/dist/api/client.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Client for Personal Data Wallet Backend
|
|
3
|
-
*
|
|
4
|
-
* Handles HTTP communication with the NestJS backend API
|
|
5
|
-
*/
|
|
6
|
-
export class PDWApiClient {
|
|
7
|
-
get baseURL() { return this.baseUrl; }
|
|
8
|
-
get defaultHeaders() { return this.headers; }
|
|
9
|
-
constructor(apiUrl) {
|
|
10
|
-
this.baseUrl = apiUrl.endsWith('/') ? apiUrl.slice(0, -1) : apiUrl;
|
|
11
|
-
this.headers = {
|
|
12
|
-
'Content-Type': 'application/json',
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
async request(endpoint, options = {}) {
|
|
16
|
-
const url = `${this.baseUrl}${endpoint}`;
|
|
17
|
-
const response = await fetch(url, {
|
|
18
|
-
...options,
|
|
19
|
-
headers: {
|
|
20
|
-
...this.headers,
|
|
21
|
-
...options.headers,
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
const errorText = await response.text();
|
|
26
|
-
throw new Error(`API request failed: ${response.status} ${errorText}`);
|
|
27
|
-
}
|
|
28
|
-
return response.json();
|
|
29
|
-
}
|
|
30
|
-
// ==================== MEMORY API ====================
|
|
31
|
-
async createMemory(options) {
|
|
32
|
-
return this.request('/memories', {
|
|
33
|
-
method: 'POST',
|
|
34
|
-
body: JSON.stringify({
|
|
35
|
-
content: options.content,
|
|
36
|
-
category: options.category,
|
|
37
|
-
userAddress: options.userAddress,
|
|
38
|
-
topic: options.topic,
|
|
39
|
-
importance: options.importance,
|
|
40
|
-
customMetadata: options.customMetadata,
|
|
41
|
-
}),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
async getUserMemories(userAddress) {
|
|
45
|
-
return this.request(`/memories?user=${encodeURIComponent(userAddress)}`);
|
|
46
|
-
}
|
|
47
|
-
async searchMemories(options) {
|
|
48
|
-
return this.request('/memories/search', {
|
|
49
|
-
method: 'POST',
|
|
50
|
-
body: JSON.stringify(options),
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async getMemoryContext(options) {
|
|
54
|
-
return this.request('/memories/context', {
|
|
55
|
-
method: 'POST',
|
|
56
|
-
body: JSON.stringify(options),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
async getMemoryStats(userAddress) {
|
|
60
|
-
return this.request(`/memories/stats?userAddress=${encodeURIComponent(userAddress)}`);
|
|
61
|
-
}
|
|
62
|
-
async deleteMemory(memoryId, userAddress) {
|
|
63
|
-
return this.request(`/memories/${memoryId}`, {
|
|
64
|
-
method: 'DELETE',
|
|
65
|
-
body: JSON.stringify({ userAddress }),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
async getBatchStats() {
|
|
69
|
-
return this.request('/memories/batch-stats');
|
|
70
|
-
}
|
|
71
|
-
// ==================== CHAT API ====================
|
|
72
|
-
async getChatSessions(userAddress) {
|
|
73
|
-
return this.request(`/chat/sessions?userAddress=${encodeURIComponent(userAddress)}`);
|
|
74
|
-
}
|
|
75
|
-
async getChatSession(sessionId, userAddress) {
|
|
76
|
-
return this.request(`/chat/sessions/${sessionId}?userAddress=${encodeURIComponent(userAddress)}`);
|
|
77
|
-
}
|
|
78
|
-
async createChatSession(options) {
|
|
79
|
-
return this.request('/chat/sessions', {
|
|
80
|
-
method: 'POST',
|
|
81
|
-
body: JSON.stringify(options),
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
async deleteChatSession(sessionId, userAddress) {
|
|
85
|
-
return this.request(`/chat/sessions/${sessionId}`, {
|
|
86
|
-
method: 'DELETE',
|
|
87
|
-
body: JSON.stringify({ userAddress }),
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
async sendChatMessage(options) {
|
|
91
|
-
return this.request('/chat', {
|
|
92
|
-
method: 'POST',
|
|
93
|
-
body: JSON.stringify({
|
|
94
|
-
text: options.text,
|
|
95
|
-
userId: options.userId,
|
|
96
|
-
sessionId: options.sessionId,
|
|
97
|
-
model: options.model,
|
|
98
|
-
userAddress: options.userAddress,
|
|
99
|
-
memoryContext: options.memoryContext,
|
|
100
|
-
}),
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
async updateChatSessionTitle(sessionId, userAddress, title) {
|
|
104
|
-
return this.request(`/chat/sessions/${sessionId}/title`, {
|
|
105
|
-
method: 'PUT',
|
|
106
|
-
body: JSON.stringify({ userAddress, title }),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
async addMessageToSession(sessionId, content, type, userAddress) {
|
|
110
|
-
return this.request(`/chat/sessions/${sessionId}/messages`, {
|
|
111
|
-
method: 'POST',
|
|
112
|
-
body: JSON.stringify({ content, type, userAddress }),
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
async saveChatSummary(sessionId, summary, userAddress) {
|
|
116
|
-
return this.request('/chat/summary', {
|
|
117
|
-
method: 'POST',
|
|
118
|
-
body: JSON.stringify({ sessionId, summary, userAddress }),
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create EventSource for streaming chat responses
|
|
123
|
-
*/
|
|
124
|
-
createChatStream(options) {
|
|
125
|
-
const params = new URLSearchParams({
|
|
126
|
-
text: options.text,
|
|
127
|
-
userId: options.userId,
|
|
128
|
-
...(options.sessionId && { sessionId: options.sessionId }),
|
|
129
|
-
...(options.model && { model: options.model }),
|
|
130
|
-
...(options.userAddress && { userAddress: options.userAddress }),
|
|
131
|
-
...(options.memoryContext && { memoryContext: options.memoryContext }),
|
|
132
|
-
});
|
|
133
|
-
return new EventSource(`${this.baseUrl}/chat/stream?${params.toString()}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=client.js.map
|
package/dist/api/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/chat/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat Module - DEPRECATED
|
|
3
|
-
*
|
|
4
|
-
* ⚠️ DEPRECATION NOTICE:
|
|
5
|
-
* This directory is deprecated. Use services/ChatService instead.
|
|
6
|
-
*
|
|
7
|
-
* Migration Guide:
|
|
8
|
-
* - ChatService → services/ChatService
|
|
9
|
-
*
|
|
10
|
-
* This export is maintained for backward compatibility only.
|
|
11
|
-
*/
|
|
12
|
-
export { ChatService } from '../services/ChatService';
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/chat/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC"}
|