@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,922 @@
1
+ /**
2
+ * MemoryIndexService - Enhanced Memory Indexing and Vector Search
3
+ *
4
+ * Hybrid HNSW-powered memory indexing service providing:
5
+ * - O(log N) vector similarity search performance
6
+ * - Advanced clustering and graph-based memory organization
7
+ * - Intelligent semantic search with relevance scoring
8
+ * - Dynamic index optimization and parameter tuning
9
+ * - Multi-dimensional vector space analysis
10
+ *
11
+ * Automatically selects the appropriate HNSW implementation:
12
+ * - Browser: hnswlib-wasm (WebAssembly)
13
+ * - Node.js: hnswlib-node (native bindings)
14
+ */
15
+
16
+ import { createHnswService, isBrowser, isNode } from '../vector/createHnswService';
17
+ import type { IHnswService, IHnswSearchOptions } from '../vector/IHnswService';
18
+ import { EmbeddingService } from './EmbeddingService';
19
+ import { StorageService, type MemoryMetadata } from './StorageService';
20
+
21
+ export interface MemoryIndexEntry {
22
+ memoryId: string;
23
+ blobId: string;
24
+ vectorId: number;
25
+ embedding: number[];
26
+ metadata: MemoryMetadata;
27
+ indexedAt: Date;
28
+ lastAccessed?: Date;
29
+ }
30
+
31
+ export interface MemoryIndexOptions {
32
+ maxElements?: number;
33
+ dimension?: number;
34
+ efConstruction?: number;
35
+ m?: number;
36
+ batchSize?: number;
37
+ autoFlushInterval?: number;
38
+ /** Pre-initialized HNSW service instance (shared singleton) */
39
+ hnswService?: IHnswService;
40
+ }
41
+
42
+ export interface MemorySearchQuery {
43
+ query?: string;
44
+ vector?: number[];
45
+ userAddress: string;
46
+ k?: number;
47
+ threshold?: number;
48
+
49
+ // Memory-specific filters
50
+ categories?: string[];
51
+ dateRange?: {
52
+ start?: Date;
53
+ end?: Date;
54
+ };
55
+ importanceRange?: {
56
+ min?: number;
57
+ max?: number;
58
+ };
59
+ tags?: string[];
60
+ includeContent?: boolean;
61
+
62
+ // Enhanced search features
63
+ searchMode?: 'semantic' | 'hybrid' | 'exact'; // Search strategy
64
+ boostRecent?: boolean; // Boost recently created memories
65
+ diversityFactor?: number; // Result diversity (0-1)
66
+ }
67
+
68
+ export interface MemorySearchResult {
69
+ memoryId: string;
70
+ blobId: string;
71
+ metadata: MemoryMetadata;
72
+ similarity: number;
73
+ relevanceScore: number;
74
+ content?: string | Uint8Array;
75
+ extractedAt?: Date;
76
+ embedding?: number[]; // Optional embedding vector for advanced similarity operations
77
+ clusterInfo?: {
78
+ clusterId: number;
79
+ clusterCenter: number[];
80
+ intraClusterSimilarity: number;
81
+ };
82
+ }
83
+
84
+ /**
85
+ * Memory-focused indexing service providing high-level memory operations
86
+ * Uses hybrid HNSW implementation (browser: wasm, node: native) for optimal performance
87
+ */
88
+ export class MemoryIndexService {
89
+ private hnswService: IHnswService | null = null;
90
+ private hnswServicePromise: Promise<IHnswService> | null = null;
91
+ private embeddingService?: EmbeddingService;
92
+ private storageService?: StorageService;
93
+ private memoryIndex = new Map<string, Map<string, MemoryIndexEntry>>(); // userAddress -> memoryId -> entry
94
+ private nextMemoryId = 1;
95
+ private options: MemoryIndexOptions;
96
+
97
+ // Performance tracking
98
+ private indexStats = new Map<string, {
99
+ totalVectors: number;
100
+ avgSimilarity: number;
101
+ searchLatency: number[];
102
+ lastOptimized: Date;
103
+ }>();
104
+
105
+ constructor(
106
+ storageService?: StorageService,
107
+ options: MemoryIndexOptions = {}
108
+ ) {
109
+ this.storageService = storageService;
110
+ this.options = options;
111
+
112
+ // Use pre-initialized HNSW service if provided (shared singleton pattern)
113
+ if (options.hnswService) {
114
+ this.hnswService = options.hnswService;
115
+ console.log('✅ MemoryIndexService using shared HNSW service instance');
116
+ } else {
117
+ // Initialize HNSW service asynchronously using factory
118
+ this.hnswServicePromise = this.initializeHnswService();
119
+
120
+ const envType = isBrowser() ? 'browser (hnswlib-wasm)' : isNode() ? 'Node.js (hnswlib-node)' : 'unknown';
121
+ console.log(`✅ MemoryIndexService initializing with hybrid HNSW (${envType})`);
122
+ }
123
+
124
+ console.log(` Max elements: ${options.maxElements || 10000}`);
125
+ console.log(` Embedding dimension: ${options.dimension || 3072}`);
126
+ console.log(` HNSW parameters: M=${options.m || 16}, efConstruction=${options.efConstruction || 200}`);
127
+ }
128
+
129
+ /**
130
+ * Initialize HNSW service using factory (auto-detects environment)
131
+ */
132
+ private async initializeHnswService(): Promise<IHnswService> {
133
+ try {
134
+ const service = await createHnswService({
135
+ indexConfig: {
136
+ dimension: this.options.dimension || 3072,
137
+ maxElements: this.options.maxElements || 10000,
138
+ efConstruction: this.options.efConstruction || 200,
139
+ m: this.options.m || 16
140
+ },
141
+ batchConfig: {
142
+ maxBatchSize: this.options.batchSize || 100,
143
+ batchDelayMs: this.options.autoFlushInterval || 5000
144
+ }
145
+ });
146
+
147
+ this.hnswService = service;
148
+ console.log('✅ HNSW service initialized successfully');
149
+ return service;
150
+ } catch (error) {
151
+ console.error('❌ Failed to initialize HNSW service:', error);
152
+ throw error;
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Get HNSW service (waits for initialization if needed)
158
+ */
159
+ private async getHnswService(): Promise<IHnswService> {
160
+ if (this.hnswService) {
161
+ return this.hnswService;
162
+ }
163
+ if (this.hnswServicePromise) {
164
+ return this.hnswServicePromise;
165
+ }
166
+ throw new Error('HNSW service not initialized');
167
+ }
168
+
169
+ /**
170
+ * Initialize with embedding service
171
+ */
172
+ initialize(embeddingService: EmbeddingService, storageService?: StorageService) {
173
+ this.embeddingService = embeddingService;
174
+ if (storageService) {
175
+ this.storageService = storageService;
176
+ }
177
+ console.log('✅ MemoryIndexService: Embedding service connected');
178
+ }
179
+
180
+ /**
181
+ * Index a memory with its content, metadata, and vector embedding
182
+ *
183
+ * @param userAddress - User's wallet address
184
+ * @param memoryId - Unique memory identifier
185
+ * @param blobId - Walrus blob ID for the memory
186
+ * @param content - Memory content (stored in index only if not encrypted)
187
+ * @param metadata - Memory metadata
188
+ * @param embedding - Pre-computed embedding vector (optional)
189
+ * @param options - Indexing options
190
+ * @param options.isEncrypted - If true, content will NOT be stored in index (security)
191
+ */
192
+ async indexMemory(
193
+ userAddress: string,
194
+ memoryId: string,
195
+ blobId: string,
196
+ content: string,
197
+ metadata: MemoryMetadata,
198
+ embedding?: number[],
199
+ options?: { isEncrypted?: boolean }
200
+ ): Promise<{ vectorId: number; indexed: boolean }> {
201
+ try {
202
+ console.log(`📊 Indexing memory ${memoryId} for user ${userAddress}`);
203
+
204
+ // Generate embedding if not provided
205
+ let memoryEmbedding = embedding;
206
+ if (!memoryEmbedding && this.embeddingService) {
207
+ const embeddingResult = await this.embeddingService.embedText({ text: content });
208
+ memoryEmbedding = embeddingResult.vector;
209
+ }
210
+
211
+ if (!memoryEmbedding) {
212
+ throw new Error('No embedding provided and no embedding service available');
213
+ }
214
+
215
+ // Generate vector ID
216
+ const vectorId = this.nextMemoryId++;
217
+
218
+ // Add to HNSW index with batching
219
+ // Option A+: Store content in index ONLY when encryption is OFF (security consideration)
220
+ const hnswService = await this.getHnswService();
221
+ const isEncrypted = options?.isEncrypted ?? false;
222
+
223
+ const vectorMetadata: Record<string, unknown> = {
224
+ memoryId,
225
+ blobId,
226
+ category: metadata.category,
227
+ topic: metadata.topic,
228
+ importance: metadata.importance,
229
+ contentType: metadata.contentType,
230
+ createdTimestamp: metadata.createdTimestamp,
231
+ customMetadata: metadata.customMetadata
232
+ };
233
+
234
+ // Only store content if NOT encrypted (privacy-safe)
235
+ if (!isEncrypted && content) {
236
+ vectorMetadata.content = content;
237
+ console.log(' 💾 Content stored in local index (encryption OFF)');
238
+ } else if (isEncrypted) {
239
+ console.log(' 🔒 Content NOT stored in index (encryption ON - security)');
240
+ }
241
+
242
+ await hnswService.addVector(
243
+ userAddress,
244
+ vectorId,
245
+ memoryEmbedding,
246
+ vectorMetadata
247
+ );
248
+
249
+ // Update performance statistics
250
+ this.updateIndexStats(userAddress);
251
+
252
+ // Store in memory index
253
+ if (!this.memoryIndex.has(userAddress)) {
254
+ this.memoryIndex.set(userAddress, new Map());
255
+ }
256
+
257
+ const indexEntry: MemoryIndexEntry = {
258
+ memoryId,
259
+ blobId,
260
+ vectorId,
261
+ embedding: memoryEmbedding,
262
+ metadata,
263
+ indexedAt: new Date()
264
+ };
265
+
266
+ this.memoryIndex.get(userAddress)!.set(memoryId, indexEntry);
267
+
268
+ console.log(`✅ Memory indexed: ${memoryId} (vector ${vectorId})`);
269
+ console.log(` Category: ${metadata.category}`);
270
+ console.log(` Importance: ${metadata.importance}`);
271
+ console.log(` Embedding dimension: ${memoryEmbedding.length}`);
272
+
273
+ return { vectorId, indexed: true };
274
+
275
+ } catch (error) {
276
+ console.error('❌ Failed to index memory:', error);
277
+ throw error;
278
+ }
279
+ }
280
+
281
+ /**
282
+ * Enhanced memory search using native HNSW with advanced features
283
+ * Supports semantic search, metadata filtering, and intelligent relevance scoring
284
+ */
285
+ async searchMemories(query: MemorySearchQuery): Promise<MemorySearchResult[]> {
286
+ const startTime = performance.now();
287
+
288
+ try {
289
+ console.log(`🔍 Memory search for user ${query.userAddress}`);
290
+ console.log(` Query: "${query.query || 'vector search'}"`);
291
+ console.log(` Mode: ${query.searchMode || 'semantic'}, K: ${query.k || 10}`);
292
+
293
+ // Generate query vector if needed
294
+ let queryVector = query.vector;
295
+ if (!queryVector && query.query && this.embeddingService) {
296
+ const embeddingResult = await this.embeddingService.embedText({ text: query.query });
297
+ queryVector = embeddingResult.vector;
298
+ }
299
+
300
+ if (!queryVector) {
301
+ throw new Error('No query vector provided and no query text with embedding service');
302
+ }
303
+
304
+ const userMemories = this.memoryIndex.get(query.userAddress);
305
+ if (!userMemories || userMemories.size === 0) {
306
+ console.log(' No memories found for user');
307
+ return [];
308
+ }
309
+
310
+ // Configure search parameters based on query mode
311
+ const searchK = query.k || 10;
312
+ const efSearch = query.searchMode === 'exact' ? searchK * 4 :
313
+ query.searchMode === 'hybrid' ? searchK * 2 : searchK;
314
+
315
+ // Perform HNSW search using native implementation
316
+ const hnswService = await this.getHnswService();
317
+ const hnswResults = await hnswService.search(
318
+ query.userAddress,
319
+ queryVector,
320
+ {
321
+ k: Math.min(searchK * 3, 100), // Get more candidates for post-filtering
322
+ ef: efSearch,
323
+ filter: this.createMetadataFilter(query)
324
+ }
325
+ );
326
+
327
+ // Convert to memory search results with enhanced scoring
328
+ const results: MemorySearchResult[] = [];
329
+
330
+ for (const result of hnswResults) {
331
+ const vectorId = result.vectorId;
332
+ const distance = result.distance;
333
+ // Calculate similarity from distance (cosine distance: similarity = 1 - distance)
334
+ const similarity = result.score;
335
+
336
+ // Skip results below threshold
337
+ if (query.threshold && similarity < query.threshold) {
338
+ continue;
339
+ }
340
+
341
+ // Find memory entry by vector ID
342
+ const memoryEntry = Array.from(userMemories.values()).find(entry => entry.vectorId === vectorId);
343
+ if (!memoryEntry) continue;
344
+
345
+ // Enhanced relevance scoring
346
+ let relevanceScore = this.calculateAdvancedRelevanceScore(
347
+ similarity,
348
+ memoryEntry.metadata,
349
+ query,
350
+ queryVector,
351
+ memoryEntry.embedding || []
352
+ );
353
+
354
+ // Apply recency boost if requested
355
+ if (query.boostRecent) {
356
+ const recencyBoost = this.calculateRecencyBoost(memoryEntry.metadata.createdTimestamp || 0);
357
+ relevanceScore += recencyBoost * 0.1;
358
+ }
359
+
360
+ // Option A+: Get content from HNSW metadata if available (avoids Walrus fetch!)
361
+ // Content is only stored when encryption is OFF (see indexMemory)
362
+ const indexedContent = result.metadata?.content as string | undefined;
363
+
364
+ results.push({
365
+ memoryId: memoryEntry.memoryId,
366
+ blobId: memoryEntry.blobId,
367
+ metadata: memoryEntry.metadata,
368
+ similarity,
369
+ relevanceScore,
370
+ content: indexedContent, // ✅ Return content from local index (no Walrus fetch needed!)
371
+ extractedAt: memoryEntry.indexedAt
372
+ });
373
+ }
374
+
375
+ // Apply diversity filtering if requested
376
+ let finalResults = results;
377
+ if (query.diversityFactor && query.diversityFactor > 0) {
378
+ finalResults = this.diversifyResults(results, query.diversityFactor);
379
+ }
380
+
381
+ // Sort by relevance score and limit results
382
+ finalResults.sort((a, b) => b.relevanceScore - a.relevanceScore);
383
+ finalResults = finalResults.slice(0, searchK);
384
+
385
+ // Update search statistics
386
+ const searchLatency = performance.now() - startTime;
387
+ this.updateSearchStats(query.userAddress, searchLatency);
388
+
389
+ // Count how many results have content from local index (Option A+)
390
+ const resultsWithLocalContent = finalResults.filter(r => r.content !== undefined).length;
391
+
392
+ console.log(`✅ Search completed in ${searchLatency.toFixed(2)}ms`);
393
+ console.log(` Found ${finalResults.length} results (similarity range: ${finalResults.length > 0 ? finalResults[finalResults.length-1].similarity.toFixed(3) : 'N/A'} - ${finalResults.length > 0 ? finalResults[0].similarity.toFixed(3) : 'N/A'}`);
394
+ if (resultsWithLocalContent > 0) {
395
+ console.log(` 📦 ${resultsWithLocalContent}/${finalResults.length} results have content from local index (no Walrus fetch needed!)`);
396
+ }
397
+
398
+ return finalResults;
399
+
400
+ } catch (error) {
401
+ console.error('❌ Memory search failed:', error);
402
+ throw error;
403
+ }
404
+ }
405
+
406
+ /**
407
+ * Get all memories for a user with optional filtering
408
+ */
409
+ async getUserMemories(
410
+ userAddress: string,
411
+ filters?: {
412
+ categories?: string[];
413
+ dateRange?: { start?: Date; end?: Date };
414
+ importanceRange?: { min?: number; max?: number };
415
+ limit?: number;
416
+ }
417
+ ): Promise<MemorySearchResult[]> {
418
+ const userMemories = this.memoryIndex.get(userAddress);
419
+ if (!userMemories) {
420
+ return [];
421
+ }
422
+
423
+ const results: MemorySearchResult[] = [];
424
+
425
+ for (const [memoryId, entry] of userMemories) {
426
+ // Apply filters
427
+ if (filters) {
428
+ if (filters.categories && !filters.categories.includes(entry.metadata.category)) {
429
+ continue;
430
+ }
431
+
432
+ if (filters.importanceRange) {
433
+ const importance = entry.metadata.importance || 5;
434
+ if (filters.importanceRange.min && importance < filters.importanceRange.min) continue;
435
+ if (filters.importanceRange.max && importance > filters.importanceRange.max) continue;
436
+ }
437
+
438
+ if (filters.dateRange) {
439
+ const created = new Date(entry.metadata.createdTimestamp || 0);
440
+ if (filters.dateRange.start && created < filters.dateRange.start) continue;
441
+ if (filters.dateRange.end && created > filters.dateRange.end) continue;
442
+ }
443
+ }
444
+
445
+ results.push({
446
+ memoryId: entry.memoryId,
447
+ blobId: entry.blobId,
448
+ metadata: entry.metadata,
449
+ similarity: 1.0, // No similarity for direct listing
450
+ relevanceScore: entry.metadata.importance || 5,
451
+ extractedAt: entry.indexedAt
452
+ });
453
+ }
454
+
455
+ // Sort by importance and creation time
456
+ results.sort((a, b) => {
457
+ const importanceDiff = (b.metadata.importance || 5) - (a.metadata.importance || 5);
458
+ if (importanceDiff !== 0) return importanceDiff;
459
+ return (b.metadata.createdTimestamp || 0) - (a.metadata.createdTimestamp || 0);
460
+ });
461
+
462
+ // Apply limit
463
+ if (filters?.limit) {
464
+ return results.slice(0, filters.limit);
465
+ }
466
+
467
+ return results;
468
+ }
469
+
470
+ /**
471
+ * Remove memory from index
472
+ */
473
+ async removeMemory(userAddress: string, memoryId: string): Promise<boolean> {
474
+ try {
475
+ const userMemories = this.memoryIndex.get(userAddress);
476
+ if (!userMemories) {
477
+ return false;
478
+ }
479
+
480
+ const entry = userMemories.get(memoryId);
481
+ if (!entry) {
482
+ return false;
483
+ }
484
+
485
+ // Remove from HNSW index (if supported)
486
+ // Note: hnswlib-node doesn't support deletion, so we just mark as removed
487
+
488
+ // Remove from memory index
489
+ userMemories.delete(memoryId);
490
+
491
+ console.log(`✅ Memory removed from index: ${memoryId}`);
492
+ return true;
493
+
494
+ } catch (error) {
495
+ console.error('❌ Failed to remove memory from index:', error);
496
+ return false;
497
+ }
498
+ }
499
+
500
+ /**
501
+ * Get index statistics for a user
502
+ */
503
+ getIndexStats(userAddress: string): {
504
+ totalMemories: number;
505
+ categoryCounts: Record<string, number>;
506
+ importanceDistribution: Record<number, number>;
507
+ averageImportance: number;
508
+ oldestMemory: Date | null;
509
+ newestMemory: Date | null;
510
+ indexSize: number;
511
+ } {
512
+ const userMemories = this.memoryIndex.get(userAddress);
513
+ if (!userMemories) {
514
+ return {
515
+ totalMemories: 0,
516
+ categoryCounts: {},
517
+ importanceDistribution: {},
518
+ averageImportance: 0,
519
+ oldestMemory: null,
520
+ newestMemory: null,
521
+ indexSize: 0
522
+ };
523
+ }
524
+
525
+ const categoryCounts: Record<string, number> = {};
526
+ const importanceDistribution: Record<number, number> = {};
527
+ let totalImportance = 0;
528
+ let oldestMemory: Date | null = null;
529
+ let newestMemory: Date | null = null;
530
+
531
+ for (const entry of userMemories.values()) {
532
+ // Categories
533
+ categoryCounts[entry.metadata.category] = (categoryCounts[entry.metadata.category] || 0) + 1;
534
+
535
+ // Importance
536
+ const importance = entry.metadata.importance || 5;
537
+ importanceDistribution[importance] = (importanceDistribution[importance] || 0) + 1;
538
+ totalImportance += importance;
539
+
540
+ // Dates
541
+ const created = new Date(entry.metadata.createdTimestamp || 0);
542
+ if (!oldestMemory || created < oldestMemory) {
543
+ oldestMemory = created;
544
+ }
545
+ if (!newestMemory || created > newestMemory) {
546
+ newestMemory = created;
547
+ }
548
+ }
549
+
550
+ return {
551
+ totalMemories: userMemories.size,
552
+ categoryCounts,
553
+ importanceDistribution,
554
+ averageImportance: userMemories.size > 0 ? totalImportance / userMemories.size : 0,
555
+ oldestMemory,
556
+ newestMemory,
557
+ indexSize: userMemories.size
558
+ };
559
+ }
560
+
561
+ /**
562
+ * Flush pending operations and save index
563
+ */
564
+ async flush(userAddress: string): Promise<void> {
565
+ const hnswService = await this.getHnswService();
566
+ await hnswService.flushBatch(userAddress);
567
+ console.log(`✅ Memory index flushed for user ${userAddress}`);
568
+ }
569
+
570
+ /**
571
+ * Load index from storage
572
+ */
573
+ async loadIndex(userAddress: string, indexBlobId?: string): Promise<void> {
574
+ const hnswService = await this.getHnswService();
575
+ const loaded = await hnswService.loadIndex(userAddress);
576
+ if (loaded) {
577
+ console.log(`✅ Memory index loaded for user ${userAddress}`);
578
+ }
579
+ }
580
+
581
+ /**
582
+ * Save index to storage
583
+ */
584
+ async saveIndex(userAddress: string): Promise<void> {
585
+ const hnswService = await this.getHnswService();
586
+ await hnswService.saveIndex(userAddress);
587
+ console.log(`✅ Memory index saved for user ${userAddress}`);
588
+ }
589
+
590
+ /**
591
+ * Clear user's index
592
+ */
593
+ async clearUserIndex(userAddress: string): Promise<void> {
594
+ this.memoryIndex.delete(userAddress);
595
+ const hnswService = await this.getHnswService();
596
+ await hnswService.deleteIndex(userAddress);
597
+ console.log(`✅ Memory index cleared for user ${userAddress}`);
598
+ }
599
+
600
+ /**
601
+ * Get overall service statistics
602
+ */
603
+ async getServiceStats() {
604
+ const totalMemories = Array.from(this.memoryIndex.values())
605
+ .reduce((sum, userMemories) => sum + userMemories.size, 0);
606
+
607
+ let hnswStats = null;
608
+ if (this.hnswService) {
609
+ hnswStats = this.hnswService.getBatchStats();
610
+ }
611
+
612
+ return {
613
+ totalUsers: this.memoryIndex.size,
614
+ totalMemories,
615
+ hnswStats,
616
+ hasEmbeddingService: !!this.embeddingService,
617
+ hasStorageService: !!this.storageService
618
+ };
619
+ }
620
+
621
+ /**
622
+ * Destroy service and cleanup resources
623
+ */
624
+ destroy(): void {
625
+ if (this.hnswService) {
626
+ this.hnswService.destroy();
627
+ }
628
+ this.hnswService = null;
629
+ this.hnswServicePromise = null;
630
+ this.memoryIndex.clear();
631
+ console.log('✅ MemoryIndexService destroyed');
632
+ }
633
+
634
+ // ==================== PRIVATE HELPER METHODS ====================
635
+
636
+ private createMemoryFilter(query: MemorySearchQuery) {
637
+ return (metadata: any) => {
638
+ // Category filter
639
+ if (query.categories && query.categories.length > 0) {
640
+ if (!query.categories.includes(metadata.category)) {
641
+ return false;
642
+ }
643
+ }
644
+
645
+ // Date range filter
646
+ if (query.dateRange) {
647
+ const created = new Date(metadata.createdTimestamp || 0);
648
+ if (query.dateRange.start && created < query.dateRange.start) {
649
+ return false;
650
+ }
651
+ if (query.dateRange.end && created > query.dateRange.end) {
652
+ return false;
653
+ }
654
+ }
655
+
656
+ // Importance range filter
657
+ if (query.importanceRange) {
658
+ const importance = metadata.importance || 5;
659
+ if (query.importanceRange.min && importance < query.importanceRange.min) {
660
+ return false;
661
+ }
662
+ if (query.importanceRange.max && importance > query.importanceRange.max) {
663
+ return false;
664
+ }
665
+ }
666
+
667
+ // Tags filter (search in custom metadata)
668
+ if (query.tags && query.tags.length > 0) {
669
+ const metadataText = JSON.stringify(metadata).toLowerCase();
670
+ const hasAnyTag = query.tags.some(tag =>
671
+ metadataText.includes(tag.toLowerCase())
672
+ );
673
+ if (!hasAnyTag) {
674
+ return false;
675
+ }
676
+ }
677
+
678
+ return true;
679
+ };
680
+ }
681
+
682
+ // ==================== HNSW HELPER METHODS ====================
683
+
684
+ /**
685
+ * Create metadata filter for HNSW search
686
+ */
687
+ private createMetadataFilter(query: MemorySearchQuery): ((metadata: any) => boolean) | undefined {
688
+ if (!query.categories && !query.dateRange && !query.importanceRange && !query.tags) {
689
+ return undefined;
690
+ }
691
+
692
+ return (metadata: any) => {
693
+ // Category filter
694
+ if (query.categories && query.categories.length > 0) {
695
+ if (!query.categories.includes(metadata.category)) {
696
+ return false;
697
+ }
698
+ }
699
+
700
+ // Date range filter
701
+ if (query.dateRange) {
702
+ const created = new Date(metadata.createdTimestamp || 0);
703
+ if (query.dateRange.start && created < query.dateRange.start) {
704
+ return false;
705
+ }
706
+ if (query.dateRange.end && created > query.dateRange.end) {
707
+ return false;
708
+ }
709
+ }
710
+
711
+ // Importance range filter
712
+ if (query.importanceRange) {
713
+ const importance = metadata.importance || 5;
714
+ if (query.importanceRange.min && importance < query.importanceRange.min) {
715
+ return false;
716
+ }
717
+ if (query.importanceRange.max && importance > query.importanceRange.max) {
718
+ return false;
719
+ }
720
+ }
721
+
722
+ // Tags filter
723
+ if (query.tags && query.tags.length > 0) {
724
+ const metadataText = JSON.stringify(metadata).toLowerCase();
725
+ const hasAnyTag = query.tags.some(tag =>
726
+ metadataText.includes(tag.toLowerCase())
727
+ );
728
+ if (!hasAnyTag) {
729
+ return false;
730
+ }
731
+ }
732
+
733
+ return true;
734
+ };
735
+ }
736
+
737
+ /**
738
+ * Update index statistics for a user
739
+ */
740
+ private updateIndexStats(userAddress: string): void {
741
+ let stats = this.indexStats.get(userAddress);
742
+ if (!stats) {
743
+ stats = {
744
+ totalVectors: 0,
745
+ avgSimilarity: 0,
746
+ searchLatency: [],
747
+ lastOptimized: new Date()
748
+ };
749
+ this.indexStats.set(userAddress, stats);
750
+ }
751
+ stats.totalVectors++;
752
+ }
753
+
754
+ /**
755
+ * Enhanced relevance scoring with multiple factors
756
+ */
757
+ private calculateAdvancedRelevanceScore(
758
+ similarity: number,
759
+ metadata: MemoryMetadata,
760
+ query: MemorySearchQuery,
761
+ queryVector: number[],
762
+ documentVector: number[]
763
+ ): number {
764
+ let score = similarity * 0.7; // Base similarity weight (increased)
765
+
766
+ // Importance boost
767
+ const importance = metadata.importance || 5;
768
+ score += (importance - 5) * 0.02; // -0.1 to +0.1 boost
769
+
770
+ // Category exact match boost
771
+ if (query.categories && query.categories.includes(metadata.category)) {
772
+ score += 0.15;
773
+ }
774
+
775
+ // Topic relevance boost
776
+ if (query.query && metadata.topic) {
777
+ const queryLower = query.query.toLowerCase();
778
+ const topicLower = metadata.topic.toLowerCase();
779
+ if (queryLower.includes(topicLower) || topicLower.includes(queryLower)) {
780
+ score += 0.1;
781
+ }
782
+ }
783
+
784
+ // Vector quality boost (based on vector magnitude)
785
+ const vectorMagnitude = this.calculateVectorMagnitude(documentVector);
786
+ if (vectorMagnitude > 0.1) { // Well-formed embedding
787
+ score += 0.05;
788
+ }
789
+
790
+ // Semantic consistency boost (cosine similarity in different metric)
791
+ const semanticConsistency = this.calculateSemanticConsistency(queryVector, documentVector);
792
+ score += semanticConsistency * 0.1;
793
+
794
+ return Math.min(1.0, Math.max(0.0, score));
795
+ }
796
+
797
+ /**
798
+ * Calculate recency boost based on creation timestamp
799
+ */
800
+ private calculateRecencyBoost(createdTimestamp: number): number {
801
+ const now = Date.now();
802
+ const ageInDays = (now - createdTimestamp) / (1000 * 60 * 60 * 24);
803
+
804
+ // Exponential decay: more recent = higher boost
805
+ if (ageInDays < 1) return 1.0; // Last day: full boost
806
+ if (ageInDays < 7) return 0.8; // Last week: 80% boost
807
+ if (ageInDays < 30) return 0.5; // Last month: 50% boost
808
+ if (ageInDays < 90) return 0.2; // Last quarter: 20% boost
809
+ return 0.0; // Older: no boost
810
+ }
811
+
812
+ /**
813
+ * Diversify search results to avoid clustering
814
+ */
815
+ private diversifyResults(results: MemorySearchResult[], diversityFactor: number): MemorySearchResult[] {
816
+ if (diversityFactor <= 0 || results.length <= 1) return results;
817
+
818
+ const diversified: MemorySearchResult[] = [];
819
+ const remaining = [...results];
820
+
821
+ // Always include the top result
822
+ if (remaining.length > 0) {
823
+ diversified.push(remaining.shift()!);
824
+ }
825
+
826
+ while (remaining.length > 0 && diversified.length < results.length * 0.8) {
827
+ let bestIndex = 0;
828
+ let bestScore = 0;
829
+
830
+ for (let i = 0; i < remaining.length; i++) {
831
+ const candidate = remaining[i];
832
+
833
+ // Calculate diversity score (distance from already selected results)
834
+ let minSimilarity = 1.0;
835
+ for (const selected of diversified) {
836
+ const similarity = candidate.similarity; // Could enhance with actual vector similarity
837
+ minSimilarity = Math.min(minSimilarity, similarity);
838
+ }
839
+
840
+ // Combine relevance and diversity
841
+ const diversityScore = candidate.relevanceScore * (1 - diversityFactor) +
842
+ (1 - minSimilarity) * diversityFactor;
843
+
844
+ if (diversityScore > bestScore) {
845
+ bestScore = diversityScore;
846
+ bestIndex = i;
847
+ }
848
+ }
849
+
850
+ diversified.push(remaining.splice(bestIndex, 1)[0]);
851
+ }
852
+
853
+ return diversified;
854
+ }
855
+
856
+ /**
857
+ * Update search performance statistics
858
+ */
859
+ private updateSearchStats(userAddress: string, latency: number): void {
860
+ let stats = this.indexStats.get(userAddress);
861
+ if (!stats) {
862
+ stats = {
863
+ totalVectors: 0,
864
+ avgSimilarity: 0,
865
+ searchLatency: [],
866
+ lastOptimized: new Date()
867
+ };
868
+ this.indexStats.set(userAddress, stats);
869
+ }
870
+
871
+ stats.searchLatency.push(latency);
872
+
873
+ // Keep only last 100 latency measurements
874
+ if (stats.searchLatency.length > 100) {
875
+ stats.searchLatency = stats.searchLatency.slice(-100);
876
+ }
877
+ }
878
+
879
+ /**
880
+ * Calculate vector magnitude
881
+ */
882
+ private calculateVectorMagnitude(vector: number[]): number {
883
+ let sum = 0;
884
+ for (const val of vector) {
885
+ sum += val * val;
886
+ }
887
+ return Math.sqrt(sum);
888
+ }
889
+
890
+ /**
891
+ * Calculate cosine similarity between two vectors
892
+ * Used for semantic consistency scoring
893
+ */
894
+ private cosineSimilarity(a: number[], b: number[]): number {
895
+ if (a.length !== b.length) return 0;
896
+
897
+ let dotProduct = 0;
898
+ let normA = 0;
899
+ let normB = 0;
900
+
901
+ for (let i = 0; i < a.length; i++) {
902
+ dotProduct += a[i] * b[i];
903
+ normA += a[i] * a[i];
904
+ normB += b[i] * b[i];
905
+ }
906
+
907
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
908
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
909
+ }
910
+
911
+ /**
912
+ * Calculate semantic consistency score
913
+ */
914
+ private calculateSemanticConsistency(queryVector: number[], documentVector: number[]): number {
915
+ // Calculate angle between vectors (semantic consistency)
916
+ const similarity = this.cosineSimilarity(queryVector, documentVector);
917
+ const angle = Math.acos(Math.max(-1, Math.min(1, similarity)));
918
+
919
+ // Convert angle to consistency score (0-1, where 1 is perfect alignment)
920
+ return 1 - (angle / Math.PI);
921
+ }
922
+ }