@hashgraphonline/standards-sdk 0.1.143-feat-solana-register.canary.1c6f446.78 → 0.1.144-feat-solana-register.canary.d5edcec.80

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 (340) hide show
  1. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  2. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/services/registry-broker/schemas.d.ts +153 -153
  5. package/dist/cjs/standards-sdk.cjs +2 -2
  6. package/dist/cjs/standards-sdk.cjs.map +1 -1
  7. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  8. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  10. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  11. package/dist/es/index.d.ts.map +1 -1
  12. package/dist/es/services/registry-broker/schemas.d.ts +153 -153
  13. package/dist/es/standards-sdk.es.js +134 -135
  14. package/dist/es/standards-sdk.es.js.map +1 -1
  15. package/dist/es/standards-sdk.es10.js +70 -90
  16. package/dist/es/standards-sdk.es10.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +229 -27
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +109 -228
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +15 -94
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +80 -30
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +27 -80
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +136 -25
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +27 -140
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +20 -27
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +156 -18
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +198 -148
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es11.js +121 -45
  38. package/dist/es/standards-sdk.es11.js.map +1 -1
  39. package/dist/es/standards-sdk.es110.js +747 -167
  40. package/dist/es/standards-sdk.es110.js.map +1 -1
  41. package/dist/es/standards-sdk.es111.js +9 -786
  42. package/dist/es/standards-sdk.es111.js.map +1 -1
  43. package/dist/es/standards-sdk.es112.js +567 -13
  44. package/dist/es/standards-sdk.es112.js.map +1 -1
  45. package/dist/es/standards-sdk.es113.js +576 -541
  46. package/dist/es/standards-sdk.es113.js.map +1 -1
  47. package/dist/es/standards-sdk.es114.js +12 -601
  48. package/dist/es/standards-sdk.es114.js.map +1 -1
  49. package/dist/es/standards-sdk.es115.js +2 -13
  50. package/dist/es/standards-sdk.es115.js.map +1 -1
  51. package/dist/es/standards-sdk.es116.js +87 -2
  52. package/dist/es/standards-sdk.es116.js.map +1 -1
  53. package/dist/es/standards-sdk.es117.js +37 -84
  54. package/dist/es/standards-sdk.es117.js.map +1 -1
  55. package/dist/es/standards-sdk.es118.js +2 -40
  56. package/dist/es/standards-sdk.es118.js.map +1 -1
  57. package/dist/es/standards-sdk.es119.js +231 -2
  58. package/dist/es/standards-sdk.es119.js.map +1 -1
  59. package/dist/es/standards-sdk.es12.js +60 -159
  60. package/dist/es/standards-sdk.es12.js.map +1 -1
  61. package/dist/es/standards-sdk.es120.js +1110 -201
  62. package/dist/es/standards-sdk.es120.js.map +1 -1
  63. package/dist/es/standards-sdk.es121.js +225 -1059
  64. package/dist/es/standards-sdk.es121.js.map +1 -1
  65. package/dist/es/standards-sdk.es122.js +419 -303
  66. package/dist/es/standards-sdk.es122.js.map +1 -1
  67. package/dist/es/standards-sdk.es123.js +351 -418
  68. package/dist/es/standards-sdk.es123.js.map +1 -1
  69. package/dist/es/standards-sdk.es124.js +872 -347
  70. package/dist/es/standards-sdk.es124.js.map +1 -1
  71. package/dist/es/standards-sdk.es125.js +182 -854
  72. package/dist/es/standards-sdk.es125.js.map +1 -1
  73. package/dist/es/standards-sdk.es126.js +1512 -153
  74. package/dist/es/standards-sdk.es126.js.map +1 -1
  75. package/dist/es/standards-sdk.es127.js +157 -1547
  76. package/dist/es/standards-sdk.es127.js.map +1 -1
  77. package/dist/es/standards-sdk.es128.js +192 -162
  78. package/dist/es/standards-sdk.es128.js.map +1 -1
  79. package/dist/es/standards-sdk.es129.js +61 -164
  80. package/dist/es/standards-sdk.es129.js.map +1 -1
  81. package/dist/es/standards-sdk.es13.js +200 -60
  82. package/dist/es/standards-sdk.es13.js.map +1 -1
  83. package/dist/es/standards-sdk.es130.js +102 -85
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +222 -96
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +153 -220
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +104 -162
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +296 -92
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +432 -294
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +14 -461
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +79 -15
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +77 -71
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +152 -80
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +149 -178
  104. package/dist/es/standards-sdk.es14.js.map +1 -1
  105. package/dist/es/standards-sdk.es140.js +7 -159
  106. package/dist/es/standards-sdk.es140.js.map +1 -1
  107. package/dist/es/standards-sdk.es141.js +86 -7
  108. package/dist/es/standards-sdk.es141.js.map +1 -1
  109. package/dist/es/standards-sdk.es142.js +44 -65
  110. package/dist/es/standards-sdk.es142.js.map +1 -1
  111. package/dist/es/standards-sdk.es143.js +30 -65
  112. package/dist/es/standards-sdk.es143.js.map +1 -1
  113. package/dist/es/standards-sdk.es144.js +34 -30
  114. package/dist/es/standards-sdk.es144.js.map +1 -1
  115. package/dist/es/standards-sdk.es145.js +28 -34
  116. package/dist/es/standards-sdk.es145.js.map +1 -1
  117. package/dist/es/standards-sdk.es146.js +138 -28
  118. package/dist/es/standards-sdk.es146.js.map +1 -1
  119. package/dist/es/standards-sdk.es147.js +37 -133
  120. package/dist/es/standards-sdk.es147.js.map +1 -1
  121. package/dist/es/standards-sdk.es148.js +12280 -33
  122. package/dist/es/standards-sdk.es148.js.map +1 -1
  123. package/dist/es/standards-sdk.es149.js +1 -1
  124. package/dist/es/standards-sdk.es15.js +152 -151
  125. package/dist/es/standards-sdk.es15.js.map +1 -1
  126. package/dist/es/standards-sdk.es150.js +12 -12284
  127. package/dist/es/standards-sdk.es150.js.map +1 -1
  128. package/dist/es/standards-sdk.es151.js +54 -15
  129. package/dist/es/standards-sdk.es151.js.map +1 -1
  130. package/dist/es/standards-sdk.es152.js +72 -160
  131. package/dist/es/standards-sdk.es152.js.map +1 -1
  132. package/dist/es/standards-sdk.es153.js +139 -289
  133. package/dist/es/standards-sdk.es153.js.map +1 -1
  134. package/dist/es/standards-sdk.es154.js +274 -298
  135. package/dist/es/standards-sdk.es154.js.map +1 -1
  136. package/dist/es/standards-sdk.es155.js +262 -369
  137. package/dist/es/standards-sdk.es155.js.map +1 -1
  138. package/dist/es/standards-sdk.es156.js +316 -194
  139. package/dist/es/standards-sdk.es156.js.map +1 -1
  140. package/dist/es/standards-sdk.es157.js +319 -64
  141. package/dist/es/standards-sdk.es157.js.map +1 -1
  142. package/dist/es/standards-sdk.es158.js +69 -49
  143. package/dist/es/standards-sdk.es158.js.map +1 -1
  144. package/dist/es/standards-sdk.es159.js +222 -65
  145. package/dist/es/standards-sdk.es159.js.map +1 -1
  146. package/dist/es/standards-sdk.es16.js +917 -136
  147. package/dist/es/standards-sdk.es16.js.map +1 -1
  148. package/dist/es/standards-sdk.es160.js +223 -218
  149. package/dist/es/standards-sdk.es160.js.map +1 -1
  150. package/dist/es/standards-sdk.es17.js +23 -948
  151. package/dist/es/standards-sdk.es17.js.map +1 -1
  152. package/dist/es/standards-sdk.es18.js +2422 -24
  153. package/dist/es/standards-sdk.es18.js.map +1 -1
  154. package/dist/es/standards-sdk.es19.js +818 -2092
  155. package/dist/es/standards-sdk.es19.js.map +1 -1
  156. package/dist/es/standards-sdk.es2.js +654 -189
  157. package/dist/es/standards-sdk.es2.js.map +1 -1
  158. package/dist/es/standards-sdk.es20.js +205 -1092
  159. package/dist/es/standards-sdk.es20.js.map +1 -1
  160. package/dist/es/standards-sdk.es21.js +858 -221
  161. package/dist/es/standards-sdk.es21.js.map +1 -1
  162. package/dist/es/standards-sdk.es22.js +179 -903
  163. package/dist/es/standards-sdk.es22.js.map +1 -1
  164. package/dist/es/standards-sdk.es23.js +164 -179
  165. package/dist/es/standards-sdk.es23.js.map +1 -1
  166. package/dist/es/standards-sdk.es24.js +62 -118
  167. package/dist/es/standards-sdk.es24.js.map +1 -1
  168. package/dist/es/standards-sdk.es25.js +377 -57
  169. package/dist/es/standards-sdk.es25.js.map +1 -1
  170. package/dist/es/standards-sdk.es26.js +36 -394
  171. package/dist/es/standards-sdk.es26.js.map +1 -1
  172. package/dist/es/standards-sdk.es27.js +901 -50
  173. package/dist/es/standards-sdk.es27.js.map +1 -1
  174. package/dist/es/standards-sdk.es28.js +134 -922
  175. package/dist/es/standards-sdk.es28.js.map +1 -1
  176. package/dist/es/standards-sdk.es29.js +7 -134
  177. package/dist/es/standards-sdk.es29.js.map +1 -1
  178. package/dist/es/standards-sdk.es3.js +63 -680
  179. package/dist/es/standards-sdk.es3.js.map +1 -1
  180. package/dist/es/standards-sdk.es30.js +344 -7
  181. package/dist/es/standards-sdk.es30.js.map +1 -1
  182. package/dist/es/standards-sdk.es31.js +302 -287
  183. package/dist/es/standards-sdk.es31.js.map +1 -1
  184. package/dist/es/standards-sdk.es32.js +94 -322
  185. package/dist/es/standards-sdk.es32.js.map +1 -1
  186. package/dist/es/standards-sdk.es33.js +458 -101
  187. package/dist/es/standards-sdk.es33.js.map +1 -1
  188. package/dist/es/standards-sdk.es34.js +132 -451
  189. package/dist/es/standards-sdk.es34.js.map +1 -1
  190. package/dist/es/standards-sdk.es35.js +216 -130
  191. package/dist/es/standards-sdk.es35.js.map +1 -1
  192. package/dist/es/standards-sdk.es36.js +273 -196
  193. package/dist/es/standards-sdk.es36.js.map +1 -1
  194. package/dist/es/standards-sdk.es37.js +148 -87
  195. package/dist/es/standards-sdk.es37.js.map +1 -1
  196. package/dist/es/standards-sdk.es38.js +183 -320
  197. package/dist/es/standards-sdk.es38.js.map +1 -1
  198. package/dist/es/standards-sdk.es39.js +238 -161
  199. package/dist/es/standards-sdk.es39.js.map +1 -1
  200. package/dist/es/standards-sdk.es4.js +425 -63
  201. package/dist/es/standards-sdk.es4.js.map +1 -1
  202. package/dist/es/standards-sdk.es40.js +136 -254
  203. package/dist/es/standards-sdk.es40.js.map +1 -1
  204. package/dist/es/standards-sdk.es41.js +225 -176
  205. package/dist/es/standards-sdk.es41.js.map +1 -1
  206. package/dist/es/standards-sdk.es42.js +199 -261
  207. package/dist/es/standards-sdk.es42.js.map +1 -1
  208. package/dist/es/standards-sdk.es43.js +237 -199
  209. package/dist/es/standards-sdk.es43.js.map +1 -1
  210. package/dist/es/standards-sdk.es44.js +209 -201
  211. package/dist/es/standards-sdk.es44.js.map +1 -1
  212. package/dist/es/standards-sdk.es45.js +305 -201
  213. package/dist/es/standards-sdk.es45.js.map +1 -1
  214. package/dist/es/standards-sdk.es46.js +371 -261
  215. package/dist/es/standards-sdk.es46.js.map +1 -1
  216. package/dist/es/standards-sdk.es47.js +316 -372
  217. package/dist/es/standards-sdk.es47.js.map +1 -1
  218. package/dist/es/standards-sdk.es48.js +404 -336
  219. package/dist/es/standards-sdk.es48.js.map +1 -1
  220. package/dist/es/standards-sdk.es49.js +83 -449
  221. package/dist/es/standards-sdk.es49.js.map +1 -1
  222. package/dist/es/standards-sdk.es5.js +232 -354
  223. package/dist/es/standards-sdk.es5.js.map +1 -1
  224. package/dist/es/standards-sdk.es50.js +179 -89
  225. package/dist/es/standards-sdk.es50.js.map +1 -1
  226. package/dist/es/standards-sdk.es51.js +231 -165
  227. package/dist/es/standards-sdk.es51.js.map +1 -1
  228. package/dist/es/standards-sdk.es52.js +25 -262
  229. package/dist/es/standards-sdk.es52.js.map +1 -1
  230. package/dist/es/standards-sdk.es53.js +56 -26
  231. package/dist/es/standards-sdk.es53.js.map +1 -1
  232. package/dist/es/standards-sdk.es54.js +12 -57
  233. package/dist/es/standards-sdk.es54.js.map +1 -1
  234. package/dist/es/standards-sdk.es55.js +49 -12
  235. package/dist/es/standards-sdk.es55.js.map +1 -1
  236. package/dist/es/standards-sdk.es56.js +115 -43
  237. package/dist/es/standards-sdk.es56.js.map +1 -1
  238. package/dist/es/standards-sdk.es57.js +42 -115
  239. package/dist/es/standards-sdk.es57.js.map +1 -1
  240. package/dist/es/standards-sdk.es58.js +52 -43
  241. package/dist/es/standards-sdk.es58.js.map +1 -1
  242. package/dist/es/standards-sdk.es59.js +36 -50
  243. package/dist/es/standards-sdk.es59.js.map +1 -1
  244. package/dist/es/standards-sdk.es6.js +125 -246
  245. package/dist/es/standards-sdk.es6.js.map +1 -1
  246. package/dist/es/standards-sdk.es60.js +207 -39
  247. package/dist/es/standards-sdk.es60.js.map +1 -1
  248. package/dist/es/standards-sdk.es61.js +24 -201
  249. package/dist/es/standards-sdk.es61.js.map +1 -1
  250. package/dist/es/standards-sdk.es62.js +87 -25
  251. package/dist/es/standards-sdk.es62.js.map +1 -1
  252. package/dist/es/standards-sdk.es63.js +3 -51
  253. package/dist/es/standards-sdk.es63.js.map +1 -1
  254. package/dist/es/standards-sdk.es64.js +100 -3
  255. package/dist/es/standards-sdk.es64.js.map +1 -1
  256. package/dist/es/standards-sdk.es65.js +61 -62
  257. package/dist/es/standards-sdk.es65.js.map +1 -1
  258. package/dist/es/standards-sdk.es66.js +17 -98
  259. package/dist/es/standards-sdk.es66.js.map +1 -1
  260. package/dist/es/standards-sdk.es67.js +77 -19
  261. package/dist/es/standards-sdk.es67.js.map +1 -1
  262. package/dist/es/standards-sdk.es68.js +458 -77
  263. package/dist/es/standards-sdk.es68.js.map +1 -1
  264. package/dist/es/standards-sdk.es69.js +106 -240
  265. package/dist/es/standards-sdk.es69.js.map +1 -1
  266. package/dist/es/standards-sdk.es7.js +28 -183
  267. package/dist/es/standards-sdk.es7.js.map +1 -1
  268. package/dist/es/standards-sdk.es70.js +170 -286
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +71 -207
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +71 -72
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +143 -71
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +62 -136
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +380 -45
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +222 -130
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +320 -444
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +88 -371
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +125 -89
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es8.js +80 -29
  289. package/dist/es/standards-sdk.es8.js.map +1 -1
  290. package/dist/es/standards-sdk.es80.js +8 -125
  291. package/dist/es/standards-sdk.es80.js.map +1 -1
  292. package/dist/es/standards-sdk.es81.js +45 -6
  293. package/dist/es/standards-sdk.es81.js.map +1 -1
  294. package/dist/es/standards-sdk.es82.js +98 -44
  295. package/dist/es/standards-sdk.es82.js.map +1 -1
  296. package/dist/es/standards-sdk.es83.js +331 -84
  297. package/dist/es/standards-sdk.es83.js.map +1 -1
  298. package/dist/es/standards-sdk.es84.js +93 -160
  299. package/dist/es/standards-sdk.es84.js.map +1 -1
  300. package/dist/es/standards-sdk.es85.js +55 -275
  301. package/dist/es/standards-sdk.es85.js.map +1 -1
  302. package/dist/es/standards-sdk.es86.js +43 -55
  303. package/dist/es/standards-sdk.es86.js.map +1 -1
  304. package/dist/es/standards-sdk.es87.js +145 -44
  305. package/dist/es/standards-sdk.es87.js.map +1 -1
  306. package/dist/es/standards-sdk.es88.js +30 -113
  307. package/dist/es/standards-sdk.es88.js.map +1 -1
  308. package/dist/es/standards-sdk.es89.js +22 -59
  309. package/dist/es/standards-sdk.es89.js.map +1 -1
  310. package/dist/es/standards-sdk.es9.js +104 -80
  311. package/dist/es/standards-sdk.es9.js.map +1 -1
  312. package/dist/es/standards-sdk.es90.js +23 -28
  313. package/dist/es/standards-sdk.es90.js.map +1 -1
  314. package/dist/es/standards-sdk.es91.js +238 -23
  315. package/dist/es/standards-sdk.es91.js.map +1 -1
  316. package/dist/es/standards-sdk.es92.js +267 -225
  317. package/dist/es/standards-sdk.es92.js.map +1 -1
  318. package/dist/es/standards-sdk.es93.js +95 -220
  319. package/dist/es/standards-sdk.es93.js.map +1 -1
  320. package/dist/es/standards-sdk.es94.js +124 -136
  321. package/dist/es/standards-sdk.es94.js.map +1 -1
  322. package/dist/es/standards-sdk.es95.js +42 -138
  323. package/dist/es/standards-sdk.es95.js.map +1 -1
  324. package/dist/es/standards-sdk.es96.js +259 -43
  325. package/dist/es/standards-sdk.es96.js.map +1 -1
  326. package/dist/es/standards-sdk.es97.js +82 -245
  327. package/dist/es/standards-sdk.es97.js.map +1 -1
  328. package/dist/es/standards-sdk.es98.js +49 -50
  329. package/dist/es/standards-sdk.es98.js.map +1 -1
  330. package/dist/es/standards-sdk.es99.js +29 -100
  331. package/dist/es/standards-sdk.es99.js.map +1 -1
  332. package/dist/es/utils/dynamic-import.d.ts +5 -1
  333. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  334. package/package.json +4 -4
  335. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  336. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  337. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  338. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
  339. package/dist/es/standards-sdk.es161.js +0 -247
  340. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,329 +1,467 @@
1
- import { createSessionResponseSchema, chatHistoryCompactionResponseSchema, sessionEncryptionStatusResponseSchema, encryptionHandshakeResponseSchema, sendMessageResponseSchema } from "./standards-sdk.es149.js";
2
- import { RegistryBrokerClient } from "./standards-sdk.es136.js";
3
- import { serialiseAuthConfig, toJsonObject } from "./standards-sdk.es160.js";
4
- import { EncryptionUnavailableError, EncryptedChatManager } from "./standards-sdk.es161.js";
5
- const encryptedManagers = /* @__PURE__ */ new WeakMap();
6
- const chatApis = /* @__PURE__ */ new WeakMap();
7
- function getEncryptedChatManager(client) {
8
- const existing = encryptedManagers.get(client);
9
- if (existing) {
10
- return existing;
11
- }
12
- const created = new EncryptedChatManager(client);
13
- encryptedManagers.set(client, created);
14
- return created;
15
- }
16
- Object.defineProperty(RegistryBrokerClient.prototype, "chat", {
17
- get() {
18
- const existing = chatApis.get(this);
19
- if (existing) {
20
- return existing;
21
- }
22
- const encryptedManager = getEncryptedChatManager(this);
23
- const api = {
24
- start: (options) => this.startChat(options),
25
- createSession: (payload) => this.createSession(payload),
26
- sendMessage: (payload) => this.sendMessage(payload),
27
- endSession: (sessionId) => this.endSession(sessionId),
28
- getHistory: (sessionId, options) => this.fetchHistorySnapshot(sessionId, options),
29
- compactHistory: (payload) => this.compactHistory(payload),
30
- getEncryptionStatus: (sessionId) => this.fetchEncryptionStatus(sessionId),
31
- submitEncryptionHandshake: (sessionId, payload) => this.postEncryptionHandshake(sessionId, payload),
32
- startConversation: (options) => this.startConversation(options),
33
- acceptConversation: (options) => this.acceptConversation(options),
34
- createEncryptedSession: (options) => encryptedManager.startSession(options),
35
- acceptEncryptedSession: (options) => encryptedManager.acceptSession(options)
1
+ import { Buffer } from "buffer";
2
+ import { randomBytes, createHash, createCipheriv, createDecipheriv } from "crypto";
3
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
4
+ import { ZodError } from "zod";
5
+ import { agentFeedbackResponseSchema, agentFeedbackIndexResponseSchema, agentFeedbackEntriesIndexResponseSchema, agentFeedbackEligibilityResponseSchema, agentFeedbackSubmissionResponseSchema } from "./standards-sdk.es149.js";
6
+ import { DEFAULT_BASE_URL, normaliseBaseUrl, normaliseHeaderName, isBrowserRuntime, DEFAULT_USER_AGENT, JSON_CONTENT_TYPE, createAbortError, isJsonObject, DEFAULT_HISTORY_TOP_UP_HBAR } from "./standards-sdk.es159.js";
7
+ import { RegistryBrokerError, RegistryBrokerParseError } from "./standards-sdk.es136.js";
8
+ class RegistryBrokerClient {
9
+ constructor(options = {}) {
10
+ this.encryptionBootstrapPromise = null;
11
+ const {
12
+ baseUrl = DEFAULT_BASE_URL,
13
+ fetchImplementation,
14
+ defaultHeaders,
15
+ apiKey,
16
+ ledgerApiKey,
17
+ registrationAutoTopUp,
18
+ historyAutoTopUp,
19
+ encryption
20
+ } = options;
21
+ this.baseUrl = normaliseBaseUrl(baseUrl);
22
+ this.fetchImpl = fetchImplementation ?? fetch;
23
+ this.defaultHeaders = {
24
+ ...defaultHeaders ?? {}
36
25
  };
37
- chatApis.set(this, api);
38
- return api;
26
+ Object.entries(this.defaultHeaders).forEach(([key, value]) => {
27
+ const headerName = normaliseHeaderName(key);
28
+ if (headerName !== key) {
29
+ delete this.defaultHeaders[key];
30
+ this.defaultHeaders[headerName] = value;
31
+ }
32
+ });
33
+ if (apiKey) {
34
+ this.defaultHeaders["x-api-key"] = apiKey;
35
+ }
36
+ if (ledgerApiKey) {
37
+ this.defaultHeaders["x-ledger-api-key"] = ledgerApiKey;
38
+ }
39
+ this.registrationAutoTopUp = registrationAutoTopUp;
40
+ this.historyAutoTopUp = historyAutoTopUp;
41
+ this.encryptionOptions = encryption;
42
+ if (this.encryptionOptions) {
43
+ this.encryptionBootstrapPromise = this.initializeEncryptionBootstrap(
44
+ this.encryptionOptions
45
+ );
46
+ }
39
47
  }
40
- });
41
- RegistryBrokerClient.prototype.createSession = async function(payload, allowHistoryAutoTopUp = true) {
42
- const body = {};
43
- if ("uaid" in payload && payload.uaid) {
44
- body.uaid = payload.uaid;
48
+ static async initializeAgent(options) {
49
+ const { uaid, ensureEncryptionKey = true, ...clientOptions } = options;
50
+ const client = new RegistryBrokerClient(clientOptions);
51
+ let encryption = null;
52
+ if (ensureEncryptionKey) {
53
+ const ensureOptions = typeof ensureEncryptionKey === "object" ? ensureEncryptionKey : { generateIfMissing: true };
54
+ encryption = await client.encryption.ensureAgentKey({
55
+ uaid,
56
+ ...ensureOptions
57
+ });
58
+ }
59
+ return { client, encryption };
45
60
  }
46
- if ("agentUrl" in payload && payload.agentUrl) {
47
- body.agentUrl = payload.agentUrl;
61
+ setApiKey(apiKey) {
62
+ this.setDefaultHeader("x-api-key", apiKey);
48
63
  }
49
- if (payload.auth) {
50
- body.auth = serialiseAuthConfig(payload.auth);
64
+ setLedgerApiKey(apiKey) {
65
+ this.setDefaultHeader("x-ledger-api-key", apiKey);
51
66
  }
52
- if (payload.historyTtlSeconds !== void 0) {
53
- body.historyTtlSeconds = payload.historyTtlSeconds;
67
+ setDefaultHeader(name, value) {
68
+ if (!name || name.trim().length === 0) {
69
+ return;
70
+ }
71
+ const headerName = normaliseHeaderName(name);
72
+ if (!value || value.trim().length === 0) {
73
+ delete this.defaultHeaders[headerName];
74
+ return;
75
+ }
76
+ this.defaultHeaders[headerName] = value.trim();
54
77
  }
55
- if (payload.encryptionRequested !== void 0) {
56
- body.encryptionRequested = payload.encryptionRequested;
78
+ getDefaultHeaders() {
79
+ return { ...this.defaultHeaders };
57
80
  }
58
- if (payload.senderUaid) {
59
- body.senderUaid = payload.senderUaid;
81
+ async encryptionReady() {
82
+ if (!this.encryptionBootstrapPromise) {
83
+ return;
84
+ }
85
+ await this.encryptionBootstrapPromise;
86
+ }
87
+ buildUrl(path) {
88
+ const normalisedPath = path.startsWith("/") ? path : `/${path}`;
89
+ return `${this.baseUrl}${normalisedPath}`;
60
90
  }
61
- try {
62
- const raw = await this.requestJson("/chat/session", {
63
- method: "POST",
64
- body,
65
- headers: { "content-type": "application/json" }
91
+ async request(path, config) {
92
+ const headers = new Headers();
93
+ Object.entries(this.defaultHeaders).forEach(([key, value]) => {
94
+ headers.set(key, value);
66
95
  });
96
+ if (config.headers) {
97
+ Object.entries(config.headers).forEach(([key, value]) => {
98
+ headers.set(key, value);
99
+ });
100
+ }
101
+ if (!headers.has("accept")) {
102
+ headers.set("accept", "application/json");
103
+ }
104
+ if (!headers.has("user-agent") && !isBrowserRuntime()) {
105
+ headers.set("user-agent", DEFAULT_USER_AGENT);
106
+ }
107
+ const init = {
108
+ method: config.method ?? "GET",
109
+ headers
110
+ };
111
+ if (config.body !== void 0) {
112
+ init.body = JSON.stringify(config.body);
113
+ if (!headers.has("content-type")) {
114
+ headers.set("content-type", "application/json");
115
+ }
116
+ }
117
+ const response = await this.fetchImpl(this.buildUrl(path), init);
118
+ if (response.ok) {
119
+ return response;
120
+ }
121
+ const errorBody = await this.extractErrorBody(response);
122
+ throw new RegistryBrokerError("Registry broker request failed", {
123
+ status: response.status,
124
+ statusText: response.statusText,
125
+ body: errorBody
126
+ });
127
+ }
128
+ async requestJson(path, config) {
129
+ const response = await this.request(path, config);
130
+ const contentType = response.headers?.get("content-type") ?? "";
131
+ if (!JSON_CONTENT_TYPE.test(contentType)) {
132
+ const body = await response.text();
133
+ throw new RegistryBrokerParseError(
134
+ "Expected JSON response from registry broker",
135
+ body
136
+ );
137
+ }
138
+ return await response.json();
139
+ }
140
+ async getAgentFeedback(uaid, options = {}) {
141
+ const normalized = uaid.trim();
142
+ if (!normalized) {
143
+ throw new Error("uaid is required");
144
+ }
145
+ const query = options.includeRevoked === true ? "?includeRevoked=true" : "";
146
+ const raw = await this.requestJson(
147
+ `/agents/${encodeURIComponent(normalized)}/feedback${query}`,
148
+ { method: "GET" }
149
+ );
67
150
  return this.parseWithSchema(
68
151
  raw,
69
- createSessionResponseSchema,
70
- "chat session response"
152
+ agentFeedbackResponseSchema,
153
+ "agent feedback response"
71
154
  );
72
- } catch (error) {
73
- const maybeError = error instanceof Error ? error : null;
74
- if (allowHistoryAutoTopUp && this.shouldAutoTopUpHistory(payload, maybeError)) {
75
- await this.executeHistoryAutoTopUp("chat.session");
76
- return this.createSession(payload, false);
77
- }
78
- throw error;
79
155
  }
80
- };
81
- RegistryBrokerClient.prototype.startChat = async function(options) {
82
- if ("uaid" in options && options.uaid) {
83
- return this.startConversation({
84
- uaid: options.uaid,
85
- senderUaid: options.senderUaid,
86
- historyTtlSeconds: options.historyTtlSeconds,
87
- auth: options.auth,
88
- encryption: options.encryption,
89
- onSessionCreated: options.onSessionCreated
156
+ async listAgentFeedbackIndex(options = {}) {
157
+ const params = new URLSearchParams();
158
+ if (typeof options.page === "number" && Number.isFinite(options.page)) {
159
+ params.set("page", String(Math.trunc(options.page)));
160
+ }
161
+ if (typeof options.limit === "number" && Number.isFinite(options.limit)) {
162
+ params.set("limit", String(Math.trunc(options.limit)));
163
+ }
164
+ if (options.registries?.length) {
165
+ params.set("registry", options.registries.join(","));
166
+ }
167
+ const suffix = params.size > 0 ? `?${params.toString()}` : "";
168
+ const raw = await this.requestJson(`/agents/feedback${suffix}`, {
169
+ method: "GET"
90
170
  });
171
+ return this.parseWithSchema(
172
+ raw,
173
+ agentFeedbackIndexResponseSchema,
174
+ "agent feedback index response"
175
+ );
91
176
  }
92
- if ("agentUrl" in options && options.agentUrl) {
93
- const session = await this.createSession({
94
- agentUrl: options.agentUrl,
95
- auth: options.auth,
96
- historyTtlSeconds: options.historyTtlSeconds,
97
- senderUaid: options.senderUaid
98
- });
99
- options.onSessionCreated?.(session.sessionId);
100
- return this.createPlaintextConversationHandle(
101
- session.sessionId,
102
- session.encryption ?? null,
103
- options.auth,
104
- { agentUrl: options.agentUrl, uaid: options.uaid }
177
+ async listAgentFeedbackEntriesIndex(options = {}) {
178
+ const params = new URLSearchParams();
179
+ if (typeof options.page === "number" && Number.isFinite(options.page)) {
180
+ params.set("page", String(Math.trunc(options.page)));
181
+ }
182
+ if (typeof options.limit === "number" && Number.isFinite(options.limit)) {
183
+ params.set("limit", String(Math.trunc(options.limit)));
184
+ }
185
+ if (options.registries?.length) {
186
+ params.set("registry", options.registries.join(","));
187
+ }
188
+ const suffix = params.size > 0 ? `?${params.toString()}` : "";
189
+ const raw = await this.requestJson(
190
+ `/agents/feedback/entries${suffix}`,
191
+ { method: "GET" }
192
+ );
193
+ return this.parseWithSchema(
194
+ raw,
195
+ agentFeedbackEntriesIndexResponseSchema,
196
+ "agent feedback entries index response"
105
197
  );
106
198
  }
107
- throw new Error("startChat requires either uaid or agentUrl");
108
- };
109
- RegistryBrokerClient.prototype.startConversation = async function(options) {
110
- const preference = options.encryption?.preference ?? "preferred";
111
- const requestEncryption = preference !== "disabled";
112
- if (!requestEncryption) {
113
- const session = await this.createSession({
114
- uaid: options.uaid,
115
- auth: options.auth,
116
- historyTtlSeconds: options.historyTtlSeconds,
117
- senderUaid: options.senderUaid,
118
- encryptionRequested: false
119
- });
120
- options.onSessionCreated?.(session.sessionId);
121
- return this.createPlaintextConversationHandle(
122
- session.sessionId,
123
- session.encryption ?? null,
124
- options.auth,
125
- { uaid: options.uaid }
199
+ async checkAgentFeedbackEligibility(uaid, payload) {
200
+ const normalized = uaid.trim();
201
+ if (!normalized) {
202
+ throw new Error("uaid is required");
203
+ }
204
+ const raw = await this.requestJson(
205
+ `/agents/${encodeURIComponent(normalized)}/feedback/eligibility`,
206
+ {
207
+ method: "POST",
208
+ body: payload,
209
+ headers: { "content-type": "application/json" }
210
+ }
211
+ );
212
+ return this.parseWithSchema(
213
+ raw,
214
+ agentFeedbackEligibilityResponseSchema,
215
+ "agent feedback eligibility response"
126
216
  );
127
217
  }
128
- try {
129
- const encryptedManager = getEncryptedChatManager(this);
130
- const handle = await encryptedManager.startSession({
131
- uaid: options.uaid,
132
- senderUaid: options.senderUaid,
133
- historyTtlSeconds: options.historyTtlSeconds,
134
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
135
- pollIntervalMs: options.encryption?.pollIntervalMs,
136
- onSessionCreated: (sessionId) => {
137
- options.onSessionCreated?.(sessionId);
138
- },
139
- auth: options.auth
140
- });
141
- return handle;
142
- } catch (error) {
143
- if (error instanceof EncryptionUnavailableError) {
144
- if (preference === "required") {
145
- throw error;
218
+ async submitAgentFeedback(uaid, payload) {
219
+ const normalized = uaid.trim();
220
+ if (!normalized) {
221
+ throw new Error("uaid is required");
222
+ }
223
+ const raw = await this.requestJson(
224
+ `/agents/${encodeURIComponent(normalized)}/feedback`,
225
+ {
226
+ method: "POST",
227
+ body: payload,
228
+ headers: { "content-type": "application/json" }
146
229
  }
147
- return this.createPlaintextConversationHandle(
148
- error.sessionId,
149
- error.summary ?? null,
150
- options.auth,
151
- { uaid: options.uaid }
152
- );
230
+ );
231
+ return this.parseWithSchema(
232
+ raw,
233
+ agentFeedbackSubmissionResponseSchema,
234
+ "agent feedback submission response"
235
+ );
236
+ }
237
+ async extractErrorBody(response) {
238
+ const contentType = response.headers?.get("content-type") ?? "";
239
+ if (JSON_CONTENT_TYPE.test(contentType)) {
240
+ try {
241
+ return await response.json();
242
+ } catch (error) {
243
+ return { parseError: String(error) };
244
+ }
245
+ }
246
+ try {
247
+ return await response.text();
248
+ } catch (error) {
249
+ return { parseError: String(error) };
153
250
  }
154
- throw error;
155
251
  }
156
- };
157
- RegistryBrokerClient.prototype.acceptConversation = async function(options) {
158
- const preference = options.encryption?.preference ?? "preferred";
159
- if (preference === "disabled") {
160
- return this.createPlaintextConversationHandle(options.sessionId, null);
161
- }
162
- try {
163
- const encryptedManager = getEncryptedChatManager(this);
164
- const handle = await encryptedManager.acceptSession({
165
- sessionId: options.sessionId,
166
- responderUaid: options.responderUaid,
167
- handshakeTimeoutMs: options.encryption?.handshakeTimeoutMs,
168
- pollIntervalMs: options.encryption?.pollIntervalMs
169
- });
170
- return handle;
171
- } catch (error) {
172
- if (error instanceof EncryptionUnavailableError && preference !== "required") {
173
- return this.createPlaintextConversationHandle(
174
- options.sessionId,
175
- null,
176
- void 0,
177
- { uaid: options.responderUaid }
252
+ parseWithSchema(value, schema, context) {
253
+ try {
254
+ return schema.parse(value);
255
+ } catch (error) {
256
+ throw new RegistryBrokerParseError(
257
+ `Failed to parse ${context}`,
258
+ error instanceof ZodError || error instanceof Error ? error : String(error),
259
+ value
178
260
  );
179
261
  }
180
- throw error;
181
262
  }
182
- };
183
- RegistryBrokerClient.prototype.createPlaintextConversationHandle = function(sessionId, summary, defaultAuth, context) {
184
- const uaid = context?.uaid?.trim();
185
- const agentUrl = context?.agentUrl?.trim();
186
- return {
187
- sessionId,
188
- mode: "plaintext",
189
- summary: summary ?? null,
190
- send: async (options) => {
191
- const plaintext = options.plaintext;
192
- if (!plaintext || plaintext.trim().length === 0) {
193
- throw new Error("plaintext is required for chat messages");
263
+ async delay(ms, signal) {
264
+ if (ms <= 0) {
265
+ if (signal?.aborted) {
266
+ throw createAbortError();
194
267
  }
195
- const message = options.message ?? plaintext;
196
- return this.sendMessage({
197
- sessionId,
198
- message,
199
- streaming: options.streaming,
200
- auth: options.auth ?? defaultAuth,
201
- uaid,
202
- agentUrl
203
- });
204
- },
205
- decryptHistoryEntry: (entry) => entry.content
206
- };
207
- };
208
- RegistryBrokerClient.prototype.compactHistory = async function(payload) {
209
- if (!payload.sessionId || payload.sessionId.trim().length === 0) {
210
- throw new Error("sessionId is required to compact chat history");
211
- }
212
- const body = {};
213
- if (typeof payload.preserveEntries === "number" && Number.isFinite(payload.preserveEntries) && payload.preserveEntries >= 0) {
214
- body.preserveEntries = Math.floor(payload.preserveEntries);
215
- }
216
- const raw = await this.requestJson(
217
- `/chat/session/${encodeURIComponent(payload.sessionId)}/compact`,
218
- {
219
- method: "POST",
220
- headers: { "content-type": "application/json" },
221
- body
222
- }
223
- );
224
- return this.parseWithSchema(
225
- raw,
226
- chatHistoryCompactionResponseSchema,
227
- "chat history compaction response"
228
- );
229
- };
230
- RegistryBrokerClient.prototype.fetchEncryptionStatus = async function(sessionId) {
231
- if (!sessionId || sessionId.trim().length === 0) {
232
- throw new Error("sessionId is required for encryption status");
233
- }
234
- const raw = await this.requestJson(
235
- `/chat/session/${encodeURIComponent(sessionId)}/encryption`,
236
- {
237
- method: "GET"
268
+ return;
238
269
  }
239
- );
240
- return this.parseWithSchema(
241
- raw,
242
- sessionEncryptionStatusResponseSchema,
243
- "session encryption status response"
244
- );
245
- };
246
- RegistryBrokerClient.prototype.postEncryptionHandshake = async function(sessionId, payload) {
247
- if (!sessionId || sessionId.trim().length === 0) {
248
- throw new Error("sessionId is required for encryption handshake");
249
- }
250
- const raw = await this.requestJson(
251
- `/chat/session/${encodeURIComponent(sessionId)}/encryption-handshake`,
252
- {
253
- method: "POST",
254
- headers: { "content-type": "application/json" },
255
- body: {
256
- role: payload.role,
257
- keyType: payload.keyType,
258
- ephemeralPublicKey: payload.ephemeralPublicKey,
259
- longTermPublicKey: payload.longTermPublicKey,
260
- signature: payload.signature,
261
- uaid: payload.uaid,
262
- userId: payload.userId,
263
- ledgerAccountId: payload.ledgerAccountId,
264
- metadata: payload.metadata
270
+ await new Promise((resolve, reject) => {
271
+ const timer = setTimeout(() => {
272
+ if (signal) {
273
+ signal.removeEventListener("abort", onAbort);
274
+ }
275
+ resolve();
276
+ }, ms);
277
+ const onAbort = () => {
278
+ clearTimeout(timer);
279
+ signal?.removeEventListener("abort", onAbort);
280
+ reject(createAbortError());
281
+ };
282
+ if (signal) {
283
+ if (signal.aborted) {
284
+ clearTimeout(timer);
285
+ reject(createAbortError());
286
+ return;
287
+ }
288
+ signal.addEventListener("abort", onAbort, { once: true });
265
289
  }
290
+ });
291
+ }
292
+ assertNodeRuntime(feature) {
293
+ if (typeof process === "undefined" || !process.versions?.node) {
294
+ throw new Error(`${feature} is only available in Node.js environments`);
266
295
  }
267
- );
268
- const response = this.parseWithSchema(
269
- raw,
270
- encryptionHandshakeResponseSchema,
271
- "encryption handshake response"
272
- );
273
- return response.handshake;
274
- };
275
- RegistryBrokerClient.prototype.sendMessage = async function(payload) {
276
- const body = {
277
- message: payload.message
278
- };
279
- if (payload.streaming !== void 0) {
280
- body.streaming = payload.streaming;
281
- }
282
- if (payload.auth) {
283
- body.auth = serialiseAuthConfig(payload.auth);
284
- }
285
- if ("uaid" in payload) {
286
- body.uaid = payload.uaid;
287
- }
288
- if ("sessionId" in payload && payload.sessionId) {
289
- body.sessionId = payload.sessionId;
290
- }
291
- if ("agentUrl" in payload && payload.agentUrl) {
292
- body.agentUrl = payload.agentUrl;
293
- }
294
- let cipherEnvelope = payload.cipherEnvelope ?? null;
295
- if (payload.encryption) {
296
- const sessionIdForEncryption = payload.encryption.sessionId ?? (typeof body.sessionId === "string" ? body.sessionId : void 0);
297
- if (!sessionIdForEncryption) {
298
- throw new Error(
299
- "sessionId is required when using encrypted chat payloads"
300
- );
296
+ }
297
+ createEphemeralKeyPair() {
298
+ this.assertNodeRuntime("generateEphemeralKeyPair");
299
+ const privateKeyBytes = randomBytes(32);
300
+ const publicKey = secp256k1.getPublicKey(privateKeyBytes, true);
301
+ return {
302
+ privateKey: Buffer.from(privateKeyBytes).toString("hex"),
303
+ publicKey: Buffer.from(publicKey).toString("hex")
304
+ };
305
+ }
306
+ deriveSharedSecret(options) {
307
+ this.assertNodeRuntime("deriveSharedSecret");
308
+ const privateKey = this.hexToBuffer(options.privateKey);
309
+ const peerPublicKey = this.hexToBuffer(options.peerPublicKey);
310
+ const shared = secp256k1.getSharedSecret(privateKey, peerPublicKey, true);
311
+ return createHash("sha256").update(Buffer.from(shared)).digest();
312
+ }
313
+ buildCipherEnvelope(options) {
314
+ this.assertNodeRuntime("encryptCipherEnvelope");
315
+ const sharedSecret = this.normalizeSharedSecret(options.sharedSecret);
316
+ const iv = randomBytes(12);
317
+ const cipher = createCipheriv("aes-256-gcm", sharedSecret, iv);
318
+ const aadSource = options.associatedData ?? options.sessionId;
319
+ const associatedDataEncoded = aadSource ? Buffer.from(aadSource, "utf8").toString("base64") : void 0;
320
+ if (aadSource) {
321
+ cipher.setAAD(Buffer.from(aadSource, "utf8"));
322
+ }
323
+ const ciphertext = Buffer.concat([
324
+ cipher.update(Buffer.from(options.plaintext, "utf8")),
325
+ cipher.final()
326
+ ]);
327
+ const tag = cipher.getAuthTag();
328
+ const payload = Buffer.concat([ciphertext, tag]);
329
+ return {
330
+ algorithm: "aes-256-gcm",
331
+ ciphertext: payload.toString("base64"),
332
+ nonce: iv.toString("base64"),
333
+ associatedData: associatedDataEncoded,
334
+ keyLocator: {
335
+ sessionId: options.sessionId,
336
+ revision: options.revision ?? 1
337
+ },
338
+ recipients: options.recipients.map((recipient) => ({
339
+ ...recipient,
340
+ encryptedShare: ""
341
+ }))
342
+ };
343
+ }
344
+ openCipherEnvelope(options) {
345
+ this.assertNodeRuntime("decryptCipherEnvelope");
346
+ const sharedSecret = this.normalizeSharedSecret(options.sharedSecret);
347
+ const payload = Buffer.from(options.envelope.ciphertext, "base64");
348
+ const nonce = Buffer.from(options.envelope.nonce, "base64");
349
+ const ciphertext = payload.slice(0, payload.length - 16);
350
+ const tag = payload.slice(payload.length - 16);
351
+ const decipher = createDecipheriv("aes-256-gcm", sharedSecret, nonce);
352
+ if (options.envelope.associatedData) {
353
+ decipher.setAAD(Buffer.from(options.envelope.associatedData, "base64"));
301
354
  }
302
- if (!payload.encryption.recipients?.length) {
303
- throw new Error("recipients are required for encrypted chat payloads");
355
+ decipher.setAuthTag(tag);
356
+ const plaintext = Buffer.concat([
357
+ decipher.update(ciphertext),
358
+ decipher.final()
359
+ ]);
360
+ return plaintext.toString(options.encoding ?? "utf8");
361
+ }
362
+ normalizeSharedSecret(input) {
363
+ if (Buffer.isBuffer(input)) {
364
+ return Buffer.from(input);
365
+ }
366
+ if (input instanceof Uint8Array) {
367
+ return Buffer.from(input);
368
+ }
369
+ if (typeof input === "string") {
370
+ return this.bufferFromString(input);
371
+ }
372
+ throw new Error("Unsupported shared secret input");
373
+ }
374
+ bufferFromString(value) {
375
+ const trimmed = value.trim();
376
+ if (!trimmed) {
377
+ throw new Error("sharedSecret string cannot be empty");
378
+ }
379
+ const normalized = trimmed.startsWith("0x") ? trimmed.slice(2) : trimmed;
380
+ if (/^[0-9a-fA-F]+$/.test(normalized) && normalized.length % 2 === 0) {
381
+ return Buffer.from(normalized, "hex");
382
+ }
383
+ return Buffer.from(trimmed, "base64");
384
+ }
385
+ hexToBuffer(value) {
386
+ const normalized = value.startsWith("0x") ? value.slice(2) : value;
387
+ if (!/^[0-9a-fA-F]+$/.test(normalized) || normalized.length % 2 !== 0) {
388
+ throw new Error("Expected hex-encoded value");
389
+ }
390
+ return Buffer.from(normalized, "hex");
391
+ }
392
+ extractInsufficientCreditsDetails(error) {
393
+ if (!(error instanceof RegistryBrokerError) || error.status !== 402) {
394
+ return null;
395
+ }
396
+ const body = error.body;
397
+ if (!body || typeof body !== "object" || Array.isArray(body)) {
398
+ return null;
399
+ }
400
+ const maybeShortfall = body["shortfallCredits"];
401
+ if (typeof maybeShortfall !== "number" || maybeShortfall <= 0) {
402
+ return null;
403
+ }
404
+ return { shortfallCredits: maybeShortfall };
405
+ }
406
+ extractErrorMessage(body) {
407
+ if (typeof body === "string") {
408
+ return body;
304
409
  }
305
- cipherEnvelope = this.encryption.encryptCipherEnvelope({
306
- ...payload.encryption,
307
- sessionId: sessionIdForEncryption
410
+ if (isJsonObject(body) && typeof body.error === "string") {
411
+ return body.error;
412
+ }
413
+ if (isJsonObject(body) && typeof body.message === "string") {
414
+ return body.message;
415
+ }
416
+ return void 0;
417
+ }
418
+ shouldAutoTopUpHistory(payload, error) {
419
+ if (!this.historyAutoTopUp || payload.historyTtlSeconds === void 0) {
420
+ return false;
421
+ }
422
+ if (!(error instanceof RegistryBrokerError)) {
423
+ return false;
424
+ }
425
+ if (error.status !== 402) {
426
+ return false;
427
+ }
428
+ const message = this.extractErrorMessage(error.body);
429
+ if (!message) {
430
+ return true;
431
+ }
432
+ const normalised = message.toLowerCase();
433
+ return normalised.includes("history") || normalised.includes("chat history");
434
+ }
435
+ async executeHistoryAutoTopUp(reason) {
436
+ if (!this.historyAutoTopUp) {
437
+ return;
438
+ }
439
+ const hbarAmount = this.historyAutoTopUp.hbarAmount && this.historyAutoTopUp.hbarAmount > 0 ? this.historyAutoTopUp.hbarAmount : DEFAULT_HISTORY_TOP_UP_HBAR;
440
+ await this.purchaseCreditsWithHbar({
441
+ accountId: this.historyAutoTopUp.accountId,
442
+ privateKey: this.historyAutoTopUp.privateKey,
443
+ hbarAmount,
444
+ memo: this.historyAutoTopUp.memo ?? "registry-broker-client:chat-history-topup",
445
+ metadata: {
446
+ purpose: "chat-history",
447
+ reason
448
+ }
308
449
  });
309
450
  }
310
- if (cipherEnvelope) {
311
- body.cipherEnvelope = toJsonObject(cipherEnvelope);
312
- }
313
- const raw = await this.requestJson("/chat/message", {
314
- method: "POST",
315
- body,
316
- headers: { "content-type": "application/json" }
317
- });
318
- return this.parseWithSchema(
319
- raw,
320
- sendMessageResponseSchema,
321
- "chat message response"
322
- );
323
- };
324
- RegistryBrokerClient.prototype.endSession = async function(sessionId) {
325
- await this.request(`/chat/session/${encodeURIComponent(sessionId)}`, {
326
- method: "DELETE"
327
- });
451
+ initializeEncryptionBootstrap(options) {
452
+ return this.bootstrapEncryptionOptions(options).then(() => void 0);
453
+ }
454
+ bootstrapEncryptionOptions(_options) {
455
+ return Promise.resolve(null);
456
+ }
457
+ }
458
+ const isPendingRegisterAgentResponse = (response) => response.status === "pending";
459
+ const isPartialRegisterAgentResponse = (response) => response.status === "partial" && response.success === false;
460
+ const isSuccessRegisterAgentResponse = (response) => response.success === true && response.status !== "pending";
461
+ export {
462
+ RegistryBrokerClient,
463
+ isPartialRegisterAgentResponse,
464
+ isPendingRegisterAgentResponse,
465
+ isSuccessRegisterAgentResponse
328
466
  };
329
467
  //# sourceMappingURL=standards-sdk.es135.js.map