@cmdoss/memwal-sdk 0.7.0 → 0.9.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 (229) hide show
  1. package/README.md +427 -41
  2. package/dist/client/ClientMemoryManager.js +2 -2
  3. package/dist/client/ClientMemoryManager.js.map +1 -1
  4. package/dist/client/PersonalDataWallet.d.ts.map +1 -1
  5. package/dist/client/SimplePDWClient.d.ts +88 -1
  6. package/dist/client/SimplePDWClient.d.ts.map +1 -1
  7. package/dist/client/SimplePDWClient.js +102 -11
  8. package/dist/client/SimplePDWClient.js.map +1 -1
  9. package/dist/client/namespaces/IndexNamespace.d.ts +1 -1
  10. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
  11. package/dist/client/namespaces/IndexNamespace.js +7 -4
  12. package/dist/client/namespaces/IndexNamespace.js.map +1 -1
  13. package/dist/client/namespaces/MemoryNamespace.d.ts +45 -0
  14. package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
  15. package/dist/client/namespaces/MemoryNamespace.js +292 -46
  16. package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
  17. package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts +215 -0
  18. package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts.map +1 -0
  19. package/dist/client/namespaces/consolidated/AdvancedNamespace.js +214 -0
  20. package/dist/client/namespaces/consolidated/AdvancedNamespace.js.map +1 -0
  21. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +12 -2
  22. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
  23. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +40 -2
  24. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
  25. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +67 -2
  26. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
  27. package/dist/client/namespaces/consolidated/StorageNamespace.js +549 -16
  28. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
  29. package/dist/client/namespaces/consolidated/index.d.ts +1 -0
  30. package/dist/client/namespaces/consolidated/index.d.ts.map +1 -1
  31. package/dist/client/namespaces/consolidated/index.js +1 -0
  32. package/dist/client/namespaces/consolidated/index.js.map +1 -1
  33. package/dist/config/ConfigurationHelper.js +61 -61
  34. package/dist/config/defaults.d.ts.map +1 -1
  35. package/dist/config/defaults.js +11 -6
  36. package/dist/config/defaults.js.map +1 -1
  37. package/dist/core/types/index.d.ts +4 -0
  38. package/dist/core/types/index.d.ts.map +1 -1
  39. package/dist/core/types/index.js.map +1 -1
  40. package/dist/graph/GraphService.js +20 -20
  41. package/dist/infrastructure/seal/EncryptionService.d.ts +9 -5
  42. package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -1
  43. package/dist/infrastructure/seal/EncryptionService.js +37 -15
  44. package/dist/infrastructure/seal/EncryptionService.js.map +1 -1
  45. package/dist/infrastructure/seal/SealService.d.ts +13 -5
  46. package/dist/infrastructure/seal/SealService.d.ts.map +1 -1
  47. package/dist/infrastructure/seal/SealService.js +36 -34
  48. package/dist/infrastructure/seal/SealService.js.map +1 -1
  49. package/dist/infrastructure/walrus/WalrusStorageService.d.ts +6 -0
  50. package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -1
  51. package/dist/infrastructure/walrus/WalrusStorageService.js +23 -4
  52. package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -1
  53. package/dist/langchain/createPDWRAG.js +30 -30
  54. package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -1
  55. package/dist/retrieval/MemoryDecryptionPipeline.js +2 -1
  56. package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -1
  57. package/dist/services/CapabilityService.d.ts.map +1 -1
  58. package/dist/services/CapabilityService.js +30 -14
  59. package/dist/services/CapabilityService.js.map +1 -1
  60. package/dist/services/CrossContextPermissionService.d.ts.map +1 -1
  61. package/dist/services/CrossContextPermissionService.js +9 -7
  62. package/dist/services/CrossContextPermissionService.js.map +1 -1
  63. package/dist/services/EmbeddingService.d.ts +9 -0
  64. package/dist/services/EmbeddingService.d.ts.map +1 -1
  65. package/dist/services/EmbeddingService.js +31 -10
  66. package/dist/services/EmbeddingService.js.map +1 -1
  67. package/dist/services/EncryptionService.d.ts.map +1 -1
  68. package/dist/services/EncryptionService.js +6 -5
  69. package/dist/services/EncryptionService.js.map +1 -1
  70. package/dist/services/GeminiAIService.js +309 -309
  71. package/dist/services/MemoryIndexService.d.ts +2 -0
  72. package/dist/services/MemoryIndexService.d.ts.map +1 -1
  73. package/dist/services/MemoryIndexService.js +11 -4
  74. package/dist/services/MemoryIndexService.js.map +1 -1
  75. package/dist/services/StorageService.d.ts +1 -0
  76. package/dist/services/StorageService.d.ts.map +1 -1
  77. package/dist/services/StorageService.js +60 -10
  78. package/dist/services/StorageService.js.map +1 -1
  79. package/dist/services/TransactionService.d.ts +20 -0
  80. package/dist/services/TransactionService.d.ts.map +1 -1
  81. package/dist/services/TransactionService.js +43 -0
  82. package/dist/services/TransactionService.js.map +1 -1
  83. package/dist/services/VectorService.js +1 -1
  84. package/dist/services/VectorService.js.map +1 -1
  85. package/dist/services/ViewService.js +2 -2
  86. package/dist/services/ViewService.js.map +1 -1
  87. package/dist/vector/BrowserHnswIndexService.js +1 -1
  88. package/dist/vector/BrowserHnswIndexService.js.map +1 -1
  89. package/dist/vector/HnswWasmService.js +1 -1
  90. package/dist/vector/HnswWasmService.js.map +1 -1
  91. package/dist/vector/NodeHnswService.js +1 -1
  92. package/dist/vector/NodeHnswService.js.map +1 -1
  93. package/package.json +1 -1
  94. package/src/access/PermissionService.ts +635 -635
  95. package/src/access/index.ts +8 -8
  96. package/src/aggregation/AggregationService.ts +389 -389
  97. package/src/aggregation/index.ts +8 -8
  98. package/src/ai-sdk/PDWVectorStore.ts +715 -715
  99. package/src/ai-sdk/index.ts +65 -65
  100. package/src/ai-sdk/tools.ts +460 -460
  101. package/src/ai-sdk/types.ts +404 -404
  102. package/src/batch/BatchManager.ts +597 -597
  103. package/src/batch/BatchingService.ts +429 -429
  104. package/src/batch/MemoryProcessingCache.ts +492 -492
  105. package/src/batch/index.ts +30 -30
  106. package/src/browser.ts +200 -200
  107. package/src/client/ClientMemoryManager.ts +987 -987
  108. package/src/client/PersonalDataWallet.ts +345 -345
  109. package/src/client/SimplePDWClient.ts +1369 -1237
  110. package/src/client/factory.ts +154 -154
  111. package/src/client/namespaces/AnalyticsNamespace.ts +377 -377
  112. package/src/client/namespaces/BatchNamespace.ts +356 -356
  113. package/src/client/namespaces/CacheNamespace.ts +123 -123
  114. package/src/client/namespaces/CapabilityNamespace.ts +217 -217
  115. package/src/client/namespaces/ClassifyNamespace.ts +169 -169
  116. package/src/client/namespaces/ContextNamespace.ts +297 -297
  117. package/src/client/namespaces/EmbeddingsNamespace.ts +99 -99
  118. package/src/client/namespaces/EncryptionNamespace.ts +221 -221
  119. package/src/client/namespaces/GraphNamespace.ts +468 -468
  120. package/src/client/namespaces/IndexNamespace.ts +364 -361
  121. package/src/client/namespaces/MemoryNamespace.ts +1569 -1272
  122. package/src/client/namespaces/PermissionsNamespace.ts +254 -254
  123. package/src/client/namespaces/PipelineNamespace.ts +220 -220
  124. package/src/client/namespaces/SearchNamespace.ts +1049 -1049
  125. package/src/client/namespaces/StorageNamespace.ts +458 -458
  126. package/src/client/namespaces/TxNamespace.ts +260 -260
  127. package/src/client/namespaces/WalletNamespace.ts +243 -243
  128. package/src/client/namespaces/consolidated/AINamespace.ts +449 -449
  129. package/src/client/namespaces/consolidated/AdvancedNamespace.ts +264 -0
  130. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -564
  131. package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
  132. package/src/client/namespaces/consolidated/StorageNamespace.ts +1141 -497
  133. package/src/client/namespaces/consolidated/index.ts +41 -39
  134. package/src/client/signers/DappKitSigner.ts +207 -207
  135. package/src/client/signers/KeypairSigner.ts +108 -108
  136. package/src/client/signers/UnifiedSigner.ts +110 -110
  137. package/src/client/signers/WalletAdapterSigner.ts +159 -159
  138. package/src/client/signers/index.ts +26 -26
  139. package/src/config/ConfigurationHelper.ts +412 -412
  140. package/src/config/defaults.ts +56 -51
  141. package/src/config/index.ts +8 -8
  142. package/src/config/validation.ts +70 -70
  143. package/src/core/index.ts +14 -14
  144. package/src/core/interfaces/IService.ts +307 -307
  145. package/src/core/interfaces/index.ts +8 -8
  146. package/src/core/types/capability.ts +297 -297
  147. package/src/core/types/index.ts +874 -870
  148. package/src/core/types/wallet.ts +270 -270
  149. package/src/core/types.ts +9 -9
  150. package/src/core/wallet.ts +222 -222
  151. package/src/embedding/index.ts +19 -19
  152. package/src/embedding/types.ts +357 -357
  153. package/src/errors/index.ts +602 -602
  154. package/src/errors/recovery.ts +461 -461
  155. package/src/errors/validation.ts +567 -567
  156. package/src/generated/pdw/capability.ts +319 -319
  157. package/src/generated/pdw/deps/sui/object.ts +12 -12
  158. package/src/generated/pdw/deps/sui/vec_map.ts +32 -32
  159. package/src/generated/pdw/memory.ts +1087 -1087
  160. package/src/generated/pdw/wallet.ts +123 -123
  161. package/src/generated/utils/index.ts +159 -159
  162. package/src/graph/GraphService.ts +887 -887
  163. package/src/graph/KnowledgeGraphManager.ts +728 -728
  164. package/src/graph/index.ts +25 -25
  165. package/src/index.ts +498 -498
  166. package/src/infrastructure/index.ts +22 -22
  167. package/src/infrastructure/seal/EncryptionService.ts +628 -603
  168. package/src/infrastructure/seal/SealService.ts +613 -615
  169. package/src/infrastructure/seal/index.ts +9 -9
  170. package/src/infrastructure/sui/BlockchainManager.ts +627 -627
  171. package/src/infrastructure/sui/SuiService.ts +888 -888
  172. package/src/infrastructure/sui/index.ts +9 -9
  173. package/src/infrastructure/walrus/StorageManager.ts +604 -604
  174. package/src/infrastructure/walrus/WalrusStorageService.ts +637 -612
  175. package/src/infrastructure/walrus/index.ts +9 -9
  176. package/src/langchain/PDWEmbeddings.ts +145 -145
  177. package/src/langchain/PDWVectorStore.ts +456 -456
  178. package/src/langchain/createPDWRAG.ts +303 -303
  179. package/src/langchain/index.ts +47 -47
  180. package/src/permissions/ConsentRepository.browser.ts +249 -249
  181. package/src/permissions/ConsentRepository.ts +364 -364
  182. package/src/permissions/index.ts +9 -9
  183. package/src/pipeline/MemoryPipeline.ts +862 -862
  184. package/src/pipeline/PipelineManager.ts +683 -683
  185. package/src/pipeline/index.ts +26 -26
  186. package/src/retrieval/AdvancedSearchService.ts +629 -629
  187. package/src/retrieval/MemoryAnalyticsService.ts +711 -711
  188. package/src/retrieval/MemoryDecryptionPipeline.ts +825 -824
  189. package/src/retrieval/MemoryRetrievalService.ts +904 -904
  190. package/src/retrieval/index.ts +42 -42
  191. package/src/services/BatchService.ts +352 -352
  192. package/src/services/CapabilityService.ts +464 -448
  193. package/src/services/ClassifierService.ts +465 -465
  194. package/src/services/CrossContextPermissionService.ts +486 -484
  195. package/src/services/EmbeddingService.ts +796 -771
  196. package/src/services/EncryptionService.ts +712 -711
  197. package/src/services/GeminiAIService.ts +753 -753
  198. package/src/services/IndexManager.ts +977 -977
  199. package/src/services/MemoryIndexService.ts +1009 -1003
  200. package/src/services/MemoryService.ts +369 -369
  201. package/src/services/QueryService.ts +890 -890
  202. package/src/services/StorageService.ts +1182 -1126
  203. package/src/services/TransactionService.ts +838 -790
  204. package/src/services/VectorService.ts +462 -462
  205. package/src/services/ViewService.ts +484 -484
  206. package/src/services/index.ts +25 -25
  207. package/src/services/storage/BlobAttributesManager.ts +333 -333
  208. package/src/services/storage/KnowledgeGraphManager.ts +425 -425
  209. package/src/services/storage/MemorySearchManager.ts +387 -387
  210. package/src/services/storage/QuiltBatchManager.ts +1130 -1130
  211. package/src/services/storage/WalrusMetadataManager.ts +268 -268
  212. package/src/services/storage/WalrusStorageManager.ts +287 -287
  213. package/src/services/storage/index.ts +57 -57
  214. package/src/types/index.ts +13 -13
  215. package/src/utils/LRUCache.ts +378 -378
  216. package/src/utils/index.ts +76 -76
  217. package/src/utils/memoryIndexOnChain.ts +507 -507
  218. package/src/utils/rebuildIndex.ts +290 -290
  219. package/src/utils/rebuildIndexNode.ts +771 -771
  220. package/src/vector/BrowserHnswIndexService.ts +758 -758
  221. package/src/vector/HnswWasmService.ts +731 -731
  222. package/src/vector/IHnswService.ts +233 -233
  223. package/src/vector/NodeHnswService.ts +833 -833
  224. package/src/vector/VectorManager.ts +478 -478
  225. package/src/vector/createHnswService.ts +135 -135
  226. package/src/vector/index.ts +56 -56
  227. package/src/wallet/ContextWalletService.ts +656 -656
  228. package/src/wallet/MainWalletService.ts +317 -317
  229. package/src/wallet/index.ts +17 -17
@@ -40,10 +40,10 @@ export class IndexNamespace {
40
40
  * This method is provided for explicit initialization or VectorService compatibility.
41
41
  *
42
42
  * @param spaceId - Index space identifier (e.g., userAddress)
43
- * @param dimension - Vector dimension (default: 3072)
43
+ * @param dimension - Vector dimension (default: 768)
44
44
  * @param config - Optional HNSW config (used by VectorService)
45
45
  */
46
- async create(spaceId, dimension = 3072, config) {
46
+ async create(spaceId, dimension = 768, config) {
47
47
  const { type, service } = this.getService();
48
48
  if (type === 'memoryIndex') {
49
49
  // MemoryIndexService auto-creates indices on first indexMemory() call
@@ -68,8 +68,11 @@ export class IndexNamespace {
68
68
  const { type, service } = this.getService();
69
69
  if (type === 'memoryIndex') {
70
70
  // MemoryIndexService uses batched add internally via HnswWasmService
71
- // Option A+: Pass isEncrypted to control content storage
72
- await service.indexMemory(spaceId, vectorId.toString(), metadata?.blobId || '', metadata?.content || '', metadata || {}, vector, { isEncrypted: metadata?.isEncrypted ?? false });
71
+ // Option A+: Pass isEncrypted and forceStoreContent to control content storage
72
+ await service.indexMemory(spaceId, vectorId.toString(), metadata?.blobId || '', metadata?.content || '', metadata || {}, vector, {
73
+ isEncrypted: metadata?.isEncrypted ?? false,
74
+ forceStoreContent: metadata?.forceStoreContent ?? false
75
+ });
73
76
  }
74
77
  else {
75
78
  await service.addVector(spaceId, vectorId, vector, metadata);
@@ -1 +1 @@
1
- {"version":3,"file":"IndexNamespace.js","sourceRoot":"","sources":["../../../src/client/namespaces/IndexNamespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexNamespace.js","sourceRoot":"","sources":["../../../src/client/namespaces/IndexNamespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAyBH;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACzB,YAAoB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAAG,CAAC;IAElD;;OAEG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,aAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,YAAoB,GAAG,EAAE,MAAoB;QACzE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,sEAAsE;YACtE,sDAAsD;YACtD,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,oDAAoD,SAAS,GAAG,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,MAAgB,EAAE,QAAc;QAC3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,qEAAqE;YACrE,+EAA+E;YAC/E,MAAM,OAAO,CAAC,WAAW,CACvB,OAAO,EACP,QAAQ,CAAC,QAAQ,EAAE,EACnB,QAAQ,EAAE,MAAM,IAAI,EAAE,EACtB,QAAQ,EAAE,OAAO,IAAI,EAAE,EACvB,QAAQ,IAAI,EAAE,EACd,MAAM,EACN;gBACE,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,KAAK;gBAC3C,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,IAAI,KAAK;aACxD,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,WAAqB,EACrB,OAA+D;QAE/D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC;gBAC3C,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,OAAO;gBACpB,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE;gBACnB,SAAS,EAAE,OAAO,EAAE,SAAS;aAC9B,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC;gBACjD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;aACtD,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC1E,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAe;QACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7C,8FAA8F;YAC9F,OAAO;gBACL,YAAY,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC;gBACtC,SAAS,EAAE,IAAI,EAAE,kDAAkD;gBACnE,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,KAAK,EAAE,4CAA4C;gBAChE,YAAY,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC;aAC1D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAI,OAAe,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO;gBACL,YAAY,EAAE,YAAY;gBAC1B,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,KAAK;gBAClB,YAAY;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,6DAA6D;YAC7D,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,gDAAgD;YAChD,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,MAAe;QACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,MAAc;QAClD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,IAAI,gBAAgB,IAAI,OAAO,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAAe;QAC7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,IAAI,iBAAiB,IAAI,OAAO,EAAE,CAAC;YAC3D,OAAO,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe;QACb,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,IAAI,iBAAiB,IAAI,OAAO,EAAE,CAAC;YAC3D,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAe;QACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACL,OAAe,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,+CAA+C;IACjD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,8BAA8B;YAC9B,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,sCAAsC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,2CAA2C,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF"}
@@ -21,6 +21,10 @@ export interface Memory {
21
21
  embedding?: number[];
22
22
  metadata?: Record<string, any>;
23
23
  encrypted?: boolean;
24
+ /** Capability ID for decryption (v2.2) */
25
+ memoryCapId?: string;
26
+ /** Key ID (hex string) for decryption (v2.2) */
27
+ keyId?: string;
24
28
  createdAt: number;
25
29
  updatedAt?: number;
26
30
  }
@@ -32,6 +36,8 @@ export interface CreateMemoryOptions {
32
36
  importance?: number;
33
37
  topic?: string;
34
38
  metadata?: Record<string, any>;
39
+ /** Pre-generated embedding (if provided, skips embedding generation) */
40
+ embedding?: number[];
35
41
  onProgress?: (stage: string, percent: number) => void;
36
42
  }
37
43
  /**
@@ -65,6 +71,19 @@ export interface ListMemoryOptions {
65
71
  sortBy?: 'date' | 'importance' | 'relevance';
66
72
  order?: 'asc' | 'desc';
67
73
  }
74
+ /**
75
+ * Options for searching memories
76
+ */
77
+ export interface SearchMemoryOptions {
78
+ /** Maximum number of results (default: 10) */
79
+ limit?: number;
80
+ /** Minimum similarity threshold 0-1 (default: 0.5) */
81
+ threshold?: number;
82
+ /** Filter by category */
83
+ category?: string;
84
+ /** Include full content in results (default: true) */
85
+ includeContent?: boolean;
86
+ }
68
87
  /**
69
88
  * Memory context with related memories
70
89
  */
@@ -174,6 +193,32 @@ export declare class MemoryNamespace {
174
193
  * @returns Array of memories
175
194
  */
176
195
  list(options?: ListMemoryOptions): Promise<Memory[]>;
196
+ /**
197
+ * Search memories using natural language query
198
+ *
199
+ * Unified search that:
200
+ * 1. Converts query text to embedding
201
+ * 2. Performs vector similarity search
202
+ * 3. Returns ranked results with content
203
+ *
204
+ * @param query - Natural language search query
205
+ * @param options - Search options (limit, threshold, category)
206
+ * @returns Array of matching memories sorted by relevance
207
+ *
208
+ * @example
209
+ * ```typescript
210
+ * // Simple search
211
+ * const results = await pdw.memory.search('meeting notes');
212
+ *
213
+ * // With options
214
+ * const results = await pdw.memory.search('TypeScript tips', {
215
+ * limit: 5,
216
+ * category: 'note',
217
+ * threshold: 0.7
218
+ * });
219
+ * ```
220
+ */
221
+ search(query: string, options?: SearchMemoryOptions): Promise<Memory[]>;
177
222
  /**
178
223
  * Create multiple memories in batch using Walrus Quilt
179
224
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNamespace.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/MemoryNamespace.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAC7C,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,gBAAgB;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2NjF;;;;;OAKG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmG7E;;;;;;;;;OASG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C;;;;;OAKG;IACG,IAAI,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC;IAiNpB;;;;OAIG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CACf,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,GACD,OAAO,CAAC,MAAM,EAAE,CAAC;IAkCpB;;;;;;OAMG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GACjE,OAAO,CAAC,aAAa,CAAC;IAoEzB;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+CpE;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,GAAE;QACpB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACxB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,MAAM,CAAC;IA+DxB;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CA6GH"}
1
+ {"version":3,"file":"MemoryNamespace.d.ts","sourceRoot":"","sources":["../../../src/client/namespaces/MemoryNamespace.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ export class MemoryNamespace {
46
46
  * ```
47
47
  */
48
48
  async create(content, options = {}) {
49
- const { importance = 5, topic, metadata, onProgress } = options;
49
+ const { importance = 5, topic, metadata, onProgress, embedding: preGeneratedEmbedding } = options;
50
50
  let category = options.category || 'general';
51
51
  try {
52
52
  // Validate content
@@ -70,32 +70,61 @@ export class MemoryNamespace {
70
70
  console.warn('Auto-classification failed, using default category:', classifyError);
71
71
  }
72
72
  }
73
- // 2. Generate embedding
74
- let embedding;
75
- if (this.services.embedding) {
73
+ // 2. Use pre-generated embedding or generate new one
74
+ let embedding = preGeneratedEmbedding;
75
+ if (embedding && embedding.length > 0) {
76
+ console.log(`✅ Using pre-generated embedding: ${embedding.length}D`);
77
+ }
78
+ else if (this.services.embedding) {
76
79
  onProgress?.('generating embedding', 20);
77
- const embResult = await this.services.embedding.embedText({
78
- text: content
79
- });
80
+ const embResult = await this.services.embedding.embedText({ text: content });
80
81
  embedding = embResult.vector;
82
+ console.log(`✅ Embedding generated: ${embedding?.length || 0}D`);
81
83
  }
82
- // 3. Encrypt (if enabled)
84
+ else {
85
+ console.warn('⚠️ No embedding available');
86
+ }
87
+ // 3. Encrypt (if enabled) - Use capability-based encryption (v2.2)
83
88
  let encryptedContent;
84
- if (this.services.config.features.enableEncryption && this.services.encryption) {
85
- onProgress?.('encrypting', 50);
89
+ let encryptedEmbedding;
90
+ let memoryCapId;
91
+ let keyId;
92
+ if (this.services.config.features.enableEncryption && this.services.encryption && this.services.capability) {
93
+ onProgress?.('encrypting', 30);
86
94
  try {
95
+ console.log('🔐 Using capability-based encryption (v2.2)...');
96
+ // Step 3.1: Get or create capability for this category
97
+ const cap = await this.services.capability.getOrCreate({
98
+ appId: category,
99
+ userAddress: this.services.config.userAddress
100
+ }, this.services.config.signer);
101
+ memoryCapId = cap.id;
102
+ console.log(` ✅ Capability ready: ${memoryCapId}`);
103
+ // Step 3.2: Compute key_id from capability
104
+ keyId = this.services.capability.computeKeyId(cap);
105
+ console.log(` 🔑 Key ID computed: ${keyId.substring(0, 20)}...`);
106
+ // Step 3.3: Encrypt content
87
107
  const contentBytes = new TextEncoder().encode(content);
88
- const encryptResult = await this.services.encryption.encrypt(contentBytes, this.services.config.userAddress, 2 // threshold: require 2 key servers for decryption
108
+ const encryptContentResult = await this.services.encryption.encrypt(contentBytes, keyId, 2 // threshold: 2 of 2 key servers
89
109
  );
90
- encryptedContent = encryptResult.encryptedObject;
110
+ encryptedContent = encryptContentResult.encryptedObject;
111
+ console.log(` ✅ Content encrypted: ${contentBytes.length} → ${encryptedContent?.length || 0} bytes`);
112
+ // Step 3.4: Encrypt embedding (v2.2 - full encryption)
113
+ if (embedding && embedding.length > 0) {
114
+ const embeddingBytes = new TextEncoder().encode(JSON.stringify(embedding));
115
+ const encryptEmbeddingResult = await this.services.encryption.encrypt(embeddingBytes, keyId, 2);
116
+ encryptedEmbedding = encryptEmbeddingResult.encryptedObject;
117
+ console.log(` ✅ Embedding encrypted: ${embedding.length}D → ${encryptedEmbedding?.length || 0} bytes`);
118
+ }
91
119
  }
92
120
  catch (error) {
93
- console.warn('SEAL encryption failed, storing unencrypted:', error);
121
+ console.warn('⚠️ Capability-based encryption failed, falling back to plaintext:', error);
94
122
  // Continue without encryption if it fails
95
123
  }
96
124
  }
97
- // 4. Upload to Walrus
98
- onProgress?.('uploading to Walrus', 40);
125
+ // 4. Upload to Walrus (v2.2 format if encrypted)
126
+ onProgress?.('uploading to Walrus', 50);
127
+ console.log(`📤 Uploading to Walrus: content=${content.length} chars, embedding=${embedding?.length || 0}D, encrypted=${!!encryptedContent}`);
99
128
  const uploadResult = await this.services.storage.uploadMemoryPackage({
100
129
  content,
101
130
  embedding: embedding || [],
@@ -103,9 +132,13 @@ export class MemoryNamespace {
103
132
  category,
104
133
  importance,
105
134
  topic: topic || '',
135
+ memoryCapId,
136
+ keyId,
106
137
  ...metadata
107
138
  },
108
139
  encryptedContent,
140
+ encryptedEmbedding, // v2.2: encrypted embedding
141
+ encryptionType: encryptedContent ? 'seal-capability' : undefined,
109
142
  identity: this.services.config.userAddress
110
143
  }, {
111
144
  signer: this.services.config.signer,
@@ -122,24 +155,65 @@ export class MemoryNamespace {
122
155
  let memoryObjectId;
123
156
  // Use modulo to keep vectorId within u32 range (max 4,294,967,295)
124
157
  const vectorId = Date.now() % 4294967295;
125
- if (this.services.tx) {
158
+ if (this.services.tx && this.services.capability) {
126
159
  try {
127
- console.log('🔨 Building on-chain transaction with full metadata...');
128
- const tx = this.services.tx.buildCreateMemoryRecord({
129
- category,
130
- vectorId,
131
- blobId: uploadResult.blobId,
132
- contentType: 'text/plain',
133
- contentSize: new TextEncoder().encode(content).length,
134
- contentHash: uploadResult.blobId, // blob_id is content-addressed (blake2b256)
135
- topic: topic || '',
136
- importance,
137
- embeddingBlobId: uploadResult.blobId, // Embedding stored in same blob
138
- });
139
- // SerialTransactionExecutor handles gas coin management and prevents equivocation
140
- // No manual retry needed - executor caches object versions automatically
141
- console.log('📤 Executing on-chain transaction (via SerialTransactionExecutor)...');
142
- const txResult = await this.services.tx.executeTransaction(tx, this.services.config.signer.getSigner());
160
+ console.log('🔨 Building on-chain transaction...');
161
+ // Reuse memoryCapId from encryption step (avoid duplicate capability creation)
162
+ const capId = memoryCapId;
163
+ if (capId) {
164
+ console.log(` Using existing capability: ${capId}`);
165
+ }
166
+ // Use capability-based creation if capId available
167
+ const tx = capId
168
+ ? this.services.tx.buildCreateMemoryRecordLightweightWithCap({
169
+ category,
170
+ vectorId,
171
+ blobId: uploadResult.blobId,
172
+ importance,
173
+ gasBudget: undefined,
174
+ capId
175
+ })
176
+ : this.services.tx.buildCreateMemoryRecordLightweight({
177
+ category,
178
+ vectorId,
179
+ blobId: uploadResult.blobId,
180
+ importance,
181
+ gasBudget: undefined
182
+ });
183
+ console.log('📤 Executing on-chain transaction...');
184
+ // Use signer's signAndExecuteTransaction for browser wallet compatibility
185
+ const signer = this.services.config.signer;
186
+ let txResult;
187
+ if ('signAndExecuteTransaction' in signer && typeof signer.signAndExecuteTransaction === 'function') {
188
+ // Browser wallet (DappKitSigner) - use signAndExecuteTransaction directly
189
+ const result = await signer.signAndExecuteTransaction(tx);
190
+ // Extract created objects
191
+ let createdObjects;
192
+ if (result.objectChanges && Array.isArray(result.objectChanges)) {
193
+ createdObjects = result.objectChanges
194
+ .filter((change) => change.type === 'created')
195
+ .map((change) => ({
196
+ objectId: change.objectId,
197
+ objectType: change.objectType || 'unknown',
198
+ }));
199
+ }
200
+ // Determine status
201
+ const effectsStatus = result.effects?.status?.status;
202
+ const status = effectsStatus === 'failure' ? 'failure' :
203
+ effectsStatus === 'success' ? 'success' :
204
+ result.digest ? 'success' : 'failure';
205
+ txResult = {
206
+ digest: result.digest,
207
+ status,
208
+ createdObjects,
209
+ effects: result.effects,
210
+ objectChanges: result.objectChanges
211
+ };
212
+ }
213
+ else {
214
+ // Server-side signer - use TransactionService
215
+ txResult = await this.services.tx.executeTransaction(tx, signer);
216
+ }
143
217
  console.log('📋 Transaction result:', txResult.status, txResult.digest);
144
218
  if (txResult.status === 'success') {
145
219
  // Get created Memory object ID
@@ -229,9 +303,13 @@ export class MemoryNamespace {
229
303
  category,
230
304
  importance,
231
305
  topic,
306
+ memoryCapId,
307
+ keyId,
232
308
  ...metadata
233
309
  },
234
310
  encrypted: !!encryptedContent,
311
+ memoryCapId, // v2.2: capability ID for decryption
312
+ keyId, // v2.2: key ID for decryption
235
313
  createdAt: Date.now()
236
314
  };
237
315
  }
@@ -460,6 +538,122 @@ export class MemoryNamespace {
460
538
  throw new Error(`Failed to list memories: ${error instanceof Error ? error.message : String(error)}`);
461
539
  }
462
540
  }
541
+ /**
542
+ * Search memories using natural language query
543
+ *
544
+ * Unified search that:
545
+ * 1. Converts query text to embedding
546
+ * 2. Performs vector similarity search
547
+ * 3. Returns ranked results with content
548
+ *
549
+ * @param query - Natural language search query
550
+ * @param options - Search options (limit, threshold, category)
551
+ * @returns Array of matching memories sorted by relevance
552
+ *
553
+ * @example
554
+ * ```typescript
555
+ * // Simple search
556
+ * const results = await pdw.memory.search('meeting notes');
557
+ *
558
+ * // With options
559
+ * const results = await pdw.memory.search('TypeScript tips', {
560
+ * limit: 5,
561
+ * category: 'note',
562
+ * threshold: 0.7
563
+ * });
564
+ * ```
565
+ */
566
+ async search(query, options = {}) {
567
+ const { limit = 10, threshold = 0.5, category, includeContent = true } = options;
568
+ try {
569
+ // Validate query
570
+ if (!query || query.trim().length === 0) {
571
+ return [];
572
+ }
573
+ // Step 1: Generate embedding for query
574
+ if (!this.services.embedding) {
575
+ throw new Error('Embedding service not available - cannot perform semantic search');
576
+ }
577
+ const embResult = await this.services.embedding.embedText({ text: query });
578
+ const queryEmbedding = embResult.vector;
579
+ // Step 2: Perform vector search
580
+ let searchResults = [];
581
+ // Try local index first (faster)
582
+ if (this.services.vector) {
583
+ try {
584
+ const spaceId = this.services.config.userAddress;
585
+ const searchResult = await this.services.vector.searchVectors(spaceId, queryEmbedding, { k: limit * 2 });
586
+ searchResults = searchResult.results.map((r) => ({
587
+ id: r.metadata?.memoryObjectId || r.memoryId || String(r.vectorId),
588
+ vectorId: r.vectorId,
589
+ content: r.metadata?.content || '',
590
+ category: r.metadata?.category,
591
+ importance: r.metadata?.importance,
592
+ blobId: r.metadata?.blobId || r.memoryId,
593
+ metadata: r.metadata,
594
+ similarity: r.similarity || 0,
595
+ encrypted: r.metadata?.isEncrypted || false,
596
+ createdAt: r.metadata?.timestamp || Date.now()
597
+ }));
598
+ }
599
+ catch (indexError) {
600
+ console.warn('Local index search failed:', indexError);
601
+ }
602
+ }
603
+ // Fallback to memory index service if available
604
+ if (searchResults.length === 0 && this.services.memoryIndex) {
605
+ try {
606
+ const results = await this.services.memoryIndex.searchMemories({
607
+ userAddress: this.services.config.userAddress,
608
+ vector: queryEmbedding,
609
+ k: limit * 2
610
+ });
611
+ searchResults = results.map((r) => ({
612
+ id: r.memoryObjectId || r.id,
613
+ content: r.content || '',
614
+ category: r.category,
615
+ importance: r.importance || r.metadata?.importance,
616
+ blobId: r.blobId || r.id,
617
+ metadata: r.metadata,
618
+ similarity: r.score || r.similarity || 0,
619
+ encrypted: r.isEncrypted || false,
620
+ createdAt: r.timestamp || Date.now()
621
+ }));
622
+ }
623
+ catch (memIndexError) {
624
+ console.warn('Memory index search failed:', memIndexError);
625
+ }
626
+ }
627
+ // Step 3: Filter by threshold and category
628
+ let filtered = searchResults.filter(r => r.similarity >= threshold);
629
+ if (category) {
630
+ filtered = filtered.filter(r => r.category === category);
631
+ }
632
+ // Step 4: Limit results
633
+ const limited = filtered.slice(0, limit);
634
+ // Step 5: Optionally fetch full content for encrypted memories
635
+ if (includeContent) {
636
+ const withContent = await Promise.all(limited.map(async (r) => {
637
+ // If content is missing or encrypted, try to fetch from storage
638
+ if (!r.content && r.blobId) {
639
+ try {
640
+ const memory = await this.get(r.blobId);
641
+ return { ...r, content: memory.content };
642
+ }
643
+ catch {
644
+ return r;
645
+ }
646
+ }
647
+ return r;
648
+ }));
649
+ return withContent;
650
+ }
651
+ return limited;
652
+ }
653
+ catch (error) {
654
+ throw new Error(`Failed to search memories: ${error instanceof Error ? error.message : String(error)}`);
655
+ }
656
+ }
463
657
  /**
464
658
  * Create multiple memories in batch using Walrus Quilt
465
659
  *
@@ -570,25 +764,77 @@ export class MemoryNamespace {
570
764
  onProgress?.('registering on blockchain', 70);
571
765
  const memoryObjectIds = [];
572
766
  const vectorIds = [];
573
- if (this.services.tx) {
574
- // Create memory records for each file in the quilt
767
+ if (this.services.tx && this.services.capability) {
768
+ // Create memory records for each file in the quilt using auto-capability
575
769
  for (let i = 0; i < quiltResult.files.length; i++) {
576
770
  const file = quiltResult.files[i];
577
771
  const vectorId = (Date.now() + i) % 4294967295;
578
772
  vectorIds.push(vectorId);
579
773
  try {
580
- const tx = this.services.tx.buildCreateMemoryRecord({
581
- category: categories[i],
582
- vectorId,
583
- blobId: file.blobId,
584
- contentType: 'text/plain',
585
- contentSize: new TextEncoder().encode(contents[i]).length,
586
- contentHash: file.blobId, // blob_id is content-addressed (blake2b256)
587
- topic: options.topic || '',
588
- importance,
589
- embeddingBlobId: file.blobId, // Embedding stored in same blob
590
- });
591
- const txResult = await this.services.tx.executeTransaction(tx, this.services.config.signer.getSigner());
774
+ // Auto get/create capability if encryption enabled
775
+ let capId;
776
+ if (this.services.config.features?.enableEncryption) {
777
+ try {
778
+ const cap = await this.services.capability.getOrCreate({
779
+ appId: categories[i],
780
+ userAddress: this.services.config.userAddress
781
+ }, this.services.config.signer);
782
+ capId = cap.id;
783
+ }
784
+ catch (capError) {
785
+ console.warn(`⚠️ Failed to auto-create capability for memory ${i}:`, capError);
786
+ }
787
+ }
788
+ // Use capability-based creation if capId available
789
+ const tx = capId
790
+ ? this.services.tx.buildCreateMemoryRecordLightweightWithCap({
791
+ category: categories[i],
792
+ vectorId,
793
+ blobId: file.blobId,
794
+ importance,
795
+ gasBudget: undefined,
796
+ capId
797
+ })
798
+ : this.services.tx.buildCreateMemoryRecordLightweight({
799
+ category: categories[i],
800
+ vectorId,
801
+ blobId: file.blobId,
802
+ importance,
803
+ gasBudget: undefined
804
+ });
805
+ // Use signer's signAndExecuteTransaction for browser wallet compatibility
806
+ const signer = this.services.config.signer;
807
+ let txResult;
808
+ if ('signAndExecuteTransaction' in signer && typeof signer.signAndExecuteTransaction === 'function') {
809
+ // Browser wallet (DappKitSigner) - use signAndExecuteTransaction directly
810
+ const result = await signer.signAndExecuteTransaction(tx);
811
+ // Extract created objects
812
+ let createdObjects;
813
+ if (result.objectChanges && Array.isArray(result.objectChanges)) {
814
+ createdObjects = result.objectChanges
815
+ .filter((change) => change.type === 'created')
816
+ .map((change) => ({
817
+ objectId: change.objectId,
818
+ objectType: change.objectType || 'unknown',
819
+ }));
820
+ }
821
+ // Determine status
822
+ const effectsStatus = result.effects?.status?.status;
823
+ const status = effectsStatus === 'failure' ? 'failure' :
824
+ effectsStatus === 'success' ? 'success' :
825
+ result.digest ? 'success' : 'failure';
826
+ txResult = {
827
+ digest: result.digest,
828
+ status,
829
+ createdObjects,
830
+ effects: result.effects,
831
+ objectChanges: result.objectChanges
832
+ };
833
+ }
834
+ else {
835
+ // Server-side signer - use TransactionService
836
+ txResult = await this.services.tx.executeTransaction(tx, signer);
837
+ }
592
838
  if (txResult.status === 'success') {
593
839
  const memoryObject = txResult.createdObjects?.find((obj) => obj.objectType?.includes('::memory::Memory'));
594
840
  memoryObjectIds.push(memoryObject?.objectId);