@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,1135 @@
1
+ /**
2
+ * Memory Namespace - Complete Memory CRUD Operations
3
+ *
4
+ * Provides simple API for creating, reading, updating, and deleting memories
5
+ * without React hooks or UI dependencies.
6
+ *
7
+ * @module client/namespaces
8
+ */
9
+
10
+ import type { ServiceContainer } from '../SimplePDWClient';
11
+
12
+ /**
13
+ * Memory object returned by operations
14
+ */
15
+ export interface Memory {
16
+ id: string;
17
+ content: string;
18
+ category?: string;
19
+ importance?: number;
20
+ topic?: string;
21
+ blobId: string;
22
+ vectorId?: number;
23
+ embedding?: number[];
24
+ metadata?: Record<string, any>;
25
+ encrypted?: boolean;
26
+ createdAt: number;
27
+ updatedAt?: number;
28
+ }
29
+
30
+ /**
31
+ * Options for creating a memory
32
+ */
33
+ export interface CreateMemoryOptions {
34
+ category?: 'fact' | 'preference' | 'todo' | 'note' | 'general';
35
+ importance?: number; // 1-10
36
+ topic?: string;
37
+ metadata?: Record<string, any>;
38
+ onProgress?: (stage: string, percent: number) => void;
39
+ }
40
+
41
+ /**
42
+ * Options for updating a memory
43
+ */
44
+ export interface UpdateMemoryOptions {
45
+ /** New content (will upload new blob to Walrus) */
46
+ content?: string;
47
+ /** New category */
48
+ category?: string;
49
+ /** New importance (1-10) */
50
+ importance?: number;
51
+ /** New topic */
52
+ topic?: string;
53
+ /** New embedding blob ID */
54
+ embeddingBlobId?: string;
55
+ /** New content hash */
56
+ contentHash?: string;
57
+ /** New content size */
58
+ contentSize?: number;
59
+ /** Additional metadata */
60
+ metadata?: Record<string, any>;
61
+ }
62
+
63
+ /**
64
+ * Options for listing memories
65
+ */
66
+ export interface ListMemoryOptions {
67
+ category?: string;
68
+ limit?: number;
69
+ offset?: number;
70
+ sortBy?: 'date' | 'importance' | 'relevance';
71
+ order?: 'asc' | 'desc';
72
+ }
73
+
74
+ /**
75
+ * Memory context with related memories
76
+ */
77
+ export interface MemoryContext {
78
+ memory: Memory;
79
+ related: Memory[];
80
+ entities?: Array<{
81
+ id: string;
82
+ name: string;
83
+ type: string;
84
+ }>;
85
+ relationships?: Array<{
86
+ source: string;
87
+ target: string;
88
+ type: string;
89
+ }>;
90
+ }
91
+
92
+ /**
93
+ * Memory Namespace
94
+ *
95
+ * Handles all memory CRUD operations
96
+ */
97
+ export class MemoryNamespace {
98
+ constructor(private services: ServiceContainer) {}
99
+
100
+ /**
101
+ * Create a new memory with automatic processing
102
+ *
103
+ * Pipeline:
104
+ * 1. Auto-classify content (if classifier enabled and category not provided)
105
+ * 2. Generate embedding (if AI enabled)
106
+ * 3. Encrypt content (if encryption enabled)
107
+ * 4. Upload to Walrus
108
+ * 5. Register on Sui blockchain
109
+ * 6. Index locally (if enabled)
110
+ * 7. Extract knowledge graph (if enabled)
111
+ *
112
+ * @param content - Text content to save
113
+ * @param options - Optional metadata and callbacks
114
+ * @returns Created memory with ID and blob ID
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * // Auto-classify and extract knowledge graph automatically
119
+ * const memory = await pdw.memory.create('I love TypeScript', {
120
+ * importance: 8,
121
+ * onProgress: (stage, percent) => console.log(stage, percent)
122
+ * });
123
+ *
124
+ * // Provide category to skip auto-classify
125
+ * const memory = await pdw.memory.create('Meeting at 3pm', {
126
+ * category: 'todo'
127
+ * });
128
+ * ```
129
+ */
130
+ async create(content: string, options: CreateMemoryOptions = {}): Promise<Memory> {
131
+ const { importance = 5, topic, metadata, onProgress } = options;
132
+ let category: string = options.category || 'general';
133
+
134
+ try {
135
+ // Validate content
136
+ if (!content || content.trim().length === 0) {
137
+ throw new Error('Content cannot be empty');
138
+ }
139
+
140
+ // Validate importance
141
+ if (importance < 1 || importance > 10) {
142
+ throw new Error('Importance must be between 1 and 10');
143
+ }
144
+
145
+ onProgress?.('analyzing', 5);
146
+
147
+ // 1. Auto-classify if category not provided
148
+ if (!options.category && this.services.classifier) {
149
+ onProgress?.('classifying', 10);
150
+ try {
151
+ const classifiedCategory = await this.services.classifier.classifyContent(content);
152
+ category = classifiedCategory || 'general';
153
+ console.log(`Auto-classified as: ${category}`);
154
+ } catch (classifyError) {
155
+ console.warn('Auto-classification failed, using default category:', classifyError);
156
+ }
157
+ }
158
+
159
+ // 2. Generate embedding
160
+ let embedding: number[] | undefined;
161
+ if (this.services.embedding) {
162
+ onProgress?.('generating embedding', 20);
163
+ const embResult = await this.services.embedding.embedText({
164
+ text: content
165
+ });
166
+ embedding = embResult.vector;
167
+ }
168
+
169
+ // 3. Encrypt (if enabled)
170
+ let encryptedContent: Uint8Array | undefined;
171
+ if (this.services.config.features.enableEncryption && this.services.encryption) {
172
+ onProgress?.('encrypting', 50);
173
+ try {
174
+ const contentBytes = new TextEncoder().encode(content);
175
+ const encryptResult = await this.services.encryption.encrypt(
176
+ contentBytes,
177
+ this.services.config.userAddress,
178
+ 2 // threshold: require 2 key servers for decryption
179
+ );
180
+ encryptedContent = encryptResult.encryptedObject;
181
+ } catch (error) {
182
+ console.warn('SEAL encryption failed, storing unencrypted:', error);
183
+ // Continue without encryption if it fails
184
+ }
185
+ }
186
+
187
+ // 4. Upload to Walrus
188
+ onProgress?.('uploading to Walrus', 40);
189
+ const uploadResult = await this.services.storage.uploadMemoryPackage(
190
+ {
191
+ content,
192
+ embedding: embedding || [],
193
+ metadata: {
194
+ category,
195
+ importance,
196
+ topic: topic || '',
197
+ ...metadata
198
+ },
199
+ encryptedContent,
200
+ identity: this.services.config.userAddress
201
+ },
202
+ {
203
+ signer: this.services.config.signer.getSigner(),
204
+ epochs: 3,
205
+ deletable: true,
206
+ metadata: {
207
+ 'category': category,
208
+ 'importance': importance.toString(),
209
+ 'topic': topic || ''
210
+ }
211
+ }
212
+ );
213
+
214
+ // 5. Register on-chain (create Memory object on Sui)
215
+ onProgress?.('registering on blockchain', 60);
216
+ let memoryObjectId: string | undefined;
217
+ // Use modulo to keep vectorId within u32 range (max 4,294,967,295)
218
+ const vectorId = Date.now() % 4294967295;
219
+
220
+ if (this.services.tx) {
221
+ try {
222
+ console.log('🔨 Building on-chain transaction with full metadata...');
223
+ const tx = this.services.tx.buildCreateMemoryRecord({
224
+ category,
225
+ vectorId,
226
+ blobId: uploadResult.blobId,
227
+ contentType: 'text/plain',
228
+ contentSize: new TextEncoder().encode(content).length,
229
+ contentHash: uploadResult.blobId, // blob_id is content-addressed (blake2b256)
230
+ topic: topic || '',
231
+ importance,
232
+ embeddingBlobId: uploadResult.blobId, // Embedding stored in same blob
233
+ });
234
+
235
+ // SerialTransactionExecutor handles gas coin management and prevents equivocation
236
+ // No manual retry needed - executor caches object versions automatically
237
+ console.log('📤 Executing on-chain transaction (via SerialTransactionExecutor)...');
238
+ const txResult = await this.services.tx.executeTransaction(
239
+ tx,
240
+ this.services.config.signer.getSigner()
241
+ );
242
+
243
+ console.log('📋 Transaction result:', txResult.status, txResult.digest);
244
+
245
+ if (txResult.status === 'success') {
246
+ // Get created Memory object ID
247
+ const memoryObject = txResult.createdObjects?.find(
248
+ (obj: any) => obj.objectType?.includes('::memory::Memory')
249
+ );
250
+ memoryObjectId = memoryObject?.objectId;
251
+ console.log('✅ Memory registered on-chain:', memoryObjectId);
252
+ } else {
253
+ console.warn('❌ Failed to register memory on-chain:', txResult.error);
254
+ }
255
+ } catch (txError: any) {
256
+ console.warn('❌ On-chain registration failed:', txError.message);
257
+ }
258
+ } else {
259
+ console.log('TransactionService not available, skipping on-chain registration');
260
+ }
261
+
262
+ // 6. Index locally (if enabled)
263
+ // Option A+: Store content in index ONLY when encryption is OFF
264
+ // When encryption is ON, content is NOT stored (security - prevents data leakage
265
+ // when index is saved to Walrus)
266
+ // TODO(refactor): Extract common indexing logic into shared helper when adding new metadata fields.
267
+ // Related locations: MemoryNamespace.createBatch(), MemoryIndexService.indexMemory(),
268
+ // ClientMemoryManager.createMemory(), rebuildIndexNode(), rebuildIndex()
269
+ const isEncrypted = !!encryptedContent;
270
+ if (this.services.vector && embedding) {
271
+ onProgress?.('indexing vector', 80);
272
+ const spaceId = this.services.config.userAddress;
273
+
274
+ // Index metadata - content only when NOT encrypted (Option A+)
275
+ const indexMetadata: Record<string, unknown> = {
276
+ ...metadata,
277
+ blobId: uploadResult.blobId,
278
+ memoryObjectId,
279
+ category,
280
+ importance,
281
+ topic: topic || '',
282
+ timestamp: Date.now(),
283
+ isEncrypted
284
+ };
285
+
286
+ // Option A+: Store content for fast local retrieval when encryption is OFF
287
+ if (!isEncrypted) {
288
+ indexMetadata.content = content;
289
+ console.log(' 💾 Content stored in local index (encryption OFF)');
290
+ } else {
291
+ console.log(' 🔒 Content NOT stored in index (encryption ON - security)');
292
+ }
293
+
294
+ // Auto-create index if it doesn't exist
295
+ try {
296
+ await this.services.vector.addVector(spaceId, vectorId, embedding, indexMetadata);
297
+ } catch (error: any) {
298
+ if (error.message?.includes('not found')) {
299
+ // Index doesn't exist, create it first
300
+ await this.services.vector.createIndex(spaceId, embedding.length);
301
+ await this.services.vector.addVector(spaceId, vectorId, embedding, indexMetadata);
302
+ } else {
303
+ throw error;
304
+ }
305
+ }
306
+ }
307
+
308
+ // 7. Extract knowledge graph (if enabled)
309
+ if (this.services.config.features.enableKnowledgeGraph) {
310
+ onProgress?.('extracting knowledge graph', 95);
311
+ try {
312
+ const graphResult = await this.services.storage.extractAndStoreKnowledgeGraph(
313
+ content,
314
+ uploadResult.blobId,
315
+ this.services.config.userAddress
316
+ );
317
+ console.log(`Knowledge graph extracted: ${graphResult.entities.length} entities, ${graphResult.relationships.length} relationships`);
318
+ } catch (graphError) {
319
+ console.warn('Knowledge graph extraction failed:', graphError);
320
+ // Continue without failing - graph extraction is optional
321
+ }
322
+ }
323
+
324
+ onProgress?.('complete', 100);
325
+
326
+ return {
327
+ id: memoryObjectId || uploadResult.blobId,
328
+ content,
329
+ category,
330
+ importance,
331
+ topic,
332
+ blobId: uploadResult.blobId,
333
+ vectorId,
334
+ embedding,
335
+ metadata: {
336
+ category,
337
+ importance,
338
+ topic,
339
+ ...metadata
340
+ },
341
+ encrypted: !!encryptedContent,
342
+ createdAt: Date.now()
343
+ };
344
+ } catch (error) {
345
+ throw new Error(`Failed to create memory: ${error instanceof Error ? error.message : String(error)}`);
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Get a memory by ID
351
+ *
352
+ * @param memoryId - Memory ID (blob ID)
353
+ * @returns Memory with full metadata
354
+ */
355
+ async get(memoryId: string): Promise<Memory> {
356
+ try {
357
+ const memoryPackage = await this.services.storage.retrieveMemoryPackage(memoryId);
358
+
359
+ if (memoryPackage.storageApproach === 'json-package' && memoryPackage.memoryPackage) {
360
+ return {
361
+ id: memoryId,
362
+ content: memoryPackage.memoryPackage.content,
363
+ embedding: memoryPackage.memoryPackage.embedding,
364
+ metadata: memoryPackage.memoryPackage.metadata,
365
+ category: memoryPackage.memoryPackage.metadata?.category,
366
+ importance: memoryPackage.memoryPackage.metadata?.importance,
367
+ topic: memoryPackage.memoryPackage.metadata?.topic,
368
+ blobId: memoryId,
369
+ encrypted: memoryPackage.isEncrypted,
370
+ createdAt: memoryPackage.memoryPackage.timestamp
371
+ };
372
+ }
373
+
374
+ throw new Error('Memory not found or invalid format');
375
+ } catch (error) {
376
+ throw new Error(`Failed to get memory: ${error instanceof Error ? error.message : String(error)}`);
377
+ }
378
+ }
379
+
380
+ /**
381
+ * Update memory record on-chain
382
+ *
383
+ * Updates memory object fields via Sui transaction. Only non-empty/non-zero
384
+ * values will be updated.
385
+ *
386
+ * If content is provided, a new blob will be uploaded to Walrus and
387
+ * the blob_id will be updated on-chain.
388
+ *
389
+ * @param memoryId - Memory object ID on Sui
390
+ * @param updates - Fields to update
391
+ * @returns Updated memory object
392
+ *
393
+ * @example
394
+ * ```typescript
395
+ * // Update importance and topic
396
+ * const updated = await pdw.memory.update(memoryId, {
397
+ * importance: 9,
398
+ * topic: 'programming'
399
+ * });
400
+ *
401
+ * // Update content (creates new Walrus blob)
402
+ * const updated = await pdw.memory.update(memoryId, {
403
+ * content: 'Updated content here'
404
+ * });
405
+ * ```
406
+ */
407
+ async update(memoryId: string, updates: UpdateMemoryOptions): Promise<Memory> {
408
+ try {
409
+ // Get current memory for comparison
410
+ const current = await this.get(memoryId);
411
+
412
+ let newBlobId = '';
413
+ let newEmbeddingBlobId = updates.embeddingBlobId || '';
414
+ let newContentHash = updates.contentHash || '';
415
+ let newContentSize = updates.contentSize || 0;
416
+
417
+ // If content is provided, upload new blob to Walrus
418
+ if (updates.content) {
419
+ // Generate new embedding if AI is enabled
420
+ let embedding: number[] | undefined;
421
+ if (this.services.embedding) {
422
+ const embResult = await this.services.embedding.embedText({
423
+ text: updates.content
424
+ });
425
+ embedding = embResult.vector;
426
+ }
427
+
428
+ // Upload new content to Walrus
429
+ const uploadResult = await this.services.storage.uploadMemoryPackage(
430
+ {
431
+ content: updates.content,
432
+ embedding: embedding || [],
433
+ metadata: {
434
+ category: updates.category || current.category,
435
+ importance: updates.importance || current.importance,
436
+ topic: updates.topic || current.topic,
437
+ ...updates.metadata
438
+ },
439
+ identity: this.services.config.userAddress
440
+ },
441
+ {
442
+ signer: this.services.config.signer.getSigner(),
443
+ epochs: 3,
444
+ deletable: true
445
+ }
446
+ );
447
+
448
+ newBlobId = uploadResult.blobId;
449
+ newContentSize = updates.content.length;
450
+ newContentHash = uploadResult.blobId; // blob_id is content-addressed
451
+ }
452
+
453
+ // Build and execute update transaction
454
+ const tx = this.services.tx!.buildUpdateMemoryRecord({
455
+ memoryId,
456
+ newBlobId,
457
+ newCategory: updates.category || '',
458
+ newTopic: updates.topic || '',
459
+ newImportance: updates.importance || 0,
460
+ newEmbeddingBlobId,
461
+ newContentHash,
462
+ newContentSize
463
+ });
464
+
465
+ // Execute transaction
466
+ const result = await this.services.tx!.executeTransaction(
467
+ tx,
468
+ this.services.config.signer.getSigner()
469
+ );
470
+
471
+ if (result.status !== 'success') {
472
+ throw new Error(result.error || 'Transaction failed');
473
+ }
474
+
475
+ // Update local vector index if needed
476
+ if (this.services.vector && updates.content && this.services.embedding) {
477
+ const embResult = await this.services.embedding.embedText({
478
+ text: updates.content
479
+ });
480
+ await this.services.vector.addVector(
481
+ this.services.config.userAddress,
482
+ current.vectorId || Date.now(),
483
+ embResult.vector,
484
+ { ...current.metadata, ...updates.metadata }
485
+ );
486
+ }
487
+
488
+ return {
489
+ ...current,
490
+ content: updates.content || current.content,
491
+ category: updates.category || current.category,
492
+ importance: updates.importance || current.importance,
493
+ topic: updates.topic || current.topic,
494
+ blobId: newBlobId || current.blobId,
495
+ metadata: {
496
+ ...current.metadata,
497
+ ...updates.metadata
498
+ },
499
+ updatedAt: Date.now()
500
+ };
501
+ } catch (error) {
502
+ throw new Error(`Failed to update memory: ${error instanceof Error ? error.message : String(error)}`);
503
+ }
504
+ }
505
+
506
+ /**
507
+ * Delete a memory
508
+ *
509
+ * Removes from:
510
+ * - Local vector index
511
+ * - Blockchain records (marks as deleted)
512
+ * Note: Walrus blobs are immutable, can only be marked as deleted
513
+ *
514
+ * @param memoryId - Memory ID to delete
515
+ */
516
+ async delete(memoryId: string): Promise<void> {
517
+ try {
518
+ // Build and execute delete transaction on blockchain
519
+ const tx = await this.services.memory.tx.deleteMemory(memoryId);
520
+ await this.services.config.signer.signAndExecuteTransaction(tx);
521
+
522
+ // Remove from local vector index if it exists
523
+ if (this.services.memoryIndex) {
524
+ try {
525
+ await this.services.memoryIndex.removeMemory(
526
+ this.services.config.userAddress,
527
+ memoryId
528
+ );
529
+ } catch (indexError) {
530
+ console.warn(`Failed to remove memory ${memoryId} from local index:`, indexError);
531
+ // Don't fail the delete if index removal fails
532
+ }
533
+ }
534
+ } catch (error) {
535
+ throw new Error(`Failed to delete memory: ${error instanceof Error ? error.message : String(error)}`);
536
+ }
537
+ }
538
+
539
+ /**
540
+ * List user memories with pagination
541
+ *
542
+ * @param options - Filter and pagination options
543
+ * @returns Array of memories
544
+ */
545
+ async list(options: ListMemoryOptions = {}): Promise<Memory[]> {
546
+ try {
547
+ const {
548
+ category,
549
+ limit = 50,
550
+ offset = 0,
551
+ sortBy = 'date',
552
+ order = 'desc'
553
+ } = options;
554
+
555
+ // Get memories from blockchain using ViewService (direct Sui query)
556
+ // This doesn't require backend API
557
+ const viewService = this.services.viewService;
558
+ if (!viewService) {
559
+ throw new Error('ViewService not available');
560
+ }
561
+
562
+ const response = await viewService.getUserMemories(
563
+ this.services.config.userAddress,
564
+ { limit, category }
565
+ );
566
+ const memories = response.data;
567
+
568
+ // Filter by category if provided
569
+ let filtered = memories;
570
+ if (category) {
571
+ filtered = memories.filter((m: any) =>
572
+ m.metadata?.category === category ||
573
+ m.fields?.category === category
574
+ );
575
+ }
576
+
577
+ // Sort
578
+ const sorted = [...filtered].sort((a: any, b: any) => {
579
+ if (sortBy === 'date') {
580
+ const aTime = a.timestamp || a.createdAt || 0;
581
+ const bTime = b.timestamp || b.createdAt || 0;
582
+ return order === 'desc' ? bTime - aTime : aTime - bTime;
583
+ } else if (sortBy === 'importance') {
584
+ const aImp = a.importance || a.metadata?.importance || 5;
585
+ const bImp = b.importance || b.metadata?.importance || 5;
586
+ return order === 'desc' ? bImp - aImp : aImp - bImp;
587
+ }
588
+ return 0;
589
+ });
590
+
591
+ // Paginate
592
+ const paginated = sorted.slice(offset, offset + limit);
593
+
594
+ // Convert to Memory format
595
+ return paginated.map((m: any) => ({
596
+ id: m.id || m.blobId,
597
+ content: m.content || '',
598
+ category: m.category || m.metadata?.category,
599
+ importance: m.importance || m.metadata?.importance,
600
+ topic: m.topic || m.metadata?.topic,
601
+ blobId: m.blobId || m.id,
602
+ metadata: m.metadata,
603
+ encrypted: m.encrypted || false,
604
+ createdAt: m.timestamp || m.createdAt || Date.now()
605
+ }));
606
+ } catch (error) {
607
+ throw new Error(`Failed to list memories: ${error instanceof Error ? error.message : String(error)}`);
608
+ }
609
+ }
610
+
611
+ /**
612
+ * Create multiple memories in batch using Walrus Quilt
613
+ *
614
+ * Uses Walrus SDK's writeFiles() which automatically batches small blobs
615
+ * into a single Quilt transaction, providing ~90% gas savings.
616
+ *
617
+ * Pipeline (batched):
618
+ * 1. Auto-classify all contents (if classifier enabled)
619
+ * 2. Generate embeddings for all contents (parallel)
620
+ * 3. Encrypt all contents (if encryption enabled)
621
+ * 4. Batch upload to Walrus as Quilt (single transaction!)
622
+ * 5. Register on Sui blockchain (batched PTB)
623
+ * 6. Index locally (batch add to vector index)
624
+ *
625
+ * @param contents - Array of content strings
626
+ * @param options - Shared options for all memories
627
+ * @returns Array of created memories
628
+ *
629
+ * @example
630
+ * ```typescript
631
+ * // Create multiple memories efficiently with Quilt
632
+ * const memories = await pdw.memory.createBatch([
633
+ * 'I love TypeScript',
634
+ * 'Meeting at 3pm tomorrow',
635
+ * 'Remember to buy milk'
636
+ * ], {
637
+ * category: 'note',
638
+ * importance: 5
639
+ * });
640
+ * // All 3 memories uploaded in 1 transaction!
641
+ * ```
642
+ */
643
+ async createBatch(
644
+ contents: string[],
645
+ options: CreateMemoryOptions = {}
646
+ ): Promise<Memory[]> {
647
+ const { importance = 5, topic, metadata, onProgress } = options;
648
+
649
+ // For single item, use regular create()
650
+ if (contents.length === 1) {
651
+ const memory = await this.create(contents[0], options);
652
+ return [memory];
653
+ }
654
+
655
+ try {
656
+ onProgress?.('preparing batch', 5);
657
+
658
+ // Step 1: Auto-classify all contents (parallel)
659
+ const categories: string[] = [];
660
+ if (!options.category && this.services.classifier) {
661
+ onProgress?.('classifying', 10);
662
+ const classifyPromises = contents.map(async (content) => {
663
+ try {
664
+ return await this.services.classifier!.classifyContent(content) || 'general';
665
+ } catch {
666
+ return 'general';
667
+ }
668
+ });
669
+ const classifiedCategories = await Promise.all(classifyPromises);
670
+ categories.push(...classifiedCategories);
671
+ } else {
672
+ categories.push(...contents.map(() => options.category || 'general'));
673
+ }
674
+
675
+ // Step 2: Generate embeddings (parallel)
676
+ onProgress?.('generating embeddings', 20);
677
+ const embeddings: number[][] = [];
678
+ if (this.services.embedding) {
679
+ const embeddingPromises = contents.map(content =>
680
+ this.services.embedding!.embedText({ text: content }).then(r => r.vector)
681
+ );
682
+ const embeddingResults = await Promise.all(embeddingPromises);
683
+ embeddings.push(...embeddingResults);
684
+ }
685
+
686
+ // Step 3: Encrypt all contents (parallel, if enabled)
687
+ onProgress?.('encrypting', 35);
688
+ const encryptedContents: (Uint8Array | undefined)[] = [];
689
+ if (this.services.config.features.enableEncryption && this.services.encryption) {
690
+ const encryptPromises = contents.map(async (content) => {
691
+ try {
692
+ const contentBytes = new TextEncoder().encode(content);
693
+ const result = await this.services.encryption!.encrypt(
694
+ contentBytes,
695
+ this.services.config.userAddress,
696
+ 2
697
+ );
698
+ return result.encryptedObject;
699
+ } catch {
700
+ return undefined;
701
+ }
702
+ });
703
+ const encryptResults = await Promise.all(encryptPromises);
704
+ encryptedContents.push(...encryptResults);
705
+ } else {
706
+ encryptedContents.push(...contents.map(() => undefined));
707
+ }
708
+
709
+ // Step 4: Batch upload to Walrus using Quilt (single transaction!)
710
+ onProgress?.('uploading to Walrus (Quilt batch)', 50);
711
+
712
+ // Prepare batch memories for QuiltBatchManager
713
+ const batchMemories = contents.map((content, i) => ({
714
+ content,
715
+ category: categories[i],
716
+ importance,
717
+ topic: topic || '',
718
+ embedding: embeddings[i] || [],
719
+ encryptedContent: encryptedContents[i] || new TextEncoder().encode(content),
720
+ id: `memory-${Date.now()}-${i}` // Client-side tracking ID
721
+ }));
722
+
723
+ const quiltResult = await this.services.storage.uploadMemoryBatch(
724
+ batchMemories,
725
+ {
726
+ signer: this.services.config.signer.getSigner(),
727
+ epochs: 3,
728
+ userAddress: this.services.config.userAddress
729
+ }
730
+ );
731
+
732
+ const gasSavedEstimate = contents.length > 1 ? `~${((1 - 1 / contents.length) * 100).toFixed(0)}%` : '0%';
733
+ console.log(`✅ Quilt batch upload complete: ${quiltResult.files.length} files, ${gasSavedEstimate} gas saved, ${quiltResult.uploadTimeMs.toFixed(0)}ms`);
734
+
735
+ // Step 5: Register on-chain (batched PTB if available)
736
+ onProgress?.('registering on blockchain', 70);
737
+ const memoryObjectIds: (string | undefined)[] = [];
738
+ const vectorIds: number[] = [];
739
+
740
+ if (this.services.tx) {
741
+ // Create memory records for each file in the quilt
742
+ for (let i = 0; i < quiltResult.files.length; i++) {
743
+ const file = quiltResult.files[i];
744
+ const vectorId = (Date.now() + i) % 4294967295;
745
+ vectorIds.push(vectorId);
746
+
747
+ try {
748
+ const tx = this.services.tx.buildCreateMemoryRecord({
749
+ category: categories[i],
750
+ vectorId,
751
+ blobId: file.blobId,
752
+ contentType: 'text/plain',
753
+ contentSize: new TextEncoder().encode(contents[i]).length,
754
+ contentHash: file.blobId, // blob_id is content-addressed (blake2b256)
755
+ topic: options.topic || '',
756
+ importance,
757
+ embeddingBlobId: file.blobId, // Embedding stored in same blob
758
+ });
759
+
760
+ const txResult = await this.services.tx.executeTransaction(
761
+ tx,
762
+ this.services.config.signer.getSigner()
763
+ );
764
+
765
+ if (txResult.status === 'success') {
766
+ const memoryObject = txResult.createdObjects?.find(
767
+ (obj: any) => obj.objectType?.includes('::memory::Memory')
768
+ );
769
+ memoryObjectIds.push(memoryObject?.objectId);
770
+ } else {
771
+ memoryObjectIds.push(undefined);
772
+ }
773
+ } catch (error) {
774
+ console.warn(`Failed to register memory ${i} on-chain:`, error);
775
+ memoryObjectIds.push(undefined);
776
+ }
777
+ }
778
+ }
779
+
780
+ // Step 6: Index locally (batch add to vector index)
781
+ // Option A+: Store content in index when encryption is OFF for fast local retrieval
782
+ // TODO(refactor): Extract common indexing logic into shared helper when adding new metadata fields.
783
+ // Related locations: MemoryNamespace.create(), MemoryIndexService.indexMemory(),
784
+ // ClientMemoryManager.createMemory(), rebuildIndexNode(), rebuildIndex()
785
+ onProgress?.('indexing vectors', 90);
786
+ if (this.services.vector && embeddings.length > 0) {
787
+ const spaceId = this.services.config.userAddress;
788
+
789
+ for (let i = 0; i < embeddings.length; i++) {
790
+ if (!embeddings[i]) continue;
791
+
792
+ const vectorId = vectorIds[i] || (Date.now() + i) % 4294967295;
793
+ const isEncrypted = !!encryptedContents[i] && this.services.config.features.enableEncryption;
794
+
795
+ const indexMetadata: Record<string, unknown> = {
796
+ ...metadata,
797
+ blobId: quiltResult.files[i]?.blobId,
798
+ memoryObjectId: memoryObjectIds[i],
799
+ category: categories[i],
800
+ importance,
801
+ topic: topic || '',
802
+ timestamp: Date.now(),
803
+ isEncrypted
804
+ };
805
+
806
+ // Option A+: Store content for fast local retrieval when encryption is OFF
807
+ if (!isEncrypted) {
808
+ indexMetadata.content = contents[i];
809
+ console.log(` 💾 Batch item ${i + 1}: Content stored in local index (encryption OFF)`);
810
+ } else {
811
+ console.log(` 🔒 Batch item ${i + 1}: Content NOT stored in index (encryption ON)`);
812
+ }
813
+
814
+ try {
815
+ await this.services.vector.addVector(spaceId, vectorId, embeddings[i], indexMetadata);
816
+ } catch (error: any) {
817
+ if (error.message?.includes('not found')) {
818
+ await this.services.vector.createIndex(spaceId, embeddings[i].length);
819
+ await this.services.vector.addVector(spaceId, vectorId, embeddings[i], indexMetadata);
820
+ }
821
+ }
822
+ }
823
+ }
824
+
825
+ onProgress?.('complete', 100);
826
+
827
+ // Build result array
828
+ const memories: Memory[] = contents.map((content, i) => ({
829
+ id: memoryObjectIds[i] || quiltResult.files[i]?.blobId || `batch-${i}`,
830
+ content,
831
+ category: categories[i],
832
+ importance,
833
+ topic,
834
+ blobId: quiltResult.files[i]?.blobId || '',
835
+ vectorId: vectorIds[i],
836
+ embedding: embeddings[i],
837
+ metadata: {
838
+ category: categories[i],
839
+ importance,
840
+ topic,
841
+ quiltId: quiltResult.quiltId,
842
+ ...metadata
843
+ },
844
+ encrypted: !!encryptedContents[i],
845
+ createdAt: Date.now()
846
+ }));
847
+
848
+ return memories;
849
+
850
+ } catch (error) {
851
+ throw new Error(`Failed to create batch memories: ${error instanceof Error ? error.message : String(error)}`);
852
+ }
853
+ }
854
+
855
+ /**
856
+ * Delete multiple memories
857
+ *
858
+ * @param memoryIds - Array of memory IDs to delete
859
+ */
860
+ async deleteBatch(memoryIds: string[]): Promise<void> {
861
+ for (const id of memoryIds) {
862
+ await this.delete(id);
863
+ }
864
+ }
865
+
866
+ /**
867
+ * Update multiple memories in batch
868
+ *
869
+ * Updates memories in parallel batches:
870
+ * 1. For updates with new content: uploads new blobs to Walrus
871
+ * 2. Executes on-chain update transactions
872
+ * 3. Updates local vector index if enabled
873
+ *
874
+ * @param updates - Array of {id, content?, category?, importance?, topic?}
875
+ * @returns Array of successfully updated memory IDs
876
+ *
877
+ * @example
878
+ * ```typescript
879
+ * const updatedIds = await pdw.memory.updateBatch([
880
+ * { id: 'mem1', importance: 9 },
881
+ * { id: 'mem2', content: 'Updated content' }
882
+ * ]);
883
+ * ```
884
+ */
885
+ async updateBatch(
886
+ updates: Array<{
887
+ id: string;
888
+ content?: string;
889
+ category?: string;
890
+ importance?: number;
891
+ topic?: string;
892
+ }>
893
+ ): Promise<string[]> {
894
+ const successfulIds: string[] = [];
895
+ const BATCH_SIZE = 5;
896
+
897
+ for (let i = 0; i < updates.length; i += BATCH_SIZE) {
898
+ const batch = updates.slice(i, i + BATCH_SIZE);
899
+
900
+ const batchPromises = batch.map(async (update) => {
901
+ try {
902
+ await this.update(update.id, {
903
+ content: update.content,
904
+ category: update.category,
905
+ importance: update.importance,
906
+ topic: update.topic
907
+ });
908
+ return { success: true, id: update.id };
909
+ } catch (error) {
910
+ const errorMsg = error instanceof Error ? error.message : String(error);
911
+ console.warn(`Failed to update memory ${update.id}:`, errorMsg);
912
+ return { success: false, id: update.id };
913
+ }
914
+ });
915
+
916
+ const batchResults = await Promise.all(batchPromises);
917
+ for (const result of batchResults) {
918
+ if (result.success) {
919
+ successfulIds.push(result.id);
920
+ }
921
+ }
922
+ }
923
+
924
+ return successfulIds;
925
+ }
926
+
927
+ /**
928
+ * Get memory with related context (related memories, knowledge graph)
929
+ *
930
+ * @param memoryId - Memory ID
931
+ * @param options - Context options
932
+ * @returns Memory with context
933
+ */
934
+ async getContext(
935
+ memoryId: string,
936
+ options: { includeRelated?: boolean; includeGraph?: boolean } = {}
937
+ ): Promise<MemoryContext> {
938
+ const memory = await this.get(memoryId);
939
+
940
+ const context: MemoryContext = {
941
+ memory,
942
+ related: []
943
+ };
944
+
945
+ // Get related memories if requested
946
+ if (options.includeRelated && memory.content) {
947
+ // Use local vector search if available
948
+ try {
949
+ if (this.services.memoryIndex) {
950
+ // Generate embedding for the memory content
951
+ const embedding = this.services.embedding
952
+ ? await this.services.embedding.embedText({ text: memory.content.substring(0, 500) })
953
+ : null;
954
+
955
+ if (embedding) {
956
+ const searchResults = await this.services.memoryIndex.searchMemories({
957
+ userAddress: this.services.config.userAddress,
958
+ vector: embedding.vector,
959
+ k: 5
960
+ });
961
+
962
+ context.related = searchResults
963
+ .filter((r: any) => r.memoryObjectId !== memoryId)
964
+ .slice(0, 5)
965
+ .map((r: any) => ({
966
+ id: r.memoryObjectId || r.id,
967
+ content: r.content || '',
968
+ category: r.category || 'general',
969
+ importance: r.importance,
970
+ blobId: r.blobId || r.memoryObjectId || r.id,
971
+ metadata: r.metadata,
972
+ createdAt: r.timestamp || Date.now()
973
+ }));
974
+ }
975
+ }
976
+ } catch (error) {
977
+ console.warn('Failed to get related memories:', error);
978
+ context.related = [];
979
+ }
980
+ }
981
+
982
+ // Get knowledge graph if requested
983
+ if (options.includeGraph) {
984
+ const graphData = await this.services.storage.searchKnowledgeGraph(
985
+ this.services.config.userAddress,
986
+ { searchText: memory.content, limit: 10 }
987
+ );
988
+
989
+ context.entities = graphData.entities.map(e => ({
990
+ id: e.id,
991
+ name: e.label,
992
+ type: e.type
993
+ }));
994
+
995
+ context.relationships = graphData.relationships.map(r => ({
996
+ source: r.source,
997
+ target: r.target,
998
+ type: r.type || 'related'
999
+ }));
1000
+ }
1001
+
1002
+ return context;
1003
+ }
1004
+
1005
+ /**
1006
+ * Get memories related to a specific memory
1007
+ *
1008
+ * @param memoryId - Memory ID
1009
+ * @param k - Number of related memories to return
1010
+ * @returns Array of related memories
1011
+ */
1012
+ async getRelated(memoryId: string, k: number = 5): Promise<Memory[]> {
1013
+ const memory = await this.get(memoryId);
1014
+
1015
+ if (!memory.content) {
1016
+ return [];
1017
+ }
1018
+
1019
+ try {
1020
+ // Generate embedding for content to find similar memories
1021
+ if (!this.services.embedding) {
1022
+ console.warn('Embedding service not available for related memories search');
1023
+ return [];
1024
+ }
1025
+
1026
+ const embResult = await this.services.embedding.embedText({
1027
+ text: memory.content.substring(0, 500)
1028
+ });
1029
+
1030
+ if (!this.services.memoryIndex) {
1031
+ console.warn('Memory index service not available for related memories search');
1032
+ return [];
1033
+ }
1034
+
1035
+ const searchResults = await this.services.memoryIndex.searchMemories({
1036
+ userAddress: this.services.config.userAddress,
1037
+ vector: embResult.vector,
1038
+ k: k + 1
1039
+ });
1040
+
1041
+ return searchResults
1042
+ .filter((r: any) => (r.blobId || r.id) !== memoryId)
1043
+ .slice(0, k)
1044
+ .map((r: any) => ({
1045
+ id: r.id,
1046
+ content: r.content || '',
1047
+ category: r.category,
1048
+ importance: r.metadata?.importance,
1049
+ blobId: r.blobId || r.id,
1050
+ metadata: r.metadata,
1051
+ createdAt: r.timestamp ? new Date(r.timestamp).getTime() : Date.now()
1052
+ }));
1053
+ } catch (error) {
1054
+ console.warn('Failed to get related memories:', error);
1055
+ return [];
1056
+ }
1057
+ }
1058
+
1059
+ /**
1060
+ * Export memories to file format
1061
+ *
1062
+ * Exports memories to JSON or CSV format for backup/portability
1063
+ *
1064
+ * @param options - Export options
1065
+ * @returns Exported data as string
1066
+ */
1067
+ async export(options: {
1068
+ format?: 'json' | 'csv';
1069
+ includeContent?: boolean;
1070
+ includeEmbeddings?: boolean;
1071
+ category?: string;
1072
+ limit?: number;
1073
+ } = {}): Promise<string> {
1074
+ const {
1075
+ format = 'json',
1076
+ includeContent = true,
1077
+ includeEmbeddings = false,
1078
+ category,
1079
+ limit
1080
+ } = options;
1081
+
1082
+ try {
1083
+ // Get memories
1084
+ const memories = await this.list({ category, limit });
1085
+
1086
+ if (format === 'json') {
1087
+ // JSON export
1088
+ const exportData = memories.map(m => ({
1089
+ id: m.id,
1090
+ content: includeContent ? m.content : undefined,
1091
+ category: m.category,
1092
+ importance: m.importance,
1093
+ topic: m.topic,
1094
+ blobId: m.blobId,
1095
+ embedding: includeEmbeddings ? m.embedding : undefined,
1096
+ metadata: m.metadata,
1097
+ createdAt: m.createdAt,
1098
+ updatedAt: m.updatedAt
1099
+ }));
1100
+
1101
+ return JSON.stringify(exportData, null, 2);
1102
+ } else {
1103
+ // CSV export
1104
+ const headers = [
1105
+ 'id',
1106
+ 'category',
1107
+ 'importance',
1108
+ 'topic',
1109
+ 'blobId',
1110
+ 'createdAt',
1111
+ includeContent ? 'content' : null
1112
+ ].filter(Boolean);
1113
+
1114
+ const rows = memories.map(m => [
1115
+ m.id,
1116
+ m.category || '',
1117
+ m.importance || '',
1118
+ m.topic || '',
1119
+ m.blobId,
1120
+ new Date(m.createdAt).toISOString(),
1121
+ includeContent ? `"${(m.content || '').replace(/"/g, '""')}"` : null
1122
+ ].filter(v => v !== null));
1123
+
1124
+ const csv = [
1125
+ headers.join(','),
1126
+ ...rows.map(row => row.join(','))
1127
+ ].join('\n');
1128
+
1129
+ return csv;
1130
+ }
1131
+ } catch (error) {
1132
+ throw new Error(`Failed to export memories: ${error instanceof Error ? error.message : String(error)}`);
1133
+ }
1134
+ }
1135
+ }