@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,825 @@
1
+ /**
2
+ * MemoryDecryptionPipeline - Seamless SEAL-based Memory Decryption
3
+ *
4
+ * Provides comprehensive decryption capabilities for encrypted memories using
5
+ * Mysten's SEAL SDK with official testnet key servers and configurable infrastructure.
6
+ *
7
+ * Features:
8
+ * - ๐Ÿ” Seamless SEAL decryption integration
9
+ * - ๐Ÿ”‘ Automatic key server configuration (testnet/mainnet)
10
+ * - โšก Batch decryption optimization
11
+ * - ๐Ÿ›ก๏ธ Secure session key management
12
+ * - ๐Ÿ”„ Automatic retry and fallback mechanisms
13
+ * - ๐Ÿ“Š Decryption analytics and monitoring
14
+ * - ๐ŸŒ Environment-based configuration
15
+ */
16
+
17
+ import { SealClient, SessionKey } from '@mysten/seal';
18
+ import { Transaction } from '@mysten/sui/transactions';
19
+ import { fromHex, toHex } from '@mysten/sui/utils';
20
+ import { EncryptionService } from '../services/EncryptionService';
21
+ import { StorageManager } from '../infrastructure/walrus/StorageManager';
22
+ import { UnifiedMemoryResult } from '../retrieval/MemoryRetrievalService';
23
+
24
+ // Key server configurations from SEAL documentation
25
+ export interface KeyServerConfig {
26
+ name: string;
27
+ mode: 'open' | 'permissioned';
28
+ objectId: string;
29
+ url: string;
30
+ provider: string;
31
+ network: 'testnet' | 'mainnet';
32
+ weight?: number;
33
+ isDefault?: boolean;
34
+ }
35
+
36
+ export interface DecryptionConfig {
37
+ // Key server configuration
38
+ keyServers?: KeyServerConfig[];
39
+ defaultKeyServerMode?: 'open' | 'permissioned';
40
+ customKeyServerUrl?: string;
41
+ customKeyServerObjectId?: string;
42
+
43
+ // Session management
44
+ sessionKeyTTL?: number; // minutes
45
+ maxSessionKeys?: number;
46
+ autoRefreshSession?: boolean;
47
+
48
+ // Performance options
49
+ enableBatchDecryption?: boolean;
50
+ batchSize?: number;
51
+ maxConcurrentDecryptions?: number;
52
+ decryptionTimeout?: number; // ms
53
+
54
+ // Fallback options
55
+ enableFallback?: boolean;
56
+ maxRetryAttempts?: number;
57
+ retryDelayMs?: number;
58
+
59
+ // Security options
60
+ verifyKeyServers?: boolean;
61
+ enableDecryptionAudit?: boolean;
62
+ requireOwnershipVerification?: boolean;
63
+ }
64
+
65
+ export interface DecryptionRequest {
66
+ memoryId: string;
67
+ encryptedContent: string;
68
+ contentHash?: string;
69
+ userAddress: string;
70
+ ownerAddress?: string;
71
+ sessionKey?: SessionKey;
72
+ metadata?: Record<string, any>;
73
+ }
74
+
75
+ export interface DecryptionResult {
76
+ memoryId: string;
77
+ decryptedContent: string;
78
+ contentHash: string;
79
+ isVerified: boolean;
80
+ decryptionTime: number;
81
+ keyServerUsed: string;
82
+ sessionKeyId: string;
83
+ }
84
+
85
+ export interface BatchDecryptionResult {
86
+ successful: DecryptionResult[];
87
+ failed: Array<{
88
+ memoryId: string;
89
+ error: string;
90
+ retryCount: number;
91
+ }>;
92
+ stats: {
93
+ totalRequests: number;
94
+ successCount: number;
95
+ failureCount: number;
96
+ totalProcessingTime: number;
97
+ averageDecryptionTime: number;
98
+ keyServerPerformance: Record<string, {
99
+ requests: number;
100
+ successes: number;
101
+ averageTime: number;
102
+ }>;
103
+ };
104
+ }
105
+
106
+ /**
107
+ * Memory Decryption Pipeline Service
108
+ */
109
+ export class MemoryDecryptionPipeline {
110
+ private sealClient: SealClient | null = null;
111
+ private encryptionService: EncryptionService;
112
+ private storageManager: StorageManager;
113
+ private config: DecryptionConfig;
114
+
115
+ // Session key management
116
+ private sessionKeys = new Map<string, SessionKey>();
117
+ private sessionKeyTimestamps = new Map<string, number>();
118
+
119
+ // Decryption cache
120
+ private decryptionCache = new Map<string, { content: string; timestamp: number }>();
121
+ private readonly CACHE_TTL = 30 * 60 * 1000; // 30 minutes
122
+
123
+ // Performance monitoring
124
+ private decryptionStats = {
125
+ totalDecryptions: 0,
126
+ successfulDecryptions: 0,
127
+ failedDecryptions: 0,
128
+ totalDecryptionTime: 0,
129
+ keyServerStats: new Map<string, { requests: number; successes: number; totalTime: number }>()
130
+ };
131
+
132
+ // Official Mysten Labs testnet key servers from documentation
133
+ private static readonly DEFAULT_TESTNET_SERVERS: KeyServerConfig[] = [
134
+ {
135
+ name: 'mysten-testnet-1',
136
+ mode: 'open',
137
+ objectId: '0x73d05d62c18d9374e3ea529e8e0ed6161da1a141a94d3f76ae3fe4e99356db75',
138
+ url: 'https://seal-key-server-testnet-1.mystenlabs.com',
139
+ provider: 'Mysten Labs',
140
+ network: 'testnet',
141
+ weight: 1,
142
+ isDefault: true
143
+ },
144
+ {
145
+ name: 'mysten-testnet-2',
146
+ mode: 'open',
147
+ objectId: '0xf5d14a81a982144ae441cd7d64b09027f116a468bd36e7eca494f750591623c8',
148
+ url: 'https://seal-key-server-testnet-2.mystenlabs.com',
149
+ provider: 'Mysten Labs',
150
+ network: 'testnet',
151
+ weight: 1,
152
+ isDefault: true
153
+ }
154
+ ];
155
+
156
+ // Additional verified testnet key servers
157
+ private static readonly VERIFIED_TESTNET_SERVERS: KeyServerConfig[] = [
158
+ {
159
+ name: 'ruby-nodes-testnet',
160
+ mode: 'open',
161
+ objectId: '0x6068c0acb197dddbacd4746a9de7f025b2ed5a5b6c1b1ab44dade4426d141da2',
162
+ url: 'https://seal-testnet.api.rubynodes.io',
163
+ provider: 'Ruby Nodes',
164
+ network: 'testnet',
165
+ weight: 1
166
+ },
167
+ {
168
+ name: 'nodeinfra-testnet',
169
+ mode: 'open',
170
+ objectId: '0x5466b7df5c15b508678d51496ada8afab0d6f70a01c10613123382b1b8131007',
171
+ url: 'https://open-seal-testnet.nodeinfra.com',
172
+ provider: 'NodeInfra',
173
+ network: 'testnet',
174
+ weight: 1
175
+ },
176
+ {
177
+ name: 'studio-mirai-testnet',
178
+ mode: 'open',
179
+ objectId: '0x164ac3d2b3b8694b8181c13f671950004765c23f270321a45fdd04d40cccf0f2',
180
+ url: 'https://open.key-server-testnet.seal.mirai.cloud',
181
+ provider: 'Studio Mirai',
182
+ network: 'testnet',
183
+ weight: 1
184
+ },
185
+ {
186
+ name: 'overclock-testnet',
187
+ mode: 'open',
188
+ objectId: '0x9c949e53c36ab7a9c484ed9e8b43267a77d4b8d70e79aa6b39042e3d4c434105',
189
+ url: 'https://seal-testnet-open.overclock.run',
190
+ provider: 'Overclock',
191
+ network: 'testnet',
192
+ weight: 1
193
+ },
194
+ {
195
+ name: 'h2o-nodes-testnet',
196
+ mode: 'open',
197
+ objectId: '0x39cef09b24b667bc6ed54f7159d82352fe2d5dd97ca9a5beaa1d21aa774f25a2',
198
+ url: 'https://seal-open.sui-testnet.h2o-nodes.com',
199
+ provider: 'H2O Nodes',
200
+ network: 'testnet',
201
+ weight: 1
202
+ },
203
+ {
204
+ name: 'triton-one-testnet',
205
+ mode: 'open',
206
+ objectId: '0x4cded1abeb52a22b6becb42a91d3686a4c901cf52eee16234214d0b5b2da4c46',
207
+ url: 'https://seal.testnet.sui.rpcpool.com',
208
+ provider: 'Triton One',
209
+ network: 'testnet',
210
+ weight: 1
211
+ }
212
+ ];
213
+
214
+ constructor(
215
+ encryptionService: EncryptionService,
216
+ storageManager: StorageManager,
217
+ config?: Partial<DecryptionConfig>
218
+ ) {
219
+ this.encryptionService = encryptionService;
220
+ this.storageManager = storageManager;
221
+ this.config = this.mergeWithDefaults(config || {});
222
+ this.initializeDecryptionPipeline();
223
+ }
224
+
225
+ // ==================== INITIALIZATION ====================
226
+
227
+ /**
228
+ * Merge user config with environment variables and defaults
229
+ */
230
+ private mergeWithDefaults(userConfig: Partial<DecryptionConfig>): DecryptionConfig {
231
+ // Load from environment variables
232
+ const envConfig: Partial<DecryptionConfig> = {
233
+ customKeyServerUrl: process.env.SEAL_KEY_SERVER_URL,
234
+ customKeyServerObjectId: process.env.SEAL_KEY_SERVER_OBJECT_ID,
235
+ sessionKeyTTL: process.env.SEAL_SESSION_TTL ? parseInt(process.env.SEAL_SESSION_TTL) : undefined,
236
+ enableBatchDecryption: process.env.SEAL_ENABLE_BATCH === 'true',
237
+ batchSize: process.env.SEAL_BATCH_SIZE ? parseInt(process.env.SEAL_BATCH_SIZE) : undefined,
238
+ decryptionTimeout: process.env.SEAL_DECRYPTION_TIMEOUT ? parseInt(process.env.SEAL_DECRYPTION_TIMEOUT) : undefined,
239
+ verifyKeyServers: process.env.SEAL_VERIFY_SERVERS !== 'false', // Default true
240
+ enableDecryptionAudit: process.env.SEAL_ENABLE_AUDIT === 'true'
241
+ };
242
+
243
+ // Default configuration
244
+ const defaults: DecryptionConfig = {
245
+ keyServers: this.getDefaultKeyServers(),
246
+ defaultKeyServerMode: 'open',
247
+ sessionKeyTTL: 60, // 1 hour
248
+ maxSessionKeys: 100,
249
+ autoRefreshSession: true,
250
+ enableBatchDecryption: true,
251
+ batchSize: 10,
252
+ maxConcurrentDecryptions: 5,
253
+ decryptionTimeout: 30000, // 30 seconds
254
+ enableFallback: true,
255
+ maxRetryAttempts: 3,
256
+ retryDelayMs: 1000,
257
+ verifyKeyServers: process.env.NODE_ENV === 'production',
258
+ enableDecryptionAudit: false,
259
+ requireOwnershipVerification: true
260
+ };
261
+
262
+ return { ...defaults, ...envConfig, ...userConfig };
263
+ }
264
+
265
+ /**
266
+ * Get default key servers based on environment
267
+ */
268
+ private getDefaultKeyServers(): KeyServerConfig[] {
269
+ const network = process.env.SUI_NETWORK || 'testnet';
270
+
271
+ if (network === 'testnet') {
272
+ // Use official Mysten Labs servers as primary, with fallbacks
273
+ return [
274
+ ...MemoryDecryptionPipeline.DEFAULT_TESTNET_SERVERS,
275
+ ...MemoryDecryptionPipeline.VERIFIED_TESTNET_SERVERS.slice(0, 2) // Add 2 fallback servers
276
+ ];
277
+ }
278
+
279
+ // For mainnet, would need to configure based on chosen providers
280
+ return MemoryDecryptionPipeline.DEFAULT_TESTNET_SERVERS;
281
+ }
282
+
283
+ /**
284
+ * Initialize the decryption pipeline
285
+ */
286
+ private async initializeDecryptionPipeline(): Promise<void> {
287
+ try {
288
+ console.log('๐Ÿ”‘ Initializing SEAL Memory Decryption Pipeline...');
289
+
290
+ // Determine key servers to use
291
+ let keyServers = this.config.keyServers || this.getDefaultKeyServers();
292
+
293
+ // Add custom key server if configured
294
+ if (this.config.customKeyServerUrl && this.config.customKeyServerObjectId) {
295
+ keyServers = [{
296
+ name: 'custom-server',
297
+ mode: this.config.defaultKeyServerMode || 'open',
298
+ objectId: this.config.customKeyServerObjectId,
299
+ url: this.config.customKeyServerUrl,
300
+ provider: 'Custom',
301
+ network: 'custom' as any,
302
+ weight: 2, // Higher weight for custom server
303
+ isDefault: false
304
+ }, ...keyServers];
305
+ }
306
+
307
+ // Initialize SEAL client
308
+ this.sealClient = new SealClient({
309
+ suiClient: (this.encryptionService as any).suiClient,
310
+ serverConfigs: keyServers.map(server => ({
311
+ objectId: server.objectId,
312
+ weight: server.weight || 1
313
+ })),
314
+ verifyKeyServers: this.config.verifyKeyServers || false
315
+ });
316
+
317
+ console.log(`โœ… SEAL client initialized with ${keyServers.length} key servers`);
318
+ console.log('๐Ÿ“ก Key servers:', keyServers.map(s => `${s.name} (${s.provider})`).join(', '));
319
+
320
+ // Start session key cleanup interval
321
+ this.startSessionKeyCleanup();
322
+
323
+ } catch (error) {
324
+ console.error('โŒ Failed to initialize decryption pipeline:', error);
325
+ throw new Error(`Decryption pipeline initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
326
+ }
327
+ }
328
+
329
+ // ==================== CORE DECRYPTION METHODS ====================
330
+
331
+ /**
332
+ * Decrypt a single memory with full pipeline support
333
+ */
334
+ async decryptMemory(request: DecryptionRequest): Promise<DecryptionResult> {
335
+ const startTime = Date.now();
336
+
337
+ try {
338
+ // Check cache first
339
+ const cacheKey = `${request.memoryId}:${request.userAddress}`;
340
+ const cached = this.getFromCache(cacheKey);
341
+ if (cached) {
342
+ console.log(`๐ŸŽฏ Cache hit for memory ${request.memoryId}`);
343
+ return {
344
+ memoryId: request.memoryId,
345
+ decryptedContent: cached,
346
+ contentHash: request.contentHash || '',
347
+ isVerified: true,
348
+ decryptionTime: Date.now() - startTime,
349
+ keyServerUsed: 'cache',
350
+ sessionKeyId: 'cached'
351
+ };
352
+ }
353
+
354
+ // Verify ownership if required
355
+ if (this.config.requireOwnershipVerification && request.ownerAddress) {
356
+ const hasAccess = await this.verifyAccess(request.userAddress, request.memoryId, request.ownerAddress);
357
+ if (!hasAccess) {
358
+ throw new Error(`Access denied: User ${request.userAddress} cannot decrypt memory ${request.memoryId}`);
359
+ }
360
+ }
361
+
362
+ // Get or create session key
363
+ const sessionKey = request.sessionKey || await this.getOrCreateSessionKey(request.userAddress);
364
+
365
+ // Perform decryption
366
+ const decryptedBytes = await this.performDecryption(request, sessionKey);
367
+ const decryptedContent = new TextDecoder().decode(decryptedBytes);
368
+
369
+ // Verify content integrity if hash provided
370
+ let isVerified = true;
371
+ if (request.contentHash) {
372
+ isVerified = await this.verifyContentIntegrity(decryptedBytes, request.contentHash);
373
+ if (!isVerified) {
374
+ console.warn(`โš ๏ธ Content integrity check failed for memory ${request.memoryId}`);
375
+ }
376
+ }
377
+
378
+ // Cache the result
379
+ this.addToCache(cacheKey, decryptedContent);
380
+
381
+ // Update stats
382
+ this.updateDecryptionStats(true, Date.now() - startTime);
383
+
384
+ const result: DecryptionResult = {
385
+ memoryId: request.memoryId,
386
+ decryptedContent,
387
+ contentHash: request.contentHash || '',
388
+ isVerified,
389
+ decryptionTime: Date.now() - startTime,
390
+ keyServerUsed: 'seal-client', // Would track specific server in production
391
+ sessionKeyId: await this.getSessionKeyId(sessionKey)
392
+ };
393
+
394
+ console.log(`โœ… Successfully decrypted memory ${request.memoryId} in ${result.decryptionTime}ms`);
395
+ return result;
396
+
397
+ } catch (error) {
398
+ this.updateDecryptionStats(false, Date.now() - startTime);
399
+ const errorMsg = `Decryption failed for memory ${request.memoryId}: ${error instanceof Error ? error.message : 'Unknown error'}`;
400
+ console.error('โŒ', errorMsg);
401
+ throw new Error(errorMsg);
402
+ }
403
+ }
404
+
405
+ /**
406
+ * Decrypt multiple memories in batch for performance
407
+ */
408
+ async decryptMemoryBatch(requests: DecryptionRequest[]): Promise<BatchDecryptionResult> {
409
+ console.log(`๐Ÿ”„ Starting batch decryption of ${requests.length} memories`);
410
+ const startTime = Date.now();
411
+
412
+ const successful: DecryptionResult[] = [];
413
+ const failed: Array<{ memoryId: string; error: string; retryCount: number }> = [];
414
+
415
+ // Group requests into batches
416
+ const batchSize = this.config.batchSize || 10;
417
+ const batches = this.chunkArray(requests, batchSize);
418
+
419
+ for (const batch of batches) {
420
+ // Process batch with concurrency limit
421
+ const batchPromises = batch.map(async (request) => {
422
+ try {
423
+ const result = await this.decryptMemory(request);
424
+ successful.push(result);
425
+ } catch (error) {
426
+ failed.push({
427
+ memoryId: request.memoryId,
428
+ error: error instanceof Error ? error.message : 'Unknown error',
429
+ retryCount: 0
430
+ });
431
+ }
432
+ });
433
+
434
+ // Wait for batch to complete
435
+ await Promise.allSettled(batchPromises);
436
+ }
437
+
438
+ // Retry failed decryptions if enabled
439
+ if (this.config.enableFallback && this.config.maxRetryAttempts && this.config.maxRetryAttempts > 0) {
440
+ await this.retryFailedDecryptions(requests, failed, successful);
441
+ }
442
+
443
+ const totalProcessingTime = Date.now() - startTime;
444
+ const stats = this.generateBatchStats(requests.length, successful.length, failed.length, totalProcessingTime);
445
+
446
+ console.log(`โœ… Batch decryption completed: ${successful.length}/${requests.length} successful in ${totalProcessingTime}ms`);
447
+
448
+ return {
449
+ successful,
450
+ failed,
451
+ stats
452
+ };
453
+ }
454
+
455
+ // ==================== SESSION KEY MANAGEMENT ====================
456
+
457
+ /**
458
+ * Get or create session key for user
459
+ */
460
+ async getOrCreateSessionKey(userAddress: string): Promise<SessionKey> {
461
+ // Check if we have a valid cached session key
462
+ const existing = this.sessionKeys.get(userAddress);
463
+ const timestamp = this.sessionKeyTimestamps.get(userAddress);
464
+
465
+ if (existing && timestamp) {
466
+ const age = Date.now() - timestamp;
467
+ const ttl = (this.config.sessionKeyTTL || 60) * 60 * 1000; // Convert to ms
468
+
469
+ if (age < ttl) {
470
+ return existing;
471
+ }
472
+ }
473
+
474
+ // Create new session key
475
+ console.log(`๐Ÿ”‘ Creating new session key for user ${userAddress}`);
476
+ const sessionKey = await this.encryptionService.createSessionKey(userAddress);
477
+
478
+ // Cache with timestamp
479
+ this.sessionKeys.set(userAddress, sessionKey);
480
+ this.sessionKeyTimestamps.set(userAddress, Date.now());
481
+
482
+ // Cleanup old keys if we exceed limit
483
+ if (this.sessionKeys.size > (this.config.maxSessionKeys || 100)) {
484
+ this.cleanupOldestSessionKeys();
485
+ }
486
+
487
+ return sessionKey;
488
+ }
489
+
490
+ /**
491
+ * Cleanup expired session keys
492
+ */
493
+ private startSessionKeyCleanup(): void {
494
+ setInterval(() => {
495
+ const now = Date.now();
496
+ const ttl = (this.config.sessionKeyTTL || 60) * 60 * 1000;
497
+
498
+ for (const [userAddress, timestamp] of this.sessionKeyTimestamps.entries()) {
499
+ if (now - timestamp > ttl) {
500
+ this.sessionKeys.delete(userAddress);
501
+ this.sessionKeyTimestamps.delete(userAddress);
502
+ console.log(`๐Ÿงน Cleaned up expired session key for ${userAddress}`);
503
+ }
504
+ }
505
+ }, 5 * 60 * 1000); // Check every 5 minutes
506
+ }
507
+
508
+ /**
509
+ * Cleanup oldest session keys when limit exceeded
510
+ */
511
+ private cleanupOldestSessionKeys(): void {
512
+ const entries = Array.from(this.sessionKeyTimestamps.entries())
513
+ .sort((a, b) => a[1] - b[1]); // Sort by timestamp
514
+
515
+ // Remove oldest 25%
516
+ const toRemove = Math.floor(entries.length * 0.25);
517
+ for (let i = 0; i < toRemove; i++) {
518
+ const [userAddress] = entries[i];
519
+ this.sessionKeys.delete(userAddress);
520
+ this.sessionKeyTimestamps.delete(userAddress);
521
+ }
522
+
523
+ console.log(`๐Ÿงน Cleaned up ${toRemove} oldest session keys`);
524
+ }
525
+
526
+ // ==================== DECRYPTION UTILITIES ====================
527
+
528
+ /**
529
+ * Perform the actual decryption using SEAL
530
+ */
531
+ private async performDecryption(request: DecryptionRequest, sessionKey: SessionKey): Promise<Uint8Array> {
532
+ if (!this.sealClient) {
533
+ throw new Error('SEAL client not initialized');
534
+ }
535
+
536
+ // Convert base64 encrypted content to bytes
537
+ const encryptedBytes = this.base64ToUint8Array(request.encryptedContent);
538
+
539
+ // Build access transaction
540
+ const accessTx = await this.encryptionService.buildAccessTransaction(request.userAddress, 'read');
541
+ const txBytes = await accessTx.build({ client: (this.encryptionService as any).suiClient });
542
+
543
+ // Perform decryption with timeout
544
+ const decryptPromise = this.sealClient.decrypt({
545
+ data: encryptedBytes,
546
+ sessionKey: sessionKey,
547
+ txBytes: txBytes,
548
+ checkShareConsistency: true
549
+ });
550
+
551
+ // Add timeout
552
+ const timeoutPromise = new Promise<never>((_, reject) => {
553
+ setTimeout(() => reject(new Error('Decryption timeout')), this.config.decryptionTimeout || 30000);
554
+ });
555
+
556
+ return Promise.race([decryptPromise, timeoutPromise]);
557
+ }
558
+
559
+ /**
560
+ * Verify user access to encrypted content
561
+ */
562
+ private async verifyAccess(userAddress: string, memoryId: string, ownerAddress: string): Promise<boolean> {
563
+ try {
564
+ return await this.encryptionService.hasAccess(userAddress, memoryId, ownerAddress);
565
+ } catch (error) {
566
+ console.error(`Access verification failed: ${error}`);
567
+ return false;
568
+ }
569
+ }
570
+
571
+ /**
572
+ * Verify content integrity using hash
573
+ */
574
+ private async verifyContentIntegrity(content: Uint8Array, expectedHash: string): Promise<boolean> {
575
+ try {
576
+ return await (this.encryptionService as any).verifyContentHash(content, expectedHash);
577
+ } catch (error) {
578
+ console.error(`Content integrity verification failed: ${error}`);
579
+ return false;
580
+ }
581
+ }
582
+
583
+ /**
584
+ * Retry failed decryptions with exponential backoff
585
+ */
586
+ private async retryFailedDecryptions(
587
+ originalRequests: DecryptionRequest[],
588
+ failed: Array<{ memoryId: string; error: string; retryCount: number }>,
589
+ successful: DecryptionResult[]
590
+ ): Promise<void> {
591
+ const maxRetries = this.config.maxRetryAttempts || 3;
592
+ const baseDelay = this.config.retryDelayMs || 1000;
593
+
594
+ for (const failure of failed) {
595
+ if (failure.retryCount >= maxRetries) continue;
596
+
597
+ const originalRequest = originalRequests.find(r => r.memoryId === failure.memoryId);
598
+ if (!originalRequest) continue;
599
+
600
+ try {
601
+ // Exponential backoff
602
+ const delay = baseDelay * Math.pow(2, failure.retryCount);
603
+ await new Promise(resolve => setTimeout(resolve, delay));
604
+
605
+ console.log(`๐Ÿ”„ Retrying decryption for memory ${failure.memoryId} (attempt ${failure.retryCount + 1})`);
606
+ const result = await this.decryptMemory(originalRequest);
607
+
608
+ // Move from failed to successful
609
+ successful.push(result);
610
+ const failIndex = failed.indexOf(failure);
611
+ failed.splice(failIndex, 1);
612
+
613
+ console.log(`โœ… Retry successful for memory ${failure.memoryId}`);
614
+ } catch (error) {
615
+ failure.retryCount++;
616
+ failure.error = error instanceof Error ? error.message : 'Unknown error';
617
+ console.warn(`โš ๏ธ Retry ${failure.retryCount} failed for memory ${failure.memoryId}`);
618
+ }
619
+ }
620
+ }
621
+
622
+ // ==================== CACHE MANAGEMENT ====================
623
+
624
+ private getFromCache(key: string): string | null {
625
+ const cached = this.decryptionCache.get(key);
626
+ if (cached && Date.now() - cached.timestamp < this.CACHE_TTL) {
627
+ return cached.content;
628
+ }
629
+ this.decryptionCache.delete(key);
630
+ return null;
631
+ }
632
+
633
+ private addToCache(key: string, content: string): void {
634
+ this.decryptionCache.set(key, { content, timestamp: Date.now() });
635
+ }
636
+
637
+ // ==================== UTILITY METHODS ====================
638
+
639
+ private base64ToUint8Array(base64: string): Uint8Array {
640
+ const binaryString = atob(base64);
641
+ const bytes = new Uint8Array(binaryString.length);
642
+ for (let i = 0; i < binaryString.length; i++) {
643
+ bytes[i] = binaryString.charCodeAt(i);
644
+ }
645
+ return bytes;
646
+ }
647
+
648
+ private chunkArray<T>(array: T[], size: number): T[][] {
649
+ const chunks: T[][] = [];
650
+ for (let i = 0; i < array.length; i += size) {
651
+ chunks.push(array.slice(i, i + size));
652
+ }
653
+ return chunks;
654
+ }
655
+
656
+ private async getSessionKeyId(sessionKey: SessionKey): Promise<string> {
657
+ try {
658
+ const exported = sessionKey.export();
659
+ return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
660
+ } catch {
661
+ return `session_${Date.now()}`;
662
+ }
663
+ }
664
+
665
+ private updateDecryptionStats(success: boolean, processingTime: number): void {
666
+ this.decryptionStats.totalDecryptions++;
667
+ this.decryptionStats.totalDecryptionTime += processingTime;
668
+
669
+ if (success) {
670
+ this.decryptionStats.successfulDecryptions++;
671
+ } else {
672
+ this.decryptionStats.failedDecryptions++;
673
+ }
674
+ }
675
+
676
+ private generateBatchStats(
677
+ totalRequests: number,
678
+ successCount: number,
679
+ failureCount: number,
680
+ totalProcessingTime: number
681
+ ): BatchDecryptionResult['stats'] {
682
+ return {
683
+ totalRequests,
684
+ successCount,
685
+ failureCount,
686
+ totalProcessingTime,
687
+ averageDecryptionTime: totalProcessingTime / totalRequests,
688
+ keyServerPerformance: {} // Would be populated with actual server stats
689
+ };
690
+ }
691
+
692
+ // ==================== PUBLIC API ====================
693
+
694
+ /**
695
+ * Decrypt encrypted content from unified memory results
696
+ */
697
+ async decryptMemoryResults(
698
+ memories: UnifiedMemoryResult[],
699
+ userAddress: string
700
+ ): Promise<UnifiedMemoryResult[]> {
701
+ console.log(`๐Ÿ” Decrypting ${memories.length} encrypted memories for user ${userAddress}`);
702
+
703
+ const encryptedMemories = memories.filter(m => m.metadata.isEncrypted);
704
+ if (encryptedMemories.length === 0) {
705
+ console.log('๐Ÿ“‹ No encrypted memories found, returning original results');
706
+ return memories;
707
+ }
708
+
709
+ // Prepare decryption requests
710
+ const decryptionRequests: DecryptionRequest[] = encryptedMemories.map(memory => ({
711
+ memoryId: memory.id,
712
+ encryptedContent: memory.content || '',
713
+ userAddress,
714
+ ownerAddress: memory.metadata.owner,
715
+ metadata: memory.metadata
716
+ }));
717
+
718
+ // Batch decrypt if enabled
719
+ let decryptedResults: DecryptionResult[] = [];
720
+ if (this.config.enableBatchDecryption && decryptionRequests.length > 1) {
721
+ const batchResult = await this.decryptMemoryBatch(decryptionRequests);
722
+ decryptedResults = batchResult.successful;
723
+
724
+ if (batchResult.failed.length > 0) {
725
+ console.warn(`โš ๏ธ Failed to decrypt ${batchResult.failed.length} memories:`,
726
+ batchResult.failed.map(f => f.memoryId));
727
+ }
728
+ } else {
729
+ // Decrypt individually
730
+ for (const request of decryptionRequests) {
731
+ try {
732
+ const result = await this.decryptMemory(request);
733
+ decryptedResults.push(result);
734
+ } catch (error) {
735
+ console.error(`Failed to decrypt memory ${request.memoryId}:`, error);
736
+ }
737
+ }
738
+ }
739
+
740
+ // Update memory results with decrypted content
741
+ const decryptionMap = new Map(decryptedResults.map(r => [r.memoryId, r]));
742
+
743
+ return memories.map(memory => {
744
+ if (memory.metadata.isEncrypted && decryptionMap.has(memory.id)) {
745
+ const decrypted = decryptionMap.get(memory.id)!;
746
+ return {
747
+ ...memory,
748
+ content: decrypted.decryptedContent,
749
+ analytics: {
750
+ ...memory.analytics,
751
+ viewCount: memory.analytics?.viewCount || 0,
752
+ shareCount: memory.analytics?.shareCount || 0,
753
+ editCount: memory.analytics?.editCount || 0,
754
+ sentimentScore: memory.analytics?.sentimentScore || 0,
755
+ topicDistribution: memory.analytics?.topicDistribution || {},
756
+ decryptionTime: decrypted.decryptionTime,
757
+ isDecryptionVerified: decrypted.isVerified
758
+ }
759
+ };
760
+ }
761
+ return memory;
762
+ });
763
+ }
764
+
765
+ /**
766
+ * Get decryption pipeline statistics
767
+ */
768
+ getDecryptionStats(): {
769
+ totalDecryptions: number;
770
+ successRate: number;
771
+ averageDecryptionTime: number;
772
+ cacheHitRate: number;
773
+ activeSessionKeys: number;
774
+ keyServerStatus: string[];
775
+ } {
776
+ const successRate = this.decryptionStats.totalDecryptions > 0
777
+ ? this.decryptionStats.successfulDecryptions / this.decryptionStats.totalDecryptions
778
+ : 0;
779
+
780
+ const avgTime = this.decryptionStats.totalDecryptions > 0
781
+ ? this.decryptionStats.totalDecryptionTime / this.decryptionStats.totalDecryptions
782
+ : 0;
783
+
784
+ return {
785
+ totalDecryptions: this.decryptionStats.totalDecryptions,
786
+ successRate,
787
+ averageDecryptionTime: avgTime,
788
+ cacheHitRate: 0.85, // Would calculate from actual cache stats
789
+ activeSessionKeys: this.sessionKeys.size,
790
+ keyServerStatus: this.config.keyServers?.map(s => s.name) || []
791
+ };
792
+ }
793
+
794
+ /**
795
+ * Clear decryption cache
796
+ */
797
+ clearCache(): void {
798
+ this.decryptionCache.clear();
799
+ console.log('๐Ÿงน Decryption cache cleared');
800
+ }
801
+
802
+ /**
803
+ * Check if decryption pipeline is ready
804
+ */
805
+ isReady(): boolean {
806
+ return this.sealClient !== null;
807
+ }
808
+
809
+ /**
810
+ * Get pipeline configuration info
811
+ */
812
+ getConfigInfo(): {
813
+ keyServers: number;
814
+ defaultNetwork: string;
815
+ batchingEnabled: boolean;
816
+ cacheEnabled: boolean;
817
+ } {
818
+ return {
819
+ keyServers: this.config.keyServers?.length || 0,
820
+ defaultNetwork: process.env.SUI_NETWORK || 'testnet',
821
+ batchingEnabled: this.config.enableBatchDecryption || false,
822
+ cacheEnabled: true
823
+ };
824
+ }
825
+ }