@cmdoss/memwal-sdk 0.6.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.
Files changed (784) hide show
  1. package/ARCHITECTURE.md +463 -0
  2. package/BENCHMARKS.md +238 -0
  3. package/README.md +142 -0
  4. package/dist/access/PermissionService.d.ts +179 -0
  5. package/dist/access/PermissionService.d.ts.map +1 -0
  6. package/dist/access/PermissionService.js +445 -0
  7. package/dist/access/PermissionService.js.map +1 -0
  8. package/dist/access/index.d.ts +8 -0
  9. package/dist/access/index.d.ts.map +1 -0
  10. package/dist/access/index.js +7 -0
  11. package/dist/access/index.js.map +1 -0
  12. package/dist/aggregation/AggregationService.d.ts +132 -0
  13. package/dist/aggregation/AggregationService.d.ts.map +1 -0
  14. package/dist/aggregation/AggregationService.js +225 -0
  15. package/dist/aggregation/AggregationService.js.map +1 -0
  16. package/dist/aggregation/index.d.ts +8 -0
  17. package/dist/aggregation/index.d.ts.map +1 -0
  18. package/dist/aggregation/index.js +7 -0
  19. package/dist/aggregation/index.js.map +1 -0
  20. package/dist/ai-sdk/PDWVectorStore.d.ts +124 -0
  21. package/dist/ai-sdk/PDWVectorStore.d.ts.map +1 -0
  22. package/dist/ai-sdk/PDWVectorStore.js +557 -0
  23. package/dist/ai-sdk/PDWVectorStore.js.map +1 -0
  24. package/dist/ai-sdk/index.d.ts +45 -0
  25. package/dist/ai-sdk/index.d.ts.map +1 -0
  26. package/dist/ai-sdk/index.js +45 -0
  27. package/dist/ai-sdk/index.js.map +1 -0
  28. package/dist/ai-sdk/tools.d.ts +153 -0
  29. package/dist/ai-sdk/tools.d.ts.map +1 -0
  30. package/dist/ai-sdk/tools.js +312 -0
  31. package/dist/ai-sdk/tools.js.map +1 -0
  32. package/dist/ai-sdk/types.d.ts +336 -0
  33. package/dist/ai-sdk/types.d.ts.map +1 -0
  34. package/dist/ai-sdk/types.js +36 -0
  35. package/dist/ai-sdk/types.js.map +1 -0
  36. package/dist/api/client.d.ts +43 -0
  37. package/dist/api/client.d.ts.map +1 -0
  38. package/dist/api/client.js +136 -0
  39. package/dist/api/client.js.map +1 -0
  40. package/dist/batch/BatchManager.d.ts +147 -0
  41. package/dist/batch/BatchManager.d.ts.map +1 -0
  42. package/dist/batch/BatchManager.js +427 -0
  43. package/dist/batch/BatchManager.js.map +1 -0
  44. package/dist/batch/BatchingService.d.ts +122 -0
  45. package/dist/batch/BatchingService.d.ts.map +1 -0
  46. package/dist/batch/BatchingService.js +301 -0
  47. package/dist/batch/BatchingService.js.map +1 -0
  48. package/dist/batch/MemoryProcessingCache.d.ts +147 -0
  49. package/dist/batch/MemoryProcessingCache.d.ts.map +1 -0
  50. package/dist/batch/MemoryProcessingCache.js +349 -0
  51. package/dist/batch/MemoryProcessingCache.js.map +1 -0
  52. package/dist/batch/index.d.ts +13 -0
  53. package/dist/batch/index.d.ts.map +1 -0
  54. package/dist/batch/index.js +10 -0
  55. package/dist/batch/index.js.map +1 -0
  56. package/dist/browser.d.ts +73 -0
  57. package/dist/browser.d.ts.map +1 -0
  58. package/dist/browser.js +66 -0
  59. package/dist/browser.js.map +1 -0
  60. package/dist/chat/index.d.ts +13 -0
  61. package/dist/chat/index.d.ts.map +1 -0
  62. package/dist/chat/index.js +14 -0
  63. package/dist/chat/index.js.map +1 -0
  64. package/dist/client/ClientMemoryManager.d.ts +202 -0
  65. package/dist/client/ClientMemoryManager.d.ts.map +1 -0
  66. package/dist/client/ClientMemoryManager.js +764 -0
  67. package/dist/client/ClientMemoryManager.js.map +1 -0
  68. package/dist/client/PersonalDataWallet.d.ts +406 -0
  69. package/dist/client/PersonalDataWallet.d.ts.map +1 -0
  70. package/dist/client/PersonalDataWallet.js +229 -0
  71. package/dist/client/PersonalDataWallet.js.map +1 -0
  72. package/dist/client/SimplePDWClient.d.ts +534 -0
  73. package/dist/client/SimplePDWClient.d.ts.map +1 -0
  74. package/dist/client/SimplePDWClient.js +876 -0
  75. package/dist/client/SimplePDWClient.js.map +1 -0
  76. package/dist/client/factory.d.ts +99 -0
  77. package/dist/client/factory.d.ts.map +1 -0
  78. package/dist/client/factory.js +126 -0
  79. package/dist/client/factory.js.map +1 -0
  80. package/dist/client/namespaces/AnalyticsNamespace.d.ts +178 -0
  81. package/dist/client/namespaces/AnalyticsNamespace.d.ts.map +1 -0
  82. package/dist/client/namespaces/AnalyticsNamespace.js +261 -0
  83. package/dist/client/namespaces/AnalyticsNamespace.js.map +1 -0
  84. package/dist/client/namespaces/BatchNamespace.d.ts +120 -0
  85. package/dist/client/namespaces/BatchNamespace.d.ts.map +1 -0
  86. package/dist/client/namespaces/BatchNamespace.js +261 -0
  87. package/dist/client/namespaces/BatchNamespace.js.map +1 -0
  88. package/dist/client/namespaces/CacheNamespace.d.ts +80 -0
  89. package/dist/client/namespaces/CacheNamespace.d.ts.map +1 -0
  90. package/dist/client/namespaces/CacheNamespace.js +100 -0
  91. package/dist/client/namespaces/CacheNamespace.js.map +1 -0
  92. package/dist/client/namespaces/CapabilityNamespace.d.ts +145 -0
  93. package/dist/client/namespaces/CapabilityNamespace.d.ts.map +1 -0
  94. package/dist/client/namespaces/CapabilityNamespace.js +181 -0
  95. package/dist/client/namespaces/CapabilityNamespace.js.map +1 -0
  96. package/dist/client/namespaces/ChatNamespace.d.ts +110 -0
  97. package/dist/client/namespaces/ChatNamespace.d.ts.map +1 -0
  98. package/dist/client/namespaces/ChatNamespace.js +123 -0
  99. package/dist/client/namespaces/ChatNamespace.js.map +1 -0
  100. package/dist/client/namespaces/ClassifyNamespace.d.ts +96 -0
  101. package/dist/client/namespaces/ClassifyNamespace.d.ts.map +1 -0
  102. package/dist/client/namespaces/ClassifyNamespace.js +149 -0
  103. package/dist/client/namespaces/ClassifyNamespace.js.map +1 -0
  104. package/dist/client/namespaces/ContextNamespace.d.ts +150 -0
  105. package/dist/client/namespaces/ContextNamespace.d.ts.map +1 -0
  106. package/dist/client/namespaces/ContextNamespace.js +250 -0
  107. package/dist/client/namespaces/ContextNamespace.js.map +1 -0
  108. package/dist/client/namespaces/EmbeddingsNamespace.d.ts +64 -0
  109. package/dist/client/namespaces/EmbeddingsNamespace.d.ts.map +1 -0
  110. package/dist/client/namespaces/EmbeddingsNamespace.js +86 -0
  111. package/dist/client/namespaces/EmbeddingsNamespace.js.map +1 -0
  112. package/dist/client/namespaces/EncryptionNamespace.d.ts +128 -0
  113. package/dist/client/namespaces/EncryptionNamespace.d.ts.map +1 -0
  114. package/dist/client/namespaces/EncryptionNamespace.js +161 -0
  115. package/dist/client/namespaces/EncryptionNamespace.js.map +1 -0
  116. package/dist/client/namespaces/GraphNamespace.d.ts +168 -0
  117. package/dist/client/namespaces/GraphNamespace.d.ts.map +1 -0
  118. package/dist/client/namespaces/GraphNamespace.js +314 -0
  119. package/dist/client/namespaces/GraphNamespace.js.map +1 -0
  120. package/dist/client/namespaces/IndexNamespace.d.ts +141 -0
  121. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -0
  122. package/dist/client/namespaces/IndexNamespace.js +238 -0
  123. package/dist/client/namespaces/IndexNamespace.js.map +1 -0
  124. package/dist/client/namespaces/MemoryNamespace.d.ts +277 -0
  125. package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -0
  126. package/dist/client/namespaces/MemoryNamespace.js +907 -0
  127. package/dist/client/namespaces/MemoryNamespace.js.map +1 -0
  128. package/dist/client/namespaces/PermissionsNamespace.d.ts +114 -0
  129. package/dist/client/namespaces/PermissionsNamespace.d.ts.map +1 -0
  130. package/dist/client/namespaces/PermissionsNamespace.js +179 -0
  131. package/dist/client/namespaces/PermissionsNamespace.js.map +1 -0
  132. package/dist/client/namespaces/PipelineNamespace.d.ts +125 -0
  133. package/dist/client/namespaces/PipelineNamespace.d.ts.map +1 -0
  134. package/dist/client/namespaces/PipelineNamespace.js +171 -0
  135. package/dist/client/namespaces/PipelineNamespace.js.map +1 -0
  136. package/dist/client/namespaces/SearchNamespace.d.ts +382 -0
  137. package/dist/client/namespaces/SearchNamespace.d.ts.map +1 -0
  138. package/dist/client/namespaces/SearchNamespace.js +821 -0
  139. package/dist/client/namespaces/SearchNamespace.js.map +1 -0
  140. package/dist/client/namespaces/StorageNamespace.d.ts +180 -0
  141. package/dist/client/namespaces/StorageNamespace.d.ts.map +1 -0
  142. package/dist/client/namespaces/StorageNamespace.js +354 -0
  143. package/dist/client/namespaces/StorageNamespace.js.map +1 -0
  144. package/dist/client/namespaces/TxNamespace.d.ts +143 -0
  145. package/dist/client/namespaces/TxNamespace.d.ts.map +1 -0
  146. package/dist/client/namespaces/TxNamespace.js +208 -0
  147. package/dist/client/namespaces/TxNamespace.js.map +1 -0
  148. package/dist/client/namespaces/WalletNamespace.d.ts +124 -0
  149. package/dist/client/namespaces/WalletNamespace.d.ts.map +1 -0
  150. package/dist/client/namespaces/WalletNamespace.js +197 -0
  151. package/dist/client/namespaces/WalletNamespace.js.map +1 -0
  152. package/dist/client/namespaces/consolidated/AINamespace.d.ts +265 -0
  153. package/dist/client/namespaces/consolidated/AINamespace.d.ts.map +1 -0
  154. package/dist/client/namespaces/consolidated/AINamespace.js +390 -0
  155. package/dist/client/namespaces/consolidated/AINamespace.js.map +1 -0
  156. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +265 -0
  157. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -0
  158. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +412 -0
  159. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -0
  160. package/dist/client/namespaces/consolidated/SecurityNamespace.d.ts +354 -0
  161. package/dist/client/namespaces/consolidated/SecurityNamespace.d.ts.map +1 -0
  162. package/dist/client/namespaces/consolidated/SecurityNamespace.js +522 -0
  163. package/dist/client/namespaces/consolidated/SecurityNamespace.js.map +1 -0
  164. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +235 -0
  165. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -0
  166. package/dist/client/namespaces/consolidated/StorageNamespace.js +351 -0
  167. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -0
  168. package/dist/client/namespaces/consolidated/index.d.ts +17 -0
  169. package/dist/client/namespaces/consolidated/index.d.ts.map +1 -0
  170. package/dist/client/namespaces/consolidated/index.js +13 -0
  171. package/dist/client/namespaces/consolidated/index.js.map +1 -0
  172. package/dist/client/signers/KeypairSigner.d.ts +55 -0
  173. package/dist/client/signers/KeypairSigner.d.ts.map +1 -0
  174. package/dist/client/signers/KeypairSigner.js +84 -0
  175. package/dist/client/signers/KeypairSigner.js.map +1 -0
  176. package/dist/client/signers/UnifiedSigner.d.ts +88 -0
  177. package/dist/client/signers/UnifiedSigner.d.ts.map +1 -0
  178. package/dist/client/signers/UnifiedSigner.js +13 -0
  179. package/dist/client/signers/UnifiedSigner.js.map +1 -0
  180. package/dist/client/signers/WalletAdapterSigner.d.ts +94 -0
  181. package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -0
  182. package/dist/client/signers/WalletAdapterSigner.js +91 -0
  183. package/dist/client/signers/WalletAdapterSigner.js.map +1 -0
  184. package/dist/client/signers/index.d.ts +14 -0
  185. package/dist/client/signers/index.d.ts.map +1 -0
  186. package/dist/client/signers/index.js +12 -0
  187. package/dist/client/signers/index.js.map +1 -0
  188. package/dist/config/ConfigurationHelper.d.ts +167 -0
  189. package/dist/config/ConfigurationHelper.d.ts.map +1 -0
  190. package/dist/config/ConfigurationHelper.js +283 -0
  191. package/dist/config/ConfigurationHelper.js.map +1 -0
  192. package/dist/config/defaults.d.ts +9 -0
  193. package/dist/config/defaults.d.ts.map +1 -0
  194. package/dist/config/defaults.js +49 -0
  195. package/dist/config/defaults.js.map +1 -0
  196. package/dist/config/index.d.ts +9 -0
  197. package/dist/config/index.d.ts.map +1 -0
  198. package/dist/config/index.js +8 -0
  199. package/dist/config/index.js.map +1 -0
  200. package/dist/config/validation.d.ts +12 -0
  201. package/dist/config/validation.d.ts.map +1 -0
  202. package/dist/config/validation.js +61 -0
  203. package/dist/config/validation.js.map +1 -0
  204. package/dist/core/index.d.ts +11 -0
  205. package/dist/core/index.d.ts.map +1 -0
  206. package/dist/core/index.js +13 -0
  207. package/dist/core/index.js.map +1 -0
  208. package/dist/core/interfaces/IService.d.ts +162 -0
  209. package/dist/core/interfaces/IService.d.ts.map +1 -0
  210. package/dist/core/interfaces/IService.js +159 -0
  211. package/dist/core/interfaces/IService.js.map +1 -0
  212. package/dist/core/interfaces/index.d.ts +7 -0
  213. package/dist/core/interfaces/index.d.ts.map +1 -0
  214. package/dist/core/interfaces/index.js +7 -0
  215. package/dist/core/interfaces/index.js.map +1 -0
  216. package/dist/core/types/capability.d.ts +268 -0
  217. package/dist/core/types/capability.d.ts.map +1 -0
  218. package/dist/core/types/capability.js +16 -0
  219. package/dist/core/types/capability.js.map +1 -0
  220. package/dist/core/types/index.d.ts +750 -0
  221. package/dist/core/types/index.d.ts.map +1 -0
  222. package/dist/core/types/index.js +6 -0
  223. package/dist/core/types/index.js.map +1 -0
  224. package/dist/core/types/wallet.d.ts +254 -0
  225. package/dist/core/types/wallet.d.ts.map +1 -0
  226. package/dist/core/types/wallet.js +27 -0
  227. package/dist/core/types/wallet.js.map +1 -0
  228. package/dist/core/types.d.ts +8 -0
  229. package/dist/core/types.d.ts.map +1 -0
  230. package/dist/core/types.js +8 -0
  231. package/dist/core/types.js.map +1 -0
  232. package/dist/core/wallet.d.ts +209 -0
  233. package/dist/core/wallet.d.ts.map +1 -0
  234. package/dist/core/wallet.js +27 -0
  235. package/dist/core/wallet.js.map +1 -0
  236. package/dist/embedding/index.d.ts +9 -0
  237. package/dist/embedding/index.d.ts.map +1 -0
  238. package/dist/embedding/index.js +8 -0
  239. package/dist/embedding/index.js.map +1 -0
  240. package/dist/embedding/types.d.ts +302 -0
  241. package/dist/embedding/types.d.ts.map +1 -0
  242. package/dist/embedding/types.js +9 -0
  243. package/dist/embedding/types.js.map +1 -0
  244. package/dist/encryption/index.d.ts +14 -0
  245. package/dist/encryption/index.d.ts.map +1 -0
  246. package/dist/encryption/index.js +14 -0
  247. package/dist/encryption/index.js.map +1 -0
  248. package/dist/errors/index.d.ts +149 -0
  249. package/dist/errors/index.d.ts.map +1 -0
  250. package/dist/errors/index.js +301 -0
  251. package/dist/errors/index.js.map +1 -0
  252. package/dist/errors/recovery.d.ts +128 -0
  253. package/dist/errors/recovery.d.ts.map +1 -0
  254. package/dist/errors/recovery.js +320 -0
  255. package/dist/errors/recovery.js.map +1 -0
  256. package/dist/errors/validation.d.ts +106 -0
  257. package/dist/errors/validation.d.ts.map +1 -0
  258. package/dist/errors/validation.js +354 -0
  259. package/dist/errors/validation.js.map +1 -0
  260. package/dist/generated/pdw/capability.d.ts +223 -0
  261. package/dist/generated/pdw/capability.d.ts.map +1 -0
  262. package/dist/generated/pdw/capability.js +238 -0
  263. package/dist/generated/pdw/capability.js.map +1 -0
  264. package/dist/generated/pdw/deps/sui/object.d.ts +9 -0
  265. package/dist/generated/pdw/deps/sui/object.d.ts.map +1 -0
  266. package/dist/generated/pdw/deps/sui/object.js +11 -0
  267. package/dist/generated/pdw/deps/sui/object.js.map +1 -0
  268. package/dist/generated/pdw/deps/sui/vec_map.d.ts +37 -0
  269. package/dist/generated/pdw/deps/sui/vec_map.d.ts.map +1 -0
  270. package/dist/generated/pdw/deps/sui/vec_map.js +28 -0
  271. package/dist/generated/pdw/deps/sui/vec_map.js.map +1 -0
  272. package/dist/generated/pdw/memory.d.ts +676 -0
  273. package/dist/generated/pdw/memory.d.ts.map +1 -0
  274. package/dist/generated/pdw/memory.js +681 -0
  275. package/dist/generated/pdw/memory.js.map +1 -0
  276. package/dist/generated/pdw/wallet.d.ts +78 -0
  277. package/dist/generated/pdw/wallet.d.ts.map +1 -0
  278. package/dist/generated/pdw/wallet.js +89 -0
  279. package/dist/generated/pdw/wallet.js.map +1 -0
  280. package/dist/generated/utils/index.d.ts +12 -0
  281. package/dist/generated/utils/index.d.ts.map +1 -0
  282. package/dist/generated/utils/index.js +132 -0
  283. package/dist/generated/utils/index.js.map +1 -0
  284. package/dist/graph/BrowserKnowledgeGraphManager.d.ts +101 -0
  285. package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +1 -0
  286. package/dist/graph/BrowserKnowledgeGraphManager.js +411 -0
  287. package/dist/graph/BrowserKnowledgeGraphManager.js.map +1 -0
  288. package/dist/graph/GraphService.d.ts +194 -0
  289. package/dist/graph/GraphService.d.ts.map +1 -0
  290. package/dist/graph/GraphService.js +662 -0
  291. package/dist/graph/GraphService.js.map +1 -0
  292. package/dist/graph/KnowledgeGraphManager.d.ts +161 -0
  293. package/dist/graph/KnowledgeGraphManager.d.ts.map +1 -0
  294. package/dist/graph/KnowledgeGraphManager.js +495 -0
  295. package/dist/graph/KnowledgeGraphManager.js.map +1 -0
  296. package/dist/graph/index.d.ts +11 -0
  297. package/dist/graph/index.d.ts.map +1 -0
  298. package/dist/graph/index.js +9 -0
  299. package/dist/graph/index.js.map +1 -0
  300. package/dist/hooks.wip/index.d.ts +55 -0
  301. package/dist/hooks.wip/index.d.ts.map +1 -0
  302. package/dist/hooks.wip/index.js +58 -0
  303. package/dist/hooks.wip/index.js.map +1 -0
  304. package/dist/hooks.wip/useCreateMemory.d.ts +111 -0
  305. package/dist/hooks.wip/useCreateMemory.d.ts.map +1 -0
  306. package/dist/hooks.wip/useCreateMemory.js +149 -0
  307. package/dist/hooks.wip/useCreateMemory.js.map +1 -0
  308. package/dist/hooks.wip/useCreateMemoryBatch.d.ts +122 -0
  309. package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +1 -0
  310. package/dist/hooks.wip/useCreateMemoryBatch.js +221 -0
  311. package/dist/hooks.wip/useCreateMemoryBatch.js.map +1 -0
  312. package/dist/hooks.wip/useKnowledgeGraph.d.ts +66 -0
  313. package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +1 -0
  314. package/dist/hooks.wip/useKnowledgeGraph.js +229 -0
  315. package/dist/hooks.wip/useKnowledgeGraph.js.map +1 -0
  316. package/dist/hooks.wip/useMemoryChat.d.ts +106 -0
  317. package/dist/hooks.wip/useMemoryChat.d.ts.map +1 -0
  318. package/dist/hooks.wip/useMemoryChat.js +284 -0
  319. package/dist/hooks.wip/useMemoryChat.js.map +1 -0
  320. package/dist/hooks.wip/useMemoryIndex.d.ts +90 -0
  321. package/dist/hooks.wip/useMemoryIndex.d.ts.map +1 -0
  322. package/dist/hooks.wip/useMemoryIndex.js +218 -0
  323. package/dist/hooks.wip/useMemoryIndex.js.map +1 -0
  324. package/dist/hooks.wip/useMemoryManager.d.ts +35 -0
  325. package/dist/hooks.wip/useMemoryManager.d.ts.map +1 -0
  326. package/dist/hooks.wip/useMemoryManager.js +86 -0
  327. package/dist/hooks.wip/useMemoryManager.js.map +1 -0
  328. package/dist/hooks.wip/useMemorySearch.d.ts +100 -0
  329. package/dist/hooks.wip/useMemorySearch.d.ts.map +1 -0
  330. package/dist/hooks.wip/useMemorySearch.js +278 -0
  331. package/dist/hooks.wip/useMemorySearch.js.map +1 -0
  332. package/dist/hooks.wip/useMemoryServices.d.ts +80 -0
  333. package/dist/hooks.wip/useMemoryServices.d.ts.map +1 -0
  334. package/dist/hooks.wip/useMemoryServices.js +264 -0
  335. package/dist/hooks.wip/useMemoryServices.js.map +1 -0
  336. package/dist/hooks.wip/usePDWRAG.d.ts +112 -0
  337. package/dist/hooks.wip/usePDWRAG.d.ts.map +1 -0
  338. package/dist/hooks.wip/usePDWRAG.js +121 -0
  339. package/dist/hooks.wip/usePDWRAG.js.map +1 -0
  340. package/dist/hooks.wip/usePDWVectorStore.d.ts +68 -0
  341. package/dist/hooks.wip/usePDWVectorStore.d.ts.map +1 -0
  342. package/dist/hooks.wip/usePDWVectorStore.js +102 -0
  343. package/dist/hooks.wip/usePDWVectorStore.js.map +1 -0
  344. package/dist/hooks.wip/useRetrieveEmbedding.d.ts +138 -0
  345. package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +1 -0
  346. package/dist/hooks.wip/useRetrieveEmbedding.js +121 -0
  347. package/dist/hooks.wip/useRetrieveEmbedding.js.map +1 -0
  348. package/dist/hooks.wip/useSearchMemories.d.ts +103 -0
  349. package/dist/hooks.wip/useSearchMemories.d.ts.map +1 -0
  350. package/dist/hooks.wip/useSearchMemories.js +146 -0
  351. package/dist/hooks.wip/useSearchMemories.js.map +1 -0
  352. package/dist/hooks.wip/useStoreEmbedding.d.ts +174 -0
  353. package/dist/hooks.wip/useStoreEmbedding.d.ts.map +1 -0
  354. package/dist/hooks.wip/useStoreEmbedding.js +167 -0
  355. package/dist/hooks.wip/useStoreEmbedding.js.map +1 -0
  356. package/dist/hooks.wip/useWalletMemories.d.ts +119 -0
  357. package/dist/hooks.wip/useWalletMemories.d.ts.map +1 -0
  358. package/dist/hooks.wip/useWalletMemories.js +166 -0
  359. package/dist/hooks.wip/useWalletMemories.js.map +1 -0
  360. package/dist/hooks.wip/utils/cache.d.ts +25 -0
  361. package/dist/hooks.wip/utils/cache.d.ts.map +1 -0
  362. package/dist/hooks.wip/utils/cache.js +38 -0
  363. package/dist/hooks.wip/utils/cache.js.map +1 -0
  364. package/dist/hooks.wip/utils/types.d.ts +138 -0
  365. package/dist/hooks.wip/utils/types.d.ts.map +1 -0
  366. package/dist/hooks.wip/utils/types.js +5 -0
  367. package/dist/hooks.wip/utils/types.js.map +1 -0
  368. package/dist/index.d.ts +190 -0
  369. package/dist/index.d.ts.map +1 -0
  370. package/dist/index.js +298 -0
  371. package/dist/index.js.map +1 -0
  372. package/dist/infrastructure/ai/EmbeddingService.d.ts +101 -0
  373. package/dist/infrastructure/ai/EmbeddingService.d.ts.map +1 -0
  374. package/dist/infrastructure/ai/EmbeddingService.js +242 -0
  375. package/dist/infrastructure/ai/EmbeddingService.js.map +1 -0
  376. package/dist/infrastructure/ai/GeminiAIService.d.ts +84 -0
  377. package/dist/infrastructure/ai/GeminiAIService.d.ts.map +1 -0
  378. package/dist/infrastructure/ai/GeminiAIService.js +300 -0
  379. package/dist/infrastructure/ai/GeminiAIService.js.map +1 -0
  380. package/dist/infrastructure/ai/index.d.ts +8 -0
  381. package/dist/infrastructure/ai/index.d.ts.map +1 -0
  382. package/dist/infrastructure/ai/index.js +8 -0
  383. package/dist/infrastructure/ai/index.js.map +1 -0
  384. package/dist/infrastructure/index.d.ts +16 -0
  385. package/dist/infrastructure/index.d.ts.map +1 -0
  386. package/dist/infrastructure/index.js +19 -0
  387. package/dist/infrastructure/index.js.map +1 -0
  388. package/dist/infrastructure/seal/EncryptionService.d.ts +162 -0
  389. package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -0
  390. package/dist/infrastructure/seal/EncryptionService.js +466 -0
  391. package/dist/infrastructure/seal/EncryptionService.js.map +1 -0
  392. package/dist/infrastructure/seal/SealService.d.ts +132 -0
  393. package/dist/infrastructure/seal/SealService.d.ts.map +1 -0
  394. package/dist/infrastructure/seal/SealService.js +473 -0
  395. package/dist/infrastructure/seal/SealService.js.map +1 -0
  396. package/dist/infrastructure/seal/index.d.ts +8 -0
  397. package/dist/infrastructure/seal/index.d.ts.map +1 -0
  398. package/dist/infrastructure/seal/index.js +8 -0
  399. package/dist/infrastructure/seal/index.js.map +1 -0
  400. package/dist/infrastructure/sui/BlockchainManager.d.ts +161 -0
  401. package/dist/infrastructure/sui/BlockchainManager.d.ts.map +1 -0
  402. package/dist/infrastructure/sui/BlockchainManager.js +421 -0
  403. package/dist/infrastructure/sui/BlockchainManager.js.map +1 -0
  404. package/dist/infrastructure/sui/SuiService.d.ts +179 -0
  405. package/dist/infrastructure/sui/SuiService.d.ts.map +1 -0
  406. package/dist/infrastructure/sui/SuiService.js +658 -0
  407. package/dist/infrastructure/sui/SuiService.js.map +1 -0
  408. package/dist/infrastructure/sui/index.d.ts +8 -0
  409. package/dist/infrastructure/sui/index.d.ts.map +1 -0
  410. package/dist/infrastructure/sui/index.js +8 -0
  411. package/dist/infrastructure/sui/index.js.map +1 -0
  412. package/dist/infrastructure/walrus/StorageManager.d.ts +207 -0
  413. package/dist/infrastructure/walrus/StorageManager.d.ts.map +1 -0
  414. package/dist/infrastructure/walrus/StorageManager.js +413 -0
  415. package/dist/infrastructure/walrus/StorageManager.js.map +1 -0
  416. package/dist/infrastructure/walrus/WalrusStorageService.d.ts +177 -0
  417. package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -0
  418. package/dist/infrastructure/walrus/WalrusStorageService.js +403 -0
  419. package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -0
  420. package/dist/infrastructure/walrus/index.d.ts +8 -0
  421. package/dist/infrastructure/walrus/index.d.ts.map +1 -0
  422. package/dist/infrastructure/walrus/index.js +8 -0
  423. package/dist/infrastructure/walrus/index.js.map +1 -0
  424. package/dist/langchain/PDWEmbeddings.d.ts +77 -0
  425. package/dist/langchain/PDWEmbeddings.d.ts.map +1 -0
  426. package/dist/langchain/PDWEmbeddings.js +96 -0
  427. package/dist/langchain/PDWEmbeddings.js.map +1 -0
  428. package/dist/langchain/PDWVectorStore.d.ts +173 -0
  429. package/dist/langchain/PDWVectorStore.d.ts.map +1 -0
  430. package/dist/langchain/PDWVectorStore.js +304 -0
  431. package/dist/langchain/PDWVectorStore.js.map +1 -0
  432. package/dist/langchain/createPDWRAG.d.ts +115 -0
  433. package/dist/langchain/createPDWRAG.d.ts.map +1 -0
  434. package/dist/langchain/createPDWRAG.js +181 -0
  435. package/dist/langchain/createPDWRAG.js.map +1 -0
  436. package/dist/langchain/index.d.ts +35 -0
  437. package/dist/langchain/index.d.ts.map +1 -0
  438. package/dist/langchain/index.js +35 -0
  439. package/dist/langchain/index.js.map +1 -0
  440. package/dist/memory/index.d.ts +13 -0
  441. package/dist/memory/index.d.ts.map +1 -0
  442. package/dist/memory/index.js +14 -0
  443. package/dist/memory/index.js.map +1 -0
  444. package/dist/permissions/ConsentRepository.d.ts +71 -0
  445. package/dist/permissions/ConsentRepository.d.ts.map +1 -0
  446. package/dist/permissions/ConsentRepository.js +297 -0
  447. package/dist/permissions/ConsentRepository.js.map +1 -0
  448. package/dist/permissions/index.d.ts +9 -0
  449. package/dist/permissions/index.d.ts.map +1 -0
  450. package/dist/permissions/index.js +8 -0
  451. package/dist/permissions/index.js.map +1 -0
  452. package/dist/pipeline/MemoryPipeline.d.ts +191 -0
  453. package/dist/pipeline/MemoryPipeline.d.ts.map +1 -0
  454. package/dist/pipeline/MemoryPipeline.js +588 -0
  455. package/dist/pipeline/MemoryPipeline.js.map +1 -0
  456. package/dist/pipeline/PipelineManager.d.ts +178 -0
  457. package/dist/pipeline/PipelineManager.d.ts.map +1 -0
  458. package/dist/pipeline/PipelineManager.js +485 -0
  459. package/dist/pipeline/PipelineManager.js.map +1 -0
  460. package/dist/pipeline/index.d.ts +13 -0
  461. package/dist/pipeline/index.d.ts.map +1 -0
  462. package/dist/pipeline/index.js +11 -0
  463. package/dist/pipeline/index.js.map +1 -0
  464. package/dist/retrieval/AdvancedSearchService.d.ts +231 -0
  465. package/dist/retrieval/AdvancedSearchService.d.ts.map +1 -0
  466. package/dist/retrieval/AdvancedSearchService.js +384 -0
  467. package/dist/retrieval/AdvancedSearchService.js.map +1 -0
  468. package/dist/retrieval/MemoryAnalyticsService.d.ts +227 -0
  469. package/dist/retrieval/MemoryAnalyticsService.d.ts.map +1 -0
  470. package/dist/retrieval/MemoryAnalyticsService.js +417 -0
  471. package/dist/retrieval/MemoryAnalyticsService.js.map +1 -0
  472. package/dist/retrieval/MemoryDecryptionPipeline.d.ts +191 -0
  473. package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -0
  474. package/dist/retrieval/MemoryDecryptionPipeline.js +623 -0
  475. package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -0
  476. package/dist/retrieval/MemoryRetrievalService.d.ts +248 -0
  477. package/dist/retrieval/MemoryRetrievalService.d.ts.map +1 -0
  478. package/dist/retrieval/MemoryRetrievalService.js +519 -0
  479. package/dist/retrieval/MemoryRetrievalService.js.map +1 -0
  480. package/dist/retrieval/index.d.ts +14 -0
  481. package/dist/retrieval/index.d.ts.map +1 -0
  482. package/dist/retrieval/index.js +10 -0
  483. package/dist/retrieval/index.js.map +1 -0
  484. package/dist/services/BatchService.d.ts +109 -0
  485. package/dist/services/BatchService.d.ts.map +1 -0
  486. package/dist/services/BatchService.js +259 -0
  487. package/dist/services/BatchService.js.map +1 -0
  488. package/dist/services/CapabilityService.d.ts +141 -0
  489. package/dist/services/CapabilityService.d.ts.map +1 -0
  490. package/dist/services/CapabilityService.js +361 -0
  491. package/dist/services/CapabilityService.js.map +1 -0
  492. package/dist/services/ChatService.d.ts +89 -0
  493. package/dist/services/ChatService.d.ts.map +1 -0
  494. package/dist/services/ChatService.js +319 -0
  495. package/dist/services/ChatService.js.map +1 -0
  496. package/dist/services/ClassifierService.d.ts +104 -0
  497. package/dist/services/ClassifierService.d.ts.map +1 -0
  498. package/dist/services/ClassifierService.js +374 -0
  499. package/dist/services/ClassifierService.js.map +1 -0
  500. package/dist/services/CrossContextPermissionService.d.ts +149 -0
  501. package/dist/services/CrossContextPermissionService.d.ts.map +1 -0
  502. package/dist/services/CrossContextPermissionService.js +337 -0
  503. package/dist/services/CrossContextPermissionService.js.map +1 -0
  504. package/dist/services/EmbeddingService.d.ts +206 -0
  505. package/dist/services/EmbeddingService.d.ts.map +1 -0
  506. package/dist/services/EmbeddingService.js +504 -0
  507. package/dist/services/EmbeddingService.js.map +1 -0
  508. package/dist/services/EncryptionService.d.ts +201 -0
  509. package/dist/services/EncryptionService.d.ts.map +1 -0
  510. package/dist/services/EncryptionService.js +558 -0
  511. package/dist/services/EncryptionService.js.map +1 -0
  512. package/dist/services/GeminiAIService.d.ts +112 -0
  513. package/dist/services/GeminiAIService.d.ts.map +1 -0
  514. package/dist/services/GeminiAIService.js +389 -0
  515. package/dist/services/GeminiAIService.js.map +1 -0
  516. package/dist/services/IndexManager.d.ts +238 -0
  517. package/dist/services/IndexManager.d.ts.map +1 -0
  518. package/dist/services/IndexManager.js +691 -0
  519. package/dist/services/IndexManager.js.map +1 -0
  520. package/dist/services/MemoryIndexService.d.ts +222 -0
  521. package/dist/services/MemoryIndexService.d.ts.map +1 -0
  522. package/dist/services/MemoryIndexService.js +695 -0
  523. package/dist/services/MemoryIndexService.js.map +1 -0
  524. package/dist/services/MemoryService.d.ts +156 -0
  525. package/dist/services/MemoryService.d.ts.map +1 -0
  526. package/dist/services/MemoryService.js +273 -0
  527. package/dist/services/MemoryService.js.map +1 -0
  528. package/dist/services/QueryService.d.ts +182 -0
  529. package/dist/services/QueryService.d.ts.map +1 -0
  530. package/dist/services/QueryService.js +631 -0
  531. package/dist/services/QueryService.js.map +1 -0
  532. package/dist/services/StorageService.d.ts +523 -0
  533. package/dist/services/StorageService.d.ts.map +1 -0
  534. package/dist/services/StorageService.js +627 -0
  535. package/dist/services/StorageService.js.map +1 -0
  536. package/dist/services/TransactionService.d.ts +179 -0
  537. package/dist/services/TransactionService.d.ts.map +1 -0
  538. package/dist/services/TransactionService.js +639 -0
  539. package/dist/services/TransactionService.js.map +1 -0
  540. package/dist/services/VectorService.d.ts +122 -0
  541. package/dist/services/VectorService.d.ts.map +1 -0
  542. package/dist/services/VectorService.js +371 -0
  543. package/dist/services/VectorService.js.map +1 -0
  544. package/dist/services/ViewService.d.ts +126 -0
  545. package/dist/services/ViewService.d.ts.map +1 -0
  546. package/dist/services/ViewService.js +356 -0
  547. package/dist/services/ViewService.js.map +1 -0
  548. package/dist/services/index.d.ts +12 -0
  549. package/dist/services/index.d.ts.map +1 -0
  550. package/dist/services/index.js +11 -0
  551. package/dist/services/index.js.map +1 -0
  552. package/dist/services/storage/BlobAttributesManager.d.ts +60 -0
  553. package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -0
  554. package/dist/services/storage/BlobAttributesManager.js +265 -0
  555. package/dist/services/storage/BlobAttributesManager.js.map +1 -0
  556. package/dist/services/storage/KnowledgeGraphManager.d.ts +162 -0
  557. package/dist/services/storage/KnowledgeGraphManager.d.ts.map +1 -0
  558. package/dist/services/storage/KnowledgeGraphManager.js +303 -0
  559. package/dist/services/storage/KnowledgeGraphManager.js.map +1 -0
  560. package/dist/services/storage/MemorySearchManager.d.ts +154 -0
  561. package/dist/services/storage/MemorySearchManager.d.ts.map +1 -0
  562. package/dist/services/storage/MemorySearchManager.js +260 -0
  563. package/dist/services/storage/MemorySearchManager.js.map +1 -0
  564. package/dist/services/storage/QuiltBatchManager.d.ts +185 -0
  565. package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -0
  566. package/dist/services/storage/QuiltBatchManager.js +385 -0
  567. package/dist/services/storage/QuiltBatchManager.js.map +1 -0
  568. package/dist/services/storage/WalrusMetadataManager.d.ts +89 -0
  569. package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -0
  570. package/dist/services/storage/WalrusMetadataManager.js +177 -0
  571. package/dist/services/storage/WalrusMetadataManager.js.map +1 -0
  572. package/dist/services/storage/WalrusStorageManager.d.ts +113 -0
  573. package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -0
  574. package/dist/services/storage/WalrusStorageManager.js +211 -0
  575. package/dist/services/storage/WalrusStorageManager.js.map +1 -0
  576. package/dist/services/storage/index.d.ts +24 -0
  577. package/dist/services/storage/index.d.ts.map +1 -0
  578. package/dist/services/storage/index.js +18 -0
  579. package/dist/services/storage/index.js.map +1 -0
  580. package/dist/transactions/index.d.ts +13 -0
  581. package/dist/transactions/index.d.ts.map +1 -0
  582. package/dist/transactions/index.js +14 -0
  583. package/dist/transactions/index.js.map +1 -0
  584. package/dist/types/index.d.ts +12 -0
  585. package/dist/types/index.d.ts.map +1 -0
  586. package/dist/types/index.js +13 -0
  587. package/dist/types/index.js.map +1 -0
  588. package/dist/types/wallet.d.ts +12 -0
  589. package/dist/types/wallet.d.ts.map +1 -0
  590. package/dist/types/wallet.js +13 -0
  591. package/dist/types/wallet.js.map +1 -0
  592. package/dist/utils/index.d.ts +21 -0
  593. package/dist/utils/index.d.ts.map +1 -0
  594. package/dist/utils/index.js +30 -0
  595. package/dist/utils/index.js.map +1 -0
  596. package/dist/utils/rebuildIndex.d.ts +79 -0
  597. package/dist/utils/rebuildIndex.d.ts.map +1 -0
  598. package/dist/utils/rebuildIndex.js +211 -0
  599. package/dist/utils/rebuildIndex.js.map +1 -0
  600. package/dist/utils/rebuildIndexNode.d.ts +70 -0
  601. package/dist/utils/rebuildIndexNode.d.ts.map +1 -0
  602. package/dist/utils/rebuildIndexNode.js +236 -0
  603. package/dist/utils/rebuildIndexNode.js.map +1 -0
  604. package/dist/vector/BrowserHnswIndexService.d.ts +93 -0
  605. package/dist/vector/BrowserHnswIndexService.d.ts.map +1 -0
  606. package/dist/vector/BrowserHnswIndexService.js +581 -0
  607. package/dist/vector/BrowserHnswIndexService.js.map +1 -0
  608. package/dist/vector/HnswWasmService.d.ts +97 -0
  609. package/dist/vector/HnswWasmService.d.ts.map +1 -0
  610. package/dist/vector/HnswWasmService.js +518 -0
  611. package/dist/vector/HnswWasmService.js.map +1 -0
  612. package/dist/vector/IHnswService.d.ts +179 -0
  613. package/dist/vector/IHnswService.d.ts.map +1 -0
  614. package/dist/vector/IHnswService.js +25 -0
  615. package/dist/vector/IHnswService.js.map +1 -0
  616. package/dist/vector/NodeHnswService.d.ts +80 -0
  617. package/dist/vector/NodeHnswService.d.ts.map +1 -0
  618. package/dist/vector/NodeHnswService.js +589 -0
  619. package/dist/vector/NodeHnswService.js.map +1 -0
  620. package/dist/vector/VectorManager.d.ts +142 -0
  621. package/dist/vector/VectorManager.d.ts.map +1 -0
  622. package/dist/vector/VectorManager.js +339 -0
  623. package/dist/vector/VectorManager.js.map +1 -0
  624. package/dist/vector/createHnswService.d.ts +51 -0
  625. package/dist/vector/createHnswService.d.ts.map +1 -0
  626. package/dist/vector/createHnswService.js +120 -0
  627. package/dist/vector/createHnswService.js.map +1 -0
  628. package/dist/vector/index.d.ts +24 -0
  629. package/dist/vector/index.d.ts.map +1 -0
  630. package/dist/vector/index.js +24 -0
  631. package/dist/vector/index.js.map +1 -0
  632. package/dist/view/ViewService.d.ts +136 -0
  633. package/dist/view/ViewService.d.ts.map +1 -0
  634. package/dist/view/ViewService.js +325 -0
  635. package/dist/view/ViewService.js.map +1 -0
  636. package/dist/view/index.d.ts +7 -0
  637. package/dist/view/index.d.ts.map +1 -0
  638. package/dist/view/index.js +7 -0
  639. package/dist/view/index.js.map +1 -0
  640. package/dist/wallet/ContextWalletService.d.ts +172 -0
  641. package/dist/wallet/ContextWalletService.d.ts.map +1 -0
  642. package/dist/wallet/ContextWalletService.js +510 -0
  643. package/dist/wallet/ContextWalletService.js.map +1 -0
  644. package/dist/wallet/MainWalletService.d.ts +114 -0
  645. package/dist/wallet/MainWalletService.d.ts.map +1 -0
  646. package/dist/wallet/MainWalletService.js +259 -0
  647. package/dist/wallet/MainWalletService.js.map +1 -0
  648. package/dist/wallet/index.d.ts +16 -0
  649. package/dist/wallet/index.d.ts.map +1 -0
  650. package/dist/wallet/index.js +14 -0
  651. package/dist/wallet/index.js.map +1 -0
  652. package/package.json +150 -0
  653. package/src/access/PermissionService.ts +636 -0
  654. package/src/access/index.ts +8 -0
  655. package/src/aggregation/AggregationService.ts +390 -0
  656. package/src/aggregation/index.ts +8 -0
  657. package/src/ai-sdk/PDWVectorStore.ts +712 -0
  658. package/src/ai-sdk/index.ts +65 -0
  659. package/src/ai-sdk/tools.ts +460 -0
  660. package/src/ai-sdk/types.ts +404 -0
  661. package/src/batch/BatchManager.ts +598 -0
  662. package/src/batch/BatchingService.ts +430 -0
  663. package/src/batch/MemoryProcessingCache.ts +493 -0
  664. package/src/batch/index.ts +31 -0
  665. package/src/browser.ts +196 -0
  666. package/src/client/ClientMemoryManager.ts +982 -0
  667. package/src/client/PersonalDataWallet.ts +346 -0
  668. package/src/client/SimplePDWClient.ts +1180 -0
  669. package/src/client/factory.ts +155 -0
  670. package/src/client/namespaces/AnalyticsNamespace.ts +377 -0
  671. package/src/client/namespaces/BatchNamespace.ts +356 -0
  672. package/src/client/namespaces/CacheNamespace.ts +123 -0
  673. package/src/client/namespaces/CapabilityNamespace.ts +217 -0
  674. package/src/client/namespaces/ClassifyNamespace.ts +169 -0
  675. package/src/client/namespaces/ContextNamespace.ts +297 -0
  676. package/src/client/namespaces/EmbeddingsNamespace.ts +99 -0
  677. package/src/client/namespaces/EncryptionNamespace.ts +221 -0
  678. package/src/client/namespaces/GraphNamespace.ts +468 -0
  679. package/src/client/namespaces/IndexNamespace.ts +283 -0
  680. package/src/client/namespaces/MemoryNamespace.ts +1135 -0
  681. package/src/client/namespaces/PermissionsNamespace.ts +254 -0
  682. package/src/client/namespaces/PipelineNamespace.ts +220 -0
  683. package/src/client/namespaces/SearchNamespace.ts +1036 -0
  684. package/src/client/namespaces/StorageNamespace.ts +458 -0
  685. package/src/client/namespaces/TxNamespace.ts +260 -0
  686. package/src/client/namespaces/WalletNamespace.ts +243 -0
  687. package/src/client/namespaces/consolidated/AINamespace.ts +449 -0
  688. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +492 -0
  689. package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -0
  690. package/src/client/namespaces/consolidated/StorageNamespace.ts +440 -0
  691. package/src/client/namespaces/consolidated/index.ts +39 -0
  692. package/src/client/signers/KeypairSigner.ts +101 -0
  693. package/src/client/signers/UnifiedSigner.ts +99 -0
  694. package/src/client/signers/WalletAdapterSigner.ts +149 -0
  695. package/src/client/signers/index.ts +19 -0
  696. package/src/config/ConfigurationHelper.ts +413 -0
  697. package/src/config/defaults.ts +52 -0
  698. package/src/config/index.ts +9 -0
  699. package/src/config/validation.ts +71 -0
  700. package/src/core/index.ts +14 -0
  701. package/src/core/interfaces/IService.ts +307 -0
  702. package/src/core/interfaces/index.ts +8 -0
  703. package/src/core/types/capability.ts +297 -0
  704. package/src/core/types/index.ts +871 -0
  705. package/src/core/types/wallet.ts +271 -0
  706. package/src/core/types.ts +9 -0
  707. package/src/core/wallet.ts +223 -0
  708. package/src/embedding/index.ts +20 -0
  709. package/src/embedding/types.ts +358 -0
  710. package/src/errors/index.ts +603 -0
  711. package/src/errors/recovery.ts +462 -0
  712. package/src/errors/validation.ts +568 -0
  713. package/src/generated/pdw/capability.ts +319 -0
  714. package/src/generated/pdw/deps/sui/object.ts +13 -0
  715. package/src/generated/pdw/deps/sui/vec_map.ts +33 -0
  716. package/src/generated/pdw/memory.ts +1088 -0
  717. package/src/generated/pdw/wallet.ts +124 -0
  718. package/src/generated/utils/index.ts +159 -0
  719. package/src/graph/GraphService.ts +888 -0
  720. package/src/graph/KnowledgeGraphManager.ts +729 -0
  721. package/src/graph/index.ts +26 -0
  722. package/src/index.ts +458 -0
  723. package/src/infrastructure/index.ts +22 -0
  724. package/src/infrastructure/seal/EncryptionService.ts +604 -0
  725. package/src/infrastructure/seal/SealService.ts +616 -0
  726. package/src/infrastructure/seal/index.ts +9 -0
  727. package/src/infrastructure/sui/BlockchainManager.ts +628 -0
  728. package/src/infrastructure/sui/SuiService.ts +888 -0
  729. package/src/infrastructure/sui/index.ts +9 -0
  730. package/src/infrastructure/walrus/StorageManager.ts +605 -0
  731. package/src/infrastructure/walrus/WalrusStorageService.ts +613 -0
  732. package/src/infrastructure/walrus/index.ts +9 -0
  733. package/src/langchain/PDWEmbeddings.ts +145 -0
  734. package/src/langchain/PDWVectorStore.ts +456 -0
  735. package/src/langchain/README.md +116 -0
  736. package/src/langchain/createPDWRAG.ts +303 -0
  737. package/src/langchain/index.ts +47 -0
  738. package/src/permissions/ConsentRepository.ts +364 -0
  739. package/src/permissions/index.ts +9 -0
  740. package/src/pipeline/MemoryPipeline.ts +863 -0
  741. package/src/pipeline/PipelineManager.ts +684 -0
  742. package/src/pipeline/index.ts +27 -0
  743. package/src/retrieval/AdvancedSearchService.ts +630 -0
  744. package/src/retrieval/MemoryAnalyticsService.ts +712 -0
  745. package/src/retrieval/MemoryDecryptionPipeline.ts +825 -0
  746. package/src/retrieval/MemoryRetrievalService.ts +831 -0
  747. package/src/retrieval/index.ts +43 -0
  748. package/src/services/BatchService.ts +353 -0
  749. package/src/services/CapabilityService.ts +448 -0
  750. package/src/services/ClassifierService.ts +466 -0
  751. package/src/services/CrossContextPermissionService.ts +484 -0
  752. package/src/services/EmbeddingService.ts +706 -0
  753. package/src/services/EncryptionService.ts +712 -0
  754. package/src/services/GeminiAIService.ts +497 -0
  755. package/src/services/IndexManager.ts +1004 -0
  756. package/src/services/MemoryIndexService.ts +922 -0
  757. package/src/services/MemoryService.ts +370 -0
  758. package/src/services/QueryService.ts +891 -0
  759. package/src/services/StorageService.ts +1111 -0
  760. package/src/services/TransactionService.ts +791 -0
  761. package/src/services/VectorService.ts +462 -0
  762. package/src/services/ViewService.ts +485 -0
  763. package/src/services/index.ts +25 -0
  764. package/src/services/storage/BlobAttributesManager.ts +342 -0
  765. package/src/services/storage/KnowledgeGraphManager.ts +425 -0
  766. package/src/services/storage/MemorySearchManager.ts +387 -0
  767. package/src/services/storage/QuiltBatchManager.ts +532 -0
  768. package/src/services/storage/WalrusMetadataManager.ts +271 -0
  769. package/src/services/storage/WalrusStorageManager.ts +290 -0
  770. package/src/services/storage/index.ts +52 -0
  771. package/src/types/index.ts +13 -0
  772. package/src/utils/index.ts +68 -0
  773. package/src/utils/rebuildIndex.ts +290 -0
  774. package/src/utils/rebuildIndexNode.ts +341 -0
  775. package/src/vector/BrowserHnswIndexService.ts +758 -0
  776. package/src/vector/HnswWasmService.ts +679 -0
  777. package/src/vector/IHnswService.ts +224 -0
  778. package/src/vector/NodeHnswService.ts +713 -0
  779. package/src/vector/VectorManager.ts +479 -0
  780. package/src/vector/createHnswService.ts +135 -0
  781. package/src/vector/index.ts +57 -0
  782. package/src/wallet/ContextWalletService.ts +657 -0
  783. package/src/wallet/MainWalletService.ts +318 -0
  784. package/src/wallet/index.ts +17 -0
@@ -0,0 +1,679 @@
1
+ /**
2
+ * HnswWasmService - Browser-Compatible HNSW Vector Indexing
3
+ *
4
+ * Provides browser-compatible Hierarchical Navigable Small World (HNSW) vector indexing
5
+ * using hnswlib-wasm with IndexedDB persistence. Replaces Node.js-only hnswlib-node.
6
+ *
7
+ * Key Features:
8
+ * - ✅ Runs in browsers (WebAssembly)
9
+ * - ✅ IndexedDB persistence (no filesystem needed)
10
+ * - ✅ Intelligent batching and caching
11
+ * - ✅ Walrus storage integration
12
+ * - ✅ Near-native performance via WASM
13
+ * - ✅ Safe for Node.js/SSR (uses dynamic import)
14
+ */
15
+
16
+ // Dynamic import for hnswlib-wasm to avoid bundling issues in Node.js
17
+ // Types defined locally to avoid static import issues
18
+ type HierarchicalNSW = any;
19
+ type HnswlibModule = any;
20
+
21
+ /**
22
+ * Helper to dynamically load hnswlib-wasm (browser only)
23
+ */
24
+ async function loadHnswlibDynamic(): Promise<HnswlibModule> {
25
+ const module = await import('hnswlib-wasm/dist/hnswlib.js');
26
+ return module.loadHnswlib();
27
+ }
28
+ import { StorageService, type MemoryMetadata } from '../services/StorageService';
29
+ import {
30
+ HNSWIndexConfig,
31
+ HNSWSearchResult,
32
+ HNSWSearchOptions,
33
+ BatchConfig,
34
+ BatchJob,
35
+ BatchStats,
36
+ VectorError
37
+ } from '../embedding/types';
38
+
39
+ interface IndexCacheEntry {
40
+ index: HierarchicalNSW;
41
+ lastModified: Date;
42
+ pendingVectors: Map<number, number[]>; // vectorId -> vector
43
+ isDirty: boolean;
44
+ version: number;
45
+ metadata: Map<number, any>; // vectorId -> metadata
46
+ dimensions: number;
47
+ }
48
+
49
+ interface IndexMetadata {
50
+ dimension: number;
51
+ maxElements: number;
52
+ efConstruction: number;
53
+ m: number;
54
+ spaceType: string;
55
+ version: number;
56
+ createdAt: Date;
57
+ lastUpdated: Date;
58
+ }
59
+
60
+ /**
61
+ * Browser-compatible HNSW vector indexing service using WebAssembly
62
+ * Drop-in replacement for HnswIndexService with identical API
63
+ */
64
+ export class HnswWasmService {
65
+ private hnswlib: HnswlibModule | null = null;
66
+ private readonly indexCache = new Map<string, IndexCacheEntry>();
67
+ private readonly batchJobs = new Map<string, BatchJob>();
68
+ private readonly config: Required<BatchConfig>;
69
+ private readonly indexConfig: Required<HNSWIndexConfig>;
70
+ private batchProcessor?: ReturnType<typeof setInterval>;
71
+ private cacheCleanup?: ReturnType<typeof setInterval>;
72
+ private initPromise: Promise<void> | null = null;
73
+
74
+ constructor(
75
+ private storageService: StorageService,
76
+ indexConfig: Partial<HNSWIndexConfig> = {},
77
+ batchConfig: Partial<BatchConfig> = {}
78
+ ) {
79
+ // Default HNSW configuration (matching HnswIndexService)
80
+ this.indexConfig = {
81
+ dimension: indexConfig.dimension || 3072,
82
+ maxElements: indexConfig.maxElements || 10000,
83
+ efConstruction: indexConfig.efConstruction || 200,
84
+ m: indexConfig.m || 16,
85
+ randomSeed: indexConfig.randomSeed || 42,
86
+ spaceType: indexConfig.spaceType || 'cosine'
87
+ };
88
+
89
+ // Default batch configuration
90
+ this.config = {
91
+ maxBatchSize: batchConfig.maxBatchSize || 50,
92
+ batchDelayMs: batchConfig.batchDelayMs || 5000,
93
+ maxCacheSize: batchConfig.maxCacheSize || 100,
94
+ cacheTtlMs: batchConfig.cacheTtlMs || 30 * 60 * 1000 // 30 minutes
95
+ };
96
+
97
+ // Initialize WASM library asynchronously
98
+ this.initPromise = this.initialize();
99
+ }
100
+
101
+ /**
102
+ * Initialize hnswlib-wasm (must be called before use)
103
+ */
104
+ private async initialize(): Promise<void> {
105
+ try {
106
+ console.log('🔧 Loading hnswlib-wasm...');
107
+ this.hnswlib = await loadHnswlibDynamic();
108
+ console.log('✅ hnswlib-wasm loaded successfully');
109
+
110
+ // Start background processors
111
+ this.startBatchProcessor();
112
+ this.startCacheCleanup();
113
+ } catch (error) {
114
+ console.error('❌ Failed to load hnswlib-wasm:', error);
115
+ throw error;
116
+ }
117
+ }
118
+
119
+ /**
120
+ * Ensure WASM library is loaded
121
+ */
122
+ private async ensureInitialized(): Promise<void> {
123
+ if (this.initPromise) {
124
+ await this.initPromise;
125
+ }
126
+ if (!this.hnswlib) {
127
+ throw new Error('hnswlib-wasm not initialized');
128
+ }
129
+ }
130
+
131
+ /**
132
+ * Create a new HNSW index
133
+ */
134
+ async createIndex(
135
+ userAddress: string,
136
+ options: Partial<HNSWIndexConfig> = {}
137
+ ): Promise<{ index: HierarchicalNSW; serialized: Uint8Array }> {
138
+ await this.ensureInitialized();
139
+
140
+ try {
141
+ const config = { ...this.indexConfig, ...options };
142
+
143
+ console.log(`🔨 Creating new HNSW index for user ${userAddress}`);
144
+ console.log(` Dimensions: ${config.dimension}, M: ${config.m}, efConstruction: ${config.efConstruction}`);
145
+
146
+ // Create a new index using WASM (constructor takes: spaceName, numDimensions, autoSaveFilename)
147
+ const index = new this.hnswlib!.HierarchicalNSW(config.spaceType, config.dimension, '');
148
+ index.initIndex(config.maxElements, config.m, config.efConstruction, config.randomSeed);
149
+
150
+ // Create cache entry
151
+ this.indexCache.set(userAddress, {
152
+ index,
153
+ lastModified: new Date(),
154
+ pendingVectors: new Map(),
155
+ isDirty: false,
156
+ version: 1,
157
+ metadata: new Map(),
158
+ dimensions: config.dimension
159
+ });
160
+
161
+ // Serialize the empty index
162
+ const indexName = `index_${userAddress}_${Date.now()}`;
163
+ await index.writeIndex(indexName);
164
+
165
+ // Sync to IndexedDB (persist the index) - syncFS requires a callback
166
+ await this.hnswlib!.EmscriptenFileSystemManager.syncFS(false, () => {});
167
+
168
+ // Read serialized data from filesystem for returning
169
+ const serialized = new Uint8Array(0); // Placeholder - actual data is in IndexedDB
170
+
171
+ console.log(`✅ Index created successfully for ${userAddress}`);
172
+
173
+ return { index, serialized };
174
+ } catch (error) {
175
+ throw this.createVectorError('INDEX_ERROR', `Failed to create index: ${error}`, error);
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Add vector to index with batching (main entry point)
181
+ */
182
+ addVectorToIndexBatched(
183
+ userAddress: string,
184
+ vectorId: number,
185
+ vector: number[],
186
+ metadata?: any
187
+ ): void {
188
+ try {
189
+ // Validate input
190
+ this.validateVector(vector);
191
+
192
+ // Get or create cache entry
193
+ let cacheEntry = this.indexCache.get(userAddress);
194
+ if (!cacheEntry) {
195
+ console.warn(`No cached index found for user ${userAddress}, will create on first flush`);
196
+ // Create placeholder entry - actual index created on first flush
197
+ cacheEntry = {
198
+ index: null as any, // Will be created on flush
199
+ lastModified: new Date(),
200
+ pendingVectors: new Map(),
201
+ isDirty: true,
202
+ version: 1,
203
+ metadata: new Map(),
204
+ dimensions: vector.length
205
+ };
206
+ this.indexCache.set(userAddress, cacheEntry);
207
+ }
208
+
209
+ // Validate vector dimensions
210
+ if (cacheEntry.dimensions && vector.length !== cacheEntry.dimensions) {
211
+ throw new Error(`Vector dimension mismatch: expected ${cacheEntry.dimensions}, got ${vector.length}`);
212
+ }
213
+
214
+ // Add to pending queue
215
+ cacheEntry.pendingVectors.set(vectorId, vector);
216
+ if (metadata) {
217
+ cacheEntry.metadata.set(vectorId, metadata);
218
+ }
219
+ cacheEntry.isDirty = true;
220
+ cacheEntry.lastModified = new Date();
221
+
222
+ // Schedule or update batch job
223
+ this.scheduleBatchJob(userAddress, vectorId, vector);
224
+
225
+ console.debug(`📊 Vector ${vectorId} queued for batch processing. Pending: ${cacheEntry.pendingVectors.size}`);
226
+
227
+ // Process immediately if batch size limit reached
228
+ if (cacheEntry.pendingVectors.size >= this.config.maxBatchSize) {
229
+ console.log(`⚡ Batch size limit reached (${this.config.maxBatchSize}), processing immediately`);
230
+ setTimeout(() => this.flushPendingVectors(userAddress), 0);
231
+ }
232
+ } catch (error) {
233
+ throw this.createVectorError('INDEX_ERROR', `Failed to queue vector: ${error}`, error);
234
+ }
235
+ }
236
+
237
+ /**
238
+ * Search vectors in the index (including pending vectors)
239
+ */
240
+ async searchVectors(
241
+ userAddress: string,
242
+ queryVector: number[],
243
+ options: HNSWSearchOptions = {}
244
+ ): Promise<HNSWSearchResult> {
245
+ await this.ensureInitialized();
246
+
247
+ try {
248
+ this.validateVector(queryVector);
249
+
250
+ const cacheEntry = this.indexCache.get(userAddress);
251
+ if (!cacheEntry?.index) {
252
+ throw new Error(`No index found for user ${userAddress}`);
253
+ }
254
+
255
+ const { k = 10, efSearch = 50, filter } = options;
256
+
257
+ // Set search parameters
258
+ cacheEntry.index.setEfSearch(efSearch);
259
+
260
+ let searchIndex = cacheEntry.index;
261
+
262
+ // If there are pending vectors, flush them first
263
+ if (cacheEntry.pendingVectors.size > 0) {
264
+ console.log(`⏳ Flushing ${cacheEntry.pendingVectors.size} pending vectors before search`);
265
+ await this.flushPendingVectors(userAddress);
266
+ // Get updated index
267
+ const updatedEntry = this.indexCache.get(userAddress);
268
+ if (updatedEntry?.index) {
269
+ searchIndex = updatedEntry.index;
270
+ }
271
+ }
272
+
273
+ // Perform search (convert to Float32Array if needed)
274
+ const queryFloat32 = queryVector instanceof Float32Array
275
+ ? queryVector
276
+ : new Float32Array(queryVector);
277
+ const result = searchIndex.searchKnn(
278
+ queryFloat32,
279
+ k,
280
+ filter && typeof filter === 'function' ? (filter as (label: number) => boolean) : undefined
281
+ );
282
+
283
+ // Apply metadata filter if provided (additional filtering)
284
+ let filteredIds = result.neighbors;
285
+ let filteredDistances = result.distances;
286
+
287
+ if (filter && typeof filter === 'function') {
288
+ const filtered = this.applyMetadataFilter(
289
+ result.neighbors,
290
+ result.distances,
291
+ cacheEntry.metadata,
292
+ filter as (metadata: any) => boolean
293
+ );
294
+ filteredIds = filtered.ids;
295
+ filteredDistances = filtered.distances;
296
+ }
297
+
298
+ // Convert distances to similarities (for cosine distance)
299
+ const similarities = this.indexConfig.spaceType === 'cosine'
300
+ ? filteredDistances.map((dist: number) => 1 - dist)
301
+ : filteredDistances.map((dist: number) => 1 / (1 + dist));
302
+
303
+ console.log(`🔍 Search completed: ${filteredIds.length} results found`);
304
+
305
+ return {
306
+ ids: filteredIds,
307
+ distances: filteredDistances,
308
+ similarities
309
+ };
310
+ } catch (error) {
311
+ throw this.createVectorError('SEARCH_ERROR', `Search failed: ${error}`, error);
312
+ }
313
+ }
314
+
315
+ /**
316
+ * Load index from Walrus storage
317
+ */
318
+ async loadIndex(blobId: string, userAddress: string): Promise<HierarchicalNSW> {
319
+ await this.ensureInitialized();
320
+
321
+ try {
322
+ console.log(`📥 Loading HNSW index from Walrus: ${blobId}`);
323
+
324
+ // Download index from Walrus
325
+ const retrieveResult = await this.storageService.retrieve(blobId);
326
+ const indexBuffer = retrieveResult.content;
327
+
328
+ // Save to Emscripten virtual filesystem
329
+ const indexName = `index_${userAddress}_${Date.now()}`;
330
+ (this.hnswlib!.EmscriptenFileSystemManager as any).writeFile(indexName, indexBuffer);
331
+
332
+ // Sync from IndexedDB (load the data into memory)
333
+ await this.hnswlib!.EmscriptenFileSystemManager.syncFS(true, () => {});
334
+
335
+ // Create and load index (constructor: spaceName, numDimensions, autoSaveFilename)
336
+ const index = new this.hnswlib!.HierarchicalNSW(this.indexConfig.spaceType, this.indexConfig.dimension, '');
337
+ await index.readIndex(indexName, this.indexConfig.maxElements);
338
+
339
+ // Cache the loaded index
340
+ this.indexCache.set(userAddress, {
341
+ index,
342
+ lastModified: new Date(),
343
+ pendingVectors: new Map(),
344
+ isDirty: false,
345
+ version: 1,
346
+ metadata: new Map(),
347
+ dimensions: this.indexConfig.dimension
348
+ });
349
+
350
+ console.log(`✅ Index loaded successfully for ${userAddress}`);
351
+ return index;
352
+ } catch (error) {
353
+ throw this.createVectorError('STORAGE_ERROR', `Failed to load index: ${error}`, error);
354
+ }
355
+ }
356
+
357
+ /**
358
+ * Save index to Walrus storage
359
+ */
360
+ async saveIndex(userAddress: string): Promise<string> {
361
+ await this.ensureInitialized();
362
+
363
+ try {
364
+ const cacheEntry = this.indexCache.get(userAddress);
365
+ if (!cacheEntry?.index) {
366
+ throw new Error(`No index found for user ${userAddress}`);
367
+ }
368
+
369
+ console.log(`💾 Saving index to Walrus for ${userAddress}`);
370
+
371
+ return await this.saveIndexToWalrus(cacheEntry.index, userAddress);
372
+ } catch (error) {
373
+ throw this.createVectorError('STORAGE_ERROR', `Failed to save index: ${error}`, error);
374
+ }
375
+ }
376
+
377
+ /**
378
+ * Force flush all pending vectors for a user
379
+ */
380
+ async forceFlush(userAddress: string): Promise<void> {
381
+ await this.flushPendingVectors(userAddress);
382
+ }
383
+
384
+ /**
385
+ * Get cache statistics
386
+ */
387
+ getCacheStats(): BatchStats {
388
+ const cacheEntries: any[] = [];
389
+ let totalPendingVectors = 0;
390
+
391
+ for (const [userAddress, entry] of this.indexCache.entries()) {
392
+ const pendingCount = entry.pendingVectors.size;
393
+ totalPendingVectors += pendingCount;
394
+
395
+ cacheEntries.push({
396
+ userAddress,
397
+ pendingVectors: pendingCount,
398
+ lastModified: entry.lastModified,
399
+ isDirty: entry.isDirty,
400
+ indexDimensions: entry.dimensions
401
+ });
402
+ }
403
+
404
+ return {
405
+ totalUsers: this.indexCache.size,
406
+ totalPendingVectors,
407
+ activeBatchJobs: this.batchJobs.size,
408
+ cacheHitRate: 0, // TODO: Implement hit rate tracking
409
+ averageBatchSize: totalPendingVectors / Math.max(1, this.indexCache.size),
410
+ averageProcessingTime: 0 // TODO: Implement timing tracking
411
+ };
412
+ }
413
+
414
+ /**
415
+ * Remove a vector from the index
416
+ */
417
+ removeVector(userAddress: string, vectorId: number): void {
418
+ try {
419
+ const cacheEntry = this.indexCache.get(userAddress);
420
+ if (!cacheEntry?.index) {
421
+ throw new Error(`No index found for user ${userAddress}`);
422
+ }
423
+
424
+ // Remove from pending vectors if exists
425
+ cacheEntry.pendingVectors.delete(vectorId);
426
+ cacheEntry.metadata.delete(vectorId);
427
+
428
+ // Note: hnswlib-wasm doesn't support deletion, mark for rebuild
429
+ cacheEntry.isDirty = true;
430
+ cacheEntry.lastModified = new Date();
431
+
432
+ console.log(`🗑️ Vector ${vectorId} removed from index`);
433
+ } catch (error) {
434
+ throw this.createVectorError('INDEX_ERROR', `Failed to remove vector: ${error}`, error);
435
+ }
436
+ }
437
+
438
+ /**
439
+ * Clear user index and cache
440
+ */
441
+ clearUserIndex(userAddress: string): void {
442
+ this.indexCache.delete(userAddress);
443
+ this.batchJobs.delete(userAddress);
444
+ console.log(`🧹 Cleared index cache for user ${userAddress}`);
445
+ }
446
+
447
+ /**
448
+ * Cleanup resources
449
+ */
450
+ destroy(): void {
451
+ if (this.batchProcessor) {
452
+ clearInterval(this.batchProcessor);
453
+ }
454
+ if (this.cacheCleanup) {
455
+ clearInterval(this.cacheCleanup);
456
+ }
457
+ this.indexCache.clear();
458
+ this.batchJobs.clear();
459
+ console.log('🛑 HnswWasmService destroyed');
460
+ }
461
+
462
+ // ==================== PRIVATE METHODS ====================
463
+
464
+ private async createCacheEntry(dimensions: number): Promise<IndexCacheEntry> {
465
+ await this.ensureInitialized();
466
+
467
+ const index = new this.hnswlib!.HierarchicalNSW(this.indexConfig.spaceType, dimensions, '');
468
+ index.initIndex(this.indexConfig.maxElements, this.indexConfig.m, this.indexConfig.efConstruction, this.indexConfig.randomSeed);
469
+
470
+ return {
471
+ index,
472
+ lastModified: new Date(),
473
+ pendingVectors: new Map(),
474
+ isDirty: false,
475
+ version: 1,
476
+ metadata: new Map(),
477
+ dimensions
478
+ };
479
+ }
480
+
481
+ private scheduleBatchJob(userAddress: string, vectorId: number, vector: number[]): void {
482
+ let batchJob = this.batchJobs.get(userAddress);
483
+ if (!batchJob) {
484
+ batchJob = {
485
+ userAddress,
486
+ vectors: new Map(),
487
+ scheduledAt: new Date()
488
+ };
489
+ this.batchJobs.set(userAddress, batchJob);
490
+ }
491
+
492
+ batchJob.vectors.set(vectorId, vector);
493
+ }
494
+
495
+ private startBatchProcessor(): void {
496
+ this.batchProcessor = setInterval(async () => {
497
+ await this.processBatchJobs();
498
+ }, this.config.batchDelayMs);
499
+ }
500
+
501
+ private startCacheCleanup(): void {
502
+ this.cacheCleanup = setInterval(() => {
503
+ this.cleanupCache();
504
+ }, 5 * 60 * 1000); // Every 5 minutes
505
+ }
506
+
507
+ private async processBatchJobs(): Promise<void> {
508
+ const now = Date.now();
509
+ const jobsToProcess: string[] = [];
510
+
511
+ for (const [userAddress, job] of this.batchJobs.entries()) {
512
+ const timeSinceScheduled = now - job.scheduledAt.getTime();
513
+ const cacheEntry = this.indexCache.get(userAddress);
514
+
515
+ if (timeSinceScheduled >= this.config.batchDelayMs ||
516
+ (cacheEntry && cacheEntry.pendingVectors.size >= this.config.maxBatchSize)) {
517
+ jobsToProcess.push(userAddress);
518
+ }
519
+ }
520
+
521
+ for (const userAddress of jobsToProcess) {
522
+ try {
523
+ await this.flushPendingVectors(userAddress);
524
+ } catch (error) {
525
+ console.error(`❌ Error processing batch job for user ${userAddress}:`, error);
526
+ }
527
+ }
528
+ }
529
+
530
+ private async flushPendingVectors(userAddress: string): Promise<void> {
531
+ await this.ensureInitialized();
532
+
533
+ const cacheEntry = this.indexCache.get(userAddress);
534
+ if (!cacheEntry || cacheEntry.pendingVectors.size === 0) {
535
+ return;
536
+ }
537
+
538
+ console.log(`⚡ Flushing ${cacheEntry.pendingVectors.size} pending vectors for user ${userAddress}`);
539
+
540
+ try {
541
+ // Create index if it doesn't exist
542
+ if (!cacheEntry.index) {
543
+ const newEntry = await this.createCacheEntry(cacheEntry.dimensions);
544
+ cacheEntry.index = newEntry.index;
545
+ }
546
+
547
+ // Prepare vectors array for batch insertion
548
+ const vectors: number[][] = [];
549
+ const labels: number[] = [];
550
+
551
+ for (const [vectorId, vector] of cacheEntry.pendingVectors.entries()) {
552
+ vectors.push(vector);
553
+ labels.push(vectorId);
554
+ }
555
+
556
+ // Add all pending vectors to the index in batch
557
+ if (vectors.length > 0) {
558
+ // Convert to Float32Array[] as required by hnswlib-wasm
559
+ const float32Vectors = vectors.map(v =>
560
+ v instanceof Float32Array ? v : new Float32Array(v)
561
+ );
562
+ cacheEntry.index.addItems(float32Vectors, true);
563
+ }
564
+
565
+ // Save to Walrus
566
+ await this.saveIndexToWalrus(cacheEntry.index, userAddress);
567
+
568
+ // Clear pending vectors
569
+ cacheEntry.pendingVectors.clear();
570
+ cacheEntry.isDirty = false;
571
+ cacheEntry.lastModified = new Date();
572
+ cacheEntry.version++;
573
+
574
+ // Remove batch job
575
+ this.batchJobs.delete(userAddress);
576
+
577
+ console.log(`✅ Successfully flushed vectors for user ${userAddress} (version ${cacheEntry.version})`);
578
+ } catch (error) {
579
+ console.error(`❌ Error flushing vectors for user ${userAddress}:`, error);
580
+ throw error;
581
+ }
582
+ }
583
+
584
+ private async saveIndexToWalrus(index: HierarchicalNSW, userAddress: string): Promise<string> {
585
+ await this.ensureInitialized();
586
+
587
+ try {
588
+ // Serialize index to Emscripten filesystem
589
+ const indexName = `index_${userAddress}_${Date.now()}`;
590
+ await index.writeIndex(indexName);
591
+
592
+ // Sync to IndexedDB
593
+ await this.hnswlib!.EmscriptenFileSystemManager.syncFS(false, () => {});
594
+
595
+ // Read serialized data from filesystem
596
+ const serialized = (this.hnswlib!.EmscriptenFileSystemManager as any).readFile(indexName) as Uint8Array;
597
+
598
+ // Upload to Walrus via StorageService
599
+ const metadata: MemoryMetadata = {
600
+ contentType: 'application/hnsw-index-wasm',
601
+ contentSize: serialized.byteLength,
602
+ contentHash: '', // TODO: Calculate hash
603
+ category: 'vector-index',
604
+ topic: 'hnsw-wasm',
605
+ importance: 8,
606
+ embeddingDimension: this.indexConfig.dimension,
607
+ createdTimestamp: Date.now(),
608
+ customMetadata: {
609
+ 'user-address': userAddress,
610
+ 'version': '1.0',
611
+ 'wasm': 'true'
612
+ }
613
+ };
614
+
615
+ const result = await this.storageService.upload(serialized, metadata);
616
+
617
+ console.log(`💾 Index saved to Walrus: ${result.blobId}`);
618
+ return result.blobId;
619
+ } catch (error) {
620
+ console.error('❌ Failed to save index to Walrus:', error);
621
+ throw error;
622
+ }
623
+ }
624
+
625
+ private applyMetadataFilter(
626
+ ids: number[],
627
+ distances: number[],
628
+ metadata: Map<number, any>,
629
+ filter: (metadata: any) => boolean
630
+ ): { ids: number[]; distances: number[] } {
631
+ const filteredIds: number[] = [];
632
+ const filteredDistances: number[] = [];
633
+
634
+ for (let i = 0; i < ids.length; i++) {
635
+ const vectorId = ids[i];
636
+ const vectorMetadata = metadata.get(vectorId);
637
+
638
+ if (!vectorMetadata || filter(vectorMetadata)) {
639
+ filteredIds.push(vectorId);
640
+ filteredDistances.push(distances[i]);
641
+ }
642
+ }
643
+
644
+ return { ids: filteredIds, distances: filteredDistances };
645
+ }
646
+
647
+ private cleanupCache(): void {
648
+ const now = Date.now();
649
+ for (const [userAddress, entry] of this.indexCache.entries()) {
650
+ if (now - entry.lastModified.getTime() > this.config.cacheTtlMs) {
651
+ console.debug(`🧹 Removing stale cache entry for user ${userAddress}`);
652
+ this.indexCache.delete(userAddress);
653
+ }
654
+ }
655
+ }
656
+
657
+ private validateVector(vector: number[]): void {
658
+ if (!Array.isArray(vector) || vector.length === 0) {
659
+ throw new Error('Vector must be a non-empty array');
660
+ }
661
+
662
+ if (vector.some(v => typeof v !== 'number' || !isFinite(v))) {
663
+ throw new Error('Vector must contain only finite numbers');
664
+ }
665
+
666
+ if (vector.length !== this.indexConfig.dimension) {
667
+ throw new Error(`Vector dimension mismatch: expected ${this.indexConfig.dimension}, got ${vector.length}`);
668
+ }
669
+ }
670
+
671
+ private createVectorError(code: VectorError['code'], message: string, details?: any): VectorError {
672
+ const error = new Error(message) as VectorError;
673
+ error.code = code;
674
+ error.details = details;
675
+ return error;
676
+ }
677
+ }
678
+
679
+ export default HnswWasmService;