@hashgraphonline/standards-sdk 0.1.188 → 0.1.190

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 (548) hide show
  1. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -1
  2. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -1
  3. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -1
  4. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -1
  5. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -1
  6. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  7. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -1
  8. package/dist/browser/hcs-25/collectors/acp.d.ts +42 -0
  9. package/dist/browser/hcs-25/collectors/acp.d.ts.map +1 -0
  10. package/dist/browser/hcs-25/collectors/agentverse.d.ts +37 -0
  11. package/dist/browser/hcs-25/collectors/agentverse.d.ts.map +1 -0
  12. package/dist/browser/hcs-25/collectors/availability.d.ts +29 -0
  13. package/dist/browser/hcs-25/collectors/availability.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/collectors/catalog.d.ts +57 -0
  15. package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/collectors/connectivity.d.ts +49 -0
  17. package/dist/browser/hcs-25/collectors/connectivity.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/collectors/endpoints.d.ts +9 -0
  19. package/dist/browser/hcs-25/collectors/endpoints.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/collectors/erc8004.d.ts +104 -0
  21. package/dist/browser/hcs-25/collectors/erc8004.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/collectors/ethos.d.ts +95 -0
  23. package/dist/browser/hcs-25/collectors/ethos.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/collectors/freshness.d.ts +36 -0
  25. package/dist/browser/hcs-25/collectors/freshness.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/collectors/http.d.ts +67 -0
  27. package/dist/browser/hcs-25/collectors/http.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/collectors/index.d.ts +21 -0
  29. package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -0
  30. package/dist/browser/hcs-25/collectors/merge.d.ts +11 -0
  31. package/dist/browser/hcs-25/collectors/merge.d.ts.map +1 -0
  32. package/dist/browser/hcs-25/collectors/model-evals.d.ts +315 -0
  33. package/dist/browser/hcs-25/collectors/model-evals.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts +51 -0
  35. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/collectors/output-verification.d.ts +37 -0
  37. package/dist/browser/hcs-25/collectors/output-verification.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/collectors/pipeline.d.ts +19 -0
  39. package/dist/browser/hcs-25/collectors/pipeline.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/collectors/runner.d.ts +20 -0
  41. package/dist/browser/hcs-25/collectors/runner.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/collectors/simple-evals.d.ts +91 -0
  43. package/dist/browser/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  44. package/dist/browser/hcs-25/collectors/types.d.ts +113 -0
  45. package/dist/browser/hcs-25/collectors/types.d.ts.map +1 -0
  46. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts +105 -0
  47. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  48. package/dist/browser/hcs-25/collectors/x402.d.ts +48 -0
  49. package/dist/browser/hcs-25/collectors/x402.d.ts.map +1 -0
  50. package/dist/browser/hcs-25/index.d.ts +1 -0
  51. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  52. package/dist/browser/hcs-25/signals/marketplace.d.ts +6 -6
  53. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -1
  54. package/dist/browser/hcs-25/signals/model-evals.d.ts +12 -12
  55. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -1
  56. package/dist/browser/hcs-25/signals/operational.d.ts +15 -12
  57. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -1
  58. package/dist/browser/hcs-25/signals/simple-evals.d.ts +1 -1
  59. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -1
  60. package/dist/browser/services/registry-broker/client/agent-network.d.ts +210 -66
  61. package/dist/browser/services/registry-broker/client/agent-network.d.ts.map +1 -1
  62. package/dist/browser/services/registry-broker/client.d.ts +1 -1
  63. package/dist/browser/services/registry-broker/client.d.ts.map +1 -1
  64. package/dist/browser/standards-sdk.browser.js +37 -10
  65. package/dist/browser/standards-sdk.browser.js.map +1 -1
  66. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -1
  67. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -1
  68. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -1
  69. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -1
  70. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -1
  71. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  72. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -1
  73. package/dist/browser-root/hcs-25/collectors/acp.d.ts +42 -0
  74. package/dist/browser-root/hcs-25/collectors/acp.d.ts.map +1 -0
  75. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts +37 -0
  76. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts.map +1 -0
  77. package/dist/browser-root/hcs-25/collectors/availability.d.ts +29 -0
  78. package/dist/browser-root/hcs-25/collectors/availability.d.ts.map +1 -0
  79. package/dist/browser-root/hcs-25/collectors/catalog.d.ts +57 -0
  80. package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -0
  81. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts +49 -0
  82. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts +9 -0
  84. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts +104 -0
  86. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/collectors/ethos.d.ts +95 -0
  88. package/dist/browser-root/hcs-25/collectors/ethos.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/collectors/freshness.d.ts +36 -0
  90. package/dist/browser-root/hcs-25/collectors/freshness.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/collectors/http.d.ts +67 -0
  92. package/dist/browser-root/hcs-25/collectors/http.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/collectors/index.d.ts +21 -0
  94. package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -0
  95. package/dist/browser-root/hcs-25/collectors/merge.d.ts +11 -0
  96. package/dist/browser-root/hcs-25/collectors/merge.d.ts.map +1 -0
  97. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts +315 -0
  98. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts.map +1 -0
  99. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts +51 -0
  100. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  101. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts +37 -0
  102. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts.map +1 -0
  103. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts +19 -0
  104. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts.map +1 -0
  105. package/dist/browser-root/hcs-25/collectors/runner.d.ts +20 -0
  106. package/dist/browser-root/hcs-25/collectors/runner.d.ts.map +1 -0
  107. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts +91 -0
  108. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  109. package/dist/browser-root/hcs-25/collectors/types.d.ts +113 -0
  110. package/dist/browser-root/hcs-25/collectors/types.d.ts.map +1 -0
  111. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts +105 -0
  112. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  113. package/dist/browser-root/hcs-25/collectors/x402.d.ts +48 -0
  114. package/dist/browser-root/hcs-25/collectors/x402.d.ts.map +1 -0
  115. package/dist/browser-root/hcs-25/index.d.ts +1 -0
  116. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  117. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +6 -6
  118. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -1
  119. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +12 -12
  120. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -1
  121. package/dist/browser-root/hcs-25/signals/operational.d.ts +15 -12
  122. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -1
  123. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +1 -1
  124. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -1
  125. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts +210 -66
  126. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts.map +1 -1
  127. package/dist/browser-root/services/registry-broker/client.d.ts +1 -1
  128. package/dist/browser-root/services/registry-broker/client.d.ts.map +1 -1
  129. package/dist/browser-root/standards-sdk.root-browser.js +78 -11
  130. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  131. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -1
  132. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -1
  133. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -1
  134. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -1
  135. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -1
  136. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  137. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -1
  138. package/dist/cjs/hcs-25/collectors/acp.d.ts +42 -0
  139. package/dist/cjs/hcs-25/collectors/acp.d.ts.map +1 -0
  140. package/dist/cjs/hcs-25/collectors/agentverse.d.ts +37 -0
  141. package/dist/cjs/hcs-25/collectors/agentverse.d.ts.map +1 -0
  142. package/dist/cjs/hcs-25/collectors/availability.d.ts +29 -0
  143. package/dist/cjs/hcs-25/collectors/availability.d.ts.map +1 -0
  144. package/dist/cjs/hcs-25/collectors/catalog.d.ts +57 -0
  145. package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -0
  146. package/dist/cjs/hcs-25/collectors/connectivity.d.ts +49 -0
  147. package/dist/cjs/hcs-25/collectors/connectivity.d.ts.map +1 -0
  148. package/dist/cjs/hcs-25/collectors/endpoints.d.ts +9 -0
  149. package/dist/cjs/hcs-25/collectors/endpoints.d.ts.map +1 -0
  150. package/dist/cjs/hcs-25/collectors/erc8004.d.ts +104 -0
  151. package/dist/cjs/hcs-25/collectors/erc8004.d.ts.map +1 -0
  152. package/dist/cjs/hcs-25/collectors/ethos.d.ts +95 -0
  153. package/dist/cjs/hcs-25/collectors/ethos.d.ts.map +1 -0
  154. package/dist/cjs/hcs-25/collectors/freshness.d.ts +36 -0
  155. package/dist/cjs/hcs-25/collectors/freshness.d.ts.map +1 -0
  156. package/dist/cjs/hcs-25/collectors/http.d.ts +67 -0
  157. package/dist/cjs/hcs-25/collectors/http.d.ts.map +1 -0
  158. package/dist/cjs/hcs-25/collectors/index.d.ts +21 -0
  159. package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -0
  160. package/dist/cjs/hcs-25/collectors/merge.d.ts +11 -0
  161. package/dist/cjs/hcs-25/collectors/merge.d.ts.map +1 -0
  162. package/dist/cjs/hcs-25/collectors/model-evals.d.ts +315 -0
  163. package/dist/cjs/hcs-25/collectors/model-evals.d.ts.map +1 -0
  164. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts +51 -0
  165. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  166. package/dist/cjs/hcs-25/collectors/output-verification.d.ts +37 -0
  167. package/dist/cjs/hcs-25/collectors/output-verification.d.ts.map +1 -0
  168. package/dist/cjs/hcs-25/collectors/pipeline.d.ts +19 -0
  169. package/dist/cjs/hcs-25/collectors/pipeline.d.ts.map +1 -0
  170. package/dist/cjs/hcs-25/collectors/runner.d.ts +20 -0
  171. package/dist/cjs/hcs-25/collectors/runner.d.ts.map +1 -0
  172. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts +91 -0
  173. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  174. package/dist/cjs/hcs-25/collectors/types.d.ts +113 -0
  175. package/dist/cjs/hcs-25/collectors/types.d.ts.map +1 -0
  176. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts +105 -0
  177. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  178. package/dist/cjs/hcs-25/collectors/x402.d.ts +48 -0
  179. package/dist/cjs/hcs-25/collectors/x402.d.ts.map +1 -0
  180. package/dist/cjs/hcs-25/index.d.ts +1 -0
  181. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  182. package/dist/cjs/hcs-25/signals/marketplace.d.ts +6 -6
  183. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -1
  184. package/dist/cjs/hcs-25/signals/model-evals.d.ts +12 -12
  185. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -1
  186. package/dist/cjs/hcs-25/signals/operational.d.ts +15 -12
  187. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -1
  188. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +1 -1
  189. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -1
  190. package/dist/cjs/services/registry-broker/client/agent-network.d.ts +210 -66
  191. package/dist/cjs/services/registry-broker/client/agent-network.d.ts.map +1 -1
  192. package/dist/cjs/services/registry-broker/client.d.ts +1 -1
  193. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  194. package/dist/cjs/standards-sdk.cjs +2 -2
  195. package/dist/cjs/standards-sdk.cjs.map +1 -1
  196. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -1
  197. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -1
  198. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -1
  199. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -1
  200. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -1
  201. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  202. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -1
  203. package/dist/es/hcs-25/collectors/acp.d.ts +42 -0
  204. package/dist/es/hcs-25/collectors/acp.d.ts.map +1 -0
  205. package/dist/es/hcs-25/collectors/agentverse.d.ts +37 -0
  206. package/dist/es/hcs-25/collectors/agentverse.d.ts.map +1 -0
  207. package/dist/es/hcs-25/collectors/availability.d.ts +29 -0
  208. package/dist/es/hcs-25/collectors/availability.d.ts.map +1 -0
  209. package/dist/es/hcs-25/collectors/catalog.d.ts +57 -0
  210. package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -0
  211. package/dist/es/hcs-25/collectors/connectivity.d.ts +49 -0
  212. package/dist/es/hcs-25/collectors/connectivity.d.ts.map +1 -0
  213. package/dist/es/hcs-25/collectors/endpoints.d.ts +9 -0
  214. package/dist/es/hcs-25/collectors/endpoints.d.ts.map +1 -0
  215. package/dist/es/hcs-25/collectors/erc8004.d.ts +104 -0
  216. package/dist/es/hcs-25/collectors/erc8004.d.ts.map +1 -0
  217. package/dist/es/hcs-25/collectors/ethos.d.ts +95 -0
  218. package/dist/es/hcs-25/collectors/ethos.d.ts.map +1 -0
  219. package/dist/es/hcs-25/collectors/freshness.d.ts +36 -0
  220. package/dist/es/hcs-25/collectors/freshness.d.ts.map +1 -0
  221. package/dist/es/hcs-25/collectors/http.d.ts +67 -0
  222. package/dist/es/hcs-25/collectors/http.d.ts.map +1 -0
  223. package/dist/es/hcs-25/collectors/index.d.ts +21 -0
  224. package/dist/es/hcs-25/collectors/index.d.ts.map +1 -0
  225. package/dist/es/hcs-25/collectors/merge.d.ts +11 -0
  226. package/dist/es/hcs-25/collectors/merge.d.ts.map +1 -0
  227. package/dist/es/hcs-25/collectors/model-evals.d.ts +315 -0
  228. package/dist/es/hcs-25/collectors/model-evals.d.ts.map +1 -0
  229. package/dist/es/hcs-25/collectors/oss-popularity.d.ts +51 -0
  230. package/dist/es/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  231. package/dist/es/hcs-25/collectors/output-verification.d.ts +37 -0
  232. package/dist/es/hcs-25/collectors/output-verification.d.ts.map +1 -0
  233. package/dist/es/hcs-25/collectors/pipeline.d.ts +19 -0
  234. package/dist/es/hcs-25/collectors/pipeline.d.ts.map +1 -0
  235. package/dist/es/hcs-25/collectors/runner.d.ts +20 -0
  236. package/dist/es/hcs-25/collectors/runner.d.ts.map +1 -0
  237. package/dist/es/hcs-25/collectors/simple-evals.d.ts +91 -0
  238. package/dist/es/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  239. package/dist/es/hcs-25/collectors/types.d.ts +113 -0
  240. package/dist/es/hcs-25/collectors/types.d.ts.map +1 -0
  241. package/dist/es/hcs-25/collectors/x402-onchain.d.ts +105 -0
  242. package/dist/es/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  243. package/dist/es/hcs-25/collectors/x402.d.ts +48 -0
  244. package/dist/es/hcs-25/collectors/x402.d.ts.map +1 -0
  245. package/dist/es/hcs-25/index.d.ts +1 -0
  246. package/dist/es/hcs-25/index.d.ts.map +1 -1
  247. package/dist/es/hcs-25/signals/marketplace.d.ts +6 -6
  248. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -1
  249. package/dist/es/hcs-25/signals/model-evals.d.ts +12 -12
  250. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -1
  251. package/dist/es/hcs-25/signals/operational.d.ts +15 -12
  252. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -1
  253. package/dist/es/hcs-25/signals/simple-evals.d.ts +1 -1
  254. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -1
  255. package/dist/es/services/registry-broker/client/agent-network.d.ts +210 -66
  256. package/dist/es/services/registry-broker/client/agent-network.d.ts.map +1 -1
  257. package/dist/es/services/registry-broker/client.d.ts +1 -1
  258. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  259. package/dist/es/standards-sdk.es.js +141 -58
  260. package/dist/es/standards-sdk.es.js.map +1 -1
  261. package/dist/es/standards-sdk.es101.js +2 -2
  262. package/dist/es/standards-sdk.es103.js +2 -2
  263. package/dist/es/standards-sdk.es104.js +1 -1
  264. package/dist/es/standards-sdk.es106.js +1 -1
  265. package/dist/es/standards-sdk.es108.js +2 -2
  266. package/dist/es/standards-sdk.es11.js +1 -1
  267. package/dist/es/standards-sdk.es110.js +1 -1
  268. package/dist/es/standards-sdk.es111.js +2 -2
  269. package/dist/es/standards-sdk.es115.js +3 -3
  270. package/dist/es/standards-sdk.es116.js +4 -4
  271. package/dist/es/standards-sdk.es12.js +1 -1
  272. package/dist/es/standards-sdk.es120.js +4 -4
  273. package/dist/es/standards-sdk.es121.js +11 -11
  274. package/dist/es/standards-sdk.es122.js +176 -240
  275. package/dist/es/standards-sdk.es122.js.map +1 -1
  276. package/dist/es/standards-sdk.es123.js +41 -468
  277. package/dist/es/standards-sdk.es123.js.map +1 -1
  278. package/dist/es/standards-sdk.es124.js +28 -103
  279. package/dist/es/standards-sdk.es124.js.map +1 -1
  280. package/dist/es/standards-sdk.es125.js +185 -145
  281. package/dist/es/standards-sdk.es125.js.map +1 -1
  282. package/dist/es/standards-sdk.es126.js +13 -33
  283. package/dist/es/standards-sdk.es126.js.map +1 -1
  284. package/dist/es/standards-sdk.es127.js +44 -10
  285. package/dist/es/standards-sdk.es127.js.map +1 -1
  286. package/dist/es/standards-sdk.es128.js +150 -172
  287. package/dist/es/standards-sdk.es128.js.map +1 -1
  288. package/dist/es/standards-sdk.es129.js +166 -26
  289. package/dist/es/standards-sdk.es129.js.map +1 -1
  290. package/dist/es/standards-sdk.es13.js +1 -1
  291. package/dist/es/standards-sdk.es130.js +375 -18
  292. package/dist/es/standards-sdk.es130.js.map +1 -1
  293. package/dist/es/standards-sdk.es131.js +371 -139
  294. package/dist/es/standards-sdk.es131.js.map +1 -1
  295. package/dist/es/standards-sdk.es132.js +211 -180
  296. package/dist/es/standards-sdk.es132.js.map +1 -1
  297. package/dist/es/standards-sdk.es133.js +210 -770
  298. package/dist/es/standards-sdk.es133.js.map +1 -1
  299. package/dist/es/standards-sdk.es134.js +376 -10
  300. package/dist/es/standards-sdk.es134.js.map +1 -1
  301. package/dist/es/standards-sdk.es135.js +118 -564
  302. package/dist/es/standards-sdk.es135.js.map +1 -1
  303. package/dist/es/standards-sdk.es136.js +233 -608
  304. package/dist/es/standards-sdk.es136.js.map +1 -1
  305. package/dist/es/standards-sdk.es137.js +1328 -12
  306. package/dist/es/standards-sdk.es137.js.map +1 -1
  307. package/dist/es/standards-sdk.es138.js +133 -2
  308. package/dist/es/standards-sdk.es138.js.map +1 -1
  309. package/dist/es/standards-sdk.es139.js +258 -74
  310. package/dist/es/standards-sdk.es139.js.map +1 -1
  311. package/dist/es/standards-sdk.es14.js +1 -1
  312. package/dist/es/standards-sdk.es140.js +104 -38
  313. package/dist/es/standards-sdk.es140.js.map +1 -1
  314. package/dist/es/standards-sdk.es141.js +252 -2
  315. package/dist/es/standards-sdk.es141.js.map +1 -1
  316. package/dist/es/standards-sdk.es142.js +446 -203
  317. package/dist/es/standards-sdk.es142.js.map +1 -1
  318. package/dist/es/standards-sdk.es143.js +104 -1139
  319. package/dist/es/standards-sdk.es143.js.map +1 -1
  320. package/dist/es/standards-sdk.es144.js +144 -290
  321. package/dist/es/standards-sdk.es144.js.map +1 -1
  322. package/dist/es/standards-sdk.es145.js +31 -419
  323. package/dist/es/standards-sdk.es145.js.map +1 -1
  324. package/dist/es/standards-sdk.es146.js +10 -353
  325. package/dist/es/standards-sdk.es146.js.map +1 -1
  326. package/dist/es/standards-sdk.es147.js +144 -1084
  327. package/dist/es/standards-sdk.es147.js.map +1 -1
  328. package/dist/es/standards-sdk.es148.js +25 -204
  329. package/dist/es/standards-sdk.es148.js.map +1 -1
  330. package/dist/es/standards-sdk.es149.js +17 -1562
  331. package/dist/es/standards-sdk.es149.js.map +1 -1
  332. package/dist/es/standards-sdk.es15.js +1 -1
  333. package/dist/es/standards-sdk.es150.js +128 -1134
  334. package/dist/es/standards-sdk.es150.js.map +1 -1
  335. package/dist/es/standards-sdk.es151.js +199 -14
  336. package/dist/es/standards-sdk.es151.js.map +1 -1
  337. package/dist/es/standards-sdk.es152.js +774 -367
  338. package/dist/es/standards-sdk.es152.js.map +1 -1
  339. package/dist/es/standards-sdk.es153.js +10 -256
  340. package/dist/es/standards-sdk.es153.js.map +1 -1
  341. package/dist/es/standards-sdk.es154.js +567 -4
  342. package/dist/es/standards-sdk.es154.js.map +1 -1
  343. package/dist/es/standards-sdk.es155.js +619 -74
  344. package/dist/es/standards-sdk.es155.js.map +1 -1
  345. package/dist/es/standards-sdk.es156.js +12 -86
  346. package/dist/es/standards-sdk.es156.js.map +1 -1
  347. package/dist/es/standards-sdk.es157.js +2 -60
  348. package/dist/es/standards-sdk.es157.js.map +1 -1
  349. package/dist/es/standards-sdk.es158.js +87 -2547
  350. package/dist/es/standards-sdk.es158.js.map +1 -1
  351. package/dist/es/standards-sdk.es159.js +36 -155
  352. package/dist/es/standards-sdk.es159.js.map +1 -1
  353. package/dist/es/standards-sdk.es16.js +6 -6
  354. package/dist/es/standards-sdk.es160.js +2 -7
  355. package/dist/es/standards-sdk.es160.js.map +1 -1
  356. package/dist/es/standards-sdk.es161.js +223 -74
  357. package/dist/es/standards-sdk.es161.js.map +1 -1
  358. package/dist/es/standards-sdk.es162.js +1122 -47
  359. package/dist/es/standards-sdk.es162.js.map +1 -1
  360. package/dist/es/standards-sdk.es163.js +299 -187
  361. package/dist/es/standards-sdk.es163.js.map +1 -1
  362. package/dist/es/standards-sdk.es164.js +419 -23
  363. package/dist/es/standards-sdk.es164.js.map +1 -1
  364. package/dist/es/standards-sdk.es165.js +352 -55
  365. package/dist/es/standards-sdk.es165.js.map +1 -1
  366. package/dist/es/standards-sdk.es166.js +1113 -86
  367. package/dist/es/standards-sdk.es166.js.map +1 -1
  368. package/dist/es/standards-sdk.es167.js +200 -41
  369. package/dist/es/standards-sdk.es167.js.map +1 -1
  370. package/dist/es/standards-sdk.es168.js +1551 -188
  371. package/dist/es/standards-sdk.es168.js.map +1 -1
  372. package/dist/es/standards-sdk.es169.js +1161 -51
  373. package/dist/es/standards-sdk.es169.js.map +1 -1
  374. package/dist/es/standards-sdk.es170.js +15 -47
  375. package/dist/es/standards-sdk.es170.js.map +1 -1
  376. package/dist/es/standards-sdk.es171.js +445 -50
  377. package/dist/es/standards-sdk.es171.js.map +1 -1
  378. package/dist/es/standards-sdk.es172.js +255 -45
  379. package/dist/es/standards-sdk.es172.js.map +1 -1
  380. package/dist/es/standards-sdk.es173.js +4 -122
  381. package/dist/es/standards-sdk.es173.js.map +1 -1
  382. package/dist/es/standards-sdk.es174.js +77 -50
  383. package/dist/es/standards-sdk.es174.js.map +1 -1
  384. package/dist/es/standards-sdk.es175.js +85 -42
  385. package/dist/es/standards-sdk.es175.js.map +1 -1
  386. package/dist/es/standards-sdk.es176.js +60 -72
  387. package/dist/es/standards-sdk.es176.js.map +1 -1
  388. package/dist/es/standards-sdk.es177.js +2544 -65
  389. package/dist/es/standards-sdk.es177.js.map +1 -1
  390. package/dist/es/standards-sdk.es178.js +159 -44
  391. package/dist/es/standards-sdk.es178.js.map +1 -1
  392. package/dist/es/standards-sdk.es179.js +7 -36
  393. package/dist/es/standards-sdk.es179.js.map +1 -1
  394. package/dist/es/standards-sdk.es18.js +13 -13
  395. package/dist/es/standards-sdk.es180.js +86 -30
  396. package/dist/es/standards-sdk.es180.js.map +1 -1
  397. package/dist/es/standards-sdk.es181.js +65 -34
  398. package/dist/es/standards-sdk.es181.js.map +1 -1
  399. package/dist/es/standards-sdk.es182.js +196 -48
  400. package/dist/es/standards-sdk.es182.js.map +1 -1
  401. package/dist/es/standards-sdk.es183.js +23 -135
  402. package/dist/es/standards-sdk.es183.js.map +1 -1
  403. package/dist/es/standards-sdk.es184.js +54 -38
  404. package/dist/es/standards-sdk.es184.js.map +1 -1
  405. package/dist/es/standards-sdk.es185.js +102 -12470
  406. package/dist/es/standards-sdk.es185.js.map +1 -1
  407. package/dist/es/standards-sdk.es186.js +53 -52
  408. package/dist/es/standards-sdk.es186.js.map +1 -1
  409. package/dist/es/standards-sdk.es187.js +223 -103
  410. package/dist/es/standards-sdk.es187.js.map +1 -1
  411. package/dist/es/standards-sdk.es188.js +66 -75
  412. package/dist/es/standards-sdk.es188.js.map +1 -1
  413. package/dist/es/standards-sdk.es189.js +46 -197
  414. package/dist/es/standards-sdk.es189.js.map +1 -1
  415. package/dist/es/standards-sdk.es19.js +10 -10
  416. package/dist/es/standards-sdk.es190.js +60 -15
  417. package/dist/es/standards-sdk.es190.js.map +1 -1
  418. package/dist/es/standards-sdk.es191.js +47 -670
  419. package/dist/es/standards-sdk.es191.js.map +1 -1
  420. package/dist/es/standards-sdk.es192.js +112 -162
  421. package/dist/es/standards-sdk.es192.js.map +1 -1
  422. package/dist/es/standards-sdk.es193.js +53 -318
  423. package/dist/es/standards-sdk.es193.js.map +1 -1
  424. package/dist/es/standards-sdk.es194.js +54 -341
  425. package/dist/es/standards-sdk.es194.js.map +1 -1
  426. package/dist/es/standards-sdk.es195.js +72 -453
  427. package/dist/es/standards-sdk.es195.js.map +1 -1
  428. package/dist/es/standards-sdk.es196.js +75 -331
  429. package/dist/es/standards-sdk.es196.js.map +1 -1
  430. package/dist/es/standards-sdk.es197.js +44 -76
  431. package/dist/es/standards-sdk.es197.js.map +1 -1
  432. package/dist/es/standards-sdk.es198.js +30 -67
  433. package/dist/es/standards-sdk.es198.js.map +1 -1
  434. package/dist/es/standards-sdk.es199.js +30 -139
  435. package/dist/es/standards-sdk.es199.js.map +1 -1
  436. package/dist/es/standards-sdk.es2.js +2 -2
  437. package/dist/es/standards-sdk.es20.js +1 -1
  438. package/dist/es/standards-sdk.es200.js +34 -517
  439. package/dist/es/standards-sdk.es200.js.map +1 -1
  440. package/dist/es/standards-sdk.es201.js +48 -259
  441. package/dist/es/standards-sdk.es201.js.map +1 -1
  442. package/dist/es/standards-sdk.es202.js +127 -185
  443. package/dist/es/standards-sdk.es202.js.map +1 -1
  444. package/dist/es/standards-sdk.es203.js +36 -113
  445. package/dist/es/standards-sdk.es203.js.map +1 -1
  446. package/dist/es/standards-sdk.es204.js +12464 -134
  447. package/dist/es/standards-sdk.es204.js.map +1 -1
  448. package/dist/es/standards-sdk.es205.js +14 -181
  449. package/dist/es/standards-sdk.es205.js.map +1 -1
  450. package/dist/es/standards-sdk.es206.js +55 -683
  451. package/dist/es/standards-sdk.es206.js.map +1 -1
  452. package/dist/es/standards-sdk.es207.js +93 -167
  453. package/dist/es/standards-sdk.es207.js.map +1 -1
  454. package/dist/es/standards-sdk.es208.js +71 -225
  455. package/dist/es/standards-sdk.es208.js.map +1 -1
  456. package/dist/es/standards-sdk.es209.js +176 -215
  457. package/dist/es/standards-sdk.es209.js.map +1 -1
  458. package/dist/es/standards-sdk.es21.js +1 -1
  459. package/dist/es/standards-sdk.es210.js +675 -0
  460. package/dist/es/standards-sdk.es210.js.map +1 -0
  461. package/dist/es/standards-sdk.es211.js +76 -0
  462. package/dist/es/standards-sdk.es211.js.map +1 -0
  463. package/dist/es/standards-sdk.es212.js +175 -0
  464. package/dist/es/standards-sdk.es212.js.map +1 -0
  465. package/dist/es/standards-sdk.es213.js +325 -0
  466. package/dist/es/standards-sdk.es213.js.map +1 -0
  467. package/dist/es/standards-sdk.es214.js +349 -0
  468. package/dist/es/standards-sdk.es214.js.map +1 -0
  469. package/dist/es/standards-sdk.es215.js +456 -0
  470. package/dist/es/standards-sdk.es215.js.map +1 -0
  471. package/dist/es/standards-sdk.es216.js +334 -0
  472. package/dist/es/standards-sdk.es216.js.map +1 -0
  473. package/dist/es/standards-sdk.es217.js +79 -0
  474. package/dist/es/standards-sdk.es217.js.map +1 -0
  475. package/dist/es/standards-sdk.es218.js +142 -0
  476. package/dist/es/standards-sdk.es218.js.map +1 -0
  477. package/dist/es/standards-sdk.es219.js +520 -0
  478. package/dist/es/standards-sdk.es219.js.map +1 -0
  479. package/dist/es/standards-sdk.es22.js +1 -1
  480. package/dist/es/standards-sdk.es220.js +262 -0
  481. package/dist/es/standards-sdk.es220.js.map +1 -0
  482. package/dist/es/standards-sdk.es221.js +199 -0
  483. package/dist/es/standards-sdk.es221.js.map +1 -0
  484. package/dist/es/standards-sdk.es222.js +122 -0
  485. package/dist/es/standards-sdk.es222.js.map +1 -0
  486. package/dist/es/standards-sdk.es223.js +155 -0
  487. package/dist/es/standards-sdk.es223.js.map +1 -0
  488. package/dist/es/standards-sdk.es224.js +187 -0
  489. package/dist/es/standards-sdk.es224.js.map +1 -0
  490. package/dist/es/standards-sdk.es225.js +687 -0
  491. package/dist/es/standards-sdk.es225.js.map +1 -0
  492. package/dist/es/standards-sdk.es226.js +188 -0
  493. package/dist/es/standards-sdk.es226.js.map +1 -0
  494. package/dist/es/standards-sdk.es227.js +238 -0
  495. package/dist/es/standards-sdk.es227.js.map +1 -0
  496. package/dist/es/standards-sdk.es228.js +242 -0
  497. package/dist/es/standards-sdk.es228.js.map +1 -0
  498. package/dist/es/standards-sdk.es23.js +1 -1
  499. package/dist/es/standards-sdk.es24.js +1 -1
  500. package/dist/es/standards-sdk.es25.js +1 -1
  501. package/dist/es/standards-sdk.es26.js +1 -1
  502. package/dist/es/standards-sdk.es27.js +13 -13
  503. package/dist/es/standards-sdk.es30.js +2 -2
  504. package/dist/es/standards-sdk.es31.js +4 -4
  505. package/dist/es/standards-sdk.es32.js +1 -1
  506. package/dist/es/standards-sdk.es35.js +7 -7
  507. package/dist/es/standards-sdk.es36.js +4 -4
  508. package/dist/es/standards-sdk.es37.js +2 -2
  509. package/dist/es/standards-sdk.es38.js +2 -2
  510. package/dist/es/standards-sdk.es39.js +1 -1
  511. package/dist/es/standards-sdk.es4.js +2 -2
  512. package/dist/es/standards-sdk.es40.js +1 -1
  513. package/dist/es/standards-sdk.es41.js +2 -2
  514. package/dist/es/standards-sdk.es46.js +1 -1
  515. package/dist/es/standards-sdk.es5.js +2 -2
  516. package/dist/es/standards-sdk.es51.js +1 -1
  517. package/dist/es/standards-sdk.es53.js +1 -1
  518. package/dist/es/standards-sdk.es56.js +2 -2
  519. package/dist/es/standards-sdk.es59.js +1 -1
  520. package/dist/es/standards-sdk.es6.js +2 -2
  521. package/dist/es/standards-sdk.es60.js +1 -1
  522. package/dist/es/standards-sdk.es62.js +1 -1
  523. package/dist/es/standards-sdk.es63.js +2 -2
  524. package/dist/es/standards-sdk.es64.js +1 -1
  525. package/dist/es/standards-sdk.es65.js +1 -1
  526. package/dist/es/standards-sdk.es66.js +1 -1
  527. package/dist/es/standards-sdk.es67.js +8 -8
  528. package/dist/es/standards-sdk.es69.js +1 -1
  529. package/dist/es/standards-sdk.es7.js +1 -1
  530. package/dist/es/standards-sdk.es71.js +2 -2
  531. package/dist/es/standards-sdk.es72.js +3 -3
  532. package/dist/es/standards-sdk.es75.js +5 -5
  533. package/dist/es/standards-sdk.es76.js +3 -3
  534. package/dist/es/standards-sdk.es77.js +2 -2
  535. package/dist/es/standards-sdk.es78.js +1 -1
  536. package/dist/es/standards-sdk.es81.js +2 -2
  537. package/dist/es/standards-sdk.es83.js +2 -2
  538. package/dist/es/standards-sdk.es84.js +5 -5
  539. package/dist/es/standards-sdk.es85.js +1 -1
  540. package/dist/es/standards-sdk.es88.js +1 -1
  541. package/dist/es/standards-sdk.es89.js +2 -2
  542. package/dist/es/standards-sdk.es9.js +2 -2
  543. package/dist/es/standards-sdk.es90.js +4 -4
  544. package/dist/es/standards-sdk.es94.js +3 -3
  545. package/dist/es/standards-sdk.es96.js +2 -2
  546. package/dist/es/standards-sdk.es98.js +1 -1
  547. package/dist/es/standards-sdk.es99.js +3 -3
  548. package/package.json +1 -1
@@ -1,205 +1,236 @@
1
- import axios from "axios";
2
- import { Logger } from "./standards-sdk.es128.js";
3
- import { HederaMirrorNode } from "./standards-sdk.es149.js";
4
- import "buffer";
5
- import "@noble/curves/secp256k1.js";
6
- import "zod";
7
- import "./standards-sdk.es158.js";
8
- import "./standards-sdk.es152.js";
9
- import "./standards-sdk.es156.js";
10
- class HRLResolver {
11
- constructor(logLevel = "info") {
12
- this.defaultEndpoint = "https://kiloscribe.com/api/inscription-cdn";
13
- this.logger = Logger.getInstance({
14
- level: logLevel,
15
- module: "HRLResolver"
16
- });
1
+ import { readString } from "./standards-sdk.es198.js";
2
+ import "./standards-sdk.es182.js";
3
+ import "./standards-sdk.es195.js";
4
+ import "./standards-sdk.es196.js";
5
+ import "./standards-sdk.es197.js";
6
+ import { requestJson, Hcs25CollectorHttpError, isTimeoutError } from "./standards-sdk.es122.js";
7
+ const parsePositiveInt = (value) => {
8
+ if (typeof value === "number" && Number.isFinite(value)) {
9
+ const normalized = Math.floor(value);
10
+ return normalized > 0 ? normalized : null;
17
11
  }
18
- /**
19
- * Determines if a MIME type represents binary content
20
- */
21
- isBinaryContentType(mimeType) {
22
- const binaryTypes = [
23
- "image/",
24
- "audio/",
25
- "video/",
26
- "application/octet-stream",
27
- "application/pdf",
28
- "application/zip",
29
- "application/gzip",
30
- "application/x-binary",
31
- "application/vnd.ms-",
32
- "application/x-msdownload",
33
- "application/x-shockwave-flash",
34
- "font/",
35
- "application/wasm"
36
- ];
37
- return binaryTypes.some((prefix) => mimeType.startsWith(prefix));
38
- }
39
- /**
40
- * Parses an HRL string into its components
41
- */
42
- parseHRL(hrl) {
43
- if (!hrl) {
12
+ if (typeof value === "string") {
13
+ const trimmed = value.trim();
14
+ if (!trimmed) {
44
15
  return null;
45
16
  }
46
- const hrlPattern = /^hcs:\/\/(\d+)\/([0-9]+\.[0-9]+\.[0-9]+)$/;
47
- const match = hrl.match(hrlPattern);
48
- if (!match) {
17
+ const parsed = Number.parseInt(trimmed, 10);
18
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
19
+ }
20
+ return null;
21
+ };
22
+ const parseNonNegativeInt = (value) => {
23
+ if (typeof value === "number" && Number.isFinite(value)) {
24
+ const normalized = Math.floor(value);
25
+ return normalized >= 0 ? normalized : null;
26
+ }
27
+ if (typeof value === "string") {
28
+ const trimmed = value.trim();
29
+ if (!trimmed) {
49
30
  return null;
50
31
  }
51
- return {
52
- standard: match[1],
53
- topicId: match[2]
54
- };
32
+ const parsed = Number.parseInt(trimmed, 10);
33
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : null;
55
34
  }
56
- /**
57
- * Validates if a string is a valid HRL
58
- */
59
- isValidHRL(hrl) {
60
- if (!hrl || typeof hrl !== "string") {
61
- return false;
62
- }
63
- const parsed = this.parseHRL(hrl);
64
- if (!parsed) {
65
- return false;
66
- }
67
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
68
- if (!topicIdPattern.test(parsed.topicId)) {
69
- return false;
70
- }
71
- return true;
35
+ return null;
36
+ };
37
+ const parseChainIdFromNetworkKey = (networkKey) => {
38
+ if (typeof networkKey !== "string") {
39
+ return null;
72
40
  }
73
- /**
74
- * Validates if a string is a valid topic ID
75
- */
76
- isValidTopicId(topicId) {
77
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
78
- return topicIdPattern.test(topicId);
41
+ const trimmed = networkKey.trim();
42
+ if (!trimmed) {
43
+ return null;
79
44
  }
80
- /**
81
- * Resolves content from either an HRL or a topic ID
82
- * If a topic ID is provided, it queries the topic memo to determine the HCS standard
83
- */
84
- async resolve(hrlOrTopicId, options) {
85
- if (this.isValidHRL(hrlOrTopicId)) {
86
- return this.resolveHRL(hrlOrTopicId, options);
87
- }
88
- if (!this.isValidTopicId(hrlOrTopicId)) {
89
- throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);
90
- }
91
- try {
92
- const mirrorNode = new HederaMirrorNode(options.network, this.logger);
93
- const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);
94
- const memo = topicInfo?.memo || "";
95
- let standard = "1";
96
- if (memo) {
97
- const hcsMatch = memo.match(/^hcs-(\d+)/);
98
- if (hcsMatch && hcsMatch[1]) {
99
- standard = hcsMatch[1];
100
- }
101
- }
102
- const hrl = `hcs://${standard}/${hrlOrTopicId}`;
103
- return this.resolveHRL(hrl, options);
104
- } catch (error) {
105
- this.logger.error(
106
- `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`
107
- );
108
- const hrl = `hcs://1/${hrlOrTopicId}`;
109
- return this.resolveHRL(hrl, options);
110
- }
45
+ const match = /^eip155:(\d+)(?::|$)/i.exec(trimmed);
46
+ if (!match) {
47
+ return null;
48
+ }
49
+ const parsed = Number.parseInt(match[1], 10);
50
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
51
+ };
52
+ const parseIdParts = (value) => {
53
+ if (typeof value !== "string") {
54
+ return null;
55
+ }
56
+ const trimmed = value.trim();
57
+ if (!trimmed) {
58
+ return null;
59
+ }
60
+ const separator = trimmed.indexOf(":");
61
+ if (separator <= 0 || separator !== trimmed.lastIndexOf(":")) {
62
+ return null;
111
63
  }
112
- async getContentWithType(hrl, options) {
113
- if (!this.isValidHRL(hrl)) {
64
+ const chainId = Number.parseInt(trimmed.slice(0, separator), 10);
65
+ const agentId = trimmed.slice(separator + 1);
66
+ if (!Number.isFinite(chainId) || chainId <= 0 || !agentId) {
67
+ return null;
68
+ }
69
+ return { chainId, agentId };
70
+ };
71
+ function parseErc8004NativeId(subject) {
72
+ const metadata = subject.metadata ?? {};
73
+ const idParts = parseIdParts(readString(metadata, "originalId")) ?? parseIdParts(readString(metadata, "nativeId")) ?? parseIdParts(readString(metadata, "uid"));
74
+ const agentId = parseNonNegativeInt(metadata["agentId"]) ?? (idParts ? parseNonNegativeInt(idParts.agentId) : null);
75
+ const chainId = parsePositiveInt(metadata["chainId"]) ?? parseChainIdFromNetworkKey(metadata["networkKey"]) ?? idParts?.chainId ?? null;
76
+ if (agentId === null || chainId === null) {
77
+ return null;
78
+ }
79
+ return { chainId, agentId: String(agentId) };
80
+ }
81
+ function createHttpErc8004FeedbackSource(options) {
82
+ return {
83
+ async getFeedbackSummary(subject, context) {
84
+ const nativeId = parseErc8004NativeId(subject);
85
+ if (!nativeId) {
86
+ return null;
87
+ }
88
+ const url = typeof options.endpoint === "function" ? options.endpoint(subject) : options.endpoint.replace("{nativeId}", `${nativeId.chainId}:${nativeId.agentId}`).replace("{chainId}", String(nativeId.chainId)).replace("{agentId}", nativeId.agentId);
89
+ if (!url) {
90
+ return null;
91
+ }
92
+ const data = await requestJson(url, {
93
+ fetch: context.fetch,
94
+ timeoutMs: context.timeoutMs,
95
+ signal: context.signal
96
+ });
97
+ const summary = data.summary ?? data;
98
+ const averageScore = typeof summary.averageScore === "number" ? summary.averageScore : null;
99
+ const totalFeedbacks = typeof summary.totalFeedbacks === "number" ? summary.totalFeedbacks : typeof data.count === "number" ? data.count : null;
100
+ if (averageScore === null && totalFeedbacks === null) {
101
+ return null;
102
+ }
114
103
  return {
115
- content: hrl,
116
- contentType: "text/plain",
117
- isBinary: false
104
+ averageScore: averageScore ?? 0,
105
+ totalFeedbacks: totalFeedbacks ?? 0,
106
+ registry: summary.registry ?? "erc-8004",
107
+ network: summary.network ?? String(nativeId.chainId),
108
+ updatedAt: summary.updatedAt
118
109
  };
119
110
  }
120
- try {
121
- const result = await this.resolveHRL(hrl, options);
111
+ };
112
+ }
113
+ const ERC8004_REPUTATION_ABI = [
114
+ "function getClients(uint256 agentId) view returns (address[])",
115
+ "function getSummary(uint256 agentId, address[] clientAddresses, string tag1, string tag2) view returns (uint64 count, int128 summaryValue, uint8 summaryValueDecimals)"
116
+ ];
117
+ function createOnchainErc8004FeedbackSource(options) {
118
+ const scoreScale = options.scoreScale ?? "auto";
119
+ return {
120
+ async getFeedbackSummary(subject) {
121
+ const nativeId = parseErc8004NativeId(subject);
122
+ if (!nativeId) {
123
+ return null;
124
+ }
125
+ const registry = options.registries[nativeId.chainId];
126
+ if (!registry) {
127
+ return null;
128
+ }
129
+ const contract = options.contractFor(nativeId.chainId, registry);
130
+ const agentId = BigInt(nativeId.agentId);
131
+ const clients = await contract.getClients(agentId);
132
+ if (clients.length === 0) {
133
+ return {
134
+ averageScore: 0,
135
+ totalFeedbacks: 0,
136
+ network: String(nativeId.chainId)
137
+ };
138
+ }
139
+ const [count, summaryValue, decimals] = await contract.getSummary(
140
+ agentId,
141
+ [...clients],
142
+ options.tag1 ?? "",
143
+ options.tag2 ?? ""
144
+ );
145
+ const raw = Number(summaryValue) / 10 ** Number(decimals);
146
+ const averageScore = scoreScale === "ratio5" ? raw * 20 : scoreScale === "percent" ? raw : raw <= 5 ? raw * 20 : raw;
122
147
  return {
123
- content: result.content,
124
- contentType: result.contentType,
125
- isBinary: result.isBinary
148
+ averageScore: Math.min(100, Math.max(0, averageScore)),
149
+ totalFeedbacks: Number(count),
150
+ network: String(nativeId.chainId)
126
151
  };
127
- } catch (e) {
128
- const error = e;
129
- const logMessage = `Error resolving HRL for content and type: ${error.message}`;
130
- this.logger.error(logMessage);
131
- throw new Error(logMessage);
132
152
  }
133
- }
134
- /**
135
- * Resolves HRL content with proper content type detection
136
- */
137
- async resolveHRL(hrl, options) {
138
- const parsed = this.parseHRL(hrl);
139
- if (!parsed) {
140
- throw new Error(`Invalid HRL format: ${hrl}`);
153
+ };
154
+ }
155
+ const DEFAULT_INCLUDED_REGISTRIES = ["erc-8004"];
156
+ function statusFromError(error) {
157
+ return isTimeoutError(error) ? "timeout" : "error";
158
+ }
159
+ function createErc8004SignalAdapter(options) {
160
+ const collect = async (subject, context) => {
161
+ const now = context.now.toISOString();
162
+ const nativeId = parseErc8004NativeId(subject);
163
+ if (!nativeId) {
164
+ return [{ signalId: "erc8004.feedback", status: "missing" }];
141
165
  }
142
- const { standard, topicId } = parsed;
143
- this.logger.debug(
144
- `Resolving HRL reference: standard=${standard}, topicId=${topicId}`
145
- );
146
- try {
147
- const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;
148
- const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;
149
- this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);
150
- const headResponse = await axios.head(cdnUrl);
151
- const contentType = headResponse.headers["content-type"] || "";
152
- const isBinary = this.isBinaryContentType(contentType);
153
- if (isBinary || options.returnRaw) {
154
- const response2 = await axios.get(cdnUrl, {
155
- responseType: "arraybuffer"
156
- });
157
- return {
158
- content: response2.data,
159
- contentType,
160
- topicId,
161
- isBinary: true
162
- };
163
- }
164
- if (contentType === "application/json") {
165
- const response2 = await axios.get(cdnUrl, {
166
- responseType: "json"
167
- });
168
- if (!response2.data) {
169
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
166
+ let lastError = null;
167
+ for (const source of options.sources) {
168
+ try {
169
+ const summary = await source.getFeedbackSummary(subject, context);
170
+ if (!summary) {
171
+ continue;
170
172
  }
171
- return {
172
- content: response2.data,
173
- contentType,
174
- topicId,
175
- isBinary: false
173
+ const averageScore = Math.min(
174
+ 100,
175
+ Math.max(0, Number(summary.averageScore) || 0)
176
+ );
177
+ const totalFeedbacks = Math.max(
178
+ 0,
179
+ Math.floor(Number(summary.totalFeedbacks) || 0)
180
+ );
181
+ const record = {
182
+ averageScore,
183
+ totalFeedbacks,
184
+ registry: summary.registry ?? subject.registry ?? "erc-8004",
185
+ network: summary.network ?? String(nativeId.chainId),
186
+ updatedAt: summary.updatedAt ?? now
176
187
  };
188
+ return [
189
+ {
190
+ signalId: "erc8004.feedback",
191
+ status: "ok",
192
+ value: averageScore,
193
+ fields: [{ scope: "erc8004FeedbackSummary", values: record }],
194
+ provenance: {
195
+ source: "erc8004",
196
+ subjectId: `${nativeId.chainId}:${nativeId.agentId}`,
197
+ fetchedAt: now
198
+ }
199
+ }
200
+ ];
201
+ } catch (error) {
202
+ lastError = error;
203
+ continue;
177
204
  }
178
- const response = await axios.get(cdnUrl);
179
- if (!response.data) {
180
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
181
- }
182
- let content;
183
- if (typeof response.data === "object") {
184
- content = response.data.content || response.data.text || JSON.stringify(response.data);
185
- } else {
186
- content = response.data;
205
+ }
206
+ if (lastError) {
207
+ if (lastError instanceof Hcs25CollectorHttpError && lastError.status === 404) {
208
+ return [{ signalId: "erc8004.feedback", status: "missing" }];
187
209
  }
188
- return {
189
- content,
190
- contentType,
191
- topicId,
192
- isBinary: false
193
- };
194
- } catch (e) {
195
- const error = e;
196
- const logMessage = `Error resolving HRL reference: ${error.message}`;
197
- this.logger.error(logMessage);
198
- throw new Error(logMessage);
210
+ return [
211
+ {
212
+ signalId: "erc8004.feedback",
213
+ status: statusFromError(lastError)
214
+ }
215
+ ];
199
216
  }
200
- }
217
+ return [{ signalId: "erc8004.feedback", status: "missing" }];
218
+ };
219
+ return {
220
+ id: "erc8004-feedback",
221
+ produces: ["erc8004.feedback"],
222
+ timeoutMs: options.timeoutMs,
223
+ includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,
224
+ excludeRegistries: options.excludeRegistries,
225
+ appliesTo: options.appliesTo,
226
+ collect
227
+ };
201
228
  }
202
229
  export {
203
- HRLResolver
230
+ ERC8004_REPUTATION_ABI,
231
+ createErc8004SignalAdapter,
232
+ createHttpErc8004FeedbackSource,
233
+ createOnchainErc8004FeedbackSource,
234
+ parseErc8004NativeId
204
235
  };
205
236
  //# sourceMappingURL=standards-sdk.es132.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es132.js","sources":["../../src/utils/hrl-resolver.ts"],"sourcesContent":["import axios from 'axios';\nimport { Logger, LogLevel, ILogger } from './logger';\nimport { NetworkType } from './types';\nimport { HederaMirrorNode } from '../services';\n\n/**\n * Options for HRL resolution\n */\nexport interface HRLResolutionOptions {\n network: NetworkType;\n returnRaw?: boolean;\n cdnEndpoint?: string;\n}\n\n/**\n * Result of an HRL resolution operation\n */\nexport interface HRLResolutionResult {\n content: string | ArrayBuffer;\n contentType: string;\n topicId: string;\n isBinary: boolean;\n}\n\nexport interface ContentWithType {\n content: string | ArrayBuffer;\n contentType: string;\n isBinary: boolean;\n}\n\n/**\n * Utility class for resolving Hedera Resource Locators across the SDK\n */\nexport class HRLResolver {\n private logger: ILogger;\n private defaultEndpoint = 'https://kiloscribe.com/api/inscription-cdn';\n\n constructor(logLevel: LogLevel = 'info') {\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'HRLResolver',\n });\n }\n\n /**\n * Determines if a MIME type represents binary content\n */\n private isBinaryContentType(mimeType: string): boolean {\n const binaryTypes = [\n 'image/',\n 'audio/',\n 'video/',\n 'application/octet-stream',\n 'application/pdf',\n 'application/zip',\n 'application/gzip',\n 'application/x-binary',\n 'application/vnd.ms-',\n 'application/x-msdownload',\n 'application/x-shockwave-flash',\n 'font/',\n 'application/wasm',\n ];\n\n return binaryTypes.some(prefix => mimeType.startsWith(prefix));\n }\n\n /**\n * Parses an HRL string into its components\n */\n public parseHRL(hrl: string): { standard: string; topicId: string } | null {\n if (!hrl) {\n return null;\n }\n\n const hrlPattern = /^hcs:\\/\\/(\\d+)\\/([0-9]+\\.[0-9]+\\.[0-9]+)$/;\n const match = hrl.match(hrlPattern);\n\n if (!match) {\n return null;\n }\n\n return {\n standard: match[1],\n topicId: match[2],\n };\n }\n\n /**\n * Validates if a string is a valid HRL\n */\n public isValidHRL(hrl: string): boolean {\n if (!hrl || typeof hrl !== 'string') {\n return false;\n }\n\n const parsed = this.parseHRL(hrl);\n if (!parsed) {\n return false;\n }\n\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n if (!topicIdPattern.test(parsed.topicId)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Validates if a string is a valid topic ID\n */\n public isValidTopicId(topicId: string): boolean {\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n return topicIdPattern.test(topicId);\n }\n\n /**\n * Resolves content from either an HRL or a topic ID\n * If a topic ID is provided, it queries the topic memo to determine the HCS standard\n */\n public async resolve(\n hrlOrTopicId: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n if (this.isValidHRL(hrlOrTopicId)) {\n return this.resolveHRL(hrlOrTopicId, options);\n }\n\n if (!this.isValidTopicId(hrlOrTopicId)) {\n throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);\n }\n\n try {\n const mirrorNode = new HederaMirrorNode(options.network, this.logger);\n const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);\n const memo = topicInfo?.memo || '';\n\n let standard = '1';\n if (memo) {\n const hcsMatch = memo.match(/^hcs-(\\d+)/);\n if (hcsMatch && hcsMatch[1]) {\n standard = hcsMatch[1];\n }\n }\n\n const hrl = `hcs://${standard}/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n } catch (error: any) {\n this.logger.error(\n `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`,\n );\n const hrl = `hcs://1/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n }\n }\n\n public async getContentWithType(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<ContentWithType> {\n if (!this.isValidHRL(hrl)) {\n return {\n content: hrl,\n contentType: 'text/plain',\n isBinary: false,\n };\n }\n\n try {\n const result = await this.resolveHRL(hrl, options);\n return {\n content: result.content,\n contentType: result.contentType,\n isBinary: result.isBinary,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL for content and type: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n\n /**\n * Resolves HRL content with proper content type detection\n */\n public async resolveHRL(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n const parsed = this.parseHRL(hrl);\n\n if (!parsed) {\n throw new Error(`Invalid HRL format: ${hrl}`);\n }\n\n const { standard, topicId } = parsed;\n\n this.logger.debug(\n `Resolving HRL reference: standard=${standard}, topicId=${topicId}`,\n );\n\n try {\n const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;\n const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;\n\n this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);\n const headResponse = await axios.head(cdnUrl);\n const contentType = headResponse.headers['content-type'] || '';\n const isBinary = this.isBinaryContentType(contentType);\n\n if (isBinary || options.returnRaw) {\n const response = await axios.get(cdnUrl, {\n responseType: 'arraybuffer',\n });\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: true,\n };\n }\n\n if (contentType === 'application/json') {\n const response = await axios.get(cdnUrl, {\n responseType: 'json',\n });\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: false,\n };\n }\n\n const response = await axios.get(cdnUrl);\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n let content: string;\n\n if (typeof response.data === 'object') {\n content =\n response.data.content ||\n response.data.text ||\n JSON.stringify(response.data);\n } else {\n content = response.data;\n }\n\n return {\n content,\n contentType,\n topicId,\n isBinary: false,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL reference: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n}\n"],"names":["response"],"mappings":";;;;;;;;;AAiCO,MAAM,YAAY;AAAA,EAIvB,YAAY,WAAqB,QAAQ;AAFzC,SAAQ,kBAAkB;AAGxB,SAAK,SAAS,OAAO,YAAY;AAAA,MAC/B,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAAoB,UAA2B;AACrD,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,WAAO,YAAY,KAAK,CAAA,WAAU,SAAS,WAAW,MAAM,CAAC;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKO,SAAS,KAA2D;AACzE,QAAI,CAAC,KAAK;AACR,aAAO;AAAA,IACT;AAEA,UAAM,aAAa;AACnB,UAAM,QAAQ,IAAI,MAAM,UAAU;AAElC,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,MACL,UAAU,MAAM,CAAC;AAAA,MACjB,SAAS,MAAM,CAAC;AAAA,IAAA;AAAA,EAEpB;AAAA;AAAA;AAAA;AAAA,EAKO,WAAW,KAAsB;AACtC,QAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,aAAO;AAAA,IACT;AAEA,UAAM,SAAS,KAAK,SAAS,GAAG;AAChC,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB;AACvB,QAAI,CAAC,eAAe,KAAK,OAAO,OAAO,GAAG;AACxC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,eAAe,SAA0B;AAC9C,UAAM,iBAAiB;AACvB,WAAO,eAAe,KAAK,OAAO;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,QACX,cACA,SAC8B;AAC9B,QAAI,KAAK,WAAW,YAAY,GAAG;AACjC,aAAO,KAAK,WAAW,cAAc,OAAO;AAAA,IAC9C;AAEA,QAAI,CAAC,KAAK,eAAe,YAAY,GAAG;AACtC,YAAM,IAAI,MAAM,mCAAmC,YAAY,EAAE;AAAA,IACnE;AAEA,QAAI;AACF,YAAM,aAAa,IAAI,iBAAiB,QAAQ,SAAS,KAAK,MAAM;AACpE,YAAM,YAAY,MAAM,WAAW,aAAa,YAAY;AAC5D,YAAM,OAAO,WAAW,QAAQ;AAEhC,UAAI,WAAW;AACf,UAAI,MAAM;AACR,cAAM,WAAW,KAAK,MAAM,YAAY;AACxC,YAAI,YAAY,SAAS,CAAC,GAAG;AAC3B,qBAAW,SAAS,CAAC;AAAA,QACvB;AAAA,MACF;AAEA,YAAM,MAAM,SAAS,QAAQ,IAAI,YAAY;AAC7C,aAAO,KAAK,WAAW,KAAK,OAAO;AAAA,IACrC,SAAS,OAAY;AACnB,WAAK,OAAO;AAAA,QACV,gCAAgC,YAAY,KAAK,MAAM,OAAO;AAAA,MAAA;AAEhE,YAAM,MAAM,WAAW,YAAY;AACnC,aAAO,KAAK,WAAW,KAAK,OAAO;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAa,mBACX,KACA,SAC0B;AAC1B,QAAI,CAAC,KAAK,WAAW,GAAG,GAAG;AACzB,aAAO;AAAA,QACL,SAAS;AAAA,QACT,aAAa;AAAA,QACb,UAAU;AAAA,MAAA;AAAA,IAEd;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,KAAK,WAAW,KAAK,OAAO;AACjD,aAAO;AAAA,QACL,SAAS,OAAO;AAAA,QAChB,aAAa,OAAO;AAAA,QACpB,UAAU,OAAO;AAAA,MAAA;AAAA,IAErB,SAAS,GAAQ;AACf,YAAM,QAAQ;AACd,YAAM,aAAa,6CAA6C,MAAM,OAAO;AAC7E,WAAK,OAAO,MAAM,UAAU;AAC5B,YAAM,IAAI,MAAM,UAAU;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,WACX,KACA,SAC8B;AAC9B,UAAM,SAAS,KAAK,SAAS,GAAG;AAEhC,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE;AAAA,IAC9C;AAEA,UAAM,EAAE,UAAU,QAAA,IAAY;AAE9B,SAAK,OAAO;AAAA,MACV,qCAAqC,QAAQ,aAAa,OAAO;AAAA,IAAA;AAGnE,QAAI;AACF,YAAM,cAAc,QAAQ,eAAe,KAAK;AAChD,YAAM,SAAS,GAAG,WAAW,IAAI,OAAO,YAAY,QAAQ,OAAO;AAEnE,WAAK,OAAO,MAAM,8BAA8B,MAAM,EAAE;AACxD,YAAM,eAAe,MAAM,MAAM,KAAK,MAAM;AAC5C,YAAM,cAAc,aAAa,QAAQ,cAAc,KAAK;AAC5D,YAAM,WAAW,KAAK,oBAAoB,WAAW;AAErD,UAAI,YAAY,QAAQ,WAAW;AACjC,cAAMA,YAAW,MAAM,MAAM,IAAI,QAAQ;AAAA,UACvC,cAAc;AAAA,QAAA,CACf;AAED,eAAO;AAAA,UACL,SAASA,UAAS;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,UAAI,gBAAgB,oBAAoB;AACtC,cAAMA,YAAW,MAAM,MAAM,IAAI,QAAQ;AAAA,UACvC,cAAc;AAAA,QAAA,CACf;AAED,YAAI,CAACA,UAAS,MAAM;AAClB,gBAAM,IAAI,MAAM,uCAAuC,OAAO,EAAE;AAAA,QAClE;AAEA,eAAO;AAAA,UACL,SAASA,UAAS;AAAA,UAClB;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,YAAM,WAAW,MAAM,MAAM,IAAI,MAAM;AAEvC,UAAI,CAAC,SAAS,MAAM;AAClB,cAAM,IAAI,MAAM,uCAAuC,OAAO,EAAE;AAAA,MAClE;AAEA,UAAI;AAEJ,UAAI,OAAO,SAAS,SAAS,UAAU;AACrC,kBACE,SAAS,KAAK,WACd,SAAS,KAAK,QACd,KAAK,UAAU,SAAS,IAAI;AAAA,MAChC,OAAO;AACL,kBAAU,SAAS;AAAA,MACrB;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,MAAA;AAAA,IAEd,SAAS,GAAQ;AACf,YAAM,QAAQ;AACd,YAAM,aAAa,kCAAkC,MAAM,OAAO;AAClE,WAAK,OAAO,MAAM,UAAU;AAC5B,YAAM,IAAI,MAAM,UAAU;AAAA,IAC5B;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es132.js","sources":["../../src/hcs-25/collectors/erc8004.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { readString } from '../signals';\nimport { Hcs25CollectorHttpError, isTimeoutError, requestJson } from './http';\nimport type {\n Hcs25CollectContext,\n Hcs25SignalAdapter,\n Hcs25SignalAdapterResult,\n Hcs25SignalStatus,\n} from './types';\n\n/**\n * Parsed ERC-8004 feedback summary used by the scoring adapter.\n */\nexport interface Hcs25Erc8004FeedbackSummary {\n averageScore: number;\n totalFeedbacks: number;\n registry?: string;\n network?: string;\n updatedAt?: string;\n}\n\n/**\n * A feedback source: returns the summary for a subject or null when the\n * source has no data for it.\n */\nexport interface Hcs25Erc8004FeedbackSource {\n getFeedbackSummary(\n subject: Hcs25Subject,\n context: Hcs25CollectContext,\n ): Promise<Hcs25Erc8004FeedbackSummary | null>;\n}\n\nconst parsePositiveInt = (value: unknown): number | null => {\n if (typeof value === 'number' && Number.isFinite(value)) {\n const normalized = Math.floor(value);\n return normalized > 0 ? normalized : null;\n }\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const parsed = Number.parseInt(trimmed, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : null;\n }\n return null;\n};\n\nconst parseNonNegativeInt = (value: unknown): number | null => {\n if (typeof value === 'number' && Number.isFinite(value)) {\n const normalized = Math.floor(value);\n return normalized >= 0 ? normalized : null;\n }\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const parsed = Number.parseInt(trimmed, 10);\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : null;\n }\n return null;\n};\n\nconst parseChainIdFromNetworkKey = (networkKey: unknown): number | null => {\n if (typeof networkKey !== 'string') {\n return null;\n }\n const trimmed = networkKey.trim();\n if (!trimmed) {\n return null;\n }\n const match = /^eip155:(\\d+)(?::|$)/i.exec(trimmed);\n if (!match) {\n return null;\n }\n const parsed = Number.parseInt(match[1], 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : null;\n};\n\nconst parseIdParts = (\n value: unknown,\n): { chainId: number; agentId: string } | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const separator = trimmed.indexOf(':');\n if (separator <= 0 || separator !== trimmed.lastIndexOf(':')) {\n return null;\n }\n const chainId = Number.parseInt(trimmed.slice(0, separator), 10);\n const agentId = trimmed.slice(separator + 1);\n if (!Number.isFinite(chainId) || chainId <= 0 || !agentId) {\n return null;\n }\n return { chainId, agentId };\n};\n\n/**\n * Resolves the ERC-8004 `{chainId, agentId}` identity from subject metadata,\n * mirroring the registry-broker production adapter:\n *\n * 1. Explicit `metadata.agentId` + `metadata.chainId` (or\n * `metadata.networkKey` such as `eip155:8453`).\n * 2. `metadata.originalId` / `metadata.nativeId` / `metadata.uid` in\n * `{chainId}:{agentId}` form.\n */\nexport function parseErc8004NativeId(\n subject: Hcs25Subject,\n): { chainId: number; agentId: string } | null {\n const metadata = subject.metadata ?? {};\n\n const idParts =\n parseIdParts(readString(metadata, 'originalId')) ??\n parseIdParts(readString(metadata, 'nativeId')) ??\n parseIdParts(readString(metadata, 'uid'));\n\n const agentId =\n parseNonNegativeInt(metadata['agentId']) ??\n (idParts ? parseNonNegativeInt(idParts.agentId) : null);\n const chainId =\n parsePositiveInt(metadata['chainId']) ??\n parseChainIdFromNetworkKey(metadata['networkKey']) ??\n idParts?.chainId ??\n null;\n\n if (agentId === null || chainId === null) {\n return null;\n }\n return { chainId, agentId: String(agentId) };\n}\n\n/**\n * Options for the HTTP indexer feedback source.\n */\nexport interface Hcs25Erc8004IndexerSourceOptions {\n /**\n * Indexer endpoint template; `{nativeId}`, `{chainId}`, and `{agentId}`\n * placeholders are substituted, or provide a function returning the URL.\n */\n endpoint: string | ((subject: Hcs25Subject) => string | null);\n}\n\ninterface Erc8004IndexerResponse {\n averageScore?: number;\n totalFeedbacks?: number;\n count?: number;\n registry?: string;\n network?: string;\n updatedAt?: string;\n summary?: {\n averageScore?: number;\n totalFeedbacks?: number;\n registry?: string;\n network?: string;\n updatedAt?: string;\n };\n}\n\n/**\n * Creates a feedback source that queries an HTTP indexer exposing ERC-8004\n * reputation summaries as JSON.\n */\nexport function createHttpErc8004FeedbackSource(\n options: Hcs25Erc8004IndexerSourceOptions,\n): Hcs25Erc8004FeedbackSource {\n return {\n async getFeedbackSummary(subject, context) {\n const nativeId = parseErc8004NativeId(subject);\n if (!nativeId) {\n return null;\n }\n const url =\n typeof options.endpoint === 'function'\n ? options.endpoint(subject)\n : options.endpoint\n .replace('{nativeId}', `${nativeId.chainId}:${nativeId.agentId}`)\n .replace('{chainId}', String(nativeId.chainId))\n .replace('{agentId}', nativeId.agentId);\n if (!url) {\n return null;\n }\n const data = await requestJson<Erc8004IndexerResponse>(url, {\n fetch: context.fetch,\n timeoutMs: context.timeoutMs,\n signal: context.signal,\n });\n const summary = data.summary ?? data;\n const averageScore =\n typeof summary.averageScore === 'number' ? summary.averageScore : null;\n const totalFeedbacks =\n typeof summary.totalFeedbacks === 'number'\n ? summary.totalFeedbacks\n : typeof (data as Erc8004IndexerResponse).count === 'number'\n ? (data as Erc8004IndexerResponse).count!\n : null;\n if (averageScore === null && totalFeedbacks === null) {\n return null;\n }\n return {\n averageScore: averageScore ?? 0,\n totalFeedbacks: totalFeedbacks ?? 0,\n registry: summary.registry ?? 'erc-8004',\n network: summary.network ?? String(nativeId.chainId),\n updatedAt: summary.updatedAt,\n };\n },\n };\n}\n\nconst ERC8004_REPUTATION_ABI = [\n 'function getClients(uint256 agentId) view returns (address[])',\n 'function getSummary(uint256 agentId, address[] clientAddresses, string tag1, string tag2) view returns (uint64 count, int128 summaryValue, uint8 summaryValueDecimals)',\n] as const;\n\n/**\n * Minimal contract-call surface needed from an ethers provider/signer or a\n * duck-typed `ethers.Contract`. Callers may also pass a fully custom\n * `readContract` implementation.\n */\nexport interface Hcs25Erc8004ContractCaller {\n getClients(agentId: bigint): Promise<readonly string[]>;\n getSummary(\n agentId: bigint,\n clientAddresses: readonly string[],\n tag1: string,\n tag2: string,\n ): Promise<readonly [bigint, bigint, bigint]>;\n}\n\n/**\n * Options for the on-chain feedback source (EVM ERC-8004 networks).\n */\nexport interface Hcs25Erc8004OnchainSourceOptions {\n /**\n * Registry contract address per chainId (e.g. `{11155111: '0x…'}`).\n */\n registries: Record<number, string>;\n /**\n * Contract factory per chainId: `(registryAddress, agentId)` → caller.\n * Build it with ethers: `new ethers.Contract(addr, ERC8004_ABI, provider)`.\n */\n contractFor: (\n chainId: number,\n registry: string,\n ) => Hcs25Erc8004ContractCaller;\n /**\n * Interpretation of the raw summary value: `auto` treats values ≤5 as a\n * 0–5 scale scaled ×20, ≤100 as already 0–100.\n */\n scoreScale?: 'auto' | 'ratio5' | 'percent';\n tag1?: string;\n tag2?: string;\n}\n\n/**\n * Creates a feedback source that reads the ERC-8004 Reputation Registry\n * contract directly: `getClients(agentId)` then\n * `getSummary(agentId, clients, tag1, tag2)`.\n */\nexport function createOnchainErc8004FeedbackSource(\n options: Hcs25Erc8004OnchainSourceOptions,\n): Hcs25Erc8004FeedbackSource {\n const scoreScale = options.scoreScale ?? 'auto';\n return {\n async getFeedbackSummary(subject) {\n const nativeId = parseErc8004NativeId(subject);\n if (!nativeId) {\n return null;\n }\n const registry = options.registries[nativeId.chainId];\n if (!registry) {\n return null;\n }\n const contract = options.contractFor(nativeId.chainId, registry);\n const agentId = BigInt(nativeId.agentId);\n const clients = await contract.getClients(agentId);\n if (clients.length === 0) {\n return {\n averageScore: 0,\n totalFeedbacks: 0,\n network: String(nativeId.chainId),\n };\n }\n const [count, summaryValue, decimals] = await contract.getSummary(\n agentId,\n [...clients],\n options.tag1 ?? '',\n options.tag2 ?? '',\n );\n const raw = Number(summaryValue) / 10 ** Number(decimals);\n const averageScore =\n scoreScale === 'ratio5'\n ? raw * 20\n : scoreScale === 'percent'\n ? raw\n : raw <= 5\n ? raw * 20\n : raw;\n return {\n averageScore: Math.min(100, Math.max(0, averageScore)),\n totalFeedbacks: Number(count),\n network: String(nativeId.chainId),\n };\n },\n };\n}\n\n/**\n * Options for the ERC-8004 feedback signal adapter.\n */\nexport interface Hcs25Erc8004SignalAdapterOptions {\n /** One or more feedback sources; the first non-null summary wins. */\n sources: readonly Hcs25Erc8004FeedbackSource[];\n timeoutMs?: number;\n includeRegistries?: readonly string[];\n excludeRegistries?: readonly string[];\n appliesTo?: (subject: Hcs25Subject) => boolean;\n}\n\nconst DEFAULT_INCLUDED_REGISTRIES: readonly string[] = ['erc-8004'];\n\nfunction statusFromError(error: unknown): Hcs25SignalStatus {\n return isTimeoutError(error) ? 'timeout' : 'error';\n}\n\n/**\n * Creates the `erc8004-feedback` signal adapter: resolves the subject's\n * `chainId:agentId` identity, queries configured feedback sources (HTTP\n * indexer and/or on-chain via ethers), and writes\n * `metadata.erc8004FeedbackSummary`.\n */\nexport function createErc8004SignalAdapter(\n options: Hcs25Erc8004SignalAdapterOptions,\n): Hcs25SignalAdapter {\n const collect = async (\n subject: Hcs25Subject,\n context: Hcs25CollectContext,\n ): Promise<Hcs25SignalAdapterResult[]> => {\n const now = context.now.toISOString();\n const nativeId = parseErc8004NativeId(subject);\n if (!nativeId) {\n return [{ signalId: 'erc8004.feedback', status: 'missing' }];\n }\n\n let lastError: unknown = null;\n for (const source of options.sources) {\n try {\n const summary = await source.getFeedbackSummary(subject, context);\n if (!summary) {\n continue;\n }\n const averageScore = Math.min(\n 100,\n Math.max(0, Number(summary.averageScore) || 0),\n );\n const totalFeedbacks = Math.max(\n 0,\n Math.floor(Number(summary.totalFeedbacks) || 0),\n );\n const record: Record<string, Hcs25JsonValue> = {\n averageScore,\n totalFeedbacks,\n registry: summary.registry ?? subject.registry ?? 'erc-8004',\n network: summary.network ?? String(nativeId.chainId),\n updatedAt: summary.updatedAt ?? now,\n };\n return [\n {\n signalId: 'erc8004.feedback',\n status: 'ok',\n value: averageScore,\n fields: [{ scope: 'erc8004FeedbackSummary', values: record }],\n provenance: {\n source: 'erc8004',\n subjectId: `${nativeId.chainId}:${nativeId.agentId}`,\n fetchedAt: now,\n },\n },\n ];\n } catch (error) {\n lastError = error;\n continue;\n }\n }\n\n if (lastError) {\n if (\n lastError instanceof Hcs25CollectorHttpError &&\n lastError.status === 404\n ) {\n return [{ signalId: 'erc8004.feedback', status: 'missing' }];\n }\n return [\n {\n signalId: 'erc8004.feedback',\n status: statusFromError(lastError),\n },\n ];\n }\n return [{ signalId: 'erc8004.feedback', status: 'missing' }];\n };\n\n return {\n id: 'erc8004-feedback',\n produces: ['erc8004.feedback'],\n timeoutMs: options.timeoutMs,\n includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,\n excludeRegistries: options.excludeRegistries,\n appliesTo: options.appliesTo,\n collect,\n };\n}\n\nexport { ERC8004_REPUTATION_ABI };\n"],"names":[],"mappings":"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"}