@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,163 +1,383 @@
1
- import { Logger } from "./standards-sdk.es128.js";
2
- class ProgressReporter {
3
- constructor(options = {}) {
4
- this.module = options.module || "Progress";
5
- this.callback = options.callback;
6
- this.logger = options.logger || new Logger({
7
- level: "info",
8
- module: "ProgressReporter"
9
- });
10
- this.logProgress = options.logProgress ?? true;
11
- this.minPercent = options.minPercent ?? 0;
12
- this.maxPercent = options.maxPercent ?? 100;
13
- this.lastReportedPercent = -1;
14
- this.lastReportedTime = 0;
15
- this.throttleMs = 100;
1
+ import { readSubjectAdditional, isJsonObject, 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 "./standards-sdk.es183.js";
7
+ import { parseTimestampMs } from "./standards-sdk.es123.js";
8
+ import { stripTrailingSlashes, requestJson, Hcs25CollectorHttpError, isTimeoutError } from "./standards-sdk.es122.js";
9
+ const ETHOS_API_BASE_URL = "https://api.ethos.network";
10
+ const DEFAULT_CLIENT_ID = "standards-sdk";
11
+ const EMBEDDED_EVM_ADDRESS_PATTERN = /0x[0-9a-fA-F]{40}/;
12
+ const TWITTER_HANDLE_PATTERN = /^[a-zA-Z0-9_]{1,64}$/;
13
+ const DEFAULT_EXCLUDED_REGISTRIES = [
14
+ "openrouter",
15
+ "near-ai",
16
+ "agentverse",
17
+ "uagent"
18
+ ];
19
+ const normalizeRegistry = (value) => typeof value === "string" ? value.trim().toLowerCase() : "";
20
+ const extractAddress = (value) => {
21
+ if (typeof value !== "string") {
22
+ return null;
16
23
  }
17
- static getInstance(options = {}) {
18
- if (!ProgressReporter.instance) {
19
- ProgressReporter.instance = new ProgressReporter(options);
20
- } else {
21
- if (options.callback) {
22
- ProgressReporter.instance.setCallback(options.callback);
23
- }
24
- if (options.module) {
25
- ProgressReporter.instance.setModule(options.module);
26
- }
27
- if (options.logger) {
28
- ProgressReporter.instance.setLogger(options.logger);
29
- }
30
- if (options.minPercent !== void 0) {
31
- ProgressReporter.instance.setMinPercent(options.minPercent);
32
- }
33
- if (options.maxPercent !== void 0) {
34
- ProgressReporter.instance.setMaxPercent(options.maxPercent);
35
- }
36
- }
37
- return ProgressReporter.instance;
24
+ const match = EMBEDDED_EVM_ADDRESS_PATTERN.exec(value.trim());
25
+ return match ? match[0] : null;
26
+ };
27
+ function normalizeEthosUserkey(value) {
28
+ if (typeof value !== "string") {
29
+ return null;
38
30
  }
39
- setCallback(callback) {
40
- this.callback = callback;
31
+ const trimmed = value.trim();
32
+ if (!trimmed) {
33
+ return null;
41
34
  }
42
- setModule(module) {
43
- this.module = module;
35
+ if (trimmed.includes(":")) {
36
+ return trimmed;
44
37
  }
45
- setLogger(logger) {
46
- this.logger = logger;
38
+ const address = extractAddress(trimmed);
39
+ return address ? `address:${address}` : null;
40
+ }
41
+ const userkeyKind = (userkey) => {
42
+ const trimmed = userkey.trim();
43
+ if (trimmed.startsWith("address:")) {
44
+ return "address";
47
45
  }
48
- setMinPercent(minPercent) {
49
- this.minPercent = minPercent;
46
+ if (trimmed.startsWith("service:x.com:")) {
47
+ return "x";
50
48
  }
51
- setMaxPercent(maxPercent) {
52
- this.maxPercent = maxPercent;
49
+ return "explicit";
50
+ };
51
+ const normalizeTwitterHandle = (value) => {
52
+ if (typeof value !== "string") {
53
+ return null;
53
54
  }
54
- createSubProgress(options) {
55
- const subReporter = new ProgressReporter({
56
- module: this.module,
57
- logger: this.logger,
58
- logProgress: this.logProgress,
59
- minPercent: options.minPercent,
60
- maxPercent: options.maxPercent
61
- });
62
- const logPrefix = options.logPrefix || "";
63
- subReporter.setCallback((data) => {
64
- const scaledPercent = this.scalePercent(
65
- data.progressPercent,
66
- options.minPercent,
67
- options.maxPercent
68
- );
69
- let formattedMessage = data.message;
70
- if (logPrefix && !formattedMessage.startsWith(logPrefix)) {
71
- formattedMessage = `${logPrefix}: ${formattedMessage}`;
72
- }
73
- this.report({
74
- stage: data.stage,
75
- message: formattedMessage,
76
- progressPercent: scaledPercent,
77
- details: data.details
78
- });
79
- });
80
- return subReporter;
55
+ const withoutAt = value.trim().replace(/^@/, "").replace(/\s+/g, "");
56
+ return TWITTER_HANDLE_PATTERN.test(withoutAt) ? withoutAt : null;
57
+ };
58
+ const extractTwitterFromSocials = (profile) => {
59
+ if (!isJsonObject(profile)) {
60
+ return null;
61
+ }
62
+ const socials = profile.socials;
63
+ if (!Array.isArray(socials)) {
64
+ return null;
81
65
  }
82
- report(data) {
83
- const rawPercent = data.progressPercent;
84
- const percent = Math.max(0, Math.min(100, rawPercent));
85
- const scaledPercent = this.scalePercent(percent, 0, 100);
86
- const now = Date.now();
87
- if (scaledPercent === this.lastReportedPercent && now - this.lastReportedTime < this.throttleMs && data.stage !== "completed" && data.stage !== "failed") {
88
- return;
66
+ for (const entry of socials) {
67
+ if (!isJsonObject(entry)) {
68
+ continue;
89
69
  }
90
- this.lastReportedPercent = scaledPercent;
91
- this.lastReportedTime = now;
92
- const progressData = {
93
- ...data,
94
- progressPercent: scaledPercent
95
- };
96
- if (this.logProgress) {
97
- this.logger.debug(
98
- `[${this.module}] [${data.stage.toUpperCase()}] ${data.message} (${scaledPercent.toFixed(1)}%)`,
99
- data.details
100
- );
70
+ const platform = normalizeRegistry(
71
+ entry.platform
72
+ );
73
+ if (platform !== "twitter" && platform !== "x") {
74
+ continue;
101
75
  }
102
- if (this.callback) {
103
- try {
104
- this.callback(progressData);
105
- } catch (err) {
106
- this.logger.warn(`Error in progress callback: ${err}`);
107
- }
76
+ const handle = normalizeTwitterHandle(
77
+ entry.handle
78
+ );
79
+ if (handle) {
80
+ return handle;
108
81
  }
109
82
  }
110
- scalePercent(percent, sourceMin, sourceMax) {
111
- const range = this.maxPercent - this.minPercent;
112
- const sourceRange = sourceMax - sourceMin;
113
- const scaleFactor = range / sourceRange;
114
- return this.minPercent + (percent - sourceMin) * scaleFactor;
83
+ return null;
84
+ };
85
+ function isEthosExcluded(subject) {
86
+ const registry = normalizeRegistry(subject.registry);
87
+ const metadata = subject.metadata ?? {};
88
+ const protocol = normalizeRegistry(
89
+ metadata.protocol
90
+ );
91
+ const protocols = Array.isArray(
92
+ subject.protocols
93
+ ) ? (subject.protocols ?? []).filter((v) => typeof v === "string").map(normalizeRegistry) : [];
94
+ return registry === "agentverse" || registry === "uagent" || protocol === "uagent" || protocols.includes("uagent");
95
+ }
96
+ function deriveEthosSources(subject) {
97
+ const metadata = subject.metadata ?? {};
98
+ const registry = normalizeRegistry(subject.registry);
99
+ const additional = readSubjectAdditional(subject);
100
+ const epoch = (/* @__PURE__ */ new Date(0)).toISOString();
101
+ const push = (list, userkey, kind, weight) => {
102
+ if (!list.some((source) => source.userkey === userkey)) {
103
+ list.push({
104
+ userkey,
105
+ kind,
106
+ weight,
107
+ status: "missing",
108
+ score: null,
109
+ updatedAt: epoch
110
+ });
111
+ }
112
+ };
113
+ const sources = [];
114
+ const trustProviderIds = isJsonObject(metadata.trustProviderIds) ? metadata.trustProviderIds : void 0;
115
+ const trustProviders = isJsonObject(metadata.trust) && isJsonObject(metadata.trust.providers) ? metadata.trust.providers : void 0;
116
+ for (const candidate of [
117
+ trustProviderIds?.ethos,
118
+ trustProviders?.ethos,
119
+ metadata.ethosUserkey
120
+ ]) {
121
+ const userkey = normalizeEthosUserkey(candidate);
122
+ if (userkey) {
123
+ push(sources, userkey, userkeyKind(userkey), 1);
124
+ return sources;
125
+ }
115
126
  }
116
- preparing(message, percent, details) {
117
- this.report({
118
- stage: "preparing",
119
- message,
120
- progressPercent: percent,
121
- details
122
- });
127
+ const metadataRecord = metadata;
128
+ const profileSocials = extractTwitterFromSocials(metadataRecord.profile) ?? extractTwitterFromSocials(subject.profile);
129
+ if (registry === "virtuals-protocol") {
130
+ const handle = normalizeTwitterHandle(metadataRecord.twitterHandle) ?? normalizeTwitterHandle(metadataRecord.memeTwitterHandle) ?? profileSocials;
131
+ if (handle) {
132
+ push(sources, `service:x.com:username:${handle}`, "x", 0.7);
133
+ }
134
+ } else if (registry === "moltbook") {
135
+ const owner = isJsonObject(metadataRecord.moltbook) ? normalizeTwitterHandle(
136
+ metadataRecord.moltbook.owner
137
+ ) : null;
138
+ const handle = owner ?? profileSocials;
139
+ if (handle) {
140
+ push(sources, `service:x.com:username:${handle}`, "x", 1);
141
+ }
142
+ } else {
143
+ const genericHandle = [
144
+ readString(additional, "twitter"),
145
+ readString(additional, "xHandle"),
146
+ readString(additional, "x"),
147
+ readString(additional, "twitterHandle"),
148
+ readString(metadataRecord, "twitter"),
149
+ readString(metadataRecord, "xHandle"),
150
+ readString(metadataRecord, "x"),
151
+ profileSocials
152
+ ].map(normalizeTwitterHandle).find((handle) => handle !== null);
153
+ if (genericHandle) {
154
+ push(sources, `service:x.com:username:${genericHandle}`, "x", 1);
155
+ }
123
156
  }
124
- submitting(message, percent, details) {
125
- this.report({
126
- stage: "submitting",
127
- message,
128
- progressPercent: percent,
129
- details
130
- });
157
+ const addressCandidates = [
158
+ metadataRecord.agentAddress,
159
+ metadataRecord.ownerAddress,
160
+ metadataRecord.payTo,
161
+ metadataRecord.agentAddressCaip,
162
+ metadataRecord.nativeId,
163
+ metadataRecord.address,
164
+ metadataRecord.evmAddress,
165
+ metadataRecord.uid
166
+ ];
167
+ for (const candidate of addressCandidates) {
168
+ const address = extractAddress(candidate);
169
+ if (!address) {
170
+ continue;
171
+ }
172
+ const weightedRegistry = registry === "virtuals-protocol" || registry === "moltbook";
173
+ const weight = weightedRegistry && sources.some((source) => source.kind === "x") ? 0.3 : 1;
174
+ push(sources, `address:${address}`, "address", weight);
175
+ break;
131
176
  }
132
- confirming(message, percent, details) {
133
- this.report({
134
- stage: "confirming",
135
- message,
136
- progressPercent: percent,
137
- details
138
- });
177
+ return sources;
178
+ }
179
+ const pickPrimaryUserkey = (sources) => sources.find((source) => source.kind === "address")?.userkey ?? sources[0]?.userkey ?? null;
180
+ function readStoredSources(subject) {
181
+ const raw = subject.metadata?.ethosSources;
182
+ if (!Array.isArray(raw)) {
183
+ return [];
139
184
  }
140
- verifying(message, percent, details) {
141
- this.report({
142
- stage: "verifying",
143
- message,
144
- progressPercent: percent,
145
- details
185
+ const out = [];
186
+ for (const entry of raw) {
187
+ if (!isJsonObject(entry)) {
188
+ continue;
189
+ }
190
+ const record = entry;
191
+ const userkey = readString(record, "userkey");
192
+ if (!userkey) {
193
+ continue;
194
+ }
195
+ const rawKind = readString(record, "kind");
196
+ const rawStatus = readString(record, "status");
197
+ const score = record.score;
198
+ out.push({
199
+ userkey,
200
+ kind: rawKind === "x" || rawKind === "address" || rawKind === "explicit" ? rawKind : userkeyKind(userkey),
201
+ weight: typeof record.weight === "number" && Number.isFinite(record.weight) ? Math.max(0, record.weight) : 1,
202
+ status: rawStatus === "ok" || rawStatus === "error" ? rawStatus : "missing",
203
+ score: typeof score === "number" && Number.isFinite(score) ? score : null,
204
+ updatedAt: readString(record, "updatedAt") ?? (/* @__PURE__ */ new Date(0)).toISOString()
146
205
  });
147
206
  }
148
- completed(message, details) {
149
- this.report({ stage: "completed", message, progressPercent: 100, details });
150
- }
151
- failed(message, details) {
152
- this.report({
153
- stage: "failed",
154
- message,
155
- progressPercent: this.lastReportedPercent,
156
- details
207
+ return out;
208
+ }
209
+ function createEthosSignalAdapter(options = {}) {
210
+ const baseUrl = stripTrailingSlashes(options.baseUrl ?? ETHOS_API_BASE_URL);
211
+ const resolveSources = options.sources ?? deriveEthosSources;
212
+ const ttlMs = options.ttlMs ?? 12 * 60 * 60 * 1e3;
213
+ const failureTtlMs = options.failureTtlMs ?? 6 * 60 * 60 * 1e3;
214
+ const maxRetries = options.maxRetries ?? 2;
215
+ const inferAddress = options.inferAddress ?? true;
216
+ const clientId = options.client ?? DEFAULT_CLIENT_ID;
217
+ const collect = async (subject, context) => {
218
+ const now = context.now.toISOString();
219
+ const resolved = (() => {
220
+ const sources = resolveSources(subject);
221
+ return inferAddress ? [...sources] : sources.filter((source) => source.kind !== "address");
222
+ })();
223
+ if (resolved.length === 0) {
224
+ return [
225
+ {
226
+ signalId: "ethos.score",
227
+ status: "missing",
228
+ fields: [
229
+ {
230
+ scope: "root",
231
+ values: {
232
+ ethosScore: null,
233
+ ethosScoreStatus: "missing",
234
+ ethosScoreUpdatedAt: now,
235
+ ethosSources: []
236
+ }
237
+ }
238
+ ]
239
+ }
240
+ ];
241
+ }
242
+ const storedByUserkey = new Map(
243
+ readStoredSources(subject).map((source) => [source.userkey, source])
244
+ );
245
+ const merged = resolved.map((source) => {
246
+ const stored = storedByUserkey.get(source.userkey);
247
+ return {
248
+ ...source,
249
+ status: stored?.status ?? source.status ?? "missing",
250
+ score: stored?.score ?? source.score ?? null,
251
+ updatedAt: stored?.updatedAt ?? source.updatedAt
252
+ };
157
253
  });
158
- }
254
+ const toRefresh = merged.filter((source) => {
255
+ if (context.force) {
256
+ return true;
257
+ }
258
+ const updatedMs = parseTimestampMs(source.updatedAt);
259
+ if (updatedMs === null || updatedMs <= 0) {
260
+ return true;
261
+ }
262
+ const ttl = source.status === "ok" ? ttlMs : failureTtlMs;
263
+ return context.now.getTime() - updatedMs >= ttl;
264
+ });
265
+ const headers = { "X-Ethos-Client": clientId };
266
+ let sawTimeout = false;
267
+ await Promise.all(
268
+ toRefresh.map(async (source) => {
269
+ const url = `${baseUrl}/api/v1/score/${encodeURIComponent(source.userkey)}`;
270
+ try {
271
+ const data = await requestJson(url, {
272
+ fetch: context.fetch,
273
+ headers,
274
+ timeoutMs: context.timeoutMs,
275
+ signal: context.signal,
276
+ maxRetries
277
+ });
278
+ const score = typeof data?.data?.score === "number" && Number.isFinite(data.data.score) ? data.data.score : typeof data?.score === "number" && Number.isFinite(data.score) ? data.score : null;
279
+ source.updatedAt = now;
280
+ if (data?.ok === false || score === null) {
281
+ source.status = "missing";
282
+ source.score = null;
283
+ } else {
284
+ source.status = "ok";
285
+ source.score = score;
286
+ }
287
+ } catch (error) {
288
+ source.updatedAt = now;
289
+ if (error instanceof Hcs25CollectorHttpError) {
290
+ if (error.status === 404) {
291
+ source.status = "missing";
292
+ source.score = null;
293
+ } else {
294
+ source.status = "error";
295
+ source.score = source.score ?? null;
296
+ }
297
+ } else if (isTimeoutError(error)) {
298
+ source.status = "error";
299
+ sawTimeout = true;
300
+ } else {
301
+ source.status = "error";
302
+ }
303
+ }
304
+ })
305
+ );
306
+ const scoredSources = merged.filter(
307
+ (source) => typeof source.score === "number" && Number.isFinite(source.score)
308
+ );
309
+ const weightSum = scoredSources.reduce(
310
+ (sum, source) => sum + Math.max(0, source.weight),
311
+ 0
312
+ );
313
+ const composite = weightSum > 0 ? Math.round(
314
+ scoredSources.reduce(
315
+ (sum, source) => sum + source.weight * (source.score ?? 0),
316
+ 0
317
+ ) / weightSum * 100
318
+ ) / 100 : null;
319
+ const compositeStatus = merged.some(
320
+ (source) => source.status === "ok"
321
+ ) ? "ok" : merged.some((source) => source.status === "error") ? "error" : "missing";
322
+ const weights = {};
323
+ for (const source of merged) {
324
+ weights[source.kind] = Math.round(((weights[source.kind] ?? 0) + source.weight) * 100) / 100;
325
+ }
326
+ const signalStatus = compositeStatus === "ok" ? "ok" : sawTimeout ? "timeout" : compositeStatus === "error" ? "error" : "missing";
327
+ return [
328
+ {
329
+ signalId: "ethos.score",
330
+ status: signalStatus,
331
+ value: composite,
332
+ fields: [
333
+ {
334
+ scope: "root",
335
+ values: {
336
+ ethosUserkey: pickPrimaryUserkey(merged),
337
+ ethosScore: composite,
338
+ ethosScoreStatus: compositeStatus,
339
+ ethosScoreUpdatedAt: now,
340
+ ethosSources: merged.map((source) => ({
341
+ userkey: source.userkey,
342
+ kind: source.kind,
343
+ weight: source.weight,
344
+ status: source.status ?? "missing",
345
+ score: source.score ?? null,
346
+ updatedAt: source.updatedAt ?? now
347
+ })),
348
+ ethosComposite: {
349
+ version: 1,
350
+ score: composite,
351
+ updatedAt: now,
352
+ weights
353
+ }
354
+ }
355
+ }
356
+ ],
357
+ provenance: {
358
+ source: "ethos",
359
+ sourceUrl: `${baseUrl}/api/v1/score`,
360
+ subjectId: subject.id,
361
+ fetchedAt: now,
362
+ params: { userkeys: merged.map((source) => source.userkey) }
363
+ }
364
+ }
365
+ ];
366
+ };
367
+ return {
368
+ id: "ethos",
369
+ produces: ["ethos.score"],
370
+ timeoutMs: options.timeoutMs,
371
+ includeRegistries: options.includeRegistries,
372
+ excludeRegistries: options.excludeRegistries ?? DEFAULT_EXCLUDED_REGISTRIES,
373
+ appliesTo: options.appliesTo ?? ((subject) => !isEthosExcluded(subject)),
374
+ collect
375
+ };
159
376
  }
160
377
  export {
161
- ProgressReporter
378
+ createEthosSignalAdapter,
379
+ deriveEthosSources,
380
+ isEthosExcluded,
381
+ normalizeEthosUserkey
162
382
  };
163
383
  //# sourceMappingURL=standards-sdk.es131.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es131.js","sources":["../../src/utils/progress-reporter.ts"],"sourcesContent":["import { Logger, ILogger } from './logger';\n\nexport type ProgressStage =\n | 'preparing'\n | 'submitting'\n | 'confirming'\n | 'verifying'\n | 'completed'\n | 'failed';\n\nexport interface ProgressData {\n stage: ProgressStage;\n message: string;\n progressPercent: number;\n details?: Record<string, any>;\n}\n\nexport type ProgressCallback = (data: ProgressData) => void;\n\nexport interface ProgressReporterOptions {\n module?: string;\n callback?: ProgressCallback;\n logger?: ILogger;\n logProgress?: boolean;\n minPercent?: number;\n maxPercent?: number;\n}\n\n/**\n * ProgressReporter is a singleton class that reports progress of a task.\n * Can be used in a generalized fashion.\n */\nexport class ProgressReporter {\n private static instance: ProgressReporter;\n private module: string;\n private callback?: ProgressCallback;\n private logger: ILogger;\n private logProgress: boolean;\n private minPercent: number;\n private maxPercent: number;\n private lastReportedPercent: number;\n private lastReportedTime: number;\n private throttleMs: number;\n\n constructor(options: ProgressReporterOptions = {}) {\n this.module = options.module || 'Progress';\n this.callback = options.callback;\n this.logger =\n options.logger ||\n new Logger({\n level: 'info',\n module: 'ProgressReporter',\n });\n this.logProgress = options.logProgress ?? true;\n this.minPercent = options.minPercent ?? 0;\n this.maxPercent = options.maxPercent ?? 100;\n this.lastReportedPercent = -1;\n this.lastReportedTime = 0;\n this.throttleMs = 100;\n }\n\n static getInstance(options: ProgressReporterOptions = {}): ProgressReporter {\n if (!ProgressReporter.instance) {\n ProgressReporter.instance = new ProgressReporter(options);\n } else {\n if (options.callback) {\n ProgressReporter.instance.setCallback(options.callback);\n }\n if (options.module) {\n ProgressReporter.instance.setModule(options.module);\n }\n if (options.logger) {\n ProgressReporter.instance.setLogger(options.logger);\n }\n if (options.minPercent !== undefined) {\n ProgressReporter.instance.setMinPercent(options.minPercent);\n }\n if (options.maxPercent !== undefined) {\n ProgressReporter.instance.setMaxPercent(options.maxPercent);\n }\n }\n return ProgressReporter.instance;\n }\n\n setCallback(callback: ProgressCallback): void {\n this.callback = callback;\n }\n\n setModule(module: string): void {\n this.module = module;\n }\n\n setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n setMinPercent(minPercent: number): void {\n this.minPercent = minPercent;\n }\n\n setMaxPercent(maxPercent: number): void {\n this.maxPercent = maxPercent;\n }\n\n createSubProgress(options: {\n minPercent: number;\n maxPercent: number;\n logPrefix?: string;\n }): ProgressReporter {\n const subReporter = new ProgressReporter({\n module: this.module,\n logger: this.logger,\n logProgress: this.logProgress,\n minPercent: options.minPercent,\n maxPercent: options.maxPercent,\n });\n\n const logPrefix = options.logPrefix || '';\n\n subReporter.setCallback(data => {\n const scaledPercent = this.scalePercent(\n data.progressPercent,\n options.minPercent,\n options.maxPercent,\n );\n\n let formattedMessage = data.message;\n if (logPrefix && !formattedMessage.startsWith(logPrefix)) {\n formattedMessage = `${logPrefix}: ${formattedMessage}`;\n }\n\n this.report({\n stage: data.stage,\n message: formattedMessage,\n progressPercent: scaledPercent,\n details: data.details,\n });\n });\n\n return subReporter;\n }\n\n report(data: ProgressData): void {\n const rawPercent = data.progressPercent;\n const percent = Math.max(0, Math.min(100, rawPercent));\n\n const scaledPercent = this.scalePercent(percent, 0, 100);\n\n const now = Date.now();\n if (\n scaledPercent === this.lastReportedPercent &&\n now - this.lastReportedTime < this.throttleMs &&\n data.stage !== 'completed' &&\n data.stage !== 'failed'\n ) {\n return;\n }\n\n this.lastReportedPercent = scaledPercent;\n this.lastReportedTime = now;\n\n const progressData = {\n ...data,\n progressPercent: scaledPercent,\n };\n\n if (this.logProgress) {\n this.logger.debug(\n `[${this.module}] [${data.stage.toUpperCase()}] ${\n data.message\n } (${scaledPercent.toFixed(1)}%)`,\n data.details,\n );\n }\n\n if (this.callback) {\n try {\n this.callback(progressData);\n } catch (err) {\n this.logger.warn(`Error in progress callback: ${err}`);\n }\n }\n }\n\n private scalePercent(\n percent: number,\n sourceMin: number,\n sourceMax: number,\n ): number {\n const range = this.maxPercent - this.minPercent;\n const sourceRange = sourceMax - sourceMin;\n const scaleFactor = range / sourceRange;\n\n return this.minPercent + (percent - sourceMin) * scaleFactor;\n }\n\n preparing(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'preparing',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n submitting(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'submitting',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n confirming(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'confirming',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n verifying(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'verifying',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n completed(message: string, details?: Record<string, any>): void {\n this.report({ stage: 'completed', message, progressPercent: 100, details });\n }\n\n failed(message: string, details?: Record<string, any>): void {\n this.report({\n stage: 'failed',\n message,\n progressPercent: this.lastReportedPercent,\n details,\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es131.js","sources":["../../src/hcs-25/collectors/ethos.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { isJsonObject, readString, readSubjectAdditional } from '../signals';\nimport { parseTimestampMs } from './freshness';\nimport {\n Hcs25CollectorHttpError,\n isTimeoutError,\n requestJson,\n stripTrailingSlashes,\n} from './http';\nimport type {\n Hcs25CollectContext,\n Hcs25SignalAdapter,\n Hcs25SignalAdapterResult,\n} from './types';\n\nconst ETHOS_API_BASE_URL = 'https://api.ethos.network';\nconst DEFAULT_CLIENT_ID = 'standards-sdk';\nconst EMBEDDED_EVM_ADDRESS_PATTERN = /0x[0-9a-fA-F]{40}/;\nconst TWITTER_HANDLE_PATTERN = /^[a-zA-Z0-9_]{1,64}$/;\n\ntype EthosSourceKind = 'explicit' | 'x' | 'address';\ntype EthosStoredStatus = 'ok' | 'missing' | 'error';\n\n/**\n * A resolved Ethos userkey source: the userkey, how it was derived, and its\n * composite weight (per the ethos signal document's `ethosSources` schema).\n */\nexport interface Hcs25EthosSource {\n userkey: string;\n kind: EthosSourceKind;\n weight: number;\n status?: EthosStoredStatus;\n score?: number | null;\n updatedAt?: string;\n}\n\n/**\n * Options for the Ethos signal adapter.\n */\nexport interface Hcs25EthosSignalAdapterOptions {\n /**\n * Ethos API base URL; the collector requests\n * `{baseUrl}/api/v1/score/{userkey}` (the production v1 endpoint, which\n * returns an `{ok, data: {score}}` envelope). Default\n * `https://api.ethos.network`.\n */\n baseUrl?: string;\n /** `X-Ethos-Client` identifier sent with every request. */\n client?: string;\n /**\n * Explicit source list; when omitted, sources are derived per the\n * production derivation rules (see {@link deriveEthosSources}).\n */\n sources?: (subject: Hcs25Subject) => readonly Hcs25EthosSource[];\n /**\n * Refresh interval applied to sources whose stored status is `ok`.\n * Default 12 hours. Set to 0 to always refetch.\n */\n ttlMs?: number;\n /**\n * Refresh interval applied to sources in `missing`/`error` state.\n * Default 6 hours.\n */\n failureTtlMs?: number;\n /** Transient-failure retries per source request. Default 2. */\n maxRetries?: number;\n /**\n * When false, disables EVM-address inference (`agentAddress`,\n * `ownerAddress`, `payTo`, `agentAddressCaip`, `nativeId`, …). Default\n * true.\n */\n inferAddress?: boolean;\n /** Per-adapter timeout in milliseconds. */\n timeoutMs?: number;\n includeRegistries?: readonly string[];\n excludeRegistries?: readonly string[];\n appliesTo?: (subject: Hcs25Subject) => boolean;\n}\n\nconst DEFAULT_EXCLUDED_REGISTRIES: readonly string[] = [\n 'openrouter',\n 'near-ai',\n 'agentverse',\n 'uagent',\n];\n\ninterface EthosScoreResponse {\n ok?: boolean;\n data?: { score?: number };\n score?: number;\n}\n\nconst normalizeRegistry = (value: unknown): string =>\n typeof value === 'string' ? value.trim().toLowerCase() : '';\n\nconst extractAddress = (value: unknown): string | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const match = EMBEDDED_EVM_ADDRESS_PATTERN.exec(value.trim());\n return match ? match[0] : null;\n};\n\n/**\n * Normalizes a stored/explicit Ethos userkey: values already containing a\n * `kind:` prefix pass through; bare EVM addresses become `address:0x…`.\n */\nexport function normalizeEthosUserkey(value: unknown): string | null {\n if (typeof value !== 'string') {\n return null;\n }\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n if (trimmed.includes(':')) {\n return trimmed;\n }\n const address = extractAddress(trimmed);\n return address ? `address:${address}` : null;\n}\n\nconst userkeyKind = (userkey: string): EthosSourceKind => {\n const trimmed = userkey.trim();\n if (trimmed.startsWith('address:')) {\n return 'address';\n }\n if (trimmed.startsWith('service:x.com:')) {\n return 'x';\n }\n return 'explicit';\n};\n\nconst normalizeTwitterHandle = (value: unknown): string | null => {\n if (typeof value !== 'string') {\n return null;\n }\n const withoutAt = value.trim().replace(/^@/, '').replace(/\\s+/g, '');\n return TWITTER_HANDLE_PATTERN.test(withoutAt) ? withoutAt : null;\n};\n\nconst extractTwitterFromSocials = (profile: unknown): string | null => {\n if (!isJsonObject(profile as Hcs25JsonValue)) {\n return null;\n }\n const socials = (profile as Record<string, Hcs25JsonValue>).socials;\n if (!Array.isArray(socials)) {\n return null;\n }\n for (const entry of socials) {\n if (!isJsonObject(entry)) {\n continue;\n }\n const platform = normalizeRegistry(\n (entry as Record<string, Hcs25JsonValue>).platform,\n );\n if (platform !== 'twitter' && platform !== 'x') {\n continue;\n }\n const handle = normalizeTwitterHandle(\n (entry as Record<string, Hcs25JsonValue>).handle,\n );\n if (handle) {\n return handle;\n }\n }\n return null;\n};\n\n/**\n * True when the subject is structurally outside Ethos coverage (uAgent /\n * AgentVerse agents per the ethos signal doc).\n */\nexport function isEthosExcluded(subject: Hcs25Subject): boolean {\n const registry = normalizeRegistry(subject.registry);\n const metadata = subject.metadata ?? {};\n const protocol = normalizeRegistry(\n (metadata as Record<string, Hcs25JsonValue>).protocol,\n );\n const protocols = Array.isArray(\n (subject as { protocols?: unknown }).protocols,\n )\n ? ((subject as { protocols?: unknown[] }).protocols ?? [])\n .filter((v): v is string => typeof v === 'string')\n .map(normalizeRegistry)\n : [];\n return (\n registry === 'agentverse' ||\n registry === 'uagent' ||\n protocol === 'uagent' ||\n protocols.includes('uagent')\n );\n}\n\n/**\n * Derives Ethos userkey sources per the production rules:\n *\n * - `metadata.trustProviderIds.ethos` / `metadata.trust.providers.ethos` /\n * `metadata.ethosUserkey` are explicit userkeys (weight 1, short-circuit).\n * - `virtuals-protocol` subjects derive an `x` source from\n * `twitterHandle`/`memeTwitterHandle`/`profile.socials` (weight 0.7);\n * `moltbook` subjects derive from `moltbook.owner`/`profile.socials`\n * (weight 1). Other registries use the generic\n * `additional.twitter|xHandle|x|twitterHandle` keys (weight 1).\n * - `agentAddress`, `ownerAddress`, `payTo`, `agentAddressCaip`,\n * `nativeId`, `address`, `evmAddress`, `uid` yield an `address:` source\n * (embedded `0x…` extraction makes CAIP ids work). Weight drops to 0.3\n * when an `x` source already exists on a weighted registry.\n */\nexport function deriveEthosSources(subject: Hcs25Subject): Hcs25EthosSource[] {\n const metadata = subject.metadata ?? {};\n const registry = normalizeRegistry(subject.registry);\n const additional = readSubjectAdditional(subject);\n const epoch = new Date(0).toISOString();\n const push = (\n list: Hcs25EthosSource[],\n userkey: string,\n kind: EthosSourceKind,\n weight: number,\n ): void => {\n if (!list.some(source => source.userkey === userkey)) {\n list.push({\n userkey,\n kind,\n weight,\n status: 'missing',\n score: null,\n updatedAt: epoch,\n });\n }\n };\n\n const sources: Hcs25EthosSource[] = [];\n\n const trustProviderIds = isJsonObject(metadata.trustProviderIds)\n ? metadata.trustProviderIds\n : undefined;\n const trustProviders =\n isJsonObject(metadata.trust) && isJsonObject(metadata.trust.providers)\n ? (metadata.trust.providers as Record<string, Hcs25JsonValue>)\n : undefined;\n for (const candidate of [\n trustProviderIds?.ethos,\n trustProviders?.ethos,\n metadata.ethosUserkey,\n ]) {\n const userkey = normalizeEthosUserkey(candidate);\n if (userkey) {\n push(sources, userkey, userkeyKind(userkey), 1);\n return sources;\n }\n }\n\n const metadataRecord = metadata as Record<string, Hcs25JsonValue>;\n const profileSocials =\n extractTwitterFromSocials(metadataRecord.profile) ??\n extractTwitterFromSocials((subject as { profile?: unknown }).profile);\n\n if (registry === 'virtuals-protocol') {\n const handle =\n normalizeTwitterHandle(metadataRecord.twitterHandle) ??\n normalizeTwitterHandle(metadataRecord.memeTwitterHandle) ??\n profileSocials;\n if (handle) {\n push(sources, `service:x.com:username:${handle}`, 'x', 0.7);\n }\n } else if (registry === 'moltbook') {\n const owner = isJsonObject(metadataRecord.moltbook)\n ? normalizeTwitterHandle(\n (metadataRecord.moltbook as Record<string, Hcs25JsonValue>).owner,\n )\n : null;\n const handle = owner ?? profileSocials;\n if (handle) {\n push(sources, `service:x.com:username:${handle}`, 'x', 1);\n }\n } else {\n const genericHandle = [\n readString(additional, 'twitter'),\n readString(additional, 'xHandle'),\n readString(additional, 'x'),\n readString(additional, 'twitterHandle'),\n readString(metadataRecord, 'twitter'),\n readString(metadataRecord, 'xHandle'),\n readString(metadataRecord, 'x'),\n profileSocials,\n ]\n .map(normalizeTwitterHandle)\n .find((handle): handle is string => handle !== null);\n if (genericHandle) {\n push(sources, `service:x.com:username:${genericHandle}`, 'x', 1);\n }\n }\n\n const addressCandidates = [\n metadataRecord.agentAddress,\n metadataRecord.ownerAddress,\n metadataRecord.payTo,\n metadataRecord.agentAddressCaip,\n metadataRecord.nativeId,\n metadataRecord.address,\n metadataRecord.evmAddress,\n metadataRecord.uid,\n ];\n for (const candidate of addressCandidates) {\n const address = extractAddress(candidate);\n if (!address) {\n continue;\n }\n const weightedRegistry =\n registry === 'virtuals-protocol' || registry === 'moltbook';\n const weight =\n weightedRegistry && sources.some(source => source.kind === 'x') ? 0.3 : 1;\n push(sources, `address:${address}`, 'address', weight);\n break;\n }\n\n return sources;\n}\n\nconst pickPrimaryUserkey = (\n sources: readonly Hcs25EthosSource[],\n): string | null =>\n sources.find(source => source.kind === 'address')?.userkey ??\n sources[0]?.userkey ??\n null;\n\nfunction readStoredSources(subject: Hcs25Subject): Hcs25EthosSource[] {\n const raw = subject.metadata?.ethosSources;\n if (!Array.isArray(raw)) {\n return [];\n }\n const out: Hcs25EthosSource[] = [];\n for (const entry of raw) {\n if (!isJsonObject(entry)) {\n continue;\n }\n const record = entry as Record<string, Hcs25JsonValue>;\n const userkey = readString(record, 'userkey');\n if (!userkey) {\n continue;\n }\n const rawKind = readString(record, 'kind');\n const rawStatus = readString(record, 'status');\n const score = record.score;\n out.push({\n userkey,\n kind:\n rawKind === 'x' || rawKind === 'address' || rawKind === 'explicit'\n ? rawKind\n : userkeyKind(userkey),\n weight:\n typeof record.weight === 'number' && Number.isFinite(record.weight)\n ? Math.max(0, record.weight)\n : 1,\n status:\n rawStatus === 'ok' || rawStatus === 'error' ? rawStatus : 'missing',\n score: typeof score === 'number' && Number.isFinite(score) ? score : null,\n updatedAt: readString(record, 'updatedAt') ?? new Date(0).toISOString(),\n });\n }\n return out;\n}\n\n/**\n * Creates the `ethos` signal adapter: resolves the subject's Ethos userkeys\n * per the production derivation rules, fetches each source's score from the\n * Ethos v1 score endpoint (`{ok, data:{score}}` envelope), merges with the\n * stored `ethosSources` per-source freshness (TTL/failure-TTL gating), and\n * writes the `ethosUserkey`/`ethosScore`/`ethosScoreStatus`/`ethosSources`/\n * `ethosComposite` stored fields per the signal catalog.\n */\nexport function createEthosSignalAdapter(\n options: Hcs25EthosSignalAdapterOptions = {},\n): Hcs25SignalAdapter {\n const baseUrl = stripTrailingSlashes(options.baseUrl ?? ETHOS_API_BASE_URL);\n const resolveSources = options.sources ?? deriveEthosSources;\n const ttlMs = options.ttlMs ?? 12 * 60 * 60 * 1000;\n const failureTtlMs = options.failureTtlMs ?? 6 * 60 * 60 * 1000;\n const maxRetries = options.maxRetries ?? 2;\n const inferAddress = options.inferAddress ?? true;\n const clientId = options.client ?? DEFAULT_CLIENT_ID;\n\n const collect = async (\n subject: Hcs25Subject,\n context: Hcs25CollectContext,\n ): Promise<Hcs25SignalAdapterResult[]> => {\n const now = context.now.toISOString();\n\n const resolved = ((): Hcs25EthosSource[] => {\n const sources = resolveSources(subject);\n return inferAddress\n ? [...sources]\n : sources.filter(source => source.kind !== 'address');\n })();\n\n if (resolved.length === 0) {\n return [\n {\n signalId: 'ethos.score',\n status: 'missing',\n fields: [\n {\n scope: 'root',\n values: {\n ethosScore: null,\n ethosScoreStatus: 'missing',\n ethosScoreUpdatedAt: now,\n ethosSources: [],\n },\n },\n ],\n },\n ];\n }\n\n // Merge with stored sources: keep prior scores/statuses so a transient\n // failure does not erase data, and so TTL gating can skip fresh sources.\n const storedByUserkey = new Map(\n readStoredSources(subject).map(source => [source.userkey, source]),\n );\n const merged: Hcs25EthosSource[] = resolved.map(source => {\n const stored = storedByUserkey.get(source.userkey);\n return {\n ...source,\n status: stored?.status ?? source.status ?? 'missing',\n score: stored?.score ?? source.score ?? null,\n updatedAt: stored?.updatedAt ?? source.updatedAt,\n };\n });\n\n const toRefresh = merged.filter(source => {\n if (context.force) {\n return true;\n }\n const updatedMs = parseTimestampMs(source.updatedAt);\n if (updatedMs === null || updatedMs <= 0) {\n return true;\n }\n const ttl = source.status === 'ok' ? ttlMs : failureTtlMs;\n return context.now.getTime() - updatedMs >= ttl;\n });\n\n const headers: Record<string, string> = { 'X-Ethos-Client': clientId };\n let sawError = false;\n let sawTimeout = false;\n\n await Promise.all(\n toRefresh.map(async source => {\n const url = `${baseUrl}/api/v1/score/${encodeURIComponent(source.userkey)}`;\n try {\n const data = await requestJson<EthosScoreResponse>(url, {\n fetch: context.fetch,\n headers,\n timeoutMs: context.timeoutMs,\n signal: context.signal,\n maxRetries,\n });\n // Production envelope `{ok, data:{score}}`; tolerate a flat\n // `{score}` payload for v2-shaped endpoints.\n const score =\n typeof data?.data?.score === 'number' &&\n Number.isFinite(data.data.score)\n ? data.data.score\n : typeof data?.score === 'number' && Number.isFinite(data.score)\n ? data.score\n : null;\n source.updatedAt = now;\n if (data?.ok === false || score === null) {\n source.status = 'missing';\n source.score = null;\n } else {\n source.status = 'ok';\n source.score = score;\n }\n } catch (error) {\n source.updatedAt = now;\n if (error instanceof Hcs25CollectorHttpError) {\n if (error.status === 404) {\n source.status = 'missing';\n source.score = null;\n } else {\n source.status = 'error';\n // Preserve a previously stored score on transient failure.\n source.score = source.score ?? null;\n sawError = true;\n }\n } else if (isTimeoutError(error)) {\n source.status = 'error';\n sawTimeout = true;\n sawError = true;\n } else {\n source.status = 'error';\n sawError = true;\n }\n }\n }),\n );\n\n const scoredSources = merged.filter(\n source =>\n typeof source.score === 'number' && Number.isFinite(source.score),\n );\n const weightSum = scoredSources.reduce(\n (sum, source) => sum + Math.max(0, source.weight),\n 0,\n );\n const composite =\n weightSum > 0\n ? Math.round(\n (scoredSources.reduce(\n (sum, source) => sum + source.weight * (source.score ?? 0),\n 0,\n ) /\n weightSum) *\n 100,\n ) / 100\n : null;\n\n const compositeStatus: EthosStoredStatus = merged.some(\n source => source.status === 'ok',\n )\n ? 'ok'\n : merged.some(source => source.status === 'error')\n ? 'error'\n : 'missing';\n\n // Composite weights are keyed by source kind (x/address/explicit).\n const weights: Record<string, number> = {};\n for (const source of merged) {\n weights[source.kind] =\n Math.round(((weights[source.kind] ?? 0) + source.weight) * 100) / 100;\n }\n\n const signalStatus =\n compositeStatus === 'ok'\n ? 'ok'\n : sawTimeout\n ? 'timeout'\n : compositeStatus === 'error'\n ? 'error'\n : 'missing';\n\n return [\n {\n signalId: 'ethos.score',\n status: signalStatus,\n value: composite,\n fields: [\n {\n scope: 'root',\n values: {\n ethosUserkey: pickPrimaryUserkey(merged),\n ethosScore: composite,\n ethosScoreStatus: compositeStatus,\n ethosScoreUpdatedAt: now,\n ethosSources: merged.map(source => ({\n userkey: source.userkey,\n kind: source.kind,\n weight: source.weight,\n status: source.status ?? 'missing',\n score: source.score ?? null,\n updatedAt: source.updatedAt ?? now,\n })),\n ethosComposite: {\n version: 1,\n score: composite,\n updatedAt: now,\n weights,\n },\n },\n },\n ],\n provenance: {\n source: 'ethos',\n sourceUrl: `${baseUrl}/api/v1/score`,\n subjectId: subject.id,\n fetchedAt: now,\n params: { userkeys: merged.map(source => source.userkey) },\n },\n },\n ];\n };\n\n return {\n id: 'ethos',\n produces: ['ethos.score'],\n timeoutMs: options.timeoutMs,\n includeRegistries: options.includeRegistries,\n excludeRegistries: options.excludeRegistries ?? DEFAULT_EXCLUDED_REGISTRIES,\n appliesTo: options.appliesTo ?? (subject => !isEthosExcluded(subject)),\n collect,\n };\n}\n"],"names":[],"mappings":"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"}