@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.
Files changed (273) hide show
  1. package/ARCHITECTURE.md +547 -463
  2. package/BENCHMARKS.md +238 -238
  3. package/README.md +181 -142
  4. package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -1
  5. package/dist/ai-sdk/PDWVectorStore.js +4 -1
  6. package/dist/ai-sdk/PDWVectorStore.js.map +1 -1
  7. package/dist/ai-sdk/types.d.ts +2 -2
  8. package/dist/ai-sdk/types.d.ts.map +1 -1
  9. package/dist/browser.d.ts +12 -13
  10. package/dist/browser.d.ts.map +1 -1
  11. package/dist/browser.js +18 -12
  12. package/dist/browser.js.map +1 -1
  13. package/dist/client/ClientMemoryManager.d.ts +1 -0
  14. package/dist/client/ClientMemoryManager.d.ts.map +1 -1
  15. package/dist/client/ClientMemoryManager.js +5 -1
  16. package/dist/client/ClientMemoryManager.js.map +1 -1
  17. package/dist/client/SimplePDWClient.d.ts +23 -0
  18. package/dist/client/SimplePDWClient.d.ts.map +1 -1
  19. package/dist/client/SimplePDWClient.js +19 -6
  20. package/dist/client/SimplePDWClient.js.map +1 -1
  21. package/dist/client/namespaces/BatchNamespace.js +2 -2
  22. package/dist/client/namespaces/BatchNamespace.js.map +1 -1
  23. package/dist/client/namespaces/IndexNamespace.d.ts +38 -9
  24. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
  25. package/dist/client/namespaces/IndexNamespace.js +77 -10
  26. package/dist/client/namespaces/IndexNamespace.js.map +1 -1
  27. package/dist/client/namespaces/MemoryNamespace.js +3 -3
  28. package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
  29. package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -1
  30. package/dist/client/namespaces/SearchNamespace.js +25 -14
  31. package/dist/client/namespaces/SearchNamespace.js.map +1 -1
  32. package/dist/client/namespaces/StorageNamespace.js +4 -4
  33. package/dist/client/namespaces/StorageNamespace.js.map +1 -1
  34. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
  35. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +49 -1
  36. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
  37. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +46 -0
  38. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
  39. package/dist/client/namespaces/consolidated/StorageNamespace.js +36 -2
  40. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
  41. package/dist/client/signers/DappKitSigner.d.ts +136 -0
  42. package/dist/client/signers/DappKitSigner.d.ts.map +1 -0
  43. package/dist/client/signers/DappKitSigner.js +128 -0
  44. package/dist/client/signers/DappKitSigner.js.map +1 -0
  45. package/dist/client/signers/KeypairSigner.d.ts +4 -0
  46. package/dist/client/signers/KeypairSigner.d.ts.map +1 -1
  47. package/dist/client/signers/KeypairSigner.js +6 -0
  48. package/dist/client/signers/KeypairSigner.js.map +1 -1
  49. package/dist/client/signers/UnifiedSigner.d.ts +10 -0
  50. package/dist/client/signers/UnifiedSigner.d.ts.map +1 -1
  51. package/dist/client/signers/WalletAdapterSigner.d.ts +7 -0
  52. package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -1
  53. package/dist/client/signers/WalletAdapterSigner.js +9 -0
  54. package/dist/client/signers/WalletAdapterSigner.js.map +1 -1
  55. package/dist/client/signers/index.d.ts +3 -0
  56. package/dist/client/signers/index.d.ts.map +1 -1
  57. package/dist/client/signers/index.js +2 -0
  58. package/dist/client/signers/index.js.map +1 -1
  59. package/dist/generated/utils/index.js +1 -1
  60. package/dist/generated/utils/index.js.map +1 -1
  61. package/dist/graph/GraphService.js +1 -1
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/permissions/ConsentRepository.browser.d.ts +56 -0
  67. package/dist/permissions/ConsentRepository.browser.d.ts.map +1 -0
  68. package/dist/permissions/ConsentRepository.browser.js +198 -0
  69. package/dist/permissions/ConsentRepository.browser.js.map +1 -0
  70. package/dist/services/CapabilityService.js +1 -1
  71. package/dist/services/CapabilityService.js.map +1 -1
  72. package/dist/services/EncryptionService.js +1 -1
  73. package/dist/services/EncryptionService.js.map +1 -1
  74. package/dist/services/GeminiAIService.d.ts.map +1 -1
  75. package/dist/services/GeminiAIService.js +283 -27
  76. package/dist/services/GeminiAIService.js.map +1 -1
  77. package/dist/services/MemoryIndexService.d.ts +31 -2
  78. package/dist/services/MemoryIndexService.d.ts.map +1 -1
  79. package/dist/services/MemoryIndexService.js +75 -3
  80. package/dist/services/MemoryIndexService.js.map +1 -1
  81. package/dist/services/StorageService.d.ts +8 -8
  82. package/dist/services/StorageService.d.ts.map +1 -1
  83. package/dist/services/StorageService.js.map +1 -1
  84. package/dist/services/VectorService.js +2 -2
  85. package/dist/services/VectorService.js.map +1 -1
  86. package/dist/services/storage/BlobAttributesManager.d.ts +4 -4
  87. package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -1
  88. package/dist/services/storage/BlobAttributesManager.js +6 -15
  89. package/dist/services/storage/BlobAttributesManager.js.map +1 -1
  90. package/dist/services/storage/QuiltBatchManager.d.ts +33 -8
  91. package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
  92. package/dist/services/storage/QuiltBatchManager.js +153 -48
  93. package/dist/services/storage/QuiltBatchManager.js.map +1 -1
  94. package/dist/services/storage/WalrusMetadataManager.d.ts +2 -2
  95. package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -1
  96. package/dist/services/storage/WalrusMetadataManager.js +2 -5
  97. package/dist/services/storage/WalrusMetadataManager.js.map +1 -1
  98. package/dist/services/storage/WalrusStorageManager.d.ts +2 -2
  99. package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -1
  100. package/dist/services/storage/WalrusStorageManager.js +7 -11
  101. package/dist/services/storage/WalrusStorageManager.js.map +1 -1
  102. package/dist/utils/rebuildIndexNode.d.ts.map +1 -1
  103. package/dist/utils/rebuildIndexNode.js +109 -35
  104. package/dist/utils/rebuildIndexNode.js.map +1 -1
  105. package/dist/vector/NodeHnswService.d.ts.map +1 -1
  106. package/dist/vector/NodeHnswService.js +26 -7
  107. package/dist/vector/NodeHnswService.js.map +1 -1
  108. package/dist/wallet/MainWalletService.js +1 -1
  109. package/dist/wallet/MainWalletService.js.map +1 -1
  110. package/package.json +10 -3
  111. package/src/access/index.ts +8 -8
  112. package/src/aggregation/index.ts +8 -8
  113. package/src/ai-sdk/PDWVectorStore.ts +4 -1
  114. package/src/ai-sdk/types.ts +2 -2
  115. package/src/browser.ts +28 -24
  116. package/src/client/ClientMemoryManager.ts +6 -1
  117. package/src/client/SimplePDWClient.ts +57 -15
  118. package/src/client/namespaces/BatchNamespace.ts +2 -2
  119. package/src/client/namespaces/IndexNamespace.ts +89 -11
  120. package/src/client/namespaces/MemoryNamespace.ts +3 -3
  121. package/src/client/namespaces/SearchNamespace.ts +27 -14
  122. package/src/client/namespaces/StorageNamespace.ts +4 -4
  123. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +55 -1
  124. package/src/client/namespaces/consolidated/StorageNamespace.ts +59 -2
  125. package/src/client/signers/DappKitSigner.ts +207 -0
  126. package/src/client/signers/KeypairSigner.ts +7 -0
  127. package/src/client/signers/UnifiedSigner.ts +11 -0
  128. package/src/client/signers/WalletAdapterSigner.ts +10 -0
  129. package/src/client/signers/index.ts +7 -0
  130. package/src/generated/pdw/capability.ts +319 -319
  131. package/src/generated/utils/index.ts +1 -1
  132. package/src/graph/GraphService.ts +1 -1
  133. package/src/index.ts +16 -0
  134. package/src/permissions/ConsentRepository.browser.ts +249 -0
  135. package/src/permissions/index.ts +9 -9
  136. package/src/services/CapabilityService.ts +1 -1
  137. package/src/services/EncryptionService.ts +1 -1
  138. package/src/services/GeminiAIService.ts +283 -27
  139. package/src/services/MemoryIndexService.ts +85 -3
  140. package/src/services/StorageService.ts +8 -8
  141. package/src/services/VectorService.ts +2 -2
  142. package/src/services/storage/BlobAttributesManager.ts +10 -19
  143. package/src/services/storage/QuiltBatchManager.ts +178 -50
  144. package/src/services/storage/WalrusMetadataManager.ts +4 -7
  145. package/src/services/storage/WalrusStorageManager.ts +10 -13
  146. package/src/utils/rebuildIndexNode.ts +126 -43
  147. package/src/vector/NodeHnswService.ts +29 -7
  148. package/src/wallet/MainWalletService.ts +1 -1
  149. package/src/wallet/index.ts +17 -17
  150. package/dist/api/client.d.ts +0 -43
  151. package/dist/api/client.d.ts.map +0 -1
  152. package/dist/api/client.js +0 -136
  153. package/dist/api/client.js.map +0 -1
  154. package/dist/chat/index.d.ts +0 -13
  155. package/dist/chat/index.d.ts.map +0 -1
  156. package/dist/chat/index.js +0 -14
  157. package/dist/chat/index.js.map +0 -1
  158. package/dist/client/namespaces/ChatNamespace.d.ts +0 -110
  159. package/dist/client/namespaces/ChatNamespace.d.ts.map +0 -1
  160. package/dist/client/namespaces/ChatNamespace.js +0 -123
  161. package/dist/client/namespaces/ChatNamespace.js.map +0 -1
  162. package/dist/encryption/index.d.ts +0 -14
  163. package/dist/encryption/index.d.ts.map +0 -1
  164. package/dist/encryption/index.js +0 -14
  165. package/dist/encryption/index.js.map +0 -1
  166. package/dist/graph/BrowserKnowledgeGraphManager.d.ts +0 -101
  167. package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +0 -1
  168. package/dist/graph/BrowserKnowledgeGraphManager.js +0 -411
  169. package/dist/graph/BrowserKnowledgeGraphManager.js.map +0 -1
  170. package/dist/hooks.wip/index.d.ts +0 -55
  171. package/dist/hooks.wip/index.d.ts.map +0 -1
  172. package/dist/hooks.wip/index.js +0 -58
  173. package/dist/hooks.wip/index.js.map +0 -1
  174. package/dist/hooks.wip/useCreateMemory.d.ts +0 -111
  175. package/dist/hooks.wip/useCreateMemory.d.ts.map +0 -1
  176. package/dist/hooks.wip/useCreateMemory.js +0 -149
  177. package/dist/hooks.wip/useCreateMemory.js.map +0 -1
  178. package/dist/hooks.wip/useCreateMemoryBatch.d.ts +0 -122
  179. package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +0 -1
  180. package/dist/hooks.wip/useCreateMemoryBatch.js +0 -221
  181. package/dist/hooks.wip/useCreateMemoryBatch.js.map +0 -1
  182. package/dist/hooks.wip/useKnowledgeGraph.d.ts +0 -66
  183. package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +0 -1
  184. package/dist/hooks.wip/useKnowledgeGraph.js +0 -229
  185. package/dist/hooks.wip/useKnowledgeGraph.js.map +0 -1
  186. package/dist/hooks.wip/useMemoryChat.d.ts +0 -106
  187. package/dist/hooks.wip/useMemoryChat.d.ts.map +0 -1
  188. package/dist/hooks.wip/useMemoryChat.js +0 -284
  189. package/dist/hooks.wip/useMemoryChat.js.map +0 -1
  190. package/dist/hooks.wip/useMemoryIndex.d.ts +0 -90
  191. package/dist/hooks.wip/useMemoryIndex.d.ts.map +0 -1
  192. package/dist/hooks.wip/useMemoryIndex.js +0 -218
  193. package/dist/hooks.wip/useMemoryIndex.js.map +0 -1
  194. package/dist/hooks.wip/useMemoryManager.d.ts +0 -35
  195. package/dist/hooks.wip/useMemoryManager.d.ts.map +0 -1
  196. package/dist/hooks.wip/useMemoryManager.js +0 -86
  197. package/dist/hooks.wip/useMemoryManager.js.map +0 -1
  198. package/dist/hooks.wip/useMemorySearch.d.ts +0 -100
  199. package/dist/hooks.wip/useMemorySearch.d.ts.map +0 -1
  200. package/dist/hooks.wip/useMemorySearch.js +0 -278
  201. package/dist/hooks.wip/useMemorySearch.js.map +0 -1
  202. package/dist/hooks.wip/useMemoryServices.d.ts +0 -80
  203. package/dist/hooks.wip/useMemoryServices.d.ts.map +0 -1
  204. package/dist/hooks.wip/useMemoryServices.js +0 -264
  205. package/dist/hooks.wip/useMemoryServices.js.map +0 -1
  206. package/dist/hooks.wip/usePDWRAG.d.ts +0 -112
  207. package/dist/hooks.wip/usePDWRAG.d.ts.map +0 -1
  208. package/dist/hooks.wip/usePDWRAG.js +0 -121
  209. package/dist/hooks.wip/usePDWRAG.js.map +0 -1
  210. package/dist/hooks.wip/usePDWVectorStore.d.ts +0 -68
  211. package/dist/hooks.wip/usePDWVectorStore.d.ts.map +0 -1
  212. package/dist/hooks.wip/usePDWVectorStore.js +0 -102
  213. package/dist/hooks.wip/usePDWVectorStore.js.map +0 -1
  214. package/dist/hooks.wip/useRetrieveEmbedding.d.ts +0 -138
  215. package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +0 -1
  216. package/dist/hooks.wip/useRetrieveEmbedding.js +0 -121
  217. package/dist/hooks.wip/useRetrieveEmbedding.js.map +0 -1
  218. package/dist/hooks.wip/useSearchMemories.d.ts +0 -103
  219. package/dist/hooks.wip/useSearchMemories.d.ts.map +0 -1
  220. package/dist/hooks.wip/useSearchMemories.js +0 -146
  221. package/dist/hooks.wip/useSearchMemories.js.map +0 -1
  222. package/dist/hooks.wip/useStoreEmbedding.d.ts +0 -174
  223. package/dist/hooks.wip/useStoreEmbedding.d.ts.map +0 -1
  224. package/dist/hooks.wip/useStoreEmbedding.js +0 -167
  225. package/dist/hooks.wip/useStoreEmbedding.js.map +0 -1
  226. package/dist/hooks.wip/useWalletMemories.d.ts +0 -119
  227. package/dist/hooks.wip/useWalletMemories.d.ts.map +0 -1
  228. package/dist/hooks.wip/useWalletMemories.js +0 -166
  229. package/dist/hooks.wip/useWalletMemories.js.map +0 -1
  230. package/dist/hooks.wip/utils/cache.d.ts +0 -25
  231. package/dist/hooks.wip/utils/cache.d.ts.map +0 -1
  232. package/dist/hooks.wip/utils/cache.js +0 -38
  233. package/dist/hooks.wip/utils/cache.js.map +0 -1
  234. package/dist/hooks.wip/utils/types.d.ts +0 -138
  235. package/dist/hooks.wip/utils/types.d.ts.map +0 -1
  236. package/dist/hooks.wip/utils/types.js +0 -5
  237. package/dist/hooks.wip/utils/types.js.map +0 -1
  238. package/dist/infrastructure/ai/EmbeddingService.d.ts +0 -101
  239. package/dist/infrastructure/ai/EmbeddingService.d.ts.map +0 -1
  240. package/dist/infrastructure/ai/EmbeddingService.js +0 -242
  241. package/dist/infrastructure/ai/EmbeddingService.js.map +0 -1
  242. package/dist/infrastructure/ai/GeminiAIService.d.ts +0 -84
  243. package/dist/infrastructure/ai/GeminiAIService.d.ts.map +0 -1
  244. package/dist/infrastructure/ai/GeminiAIService.js +0 -300
  245. package/dist/infrastructure/ai/GeminiAIService.js.map +0 -1
  246. package/dist/infrastructure/ai/index.d.ts +0 -8
  247. package/dist/infrastructure/ai/index.d.ts.map +0 -1
  248. package/dist/infrastructure/ai/index.js +0 -8
  249. package/dist/infrastructure/ai/index.js.map +0 -1
  250. package/dist/memory/index.d.ts +0 -13
  251. package/dist/memory/index.d.ts.map +0 -1
  252. package/dist/memory/index.js +0 -14
  253. package/dist/memory/index.js.map +0 -1
  254. package/dist/services/ChatService.d.ts +0 -89
  255. package/dist/services/ChatService.d.ts.map +0 -1
  256. package/dist/services/ChatService.js +0 -319
  257. package/dist/services/ChatService.js.map +0 -1
  258. package/dist/transactions/index.d.ts +0 -13
  259. package/dist/transactions/index.d.ts.map +0 -1
  260. package/dist/transactions/index.js +0 -14
  261. package/dist/transactions/index.js.map +0 -1
  262. package/dist/types/wallet.d.ts +0 -12
  263. package/dist/types/wallet.d.ts.map +0 -1
  264. package/dist/types/wallet.js +0 -13
  265. package/dist/types/wallet.js.map +0 -1
  266. package/dist/view/ViewService.d.ts +0 -136
  267. package/dist/view/ViewService.d.ts.map +0 -1
  268. package/dist/view/ViewService.js +0 -325
  269. package/dist/view/ViewService.js.map +0 -1
  270. package/dist/view/index.d.ts +0 -7
  271. package/dist/view/index.d.ts.map +0 -1
  272. package/dist/view/index.js +0 -7
  273. 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: 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.toSuiAddress());
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: 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: options.signer.toSuiAddress(),
170
+ owner: signerAddress,
168
171
  });
169
172
 
170
- registerTx.setSender(options.signer.toSuiAddress());
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(options.signer.toSuiAddress());
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 each memory
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
- for (let i = 0; i < memories.length; i++) {
220
- const memory = memories[i];
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
- console.log(`[rebuildIndexNode] Processing ${progress}: ${memory.blobId.substring(0, 20)}...`);
224
- onProgress?.(i + 1, totalMemories, `Processing ${progress}...`);
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
- // Download content from Walrus using SDK
228
- const blobContent = await walrusClient.walrus.readBlob({ blobId: memory.blobId });
229
-
230
- // Parse JSON content
231
- const textDecoder = new TextDecoder();
232
- const jsonString = textDecoder.decode(blobContent);
233
- const memoryData: MemoryContent = JSON.parse(jsonString);
234
-
235
- // Extract embedding
236
- const embedding = memoryData.embedding;
237
- if (!embedding || embedding.length !== 3072) {
238
- throw new Error(`Invalid embedding: length=${embedding?.length || 0}`);
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
- // Add to HNSW index
242
- // Option A+: Store content in index for fast local retrieval (no Walrus fetch needed)
243
- // Note: Only for unencrypted content. If content was encrypted, it won't be parseable anyway.
244
- await hnswService.addVector(
245
- userAddress,
246
- memory.vectorId,
247
- embedding,
248
- {
249
- blobId: memory.blobId,
250
- memoryObjectId: memory.id,
251
- category: memory.category,
252
- importance: memory.importance,
253
- topic: memoryData.metadata?.topic || '',
254
- timestamp: memoryData.timestamp,
255
- // Option A+: Store content for fast retrieval (avoids Walrus fetch on search)
256
- content: memoryData.content,
257
- isEncrypted: false // If we can parse it, it's not encrypted
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
- failedCount++;
343
+ // Failed to fetch files for this blobId
266
344
  const errorMsg = error.message || String(error);
267
- errors.push({ blobId: memory.blobId, error: errorMsg });
268
- console.error(`[rebuildIndexNode] ✗ Failed: ${errorMsg}`);
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) return;
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] Flush batch error:', error);
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) return;
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 walrus blob ID if present
389
- const existingMeta: Record<string, any> = {};
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
- Object.assign(existingMeta, JSON.parse(existingContent));
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: metadataObj,
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)
@@ -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';
@@ -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
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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"}