@openclaw/nostr 2026.7.2-beta.5 → 2026.8.1-beta.2

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 (473) hide show
  1. package/dist/api.js +10 -7
  2. package/dist/{channel-DNeI-LB-.js → channel-BifOvAwp.js} +58 -41
  3. package/dist/channel-plugin-api.js +1 -1
  4. package/dist/{config-schema-CelPzg1N.js → config-schema-CkYd8ACn.js} +1 -0
  5. package/dist/doctor-contract-api.js +5 -7
  6. package/dist/{setup-adapter-BjKmSwdW.js → setup-adapter-DLthHa2q.js} +40 -12
  7. package/dist/setup-api.js +1 -1
  8. package/dist/setup-plugin-api.js +11 -39
  9. package/dist/{setup-surface-BJCFpe02.js → setup-surface-DAhyNOcb.js} +5 -18
  10. package/node_modules/nostr-tools/lib/cjs/abstract-pool.js +24 -25
  11. package/node_modules/nostr-tools/lib/cjs/abstract-pool.js.map +3 -3
  12. package/node_modules/nostr-tools/lib/cjs/abstract-relay.js +14 -5
  13. package/node_modules/nostr-tools/lib/cjs/abstract-relay.js.map +2 -2
  14. package/node_modules/nostr-tools/lib/cjs/core.js +17 -1
  15. package/node_modules/nostr-tools/lib/cjs/core.js.map +3 -3
  16. package/node_modules/nostr-tools/lib/cjs/filter.js.map +1 -1
  17. package/node_modules/nostr-tools/lib/cjs/index.js +137 -127
  18. package/node_modules/nostr-tools/lib/cjs/index.js.map +4 -4
  19. package/node_modules/nostr-tools/lib/cjs/kinds.js +17 -1
  20. package/node_modules/nostr-tools/lib/cjs/kinds.js.map +3 -3
  21. package/node_modules/nostr-tools/lib/cjs/nip04.js.map +1 -1
  22. package/node_modules/nostr-tools/lib/cjs/nip10.js +20 -5
  23. package/node_modules/nostr-tools/lib/cjs/nip10.js.map +3 -3
  24. package/node_modules/nostr-tools/lib/cjs/nip13.js.map +1 -1
  25. package/node_modules/nostr-tools/lib/cjs/nip17.js +30 -23
  26. package/node_modules/nostr-tools/lib/cjs/nip17.js.map +4 -4
  27. package/node_modules/nostr-tools/lib/cjs/nip18.js +21 -14
  28. package/node_modules/nostr-tools/lib/cjs/nip18.js.map +4 -4
  29. package/node_modules/nostr-tools/lib/cjs/nip19.js.map +1 -1
  30. package/node_modules/nostr-tools/lib/cjs/nip21.js.map +1 -1
  31. package/node_modules/nostr-tools/lib/cjs/nip22.js +22 -7
  32. package/node_modules/nostr-tools/lib/cjs/nip22.js.map +3 -3
  33. package/node_modules/nostr-tools/lib/cjs/nip25.js +21 -14
  34. package/node_modules/nostr-tools/lib/cjs/nip25.js.map +4 -4
  35. package/node_modules/nostr-tools/lib/cjs/nip27.js.map +1 -1
  36. package/node_modules/nostr-tools/lib/cjs/nip28.js +21 -14
  37. package/node_modules/nostr-tools/lib/cjs/nip28.js.map +4 -4
  38. package/node_modules/nostr-tools/lib/cjs/nip29.js.map +1 -1
  39. package/node_modules/nostr-tools/lib/cjs/nip30.js.map +2 -2
  40. package/node_modules/nostr-tools/lib/cjs/nip42.js.map +2 -2
  41. package/node_modules/nostr-tools/lib/cjs/nip44.js.map +1 -1
  42. package/node_modules/nostr-tools/lib/cjs/nip45.js +22 -9
  43. package/node_modules/nostr-tools/lib/cjs/nip45.js.map +4 -4
  44. package/node_modules/nostr-tools/lib/cjs/nip46.js +76 -67
  45. package/node_modules/nostr-tools/lib/cjs/nip46.js.map +4 -4
  46. package/node_modules/nostr-tools/lib/cjs/nip47.js +25 -18
  47. package/node_modules/nostr-tools/lib/cjs/nip47.js.map +4 -4
  48. package/node_modules/nostr-tools/lib/cjs/nip57.js +23 -16
  49. package/node_modules/nostr-tools/lib/cjs/nip57.js.map +4 -4
  50. package/node_modules/nostr-tools/lib/cjs/nip58.js.map +2 -2
  51. package/node_modules/nostr-tools/lib/cjs/nip59.js +16 -7
  52. package/node_modules/nostr-tools/lib/cjs/nip59.js.map +3 -3
  53. package/node_modules/nostr-tools/lib/cjs/nip75.js.map +1 -1
  54. package/node_modules/nostr-tools/lib/cjs/nip94.js.map +1 -1
  55. package/node_modules/nostr-tools/lib/cjs/nip98.js +23 -16
  56. package/node_modules/nostr-tools/lib/cjs/nip98.js.map +4 -4
  57. package/node_modules/nostr-tools/lib/cjs/nip99.js.map +2 -2
  58. package/node_modules/nostr-tools/lib/cjs/nipb0.js +34 -16
  59. package/node_modules/nostr-tools/lib/cjs/nipb0.js.map +4 -4
  60. package/node_modules/nostr-tools/lib/cjs/nipb7.js +13 -7
  61. package/node_modules/nostr-tools/lib/cjs/nipb7.js.map +2 -2
  62. package/node_modules/nostr-tools/lib/cjs/pool.js +67 -58
  63. package/node_modules/nostr-tools/lib/cjs/pool.js.map +4 -4
  64. package/node_modules/nostr-tools/lib/cjs/pure.js +21 -14
  65. package/node_modules/nostr-tools/lib/cjs/pure.js.map +4 -4
  66. package/node_modules/nostr-tools/lib/cjs/references.js.map +1 -1
  67. package/node_modules/nostr-tools/lib/cjs/relay.js +56 -40
  68. package/node_modules/nostr-tools/lib/cjs/relay.js.map +4 -4
  69. package/node_modules/nostr-tools/lib/cjs/signer.js +21 -14
  70. package/node_modules/nostr-tools/lib/cjs/signer.js.map +4 -4
  71. package/node_modules/nostr-tools/lib/cjs/utils.js +10 -0
  72. package/node_modules/nostr-tools/lib/cjs/utils.js.map +2 -2
  73. package/node_modules/nostr-tools/lib/cjs/wasm.js +16 -2
  74. package/node_modules/nostr-tools/lib/cjs/wasm.js.map +4 -4
  75. package/node_modules/nostr-tools/lib/esm/abstract-pool.js +24 -25
  76. package/node_modules/nostr-tools/lib/esm/abstract-pool.js.map +3 -3
  77. package/node_modules/nostr-tools/lib/esm/abstract-relay.js +14 -5
  78. package/node_modules/nostr-tools/lib/esm/abstract-relay.js.map +2 -2
  79. package/node_modules/nostr-tools/lib/esm/core.js +15 -1
  80. package/node_modules/nostr-tools/lib/esm/core.js.map +3 -3
  81. package/node_modules/nostr-tools/lib/esm/filter.js.map +1 -1
  82. package/node_modules/nostr-tools/lib/esm/index.js +87 -77
  83. package/node_modules/nostr-tools/lib/esm/index.js.map +4 -4
  84. package/node_modules/nostr-tools/lib/esm/kinds.js +17 -1
  85. package/node_modules/nostr-tools/lib/esm/kinds.js.map +3 -3
  86. package/node_modules/nostr-tools/lib/esm/nip04.js.map +1 -1
  87. package/node_modules/nostr-tools/lib/esm/nip10.js +18 -5
  88. package/node_modules/nostr-tools/lib/esm/nip10.js.map +3 -3
  89. package/node_modules/nostr-tools/lib/esm/nip13.js.map +1 -1
  90. package/node_modules/nostr-tools/lib/esm/nip17.js +15 -8
  91. package/node_modules/nostr-tools/lib/esm/nip17.js.map +4 -4
  92. package/node_modules/nostr-tools/lib/esm/nip18.js +15 -8
  93. package/node_modules/nostr-tools/lib/esm/nip18.js.map +4 -4
  94. package/node_modules/nostr-tools/lib/esm/nip19.js.map +1 -1
  95. package/node_modules/nostr-tools/lib/esm/nip21.js.map +1 -1
  96. package/node_modules/nostr-tools/lib/esm/nip22.js +20 -7
  97. package/node_modules/nostr-tools/lib/esm/nip22.js.map +3 -3
  98. package/node_modules/nostr-tools/lib/esm/nip25.js +15 -8
  99. package/node_modules/nostr-tools/lib/esm/nip25.js.map +4 -4
  100. package/node_modules/nostr-tools/lib/esm/nip27.js.map +1 -1
  101. package/node_modules/nostr-tools/lib/esm/nip28.js +15 -8
  102. package/node_modules/nostr-tools/lib/esm/nip28.js.map +4 -4
  103. package/node_modules/nostr-tools/lib/esm/nip29.js.map +1 -1
  104. package/node_modules/nostr-tools/lib/esm/nip30.js.map +2 -2
  105. package/node_modules/nostr-tools/lib/esm/nip42.js.map +2 -2
  106. package/node_modules/nostr-tools/lib/esm/nip44.js.map +1 -1
  107. package/node_modules/nostr-tools/lib/esm/nip45.js +23 -10
  108. package/node_modules/nostr-tools/lib/esm/nip45.js.map +4 -4
  109. package/node_modules/nostr-tools/lib/esm/nip46.js +60 -51
  110. package/node_modules/nostr-tools/lib/esm/nip46.js.map +4 -4
  111. package/node_modules/nostr-tools/lib/esm/nip47.js +15 -8
  112. package/node_modules/nostr-tools/lib/esm/nip47.js.map +4 -4
  113. package/node_modules/nostr-tools/lib/esm/nip57.js +17 -10
  114. package/node_modules/nostr-tools/lib/esm/nip57.js.map +4 -4
  115. package/node_modules/nostr-tools/lib/esm/nip58.js.map +2 -2
  116. package/node_modules/nostr-tools/lib/esm/nip59.js +10 -1
  117. package/node_modules/nostr-tools/lib/esm/nip59.js.map +3 -3
  118. package/node_modules/nostr-tools/lib/esm/nip75.js.map +1 -1
  119. package/node_modules/nostr-tools/lib/esm/nip94.js.map +1 -1
  120. package/node_modules/nostr-tools/lib/esm/nip98.js +15 -8
  121. package/node_modules/nostr-tools/lib/esm/nip98.js.map +4 -4
  122. package/node_modules/nostr-tools/lib/esm/nip99.js.map +2 -2
  123. package/node_modules/nostr-tools/lib/esm/nipb0.js +35 -17
  124. package/node_modules/nostr-tools/lib/esm/nipb0.js.map +4 -4
  125. package/node_modules/nostr-tools/lib/esm/nipb7.js +13 -7
  126. package/node_modules/nostr-tools/lib/esm/nipb7.js.map +2 -2
  127. package/node_modules/nostr-tools/lib/esm/pool.js +60 -51
  128. package/node_modules/nostr-tools/lib/esm/pool.js.map +4 -4
  129. package/node_modules/nostr-tools/lib/esm/pure.js +15 -8
  130. package/node_modules/nostr-tools/lib/esm/pure.js.map +4 -4
  131. package/node_modules/nostr-tools/lib/esm/references.js.map +1 -1
  132. package/node_modules/nostr-tools/lib/esm/relay.js +50 -34
  133. package/node_modules/nostr-tools/lib/esm/relay.js.map +4 -4
  134. package/node_modules/nostr-tools/lib/esm/signer.js +15 -8
  135. package/node_modules/nostr-tools/lib/esm/signer.js.map +4 -4
  136. package/node_modules/nostr-tools/lib/esm/utils.js +10 -0
  137. package/node_modules/nostr-tools/lib/esm/utils.js.map +2 -2
  138. package/node_modules/nostr-tools/lib/esm/wasm.js +17 -3
  139. package/node_modules/nostr-tools/lib/esm/wasm.js.map +4 -4
  140. package/node_modules/nostr-tools/lib/nostr.bundle.js +86 -74
  141. package/node_modules/nostr-tools/lib/nostr.bundle.js.map +4 -4
  142. package/node_modules/nostr-tools/lib/types/abstract-pool.d.ts +6 -4
  143. package/node_modules/nostr-tools/lib/types/abstract-relay.d.ts +2 -2
  144. package/node_modules/nostr-tools/lib/types/kinds.d.ts +2 -0
  145. package/node_modules/nostr-tools/lib/types/nipb0.d.ts +0 -1
  146. package/node_modules/nostr-tools/lib/types/nipb7.d.ts +0 -1
  147. package/node_modules/nostr-tools/lib/types/utils.d.ts +4 -0
  148. package/node_modules/nostr-tools/node_modules/nostr-wasm/dist/generate.d.ts +1 -0
  149. package/node_modules/nostr-tools/package.json +1 -1
  150. package/openclaw.plugin.json +29 -0
  151. package/package.json +9 -6
  152. package/node_modules/nostr-tools/lib/types/helpers.d.ts +0 -2
  153. /package/node_modules/{nostr-wasm/dist/generate.d.ts → nostr-tools/lib/types/nipb0.test.d.ts} +0 -0
  154. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/LICENSE +0 -0
  155. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/README.md +0 -0
  156. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_arx.d.ts +0 -0
  157. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_arx.d.ts.map +0 -0
  158. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_arx.js +0 -0
  159. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_arx.js.map +0 -0
  160. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_poly1305.d.ts +0 -0
  161. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_poly1305.d.ts.map +0 -0
  162. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_poly1305.js +0 -0
  163. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_poly1305.js.map +0 -0
  164. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_polyval.d.ts +0 -0
  165. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_polyval.d.ts.map +0 -0
  166. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_polyval.js +0 -0
  167. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/_polyval.js.map +0 -0
  168. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/aes.d.ts +0 -0
  169. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/aes.d.ts.map +0 -0
  170. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/aes.js +0 -0
  171. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/aes.js.map +0 -0
  172. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/chacha.d.ts +0 -0
  173. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/chacha.d.ts.map +0 -0
  174. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/chacha.js +0 -0
  175. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/chacha.js.map +0 -0
  176. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/ff1.d.ts +0 -0
  177. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/ff1.d.ts.map +0 -0
  178. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/ff1.js +0 -0
  179. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/ff1.js.map +0 -0
  180. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/index.d.ts +0 -0
  181. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/index.d.ts.map +0 -0
  182. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/index.js +0 -0
  183. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/index.js.map +0 -0
  184. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/package.json +0 -0
  185. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/salsa.d.ts +0 -0
  186. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/salsa.d.ts.map +0 -0
  187. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/salsa.js +0 -0
  188. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/salsa.js.map +0 -0
  189. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/_arx.ts +0 -0
  190. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/_poly1305.ts +0 -0
  191. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/_polyval.ts +0 -0
  192. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/aes.ts +0 -0
  193. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/chacha.ts +0 -0
  194. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/ff1.ts +0 -0
  195. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/index.ts +0 -0
  196. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/salsa.ts +0 -0
  197. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/utils.ts +0 -0
  198. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/src/webcrypto.ts +0 -0
  199. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/utils.d.ts +0 -0
  200. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/utils.d.ts.map +0 -0
  201. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/utils.js +0 -0
  202. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/utils.js.map +0 -0
  203. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/webcrypto.d.ts +0 -0
  204. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/webcrypto.d.ts.map +0 -0
  205. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/webcrypto.js +0 -0
  206. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/ciphers/webcrypto.js.map +0 -0
  207. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/LICENSE +0 -0
  208. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/README.md +0 -0
  209. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/bls.d.ts +0 -0
  210. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/bls.d.ts.map +0 -0
  211. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/bls.js +0 -0
  212. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/bls.js.map +0 -0
  213. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/curve.d.ts +0 -0
  214. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/curve.d.ts.map +0 -0
  215. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/curve.js +0 -0
  216. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/curve.js.map +0 -0
  217. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/edwards.d.ts +0 -0
  218. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/edwards.d.ts.map +0 -0
  219. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/edwards.js +0 -0
  220. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/edwards.js.map +0 -0
  221. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/fft.d.ts +0 -0
  222. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/fft.d.ts.map +0 -0
  223. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/fft.js +0 -0
  224. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/fft.js.map +0 -0
  225. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/hash-to-curve.d.ts +0 -0
  226. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/hash-to-curve.d.ts.map +0 -0
  227. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/hash-to-curve.js +0 -0
  228. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/hash-to-curve.js.map +0 -0
  229. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/modular.d.ts +0 -0
  230. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/modular.d.ts.map +0 -0
  231. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/modular.js +0 -0
  232. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/modular.js.map +0 -0
  233. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/montgomery.d.ts +0 -0
  234. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/montgomery.d.ts.map +0 -0
  235. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/montgomery.js +0 -0
  236. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/montgomery.js.map +0 -0
  237. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/oprf.d.ts +0 -0
  238. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/oprf.d.ts.map +0 -0
  239. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/oprf.js +0 -0
  240. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/oprf.js.map +0 -0
  241. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/poseidon.d.ts +0 -0
  242. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/poseidon.d.ts.map +0 -0
  243. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/poseidon.js +0 -0
  244. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/poseidon.js.map +0 -0
  245. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/tower.d.ts +0 -0
  246. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/tower.d.ts.map +0 -0
  247. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/tower.js +0 -0
  248. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/tower.js.map +0 -0
  249. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/weierstrass.d.ts +0 -0
  250. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/weierstrass.d.ts.map +0 -0
  251. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/weierstrass.js +0 -0
  252. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/abstract/weierstrass.js.map +0 -0
  253. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bls12-381.d.ts +0 -0
  254. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bls12-381.d.ts.map +0 -0
  255. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bls12-381.js +0 -0
  256. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bls12-381.js.map +0 -0
  257. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bn254.d.ts +0 -0
  258. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bn254.d.ts.map +0 -0
  259. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bn254.js +0 -0
  260. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/bn254.js.map +0 -0
  261. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed25519.d.ts +0 -0
  262. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed25519.d.ts.map +0 -0
  263. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed25519.js +0 -0
  264. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed25519.js.map +0 -0
  265. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed448.d.ts +0 -0
  266. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed448.d.ts.map +0 -0
  267. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed448.js +0 -0
  268. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/ed448.js.map +0 -0
  269. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/index.d.ts +0 -0
  270. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/index.d.ts.map +0 -0
  271. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/index.js +0 -0
  272. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/index.js.map +0 -0
  273. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/misc.d.ts +0 -0
  274. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/misc.d.ts.map +0 -0
  275. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/misc.js +0 -0
  276. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/misc.js.map +0 -0
  277. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/nist.d.ts +0 -0
  278. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/nist.d.ts.map +0 -0
  279. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/nist.js +0 -0
  280. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/nist.js.map +0 -0
  281. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/package.json +0 -0
  282. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/secp256k1.d.ts +0 -0
  283. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/secp256k1.d.ts.map +0 -0
  284. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/secp256k1.js +0 -0
  285. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/secp256k1.js.map +0 -0
  286. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/bls.ts +0 -0
  287. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/curve.ts +0 -0
  288. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/edwards.ts +0 -0
  289. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/fft.ts +0 -0
  290. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/hash-to-curve.ts +0 -0
  291. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/modular.ts +0 -0
  292. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/montgomery.ts +0 -0
  293. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/oprf.ts +0 -0
  294. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/poseidon.ts +0 -0
  295. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/tower.ts +0 -0
  296. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/abstract/weierstrass.ts +0 -0
  297. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/bls12-381.ts +0 -0
  298. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/bn254.ts +0 -0
  299. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/ed25519.ts +0 -0
  300. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/ed448.ts +0 -0
  301. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/index.ts +0 -0
  302. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/misc.ts +0 -0
  303. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/nist.ts +0 -0
  304. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/secp256k1.ts +0 -0
  305. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/utils.ts +0 -0
  306. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/src/webcrypto.ts +0 -0
  307. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/utils.d.ts +0 -0
  308. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/utils.d.ts.map +0 -0
  309. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/utils.js +0 -0
  310. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/utils.js.map +0 -0
  311. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/webcrypto.d.ts +0 -0
  312. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/webcrypto.d.ts.map +0 -0
  313. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/webcrypto.js +0 -0
  314. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/curves/webcrypto.js.map +0 -0
  315. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/LICENSE +0 -0
  316. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/README.md +0 -0
  317. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_blake.d.ts +0 -0
  318. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_blake.d.ts.map +0 -0
  319. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_blake.js +0 -0
  320. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_blake.js.map +0 -0
  321. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_md.d.ts +0 -0
  322. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_md.d.ts.map +0 -0
  323. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_md.js +0 -0
  324. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_md.js.map +0 -0
  325. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_u64.d.ts +0 -0
  326. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_u64.d.ts.map +0 -0
  327. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_u64.js +0 -0
  328. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/_u64.js.map +0 -0
  329. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/argon2.d.ts +0 -0
  330. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/argon2.d.ts.map +0 -0
  331. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/argon2.js +0 -0
  332. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/argon2.js.map +0 -0
  333. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake1.d.ts +0 -0
  334. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake1.d.ts.map +0 -0
  335. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake1.js +0 -0
  336. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake1.js.map +0 -0
  337. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake2.d.ts +0 -0
  338. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake2.d.ts.map +0 -0
  339. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake2.js +0 -0
  340. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake2.js.map +0 -0
  341. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake3.d.ts +0 -0
  342. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake3.d.ts.map +0 -0
  343. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake3.js +0 -0
  344. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/blake3.js.map +0 -0
  345. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/eskdf.d.ts +0 -0
  346. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/eskdf.d.ts.map +0 -0
  347. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/eskdf.js +0 -0
  348. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/eskdf.js.map +0 -0
  349. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hkdf.d.ts +0 -0
  350. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hkdf.d.ts.map +0 -0
  351. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hkdf.js +0 -0
  352. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hkdf.js.map +0 -0
  353. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hmac.d.ts +0 -0
  354. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hmac.d.ts.map +0 -0
  355. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hmac.js +0 -0
  356. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/hmac.js.map +0 -0
  357. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/index.d.ts +0 -0
  358. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/index.d.ts.map +0 -0
  359. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/index.js +0 -0
  360. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/index.js.map +0 -0
  361. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/legacy.d.ts +0 -0
  362. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/legacy.d.ts.map +0 -0
  363. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/legacy.js +0 -0
  364. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/legacy.js.map +0 -0
  365. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/package.json +0 -0
  366. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/pbkdf2.d.ts +0 -0
  367. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/pbkdf2.d.ts.map +0 -0
  368. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/pbkdf2.js +0 -0
  369. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/pbkdf2.js.map +0 -0
  370. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/scrypt.d.ts +0 -0
  371. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/scrypt.d.ts.map +0 -0
  372. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/scrypt.js +0 -0
  373. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/scrypt.js.map +0 -0
  374. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha2.d.ts +0 -0
  375. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha2.d.ts.map +0 -0
  376. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha2.js +0 -0
  377. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha2.js.map +0 -0
  378. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3-addons.d.ts +0 -0
  379. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3-addons.d.ts.map +0 -0
  380. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3-addons.js +0 -0
  381. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3-addons.js.map +0 -0
  382. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3.d.ts +0 -0
  383. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3.d.ts.map +0 -0
  384. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3.js +0 -0
  385. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/sha3.js.map +0 -0
  386. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/_blake.ts +0 -0
  387. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/_md.ts +0 -0
  388. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/_u64.ts +0 -0
  389. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/argon2.ts +0 -0
  390. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/blake1.ts +0 -0
  391. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/blake2.ts +0 -0
  392. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/blake3.ts +0 -0
  393. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/eskdf.ts +0 -0
  394. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/hkdf.ts +0 -0
  395. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/hmac.ts +0 -0
  396. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/index.ts +0 -0
  397. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/legacy.ts +0 -0
  398. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/pbkdf2.ts +0 -0
  399. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/scrypt.ts +0 -0
  400. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/sha2.ts +0 -0
  401. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/sha3-addons.ts +0 -0
  402. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/sha3.ts +0 -0
  403. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/utils.ts +0 -0
  404. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/src/webcrypto.ts +0 -0
  405. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/utils.d.ts +0 -0
  406. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/utils.d.ts.map +0 -0
  407. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/utils.js +0 -0
  408. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/utils.js.map +0 -0
  409. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/webcrypto.d.ts +0 -0
  410. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/webcrypto.d.ts.map +0 -0
  411. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/webcrypto.js +0 -0
  412. /package/node_modules/{@noble → nostr-tools/node_modules/@noble}/hashes/webcrypto.js.map +0 -0
  413. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/LICENSE +0 -0
  414. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/README.md +0 -0
  415. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/index.d.ts +0 -0
  416. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/index.d.ts.map +0 -0
  417. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/index.js +0 -0
  418. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/index.js.map +0 -0
  419. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/index.ts +0 -0
  420. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/base/package.json +0 -0
  421. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/LICENSE +0 -0
  422. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/README.md +0 -0
  423. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/index.d.ts +0 -0
  424. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/index.d.ts.map +0 -0
  425. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/index.js +0 -0
  426. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/index.js.map +0 -0
  427. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/index.ts +0 -0
  428. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip32/package.json +0 -0
  429. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/LICENSE +0 -0
  430. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/README.md +0 -0
  431. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/index.d.ts +0 -0
  432. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/index.js +0 -0
  433. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/package.json +0 -0
  434. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/src/index.ts +0 -0
  435. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/czech.d.ts +0 -0
  436. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/czech.js +0 -0
  437. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/english.d.ts +0 -0
  438. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/english.js +0 -0
  439. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/french.d.ts +0 -0
  440. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/french.js +0 -0
  441. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/italian.d.ts +0 -0
  442. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/italian.js +0 -0
  443. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/japanese.d.ts +0 -0
  444. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/japanese.js +0 -0
  445. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/korean.d.ts +0 -0
  446. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/korean.js +0 -0
  447. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/portuguese.d.ts +0 -0
  448. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/portuguese.js +0 -0
  449. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/simplified-chinese.d.ts +0 -0
  450. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/simplified-chinese.js +0 -0
  451. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/spanish.d.ts +0 -0
  452. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/spanish.js +0 -0
  453. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/traditional-chinese.d.ts +0 -0
  454. /package/node_modules/{@scure → nostr-tools/node_modules/@scure}/bip39/wordlists/traditional-chinese.js +0 -0
  455. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/README.md +0 -0
  456. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/emsimp.d.ts +0 -0
  457. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/nostr.d.ts +0 -0
  458. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/secp256k1-types.d.ts +0 -0
  459. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/secp256k1.d.ts +0 -0
  460. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/types.d.ts +0 -0
  461. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/api/wasm-env.d.ts +0 -0
  462. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/gen/wasm.d.ts +0 -0
  463. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/gzipped.d.ts +0 -0
  464. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/gzipped.js +0 -0
  465. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/headless.d.ts +0 -0
  466. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/main.d.ts +0 -0
  467. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/main.js +0 -0
  468. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/nostr.js +0 -0
  469. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/secp256k1.js +0 -0
  470. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/dist/types.d.ts +0 -0
  471. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/package.json +0 -0
  472. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/public/out/secp256k1.js +0 -0
  473. /package/node_modules/{nostr-wasm → nostr-tools/node_modules/nostr-wasm}/public/out/secp256k1.wasm +0 -0
package/dist/api.js CHANGED
@@ -1,15 +1,15 @@
1
- import { s as resolveNostrAccount } from "./setup-surface-BJCFpe02.js";
1
+ import { s as resolveNostrAccount } from "./setup-surface-DAhyNOcb.js";
2
2
  import { getPluginRuntimeGatewayRequestScope } from "./runtime-api.js";
3
- import { n as NostrProfileSchema } from "./config-schema-CelPzg1N.js";
4
- import { a as getNostrRuntime, i as contentToProfile, n as nostrPlugin, o as setNostrRuntime, r as publishNostrProfile, t as getNostrProfileState } from "./channel-DNeI-LB-.js";
3
+ import { n as NostrProfileSchema } from "./config-schema-CkYd8ACn.js";
4
+ import { a as getNostrRuntime, i as contentToProfile, n as nostrPlugin, o as setNostrRuntime, r as publishNostrProfile, t as getNostrProfileState } from "./channel-BifOvAwp.js";
5
5
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { z } from "zod";
7
7
  import { SimplePool } from "nostr-tools";
8
8
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
9
+ import { isBlockedHostnameOrIp, isLoopbackHost } from "openclaw/plugin-sdk/ssrf-runtime";
9
10
  import { readJsonBodyWithLimit, requestBodyErrorToText } from "openclaw/plugin-sdk/webhook-request-guards";
10
11
  import { createFixedWindowRateLimiter } from "openclaw/plugin-sdk/webhook-ingress";
11
12
  import { resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
12
- import { isBlockedHostnameOrIp } from "openclaw/plugin-sdk/ssrf-runtime";
13
13
  //#region extensions/nostr/src/nostr-profile-url-safety.ts
14
14
  function validateUrlSafety(urlStr) {
15
15
  try {
@@ -114,7 +114,11 @@ async function importProfileFromRelays(opts) {
114
114
  error: "No profile found on any relay",
115
115
  relaysQueried
116
116
  };
117
- const bestEvent = events.reduce((current, candidate) => candidate.event.created_at > current.event.created_at ? candidate : current);
117
+ const bestEvent = events.reduce((current, candidate) => {
118
+ const candidateIsNewer = candidate.event.created_at > current.event.created_at;
119
+ const candidateWinsTie = candidate.event.created_at === current.event.created_at && candidate.event.id < current.event.id;
120
+ return candidateIsNewer || candidateWinsTie ? candidate : current;
121
+ });
118
122
  let parsedContent;
119
123
  try {
120
124
  parsedContent = JSON.parse(bestEvent.event.content);
@@ -230,8 +234,7 @@ function isLoopbackRemoteAddress(remoteAddress) {
230
234
  }
231
235
  function isLoopbackOriginLike(value) {
232
236
  try {
233
- const hostname = normalizeLowercaseStringOrEmpty(new URL(value).hostname);
234
- return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "::1";
237
+ return isLoopbackHost(new URL(value).hostname);
235
238
  } catch {
236
239
  return false;
237
240
  }
@@ -1,19 +1,20 @@
1
- import { a as listNostrAccountIds, c as normalizePubkey, l as validatePrivateKey, n as nostrSetupContract, o as resolveDefaultNostrAccountId, r as nostrSetupWizard, s as resolveNostrAccount, t as nostrSetupAdapter } from "./setup-surface-BJCFpe02.js";
2
- import { a as collectStatusIssuesFromLastError, i as buildChannelConfigSchema, n as NostrProfileSchema, o as createDefaultChannelRuntimeState, r as DEFAULT_ACCOUNT_ID, s as formatPairingApproveHint, t as NostrConfigSchema } from "./config-schema-CelPzg1N.js";
3
- import { a as DEFAULT_RELAYS } from "./setup-adapter-BjKmSwdW.js";
1
+ import { a as listNostrAccountIds, c as normalizePubkey, l as validatePrivateKey, n as nostrSetupContract, o as resolveDefaultNostrAccountId, r as nostrSetupWizard, s as resolveNostrAccount } from "./setup-surface-DAhyNOcb.js";
2
+ import { a as collectStatusIssuesFromLastError, i as buildChannelConfigSchema, n as NostrProfileSchema, o as createDefaultChannelRuntimeState, r as DEFAULT_ACCOUNT_ID, s as formatPairingApproveHint, t as NostrConfigSchema } from "./config-schema-CkYd8ACn.js";
3
+ import { s as DEFAULT_RELAYS } from "./setup-adapter-DLthHa2q.js";
4
4
  import { t as normalizeNostrStateAccountId } from "./state-account-id-CvBZ9s6P.js";
5
5
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
6
6
  import { createScopedDmSecurityResolver, createTopLevelChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
7
7
  import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
8
8
  import { missingTargetError } from "openclaw/plugin-sdk/channel-feedback";
9
- import { DEFAULT_INGRESS_ADOPTION_STALL_MS, bindIngressLifecycleToReplyOptions, createChannelIngressMonitor, createChannelMessageAdapterFromOutbound, runPassiveAccountLifecycle } from "openclaw/plugin-sdk/channel-outbound";
9
+ import { DEFAULT_INGRESS_ADOPTION_STALL_MS, bindIngressLifecycleToReplyOptions, createChannelIngressError, createChannelIngressMonitor, createChannelMessageAdapterFromOutbound, runPassiveAccountLifecycle } from "openclaw/plugin-sdk/channel-outbound";
10
10
  import { buildPassiveChannelStatusSummary, buildTrafficStatusSummary } from "openclaw/plugin-sdk/extension-shared";
11
11
  import { createComputedAccountStatusAdapter } from "openclaw/plugin-sdk/status-helpers";
12
- import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
12
+ import { isRecord as isNostrIngressRecord, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
13
13
  import { resolveStableChannelMessageIngress } from "openclaw/plugin-sdk/channel-ingress-runtime";
14
14
  import { createChannelPairingController } from "openclaw/plugin-sdk/channel-pairing";
15
15
  import { attachChannelToResult } from "openclaw/plugin-sdk/channel-send-result";
16
- import { stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
16
+ import { channelReadyPatch } from "openclaw/plugin-sdk/gateway-runtime";
17
+ import { chunkTextForOutbound, sanitizeAssistantVisibleText, stripMarkdown } from "openclaw/plugin-sdk/text-chunking";
17
18
  import { SimplePool, finalizeEvent, getPublicKey, verifyEvent } from "nostr-tools";
18
19
  import { decrypt, encrypt } from "nostr-tools/nip04";
19
20
  import { createDirectDmPreCryptoGuardPolicy } from "openclaw/plugin-sdk/direct-dm-guard-policy";
@@ -378,13 +379,10 @@ function createNostrCursorStateWriter(options) {
378
379
  var NostrIngressPermanentError = class extends Error {
379
380
  constructor(reason, message, options) {
380
381
  super(message, options);
381
- this.name = "NostrIngressPermanentError";
382
382
  this.reason = reason;
383
+ this.name = "NostrIngressPermanentError";
383
384
  }
384
385
  };
385
- function isNostrIngressRecord(value) {
386
- return typeof value === "object" && value !== null && !Array.isArray(value);
387
- }
388
386
  function requiredString(value, field) {
389
387
  if (typeof value === "string" && value.trim()) return value;
390
388
  throw new NostrIngressPermanentError("invalid-event", `Nostr event is missing ${field}.`);
@@ -426,23 +424,12 @@ const { setRuntime: setNostrRuntime, getRuntime: getNostrRuntime } = createPlugi
426
424
  //#endregion
427
425
  //#region extensions/nostr/src/nostr-ingress.ts
428
426
  const NOSTR_INGRESS_POLL_INTERVAL_MS = 500;
429
- const NOSTR_INGRESS_PRUNE_INTERVAL_MS = 3600 * 1e3;
430
- const NOSTR_INGRESS_COMPLETED_TTL_MS = 720 * 60 * 60 * 1e3;
431
- const NOSTR_INGRESS_COMPLETED_MAX_ENTRIES = 1e5;
432
- const NOSTR_INGRESS_FAILED_TTL_MS = 720 * 60 * 60 * 1e3;
433
- const NOSTR_INGRESS_FAILED_MAX_ENTRIES = 1e5;
434
427
  const NOSTR_INGRESS_APPEND_RETRY_MS = [
435
428
  0,
436
429
  100,
437
430
  300
438
431
  ];
439
- var NostrIngressAdmissionRejectedError = class extends Error {
440
- constructor(reason, message) {
441
- super(message);
442
- this.name = "NostrIngressAdmissionRejectedError";
443
- this.reason = reason;
444
- }
445
- };
432
+ const NostrIngressAdmissionRejectedError = createChannelIngressError("NostrIngressAdmissionRejectedError", { withReason: true });
446
433
  function deserializeNostrIngressEvent(rawEvent, claimedId) {
447
434
  let parsed;
448
435
  try {
@@ -467,10 +454,6 @@ function createNostrIngress(options) {
467
454
  queue ??= getNostrRuntime().state.openChannelIngressQueue({ accountId: options.accountId });
468
455
  return queue;
469
456
  };
470
- const legacyMigration = migrateNostrLegacyRecentEventIds({
471
- queue: getQueue(),
472
- eventIds: options.legacyEventIds ?? []
473
- });
474
457
  const monitor = createChannelIngressMonitor({
475
458
  queue: getQueue,
476
459
  inspect: (event) => {
@@ -506,11 +489,8 @@ function createNostrIngress(options) {
506
489
  deliver: (event, lifecycle) => options.deliver(event, lifecycle),
507
490
  pollIntervalMs: options.pollIntervalMs ?? NOSTR_INGRESS_POLL_INTERVAL_MS,
508
491
  retention: {
509
- pruneIntervalMs: NOSTR_INGRESS_PRUNE_INTERVAL_MS,
510
- completedTtlMs: NOSTR_INGRESS_COMPLETED_TTL_MS,
511
- completedMaxEntries: NOSTR_INGRESS_COMPLETED_MAX_ENTRIES,
512
- failedTtlMs: NOSTR_INGRESS_FAILED_TTL_MS,
513
- failedMaxEntries: NOSTR_INGRESS_FAILED_MAX_ENTRIES
492
+ completedMaxEntries: 1e5,
493
+ failedMaxEntries: 1e5
514
494
  },
515
495
  drain: {
516
496
  adoptionStallTimeoutMs: options.adoptionStallTimeoutMs ?? DEFAULT_INGRESS_ADOPTION_STALL_MS,
@@ -523,9 +503,14 @@ function createNostrIngress(options) {
523
503
  createStoppedError,
524
504
  onError: (error) => options.onError?.(error, "ingress drain")
525
505
  });
526
- const monitorStart = legacyMigration.then(() => {
506
+ const monitorStart = (async () => {
507
+ monitor.ensureQueueAvailable();
508
+ await migrateNostrLegacyRecentEventIds({
509
+ queue: getQueue(),
510
+ eventIds: options.legacyEventIds ?? []
511
+ });
527
512
  if (!stopping) monitor.start();
528
- });
513
+ })();
529
514
  monitorStart.catch((error) => options.onError?.(error, "ingress drain"));
530
515
  let admissionTail = Promise.resolve();
531
516
  const prepareAdmission = (event) => {
@@ -559,7 +544,7 @@ function createNostrIngress(options) {
559
544
  };
560
545
  };
561
546
  const admitOnce = async (prepared) => {
562
- await legacyMigration;
547
+ await monitorStart;
563
548
  const pending = await getQueue().listPending({ limit: options.maxPendingEvents });
564
549
  const claims = await getQueue().listClaims();
565
550
  if (pending.length + claims.length >= options.maxPendingEvents) throw new NostrIngressAdmissionRejectedError("backpressure", "Nostr event exceeds the durable ingress backlog.");
@@ -848,7 +833,7 @@ function createNostrRelaySubscriptionGroup(options) {
848
833
  clearTimeout(deadlineTimer);
849
834
  deadlineTimers.delete(deadlineTimer);
850
835
  settleBackfill(relay, "incomplete");
851
- if (!locallyClosing && !options.abort.aborted) options.onClose(relay, reasons);
836
+ if (!locallyClosing && !options.abort.aborted) options.onClose(relay, reasons.map(({ reason }) => reason));
852
837
  },
853
838
  maxWait: confirmDeadlineMs + LIBRARY_EOSE_TIMEOUT_MARGIN_MS,
854
839
  abort: options.abort
@@ -1374,6 +1359,9 @@ async function sendEncryptedDm(pool, sk, toPubkey, text, relays, metrics, circui
1374
1359
  const activeBuses = /* @__PURE__ */ new Map();
1375
1360
  const metricsSnapshots = /* @__PURE__ */ new Map();
1376
1361
  const ACCESS_GROUP_PREFIX = "accessGroup:";
1362
+ function normalizeRelayLifecycleKey(relay) {
1363
+ return new URL(relay).toString();
1364
+ }
1377
1365
  function parseNostrAccessGroupAllowFromEntry(entry) {
1378
1366
  const trimmed = entry.trim();
1379
1367
  if (!trimmed.startsWith(ACCESS_GROUP_PREFIX)) return null;
@@ -1409,17 +1397,20 @@ const startNostrGatewayAccount = async (ctx) => {
1409
1397
  const account = ctx.account;
1410
1398
  ctx.setStatus({
1411
1399
  accountId: account.accountId,
1412
- publicKey: account.publicKey
1400
+ publicKey: account.publicKey,
1401
+ lifecycle: "starting"
1413
1402
  });
1414
1403
  ctx.log?.info?.(`[${account.accountId}] starting Nostr provider (pubkey: ${account.publicKey})`);
1415
1404
  if (!account.configured) throw new Error("Nostr private key not configured");
1405
+ const channelRuntime = ctx.channelRuntime;
1406
+ if (!channelRuntime?.inbound?.buildContext) throw new Error("Nostr requires its registered channel runtime context builder");
1416
1407
  const runtime = getNostrRuntime();
1417
1408
  const pairing = createChannelPairingController({
1418
1409
  core: runtime,
1419
1410
  channel: "nostr",
1420
1411
  accountId: account.accountId
1421
1412
  });
1422
- const resolveInboundAccess = async (senderPubkey, rawBody) => await resolveStableChannelMessageIngress({
1413
+ const resolveInboundAccess = async (senderPubkey, rawBody, contextBinding) => await resolveStableChannelMessageIngress({
1423
1414
  channelId: "nostr",
1424
1415
  accountId: account.accountId,
1425
1416
  identity: nostrIngressIdentity,
@@ -1430,11 +1421,13 @@ const startNostrGatewayAccount = async (ctx) => {
1430
1421
  kind: "direct",
1431
1422
  id: senderPubkey
1432
1423
  },
1424
+ contextBinding,
1433
1425
  dmPolicy: account.config.dmPolicy ?? "pairing",
1434
1426
  allowFrom: account.config.allowFrom,
1435
1427
  command: runtime.channel.commands.shouldComputeCommandAuthorized(rawBody, ctx.cfg) ? { modeWhenAccessGroupsOff: "configured" } : void 0
1436
1428
  });
1437
1429
  let busHandle = null;
1430
+ const connectedRelays = /* @__PURE__ */ new Set();
1438
1431
  const authorizeSender = async (input) => {
1439
1432
  const resolved = await resolveInboundAccess(input.senderId, "");
1440
1433
  if (resolved.senderAccess.decision === "allow") return "allow";
@@ -1474,6 +1467,12 @@ const startNostrGatewayAccount = async (ctx) => {
1474
1467
  }
1475
1468
  const { dispatchInboundDirectDm } = await import("./inbound-direct-dm-runtime-DHn9NoYN.js");
1476
1469
  await dispatchInboundDirectDm({
1470
+ channelRuntime,
1471
+ resolveChannelIngress: async (contextBinding) => {
1472
+ const exactAccess = await resolveInboundAccess(senderPubkey, text, contextBinding);
1473
+ if (!exactAccess.senderAccess.allowed) throw new Error(`Nostr sender authorization changed before dispatch (${senderPubkey})`);
1474
+ return exactAccess;
1475
+ },
1477
1476
  cfg: ctx.cfg,
1478
1477
  channel: "nostr",
1479
1478
  channelLabel: "Nostr",
@@ -1492,14 +1491,14 @@ const startNostrGatewayAccount = async (ctx) => {
1492
1491
  commandAuthorized: resolvedAccess.commandAccess.requested ? resolvedAccess.commandAccess.authorized : void 0,
1493
1492
  turnAdoptionLifecycle: bindIngressLifecycleToReplyOptions(lifecycle).turnAdoptionLifecycle,
1494
1493
  deliver: async (payload) => {
1495
- const outboundText = payload && typeof payload === "object" && "text" in payload ? payload.text ?? "" : "";
1496
- if (!outboundText.trim()) return;
1494
+ const sanitizedText = sanitizeAssistantVisibleText(payload && typeof payload === "object" && "text" in payload ? payload.text ?? "" : "");
1495
+ if (!sanitizedText) return;
1497
1496
  const tableMode = runtime.channel.text.resolveMarkdownTableMode({
1498
1497
  cfg: ctx.cfg,
1499
1498
  channel: "nostr",
1500
1499
  accountId: account.accountId
1501
1500
  });
1502
- const message = stripMarkdown(runtime.channel.text.convertMarkdownTables(outboundText, tableMode));
1501
+ const message = stripMarkdown(runtime.channel.text.convertMarkdownTables(sanitizedText, tableMode));
1503
1502
  if (message) await reply(message);
1504
1503
  },
1505
1504
  onRecordError: (err) => {
@@ -1514,9 +1513,17 @@ const startNostrGatewayAccount = async (ctx) => {
1514
1513
  ctx.log?.error?.(`[${account.accountId}] Nostr error (${context}): ${error.message}`);
1515
1514
  },
1516
1515
  onConnect: (relay) => {
1516
+ connectedRelays.add(normalizeRelayLifecycleKey(relay));
1517
+ ctx.setStatus(channelReadyPatch({ accountId: account.accountId }));
1517
1518
  ctx.log?.debug?.(`[${account.accountId}] Connected to relay: ${relay}`);
1518
1519
  },
1519
1520
  onDisconnect: (relay) => {
1521
+ connectedRelays.delete(normalizeRelayLifecycleKey(relay));
1522
+ if (connectedRelays.size === 0) ctx.setStatus({
1523
+ accountId: account.accountId,
1524
+ connected: false,
1525
+ lifecycle: "recovering"
1526
+ });
1520
1527
  ctx.log?.debug?.(`[${account.accountId}] Disconnected from relay: ${relay}`);
1521
1528
  },
1522
1529
  onEose: (relays) => {
@@ -1564,6 +1571,8 @@ const nostrPairingTextAdapter = {
1564
1571
  const nostrOutboundAdapter = {
1565
1572
  deliveryMode: "direct",
1566
1573
  textChunkLimit: 4e3,
1574
+ chunker: chunkTextForOutbound,
1575
+ sanitizeText: ({ text }) => sanitizeAssistantVisibleText(text),
1567
1576
  deliveryCapabilities: { durableFinal: {
1568
1577
  text: true,
1569
1578
  messageSendingHooks: true
@@ -1629,6 +1638,14 @@ function normalizeNostrTarget(target) {
1629
1638
  return target.trim();
1630
1639
  }
1631
1640
  }
1641
+ function inferNostrTargetChatType(target) {
1642
+ try {
1643
+ normalizePubkey(stripNostrTargetPrefix(target));
1644
+ return "direct";
1645
+ } catch {
1646
+ return;
1647
+ }
1648
+ }
1632
1649
  const resolveNostrDmPolicy = createScopedDmSecurityResolver({
1633
1650
  channelKey: "nostr",
1634
1651
  resolvePolicy: (account) => account.config.dmPolicy,
@@ -1703,7 +1720,6 @@ const nostrPlugin = createChatChannelPlugin({
1703
1720
  },
1704
1721
  reload: { configPrefixes: ["channels.nostr"] },
1705
1722
  configSchema: buildChannelConfigSchema(NostrConfigSchema),
1706
- setup: nostrSetupAdapter,
1707
1723
  setupContract: nostrSetupContract,
1708
1724
  setupWizard: nostrSetupWizard,
1709
1725
  config: {
@@ -1718,6 +1734,7 @@ const nostrPlugin = createChatChannelPlugin({
1718
1734
  messaging: {
1719
1735
  targetPrefixes: ["nostr"],
1720
1736
  normalizeTarget: normalizeNostrTarget,
1737
+ inferTargetChatType: ({ to }) => inferNostrTargetChatType(to),
1721
1738
  targetResolver: {
1722
1739
  looksLikeId: (input, normalized) => {
1723
1740
  const trimmed = normalized?.trim() || stripNostrTargetPrefix(input);
@@ -1,2 +1,2 @@
1
- import { n as nostrPlugin } from "./channel-DNeI-LB-.js";
1
+ import { n as nostrPlugin } from "./channel-BifOvAwp.js";
2
2
  export { nostrPlugin };
@@ -46,6 +46,7 @@ const NostrConfigSchema = z.object({
46
46
  defaultAccount: z.string().optional(),
47
47
  /** Whether this channel is enabled */
48
48
  enabled: z.boolean().optional(),
49
+ configWrites: z.boolean().optional(),
49
50
  /** Markdown formatting overrides (tables). */
50
51
  markdown: MarkdownConfigSchema,
51
52
  /** Private key in hex or nsec bech32 format */
@@ -1,22 +1,20 @@
1
1
  import { t as normalizeNostrStateAccountId } from "./state-account-id-CvBZ9s6P.js";
2
+ import { asFiniteNumber } from "openclaw/plugin-sdk/string-coerce-runtime";
2
3
  import fs from "node:fs/promises";
3
4
  import path from "node:path";
4
- import { archiveLegacyStateSource } from "openclaw/plugin-sdk/runtime-doctor";
5
+ import { archiveLegacyStateSource } from "openclaw/plugin-sdk/runtime-doctor-migrations";
5
6
  //#region extensions/nostr/doctor-contract-api.ts
6
7
  const BUS_STATE_NAMESPACE = "bus-state";
7
8
  const PROFILE_STATE_NAMESPACE = "profile-state";
8
9
  const MAX_NOSTR_STATE_ENTRIES = 256;
9
- function finiteNumberOrNull(value) {
10
- return typeof value === "number" && Number.isFinite(value) ? value : null;
11
- }
12
10
  function parseBusState(value) {
13
11
  if (!value || typeof value !== "object" || Array.isArray(value)) return null;
14
12
  const parsed = value;
15
13
  if (parsed.version !== 1 && parsed.version !== 2) return null;
16
14
  return {
17
15
  version: 2,
18
- lastProcessedAt: finiteNumberOrNull(parsed.lastProcessedAt),
19
- gatewayStartedAt: finiteNumberOrNull(parsed.gatewayStartedAt),
16
+ lastProcessedAt: asFiniteNumber(parsed.lastProcessedAt) ?? null,
17
+ gatewayStartedAt: asFiniteNumber(parsed.gatewayStartedAt) ?? null,
20
18
  recentEventIds: parsed.version === 2 && Array.isArray(parsed.recentEventIds) ? parsed.recentEventIds.filter((entry) => typeof entry === "string") : []
21
19
  };
22
20
  }
@@ -31,7 +29,7 @@ function parseProfileState(value) {
31
29
  }
32
30
  return {
33
31
  version: 1,
34
- lastPublishedAt: finiteNumberOrNull(parsed.lastPublishedAt),
32
+ lastPublishedAt: asFiniteNumber(parsed.lastPublishedAt) ?? null,
35
33
  lastPublishedEventId: typeof parsed.lastPublishedEventId === "string" ? parsed.lastPublishedEventId : null,
36
34
  lastPublishResults: rawResults === null || Object.keys(lastPublishResults).length === 0 ? null : lastPublishResults
37
35
  };
@@ -1,10 +1,19 @@
1
1
  import { uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
2
+ import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
2
3
  import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/routing";
3
- import { patchTopLevelChannelConfigSection, splitSetupEntries } from "openclaw/plugin-sdk/setup";
4
+ import { createSetupTranslator, createStandardChannelSetupStatus, patchTopLevelChannelConfigSection, splitSetupEntries } from "openclaw/plugin-sdk/setup";
4
5
  import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
5
6
  //#region extensions/nostr/src/default-relays.ts
6
7
  const DEFAULT_RELAYS = ["wss://relay.damus.io", "wss://nos.lol"];
7
8
  //#endregion
9
+ //#region extensions/nostr/src/private-key.ts
10
+ const NOSTR_PRIVATE_KEY_ENV_VAR = "NOSTR_PRIVATE_KEY";
11
+ function resolveNostrPrivateKey(value) {
12
+ const configured = normalizeSecretInputString(value);
13
+ if (configured || hasConfiguredSecretInput(value)) return configured ?? "";
14
+ return process.env["NOSTR_PRIVATE_KEY"]?.trim() ?? "";
15
+ }
16
+ //#endregion
8
17
  //#region extensions/nostr/src/setup-adapter.ts
9
18
  const channel = "nostr";
10
19
  function buildNostrSetupPatch(accountId, patch) {
@@ -41,25 +50,23 @@ function createNostrSetupAdapter(params) {
41
50
  patch: buildNostrSetupPatch(accountId, name?.trim() ? { name: name.trim() } : {})
42
51
  }),
43
52
  validateInput: ({ input }) => {
44
- const typedInput = input;
45
- if (!typedInput.useEnv) {
46
- const privateKey = typedInput.privateKey?.trim();
53
+ if (!input.useEnv) {
54
+ const privateKey = input.privateKey?.trim();
47
55
  if (!privateKey) return "Nostr requires --private-key or --use-env.";
48
56
  if (!params.validatePrivateKey(privateKey)) return "Nostr private key must be valid nsec or 64-character hex.";
49
57
  }
50
- if (typedInput.relayUrls?.trim()) return parseRelayUrls(typedInput.relayUrls).error ?? null;
58
+ if (input.relayUrls?.trim()) return parseRelayUrls(input.relayUrls).error ?? null;
51
59
  return null;
52
60
  },
53
61
  applyAccountConfig: ({ cfg, accountId, input }) => {
54
- const typedInput = input;
55
- const relayResult = typedInput.relayUrls?.trim() ? parseRelayUrls(typedInput.relayUrls) : { relays: [] };
62
+ const relayResult = input.relayUrls?.trim() ? parseRelayUrls(input.relayUrls) : { relays: [] };
56
63
  return patchTopLevelChannelConfigSection({
57
64
  cfg,
58
65
  channel,
59
66
  enabled: true,
60
- clearFields: typedInput.useEnv ? ["privateKey"] : void 0,
67
+ clearFields: input.useEnv ? ["privateKey"] : void 0,
61
68
  patch: buildNostrSetupPatch(accountId, {
62
- ...typedInput.useEnv ? {} : { privateKey: typedInput.privateKey?.trim() },
69
+ ...input.useEnv ? {} : { privateKey: input.privateKey?.trim() },
63
70
  ...relayResult.relays.length > 0 ? { relays: relayResult.relays } : {}
64
71
  })
65
72
  });
@@ -89,11 +96,32 @@ function createNostrSetupContract(adapter) {
89
96
  cli: {
90
97
  flags: "--use-env",
91
98
  description: "Use NOSTR_PRIVATE_KEY"
92
- }
99
+ },
100
+ envVars: [NOSTR_PRIVATE_KEY_ENV_VAR]
93
101
  }
94
102
  },
95
- legacyAdapter: adapter
103
+ adapter
104
+ });
105
+ }
106
+ function createNostrSetupStatus(resolveAccount) {
107
+ const t = createSetupTranslator();
108
+ return createStandardChannelSetupStatus({
109
+ channelLabel: "Nostr",
110
+ configuredLabel: t("wizard.channels.statusConfigured"),
111
+ unconfiguredLabel: t("wizard.channels.statusNeedsPrivateKey"),
112
+ configuredHint: t("wizard.channels.statusConfigured"),
113
+ unconfiguredHint: t("wizard.channels.statusNeedsPrivateKey"),
114
+ configuredScore: 1,
115
+ unconfiguredScore: 0,
116
+ includeStatusLine: true,
117
+ resolveConfigured: ({ cfg, accountId }) => resolveAccount({
118
+ cfg,
119
+ accountId
120
+ }).configured,
121
+ resolveExtraStatusLines: ({ cfg }) => {
122
+ return [`Relays: ${resolveAccount({ cfg }).relays.length || DEFAULT_RELAYS.length}`];
123
+ }
96
124
  });
97
125
  }
98
126
  //#endregion
99
- export { DEFAULT_RELAYS as a, parseRelayUrls as i, createNostrSetupAdapter as n, createNostrSetupContract as r, buildNostrSetupPatch as t };
127
+ export { parseRelayUrls as a, createNostrSetupStatus as i, createNostrSetupAdapter as n, resolveNostrPrivateKey as o, createNostrSetupContract as r, DEFAULT_RELAYS as s, buildNostrSetupPatch as t };
package/dist/setup-api.js CHANGED
@@ -1,2 +1,2 @@
1
- import { r as nostrSetupWizard, t as nostrSetupAdapter } from "./setup-surface-BJCFpe02.js";
1
+ import { r as nostrSetupWizard, t as nostrSetupAdapter } from "./setup-surface-DAhyNOcb.js";
2
2
  export { nostrSetupAdapter, nostrSetupWizard };
@@ -1,18 +1,12 @@
1
- import { i as buildChannelConfigSchema, t as NostrConfigSchema } from "./config-schema-CelPzg1N.js";
2
- import { a as DEFAULT_RELAYS, n as createNostrSetupAdapter, r as createNostrSetupContract } from "./setup-adapter-BjKmSwdW.js";
1
+ import { i as buildChannelConfigSchema, t as NostrConfigSchema } from "./config-schema-CkYd8ACn.js";
2
+ import { i as createNostrSetupStatus, n as createNostrSetupAdapter, o as resolveNostrPrivateKey, r as createNostrSetupContract, s as DEFAULT_RELAYS } from "./setup-adapter-DLthHa2q.js";
3
3
  import { describeAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
4
- import { DEFAULT_ACCOUNT_ID, createDelegatedSetupWizardProxy, createSetupTranslator, createStandardChannelSetupStatus } from "openclaw/plugin-sdk/setup-runtime";
4
+ import { DEFAULT_ACCOUNT_ID, createDelegatedSetupWizardProxy } from "openclaw/plugin-sdk/setup-runtime";
5
5
  //#region extensions/nostr/src/channel.setup.ts
6
- const t = createSetupTranslator();
7
6
  const channel = "nostr";
8
7
  function getNostrConfig(cfg) {
9
8
  return cfg.channels?.nostr;
10
9
  }
11
- function listSetupNostrAccountIds(cfg) {
12
- const nostrCfg = getNostrConfig(cfg);
13
- if (!(typeof nostrCfg?.privateKey === "string" ? nostrCfg.privateKey.trim() : "")) return [];
14
- return [resolveDefaultSetupNostrAccountId(cfg)];
15
- }
16
10
  function resolveDefaultSetupNostrAccountId(cfg) {
17
11
  const configured = getNostrConfig(cfg)?.defaultAccount;
18
12
  return typeof configured === "string" && configured.trim() ? configured.trim() : DEFAULT_ACCOUNT_ID;
@@ -20,7 +14,7 @@ function resolveDefaultSetupNostrAccountId(cfg) {
20
14
  function resolveSetupNostrAccount(params) {
21
15
  const nostrCfg = getNostrConfig(params.cfg);
22
16
  const accountId = params.accountId?.trim() || resolveDefaultSetupNostrAccountId(params.cfg);
23
- const privateKey = typeof nostrCfg?.privateKey === "string" ? nostrCfg.privateKey.trim() : "";
17
+ const privateKey = resolveNostrPrivateKey(nostrCfg?.privateKey);
24
18
  const configured = Boolean(privateKey);
25
19
  return {
26
20
  accountId,
@@ -42,34 +36,10 @@ function resolveSetupNostrAccount(params) {
42
36
  }
43
37
  };
44
38
  }
45
- function looksLikeNostrPrivateKey(privateKey) {
46
- return privateKey.startsWith("nsec1") || privateKey.startsWith("NSEC1") || /^[0-9a-fA-F]{64}$/.test(privateKey);
47
- }
48
- const nostrSetupAdapter = createNostrSetupAdapter({
49
- resolveAccountId: (cfg, accountId) => accountId?.trim() || resolveDefaultSetupNostrAccountId(cfg),
50
- validatePrivateKey: looksLikeNostrPrivateKey
51
- });
52
- const nostrSetupContract = createNostrSetupContract(nostrSetupAdapter);
53
39
  const nostrSetupWizard = createDelegatedSetupWizardProxy({
54
40
  channel,
55
- loadWizard: async () => (await import("./setup-surface-BJCFpe02.js").then((n) => n.i)).nostrSetupWizard,
56
- status: { ...createStandardChannelSetupStatus({
57
- channelLabel: "Nostr",
58
- configuredLabel: t("wizard.channels.statusConfigured"),
59
- unconfiguredLabel: t("wizard.channels.statusNeedsPrivateKey"),
60
- configuredHint: t("wizard.channels.statusConfigured"),
61
- unconfiguredHint: t("wizard.channels.statusNeedsPrivateKey"),
62
- configuredScore: 1,
63
- unconfiguredScore: 0,
64
- includeStatusLine: true,
65
- resolveConfigured: ({ cfg, accountId }) => resolveSetupNostrAccount({
66
- cfg,
67
- accountId
68
- }).configured,
69
- resolveExtraStatusLines: ({ cfg }) => {
70
- return [`Relays: ${resolveSetupNostrAccount({ cfg }).relays.length || DEFAULT_RELAYS.length}`];
71
- }
72
- }) },
41
+ loadWizard: async () => (await import("./setup-surface-DAhyNOcb.js").then((n) => n.i)).nostrSetupWizard,
42
+ status: createNostrSetupStatus(resolveSetupNostrAccount),
73
43
  resolveShouldPromptAccountIds: () => false,
74
44
  delegatePrepare: true,
75
45
  delegateFinalize: true
@@ -91,11 +61,13 @@ const nostrSetupPlugin = {
91
61
  },
92
62
  reload: { configPrefixes: ["channels.nostr"] },
93
63
  configSchema: buildChannelConfigSchema(NostrConfigSchema),
94
- setup: nostrSetupAdapter,
95
- setupContract: nostrSetupContract,
64
+ setupContract: createNostrSetupContract(createNostrSetupAdapter({
65
+ resolveAccountId: (cfg, accountId) => accountId?.trim() || resolveDefaultSetupNostrAccountId(cfg),
66
+ validatePrivateKey: (privateKey) => /^(?:nsec1|NSEC1)|^[0-9a-fA-F]{64}$/u.test(privateKey)
67
+ })),
96
68
  setupWizard: nostrSetupWizard,
97
69
  config: {
98
- listAccountIds: listSetupNostrAccountIds,
70
+ listAccountIds: (cfg) => resolveSetupNostrAccount({ cfg }).configured ? [resolveDefaultSetupNostrAccountId(cfg)] : [],
99
71
  resolveAccount: (cfg, accountId) => resolveSetupNostrAccount({
100
72
  cfg,
101
73
  accountId
@@ -1,11 +1,11 @@
1
- import { a as DEFAULT_RELAYS, i as parseRelayUrls, n as createNostrSetupAdapter, r as createNostrSetupContract, t as buildNostrSetupPatch } from "./setup-adapter-BjKmSwdW.js";
1
+ import { a as parseRelayUrls, i as createNostrSetupStatus, n as createNostrSetupAdapter, o as resolveNostrPrivateKey, r as createNostrSetupContract, s as DEFAULT_RELAYS, t as buildNostrSetupPatch } from "./setup-adapter-DLthHa2q.js";
2
2
  import { createAccountListHelpers } from "openclaw/plugin-sdk/account-helpers";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { hasConfiguredSecretInput, normalizeSecretInputString } from "openclaw/plugin-sdk/secret-input";
5
5
  import { getPublicKey, nip19 } from "nostr-tools";
6
6
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId, normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-id";
7
7
  import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/routing";
8
- import { createSetupTranslator, createStandardChannelSetupStatus, createTopLevelChannelDmPolicy, createTopLevelChannelParsedAllowFromPrompt, defineTokenCredential, formatDocsLink, mergeAllowFromEntries, parseSetupEntriesWithParser, patchTopLevelChannelConfigSection, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
8
+ import { createSetupTranslator, createTopLevelChannelDmPolicy, createTopLevelChannelParsedAllowFromPrompt, defineTokenCredential, formatDocsLink, mergeAllowFromEntries, parseSetupEntriesWithParser, patchTopLevelChannelConfigSection, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
9
9
  //#region \0rolldown/runtime.js
10
10
  var __defProp = Object.defineProperty;
11
11
  var __exportAll = (all, no_symbols) => {
@@ -59,7 +59,7 @@ const { listAccountIds: listNostrAccountIds, resolveDefaultAccountId: resolveDef
59
59
  fallbackAccountIdWhenEmpty: false,
60
60
  resolveImplicitAccountId: (cfg) => {
61
61
  const account = cfg.channels?.nostr;
62
- return normalizeSecretInputString(account?.privateKey) ? normalizeOptionalAccountId(account?.defaultAccount) ?? DEFAULT_ACCOUNT_ID : void 0;
62
+ return resolveNostrPrivateKey(account?.privateKey) ? normalizeOptionalAccountId(account?.defaultAccount) ?? DEFAULT_ACCOUNT_ID : void 0;
63
63
  }
64
64
  });
65
65
  /**
@@ -69,7 +69,7 @@ function resolveNostrAccount(opts) {
69
69
  const accountId = normalizeAccountId(opts.accountId ?? resolveDefaultNostrAccountId(opts.cfg));
70
70
  const nostrCfg = opts.cfg.channels?.nostr;
71
71
  const baseEnabled = nostrCfg?.enabled !== false;
72
- const privateKey = normalizeSecretInputString(nostrCfg?.privateKey) ?? "";
72
+ const privateKey = resolveNostrPrivateKey(nostrCfg?.privateKey);
73
73
  const configured = Boolean(privateKey);
74
74
  let publicKey = "";
75
75
  if (privateKey) try {
@@ -162,20 +162,7 @@ const nostrSetupWizard = {
162
162
  channel,
163
163
  resolveAccountIdForConfigure: ({ accountOverride, defaultAccountId }) => accountOverride?.trim() || defaultAccountId,
164
164
  resolveShouldPromptAccountIds: () => false,
165
- status: createStandardChannelSetupStatus({
166
- channelLabel: "Nostr",
167
- configuredLabel: t("wizard.channels.statusConfigured"),
168
- unconfiguredLabel: t("wizard.channels.statusNeedsPrivateKey"),
169
- configuredHint: t("wizard.channels.statusConfigured"),
170
- unconfiguredHint: t("wizard.channels.statusNeedsPrivateKey"),
171
- configuredScore: 1,
172
- unconfiguredScore: 0,
173
- includeStatusLine: true,
174
- resolveConfigured: ({ cfg }) => resolveNostrAccount({ cfg }).configured,
175
- resolveExtraStatusLines: ({ cfg }) => {
176
- return [`Relays: ${resolveNostrAccount({ cfg }).relays.length || DEFAULT_RELAYS.length}`];
177
- }
178
- }),
165
+ status: createNostrSetupStatus(resolveNostrAccount),
179
166
  introNote: {
180
167
  title: t("wizard.nostr.setupTitle"),
181
168
  lines: NOSTR_SETUP_HELP_LINES