@hashgraphonline/standards-sdk 0.1.189 → 0.1.191

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 (576) hide show
  1. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -1
  2. package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  3. package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  4. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -1
  5. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -1
  6. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -1
  7. package/dist/browser/hcs-25/adapters/index.d.ts +1 -0
  8. package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -1
  9. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -1
  10. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  11. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -1
  12. package/dist/browser/hcs-25/collectors/acp.d.ts +42 -0
  13. package/dist/browser/hcs-25/collectors/acp.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/collectors/agentverse.d.ts +37 -0
  15. package/dist/browser/hcs-25/collectors/agentverse.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  17. package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/collectors/availability.d.ts +29 -0
  19. package/dist/browser/hcs-25/collectors/availability.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/collectors/catalog.d.ts +64 -0
  21. package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/collectors/connectivity.d.ts +49 -0
  23. package/dist/browser/hcs-25/collectors/connectivity.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/collectors/endpoints.d.ts +9 -0
  25. package/dist/browser/hcs-25/collectors/endpoints.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/collectors/erc8004.d.ts +104 -0
  27. package/dist/browser/hcs-25/collectors/erc8004.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/collectors/ethos.d.ts +95 -0
  29. package/dist/browser/hcs-25/collectors/ethos.d.ts.map +1 -0
  30. package/dist/browser/hcs-25/collectors/freshness.d.ts +36 -0
  31. package/dist/browser/hcs-25/collectors/freshness.d.ts.map +1 -0
  32. package/dist/browser/hcs-25/collectors/http.d.ts +67 -0
  33. package/dist/browser/hcs-25/collectors/http.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/collectors/index.d.ts +22 -0
  35. package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/collectors/merge.d.ts +11 -0
  37. package/dist/browser/hcs-25/collectors/merge.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/collectors/model-evals.d.ts +315 -0
  39. package/dist/browser/hcs-25/collectors/model-evals.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts +51 -0
  41. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/collectors/output-verification.d.ts +37 -0
  43. package/dist/browser/hcs-25/collectors/output-verification.d.ts.map +1 -0
  44. package/dist/browser/hcs-25/collectors/pipeline.d.ts +19 -0
  45. package/dist/browser/hcs-25/collectors/pipeline.d.ts.map +1 -0
  46. package/dist/browser/hcs-25/collectors/runner.d.ts +20 -0
  47. package/dist/browser/hcs-25/collectors/runner.d.ts.map +1 -0
  48. package/dist/browser/hcs-25/collectors/simple-evals.d.ts +91 -0
  49. package/dist/browser/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  50. package/dist/browser/hcs-25/collectors/types.d.ts +113 -0
  51. package/dist/browser/hcs-25/collectors/types.d.ts.map +1 -0
  52. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts +105 -0
  53. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  54. package/dist/browser/hcs-25/collectors/x402.d.ts +48 -0
  55. package/dist/browser/hcs-25/collectors/x402.d.ts.map +1 -0
  56. package/dist/browser/hcs-25/index.d.ts +1 -0
  57. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  58. package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  59. package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  60. package/dist/browser/hcs-25/signals/index.d.ts +1 -0
  61. package/dist/browser/hcs-25/signals/index.d.ts.map +1 -1
  62. package/dist/browser/hcs-25/signals/marketplace.d.ts +6 -6
  63. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -1
  64. package/dist/browser/hcs-25/signals/model-evals.d.ts +12 -12
  65. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -1
  66. package/dist/browser/hcs-25/signals/operational.d.ts +15 -12
  67. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -1
  68. package/dist/browser/hcs-25/signals/simple-evals.d.ts +1 -1
  69. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -1
  70. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -1
  71. package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  72. package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  73. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -1
  74. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -1
  75. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -1
  76. package/dist/browser-root/hcs-25/adapters/index.d.ts +1 -0
  77. package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -1
  78. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -1
  79. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  80. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -1
  81. package/dist/browser-root/hcs-25/collectors/acp.d.ts +42 -0
  82. package/dist/browser-root/hcs-25/collectors/acp.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts +37 -0
  84. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  86. package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/collectors/availability.d.ts +29 -0
  88. package/dist/browser-root/hcs-25/collectors/availability.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/collectors/catalog.d.ts +64 -0
  90. package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts +49 -0
  92. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts +9 -0
  94. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts.map +1 -0
  95. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts +104 -0
  96. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts.map +1 -0
  97. package/dist/browser-root/hcs-25/collectors/ethos.d.ts +95 -0
  98. package/dist/browser-root/hcs-25/collectors/ethos.d.ts.map +1 -0
  99. package/dist/browser-root/hcs-25/collectors/freshness.d.ts +36 -0
  100. package/dist/browser-root/hcs-25/collectors/freshness.d.ts.map +1 -0
  101. package/dist/browser-root/hcs-25/collectors/http.d.ts +67 -0
  102. package/dist/browser-root/hcs-25/collectors/http.d.ts.map +1 -0
  103. package/dist/browser-root/hcs-25/collectors/index.d.ts +22 -0
  104. package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -0
  105. package/dist/browser-root/hcs-25/collectors/merge.d.ts +11 -0
  106. package/dist/browser-root/hcs-25/collectors/merge.d.ts.map +1 -0
  107. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts +315 -0
  108. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts.map +1 -0
  109. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts +51 -0
  110. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  111. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts +37 -0
  112. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts.map +1 -0
  113. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts +19 -0
  114. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts.map +1 -0
  115. package/dist/browser-root/hcs-25/collectors/runner.d.ts +20 -0
  116. package/dist/browser-root/hcs-25/collectors/runner.d.ts.map +1 -0
  117. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts +91 -0
  118. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  119. package/dist/browser-root/hcs-25/collectors/types.d.ts +113 -0
  120. package/dist/browser-root/hcs-25/collectors/types.d.ts.map +1 -0
  121. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts +105 -0
  122. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  123. package/dist/browser-root/hcs-25/collectors/x402.d.ts +48 -0
  124. package/dist/browser-root/hcs-25/collectors/x402.d.ts.map +1 -0
  125. package/dist/browser-root/hcs-25/index.d.ts +1 -0
  126. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  127. package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  128. package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  129. package/dist/browser-root/hcs-25/signals/index.d.ts +1 -0
  130. package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -1
  131. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +6 -6
  132. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -1
  133. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +12 -12
  134. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -1
  135. package/dist/browser-root/hcs-25/signals/operational.d.ts +15 -12
  136. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -1
  137. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +1 -1
  138. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -1
  139. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -1
  140. package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  141. package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  142. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -1
  143. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -1
  144. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -1
  145. package/dist/cjs/hcs-25/adapters/index.d.ts +1 -0
  146. package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -1
  147. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -1
  148. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  149. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -1
  150. package/dist/cjs/hcs-25/collectors/acp.d.ts +42 -0
  151. package/dist/cjs/hcs-25/collectors/acp.d.ts.map +1 -0
  152. package/dist/cjs/hcs-25/collectors/agentverse.d.ts +37 -0
  153. package/dist/cjs/hcs-25/collectors/agentverse.d.ts.map +1 -0
  154. package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  155. package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  156. package/dist/cjs/hcs-25/collectors/availability.d.ts +29 -0
  157. package/dist/cjs/hcs-25/collectors/availability.d.ts.map +1 -0
  158. package/dist/cjs/hcs-25/collectors/catalog.d.ts +64 -0
  159. package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -0
  160. package/dist/cjs/hcs-25/collectors/connectivity.d.ts +49 -0
  161. package/dist/cjs/hcs-25/collectors/connectivity.d.ts.map +1 -0
  162. package/dist/cjs/hcs-25/collectors/endpoints.d.ts +9 -0
  163. package/dist/cjs/hcs-25/collectors/endpoints.d.ts.map +1 -0
  164. package/dist/cjs/hcs-25/collectors/erc8004.d.ts +104 -0
  165. package/dist/cjs/hcs-25/collectors/erc8004.d.ts.map +1 -0
  166. package/dist/cjs/hcs-25/collectors/ethos.d.ts +95 -0
  167. package/dist/cjs/hcs-25/collectors/ethos.d.ts.map +1 -0
  168. package/dist/cjs/hcs-25/collectors/freshness.d.ts +36 -0
  169. package/dist/cjs/hcs-25/collectors/freshness.d.ts.map +1 -0
  170. package/dist/cjs/hcs-25/collectors/http.d.ts +67 -0
  171. package/dist/cjs/hcs-25/collectors/http.d.ts.map +1 -0
  172. package/dist/cjs/hcs-25/collectors/index.d.ts +22 -0
  173. package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -0
  174. package/dist/cjs/hcs-25/collectors/merge.d.ts +11 -0
  175. package/dist/cjs/hcs-25/collectors/merge.d.ts.map +1 -0
  176. package/dist/cjs/hcs-25/collectors/model-evals.d.ts +315 -0
  177. package/dist/cjs/hcs-25/collectors/model-evals.d.ts.map +1 -0
  178. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts +51 -0
  179. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  180. package/dist/cjs/hcs-25/collectors/output-verification.d.ts +37 -0
  181. package/dist/cjs/hcs-25/collectors/output-verification.d.ts.map +1 -0
  182. package/dist/cjs/hcs-25/collectors/pipeline.d.ts +19 -0
  183. package/dist/cjs/hcs-25/collectors/pipeline.d.ts.map +1 -0
  184. package/dist/cjs/hcs-25/collectors/runner.d.ts +20 -0
  185. package/dist/cjs/hcs-25/collectors/runner.d.ts.map +1 -0
  186. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts +91 -0
  187. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  188. package/dist/cjs/hcs-25/collectors/types.d.ts +113 -0
  189. package/dist/cjs/hcs-25/collectors/types.d.ts.map +1 -0
  190. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts +105 -0
  191. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  192. package/dist/cjs/hcs-25/collectors/x402.d.ts +48 -0
  193. package/dist/cjs/hcs-25/collectors/x402.d.ts.map +1 -0
  194. package/dist/cjs/hcs-25/index.d.ts +1 -0
  195. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  196. package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  197. package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  198. package/dist/cjs/hcs-25/signals/index.d.ts +1 -0
  199. package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -1
  200. package/dist/cjs/hcs-25/signals/marketplace.d.ts +6 -6
  201. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -1
  202. package/dist/cjs/hcs-25/signals/model-evals.d.ts +12 -12
  203. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -1
  204. package/dist/cjs/hcs-25/signals/operational.d.ts +15 -12
  205. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -1
  206. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +1 -1
  207. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -1
  208. package/dist/cjs/standards-sdk.cjs +2 -2
  209. package/dist/cjs/standards-sdk.cjs.map +1 -1
  210. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -1
  211. package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
  212. package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
  213. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -1
  214. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -1
  215. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -1
  216. package/dist/es/hcs-25/adapters/index.d.ts +1 -0
  217. package/dist/es/hcs-25/adapters/index.d.ts.map +1 -1
  218. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -1
  219. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  220. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -1
  221. package/dist/es/hcs-25/collectors/acp.d.ts +42 -0
  222. package/dist/es/hcs-25/collectors/acp.d.ts.map +1 -0
  223. package/dist/es/hcs-25/collectors/agentverse.d.ts +37 -0
  224. package/dist/es/hcs-25/collectors/agentverse.d.ts.map +1 -0
  225. package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
  226. package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
  227. package/dist/es/hcs-25/collectors/availability.d.ts +29 -0
  228. package/dist/es/hcs-25/collectors/availability.d.ts.map +1 -0
  229. package/dist/es/hcs-25/collectors/catalog.d.ts +64 -0
  230. package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -0
  231. package/dist/es/hcs-25/collectors/connectivity.d.ts +49 -0
  232. package/dist/es/hcs-25/collectors/connectivity.d.ts.map +1 -0
  233. package/dist/es/hcs-25/collectors/endpoints.d.ts +9 -0
  234. package/dist/es/hcs-25/collectors/endpoints.d.ts.map +1 -0
  235. package/dist/es/hcs-25/collectors/erc8004.d.ts +104 -0
  236. package/dist/es/hcs-25/collectors/erc8004.d.ts.map +1 -0
  237. package/dist/es/hcs-25/collectors/ethos.d.ts +95 -0
  238. package/dist/es/hcs-25/collectors/ethos.d.ts.map +1 -0
  239. package/dist/es/hcs-25/collectors/freshness.d.ts +36 -0
  240. package/dist/es/hcs-25/collectors/freshness.d.ts.map +1 -0
  241. package/dist/es/hcs-25/collectors/http.d.ts +67 -0
  242. package/dist/es/hcs-25/collectors/http.d.ts.map +1 -0
  243. package/dist/es/hcs-25/collectors/index.d.ts +22 -0
  244. package/dist/es/hcs-25/collectors/index.d.ts.map +1 -0
  245. package/dist/es/hcs-25/collectors/merge.d.ts +11 -0
  246. package/dist/es/hcs-25/collectors/merge.d.ts.map +1 -0
  247. package/dist/es/hcs-25/collectors/model-evals.d.ts +315 -0
  248. package/dist/es/hcs-25/collectors/model-evals.d.ts.map +1 -0
  249. package/dist/es/hcs-25/collectors/oss-popularity.d.ts +51 -0
  250. package/dist/es/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  251. package/dist/es/hcs-25/collectors/output-verification.d.ts +37 -0
  252. package/dist/es/hcs-25/collectors/output-verification.d.ts.map +1 -0
  253. package/dist/es/hcs-25/collectors/pipeline.d.ts +19 -0
  254. package/dist/es/hcs-25/collectors/pipeline.d.ts.map +1 -0
  255. package/dist/es/hcs-25/collectors/runner.d.ts +20 -0
  256. package/dist/es/hcs-25/collectors/runner.d.ts.map +1 -0
  257. package/dist/es/hcs-25/collectors/simple-evals.d.ts +91 -0
  258. package/dist/es/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  259. package/dist/es/hcs-25/collectors/types.d.ts +113 -0
  260. package/dist/es/hcs-25/collectors/types.d.ts.map +1 -0
  261. package/dist/es/hcs-25/collectors/x402-onchain.d.ts +105 -0
  262. package/dist/es/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  263. package/dist/es/hcs-25/collectors/x402.d.ts +48 -0
  264. package/dist/es/hcs-25/collectors/x402.d.ts.map +1 -0
  265. package/dist/es/hcs-25/index.d.ts +1 -0
  266. package/dist/es/hcs-25/index.d.ts.map +1 -1
  267. package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
  268. package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
  269. package/dist/es/hcs-25/signals/index.d.ts +1 -0
  270. package/dist/es/hcs-25/signals/index.d.ts.map +1 -1
  271. package/dist/es/hcs-25/signals/marketplace.d.ts +6 -6
  272. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -1
  273. package/dist/es/hcs-25/signals/model-evals.d.ts +12 -12
  274. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -1
  275. package/dist/es/hcs-25/signals/operational.d.ts +15 -12
  276. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -1
  277. package/dist/es/hcs-25/signals/simple-evals.d.ts +1 -1
  278. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -1
  279. package/dist/es/standards-sdk.es.js +144 -58
  280. package/dist/es/standards-sdk.es.js.map +1 -1
  281. package/dist/es/standards-sdk.es101.js +2 -2
  282. package/dist/es/standards-sdk.es103.js +2 -2
  283. package/dist/es/standards-sdk.es104.js +1 -1
  284. package/dist/es/standards-sdk.es106.js +1 -1
  285. package/dist/es/standards-sdk.es108.js +2 -2
  286. package/dist/es/standards-sdk.es11.js +1 -1
  287. package/dist/es/standards-sdk.es110.js +1 -1
  288. package/dist/es/standards-sdk.es111.js +2 -2
  289. package/dist/es/standards-sdk.es115.js +3 -3
  290. package/dist/es/standards-sdk.es116.js +4 -4
  291. package/dist/es/standards-sdk.es12.js +1 -1
  292. package/dist/es/standards-sdk.es120.js +22 -4
  293. package/dist/es/standards-sdk.es120.js.map +1 -1
  294. package/dist/es/standards-sdk.es121.js +15 -12
  295. package/dist/es/standards-sdk.es121.js.map +1 -1
  296. package/dist/es/standards-sdk.es122.js +176 -240
  297. package/dist/es/standards-sdk.es122.js.map +1 -1
  298. package/dist/es/standards-sdk.es123.js +42 -468
  299. package/dist/es/standards-sdk.es123.js.map +1 -1
  300. package/dist/es/standards-sdk.es124.js +29 -103
  301. package/dist/es/standards-sdk.es124.js.map +1 -1
  302. package/dist/es/standards-sdk.es125.js +185 -145
  303. package/dist/es/standards-sdk.es125.js.map +1 -1
  304. package/dist/es/standards-sdk.es126.js +13 -33
  305. package/dist/es/standards-sdk.es126.js.map +1 -1
  306. package/dist/es/standards-sdk.es127.js +45 -10
  307. package/dist/es/standards-sdk.es127.js.map +1 -1
  308. package/dist/es/standards-sdk.es128.js +120 -168
  309. package/dist/es/standards-sdk.es128.js.map +1 -1
  310. package/dist/es/standards-sdk.es129.js +158 -26
  311. package/dist/es/standards-sdk.es129.js.map +1 -1
  312. package/dist/es/standards-sdk.es13.js +1 -1
  313. package/dist/es/standards-sdk.es130.js +166 -19
  314. package/dist/es/standards-sdk.es130.js.map +1 -1
  315. package/dist/es/standards-sdk.es131.js +360 -140
  316. package/dist/es/standards-sdk.es131.js.map +1 -1
  317. package/dist/es/standards-sdk.es132.js +371 -180
  318. package/dist/es/standards-sdk.es132.js.map +1 -1
  319. package/dist/es/standards-sdk.es133.js +210 -766
  320. package/dist/es/standards-sdk.es133.js.map +1 -1
  321. package/dist/es/standards-sdk.es134.js +229 -11
  322. package/dist/es/standards-sdk.es134.js.map +1 -1
  323. package/dist/es/standards-sdk.es135.js +368 -556
  324. package/dist/es/standards-sdk.es135.js.map +1 -1
  325. package/dist/es/standards-sdk.es136.js +108 -612
  326. package/dist/es/standards-sdk.es136.js.map +1 -1
  327. package/dist/es/standards-sdk.es137.js +251 -12
  328. package/dist/es/standards-sdk.es137.js.map +1 -1
  329. package/dist/es/standards-sdk.es138.js +1330 -2
  330. package/dist/es/standards-sdk.es138.js.map +1 -1
  331. package/dist/es/standards-sdk.es139.js +126 -79
  332. package/dist/es/standards-sdk.es139.js.map +1 -1
  333. package/dist/es/standards-sdk.es14.js +1 -1
  334. package/dist/es/standards-sdk.es140.js +264 -32
  335. package/dist/es/standards-sdk.es140.js.map +1 -1
  336. package/dist/es/standards-sdk.es141.js +111 -2
  337. package/dist/es/standards-sdk.es141.js.map +1 -1
  338. package/dist/es/standards-sdk.es142.js +244 -227
  339. package/dist/es/standards-sdk.es142.js.map +1 -1
  340. package/dist/es/standards-sdk.es143.js +436 -1098
  341. package/dist/es/standards-sdk.es143.js.map +1 -1
  342. package/dist/es/standards-sdk.es144.js +92 -293
  343. package/dist/es/standards-sdk.es144.js.map +1 -1
  344. package/dist/es/standards-sdk.es145.js +157 -419
  345. package/dist/es/standards-sdk.es145.js.map +1 -1
  346. package/dist/es/standards-sdk.es146.js +30 -351
  347. package/dist/es/standards-sdk.es146.js.map +1 -1
  348. package/dist/es/standards-sdk.es147.js +9 -1119
  349. package/dist/es/standards-sdk.es147.js.map +1 -1
  350. package/dist/es/standards-sdk.es148.js +160 -186
  351. package/dist/es/standards-sdk.es148.js.map +1 -1
  352. package/dist/es/standards-sdk.es149.js +27 -1565
  353. package/dist/es/standards-sdk.es149.js.map +1 -1
  354. package/dist/es/standards-sdk.es15.js +1 -1
  355. package/dist/es/standards-sdk.es150.js +16 -1160
  356. package/dist/es/standards-sdk.es150.js.map +1 -1
  357. package/dist/es/standards-sdk.es151.js +157 -14
  358. package/dist/es/standards-sdk.es151.js.map +1 -1
  359. package/dist/es/standards-sdk.es152.js +191 -440
  360. package/dist/es/standards-sdk.es152.js.map +1 -1
  361. package/dist/es/standards-sdk.es153.js +764 -233
  362. package/dist/es/standards-sdk.es153.js.map +1 -1
  363. package/dist/es/standards-sdk.es154.js +13 -4
  364. package/dist/es/standards-sdk.es154.js.map +1 -1
  365. package/dist/es/standards-sdk.es155.js +567 -81
  366. package/dist/es/standards-sdk.es155.js.map +1 -1
  367. package/dist/es/standards-sdk.es156.js +617 -78
  368. package/dist/es/standards-sdk.es156.js.map +1 -1
  369. package/dist/es/standards-sdk.es157.js +13 -60
  370. package/dist/es/standards-sdk.es157.js.map +1 -1
  371. package/dist/es/standards-sdk.es158.js +2 -2547
  372. package/dist/es/standards-sdk.es158.js.map +1 -1
  373. package/dist/es/standards-sdk.es159.js +73 -145
  374. package/dist/es/standards-sdk.es159.js.map +1 -1
  375. package/dist/es/standards-sdk.es16.js +6 -6
  376. package/dist/es/standards-sdk.es160.js +40 -7
  377. package/dist/es/standards-sdk.es160.js.map +1 -1
  378. package/dist/es/standards-sdk.es161.js +2 -86
  379. package/dist/es/standards-sdk.es161.js.map +1 -1
  380. package/dist/es/standards-sdk.es162.js +225 -55
  381. package/dist/es/standards-sdk.es162.js.map +1 -1
  382. package/dist/es/standards-sdk.es163.js +1137 -191
  383. package/dist/es/standards-sdk.es163.js.map +1 -1
  384. package/dist/es/standards-sdk.es164.js +303 -23
  385. package/dist/es/standards-sdk.es164.js.map +1 -1
  386. package/dist/es/standards-sdk.es165.js +419 -55
  387. package/dist/es/standards-sdk.es165.js.map +1 -1
  388. package/dist/es/standards-sdk.es166.js +351 -91
  389. package/dist/es/standards-sdk.es166.js.map +1 -1
  390. package/dist/es/standards-sdk.es167.js +1113 -40
  391. package/dist/es/standards-sdk.es167.js.map +1 -1
  392. package/dist/es/standards-sdk.es168.js +200 -196
  393. package/dist/es/standards-sdk.es168.js.map +1 -1
  394. package/dist/es/standards-sdk.es169.js +1561 -50
  395. package/dist/es/standards-sdk.es169.js.map +1 -1
  396. package/dist/es/standards-sdk.es170.js +1161 -44
  397. package/dist/es/standards-sdk.es170.js.map +1 -1
  398. package/dist/es/standards-sdk.es171.js +14 -53
  399. package/dist/es/standards-sdk.es171.js.map +1 -1
  400. package/dist/es/standards-sdk.es172.js +443 -41
  401. package/dist/es/standards-sdk.es172.js.map +1 -1
  402. package/dist/es/standards-sdk.es173.js +242 -105
  403. package/dist/es/standards-sdk.es173.js.map +1 -1
  404. package/dist/es/standards-sdk.es174.js +4 -54
  405. package/dist/es/standards-sdk.es174.js.map +1 -1
  406. package/dist/es/standards-sdk.es175.js +79 -42
  407. package/dist/es/standards-sdk.es175.js.map +1 -1
  408. package/dist/es/standards-sdk.es176.js +87 -72
  409. package/dist/es/standards-sdk.es176.js.map +1 -1
  410. package/dist/es/standards-sdk.es177.js +60 -68
  411. package/dist/es/standards-sdk.es177.js.map +1 -1
  412. package/dist/es/standards-sdk.es178.js +2545 -42
  413. package/dist/es/standards-sdk.es178.js.map +1 -1
  414. package/dist/es/standards-sdk.es179.js +157 -34
  415. package/dist/es/standards-sdk.es179.js.map +1 -1
  416. package/dist/es/standards-sdk.es18.js +13 -13
  417. package/dist/es/standards-sdk.es180.js +7 -30
  418. package/dist/es/standards-sdk.es180.js.map +1 -1
  419. package/dist/es/standards-sdk.es181.js +86 -34
  420. package/dist/es/standards-sdk.es181.js.map +1 -1
  421. package/dist/es/standards-sdk.es182.js +65 -48
  422. package/dist/es/standards-sdk.es182.js.map +1 -1
  423. package/dist/es/standards-sdk.es183.js +27 -138
  424. package/dist/es/standards-sdk.es183.js.map +1 -1
  425. package/dist/es/standards-sdk.es184.js +191 -37
  426. package/dist/es/standards-sdk.es184.js.map +1 -1
  427. package/dist/es/standards-sdk.es185.js +17 -12473
  428. package/dist/es/standards-sdk.es185.js.map +1 -1
  429. package/dist/es/standards-sdk.es186.js +56 -53
  430. package/dist/es/standards-sdk.es186.js.map +1 -1
  431. package/dist/es/standards-sdk.es187.js +104 -100
  432. package/dist/es/standards-sdk.es187.js.map +1 -1
  433. package/dist/es/standards-sdk.es188.js +43 -75
  434. package/dist/es/standards-sdk.es188.js.map +1 -1
  435. package/dist/es/standards-sdk.es189.js +55 -197
  436. package/dist/es/standards-sdk.es189.js.map +1 -1
  437. package/dist/es/standards-sdk.es19.js +10 -10
  438. package/dist/es/standards-sdk.es190.js +229 -669
  439. package/dist/es/standards-sdk.es190.js.map +1 -1
  440. package/dist/es/standards-sdk.es191.js +67 -166
  441. package/dist/es/standards-sdk.es191.js.map +1 -1
  442. package/dist/es/standards-sdk.es192.js +45 -317
  443. package/dist/es/standards-sdk.es192.js.map +1 -1
  444. package/dist/es/standards-sdk.es193.js +59 -342
  445. package/dist/es/standards-sdk.es193.js.map +1 -1
  446. package/dist/es/standards-sdk.es194.js +45 -448
  447. package/dist/es/standards-sdk.es194.js.map +1 -1
  448. package/dist/es/standards-sdk.es195.js +117 -325
  449. package/dist/es/standards-sdk.es195.js.map +1 -1
  450. package/dist/es/standards-sdk.es196.js +51 -69
  451. package/dist/es/standards-sdk.es196.js.map +1 -1
  452. package/dist/es/standards-sdk.es197.js +54 -67
  453. package/dist/es/standards-sdk.es197.js.map +1 -1
  454. package/dist/es/standards-sdk.es198.js +72 -17
  455. package/dist/es/standards-sdk.es198.js.map +1 -1
  456. package/dist/es/standards-sdk.es199.js +75 -139
  457. package/dist/es/standards-sdk.es199.js.map +1 -1
  458. package/dist/es/standards-sdk.es2.js +2 -2
  459. package/dist/es/standards-sdk.es20.js +1 -1
  460. package/dist/es/standards-sdk.es200.js +44 -517
  461. package/dist/es/standards-sdk.es200.js.map +1 -1
  462. package/dist/es/standards-sdk.es201.js +33 -256
  463. package/dist/es/standards-sdk.es201.js.map +1 -1
  464. package/dist/es/standards-sdk.es202.js +30 -196
  465. package/dist/es/standards-sdk.es202.js.map +1 -1
  466. package/dist/es/standards-sdk.es203.js +34 -119
  467. package/dist/es/standards-sdk.es203.js.map +1 -1
  468. package/dist/es/standards-sdk.es204.js +48 -152
  469. package/dist/es/standards-sdk.es204.js.map +1 -1
  470. package/dist/es/standards-sdk.es205.js +126 -172
  471. package/dist/es/standards-sdk.es205.js.map +1 -1
  472. package/dist/es/standards-sdk.es206.js +34 -676
  473. package/dist/es/standards-sdk.es206.js.map +1 -1
  474. package/dist/es/standards-sdk.es207.js +12453 -156
  475. package/dist/es/standards-sdk.es207.js.map +1 -1
  476. package/dist/es/standards-sdk.es208.js +14 -232
  477. package/dist/es/standards-sdk.es208.js.map +1 -1
  478. package/dist/es/standards-sdk.es209.js +49 -232
  479. package/dist/es/standards-sdk.es209.js.map +1 -1
  480. package/dist/es/standards-sdk.es21.js +1 -1
  481. package/dist/es/standards-sdk.es210.js +114 -0
  482. package/dist/es/standards-sdk.es210.js.map +1 -0
  483. package/dist/es/standards-sdk.es211.js +84 -0
  484. package/dist/es/standards-sdk.es211.js.map +1 -0
  485. package/dist/es/standards-sdk.es212.js +203 -0
  486. package/dist/es/standards-sdk.es212.js.map +1 -0
  487. package/dist/es/standards-sdk.es213.js +76 -0
  488. package/dist/es/standards-sdk.es213.js.map +1 -0
  489. package/dist/es/standards-sdk.es214.js +675 -0
  490. package/dist/es/standards-sdk.es214.js.map +1 -0
  491. package/dist/es/standards-sdk.es215.js +175 -0
  492. package/dist/es/standards-sdk.es215.js.map +1 -0
  493. package/dist/es/standards-sdk.es216.js +325 -0
  494. package/dist/es/standards-sdk.es216.js.map +1 -0
  495. package/dist/es/standards-sdk.es217.js +349 -0
  496. package/dist/es/standards-sdk.es217.js.map +1 -0
  497. package/dist/es/standards-sdk.es218.js +456 -0
  498. package/dist/es/standards-sdk.es218.js.map +1 -0
  499. package/dist/es/standards-sdk.es219.js +334 -0
  500. package/dist/es/standards-sdk.es219.js.map +1 -0
  501. package/dist/es/standards-sdk.es22.js +1 -1
  502. package/dist/es/standards-sdk.es220.js +79 -0
  503. package/dist/es/standards-sdk.es220.js.map +1 -0
  504. package/dist/es/standards-sdk.es221.js +142 -0
  505. package/dist/es/standards-sdk.es221.js.map +1 -0
  506. package/dist/es/standards-sdk.es222.js +520 -0
  507. package/dist/es/standards-sdk.es222.js.map +1 -0
  508. package/dist/es/standards-sdk.es223.js +262 -0
  509. package/dist/es/standards-sdk.es223.js.map +1 -0
  510. package/dist/es/standards-sdk.es224.js +199 -0
  511. package/dist/es/standards-sdk.es224.js.map +1 -0
  512. package/dist/es/standards-sdk.es225.js +122 -0
  513. package/dist/es/standards-sdk.es225.js.map +1 -0
  514. package/dist/es/standards-sdk.es226.js +155 -0
  515. package/dist/es/standards-sdk.es226.js.map +1 -0
  516. package/dist/es/standards-sdk.es227.js +187 -0
  517. package/dist/es/standards-sdk.es227.js.map +1 -0
  518. package/dist/es/standards-sdk.es228.js +687 -0
  519. package/dist/es/standards-sdk.es228.js.map +1 -0
  520. package/dist/es/standards-sdk.es229.js +188 -0
  521. package/dist/es/standards-sdk.es229.js.map +1 -0
  522. package/dist/es/standards-sdk.es23.js +1 -1
  523. package/dist/es/standards-sdk.es230.js +238 -0
  524. package/dist/es/standards-sdk.es230.js.map +1 -0
  525. package/dist/es/standards-sdk.es231.js +242 -0
  526. package/dist/es/standards-sdk.es231.js.map +1 -0
  527. package/dist/es/standards-sdk.es24.js +1 -1
  528. package/dist/es/standards-sdk.es25.js +1 -1
  529. package/dist/es/standards-sdk.es26.js +1 -1
  530. package/dist/es/standards-sdk.es27.js +13 -13
  531. package/dist/es/standards-sdk.es30.js +2 -2
  532. package/dist/es/standards-sdk.es31.js +4 -4
  533. package/dist/es/standards-sdk.es32.js +1 -1
  534. package/dist/es/standards-sdk.es35.js +7 -7
  535. package/dist/es/standards-sdk.es36.js +4 -4
  536. package/dist/es/standards-sdk.es37.js +2 -2
  537. package/dist/es/standards-sdk.es38.js +2 -2
  538. package/dist/es/standards-sdk.es39.js +1 -1
  539. package/dist/es/standards-sdk.es4.js +2 -2
  540. package/dist/es/standards-sdk.es40.js +1 -1
  541. package/dist/es/standards-sdk.es41.js +2 -2
  542. package/dist/es/standards-sdk.es46.js +1 -1
  543. package/dist/es/standards-sdk.es5.js +2 -2
  544. package/dist/es/standards-sdk.es51.js +1 -1
  545. package/dist/es/standards-sdk.es53.js +1 -1
  546. package/dist/es/standards-sdk.es56.js +2 -2
  547. package/dist/es/standards-sdk.es59.js +1 -1
  548. package/dist/es/standards-sdk.es6.js +2 -2
  549. package/dist/es/standards-sdk.es60.js +1 -1
  550. package/dist/es/standards-sdk.es62.js +1 -1
  551. package/dist/es/standards-sdk.es63.js +2 -2
  552. package/dist/es/standards-sdk.es64.js +1 -1
  553. package/dist/es/standards-sdk.es65.js +1 -1
  554. package/dist/es/standards-sdk.es66.js +1 -1
  555. package/dist/es/standards-sdk.es67.js +8 -8
  556. package/dist/es/standards-sdk.es69.js +1 -1
  557. package/dist/es/standards-sdk.es7.js +1 -1
  558. package/dist/es/standards-sdk.es71.js +2 -2
  559. package/dist/es/standards-sdk.es72.js +3 -3
  560. package/dist/es/standards-sdk.es75.js +5 -5
  561. package/dist/es/standards-sdk.es76.js +3 -3
  562. package/dist/es/standards-sdk.es77.js +2 -2
  563. package/dist/es/standards-sdk.es78.js +1 -1
  564. package/dist/es/standards-sdk.es81.js +2 -2
  565. package/dist/es/standards-sdk.es83.js +2 -2
  566. package/dist/es/standards-sdk.es84.js +5 -5
  567. package/dist/es/standards-sdk.es85.js +1 -1
  568. package/dist/es/standards-sdk.es88.js +1 -1
  569. package/dist/es/standards-sdk.es89.js +2 -2
  570. package/dist/es/standards-sdk.es9.js +2 -2
  571. package/dist/es/standards-sdk.es90.js +4 -4
  572. package/dist/es/standards-sdk.es94.js +3 -3
  573. package/dist/es/standards-sdk.es96.js +2 -2
  574. package/dist/es/standards-sdk.es98.js +1 -1
  575. package/dist/es/standards-sdk.es99.js +3 -3
  576. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es125.js","sources":["../../src/hcs-26/base-client.ts"],"sourcesContent":["import type { ILogger } from '../utils/logger';\nimport { Logger } from '../utils/logger';\nimport type { NetworkType } from '../utils/types';\nimport type { MirrorNodeConfig } from '../services/mirror-node';\nimport { Hcs26SkillRegistryResolver } from './resolver';\nimport type {\n Hcs26SkillManifest,\n Hcs26VersionRegister,\n Hcs26VersionRegisterLegacy,\n} from './types';\n\nexport type HCS26SkillVerificationStatus = {\n name: string;\n verified: boolean;\n previouslyVerified: boolean;\n pendingRequest?: unknown;\n};\n\nexport interface HCS26SkillVerificationProvider {\n getSkillVerificationStatus(params: {\n name: string;\n }): Promise<HCS26SkillVerificationStatus | null>;\n}\n\nexport interface HCS26ClientConfig {\n network: NetworkType;\n logger?: ILogger;\n mirrorNode?: MirrorNodeConfig;\n verificationProvider?: HCS26SkillVerificationProvider;\n}\n\nexport type HCS26DiscoveryRecord = {\n p: 'hcs-26';\n op: 'register';\n t_id: string;\n account_id: string;\n metadata: Record<string, unknown>;\n m?: string;\n sequence_number?: number;\n};\n\nexport type HCS26ResolvedSkill = {\n directoryTopicId: string;\n skillUid: number;\n discovery: HCS26DiscoveryRecord;\n versionRegistryTopicId: string;\n latestVersion:\n | (Hcs26VersionRegister & { sequence_number?: number })\n | (Hcs26VersionRegisterLegacy & { sequence_number?: number });\n manifest: Hcs26SkillManifest;\n manifestSha256Hex: string;\n verification?: HCS26SkillVerificationStatus | null;\n};\n\nexport type HCS26ResolvedSkillVersion = Omit<\n HCS26ResolvedSkill,\n 'latestVersion'\n> & {\n versionEntry:\n | (Hcs26VersionRegister & { sequence_number?: number })\n | (Hcs26VersionRegisterLegacy & { sequence_number?: number });\n};\n\nfunction getManifestTopicId(\n entry: Hcs26VersionRegister | Hcs26VersionRegisterLegacy,\n): string {\n const topicIdCandidate = (entry as { t_id?: unknown }).t_id;\n if (typeof topicIdCandidate === 'string' && topicIdCandidate.trim()) {\n return topicIdCandidate.trim();\n }\n\n const hrlCandidate = (entry as { manifest_hcs1?: unknown }).manifest_hcs1;\n if (typeof hrlCandidate !== 'string' || !hrlCandidate.trim()) {\n throw new Error('Missing manifest reference in version register entry');\n }\n\n const hrl = hrlCandidate.trim();\n const prefix = 'hcs://1/';\n if (!hrl.startsWith(prefix)) {\n throw new Error(`Invalid manifest HRL: ${hrl}`);\n }\n return hrl.slice(prefix.length);\n}\n\nexport class HCS26BaseClient {\n protected readonly network: NetworkType;\n protected readonly logger: ILogger;\n protected readonly resolver: Hcs26SkillRegistryResolver;\n protected readonly verificationProvider?: HCS26SkillVerificationProvider;\n\n constructor(config: HCS26ClientConfig) {\n this.network = config.network;\n this.logger =\n config.logger ??\n Logger.getInstance({\n module: 'HCS26Client',\n level: 'info',\n });\n this.verificationProvider = config.verificationProvider;\n\n this.resolver = new Hcs26SkillRegistryResolver({\n network: this.network,\n logger: this.logger,\n mirrorNode: config.mirrorNode,\n });\n }\n\n async resolveSkill(params: {\n directoryTopicId: string;\n skillUid: number;\n discoveryScanLimit?: number;\n includeVerification?: boolean;\n }): Promise<HCS26ResolvedSkill | null> {\n const discovery = (await this.resolver.resolveDiscoveryRecord({\n directoryTopicId: params.directoryTopicId,\n skillUid: params.skillUid,\n scanLimit: params.discoveryScanLimit,\n })) as HCS26DiscoveryRecord | null;\n\n if (!discovery) {\n return null;\n }\n\n const versionRegistryTopicId = discovery.t_id;\n const latestVersion = await this.resolver.getLatestVersionRegister({\n versionRegistryTopicId,\n skillUid: params.skillUid,\n });\n\n if (!latestVersion) {\n throw new Error(\n `No active version entries found for skill ${params.skillUid} in version registry ${versionRegistryTopicId}`,\n );\n }\n\n const manifestTopicId = getManifestTopicId(latestVersion);\n const { manifest, sha256Hex } = await this.resolver.resolveManifest({\n manifestTopicId,\n });\n\n await this.resolver.verifyVersionRegisterMatchesManifest({\n versionRegister: latestVersion,\n manifestSha256Hex: sha256Hex,\n });\n\n let verification: HCS26SkillVerificationStatus | null | undefined;\n const provider = this.verificationProvider;\n const includeVerification = params.includeVerification === true;\n const name =\n typeof discovery.metadata?.name === 'string'\n ? discovery.metadata.name.trim()\n : '';\n\n if (includeVerification && provider && name) {\n try {\n verification = await provider.getSkillVerificationStatus({ name });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n this.logger.warn(\n `Failed to resolve verification status for skill \"${name}\": ${detail}`,\n );\n verification = null;\n }\n }\n\n return {\n directoryTopicId: params.directoryTopicId,\n skillUid: params.skillUid,\n discovery,\n versionRegistryTopicId,\n latestVersion,\n manifest,\n manifestSha256Hex: sha256Hex,\n ...(includeVerification ? { verification } : {}),\n };\n }\n\n async listSkillVersions(params: {\n directoryTopicId: string;\n skillUid: number;\n discoveryScanLimit?: number;\n limit?: number;\n }): Promise<\n Array<\n | (Hcs26VersionRegister & { sequence_number?: number })\n | (Hcs26VersionRegisterLegacy & { sequence_number?: number })\n >\n > {\n const discovery = (await this.resolver.resolveDiscoveryRecord({\n directoryTopicId: params.directoryTopicId,\n skillUid: params.skillUid,\n scanLimit: params.discoveryScanLimit,\n })) as HCS26DiscoveryRecord | null;\n\n if (!discovery) {\n return [];\n }\n\n const versionRegistryTopicId = discovery.t_id;\n return this.resolver.listVersionRegisters({\n versionRegistryTopicId,\n skillUid: params.skillUid,\n limit: params.limit,\n });\n }\n\n async resolveSkillVersion(params: {\n directoryTopicId: string;\n skillUid: number;\n version: string;\n discoveryScanLimit?: number;\n includeVerification?: boolean;\n }): Promise<HCS26ResolvedSkillVersion | null> {\n const versionRaw = params.version.trim();\n if (!versionRaw) {\n throw new Error('version is required');\n }\n\n const discovery = (await this.resolver.resolveDiscoveryRecord({\n directoryTopicId: params.directoryTopicId,\n skillUid: params.skillUid,\n scanLimit: params.discoveryScanLimit,\n })) as HCS26DiscoveryRecord | null;\n\n if (!discovery) {\n return null;\n }\n\n const versionRegistryTopicId = discovery.t_id;\n const entries = await this.resolver.listVersionRegisters({\n versionRegistryTopicId,\n skillUid: params.skillUid,\n limit: 250,\n });\n\n const target = entries.find(entry => entry.version.trim() === versionRaw);\n if (!target) {\n return null;\n }\n\n const manifestTopicId = getManifestTopicId(target);\n const { manifest, sha256Hex } = await this.resolver.resolveManifest({\n manifestTopicId,\n });\n\n await this.resolver.verifyVersionRegisterMatchesManifest({\n versionRegister: target,\n manifestSha256Hex: sha256Hex,\n });\n\n let verification: HCS26SkillVerificationStatus | null | undefined;\n const provider = this.verificationProvider;\n const includeVerification = params.includeVerification === true;\n const name =\n typeof discovery.metadata?.name === 'string'\n ? discovery.metadata.name.trim()\n : '';\n\n if (includeVerification && provider && name) {\n try {\n verification = await provider.getSkillVerificationStatus({ name });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n this.logger.warn(\n `Failed to resolve verification status for skill \"${name}\": ${detail}`,\n );\n verification = null;\n }\n }\n\n return {\n directoryTopicId: params.directoryTopicId,\n skillUid: params.skillUid,\n discovery,\n versionRegistryTopicId,\n versionEntry: target,\n manifest,\n manifestSha256Hex: sha256Hex,\n ...(includeVerification ? { verification } : {}),\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es125.js","sources":["../../src/hcs-25/collectors/runner.ts"],"sourcesContent":["import { isValidAdapterId, isValidSignalId } from '../identifiers';\nimport type {\n Hcs25ApplicabilityRule,\n Hcs25Signal,\n Hcs25SignalSnapshot,\n Hcs25SignalStatus,\n Hcs25Subject,\n} from '../types';\nimport { applyCollectedFields } from './merge';\nimport {\n Hcs25CollectorTimeoutError,\n isTimeoutError,\n resolveFetch,\n} from './http';\nimport type {\n Hcs25CollectSignalsOptions,\n Hcs25CollectedFields,\n Hcs25SignalAdapter,\n Hcs25SignalAdapterResult,\n Hcs25SignalAdapterRunReport,\n Hcs25SignalCollection,\n} from './types';\n\nconst DEFAULT_TIMEOUT_MS = 30000;\n\n/**\n * Evaluates signal-adapter applicability using the same rule shape as trust\n * score adapters: registry include/exclude lists plus an optional\n * `appliesTo` predicate.\n */\nexport function isSignalAdapterApplicable(\n rule: Hcs25ApplicabilityRule,\n subject: Hcs25Subject,\n): boolean {\n if (rule.includeRegistries) {\n if (\n subject.registry === undefined ||\n !rule.includeRegistries.includes(subject.registry)\n ) {\n return false;\n }\n }\n if (\n rule.excludeRegistries &&\n subject.registry !== undefined &&\n rule.excludeRegistries.includes(subject.registry)\n ) {\n return false;\n }\n if (rule.appliesTo && !rule.appliesTo(subject)) {\n return false;\n }\n return true;\n}\n\nfunction validateSignalAdapter(adapter: Hcs25SignalAdapter): void {\n if (!isValidAdapterId(adapter.id)) {\n throw new TypeError(\n `invalid signal adapter id \"${String(adapter.id)}\": identifiers must match ^[a-z][a-z0-9]*(-[a-z][a-z0-9]*)*$`,\n );\n }\n if (!Array.isArray(adapter.produces) || adapter.produces.length === 0) {\n throw new TypeError(\n `signal adapter \"${adapter.id}\" must declare at least one produced signalId`,\n );\n }\n for (const signalId of adapter.produces) {\n if (!isValidSignalId(signalId)) {\n throw new TypeError(\n `signal adapter \"${adapter.id}\" declares invalid signalId \"${String(signalId)}\"`,\n );\n }\n }\n if (typeof adapter.collect !== 'function') {\n throw new TypeError(\n `signal adapter \"${adapter.id}\" must declare a collect function`,\n );\n }\n}\n\nfunction isStale(\n fetchedAt: string | undefined,\n staleAfterMs: number,\n now: Date,\n): boolean {\n if (!fetchedAt) {\n return false;\n }\n const fetchedMs = Date.parse(fetchedAt);\n if (Number.isNaN(fetchedMs)) {\n return false;\n }\n return now.getTime() - fetchedMs > staleAfterMs;\n}\n\nfunction applyFreshness(\n result: Hcs25SignalAdapterResult,\n staleAfterMs: number | undefined,\n now: Date,\n): Hcs25SignalAdapterResult {\n if (staleAfterMs === undefined || result.status !== 'ok') {\n return result;\n }\n const fetchedAt = result.provenance?.fetchedAt;\n if (!isStale(fetchedAt, staleAfterMs, now)) {\n return result;\n }\n return {\n ...result,\n status: 'stale',\n fields: markStatusFieldsStale(result.fields),\n };\n}\n\n/**\n * When a collected signal is stale, its stored `*Status` fields are rewritten\n * to `stale` so scoring adapters emit `status:'stale'` and the staleness\n * multiplier applies (per HCS-25 missing/stale rules).\n */\nfunction markStatusFieldsStale(\n fields: readonly Hcs25CollectedFields[] | undefined,\n): readonly Hcs25CollectedFields[] | undefined {\n if (!fields) {\n return fields;\n }\n return fields.map(block => {\n const values = { ...block.values };\n for (const key of Object.keys(values)) {\n if (key.endsWith('Status') && typeof values[key] === 'string') {\n values[key] = 'stale';\n }\n }\n return { ...block, values };\n });\n}\n\nfunction toSignal(result: Hcs25SignalAdapterResult, now: Date): Hcs25Signal {\n return {\n status: result.status,\n value: result.value,\n fetchedAt: result.provenance?.fetchedAt ?? now.toISOString(),\n provenance: result.provenance,\n };\n}\n\nfunction summarizeStatuses(\n counts: Map<Hcs25SignalStatus, number>,\n): Hcs25SignalAdapterRunReport['status'] {\n if (counts.has('error')) {\n return 'error';\n }\n if (counts.has('timeout')) {\n return 'timeout';\n }\n if (counts.size === 0) {\n return 'missing';\n }\n if ((counts.get('ok') ?? 0) > 0 || counts.has('stale')) {\n return 'ok';\n }\n return 'missing';\n}\n\n/**\n * Runs signal adapters for a subject: checks applicability, enforces\n * per-adapter time budgets, classifies failures into HCS-25 status codes,\n * marks stale signals per the configured freshness policy, merges collected\n * fields onto the subject record, and emits the signal snapshot.\n *\n * Carried-over `previousSnapshot` entries are preserved; when `staleAfterMs`\n * is configured, entries (new or carried) whose `fetchedAt` exceeds the\n * freshness window are marked `stale`.\n */\nexport async function collectHcs25Signals(\n subject: Hcs25Subject,\n options: Hcs25CollectSignalsOptions,\n): Promise<Hcs25SignalCollection> {\n const fetch = resolveFetch(options.fetch);\n const now = options.now ?? new Date();\n const snapshot: Hcs25SignalSnapshot = { ...(options.previousSnapshot ?? {}) };\n const results: Hcs25SignalAdapterRunReport[] = [];\n let current = subject;\n\n for (const adapter of options.adapters) {\n validateSignalAdapter(adapter);\n\n if (!isSignalAdapterApplicable(adapter, current)) {\n results.push({\n adapterId: adapter.id,\n applicable: false,\n signalIds: [],\n status: 'missing',\n });\n continue;\n }\n\n const timeoutMs =\n adapter.timeoutMs ?? options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n const controller = new AbortController();\n let timer: ReturnType<typeof setTimeout> | undefined;\n let adapterResults: readonly Hcs25SignalAdapterResult[];\n let runStatus: Hcs25SignalAdapterRunReport['status'] | undefined;\n let runError: string | undefined;\n\n try {\n adapterResults = await Promise.race([\n adapter.collect(current, {\n subject: current,\n fetch,\n timeoutMs,\n now,\n signal: controller.signal,\n force: options.force === true,\n }),\n new Promise<never>((_resolve, reject) => {\n timer = setTimeout(() => {\n controller.abort();\n reject(new Hcs25CollectorTimeoutError());\n }, timeoutMs + 1);\n }),\n ]);\n clearTimeout(timer);\n if (adapterResults.length === 0) {\n // An adapter returning no results means \"no changes\" (e.g. a\n // TTL-gated skip): carry over any existing snapshot entries and emit\n // `missing` placeholders only for signals never produced before.\n adapterResults = adapter.produces\n .filter(signalId => !(signalId in snapshot))\n .map(signalId => ({ signalId, status: 'missing' as const }));\n }\n } catch (error) {\n const status: Hcs25SignalStatus = isTimeoutError(error)\n ? 'timeout'\n : 'error';\n runStatus = status;\n runError = error instanceof Error ? error.message : String(error);\n adapterResults = adapter.produces.map(signalId => ({\n signalId,\n status,\n }));\n }\n\n const emitted = new Set<string>();\n const statusCounts = new Map<Hcs25SignalStatus, number>();\n const adapterFields: Hcs25CollectedFields[] = [];\n for (const raw of adapterResults) {\n if (!isValidSignalId(raw.signalId)) {\n continue;\n }\n const result = applyFreshness(raw, options.staleAfterMs, now);\n emitted.add(result.signalId);\n statusCounts.set(\n result.status,\n (statusCounts.get(result.status) ?? 0) + 1,\n );\n snapshot[result.signalId] = toSignal(result, now);\n if (result.fields) {\n adapterFields.push(...result.fields);\n }\n }\n // Merge each adapter's fields before the next adapter runs so later\n // adapters can consume metadata produced earlier in the same run\n // (e.g. an id resolved by one collector feeding a downstream source).\n if (adapterFields.length > 0) {\n current = applyCollectedFields(current, adapterFields);\n }\n\n results.push({\n adapterId: adapter.id,\n applicable: true,\n signalIds: [...emitted],\n status: runStatus ?? summarizeStatuses(statusCounts),\n error: runError,\n });\n }\n\n if (options.staleAfterMs !== undefined) {\n for (const [signalId, signal] of Object.entries(snapshot)) {\n if (\n signal.status === 'ok' &&\n isStale(signal.fetchedAt, options.staleAfterMs, now)\n ) {\n snapshot[signalId] = { ...signal, status: 'stale' };\n }\n }\n }\n\n return {\n subject: current,\n snapshot,\n results,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,37 +1,17 @@
1
- import { getSkillVerificationStatus } from "./standards-sdk.es190.js";
2
- import { HCS26BaseClient } from "./standards-sdk.es125.js";
3
- function mapVerification(status) {
4
- const pendingRequest = status.pendingRequest ?? void 0;
5
- return {
6
- name: status.name,
7
- verified: status.verified,
8
- previouslyVerified: status.previouslyVerified,
9
- ...pendingRequest ? { pendingRequest } : {}
10
- };
11
- }
12
- function createRegistryBrokerVerificationProvider(client) {
13
- return {
14
- async getSkillVerificationStatus(params) {
15
- const status = await getSkillVerificationStatus(client, {
16
- name: params.name
17
- });
18
- return mapVerification(status);
19
- }
20
- };
21
- }
22
- class HCS26Client extends HCS26BaseClient {
23
- constructor(config) {
24
- const provider = config.verificationProvider ?? (config.registryBrokerClient ? createRegistryBrokerVerificationProvider(config.registryBrokerClient) : void 0);
25
- super({
26
- network: config.network,
27
- logger: config.logger,
28
- mirrorNode: config.mirrorNode,
29
- verificationProvider: provider
30
- });
31
- }
1
+ import { computeTrustScore } from "./standards-sdk.es119.js";
2
+ import { collectHcs25Signals } from "./standards-sdk.es125.js";
3
+ async function collectAndScoreTrustScore(subject, options) {
4
+ const { config, ...collectOptions } = options;
5
+ const collection = await collectHcs25Signals(subject, collectOptions);
6
+ const record = computeTrustScore({
7
+ subject: collection.subject,
8
+ snapshot: collection.snapshot,
9
+ config,
10
+ now: collectOptions.now
11
+ });
12
+ return { collection, record };
32
13
  }
33
14
  export {
34
- HCS26Client,
35
- createRegistryBrokerVerificationProvider
15
+ collectAndScoreTrustScore
36
16
  };
37
17
  //# sourceMappingURL=standards-sdk.es126.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es126.js","sources":["../../src/hcs-26/sdk.ts"],"sourcesContent":["import type { RegistryBrokerClient } from '../services/registry-broker/client/base-client';\nimport { getSkillVerificationStatus } from '../services/registry-broker/client/skills';\nimport type { SkillVerificationStatusResponse } from '../services/registry-broker/types';\nimport {\n HCS26BaseClient,\n type HCS26ClientConfig,\n type HCS26SkillVerificationProvider,\n type HCS26SkillVerificationStatus,\n} from './base-client';\n\nexport interface SDKHCS26ClientConfig extends HCS26ClientConfig {\n registryBrokerClient?: RegistryBrokerClient;\n}\n\nfunction mapVerification(\n status: SkillVerificationStatusResponse,\n): HCS26SkillVerificationStatus {\n const pendingRequest = status.pendingRequest ?? undefined;\n return {\n name: status.name,\n verified: status.verified,\n previouslyVerified: status.previouslyVerified,\n ...(pendingRequest ? { pendingRequest } : {}),\n };\n}\n\nexport function createRegistryBrokerVerificationProvider(\n client: RegistryBrokerClient,\n): HCS26SkillVerificationProvider {\n return {\n async getSkillVerificationStatus(params: { name: string }) {\n const status = await getSkillVerificationStatus(client, {\n name: params.name,\n });\n return mapVerification(status);\n },\n };\n}\n\nexport class HCS26Client extends HCS26BaseClient {\n constructor(config: SDKHCS26ClientConfig) {\n const provider =\n config.verificationProvider ??\n (config.registryBrokerClient\n ? createRegistryBrokerVerificationProvider(config.registryBrokerClient)\n : undefined);\n\n super({\n network: config.network,\n logger: config.logger,\n mirrorNode: config.mirrorNode,\n verificationProvider: provider,\n });\n }\n}\n"],"names":[],"mappings":";;AAcA,SAAS,gBACP,QAC8B;AAC9B,QAAM,iBAAiB,OAAO,kBAAkB;AAChD,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb,UAAU,OAAO;AAAA,IACjB,oBAAoB,OAAO;AAAA,IAC3B,GAAI,iBAAiB,EAAE,mBAAmB,CAAA;AAAA,EAAC;AAE/C;AAEO,SAAS,yCACd,QACgC;AAChC,SAAO;AAAA,IACL,MAAM,2BAA2B,QAA0B;AACzD,YAAM,SAAS,MAAM,2BAA2B,QAAQ;AAAA,QACtD,MAAM,OAAO;AAAA,MAAA,CACd;AACD,aAAO,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EAAA;AAEJ;AAEO,MAAM,oBAAoB,gBAAgB;AAAA,EAC/C,YAAY,QAA8B;AACxC,UAAM,WACJ,OAAO,yBACN,OAAO,uBACJ,yCAAyC,OAAO,oBAAoB,IACpE;AAEN,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,YAAY,OAAO;AAAA,MACnB,sBAAsB;AAAA,IAAA,CACvB;AAAA,EACH;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es126.js","sources":["../../src/hcs-25/collectors/pipeline.ts"],"sourcesContent":["import { computeTrustScore } from '../scoring';\nimport type {\n Hcs25ScoringConfigInput,\n Hcs25Subject,\n Hcs25TrustScoreRecord,\n} from '../types';\nimport { collectHcs25Signals } from './runner';\nimport type {\n Hcs25CollectSignalsOptions,\n Hcs25SignalCollection,\n} from './types';\n\nexport interface Hcs25CollectAndScoreOptions\n extends Hcs25CollectSignalsOptions {\n /** Scoring configuration (adapters, weights, modes) per HCS-25. */\n config: Hcs25ScoringConfigInput;\n}\n\nexport interface Hcs25CollectAndScoreResult {\n /** The collection outcome: enriched subject + signal snapshot. */\n collection: Hcs25SignalCollection;\n /** The computed trust score record for the enriched subject. */\n record: Hcs25TrustScoreRecord;\n}\n\n/**\n * End-to-end HCS-25 pipeline: collects trust signals via signal adapters,\n * merges the stored fields onto the subject, then computes the composite AI\n * Trust Score with the provided scoring configuration.\n */\nexport async function collectAndScoreTrustScore(\n subject: Hcs25Subject,\n options: Hcs25CollectAndScoreOptions,\n): Promise<Hcs25CollectAndScoreResult> {\n const { config, ...collectOptions } = options;\n const collection = await collectHcs25Signals(subject, collectOptions);\n const record = computeTrustScore({\n subject: collection.subject,\n snapshot: collection.snapshot,\n config,\n now: collectOptions.now,\n });\n return { collection, record };\n}\n"],"names":[],"mappings":";;AA8BA,eAAsB,0BACpB,SACA,SACqC;AACrC,QAAM,EAAE,QAAQ,GAAG,eAAA,IAAmB;AACtC,QAAM,aAAa,MAAM,oBAAoB,SAAS,cAAc;AACpE,QAAM,SAAS,kBAAkB;AAAA,IAC/B,SAAS,WAAW;AAAA,IACpB,UAAU,WAAW;AAAA,IACrB;AAAA,IACA,KAAK,eAAe;AAAA,EAAA,CACrB;AACD,SAAO,EAAE,YAAY,OAAA;AACvB;"}
@@ -1,15 +1,50 @@
1
- import { HCS26BaseClient } from "./standards-sdk.es125.js";
2
- class HCS26BrowserClient extends HCS26BaseClient {
3
- constructor(config) {
4
- super({
5
- network: config.network,
6
- logger: config.logger,
7
- mirrorNode: config.mirrorNode,
8
- verificationProvider: config.verificationProvider
9
- });
1
+ import { isJsonObject, readString, readSubjectAdditional } from "./standards-sdk.es201.js";
2
+ import "./standards-sdk.es184.js";
3
+ import "./standards-sdk.es198.js";
4
+ import "./standards-sdk.es199.js";
5
+ import "./standards-sdk.es200.js";
6
+ import "./standards-sdk.es183.js";
7
+ const ENDPOINT_KEYS = [
8
+ "endpoint",
9
+ "url",
10
+ "serverUrl",
11
+ "endpointUrl",
12
+ "baseUrl"
13
+ ];
14
+ function readEndpointKeys(record) {
15
+ if (!record) {
16
+ return null;
10
17
  }
18
+ for (const key of ENDPOINT_KEYS) {
19
+ const value = record[key];
20
+ if (typeof value === "string" && /^https?:\/\//.test(value)) {
21
+ return value;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ function resolveSubjectEndpoint(subject) {
27
+ const metadata = subject.metadata;
28
+ if (metadata) {
29
+ const direct = readEndpointKeys(metadata);
30
+ if (direct) {
31
+ return direct;
32
+ }
33
+ const endpoints = metadata.endpoints;
34
+ if (Array.isArray(endpoints)) {
35
+ for (const entry of endpoints) {
36
+ if (isJsonObject(entry)) {
37
+ const url = readString(entry, "url");
38
+ if (url && /^https?:\/\//.test(url)) {
39
+ return url;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ return readEndpointKeys(readSubjectAdditional(subject));
11
46
  }
12
47
  export {
13
- HCS26BrowserClient
48
+ resolveSubjectEndpoint
14
49
  };
15
50
  //# sourceMappingURL=standards-sdk.es127.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es127.js","sources":["../../src/hcs-26/browser.ts"],"sourcesContent":["import type { ILogger } from '../utils/logger';\nimport type { NetworkType } from '../utils/types';\nimport { HCS26BaseClient, type HCS26ClientConfig } from './base-client';\n\nexport interface BrowserHCS26ClientConfig\n extends Omit<HCS26ClientConfig, 'network' | 'logger'> {\n network: NetworkType;\n logger?: ILogger;\n}\n\nexport class HCS26BrowserClient extends HCS26BaseClient {\n constructor(config: BrowserHCS26ClientConfig) {\n super({\n network: config.network,\n logger: config.logger,\n mirrorNode: config.mirrorNode,\n verificationProvider: config.verificationProvider,\n });\n }\n}\n"],"names":[],"mappings":";AAUO,MAAM,2BAA2B,gBAAgB;AAAA,EACtD,YAAY,QAAkC;AAC5C,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,YAAY,OAAO;AAAA,MACnB,sBAAsB,OAAO;AAAA,IAAA,CAC9B;AAAA,EACH;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es127.js","sources":["../../src/hcs-25/collectors/endpoints.ts"],"sourcesContent":["import type { Hcs25Subject } from '../types';\nimport { isJsonObject, readString, readSubjectAdditional } from '../signals';\n\nconst ENDPOINT_KEYS = [\n 'endpoint',\n 'url',\n 'serverUrl',\n 'endpointUrl',\n 'baseUrl',\n] as const;\n\nfunction readEndpointKeys(\n record: Record<string, unknown> | undefined,\n): string | null {\n if (!record) {\n return null;\n }\n for (const key of ENDPOINT_KEYS) {\n const value = record[key];\n if (typeof value === 'string' && /^https?:\\/\\//.test(value)) {\n return value;\n }\n }\n return null;\n}\n\n/**\n * Resolves the subject's callable endpoint URL from common metadata\n * locations: `metadata.endpoint|url|serverUrl|endpointUrl|baseUrl`,\n * `metadata.additional.*` equivalents, and the first\n * `metadata.endpoints[].url` (AgentVerse-style endpoint lists).\n */\nexport function resolveSubjectEndpoint(subject: Hcs25Subject): string | null {\n const metadata = subject.metadata;\n if (metadata) {\n const direct = readEndpointKeys(metadata);\n if (direct) {\n return direct;\n }\n\n const endpoints = metadata.endpoints;\n if (Array.isArray(endpoints)) {\n for (const entry of endpoints) {\n if (isJsonObject(entry)) {\n const url = readString(entry, 'url');\n if (url && /^https?:\\/\\//.test(url)) {\n return url;\n }\n }\n }\n }\n }\n\n return readEndpointKeys(readSubjectAdditional(subject));\n}\n"],"names":[],"mappings":";;;;;;AAGA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,iBACP,QACe;AACf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,aAAW,OAAO,eAAe;AAC/B,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,OAAO,UAAU,YAAY,eAAe,KAAK,KAAK,GAAG;AAC3D,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAQO,SAAS,uBAAuB,SAAsC;AAC3E,QAAM,WAAW,QAAQ;AACzB,MAAI,UAAU;AACZ,UAAM,SAAS,iBAAiB,QAAQ;AACxC,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,SAAS;AAC3B,QAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAW,SAAS,WAAW;AAC7B,YAAI,aAAa,KAAK,GAAG;AACvB,gBAAM,MAAM,WAAW,OAAO,KAAK;AACnC,cAAI,OAAO,eAAe,KAAK,GAAG,GAAG;AACnC,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,iBAAiB,sBAAsB,OAAO,CAAC;AACxD;"}
@@ -1,185 +1,137 @@
1
- let loggerFactory = null;
2
- function normalizeErrorData(error) {
3
- const normalizedData = {
4
- name: error.name,
5
- message: error.message
6
- };
7
- if (error.stack) {
8
- normalizedData.stack = error.stack;
9
- }
10
- for (const [key, value] of Object.entries(error)) {
11
- normalizedData[key] = value;
1
+ import { readString } from "./standards-sdk.es201.js";
2
+ import "./standards-sdk.es184.js";
3
+ import "./standards-sdk.es198.js";
4
+ import "./standards-sdk.es199.js";
5
+ import "./standards-sdk.es200.js";
6
+ import { HCS25_ANS_TRUST_DISCOVERY_SIGNALS } from "./standards-sdk.es183.js";
7
+ import { stripTrailingSlashes, requestJson, Hcs25CollectorHttpError, isTimeoutError } from "./standards-sdk.es122.js";
8
+ const DEFAULT_ANS_BASE_URL = "https://api.godaddy.com";
9
+ const SIGNAL_IDS = HCS25_ANS_TRUST_DISCOVERY_SIGNALS.map(
10
+ (signal) => `ans-trust-discovery.${signal}`
11
+ );
12
+ const DEFAULT_INCLUDED_REGISTRIES = ["ans"];
13
+ function nativeIdFromUaid(value) {
14
+ if (!value) {
15
+ return null;
16
+ }
17
+ const nativeId = value.match(/(?:^|;)nativeId=([^;]+)(?:;|$)/i)?.[1]?.trim();
18
+ if (!nativeId) {
19
+ return null;
12
20
  }
13
- return normalizedData;
14
- }
15
- function serializeLogData(data) {
16
21
  try {
17
- return JSON.stringify(
18
- data,
19
- (_key, value) => {
20
- if (value instanceof Error) {
21
- return normalizeErrorData(value);
22
- }
23
- if (typeof value === "bigint") {
24
- return value.toString();
25
- }
26
- if (value instanceof Map) {
27
- return Object.fromEntries(value);
28
- }
29
- if (value instanceof Set) {
30
- return Array.from(value);
31
- }
32
- if (value instanceof Uint8Array) {
33
- return Array.from(value);
34
- }
35
- return value;
36
- },
37
- 2
38
- );
22
+ return decodeURIComponent(nativeId);
39
23
  } catch {
40
- return String(data);
24
+ return nativeId;
41
25
  }
42
26
  }
43
- function setLoggerFactory(factory) {
44
- loggerFactory = factory;
45
- Logger.clearInstances();
27
+ function defaultResolveAgentId(subject) {
28
+ const metadata = subject.metadata ?? {};
29
+ return readString(metadata, "nativeId") ?? nativeIdFromUaid(subject.id) ?? nativeIdFromUaid(readString(metadata, "uaidFull"));
46
30
  }
47
- const _Logger = class _Logger {
48
- constructor(options = {}) {
49
- if (loggerFactory) {
50
- return loggerFactory(options);
51
- }
52
- const globalDisable = typeof process !== "undefined" && process.env?.DISABLE_LOGS === "true";
53
- this.silent = options.silent || globalDisable;
54
- this.level = this.silent ? "silent" : options.level || "info";
55
- this.moduleContext = options.module || "app";
56
- this.prettyPrint = !this.silent && options.prettyPrint !== false;
31
+ function readSignalScore(payload) {
32
+ if (!payload || payload.missing === true) {
33
+ return null;
57
34
  }
58
- static getInstance(options = {}) {
59
- const moduleKey = options.module || "default";
60
- const globalDisable = typeof process !== "undefined" && process.env?.DISABLE_LOGS === "true";
61
- if (globalDisable && _Logger.instances.has(moduleKey)) {
62
- const existingLogger = _Logger.instances.get(moduleKey);
63
- if (existingLogger.getLevel() !== "silent") {
64
- _Logger.instances.delete(moduleKey);
65
- }
66
- }
67
- if (!_Logger.instances.has(moduleKey)) {
68
- const logger = loggerFactory ? loggerFactory(options) : new _Logger(options);
69
- _Logger.instances.set(moduleKey, logger);
70
- }
71
- return _Logger.instances.get(moduleKey);
72
- }
73
- setLogLevel(level) {
74
- this.level = level;
75
- }
76
- getLevel() {
77
- return this.level;
78
- }
79
- setSilent(silent) {
80
- this.silent = silent;
81
- if (silent) {
82
- this.level = "silent";
83
- }
35
+ const score = payload.score;
36
+ if (typeof score !== "number" || !Number.isFinite(score)) {
37
+ return null;
84
38
  }
85
- setModule(module) {
86
- this.moduleContext = module;
87
- }
88
- formatArgs(args) {
89
- if (args.length === 0) {
90
- return { msg: "" };
91
- }
92
- if (args.length === 1) {
93
- if (typeof args[0] === "string") {
94
- return { msg: args[0] };
95
- }
96
- return { msg: "", data: args[0] };
97
- }
98
- const stringArgs = [];
99
- const objectArgs = [];
100
- args.forEach((arg) => {
101
- if (typeof arg === "string" || typeof arg === "number" || typeof arg === "boolean") {
102
- stringArgs.push(String(arg));
103
- } else {
104
- objectArgs.push(arg);
39
+ return Math.min(100, Math.max(0, score));
40
+ }
41
+ function statusResult(status, now, url, agentId) {
42
+ const provenance = {
43
+ source: "ans-trust-discovery",
44
+ sourceUrl: url,
45
+ subjectId: agentId,
46
+ fetchedAt: now
47
+ };
48
+ const fields = status === "missing" ? void 0 : [
49
+ {
50
+ scope: "ansTrustDiscovery",
51
+ values: {
52
+ ansTrustDiscoveryStatus: status,
53
+ ansTrustDiscoveryUpdatedAt: now
105
54
  }
106
- });
107
- const msg = stringArgs.join(" ");
108
- return objectArgs.length > 0 ? { msg, data: objectArgs } : { msg };
109
- }
110
- shouldLog(level) {
111
- if (this.silent || this.level === "silent") {
112
- return false;
113
- }
114
- const levels = ["trace", "debug", "info", "warn", "error", "silent"];
115
- const currentLevelIndex = levels.indexOf(this.level);
116
- const targetLevelIndex = levels.indexOf(level);
117
- return targetLevelIndex >= currentLevelIndex;
118
- }
119
- getConsoleMethod(level) {
120
- if (level === "error") {
121
- return console.error;
122
- }
123
- if (level === "warn") {
124
- return console.warn;
125
55
  }
126
- if (level === "debug") {
127
- return console.debug;
56
+ ];
57
+ return SIGNAL_IDS.map((signalId, index) => ({
58
+ signalId,
59
+ status,
60
+ fields: index === 0 ? fields : void 0,
61
+ provenance
62
+ }));
63
+ }
64
+ function createAnsTrustDiscoverySignalAdapter(options = {}) {
65
+ const resolveAgentId = options.resolveAgentId ?? defaultResolveAgentId;
66
+ const baseUrl = stripTrailingSlashes(options.baseUrl ?? DEFAULT_ANS_BASE_URL);
67
+ const collect = async (subject, context) => {
68
+ const now = context.now.toISOString();
69
+ const agentId = resolveAgentId(subject);
70
+ if (!agentId) {
71
+ return statusResult("missing", now, void 0, void 0);
128
72
  }
129
- return console.log;
130
- }
131
- writeLog(level, ...args) {
132
- if (!this.shouldLog(level)) {
133
- return;
73
+ const url = `${baseUrl}/v1/ans/registered-agents/${encodeURIComponent(agentId)}`;
74
+ let data;
75
+ try {
76
+ data = await requestJson(url, {
77
+ fetch: context.fetch,
78
+ headers: options.headers,
79
+ timeoutMs: context.timeoutMs,
80
+ signal: context.signal
81
+ });
82
+ } catch (error) {
83
+ if (error instanceof Hcs25CollectorHttpError && error.status === 404) {
84
+ return statusResult("missing", now, url, agentId);
85
+ }
86
+ return statusResult(
87
+ isTimeoutError(error) ? "timeout" : "error",
88
+ now,
89
+ url,
90
+ agentId
91
+ );
134
92
  }
135
- const { msg, data } = this.formatArgs(args);
136
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
137
- const consoleMethod = this.getConsoleMethod(level);
138
- if (this.prettyPrint) {
139
- const levelFormatted = level.toUpperCase().padEnd(5);
140
- let output = `${timestamp} ${levelFormatted} [${this.moduleContext}] ${msg}`;
141
- if (data) {
142
- output += "\n" + serializeLogData(data);
93
+ const signals = data.signals;
94
+ const values = {
95
+ ansTrustDiscoveryUpdatedAt: now
96
+ };
97
+ let present = 0;
98
+ const results = [];
99
+ for (const signal of HCS25_ANS_TRUST_DISCOVERY_SIGNALS) {
100
+ const payload = signals && typeof signals === "object" ? signals[signal] : void 0;
101
+ const score = readSignalScore(payload);
102
+ const signalId = `ans-trust-discovery.${signal}`;
103
+ values[signalId] = score;
104
+ if (score !== null) {
105
+ present += 1;
143
106
  }
144
- consoleMethod(output);
145
- } else {
146
- const logObj = {
147
- timestamp,
148
- level,
149
- module: this.moduleContext,
150
- message: msg,
151
- ...data && { data }
152
- };
153
- consoleMethod(JSON.stringify(logObj));
107
+ results.push({
108
+ signalId,
109
+ status: score === null ? "missing" : "ok",
110
+ value: score ?? void 0,
111
+ provenance: {
112
+ source: "ans-trust-discovery",
113
+ sourceUrl: url,
114
+ subjectId: agentId,
115
+ fetchedAt: now
116
+ }
117
+ });
154
118
  }
155
- }
156
- debug(...args) {
157
- this.writeLog("debug", ...args);
158
- }
159
- info(...args) {
160
- this.writeLog("info", ...args);
161
- }
162
- warn(...args) {
163
- this.writeLog("warn", ...args);
164
- }
165
- error(...args) {
166
- this.writeLog("error", ...args);
167
- }
168
- trace(...args) {
169
- this.writeLog("trace", ...args);
170
- }
171
- /**
172
- * Clear all logger instances
173
- * Used when switching logger implementations
174
- */
175
- static clearInstances() {
176
- _Logger.instances.clear();
177
- }
178
- };
179
- _Logger.instances = /* @__PURE__ */ new Map();
180
- let Logger = _Logger;
119
+ values.ansTrustDiscoveryStatus = present > 0 ? "ok" : "missing";
120
+ const carrier = results.find((result) => result.status === "ok") ?? results[0];
121
+ carrier.fields = [{ scope: "ansTrustDiscovery", values }];
122
+ return results;
123
+ };
124
+ return {
125
+ id: "ans-trust-discovery",
126
+ produces: SIGNAL_IDS,
127
+ timeoutMs: options.timeoutMs,
128
+ includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,
129
+ excludeRegistries: options.excludeRegistries,
130
+ appliesTo: options.appliesTo,
131
+ collect
132
+ };
133
+ }
181
134
  export {
182
- Logger,
183
- setLoggerFactory
135
+ createAnsTrustDiscoverySignalAdapter
184
136
  };
185
137
  //# sourceMappingURL=standards-sdk.es128.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es128.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent';\n\nexport interface LoggerOptions {\n level?: LogLevel;\n module?: string;\n prettyPrint?: boolean;\n silent?: boolean;\n}\n\nexport interface ILogger {\n debug(...args: any[]): void;\n info(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n trace(...args: any[]): void;\n setLogLevel(level: LogLevel): void;\n getLevel(): LogLevel;\n setSilent(silent: boolean): void;\n setModule(module: string): void;\n}\n\nexport type LoggerFactory = (options: LoggerOptions) => ILogger;\n\nlet loggerFactory: LoggerFactory | null = null;\n\nfunction normalizeErrorData(error: Error): Record<string, unknown> {\n const normalizedData: Record<string, unknown> = {\n name: error.name,\n message: error.message,\n };\n\n if (error.stack) {\n normalizedData.stack = error.stack;\n }\n\n for (const [key, value] of Object.entries(error)) {\n normalizedData[key] = value;\n }\n\n return normalizedData;\n}\n\nfunction serializeLogData(data: unknown): string {\n try {\n return JSON.stringify(\n data,\n (_key, value: unknown) => {\n if (value instanceof Error) {\n return normalizeErrorData(value);\n }\n if (typeof value === 'bigint') {\n return value.toString();\n }\n if (value instanceof Map) {\n return Object.fromEntries(value);\n }\n if (value instanceof Set) {\n return Array.from(value);\n }\n if (value instanceof Uint8Array) {\n return Array.from(value);\n }\n return value;\n },\n 2,\n );\n } catch {\n return String(data);\n }\n}\n\n/**\n * Set a custom logger factory to override the default Pino-based implementation\n */\nexport function setLoggerFactory(factory: LoggerFactory): void {\n loggerFactory = factory;\n Logger.clearInstances();\n}\n\nexport class Logger implements ILogger {\n private static instances: Map<string, ILogger> = new Map();\n private level: LogLevel;\n private moduleContext: string;\n private silent: boolean;\n private prettyPrint: boolean;\n\n constructor(options: LoggerOptions = {}) {\n if (loggerFactory) {\n return loggerFactory(options) as any;\n }\n\n const globalDisable =\n typeof process !== 'undefined' && process.env?.DISABLE_LOGS === 'true';\n\n this.silent = options.silent || globalDisable;\n this.level = this.silent ? 'silent' : options.level || 'info';\n this.moduleContext = options.module || 'app';\n this.prettyPrint = !this.silent && options.prettyPrint !== false;\n }\n\n static getInstance(options: LoggerOptions = {}): ILogger {\n const moduleKey = options.module || 'default';\n\n const globalDisable =\n typeof process !== 'undefined' && process.env?.DISABLE_LOGS === 'true';\n\n if (globalDisable && Logger.instances.has(moduleKey)) {\n const existingLogger = Logger.instances.get(moduleKey)!;\n if (existingLogger.getLevel() !== 'silent') {\n Logger.instances.delete(moduleKey);\n }\n }\n\n if (!Logger.instances.has(moduleKey)) {\n const logger = loggerFactory\n ? loggerFactory(options)\n : new Logger(options);\n Logger.instances.set(moduleKey, logger);\n }\n\n return Logger.instances.get(moduleKey)!;\n }\n\n setLogLevel(level: LogLevel): void {\n this.level = level;\n }\n\n getLevel(): LogLevel {\n return this.level;\n }\n\n setSilent(silent: boolean): void {\n this.silent = silent;\n if (silent) {\n this.level = 'silent';\n }\n }\n\n setModule(module: string): void {\n this.moduleContext = module;\n }\n\n private formatArgs(args: any[]): { msg: string; data?: any } {\n if (args.length === 0) {\n return { msg: '' };\n }\n\n if (args.length === 1) {\n if (typeof args[0] === 'string') {\n return { msg: args[0] };\n }\n return { msg: '', data: args[0] };\n }\n\n const stringArgs: string[] = [];\n const objectArgs: any[] = [];\n\n args.forEach(arg => {\n if (\n typeof arg === 'string' ||\n typeof arg === 'number' ||\n typeof arg === 'boolean'\n ) {\n stringArgs.push(String(arg));\n } else {\n objectArgs.push(arg);\n }\n });\n\n const msg = stringArgs.join(' ');\n return objectArgs.length > 0 ? { msg, data: objectArgs } : { msg };\n }\n\n private shouldLog(level: LogLevel): boolean {\n if (this.silent || this.level === 'silent') {\n return false;\n }\n\n const levels = ['trace', 'debug', 'info', 'warn', 'error', 'silent'];\n const currentLevelIndex = levels.indexOf(this.level);\n const targetLevelIndex = levels.indexOf(level);\n\n return targetLevelIndex >= currentLevelIndex;\n }\n\n private getConsoleMethod(level: LogLevel): (...args: any[]) => void {\n if (level === 'error') {\n return console.error;\n }\n if (level === 'warn') {\n return console.warn;\n }\n if (level === 'debug') {\n return console.debug;\n }\n return console.log;\n }\n\n private writeLog(level: LogLevel, ...args: any[]): void {\n if (!this.shouldLog(level)) {\n return;\n }\n\n const { msg, data } = this.formatArgs(args);\n const timestamp = new Date().toISOString();\n const consoleMethod = this.getConsoleMethod(level);\n\n if (this.prettyPrint) {\n const levelFormatted = level.toUpperCase().padEnd(5);\n let output = `${timestamp} ${levelFormatted} [${this.moduleContext}] ${msg}`;\n\n if (data) {\n output += '\\n' + serializeLogData(data);\n }\n\n consoleMethod(output);\n } else {\n const logObj = {\n timestamp,\n level,\n module: this.moduleContext,\n message: msg,\n ...(data && { data }),\n };\n\n consoleMethod(JSON.stringify(logObj));\n }\n }\n\n debug(...args: any[]): void {\n this.writeLog('debug', ...args);\n }\n\n info(...args: any[]): void {\n this.writeLog('info', ...args);\n }\n\n warn(...args: any[]): void {\n this.writeLog('warn', ...args);\n }\n\n error(...args: any[]): void {\n this.writeLog('error', ...args);\n }\n\n trace(...args: any[]): void {\n this.writeLog('trace', ...args);\n }\n\n /**\n * Clear all logger instances\n * Used when switching logger implementations\n */\n static clearInstances(): void {\n Logger.instances.clear();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es128.js","sources":["../../src/hcs-25/collectors/ans-trust-discovery.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { readString } from '../signals';\nimport { HCS25_ANS_TRUST_DISCOVERY_SIGNALS } from '../signals/ans-trust-discovery';\nimport {\n Hcs25CollectorHttpError,\n isTimeoutError,\n requestJson,\n stripTrailingSlashes,\n} from './http';\nimport type {\n Hcs25CollectContext,\n Hcs25SignalAdapter,\n Hcs25SignalAdapterResult,\n} from './types';\n\n/**\n * Provider listed in the ANS Trust Discovery signal specification.\n * Callers can point {@link Hcs25AnsTrustDiscoverySignalAdapterOptions.baseUrl}\n * at another provider that serves the same response shape.\n */\nconst DEFAULT_ANS_BASE_URL = 'https://api.godaddy.com';\n\nconst SIGNAL_IDS = HCS25_ANS_TRUST_DISCOVERY_SIGNALS.map(\n signal => `ans-trust-discovery.${signal}`,\n);\n\n/**\n * Options for the ANS Trust Discovery signal adapter.\n */\nexport interface Hcs25AnsTrustDiscoverySignalAdapterOptions {\n /**\n * ANS Trust Index origin. Requests\n * `GET {baseUrl}/v1/ans/registered-agents/{agentId}`.\n * Default `https://api.godaddy.com`.\n */\n baseUrl?: string;\n /** Extra request headers, such as a provider credential. */\n headers?: Record<string, string>;\n /**\n * Resolves the provider agent id. Default reads `metadata.nativeId`,\n * then the `nativeId` parameter of a UAID in `subject.id` or\n * `metadata.uaidFull`.\n */\n resolveAgentId?: (subject: Hcs25Subject) => string | null;\n timeoutMs?: number;\n includeRegistries?: readonly string[];\n excludeRegistries?: readonly string[];\n appliesTo?: (subject: Hcs25Subject) => boolean;\n}\n\nconst DEFAULT_INCLUDED_REGISTRIES: readonly string[] = ['ans'];\n\ninterface AnsSignalPayload {\n score?: unknown;\n missing?: unknown;\n}\n\ninterface AnsTrustResponse {\n signals?: Record<string, AnsSignalPayload>;\n}\n\nfunction nativeIdFromUaid(value: string | null): string | null {\n if (!value) {\n return null;\n }\n const nativeId = value.match(/(?:^|;)nativeId=([^;]+)(?:;|$)/i)?.[1]?.trim();\n if (!nativeId) {\n return null;\n }\n try {\n return decodeURIComponent(nativeId);\n } catch {\n return nativeId;\n }\n}\n\nfunction defaultResolveAgentId(subject: Hcs25Subject): string | null {\n const metadata = subject.metadata ?? {};\n return (\n readString(metadata, 'nativeId') ??\n nativeIdFromUaid(subject.id) ??\n nativeIdFromUaid(readString(metadata, 'uaidFull'))\n );\n}\n\nfunction readSignalScore(payload: AnsSignalPayload | undefined): number | null {\n if (!payload || payload.missing === true) {\n return null;\n }\n const score = payload.score;\n if (typeof score !== 'number' || !Number.isFinite(score)) {\n return null;\n }\n return Math.min(100, Math.max(0, score));\n}\n\nfunction statusResult(\n status: 'missing' | 'timeout' | 'error',\n now: string,\n url: string | undefined,\n agentId: string | undefined,\n): Hcs25SignalAdapterResult[] {\n const provenance = {\n source: 'ans-trust-discovery',\n sourceUrl: url,\n subjectId: agentId,\n fetchedAt: now,\n };\n const fields =\n status === 'missing'\n ? undefined\n : [\n {\n scope: 'ansTrustDiscovery',\n values: {\n ansTrustDiscoveryStatus: status,\n ansTrustDiscoveryUpdatedAt: now,\n },\n },\n ];\n return SIGNAL_IDS.map((signalId, index) => ({\n signalId,\n status,\n fields: index === 0 ? fields : undefined,\n provenance,\n }));\n}\n\n/**\n * Creates the `ans-trust-discovery` signal adapter: reads the eight ANS\n * Trust Index signals from a provider's registered-agent endpoint and\n * stores them under `metadata.ansTrustDiscovery`.\n */\nexport function createAnsTrustDiscoverySignalAdapter(\n options: Hcs25AnsTrustDiscoverySignalAdapterOptions = {},\n): Hcs25SignalAdapter {\n const resolveAgentId = options.resolveAgentId ?? defaultResolveAgentId;\n const baseUrl = stripTrailingSlashes(options.baseUrl ?? DEFAULT_ANS_BASE_URL);\n\n const collect = async (\n subject: Hcs25Subject,\n context: Hcs25CollectContext,\n ): Promise<Hcs25SignalAdapterResult[]> => {\n const now = context.now.toISOString();\n const agentId = resolveAgentId(subject);\n if (!agentId) {\n return statusResult('missing', now, undefined, undefined);\n }\n\n const url = `${baseUrl}/v1/ans/registered-agents/${encodeURIComponent(agentId)}`;\n let data: AnsTrustResponse;\n try {\n data = await requestJson<AnsTrustResponse>(url, {\n fetch: context.fetch,\n headers: options.headers,\n timeoutMs: context.timeoutMs,\n signal: context.signal,\n });\n } catch (error) {\n if (error instanceof Hcs25CollectorHttpError && error.status === 404) {\n return statusResult('missing', now, url, agentId);\n }\n return statusResult(\n isTimeoutError(error) ? 'timeout' : 'error',\n now,\n url,\n agentId,\n );\n }\n\n const signals = data.signals;\n const values: Record<string, Hcs25JsonValue> = {\n ansTrustDiscoveryUpdatedAt: now,\n };\n let present = 0;\n const results: Hcs25SignalAdapterResult[] = [];\n\n for (const signal of HCS25_ANS_TRUST_DISCOVERY_SIGNALS) {\n const payload =\n signals && typeof signals === 'object' ? signals[signal] : undefined;\n const score = readSignalScore(payload);\n const signalId = `ans-trust-discovery.${signal}`;\n values[signalId] = score;\n if (score !== null) {\n present += 1;\n }\n results.push({\n signalId,\n status: score === null ? 'missing' : 'ok',\n value: score ?? undefined,\n provenance: {\n source: 'ans-trust-discovery',\n sourceUrl: url,\n subjectId: agentId,\n fetchedAt: now,\n },\n });\n }\n\n values.ansTrustDiscoveryStatus = present > 0 ? 'ok' : 'missing';\n const carrier =\n results.find(result => result.status === 'ok') ?? results[0];\n carrier.fields = [{ scope: 'ansTrustDiscovery', values }];\n return results;\n };\n\n return {\n id: 'ans-trust-discovery',\n produces: SIGNAL_IDS,\n timeoutMs: options.timeoutMs,\n includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,\n excludeRegistries: options.excludeRegistries,\n appliesTo: options.appliesTo,\n collect,\n };\n}\n"],"names":[],"mappings":"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"}