@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,982 @@
1
+ /**
2
+ * ClientMemoryManager - Client-side Memory Operations for React dApps
3
+ *
4
+ * Provides a simplified API for creating and retrieving memories in React dApps
5
+ * using @mysten/dapp-kit. Handles the complete flow:
6
+ * - Memory creation: embedding → encryption → Walrus upload → on-chain registration
7
+ * - Memory retrieval: Walrus fetch → SEAL decryption → content extraction
8
+ *
9
+ * Usage:
10
+ * ```typescript
11
+ * const manager = new ClientMemoryManager({
12
+ * packageId: '0x...',
13
+ * accessRegistryId: '0x...',
14
+ * walrusAggregator: 'https://...',
15
+ * geminiApiKey: 'your-key'
16
+ * });
17
+ *
18
+ * // Create memory
19
+ * const blobId = await manager.createMemory({
20
+ * content: 'My memory',
21
+ * account,
22
+ * signAndExecute,
23
+ * client,
24
+ * onProgress: (status) => console.log(status)
25
+ * });
26
+ *
27
+ * // Retrieve memory
28
+ * const content = await manager.retrieveMemory({
29
+ * blobId: '...',
30
+ * account,
31
+ * signPersonalMessage,
32
+ * client
33
+ * });
34
+ * ```
35
+ */
36
+
37
+ import { SealClient, SessionKey } from '@mysten/seal';
38
+ import { WalrusClient } from '@mysten/walrus';
39
+ import { Transaction } from '@mysten/sui/transactions';
40
+ import { fromHex } from '@mysten/sui/utils';
41
+ import type { SuiClient } from '@mysten/sui/client';
42
+ import { createHnswService, isBrowser, isNode } from '../vector/createHnswService';
43
+ import type { IHnswService } from '../vector/IHnswService';
44
+ import { EmbeddingService } from '../services/EmbeddingService';
45
+ import { GeminiAIService } from '../services/GeminiAIService';
46
+
47
+ export interface ClientMemoryManagerConfig {
48
+ packageId: string;
49
+ accessRegistryId: string;
50
+ walrusAggregator: string;
51
+ geminiApiKey: string;
52
+ sealServerObjectIds?: string[];
53
+ walrusNetwork?: 'testnet' | 'mainnet';
54
+ categories?: string[];
55
+ /** Enable local browser indexing for vector search (default: true) */
56
+ enableLocalIndexing?: boolean;
57
+ /** Pre-initialized HNSW service instance (shared singleton) */
58
+ hnswService?: IHnswService;
59
+ /** Enable SEAL encryption for memory content (default: true) */
60
+ enableEncryption?: boolean;
61
+ }
62
+
63
+ export interface CreateMemoryOptions {
64
+ content: string;
65
+ category?: string;
66
+ account: { address: string };
67
+ signAndExecute: (params: { transaction: Transaction }, callbacks: {
68
+ onSuccess: (result: any) => void;
69
+ onError: (error: Error) => void;
70
+ }) => void;
71
+ client: SuiClient;
72
+ onProgress?: (status: string) => void;
73
+ }
74
+
75
+ export interface RetrieveMemoryOptions {
76
+ blobId: string;
77
+ account: { address: string };
78
+ signPersonalMessage: (params: { message: Uint8Array }) => Promise<{ signature: string }>;
79
+ client: SuiClient;
80
+ onProgress?: (status: string) => void;
81
+ }
82
+
83
+ export interface BatchRetrieveMemoriesOptions {
84
+ blobIds: string[];
85
+ account: { address: string };
86
+ signPersonalMessage: (params: { message: Uint8Array }) => Promise<{ signature: string }>;
87
+ client: SuiClient;
88
+ onProgress?: (status: string, current: number, total: number) => void;
89
+ }
90
+
91
+ export interface BatchRetrieveResult {
92
+ blobId: string;
93
+ content?: string;
94
+ error?: string;
95
+ }
96
+
97
+ interface DecryptionSession {
98
+ sealClient: SealClient;
99
+ sessionKey: SessionKey;
100
+ txBytes: Uint8Array;
101
+ }
102
+
103
+ export interface ClientMemoryMetadata {
104
+ content: string;
105
+ embedding: number[];
106
+ timestamp: number;
107
+ }
108
+
109
+ /**
110
+ * Rich metadata structure aligned with on-chain MemoryMetadata
111
+ * This is extracted during AI analysis and used for:
112
+ * 1. Metadata-based vector embeddings
113
+ * 2. On-chain registration
114
+ * 3. Display in UI
115
+ */
116
+ export interface RichMetadataAnalysis {
117
+ category: string; // e.g., "work"
118
+ topic: string; // e.g., "Q4 project deadline meeting"
119
+ importance: number; // 1-10 scale
120
+ summary: string; // e.g., "Team discussion about Q4 deadlines..."
121
+ }
122
+
123
+ /**
124
+ * Client-side memory manager for React dApps
125
+ */
126
+ export class ClientMemoryManager {
127
+ private readonly config: Omit<Required<ClientMemoryManagerConfig>, 'hnswService'> & { enableLocalIndexing: boolean; enableEncryption: boolean; hnswService?: IHnswService };
128
+ private readonly defaultCategories = [
129
+ 'personal', 'work', 'education', 'health', 'finance',
130
+ 'travel', 'family', 'hobbies', 'goals', 'ideas'
131
+ ];
132
+
133
+ // Local indexing services (optional)
134
+ private embeddingService?: EmbeddingService;
135
+ private geminiAIService?: GeminiAIService;
136
+ private hnswService: IHnswService | null = null;
137
+ private hnswServicePromise: Promise<IHnswService> | null = null;
138
+
139
+ constructor(config: ClientMemoryManagerConfig) {
140
+ this.config = {
141
+ ...config,
142
+ sealServerObjectIds: config.sealServerObjectIds || [
143
+ '0x73d05d62c18d9374e3ea529e8e0ed6161da1a141a94d3f76ae3fe4e99356db75',
144
+ '0xf5d14a81a982144ae441cd7d64b09027f116a468bd36e7eca494f750591623c8'
145
+ ],
146
+ walrusNetwork: config.walrusNetwork || 'testnet',
147
+ categories: config.categories || this.defaultCategories,
148
+ enableLocalIndexing: config.enableLocalIndexing !== false, // Default: true
149
+ enableEncryption: config.enableEncryption !== false // Default: true (SEAL encryption)
150
+ };
151
+
152
+ // Initialize AI services if Gemini API key is provided
153
+ if (this.config.geminiApiKey) {
154
+ this.embeddingService = new EmbeddingService({
155
+ apiKey: this.config.geminiApiKey,
156
+ model: 'text-embedding-004',
157
+ dimensions: 3072
158
+ });
159
+
160
+ this.geminiAIService = new GeminiAIService({
161
+ apiKey: this.config.geminiApiKey,
162
+ model: process.env.AI_CHAT_MODEL || 'google/gemini-2.5-flash',
163
+ temperature: 0.1
164
+ });
165
+
166
+ console.log('✅ AI services initialized (Embedding + Metadata Extraction)');
167
+ }
168
+
169
+ // Initialize local indexing service if enabled
170
+ if (this.config.enableLocalIndexing) {
171
+ // Use pre-initialized HNSW service if provided (shared singleton pattern)
172
+ if (config.hnswService) {
173
+ this.hnswService = config.hnswService;
174
+ console.log('✅ ClientMemoryManager using shared HNSW service instance');
175
+ } else {
176
+ // Create own HNSW service (async via factory)
177
+ const envType = isBrowser() ? 'browser (hnswlib-wasm)' : isNode() ? 'Node.js (hnswlib-node)' : 'unknown';
178
+ console.log(`✅ ClientMemoryManager initializing local indexing (${envType})`);
179
+ this.hnswServicePromise = this.initializeHnswService();
180
+ }
181
+ }
182
+ }
183
+
184
+ /**
185
+ * Initialize HNSW service using factory (async)
186
+ */
187
+ private async initializeHnswService(): Promise<IHnswService> {
188
+ try {
189
+ const service = await createHnswService({
190
+ indexConfig: {
191
+ dimension: 3072,
192
+ maxElements: 10000,
193
+ m: 16,
194
+ efConstruction: 200
195
+ },
196
+ batchConfig: {
197
+ maxBatchSize: 50,
198
+ batchDelayMs: 5000
199
+ }
200
+ });
201
+
202
+ this.hnswService = service;
203
+ console.log('✅ ClientMemoryManager HNSW service initialized');
204
+ return service;
205
+ } catch (error) {
206
+ console.error('❌ ClientMemoryManager failed to initialize HNSW service:', error);
207
+ throw error;
208
+ }
209
+ }
210
+
211
+ /**
212
+ * Get HNSW service (waits for initialization if needed)
213
+ */
214
+ private async getHnswService(): Promise<IHnswService | null> {
215
+ if (this.hnswService) {
216
+ return this.hnswService;
217
+ }
218
+ if (this.hnswServicePromise) {
219
+ try {
220
+ return await this.hnswServicePromise;
221
+ } catch (error) {
222
+ console.warn('HNSW service initialization failed:', error);
223
+ return null;
224
+ }
225
+ }
226
+ return null;
227
+ }
228
+
229
+ // In-memory counter for Node.js environment
230
+ private vectorIdCounters = new Map<string, number>();
231
+
232
+ /**
233
+ * Get next sequential vector ID for a user (fits in 32-bit unsigned int)
234
+ * Uses IndexedDB in browser, in-memory counter in Node.js
235
+ */
236
+ private async getNextVectorId(userAddress: string): Promise<number> {
237
+ // Check if IndexedDB is available (browser environment)
238
+ if (typeof indexedDB !== 'undefined') {
239
+ try {
240
+ // Use separate database for counters to avoid version conflicts
241
+ const db = await new Promise<IDBDatabase>((resolve, reject) => {
242
+ const request = indexedDB.open('PDW_VectorCounters', 1);
243
+ request.onsuccess = () => resolve(request.result);
244
+ request.onerror = () => reject(request.error);
245
+ request.onupgradeneeded = (event) => {
246
+ const db = (event.target as IDBOpenDBRequest).result;
247
+ if (!db.objectStoreNames.contains('counters')) {
248
+ db.createObjectStore('counters', { keyPath: 'userAddress' });
249
+ }
250
+ };
251
+ });
252
+
253
+ const transaction = db.transaction(['counters'], 'readwrite');
254
+ const store = transaction.objectStore('counters');
255
+
256
+ // Get current counter
257
+ const getRequest = store.get(userAddress);
258
+ const currentData = await new Promise<{ userAddress: string; counter: number } | undefined>((resolve) => {
259
+ getRequest.onsuccess = () => resolve(getRequest.result);
260
+ getRequest.onerror = () => resolve(undefined);
261
+ });
262
+
263
+ const nextId = (currentData?.counter || 0) + 1;
264
+
265
+ // Update counter
266
+ store.put({ userAddress, counter: nextId });
267
+
268
+ await new Promise<void>((resolve, reject) => {
269
+ transaction.oncomplete = () => resolve();
270
+ transaction.onerror = () => reject(transaction.error);
271
+ });
272
+
273
+ db.close();
274
+ console.log(`✅ Sequential vector ID generated: ${nextId} (from IndexedDB)`);
275
+ return nextId;
276
+ } catch (error) {
277
+ console.warn('⚠️ IndexedDB failed, using in-memory counter:', error);
278
+ }
279
+ }
280
+
281
+ // Node.js or IndexedDB failure: use in-memory counter
282
+ const current = this.vectorIdCounters.get(userAddress) || 0;
283
+ const nextId = current + 1;
284
+ this.vectorIdCounters.set(userAddress, nextId);
285
+ console.log(`✅ Sequential vector ID generated: ${nextId} (in-memory)`);
286
+ return nextId;
287
+ }
288
+
289
+ /**
290
+ * Create a new memory (3 signatures: Walrus register, certify, on-chain)
291
+ */
292
+ async createMemory(options: CreateMemoryOptions): Promise<string> {
293
+ const { content, category, account, signAndExecute, client, onProgress } = options;
294
+
295
+ console.log('🚀 Starting memory creation...');
296
+ onProgress?.('Starting memory creation...');
297
+
298
+ try {
299
+ // Step 1: Analyze content (category + importance)
300
+ console.log('🏷️ Step 1: Analyzing content...');
301
+ onProgress?.('Analyzing content with AI...');
302
+ const analysis = await this.analyzeContent(content, category);
303
+ console.log('✅ Analysis:', analysis);
304
+
305
+ // Step 2: Build metadata text and generate embedding
306
+ console.log('🔮 Step 2: Building metadata and generating embedding...');
307
+ onProgress?.('Generating metadata embedding...');
308
+
309
+ // Build embeddable metadata text
310
+ const metadataText = this.buildMetadataText(analysis);
311
+ console.log('📝 Metadata text for embedding:');
312
+ console.log(metadataText);
313
+ console.log('📊 Metadata fields:', {
314
+ category: analysis.category,
315
+ topic: analysis.topic,
316
+ importance: analysis.importance,
317
+ summaryLength: analysis.summary.length
318
+ });
319
+
320
+ // Generate embedding from METADATA (not content)
321
+ const embedding = await this.generateEmbedding(metadataText);
322
+ console.log('✅ Metadata embedding generated:', embedding.length, 'dimensions');
323
+ console.log(' Source: metadata text (not full content)');
324
+ console.log(' Privacy: Only metadata semantics embedded, content stays encrypted');
325
+
326
+ // Step 3: Prepare combined data (content + embedding)
327
+ console.log('📦 Step 3: Preparing data...');
328
+ const memoryData: ClientMemoryMetadata = {
329
+ content,
330
+ embedding,
331
+ timestamp: Date.now(),
332
+ };
333
+ const dataBytes = new TextEncoder().encode(JSON.stringify(memoryData));
334
+ console.log('✅ Data prepared:', dataBytes.length, 'bytes');
335
+
336
+ // Step 4: Conditionally encrypt with SEAL
337
+ let uploadData: Uint8Array;
338
+ const isEncrypted = this.config.enableEncryption;
339
+
340
+ if (isEncrypted) {
341
+ console.log('🔒 Step 4: Encrypting with SEAL...');
342
+ onProgress?.('Encrypting with SEAL...');
343
+ uploadData = await this.encryptWithSEAL(dataBytes, account.address, client);
344
+ console.log('✅ Encrypted:', uploadData.length, 'bytes');
345
+ } else {
346
+ console.log('📝 Step 4: Skipping encryption (enableEncryption=false)');
347
+ onProgress?.('Preparing data (no encryption)...');
348
+ uploadData = dataBytes;
349
+ console.log('✅ Data ready (unencrypted):', uploadData.length, 'bytes');
350
+ }
351
+
352
+ // Step 5: Upload to Walrus (2 signatures)
353
+ console.log('🐳 Step 5: Uploading to Walrus...');
354
+ onProgress?.('Uploading to Walrus (2 signatures)...');
355
+ const blobId = await this.uploadToWalrus(uploadData, account, signAndExecute, client);
356
+ console.log('✅ Uploaded to Walrus:', blobId);
357
+
358
+ // Generate sequential vector ID (fits in 32-bit for WASM)
359
+ const vectorId = await this.getNextVectorId(account.address);
360
+ console.log('🔢 Generated sequential vector ID:', vectorId);
361
+
362
+ // Step 6: Register on-chain with rich metadata (1 signature)
363
+ console.log('⛓️ Step 6: Registering on-chain with rich metadata...');
364
+ onProgress?.('Registering on-chain (1 signature)...');
365
+ await this.registerOnChain({
366
+ blobId,
367
+ category: analysis.category,
368
+ topic: analysis.topic, // ✅ Pass AI-extracted topic to blockchain
369
+ importance: analysis.importance,
370
+ contentLength: content.length,
371
+ vectorId, // ✅ Use sequential ID
372
+ account,
373
+ signAndExecute,
374
+ client
375
+ });
376
+ console.log('✅ Memory registered on-chain with metadata:', {
377
+ category: analysis.category,
378
+ topic: analysis.topic,
379
+ importance: analysis.importance,
380
+ vectorId
381
+ });
382
+ onProgress?.('Memory created successfully!');
383
+
384
+ // Step 7: Index locally for search (if enabled)
385
+ console.log('\n📊 === Step 7: Local Vector Indexing ===');
386
+ console.log(' enableLocalIndexing:', this.config.enableLocalIndexing);
387
+ console.log(' account address:', account.address);
388
+ console.log(' embedding length:', embedding?.length || 0);
389
+
390
+ if (this.config.enableLocalIndexing && account.address) {
391
+ try {
392
+ // Get HNSW service (wait for async initialization)
393
+ const hnswService = await this.getHnswService();
394
+ console.log(' hnswService available:', !!hnswService);
395
+
396
+ if (hnswService) {
397
+ console.log('✅ Local indexing conditions met - proceeding...');
398
+ onProgress?.('Indexing for local search...');
399
+ console.log(' Using vector ID:', vectorId);
400
+
401
+ // Prepare rich metadata (aligned with on-chain structure)
402
+ // Option A+: Content storage is controlled by isEncrypted flag.
403
+ // When encryption is OFF, content is stored in local index for fast retrieval.
404
+ // When encryption is ON, only metadata is stored (security).
405
+ const metadata = {
406
+ blobId,
407
+ category: analysis.category,
408
+ topic: analysis.topic, // ✅ Rich metadata field
409
+ importance: analysis.importance,
410
+ summary: analysis.summary, // ✅ Rich metadata field
411
+ createdTimestamp: Date.now(),
412
+ contentType: 'text/plain',
413
+ contentSize: content.length,
414
+ source: 'client_memory_manager',
415
+ embeddingType: 'metadata', // ✅ Mark as metadata-based embedding
416
+ isEncrypted, // ✅ Dynamic based on config.enableEncryption
417
+ // Option A+: Store content in index when NOT encrypted (for fast local search)
418
+ ...(isEncrypted ? {} : { content })
419
+ };
420
+ console.log(' Rich metadata prepared:', metadata);
421
+
422
+ // Add to local index using IHnswService interface
423
+ console.log('📝 Adding vector to index...');
424
+ await hnswService.addVector(
425
+ account.address,
426
+ vectorId,
427
+ embedding, // ← Metadata embedding from Step 2 (not content embedding!)
428
+ metadata
429
+ );
430
+ console.log('✅ Vector added to index');
431
+ console.log(' Embedding represents: metadata semantics (category, topic, summary)');
432
+ console.log(' NOT content semantics - privacy preserved!');
433
+
434
+ // Flush to make searchable
435
+ console.log('🔄 Flushing index to make memory immediately searchable...');
436
+ await hnswService.flushBatch(account.address);
437
+ console.log('✅ Index flushed - vectors now searchable');
438
+
439
+ // Save index for persistence
440
+ console.log('💾 Saving index for persistence...');
441
+ await hnswService.saveIndex(account.address);
442
+ console.log('✅ Index saved - will persist after refresh');
443
+
444
+ console.log('🎉 Memory indexed, flushed, and persisted!');
445
+ console.log(' Vector ID:', vectorId);
446
+ console.log(' User:', account.address.substring(0, 10) + '...');
447
+ console.log(' Embedding dimensions:', embedding.length);
448
+ onProgress?.('Memory indexed and saved!');
449
+ } else {
450
+ console.warn('⚠️ HNSW service not available - skipping local indexing');
451
+ }
452
+ } catch (indexError: any) {
453
+ // Non-fatal: memory is still created on-chain
454
+ console.error('❌ Local indexing failed:', indexError);
455
+ console.error(' Error details:', indexError.message);
456
+ console.error(' Stack:', indexError.stack);
457
+ console.warn('⚠️ Memory still created on-chain, but not indexed locally');
458
+ }
459
+ } else {
460
+ console.warn('⚠️ Local indexing skipped - conditions not met:');
461
+ if (!this.config.enableLocalIndexing) console.warn(' - Local indexing disabled');
462
+ if (!account.address) console.warn(' - No account address');
463
+ if (!embedding || embedding.length === 0) console.warn(' - No embedding generated');
464
+ }
465
+
466
+ console.log('🎉 Memory creation complete!');
467
+ return blobId;
468
+ } catch (error: any) {
469
+ console.error('❌ Memory creation failed:', error);
470
+ throw new Error(`Failed to create memory: ${error.message}`);
471
+ }
472
+ }
473
+
474
+ /**
475
+ * Retrieve and decrypt a memory
476
+ */
477
+ async retrieveMemory(options: RetrieveMemoryOptions): Promise<ClientMemoryMetadata> {
478
+ const { blobId, account, signPersonalMessage, client, onProgress } = options;
479
+
480
+ console.log('🔍 Starting memory retrieval...');
481
+ onProgress?.('Starting retrieval...');
482
+
483
+ try {
484
+ // Step 1: Fetch from Walrus
485
+ console.log('🐳 Step 1: Fetching from Walrus...');
486
+ onProgress?.('Fetching from Walrus...');
487
+ const encryptedData = await this.fetchFromWalrus(blobId, client);
488
+ console.log('✅ Retrieved:', encryptedData.length, 'bytes');
489
+
490
+ // Step 2: Decrypt with SEAL
491
+ console.log('🔓 Step 2: Decrypting with SEAL...');
492
+ onProgress?.('Decrypting with SEAL...');
493
+ const decryptedData = await this.decryptWithSEAL({
494
+ encryptedData,
495
+ account,
496
+ signPersonalMessage,
497
+ client
498
+ });
499
+ console.log('✅ Decrypted:', decryptedData.length, 'bytes');
500
+
501
+ // Step 3: Parse JSON
502
+ const decryptedString = new TextDecoder().decode(decryptedData);
503
+ const parsed: ClientMemoryMetadata = JSON.parse(decryptedString);
504
+
505
+ console.log('🎉 Memory retrieval complete!');
506
+ onProgress?.('Memory retrieved successfully!');
507
+
508
+ return parsed;
509
+ } catch (error: any) {
510
+ console.error('❌ Memory retrieval failed:', error);
511
+ throw new Error(`Failed to retrieve memory: ${error.message}`);
512
+ }
513
+ }
514
+
515
+ /**
516
+ * Batch retrieve and decrypt multiple memories with a single signature
517
+ * This is much more efficient than calling retrieveMemory multiple times
518
+ */
519
+ async batchRetrieveMemories(options: BatchRetrieveMemoriesOptions): Promise<BatchRetrieveResult[]> {
520
+ const { blobIds, account, signPersonalMessage, client, onProgress } = options;
521
+
522
+ console.log('🔍 Starting batch memory retrieval for', blobIds.length, 'memories...');
523
+ onProgress?.('Initializing decryption session...', 0, blobIds.length);
524
+
525
+ try {
526
+ // Step 1: Create reusable decryption session (SINGLE SIGNATURE!)
527
+ const session = await this.createDecryptionSession({
528
+ account,
529
+ signPersonalMessage,
530
+ client
531
+ });
532
+ console.log('✅ Decryption session created - will decrypt all memories without additional signatures');
533
+
534
+ const results: BatchRetrieveResult[] = [];
535
+
536
+ // Step 2: Decrypt all memories using the same session
537
+ for (let i = 0; i < blobIds.length; i++) {
538
+ const blobId = blobIds[i];
539
+ console.log(`🔓 Decrypting memory ${i + 1}/${blobIds.length}: ${blobId}`);
540
+ onProgress?.(`Decrypting memory ${i + 1}/${blobIds.length}...`, i + 1, blobIds.length);
541
+
542
+ try {
543
+ // Fetch from Walrus
544
+ const encryptedData = await this.fetchFromWalrus(blobId, client);
545
+
546
+ // Decrypt using shared session (NO SIGNING!)
547
+ const decryptedData = await session.sealClient.decrypt({
548
+ data: encryptedData,
549
+ sessionKey: session.sessionKey,
550
+ txBytes: session.txBytes,
551
+ });
552
+
553
+ // Parse JSON
554
+ const decryptedString = new TextDecoder().decode(decryptedData);
555
+ const parsed: ClientMemoryMetadata = JSON.parse(decryptedString);
556
+
557
+ results.push({
558
+ blobId,
559
+ content: parsed.content
560
+ });
561
+
562
+ console.log(`✅ Memory ${i + 1} decrypted successfully`);
563
+ } catch (error: any) {
564
+ console.error(`❌ Failed to decrypt memory ${blobId}:`, error);
565
+
566
+ // Handle old format (binary embedding data)
567
+ if (error.message?.includes('not valid JSON') || error.message?.includes('Unexpected token')) {
568
+ results.push({
569
+ blobId,
570
+ content: '[Old format - cannot display content]'
571
+ });
572
+ } else {
573
+ results.push({
574
+ blobId,
575
+ error: error.message || 'Decryption failed'
576
+ });
577
+ }
578
+ }
579
+ }
580
+
581
+ console.log('🎉 Batch retrieval complete!');
582
+ onProgress?.('All memories decrypted!', blobIds.length, blobIds.length);
583
+
584
+ return results;
585
+ } catch (error: any) {
586
+ console.error('❌ Batch retrieval failed:', error);
587
+ throw new Error(`Failed to batch retrieve memories: ${error.message}`);
588
+ }
589
+ }
590
+
591
+ // ==================== PRIVATE METHODS ====================
592
+
593
+ private async analyzeContent(text: string, categoryOverride?: string): Promise<RichMetadataAnalysis> {
594
+ // Use client-side Gemini AI for rich metadata extraction
595
+ try {
596
+ if (this.geminiAIService) {
597
+ console.log('🤖 Using Gemini AI for metadata extraction...');
598
+ const metadata = await this.geminiAIService.extractRichMetadata(text, categoryOverride);
599
+ console.log('✅ AI metadata extracted:', metadata);
600
+ return metadata;
601
+ } else {
602
+ console.warn('⚠️ Gemini AI service not initialized, using fallback extraction');
603
+ return this.getFallbackAnalysis(text, categoryOverride);
604
+ }
605
+ } catch (error) {
606
+ console.warn('⚠️ AI analysis failed, using fallback:', error);
607
+ return this.getFallbackAnalysis(text, categoryOverride);
608
+ }
609
+ }
610
+
611
+ private getFallbackAnalysis(text: string, categoryOverride?: string): RichMetadataAnalysis {
612
+ return {
613
+ category: categoryOverride || 'personal',
614
+ topic: this.extractTopicFromContent(text),
615
+ importance: 5,
616
+ summary: text.substring(0, 200) + (text.length > 200 ? '...' : '')
617
+ };
618
+ }
619
+
620
+ /**
621
+ * Extract topic from content as fallback (when AI fails)
622
+ * Tries to get first sentence, or first 50 characters
623
+ *
624
+ * @param text - Content text to extract topic from
625
+ * @returns Topic string (max 100 characters)
626
+ */
627
+ private extractTopicFromContent(text: string): string {
628
+ // Try to get first sentence
629
+ const firstSentence = text.match(/^[^.!?]+[.!?]/);
630
+ if (firstSentence) {
631
+ const topic = firstSentence[0].trim();
632
+ return topic.length > 100 ? topic.substring(0, 97) + '...' : topic;
633
+ }
634
+
635
+ // Fallback: first 50 characters
636
+ return text.substring(0, 50) + (text.length > 50 ? '...' : '');
637
+ }
638
+
639
+ /**
640
+ * Build embeddable metadata text from rich metadata
641
+ * Format optimized for semantic embedding and alignment with on-chain metadata
642
+ *
643
+ * @param metadata - Rich metadata extracted from AI analysis
644
+ * @returns Formatted text string ready for embedding
645
+ *
646
+ * @example
647
+ * ```typescript
648
+ * const metadataText = buildMetadataText({
649
+ * category: 'work',
650
+ * topic: 'Q4 project deadline meeting',
651
+ * importance: 7,
652
+ * summary: 'Team discussion about Q4 deadlines'
653
+ * });
654
+ * // Returns:
655
+ * // "category: work
656
+ * // topic: Q4 project deadline meeting
657
+ * // importance: 7
658
+ * // summary: Team discussion about Q4 deadlines"
659
+ * ```
660
+ */
661
+ private buildMetadataText(metadata: RichMetadataAnalysis): string {
662
+ const parts = [
663
+ `category: ${metadata.category}`,
664
+ `topic: ${metadata.topic}`,
665
+ `importance: ${metadata.importance}`
666
+ ];
667
+
668
+ if (metadata.summary && metadata.summary.trim().length > 0) {
669
+ parts.push(`summary: ${metadata.summary}`);
670
+ }
671
+
672
+ return parts.join('\n');
673
+ }
674
+
675
+ private async generateEmbedding(text: string): Promise<number[]> {
676
+ if (!this.embeddingService) {
677
+ throw new Error(
678
+ 'EmbeddingService not configured. Please provide an API key for embedding generation ' +
679
+ '(e.g., GEMINI_API_KEY or OPENROUTER_API_KEY in environment variables).'
680
+ );
681
+ }
682
+
683
+ try {
684
+ const result = await this.embeddingService.embedText({
685
+ text,
686
+ type: 'content'
687
+ });
688
+ return result.vector;
689
+ } catch (error) {
690
+ throw new Error(`Failed to generate embedding: ${error instanceof Error ? error.message : 'Unknown error'}`);
691
+ }
692
+ }
693
+
694
+ private async encryptWithSEAL(
695
+ data: Uint8Array,
696
+ ownerAddress: string,
697
+ client: SuiClient
698
+ ): Promise<Uint8Array> {
699
+ const sealClient = new SealClient({
700
+ suiClient: client as any,
701
+ serverConfigs: this.config.sealServerObjectIds.map((id) => ({
702
+ objectId: id,
703
+ weight: 1,
704
+ })),
705
+ verifyKeyServers: false,
706
+ });
707
+
708
+ const { encryptedObject: encryptedBytes } = await sealClient.encrypt({
709
+ threshold: 1,
710
+ packageId: this.config.packageId,
711
+ id: ownerAddress, // Use owner's address as ID for simple access control
712
+ data,
713
+ });
714
+
715
+ return encryptedBytes;
716
+ }
717
+
718
+ private async uploadToWalrus(
719
+ data: Uint8Array,
720
+ account: { address: string },
721
+ signAndExecute: CreateMemoryOptions['signAndExecute'],
722
+ client: SuiClient
723
+ ): Promise<string> {
724
+ const extendedClient = (client as any).$extend(
725
+ WalrusClient.experimental_asClientExtension({
726
+ network: this.config.walrusNetwork,
727
+ uploadRelay: {
728
+ host: `https://upload-relay.${this.config.walrusNetwork}.walrus.space`,
729
+ sendTip: { max: 1_000 },
730
+ timeout: 60_000,
731
+ },
732
+ storageNodeClientOptions: {
733
+ timeout: 60_000,
734
+ },
735
+ })
736
+ );
737
+
738
+ const walrusClient = extendedClient.walrus as any;
739
+ const flow = walrusClient.writeBlobFlow({ blob: data });
740
+
741
+ // Encode
742
+ await flow.encode();
743
+
744
+ // Register (signature 1)
745
+ const registerTx = flow.register({
746
+ epochs: 5,
747
+ deletable: true,
748
+ owner: account.address,
749
+ });
750
+ registerTx.setSender(account.address);
751
+
752
+ const registerDigest = await new Promise<string>((resolve, reject) => {
753
+ signAndExecute(
754
+ { transaction: registerTx },
755
+ {
756
+ onSuccess: (result) => resolve(result.digest),
757
+ onError: (error) => reject(error),
758
+ }
759
+ );
760
+ });
761
+
762
+ // Upload
763
+ await flow.upload({ digest: registerDigest });
764
+
765
+ // Certify (signature 2)
766
+ const certifyTx = flow.certify();
767
+ certifyTx.setSender(account.address);
768
+
769
+ await new Promise<void>((resolve, reject) => {
770
+ signAndExecute(
771
+ { transaction: certifyTx },
772
+ {
773
+ onSuccess: () => resolve(),
774
+ onError: (error) => reject(error),
775
+ }
776
+ );
777
+ });
778
+
779
+ const blob = await flow.getBlob();
780
+ return blob.blobId;
781
+ }
782
+
783
+ private async registerOnChain(params: {
784
+ blobId: string;
785
+ category: string;
786
+ topic: string; // ✅ NEW: Real topic from AI analysis
787
+ importance: number;
788
+ contentLength: number;
789
+ vectorId: number; // ✅ Sequential ID (fits in 32-bit unsigned int)
790
+ account: { address: string };
791
+ signAndExecute: CreateMemoryOptions['signAndExecute'];
792
+ client: SuiClient;
793
+ }): Promise<void> {
794
+ const { blobId, category, topic, importance, contentLength, vectorId, account, signAndExecute, client } = params;
795
+
796
+ const tx = new Transaction();
797
+ const packageId = this.config.packageId.replace(/^0x/, '');
798
+
799
+ console.log('📝 Registering on-chain with rich metadata:', {
800
+ category,
801
+ topic,
802
+ importance,
803
+ vectorId,
804
+ blobId: blobId.substring(0, 20) + '...'
805
+ });
806
+
807
+ tx.moveCall({
808
+ target: `${packageId}::memory::create_memory_record`,
809
+ arguments: [
810
+ tx.pure.string(category),
811
+ tx.pure.u64(vectorId),
812
+ tx.pure.string(blobId),
813
+ tx.pure.string('text/plain'),
814
+ tx.pure.u64(contentLength),
815
+ tx.pure.string(blobId), // ✅ FIX: content_hash = blobId (content-addressed)
816
+ tx.pure.string(topic), // ✅ FIX: Real topic from AI (not hardcoded "memory")
817
+ tx.pure.u8(importance),
818
+ tx.pure.string(blobId), // embedding_blob_id (same as content for now)
819
+ ],
820
+ });
821
+
822
+ return new Promise((resolve, reject) => {
823
+ signAndExecute(
824
+ { transaction: tx },
825
+ {
826
+ onSuccess: (result) => {
827
+ console.log('✅ Transaction successful:', result.digest);
828
+ console.log('✅ On-chain Memory created with rich metadata:', {
829
+ category,
830
+ topic,
831
+ importance
832
+ });
833
+ resolve();
834
+ },
835
+ onError: (error) => {
836
+ console.error('❌ Transaction failed:', error);
837
+ reject(error);
838
+ },
839
+ }
840
+ );
841
+ });
842
+ }
843
+
844
+ private async fetchFromWalrus(blobId: string, client: SuiClient): Promise<Uint8Array> {
845
+ // Use Walrus SDK for reading blobs (consistent with uploadToWalrus)
846
+ const extendedClient = (client as any).$extend(
847
+ WalrusClient.experimental_asClientExtension({
848
+ network: this.config.walrusNetwork,
849
+ })
850
+ );
851
+
852
+ const walrusClient = extendedClient.walrus as any;
853
+ const blob = await walrusClient.readBlob({ blobId });
854
+ return blob;
855
+ }
856
+
857
+ /**
858
+ * Create a reusable decryption session (requires one signature)
859
+ * This session can be used to decrypt multiple memories without additional signatures
860
+ */
861
+ private async createDecryptionSession(params: {
862
+ account: { address: string };
863
+ signPersonalMessage: (params: { message: Uint8Array }) => Promise<{ signature: string }>;
864
+ client: SuiClient;
865
+ }): Promise<DecryptionSession> {
866
+ const { account, signPersonalMessage, client } = params;
867
+
868
+ console.log('🔑 Creating decryption session...');
869
+
870
+ // Create SEAL client (reusable)
871
+ const sealClient = new SealClient({
872
+ suiClient: client as any,
873
+ serverConfigs: this.config.sealServerObjectIds.map((id) => ({
874
+ objectId: id,
875
+ weight: 1,
876
+ })),
877
+ verifyKeyServers: false,
878
+ });
879
+
880
+ // Create session key (reusable)
881
+ const sessionKey = await SessionKey.create({
882
+ address: account.address,
883
+ packageId: this.config.packageId,
884
+ ttlMin: 10,
885
+ suiClient: client as any,
886
+ });
887
+
888
+ // Sign personal message ONCE
889
+ const personalMessage = sessionKey.getPersonalMessage();
890
+ const signatureResult = await signPersonalMessage({ message: personalMessage });
891
+ await sessionKey.setPersonalMessageSignature(signatureResult.signature);
892
+ console.log('✅ Personal message signed');
893
+
894
+ // Build seal_approve transaction ONCE
895
+ const tx = new Transaction();
896
+ const addressHex = account.address.startsWith('0x')
897
+ ? account.address.slice(2)
898
+ : account.address;
899
+ const idBytes = fromHex(addressHex);
900
+
901
+ tx.moveCall({
902
+ target: `${this.config.packageId}::seal_access_control::seal_approve`,
903
+ arguments: [
904
+ tx.pure.vector('u8', Array.from(idBytes)),
905
+ tx.pure.address(account.address),
906
+ tx.object(this.config.accessRegistryId),
907
+ tx.object('0x6'),
908
+ ],
909
+ });
910
+
911
+ const txBytes = await tx.build({ client, onlyTransactionKind: true });
912
+ console.log('✅ Session created - can now decrypt multiple memories');
913
+
914
+ return {
915
+ sealClient,
916
+ sessionKey,
917
+ txBytes
918
+ };
919
+ }
920
+
921
+ private async decryptWithSEAL(params: {
922
+ encryptedData: Uint8Array;
923
+ account: { address: string };
924
+ signPersonalMessage: RetrieveMemoryOptions['signPersonalMessage'];
925
+ client: SuiClient;
926
+ }): Promise<Uint8Array> {
927
+ const { encryptedData, account, signPersonalMessage, client } = params;
928
+
929
+ // Create SEAL client
930
+ const sealClient = new SealClient({
931
+ suiClient: client as any,
932
+ serverConfigs: this.config.sealServerObjectIds.map((id) => ({
933
+ objectId: id,
934
+ weight: 1,
935
+ })),
936
+ verifyKeyServers: false,
937
+ });
938
+
939
+ // Create session key
940
+ const sessionKey = await SessionKey.create({
941
+ address: account.address,
942
+ packageId: this.config.packageId,
943
+ ttlMin: 10,
944
+ suiClient: client as any,
945
+ });
946
+
947
+ // Sign personal message
948
+ const personalMessage = sessionKey.getPersonalMessage();
949
+ const signatureResult = await signPersonalMessage({ message: personalMessage });
950
+ await sessionKey.setPersonalMessageSignature(signatureResult.signature);
951
+
952
+ // Build seal_approve transaction
953
+ const tx = new Transaction();
954
+ const addressHex = account.address.startsWith('0x')
955
+ ? account.address.slice(2)
956
+ : account.address;
957
+ const idBytes = fromHex(addressHex);
958
+
959
+ tx.moveCall({
960
+ target: `${this.config.packageId}::seal_access_control::seal_approve`,
961
+ arguments: [
962
+ tx.pure.vector('u8', Array.from(idBytes)),
963
+ tx.pure.address(account.address),
964
+ tx.object(this.config.accessRegistryId),
965
+ tx.object('0x6'),
966
+ ],
967
+ });
968
+
969
+ const txBytes = await tx.build({ client, onlyTransactionKind: true });
970
+
971
+ // Decrypt
972
+ const decryptedData = await sealClient.decrypt({
973
+ data: encryptedData,
974
+ sessionKey,
975
+ txBytes,
976
+ });
977
+
978
+ return decryptedData;
979
+ }
980
+ }
981
+
982
+ export default ClientMemoryManager;