@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,758 @@
1
+ /**
2
+ * BrowserHnswIndexService - Client-Side HNSW Vector Indexing
3
+ *
4
+ * Browser-compatible HNSW vector indexing with IndexedDB persistence.
5
+ * Uses hnswlib-wasm for WASM-based vector search (10-50x faster than pure JS).
6
+ *
7
+ * Features:
8
+ * - WASM-powered HNSW algorithm for fast vector search
9
+ * - IndexedDB persistence (survives page refresh)
10
+ * - Intelligent batching and caching
11
+ * - Metadata filtering support
12
+ * - Zero backend dependencies
13
+ */
14
+
15
+ import type {
16
+ HNSWIndexConfig,
17
+ HNSWSearchResult,
18
+ HNSWSearchOptions,
19
+ BatchConfig,
20
+ BatchStats,
21
+ VectorError
22
+ } from '../embedding/types';
23
+
24
+ interface IndexCacheEntry {
25
+ index: any; // hnswlib-wasm HierarchicalNSW instance
26
+ lastModified: Date;
27
+ pendingVectors: Map<number, number[]>;
28
+ isDirty: boolean;
29
+ version: number;
30
+ metadata: Map<number, any>;
31
+ }
32
+
33
+ interface IndexedDBSchema {
34
+ indices: {
35
+ key: string; // userAddress
36
+ value: {
37
+ userAddress: string;
38
+ indexData: ArrayBuffer; // Serialized HNSW index
39
+ metadata: Record<string, any>;
40
+ version: number;
41
+ lastUpdated: number;
42
+ };
43
+ };
44
+ vectors: {
45
+ key: [string, number]; // [userAddress, vectorId]
46
+ value: {
47
+ userAddress: string;
48
+ vectorId: number;
49
+ vector: number[];
50
+ metadata: any;
51
+ timestamp: number;
52
+ };
53
+ };
54
+ }
55
+
56
+ /**
57
+ * Browser-compatible HNSW vector indexing service with IndexedDB persistence
58
+ */
59
+ export class BrowserHnswIndexService {
60
+ private readonly indexCache = new Map<string, IndexCacheEntry>();
61
+ private readonly batchJobs = new Map<string, any>();
62
+ private readonly config: Required<BatchConfig>;
63
+ private readonly indexConfig: Required<HNSWIndexConfig>;
64
+ private batchProcessor?: number;
65
+ private cacheCleanup?: number;
66
+ private db?: IDBDatabase;
67
+ private hnswLib?: any; // Will be loaded dynamically
68
+
69
+ // Debug mode - enable with DEBUG_HNSW=true in environment
70
+ private readonly debug = typeof process !== 'undefined' && process.env?.DEBUG_HNSW === 'true';
71
+
72
+ constructor(
73
+ indexConfig: Partial<HNSWIndexConfig> = {},
74
+ batchConfig: Partial<BatchConfig> = {}
75
+ ) {
76
+ // Default HNSW configuration
77
+ this.indexConfig = {
78
+ dimension: indexConfig.dimension || 3072,
79
+ maxElements: indexConfig.maxElements || 10000,
80
+ efConstruction: indexConfig.efConstruction || 200,
81
+ m: indexConfig.m || 16,
82
+ randomSeed: indexConfig.randomSeed || 42,
83
+ spaceType: indexConfig.spaceType || 'cosine'
84
+ };
85
+
86
+ // Default batch configuration
87
+ this.config = {
88
+ maxBatchSize: batchConfig.maxBatchSize || 50,
89
+ batchDelayMs: batchConfig.batchDelayMs || 5000,
90
+ maxCacheSize: batchConfig.maxCacheSize || 100,
91
+ cacheTtlMs: batchConfig.cacheTtlMs || 30 * 60 * 1000 // 30 minutes
92
+ };
93
+
94
+ this.initializeIndexedDB();
95
+ this.startBatchProcessor();
96
+ this.startCacheCleanup();
97
+ }
98
+
99
+ /**
100
+ * Debug logging helper
101
+ */
102
+ private debugLog(message: string, ...args: any[]): void {
103
+ if (this.debug) {
104
+ console.log(`[HNSW DEBUG] ${message}`, ...args);
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Initialize IndexedDB for persistence
110
+ */
111
+ private async initializeIndexedDB(): Promise<void> {
112
+ this.debugLog('Initializing IndexedDB...');
113
+ return new Promise((resolve, reject) => {
114
+ const request = indexedDB.open('HnswIndexDB', 1);
115
+
116
+ request.onerror = () => {
117
+ console.error('❌ Failed to open IndexedDB');
118
+ reject(new Error('Failed to open IndexedDB'));
119
+ };
120
+
121
+ request.onsuccess = () => {
122
+ this.db = request.result;
123
+ console.log('✅ IndexedDB initialized for HNSW indices');
124
+ this.debugLog('IndexedDB instance:', this.db);
125
+ resolve();
126
+ };
127
+
128
+ request.onupgradeneeded = (event) => {
129
+ const db = (event.target as IDBOpenDBRequest).result;
130
+ this.debugLog('IndexedDB upgrade needed, creating object stores');
131
+
132
+ // Indices store
133
+ if (!db.objectStoreNames.contains('indices')) {
134
+ const indicesStore = db.createObjectStore('indices', { keyPath: 'userAddress' });
135
+ indicesStore.createIndex('lastUpdated', 'lastUpdated', { unique: false });
136
+ this.debugLog('Created "indices" object store');
137
+ }
138
+
139
+ // Vectors store
140
+ if (!db.objectStoreNames.contains('vectors')) {
141
+ const vectorsStore = db.createObjectStore('vectors', { keyPath: ['userAddress', 'vectorId'] });
142
+ vectorsStore.createIndex('userAddress', 'userAddress', { unique: false });
143
+ vectorsStore.createIndex('timestamp', 'timestamp', { unique: false });
144
+ this.debugLog('Created "vectors" object store');
145
+ }
146
+ };
147
+ });
148
+ }
149
+
150
+ /**
151
+ * Load hnswlib-wasm dynamically (only when needed)
152
+ * CRITICAL: Must await WASM initialization before using HierarchicalNSW constructor
153
+ */
154
+ private async loadHnswLib(): Promise<any> {
155
+ if (this.hnswLib) {
156
+ this.debugLog('hnswlib-wasm already loaded, returning cached instance');
157
+ return this.hnswLib;
158
+ }
159
+
160
+ try {
161
+ this.debugLog('Loading hnswlib-wasm...');
162
+ // Dynamic import for hnswlib-wasm
163
+ const { loadHnswlib } = await import('hnswlib-wasm');
164
+ this.debugLog('hnswlib-wasm module imported, initializing WASM...');
165
+
166
+ // CRITICAL: Wait for WASM module initialization
167
+ // Without this, HierarchicalNSW constructor will not be available
168
+ this.hnswLib = await loadHnswlib();
169
+
170
+ console.log('✅ hnswlib-wasm loaded and initialized successfully');
171
+ this.debugLog('hnswlib-wasm instance:', this.hnswLib);
172
+ this.debugLog('Available constructors:', Object.keys(this.hnswLib));
173
+ return this.hnswLib;
174
+ } catch (error) {
175
+ console.error('❌ Failed to load hnswlib-wasm:', error);
176
+ throw new Error('hnswlib-wasm is required but not available. Install it with: npm install hnswlib-wasm');
177
+ }
178
+ }
179
+
180
+ /**
181
+ * Create a new HNSW index
182
+ */
183
+ async createIndex(
184
+ userAddress: string,
185
+ options: Partial<HNSWIndexConfig> = {}
186
+ ): Promise<{ index: any; serialized: ArrayBuffer }> {
187
+ try {
188
+ this.debugLog(`Creating index for user: ${userAddress}`);
189
+ const hnswLib = await this.loadHnswLib();
190
+ const config = { ...this.indexConfig, ...options };
191
+
192
+ console.log(`Creating new HNSW index for user ${userAddress} with dimensions ${config.dimension}`);
193
+ this.debugLog('Index config:', config);
194
+
195
+ // Create a new index (hnswlib-wasm API)
196
+ // Note: hnswlib-wasm requires 3 parameters: spaceName, numDimensions, autoSaveFilename
197
+ this.debugLog('Calling HierarchicalNSW constructor...');
198
+ const indexFilename = `hnsw_${userAddress.substring(0, 10)}.dat`;
199
+ const index = new hnswLib.HierarchicalNSW(config.spaceType, config.dimension, indexFilename);
200
+ this.debugLog('Index created, calling initIndex...');
201
+ index.initIndex(config.maxElements, config.m, config.efConstruction, config.randomSeed);
202
+ this.debugLog('Index initialized successfully');
203
+
204
+ // Create cache entry
205
+ this.indexCache.set(userAddress, {
206
+ index,
207
+ lastModified: new Date(),
208
+ pendingVectors: new Map(),
209
+ isDirty: false,
210
+ version: 1,
211
+ metadata: new Map()
212
+ });
213
+ this.debugLog(`Index cached for user: ${userAddress}`);
214
+
215
+ // Write index to Emscripten FS (hnswlib-wasm uses writeIndex, not serializeIndex)
216
+ await index.writeIndex(indexFilename);
217
+ this.debugLog(`Index written to Emscripten FS: ${indexFilename}`);
218
+
219
+ // Return empty buffer for compatibility (actual data is in Emscripten FS)
220
+ return { index, serialized: new ArrayBuffer(0) };
221
+ } catch (error) {
222
+ console.error(`❌ Failed to create index for ${userAddress}:`, error);
223
+ throw this.createVectorError('INDEX_ERROR', `Failed to create index: ${error}`, error);
224
+ }
225
+ }
226
+
227
+ /**
228
+ * Add vector to index with batching (main entry point)
229
+ */
230
+ addVectorToIndexBatched(
231
+ userAddress: string,
232
+ vectorId: number,
233
+ vector: number[],
234
+ metadata?: any
235
+ ): void {
236
+ try {
237
+ // Validate input
238
+ this.validateVector(vector);
239
+
240
+ // Get or create cache entry
241
+ let cacheEntry = this.indexCache.get(userAddress);
242
+ if (!cacheEntry) {
243
+ console.warn(`No cached index found for user ${userAddress}, will create on flush`);
244
+ // Create empty cache entry
245
+ cacheEntry = {
246
+ index: null,
247
+ lastModified: new Date(),
248
+ pendingVectors: new Map(),
249
+ isDirty: true,
250
+ version: 1,
251
+ metadata: new Map()
252
+ };
253
+ this.indexCache.set(userAddress, cacheEntry);
254
+ }
255
+
256
+ // Add to pending queue
257
+ cacheEntry.pendingVectors.set(vectorId, vector);
258
+ if (metadata) {
259
+ cacheEntry.metadata.set(vectorId, metadata);
260
+ }
261
+ cacheEntry.isDirty = true;
262
+ cacheEntry.lastModified = new Date();
263
+
264
+ // Schedule batch job
265
+ this.scheduleBatchJob(userAddress, vectorId, vector);
266
+
267
+ console.debug(`Vector ${vectorId} queued for batch processing for user ${userAddress}. Pending: ${cacheEntry.pendingVectors.size}`);
268
+
269
+ // Process immediately if batch size limit reached
270
+ if (cacheEntry.pendingVectors.size >= this.config.maxBatchSize) {
271
+ console.log(`Batch size limit reached for user ${userAddress}, processing immediately`);
272
+ setTimeout(() => this.flushPendingVectors(userAddress), 0);
273
+ }
274
+ } catch (error) {
275
+ throw this.createVectorError('INDEX_ERROR', `Failed to queue vector: ${error}`, error);
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Search vectors in the index (including pending vectors)
281
+ */
282
+ async searchVectors(
283
+ userAddress: string,
284
+ queryVector: number[],
285
+ options: HNSWSearchOptions = {}
286
+ ): Promise<HNSWSearchResult> {
287
+ try {
288
+ this.debugLog(`🔍 searchVectors called for user: ${userAddress}`);
289
+ this.debugLog(`Query vector length: ${queryVector.length}, k: ${options.k || 10}`);
290
+
291
+ this.validateVector(queryVector);
292
+
293
+ let cacheEntry = this.indexCache.get(userAddress);
294
+ this.debugLog(`Cache entry exists: ${!!cacheEntry}, has index: ${!!cacheEntry?.index}`);
295
+ this.debugLog(`Pending vectors: ${cacheEntry?.pendingVectors?.size || 0}`);
296
+
297
+ // If no index exists, check if we have pending vectors that need flushing
298
+ if (!cacheEntry?.index && cacheEntry?.pendingVectors && cacheEntry.pendingVectors.size > 0) {
299
+ console.log(`🔍 No index but ${cacheEntry.pendingVectors.size} pending vectors - flushing first...`);
300
+ await this.flushPendingVectors(userAddress);
301
+ cacheEntry = this.indexCache.get(userAddress); // Refresh after flush
302
+ this.debugLog(`After flush - cache entry: ${!!cacheEntry}, has index: ${!!cacheEntry?.index}`);
303
+ }
304
+
305
+ if (!cacheEntry?.index) {
306
+ this.debugLog('No index in cache, attempting to load from IndexedDB...');
307
+ // Try to load from IndexedDB
308
+ const loaded = await this.loadIndexFromDB(userAddress);
309
+ this.debugLog(`loadIndexFromDB result: ${loaded}`);
310
+
311
+ if (!loaded) {
312
+ // Check one more time for pending vectors (edge case)
313
+ const entry = this.indexCache.get(userAddress);
314
+ if (entry?.pendingVectors && entry.pendingVectors.size > 0) {
315
+ console.log(`🔍 Found ${entry.pendingVectors.size} pending vectors - flushing before search...`);
316
+ await this.flushPendingVectors(userAddress);
317
+ // Reload after flush
318
+ cacheEntry = this.indexCache.get(userAddress);
319
+ this.debugLog(`After second flush - has index: ${!!cacheEntry?.index}`);
320
+ } else {
321
+ // No index exists yet - this is normal for new users with no memories
322
+ console.info(`No index found for user ${userAddress} - returning empty results`);
323
+ this.debugLog('Returning empty search results');
324
+ return {
325
+ ids: [],
326
+ distances: [],
327
+ similarities: []
328
+ };
329
+ }
330
+ } else {
331
+ cacheEntry = this.indexCache.get(userAddress);
332
+ this.debugLog(`Loaded from DB - has index: ${!!cacheEntry?.index}`);
333
+ }
334
+ }
335
+
336
+ const { k = 10, efSearch = 50, filter } = options;
337
+ this.debugLog(`Search parameters - k: ${k}, efSearch: ${efSearch}`);
338
+
339
+ const entry = this.indexCache.get(userAddress)!;
340
+
341
+ // Get index stats before search
342
+ if (entry.index && entry.index.getCurrentCount) {
343
+ const count = entry.index.getCurrentCount();
344
+ console.log(`📊 Index stats - Current count: ${count}, Pending: ${entry.pendingVectors.size}`);
345
+ this.debugLog(`Index current count: ${count}`);
346
+
347
+ if (count === 0) {
348
+ console.warn(`⚠️ Index exists but has 0 vectors! This may indicate an indexing problem.`);
349
+ }
350
+ }
351
+
352
+ // Set search parameters
353
+ if (entry.index.setEfSearch) {
354
+ entry.index.setEfSearch(efSearch);
355
+ this.debugLog(`Set efSearch to ${efSearch}`);
356
+ }
357
+
358
+ let searchIndex = entry.index;
359
+
360
+ // If there are pending vectors, create a temporary index for search
361
+ if (entry.pendingVectors.size > 0) {
362
+ this.debugLog(`Creating temporary index with ${entry.pendingVectors.size} pending vectors`);
363
+ searchIndex = await this.cloneIndexWithPending(entry, queryVector.length);
364
+ }
365
+
366
+ // Perform search
367
+ this.debugLog('Calling searchKnn...');
368
+ const result = searchIndex.searchKnn(queryVector, k, undefined);
369
+ this.debugLog(`searchKnn returned - neighbors: ${result?.neighbors?.length || 0}`);
370
+
371
+ // Apply metadata filter if provided
372
+ let filteredIds = result.neighbors || result.indices || [];
373
+ let filteredDistances = result.distances;
374
+
375
+ if (filter && entry.metadata.size > 0) {
376
+ const filtered = this.applyMetadataFilter(filteredIds, filteredDistances, entry.metadata, filter);
377
+ filteredIds = filtered.ids;
378
+ filteredDistances = filtered.distances;
379
+ }
380
+
381
+ // Convert distances to similarities (for cosine distance)
382
+ const similarities = this.indexConfig.spaceType === 'cosine'
383
+ ? filteredDistances.map((dist: number) => 1 - dist)
384
+ : filteredDistances.map((dist: number) => 1 / (1 + dist));
385
+
386
+ return {
387
+ ids: filteredIds,
388
+ distances: filteredDistances,
389
+ similarities
390
+ };
391
+ } catch (error) {
392
+ throw this.createVectorError('SEARCH_ERROR', `Search failed: ${error}`, error);
393
+ }
394
+ }
395
+
396
+ /**
397
+ * Load index from IndexedDB via Emscripten FS
398
+ */
399
+ async loadIndexFromDB(userAddress: string): Promise<boolean> {
400
+ if (!this.db) {
401
+ await this.initializeIndexedDB();
402
+ }
403
+
404
+ return new Promise((resolve, reject) => {
405
+ const transaction = this.db!.transaction(['indices'], 'readonly');
406
+ const store = transaction.objectStore('indices');
407
+ const request = store.get(userAddress);
408
+
409
+ request.onsuccess = async () => {
410
+ const result = request.result;
411
+ if (!result) {
412
+ resolve(false);
413
+ return;
414
+ }
415
+
416
+ try {
417
+ const hnswLib = await this.loadHnswLib();
418
+ const indexFilename = `hnsw_${userAddress.substring(0, 10)}.dat`;
419
+
420
+ // Sync from IndexedDB to Emscripten FS
421
+ await hnswLib.EmscriptenFileSystemManager.syncFS(true, () => {
422
+ // Callback when sync completes
423
+ });
424
+
425
+ // Check if file exists
426
+ if (!hnswLib.EmscriptenFileSystemManager.checkFileExists(indexFilename)) {
427
+ console.log(`Index file ${indexFilename} not found in Emscripten FS`);
428
+ resolve(false);
429
+ return;
430
+ }
431
+
432
+ // Create index and load from file
433
+ const index = new hnswLib.HierarchicalNSW(
434
+ this.indexConfig.spaceType,
435
+ this.indexConfig.dimension,
436
+ indexFilename
437
+ );
438
+
439
+ // Read the index from file
440
+ await index.readIndex(indexFilename, this.indexConfig.maxElements);
441
+
442
+ // Convert metadata string keys back to numbers (vectorId)
443
+ const metadataEntries = Object.entries(result.metadata || {})
444
+ .map(([k, v]) => [Number(k), v] as [number, any]);
445
+
446
+ // Cache the loaded index
447
+ this.indexCache.set(userAddress, {
448
+ index,
449
+ lastModified: new Date(result.lastUpdated),
450
+ pendingVectors: new Map(),
451
+ isDirty: false,
452
+ version: result.version,
453
+ metadata: new Map(metadataEntries)
454
+ });
455
+
456
+ console.log(`✅ Successfully loaded index for user ${userAddress} from IndexedDB`);
457
+ resolve(true);
458
+ } catch (error) {
459
+ console.error('Failed to load index:', error);
460
+ reject(error);
461
+ }
462
+ };
463
+
464
+ request.onerror = () => reject(new Error('Failed to load index from IndexedDB'));
465
+ });
466
+ }
467
+
468
+ /**
469
+ * Save index to IndexedDB via Emscripten FS
470
+ */
471
+ async saveIndexToDB(userAddress: string): Promise<void> {
472
+ const cacheEntry = this.indexCache.get(userAddress);
473
+ if (!cacheEntry?.index) {
474
+ throw new Error(`No index found for user ${userAddress}`);
475
+ }
476
+
477
+ if (!this.db) {
478
+ await this.initializeIndexedDB();
479
+ }
480
+
481
+ try {
482
+ const hnswLib = await this.loadHnswLib();
483
+ const indexFilename = `hnsw_${userAddress.substring(0, 10)}.dat`;
484
+
485
+ // Write index to Emscripten FS
486
+ await cacheEntry.index.writeIndex(indexFilename);
487
+
488
+ // Sync from Emscripten FS to IndexedDB
489
+ await hnswLib.EmscriptenFileSystemManager.syncFS(false, () => {
490
+ // Callback when sync completes
491
+ });
492
+
493
+ // Store metadata in our IndexedDB (separate from Emscripten's IDBFS)
494
+ return new Promise((resolve, reject) => {
495
+ const transaction = this.db!.transaction(['indices'], 'readwrite');
496
+ const store = transaction.objectStore('indices');
497
+
498
+ const data = {
499
+ userAddress,
500
+ indexData: new ArrayBuffer(0), // Actual data is in Emscripten FS/IDBFS
501
+ metadata: Object.fromEntries(cacheEntry.metadata),
502
+ version: cacheEntry.version,
503
+ lastUpdated: Date.now()
504
+ };
505
+
506
+ const request = store.put(data);
507
+
508
+ request.onsuccess = () => {
509
+ console.log(`✅ Index saved to IndexedDB for user ${userAddress}`);
510
+ resolve();
511
+ };
512
+
513
+ request.onerror = () => reject(new Error('Failed to save index metadata to IndexedDB'));
514
+ });
515
+ } catch (error) {
516
+ console.error(`Failed to save index for user ${userAddress}:`, error);
517
+ throw error;
518
+ }
519
+ }
520
+
521
+ /**
522
+ * Force flush all pending vectors for a user
523
+ */
524
+ async forceFlush(userAddress: string): Promise<void> {
525
+ await this.flushPendingVectors(userAddress);
526
+ }
527
+
528
+ /**
529
+ * Get cache statistics
530
+ */
531
+ getCacheStats(): BatchStats {
532
+ const cacheEntries: any[] = [];
533
+ let totalPendingVectors = 0;
534
+
535
+ for (const [userAddress, entry] of this.indexCache.entries()) {
536
+ const pendingCount = entry.pendingVectors.size;
537
+ totalPendingVectors += pendingCount;
538
+
539
+ cacheEntries.push({
540
+ userAddress,
541
+ pendingVectors: pendingCount,
542
+ lastModified: entry.lastModified,
543
+ isDirty: entry.isDirty,
544
+ hasIndex: !!entry.index
545
+ });
546
+ }
547
+
548
+ return {
549
+ totalUsers: this.indexCache.size,
550
+ totalPendingVectors,
551
+ activeBatchJobs: this.batchJobs.size,
552
+ cacheHitRate: 0, // TODO: Implement hit rate tracking
553
+ averageBatchSize: totalPendingVectors / Math.max(1, this.indexCache.size),
554
+ averageProcessingTime: 0 // TODO: Implement timing tracking
555
+ };
556
+ }
557
+
558
+ /**
559
+ * Clear user index and cache
560
+ */
561
+ clearUserIndex(userAddress: string): void {
562
+ this.indexCache.delete(userAddress);
563
+ this.batchJobs.delete(userAddress);
564
+ console.log(`Cleared index cache for user ${userAddress}`);
565
+ }
566
+
567
+ /**
568
+ * Cleanup resources
569
+ */
570
+ destroy(): void {
571
+ if (this.batchProcessor) {
572
+ clearInterval(this.batchProcessor);
573
+ }
574
+ if (this.cacheCleanup) {
575
+ clearInterval(this.cacheCleanup);
576
+ }
577
+ this.indexCache.clear();
578
+ this.batchJobs.clear();
579
+
580
+ if (this.db) {
581
+ this.db.close();
582
+ }
583
+ }
584
+
585
+ // ==================== PRIVATE METHODS ====================
586
+
587
+ private scheduleBatchJob(userAddress: string, vectorId: number, vector: number[]): void {
588
+ let batchJob = this.batchJobs.get(userAddress);
589
+ if (!batchJob) {
590
+ batchJob = {
591
+ userAddress,
592
+ vectors: new Map(),
593
+ scheduledAt: new Date()
594
+ };
595
+ this.batchJobs.set(userAddress, batchJob);
596
+ }
597
+
598
+ batchJob.vectors.set(vectorId, vector);
599
+ }
600
+
601
+ private startBatchProcessor(): void {
602
+ this.batchProcessor = window.setInterval(async () => {
603
+ await this.processBatchJobs();
604
+ }, this.config.batchDelayMs);
605
+ }
606
+
607
+ private startCacheCleanup(): void {
608
+ this.cacheCleanup = window.setInterval(() => {
609
+ this.cleanupCache();
610
+ }, 5 * 60 * 1000); // Every 5 minutes
611
+ }
612
+
613
+ private async processBatchJobs(): Promise<void> {
614
+ const now = Date.now();
615
+ const jobsToProcess: string[] = [];
616
+
617
+ for (const [userAddress, job] of this.batchJobs.entries()) {
618
+ const timeSinceScheduled = now - job.scheduledAt.getTime();
619
+ const cacheEntry = this.indexCache.get(userAddress);
620
+
621
+ if (timeSinceScheduled >= this.config.batchDelayMs ||
622
+ (cacheEntry && cacheEntry.pendingVectors.size >= this.config.maxBatchSize)) {
623
+ jobsToProcess.push(userAddress);
624
+ }
625
+ }
626
+
627
+ for (const userAddress of jobsToProcess) {
628
+ try {
629
+ await this.flushPendingVectors(userAddress);
630
+ } catch (error) {
631
+ console.error(`Error processing batch job for user ${userAddress}:`, error);
632
+ }
633
+ }
634
+ }
635
+
636
+ private async flushPendingVectors(userAddress: string): Promise<void> {
637
+ const cacheEntry = this.indexCache.get(userAddress);
638
+ if (!cacheEntry || cacheEntry.pendingVectors.size === 0) {
639
+ return;
640
+ }
641
+
642
+ console.log(`Flushing ${cacheEntry.pendingVectors.size} pending vectors for user ${userAddress}`);
643
+
644
+ try {
645
+ // Create index if it doesn't exist
646
+ if (!cacheEntry.index) {
647
+ const { index } = await this.createIndex(userAddress);
648
+ cacheEntry.index = index;
649
+ }
650
+
651
+ // Add all pending vectors to the index
652
+ for (const [vectorId, vector] of cacheEntry.pendingVectors.entries()) {
653
+ cacheEntry.index.addPoint(vector, vectorId, false);
654
+ }
655
+
656
+ // Save to IndexedDB
657
+ await this.saveIndexToDB(userAddress);
658
+
659
+ // Clear pending vectors
660
+ cacheEntry.pendingVectors.clear();
661
+ cacheEntry.isDirty = false;
662
+ cacheEntry.lastModified = new Date();
663
+ cacheEntry.version++;
664
+
665
+ // Remove batch job
666
+ this.batchJobs.delete(userAddress);
667
+
668
+ console.log(`Successfully flushed vectors for user ${userAddress}`);
669
+ } catch (error) {
670
+ console.error(`Error flushing vectors for user ${userAddress}:`, error);
671
+ throw error;
672
+ }
673
+ }
674
+
675
+ private async cloneIndexWithPending(cacheEntry: IndexCacheEntry, dimensions: number): Promise<any> {
676
+ const hnswLib = await this.loadHnswLib();
677
+ const tempFilename = `temp_clone_${Date.now()}.dat`;
678
+
679
+ // Save original index to temp file
680
+ await cacheEntry.index.writeIndex(tempFilename);
681
+
682
+ // Create clone and load from temp file
683
+ const clonedIndex = new hnswLib.HierarchicalNSW(
684
+ this.indexConfig.spaceType,
685
+ dimensions,
686
+ tempFilename
687
+ );
688
+ clonedIndex.initIndex(
689
+ this.indexConfig.maxElements,
690
+ this.indexConfig.m,
691
+ this.indexConfig.efConstruction,
692
+ this.indexConfig.randomSeed
693
+ );
694
+ await clonedIndex.readIndex(tempFilename, this.indexConfig.maxElements);
695
+
696
+ // Add pending vectors
697
+ for (const [vectorId, vector] of cacheEntry.pendingVectors.entries()) {
698
+ clonedIndex.addPoint(vector, vectorId, false);
699
+ }
700
+
701
+ return clonedIndex;
702
+ }
703
+
704
+ private applyMetadataFilter(
705
+ ids: number[],
706
+ distances: number[],
707
+ metadata: Map<number, any>,
708
+ filter: (metadata: any) => boolean
709
+ ): { ids: number[]; distances: number[] } {
710
+ const filteredIds: number[] = [];
711
+ const filteredDistances: number[] = [];
712
+
713
+ for (let i = 0; i < ids.length; i++) {
714
+ const vectorId = ids[i];
715
+ const vectorMetadata = metadata.get(vectorId);
716
+
717
+ if (!vectorMetadata || filter(vectorMetadata)) {
718
+ filteredIds.push(vectorId);
719
+ filteredDistances.push(distances[i]);
720
+ }
721
+ }
722
+
723
+ return { ids: filteredIds, distances: filteredDistances };
724
+ }
725
+
726
+ private cleanupCache(): void {
727
+ const now = Date.now();
728
+ for (const [userAddress, entry] of this.indexCache.entries()) {
729
+ if (now - entry.lastModified.getTime() > this.config.cacheTtlMs) {
730
+ console.debug(`Removing stale cache entry for user ${userAddress}`);
731
+ this.indexCache.delete(userAddress);
732
+ }
733
+ }
734
+ }
735
+
736
+ private validateVector(vector: number[]): void {
737
+ if (!Array.isArray(vector) || vector.length === 0) {
738
+ throw new Error('Vector must be a non-empty array');
739
+ }
740
+
741
+ if (vector.some(v => typeof v !== 'number' || !isFinite(v))) {
742
+ throw new Error('Vector must contain only finite numbers');
743
+ }
744
+
745
+ if (vector.length !== this.indexConfig.dimension) {
746
+ throw new Error(`Vector dimension mismatch: expected ${this.indexConfig.dimension}, got ${vector.length}`);
747
+ }
748
+ }
749
+
750
+ private createVectorError(code: VectorError['code'], message: string, details?: any): VectorError {
751
+ const error = new Error(message) as VectorError;
752
+ error.code = code;
753
+ error.details = details;
754
+ return error;
755
+ }
756
+ }
757
+
758
+ export default BrowserHnswIndexService;