@hashgraphonline/standards-sdk 0.1.189 → 0.1.190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -1
  2. package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -1
  3. package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -1
  4. package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -1
  5. package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -1
  6. package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  7. package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -1
  8. package/dist/browser/hcs-25/collectors/acp.d.ts +42 -0
  9. package/dist/browser/hcs-25/collectors/acp.d.ts.map +1 -0
  10. package/dist/browser/hcs-25/collectors/agentverse.d.ts +37 -0
  11. package/dist/browser/hcs-25/collectors/agentverse.d.ts.map +1 -0
  12. package/dist/browser/hcs-25/collectors/availability.d.ts +29 -0
  13. package/dist/browser/hcs-25/collectors/availability.d.ts.map +1 -0
  14. package/dist/browser/hcs-25/collectors/catalog.d.ts +57 -0
  15. package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -0
  16. package/dist/browser/hcs-25/collectors/connectivity.d.ts +49 -0
  17. package/dist/browser/hcs-25/collectors/connectivity.d.ts.map +1 -0
  18. package/dist/browser/hcs-25/collectors/endpoints.d.ts +9 -0
  19. package/dist/browser/hcs-25/collectors/endpoints.d.ts.map +1 -0
  20. package/dist/browser/hcs-25/collectors/erc8004.d.ts +104 -0
  21. package/dist/browser/hcs-25/collectors/erc8004.d.ts.map +1 -0
  22. package/dist/browser/hcs-25/collectors/ethos.d.ts +95 -0
  23. package/dist/browser/hcs-25/collectors/ethos.d.ts.map +1 -0
  24. package/dist/browser/hcs-25/collectors/freshness.d.ts +36 -0
  25. package/dist/browser/hcs-25/collectors/freshness.d.ts.map +1 -0
  26. package/dist/browser/hcs-25/collectors/http.d.ts +67 -0
  27. package/dist/browser/hcs-25/collectors/http.d.ts.map +1 -0
  28. package/dist/browser/hcs-25/collectors/index.d.ts +21 -0
  29. package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -0
  30. package/dist/browser/hcs-25/collectors/merge.d.ts +11 -0
  31. package/dist/browser/hcs-25/collectors/merge.d.ts.map +1 -0
  32. package/dist/browser/hcs-25/collectors/model-evals.d.ts +315 -0
  33. package/dist/browser/hcs-25/collectors/model-evals.d.ts.map +1 -0
  34. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts +51 -0
  35. package/dist/browser/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  36. package/dist/browser/hcs-25/collectors/output-verification.d.ts +37 -0
  37. package/dist/browser/hcs-25/collectors/output-verification.d.ts.map +1 -0
  38. package/dist/browser/hcs-25/collectors/pipeline.d.ts +19 -0
  39. package/dist/browser/hcs-25/collectors/pipeline.d.ts.map +1 -0
  40. package/dist/browser/hcs-25/collectors/runner.d.ts +20 -0
  41. package/dist/browser/hcs-25/collectors/runner.d.ts.map +1 -0
  42. package/dist/browser/hcs-25/collectors/simple-evals.d.ts +91 -0
  43. package/dist/browser/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  44. package/dist/browser/hcs-25/collectors/types.d.ts +113 -0
  45. package/dist/browser/hcs-25/collectors/types.d.ts.map +1 -0
  46. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts +105 -0
  47. package/dist/browser/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  48. package/dist/browser/hcs-25/collectors/x402.d.ts +48 -0
  49. package/dist/browser/hcs-25/collectors/x402.d.ts.map +1 -0
  50. package/dist/browser/hcs-25/index.d.ts +1 -0
  51. package/dist/browser/hcs-25/index.d.ts.map +1 -1
  52. package/dist/browser/hcs-25/signals/marketplace.d.ts +6 -6
  53. package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -1
  54. package/dist/browser/hcs-25/signals/model-evals.d.ts +12 -12
  55. package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -1
  56. package/dist/browser/hcs-25/signals/operational.d.ts +15 -12
  57. package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -1
  58. package/dist/browser/hcs-25/signals/simple-evals.d.ts +1 -1
  59. package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -1
  60. package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -1
  61. package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -1
  62. package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -1
  63. package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -1
  64. package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -1
  65. package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  66. package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -1
  67. package/dist/browser-root/hcs-25/collectors/acp.d.ts +42 -0
  68. package/dist/browser-root/hcs-25/collectors/acp.d.ts.map +1 -0
  69. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts +37 -0
  70. package/dist/browser-root/hcs-25/collectors/agentverse.d.ts.map +1 -0
  71. package/dist/browser-root/hcs-25/collectors/availability.d.ts +29 -0
  72. package/dist/browser-root/hcs-25/collectors/availability.d.ts.map +1 -0
  73. package/dist/browser-root/hcs-25/collectors/catalog.d.ts +57 -0
  74. package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -0
  75. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts +49 -0
  76. package/dist/browser-root/hcs-25/collectors/connectivity.d.ts.map +1 -0
  77. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts +9 -0
  78. package/dist/browser-root/hcs-25/collectors/endpoints.d.ts.map +1 -0
  79. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts +104 -0
  80. package/dist/browser-root/hcs-25/collectors/erc8004.d.ts.map +1 -0
  81. package/dist/browser-root/hcs-25/collectors/ethos.d.ts +95 -0
  82. package/dist/browser-root/hcs-25/collectors/ethos.d.ts.map +1 -0
  83. package/dist/browser-root/hcs-25/collectors/freshness.d.ts +36 -0
  84. package/dist/browser-root/hcs-25/collectors/freshness.d.ts.map +1 -0
  85. package/dist/browser-root/hcs-25/collectors/http.d.ts +67 -0
  86. package/dist/browser-root/hcs-25/collectors/http.d.ts.map +1 -0
  87. package/dist/browser-root/hcs-25/collectors/index.d.ts +21 -0
  88. package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -0
  89. package/dist/browser-root/hcs-25/collectors/merge.d.ts +11 -0
  90. package/dist/browser-root/hcs-25/collectors/merge.d.ts.map +1 -0
  91. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts +315 -0
  92. package/dist/browser-root/hcs-25/collectors/model-evals.d.ts.map +1 -0
  93. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts +51 -0
  94. package/dist/browser-root/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  95. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts +37 -0
  96. package/dist/browser-root/hcs-25/collectors/output-verification.d.ts.map +1 -0
  97. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts +19 -0
  98. package/dist/browser-root/hcs-25/collectors/pipeline.d.ts.map +1 -0
  99. package/dist/browser-root/hcs-25/collectors/runner.d.ts +20 -0
  100. package/dist/browser-root/hcs-25/collectors/runner.d.ts.map +1 -0
  101. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts +91 -0
  102. package/dist/browser-root/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  103. package/dist/browser-root/hcs-25/collectors/types.d.ts +113 -0
  104. package/dist/browser-root/hcs-25/collectors/types.d.ts.map +1 -0
  105. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts +105 -0
  106. package/dist/browser-root/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  107. package/dist/browser-root/hcs-25/collectors/x402.d.ts +48 -0
  108. package/dist/browser-root/hcs-25/collectors/x402.d.ts.map +1 -0
  109. package/dist/browser-root/hcs-25/index.d.ts +1 -0
  110. package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
  111. package/dist/browser-root/hcs-25/signals/marketplace.d.ts +6 -6
  112. package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -1
  113. package/dist/browser-root/hcs-25/signals/model-evals.d.ts +12 -12
  114. package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -1
  115. package/dist/browser-root/hcs-25/signals/operational.d.ts +15 -12
  116. package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -1
  117. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +1 -1
  118. package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -1
  119. package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -1
  120. package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -1
  121. package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -1
  122. package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -1
  123. package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -1
  124. package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  125. package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -1
  126. package/dist/cjs/hcs-25/collectors/acp.d.ts +42 -0
  127. package/dist/cjs/hcs-25/collectors/acp.d.ts.map +1 -0
  128. package/dist/cjs/hcs-25/collectors/agentverse.d.ts +37 -0
  129. package/dist/cjs/hcs-25/collectors/agentverse.d.ts.map +1 -0
  130. package/dist/cjs/hcs-25/collectors/availability.d.ts +29 -0
  131. package/dist/cjs/hcs-25/collectors/availability.d.ts.map +1 -0
  132. package/dist/cjs/hcs-25/collectors/catalog.d.ts +57 -0
  133. package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -0
  134. package/dist/cjs/hcs-25/collectors/connectivity.d.ts +49 -0
  135. package/dist/cjs/hcs-25/collectors/connectivity.d.ts.map +1 -0
  136. package/dist/cjs/hcs-25/collectors/endpoints.d.ts +9 -0
  137. package/dist/cjs/hcs-25/collectors/endpoints.d.ts.map +1 -0
  138. package/dist/cjs/hcs-25/collectors/erc8004.d.ts +104 -0
  139. package/dist/cjs/hcs-25/collectors/erc8004.d.ts.map +1 -0
  140. package/dist/cjs/hcs-25/collectors/ethos.d.ts +95 -0
  141. package/dist/cjs/hcs-25/collectors/ethos.d.ts.map +1 -0
  142. package/dist/cjs/hcs-25/collectors/freshness.d.ts +36 -0
  143. package/dist/cjs/hcs-25/collectors/freshness.d.ts.map +1 -0
  144. package/dist/cjs/hcs-25/collectors/http.d.ts +67 -0
  145. package/dist/cjs/hcs-25/collectors/http.d.ts.map +1 -0
  146. package/dist/cjs/hcs-25/collectors/index.d.ts +21 -0
  147. package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -0
  148. package/dist/cjs/hcs-25/collectors/merge.d.ts +11 -0
  149. package/dist/cjs/hcs-25/collectors/merge.d.ts.map +1 -0
  150. package/dist/cjs/hcs-25/collectors/model-evals.d.ts +315 -0
  151. package/dist/cjs/hcs-25/collectors/model-evals.d.ts.map +1 -0
  152. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts +51 -0
  153. package/dist/cjs/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  154. package/dist/cjs/hcs-25/collectors/output-verification.d.ts +37 -0
  155. package/dist/cjs/hcs-25/collectors/output-verification.d.ts.map +1 -0
  156. package/dist/cjs/hcs-25/collectors/pipeline.d.ts +19 -0
  157. package/dist/cjs/hcs-25/collectors/pipeline.d.ts.map +1 -0
  158. package/dist/cjs/hcs-25/collectors/runner.d.ts +20 -0
  159. package/dist/cjs/hcs-25/collectors/runner.d.ts.map +1 -0
  160. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts +91 -0
  161. package/dist/cjs/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  162. package/dist/cjs/hcs-25/collectors/types.d.ts +113 -0
  163. package/dist/cjs/hcs-25/collectors/types.d.ts.map +1 -0
  164. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts +105 -0
  165. package/dist/cjs/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  166. package/dist/cjs/hcs-25/collectors/x402.d.ts +48 -0
  167. package/dist/cjs/hcs-25/collectors/x402.d.ts.map +1 -0
  168. package/dist/cjs/hcs-25/index.d.ts +1 -0
  169. package/dist/cjs/hcs-25/index.d.ts.map +1 -1
  170. package/dist/cjs/hcs-25/signals/marketplace.d.ts +6 -6
  171. package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -1
  172. package/dist/cjs/hcs-25/signals/model-evals.d.ts +12 -12
  173. package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -1
  174. package/dist/cjs/hcs-25/signals/operational.d.ts +15 -12
  175. package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -1
  176. package/dist/cjs/hcs-25/signals/simple-evals.d.ts +1 -1
  177. package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -1
  178. package/dist/cjs/standards-sdk.cjs +2 -2
  179. package/dist/cjs/standards-sdk.cjs.map +1 -1
  180. package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -1
  181. package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -1
  182. package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -1
  183. package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -1
  184. package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -1
  185. package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -1
  186. package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -1
  187. package/dist/es/hcs-25/collectors/acp.d.ts +42 -0
  188. package/dist/es/hcs-25/collectors/acp.d.ts.map +1 -0
  189. package/dist/es/hcs-25/collectors/agentverse.d.ts +37 -0
  190. package/dist/es/hcs-25/collectors/agentverse.d.ts.map +1 -0
  191. package/dist/es/hcs-25/collectors/availability.d.ts +29 -0
  192. package/dist/es/hcs-25/collectors/availability.d.ts.map +1 -0
  193. package/dist/es/hcs-25/collectors/catalog.d.ts +57 -0
  194. package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -0
  195. package/dist/es/hcs-25/collectors/connectivity.d.ts +49 -0
  196. package/dist/es/hcs-25/collectors/connectivity.d.ts.map +1 -0
  197. package/dist/es/hcs-25/collectors/endpoints.d.ts +9 -0
  198. package/dist/es/hcs-25/collectors/endpoints.d.ts.map +1 -0
  199. package/dist/es/hcs-25/collectors/erc8004.d.ts +104 -0
  200. package/dist/es/hcs-25/collectors/erc8004.d.ts.map +1 -0
  201. package/dist/es/hcs-25/collectors/ethos.d.ts +95 -0
  202. package/dist/es/hcs-25/collectors/ethos.d.ts.map +1 -0
  203. package/dist/es/hcs-25/collectors/freshness.d.ts +36 -0
  204. package/dist/es/hcs-25/collectors/freshness.d.ts.map +1 -0
  205. package/dist/es/hcs-25/collectors/http.d.ts +67 -0
  206. package/dist/es/hcs-25/collectors/http.d.ts.map +1 -0
  207. package/dist/es/hcs-25/collectors/index.d.ts +21 -0
  208. package/dist/es/hcs-25/collectors/index.d.ts.map +1 -0
  209. package/dist/es/hcs-25/collectors/merge.d.ts +11 -0
  210. package/dist/es/hcs-25/collectors/merge.d.ts.map +1 -0
  211. package/dist/es/hcs-25/collectors/model-evals.d.ts +315 -0
  212. package/dist/es/hcs-25/collectors/model-evals.d.ts.map +1 -0
  213. package/dist/es/hcs-25/collectors/oss-popularity.d.ts +51 -0
  214. package/dist/es/hcs-25/collectors/oss-popularity.d.ts.map +1 -0
  215. package/dist/es/hcs-25/collectors/output-verification.d.ts +37 -0
  216. package/dist/es/hcs-25/collectors/output-verification.d.ts.map +1 -0
  217. package/dist/es/hcs-25/collectors/pipeline.d.ts +19 -0
  218. package/dist/es/hcs-25/collectors/pipeline.d.ts.map +1 -0
  219. package/dist/es/hcs-25/collectors/runner.d.ts +20 -0
  220. package/dist/es/hcs-25/collectors/runner.d.ts.map +1 -0
  221. package/dist/es/hcs-25/collectors/simple-evals.d.ts +91 -0
  222. package/dist/es/hcs-25/collectors/simple-evals.d.ts.map +1 -0
  223. package/dist/es/hcs-25/collectors/types.d.ts +113 -0
  224. package/dist/es/hcs-25/collectors/types.d.ts.map +1 -0
  225. package/dist/es/hcs-25/collectors/x402-onchain.d.ts +105 -0
  226. package/dist/es/hcs-25/collectors/x402-onchain.d.ts.map +1 -0
  227. package/dist/es/hcs-25/collectors/x402.d.ts +48 -0
  228. package/dist/es/hcs-25/collectors/x402.d.ts.map +1 -0
  229. package/dist/es/hcs-25/index.d.ts +1 -0
  230. package/dist/es/hcs-25/index.d.ts.map +1 -1
  231. package/dist/es/hcs-25/signals/marketplace.d.ts +6 -6
  232. package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -1
  233. package/dist/es/hcs-25/signals/model-evals.d.ts +12 -12
  234. package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -1
  235. package/dist/es/hcs-25/signals/operational.d.ts +15 -12
  236. package/dist/es/hcs-25/signals/operational.d.ts.map +1 -1
  237. package/dist/es/hcs-25/signals/simple-evals.d.ts +1 -1
  238. package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -1
  239. package/dist/es/standards-sdk.es.js +137 -58
  240. package/dist/es/standards-sdk.es.js.map +1 -1
  241. package/dist/es/standards-sdk.es101.js +2 -2
  242. package/dist/es/standards-sdk.es103.js +2 -2
  243. package/dist/es/standards-sdk.es104.js +1 -1
  244. package/dist/es/standards-sdk.es106.js +1 -1
  245. package/dist/es/standards-sdk.es108.js +2 -2
  246. package/dist/es/standards-sdk.es11.js +1 -1
  247. package/dist/es/standards-sdk.es110.js +1 -1
  248. package/dist/es/standards-sdk.es111.js +2 -2
  249. package/dist/es/standards-sdk.es115.js +3 -3
  250. package/dist/es/standards-sdk.es116.js +4 -4
  251. package/dist/es/standards-sdk.es12.js +1 -1
  252. package/dist/es/standards-sdk.es120.js +4 -4
  253. package/dist/es/standards-sdk.es121.js +11 -11
  254. package/dist/es/standards-sdk.es122.js +176 -240
  255. package/dist/es/standards-sdk.es122.js.map +1 -1
  256. package/dist/es/standards-sdk.es123.js +41 -468
  257. package/dist/es/standards-sdk.es123.js.map +1 -1
  258. package/dist/es/standards-sdk.es124.js +28 -103
  259. package/dist/es/standards-sdk.es124.js.map +1 -1
  260. package/dist/es/standards-sdk.es125.js +185 -145
  261. package/dist/es/standards-sdk.es125.js.map +1 -1
  262. package/dist/es/standards-sdk.es126.js +13 -33
  263. package/dist/es/standards-sdk.es126.js.map +1 -1
  264. package/dist/es/standards-sdk.es127.js +44 -10
  265. package/dist/es/standards-sdk.es127.js.map +1 -1
  266. package/dist/es/standards-sdk.es128.js +150 -172
  267. package/dist/es/standards-sdk.es128.js.map +1 -1
  268. package/dist/es/standards-sdk.es129.js +166 -26
  269. package/dist/es/standards-sdk.es129.js.map +1 -1
  270. package/dist/es/standards-sdk.es13.js +1 -1
  271. package/dist/es/standards-sdk.es130.js +375 -18
  272. package/dist/es/standards-sdk.es130.js.map +1 -1
  273. package/dist/es/standards-sdk.es131.js +371 -139
  274. package/dist/es/standards-sdk.es131.js.map +1 -1
  275. package/dist/es/standards-sdk.es132.js +211 -180
  276. package/dist/es/standards-sdk.es132.js.map +1 -1
  277. package/dist/es/standards-sdk.es133.js +210 -770
  278. package/dist/es/standards-sdk.es133.js.map +1 -1
  279. package/dist/es/standards-sdk.es134.js +376 -10
  280. package/dist/es/standards-sdk.es134.js.map +1 -1
  281. package/dist/es/standards-sdk.es135.js +118 -564
  282. package/dist/es/standards-sdk.es135.js.map +1 -1
  283. package/dist/es/standards-sdk.es136.js +233 -608
  284. package/dist/es/standards-sdk.es136.js.map +1 -1
  285. package/dist/es/standards-sdk.es137.js +1328 -12
  286. package/dist/es/standards-sdk.es137.js.map +1 -1
  287. package/dist/es/standards-sdk.es138.js +133 -2
  288. package/dist/es/standards-sdk.es138.js.map +1 -1
  289. package/dist/es/standards-sdk.es139.js +258 -74
  290. package/dist/es/standards-sdk.es139.js.map +1 -1
  291. package/dist/es/standards-sdk.es14.js +1 -1
  292. package/dist/es/standards-sdk.es140.js +104 -38
  293. package/dist/es/standards-sdk.es140.js.map +1 -1
  294. package/dist/es/standards-sdk.es141.js +252 -2
  295. package/dist/es/standards-sdk.es141.js.map +1 -1
  296. package/dist/es/standards-sdk.es142.js +446 -203
  297. package/dist/es/standards-sdk.es142.js.map +1 -1
  298. package/dist/es/standards-sdk.es143.js +104 -1139
  299. package/dist/es/standards-sdk.es143.js.map +1 -1
  300. package/dist/es/standards-sdk.es144.js +144 -290
  301. package/dist/es/standards-sdk.es144.js.map +1 -1
  302. package/dist/es/standards-sdk.es145.js +31 -419
  303. package/dist/es/standards-sdk.es145.js.map +1 -1
  304. package/dist/es/standards-sdk.es146.js +10 -353
  305. package/dist/es/standards-sdk.es146.js.map +1 -1
  306. package/dist/es/standards-sdk.es147.js +144 -1084
  307. package/dist/es/standards-sdk.es147.js.map +1 -1
  308. package/dist/es/standards-sdk.es148.js +25 -204
  309. package/dist/es/standards-sdk.es148.js.map +1 -1
  310. package/dist/es/standards-sdk.es149.js +17 -1562
  311. package/dist/es/standards-sdk.es149.js.map +1 -1
  312. package/dist/es/standards-sdk.es15.js +1 -1
  313. package/dist/es/standards-sdk.es150.js +128 -1134
  314. package/dist/es/standards-sdk.es150.js.map +1 -1
  315. package/dist/es/standards-sdk.es151.js +199 -14
  316. package/dist/es/standards-sdk.es151.js.map +1 -1
  317. package/dist/es/standards-sdk.es152.js +773 -434
  318. package/dist/es/standards-sdk.es152.js.map +1 -1
  319. package/dist/es/standards-sdk.es153.js +10 -256
  320. package/dist/es/standards-sdk.es153.js.map +1 -1
  321. package/dist/es/standards-sdk.es154.js +567 -4
  322. package/dist/es/standards-sdk.es154.js.map +1 -1
  323. package/dist/es/standards-sdk.es155.js +619 -74
  324. package/dist/es/standards-sdk.es155.js.map +1 -1
  325. package/dist/es/standards-sdk.es156.js +12 -86
  326. package/dist/es/standards-sdk.es156.js.map +1 -1
  327. package/dist/es/standards-sdk.es157.js +2 -60
  328. package/dist/es/standards-sdk.es157.js.map +1 -1
  329. package/dist/es/standards-sdk.es158.js +87 -2547
  330. package/dist/es/standards-sdk.es158.js.map +1 -1
  331. package/dist/es/standards-sdk.es159.js +36 -155
  332. package/dist/es/standards-sdk.es159.js.map +1 -1
  333. package/dist/es/standards-sdk.es16.js +6 -6
  334. package/dist/es/standards-sdk.es160.js +2 -7
  335. package/dist/es/standards-sdk.es160.js.map +1 -1
  336. package/dist/es/standards-sdk.es161.js +223 -74
  337. package/dist/es/standards-sdk.es161.js.map +1 -1
  338. package/dist/es/standards-sdk.es162.js +1122 -47
  339. package/dist/es/standards-sdk.es162.js.map +1 -1
  340. package/dist/es/standards-sdk.es163.js +299 -187
  341. package/dist/es/standards-sdk.es163.js.map +1 -1
  342. package/dist/es/standards-sdk.es164.js +419 -23
  343. package/dist/es/standards-sdk.es164.js.map +1 -1
  344. package/dist/es/standards-sdk.es165.js +352 -55
  345. package/dist/es/standards-sdk.es165.js.map +1 -1
  346. package/dist/es/standards-sdk.es166.js +1113 -86
  347. package/dist/es/standards-sdk.es166.js.map +1 -1
  348. package/dist/es/standards-sdk.es167.js +200 -41
  349. package/dist/es/standards-sdk.es167.js.map +1 -1
  350. package/dist/es/standards-sdk.es168.js +1551 -188
  351. package/dist/es/standards-sdk.es168.js.map +1 -1
  352. package/dist/es/standards-sdk.es169.js +1161 -51
  353. package/dist/es/standards-sdk.es169.js.map +1 -1
  354. package/dist/es/standards-sdk.es170.js +15 -47
  355. package/dist/es/standards-sdk.es170.js.map +1 -1
  356. package/dist/es/standards-sdk.es171.js +445 -50
  357. package/dist/es/standards-sdk.es171.js.map +1 -1
  358. package/dist/es/standards-sdk.es172.js +255 -45
  359. package/dist/es/standards-sdk.es172.js.map +1 -1
  360. package/dist/es/standards-sdk.es173.js +4 -122
  361. package/dist/es/standards-sdk.es173.js.map +1 -1
  362. package/dist/es/standards-sdk.es174.js +77 -50
  363. package/dist/es/standards-sdk.es174.js.map +1 -1
  364. package/dist/es/standards-sdk.es175.js +85 -42
  365. package/dist/es/standards-sdk.es175.js.map +1 -1
  366. package/dist/es/standards-sdk.es176.js +60 -72
  367. package/dist/es/standards-sdk.es176.js.map +1 -1
  368. package/dist/es/standards-sdk.es177.js +2544 -65
  369. package/dist/es/standards-sdk.es177.js.map +1 -1
  370. package/dist/es/standards-sdk.es178.js +159 -44
  371. package/dist/es/standards-sdk.es178.js.map +1 -1
  372. package/dist/es/standards-sdk.es179.js +7 -36
  373. package/dist/es/standards-sdk.es179.js.map +1 -1
  374. package/dist/es/standards-sdk.es18.js +13 -13
  375. package/dist/es/standards-sdk.es180.js +86 -30
  376. package/dist/es/standards-sdk.es180.js.map +1 -1
  377. package/dist/es/standards-sdk.es181.js +65 -34
  378. package/dist/es/standards-sdk.es181.js.map +1 -1
  379. package/dist/es/standards-sdk.es182.js +196 -48
  380. package/dist/es/standards-sdk.es182.js.map +1 -1
  381. package/dist/es/standards-sdk.es183.js +23 -135
  382. package/dist/es/standards-sdk.es183.js.map +1 -1
  383. package/dist/es/standards-sdk.es184.js +54 -38
  384. package/dist/es/standards-sdk.es184.js.map +1 -1
  385. package/dist/es/standards-sdk.es185.js +102 -12470
  386. package/dist/es/standards-sdk.es185.js.map +1 -1
  387. package/dist/es/standards-sdk.es186.js +53 -52
  388. package/dist/es/standards-sdk.es186.js.map +1 -1
  389. package/dist/es/standards-sdk.es187.js +223 -103
  390. package/dist/es/standards-sdk.es187.js.map +1 -1
  391. package/dist/es/standards-sdk.es188.js +66 -75
  392. package/dist/es/standards-sdk.es188.js.map +1 -1
  393. package/dist/es/standards-sdk.es189.js +46 -197
  394. package/dist/es/standards-sdk.es189.js.map +1 -1
  395. package/dist/es/standards-sdk.es19.js +10 -10
  396. package/dist/es/standards-sdk.es190.js +58 -668
  397. package/dist/es/standards-sdk.es190.js.map +1 -1
  398. package/dist/es/standards-sdk.es191.js +45 -168
  399. package/dist/es/standards-sdk.es191.js.map +1 -1
  400. package/dist/es/standards-sdk.es192.js +115 -315
  401. package/dist/es/standards-sdk.es192.js.map +1 -1
  402. package/dist/es/standards-sdk.es193.js +51 -340
  403. package/dist/es/standards-sdk.es193.js.map +1 -1
  404. package/dist/es/standards-sdk.es194.js +54 -448
  405. package/dist/es/standards-sdk.es194.js.map +1 -1
  406. package/dist/es/standards-sdk.es195.js +72 -331
  407. package/dist/es/standards-sdk.es195.js.map +1 -1
  408. package/dist/es/standards-sdk.es196.js +75 -76
  409. package/dist/es/standards-sdk.es196.js.map +1 -1
  410. package/dist/es/standards-sdk.es197.js +44 -73
  411. package/dist/es/standards-sdk.es197.js.map +1 -1
  412. package/dist/es/standards-sdk.es198.js +34 -15
  413. package/dist/es/standards-sdk.es198.js.map +1 -1
  414. package/dist/es/standards-sdk.es199.js +30 -139
  415. package/dist/es/standards-sdk.es199.js.map +1 -1
  416. package/dist/es/standards-sdk.es2.js +2 -2
  417. package/dist/es/standards-sdk.es20.js +1 -1
  418. package/dist/es/standards-sdk.es200.js +34 -517
  419. package/dist/es/standards-sdk.es200.js.map +1 -1
  420. package/dist/es/standards-sdk.es201.js +48 -259
  421. package/dist/es/standards-sdk.es201.js.map +1 -1
  422. package/dist/es/standards-sdk.es202.js +127 -185
  423. package/dist/es/standards-sdk.es202.js.map +1 -1
  424. package/dist/es/standards-sdk.es203.js +36 -113
  425. package/dist/es/standards-sdk.es203.js.map +1 -1
  426. package/dist/es/standards-sdk.es204.js +12464 -134
  427. package/dist/es/standards-sdk.es204.js.map +1 -1
  428. package/dist/es/standards-sdk.es205.js +14 -181
  429. package/dist/es/standards-sdk.es205.js.map +1 -1
  430. package/dist/es/standards-sdk.es206.js +55 -683
  431. package/dist/es/standards-sdk.es206.js.map +1 -1
  432. package/dist/es/standards-sdk.es207.js +93 -167
  433. package/dist/es/standards-sdk.es207.js.map +1 -1
  434. package/dist/es/standards-sdk.es208.js +71 -225
  435. package/dist/es/standards-sdk.es208.js.map +1 -1
  436. package/dist/es/standards-sdk.es209.js +176 -215
  437. package/dist/es/standards-sdk.es209.js.map +1 -1
  438. package/dist/es/standards-sdk.es21.js +1 -1
  439. package/dist/es/standards-sdk.es210.js +675 -0
  440. package/dist/es/standards-sdk.es210.js.map +1 -0
  441. package/dist/es/standards-sdk.es211.js +76 -0
  442. package/dist/es/standards-sdk.es211.js.map +1 -0
  443. package/dist/es/standards-sdk.es212.js +175 -0
  444. package/dist/es/standards-sdk.es212.js.map +1 -0
  445. package/dist/es/standards-sdk.es213.js +325 -0
  446. package/dist/es/standards-sdk.es213.js.map +1 -0
  447. package/dist/es/standards-sdk.es214.js +349 -0
  448. package/dist/es/standards-sdk.es214.js.map +1 -0
  449. package/dist/es/standards-sdk.es215.js +456 -0
  450. package/dist/es/standards-sdk.es215.js.map +1 -0
  451. package/dist/es/standards-sdk.es216.js +334 -0
  452. package/dist/es/standards-sdk.es216.js.map +1 -0
  453. package/dist/es/standards-sdk.es217.js +79 -0
  454. package/dist/es/standards-sdk.es217.js.map +1 -0
  455. package/dist/es/standards-sdk.es218.js +142 -0
  456. package/dist/es/standards-sdk.es218.js.map +1 -0
  457. package/dist/es/standards-sdk.es219.js +520 -0
  458. package/dist/es/standards-sdk.es219.js.map +1 -0
  459. package/dist/es/standards-sdk.es22.js +1 -1
  460. package/dist/es/standards-sdk.es220.js +262 -0
  461. package/dist/es/standards-sdk.es220.js.map +1 -0
  462. package/dist/es/standards-sdk.es221.js +199 -0
  463. package/dist/es/standards-sdk.es221.js.map +1 -0
  464. package/dist/es/standards-sdk.es222.js +122 -0
  465. package/dist/es/standards-sdk.es222.js.map +1 -0
  466. package/dist/es/standards-sdk.es223.js +155 -0
  467. package/dist/es/standards-sdk.es223.js.map +1 -0
  468. package/dist/es/standards-sdk.es224.js +187 -0
  469. package/dist/es/standards-sdk.es224.js.map +1 -0
  470. package/dist/es/standards-sdk.es225.js +687 -0
  471. package/dist/es/standards-sdk.es225.js.map +1 -0
  472. package/dist/es/standards-sdk.es226.js +188 -0
  473. package/dist/es/standards-sdk.es226.js.map +1 -0
  474. package/dist/es/standards-sdk.es227.js +238 -0
  475. package/dist/es/standards-sdk.es227.js.map +1 -0
  476. package/dist/es/standards-sdk.es228.js +242 -0
  477. package/dist/es/standards-sdk.es228.js.map +1 -0
  478. package/dist/es/standards-sdk.es23.js +1 -1
  479. package/dist/es/standards-sdk.es24.js +1 -1
  480. package/dist/es/standards-sdk.es25.js +1 -1
  481. package/dist/es/standards-sdk.es26.js +1 -1
  482. package/dist/es/standards-sdk.es27.js +13 -13
  483. package/dist/es/standards-sdk.es30.js +2 -2
  484. package/dist/es/standards-sdk.es31.js +4 -4
  485. package/dist/es/standards-sdk.es32.js +1 -1
  486. package/dist/es/standards-sdk.es35.js +7 -7
  487. package/dist/es/standards-sdk.es36.js +4 -4
  488. package/dist/es/standards-sdk.es37.js +2 -2
  489. package/dist/es/standards-sdk.es38.js +2 -2
  490. package/dist/es/standards-sdk.es39.js +1 -1
  491. package/dist/es/standards-sdk.es4.js +2 -2
  492. package/dist/es/standards-sdk.es40.js +1 -1
  493. package/dist/es/standards-sdk.es41.js +2 -2
  494. package/dist/es/standards-sdk.es46.js +1 -1
  495. package/dist/es/standards-sdk.es5.js +2 -2
  496. package/dist/es/standards-sdk.es51.js +1 -1
  497. package/dist/es/standards-sdk.es53.js +1 -1
  498. package/dist/es/standards-sdk.es56.js +2 -2
  499. package/dist/es/standards-sdk.es59.js +1 -1
  500. package/dist/es/standards-sdk.es6.js +2 -2
  501. package/dist/es/standards-sdk.es60.js +1 -1
  502. package/dist/es/standards-sdk.es62.js +1 -1
  503. package/dist/es/standards-sdk.es63.js +2 -2
  504. package/dist/es/standards-sdk.es64.js +1 -1
  505. package/dist/es/standards-sdk.es65.js +1 -1
  506. package/dist/es/standards-sdk.es66.js +1 -1
  507. package/dist/es/standards-sdk.es67.js +8 -8
  508. package/dist/es/standards-sdk.es69.js +1 -1
  509. package/dist/es/standards-sdk.es7.js +1 -1
  510. package/dist/es/standards-sdk.es71.js +2 -2
  511. package/dist/es/standards-sdk.es72.js +3 -3
  512. package/dist/es/standards-sdk.es75.js +5 -5
  513. package/dist/es/standards-sdk.es76.js +3 -3
  514. package/dist/es/standards-sdk.es77.js +2 -2
  515. package/dist/es/standards-sdk.es78.js +1 -1
  516. package/dist/es/standards-sdk.es81.js +2 -2
  517. package/dist/es/standards-sdk.es83.js +2 -2
  518. package/dist/es/standards-sdk.es84.js +5 -5
  519. package/dist/es/standards-sdk.es85.js +1 -1
  520. package/dist/es/standards-sdk.es88.js +1 -1
  521. package/dist/es/standards-sdk.es89.js +2 -2
  522. package/dist/es/standards-sdk.es9.js +2 -2
  523. package/dist/es/standards-sdk.es90.js +4 -4
  524. package/dist/es/standards-sdk.es94.js +3 -3
  525. package/dist/es/standards-sdk.es96.js +2 -2
  526. package/dist/es/standards-sdk.es98.js +1 -1
  527. package/dist/es/standards-sdk.es99.js +3 -3
  528. package/package.json +1 -1
@@ -1,108 +1,33 @@
1
- import { z } from "zod";
2
- import { hcs26TopicTypeEnumSchema, HCS26_PROTOCOL, hcs26OperationEnumSchema } from "./standards-sdk.es122.js";
3
- const HCS26_DEFAULT_TTL_SECONDS = 86400;
4
- function toPositiveInt(value) {
5
- if (!Number.isFinite(value)) {
6
- throw new Error("Expected a finite number");
7
- }
8
- const intValue = Math.floor(value);
9
- if (intValue <= 0) {
10
- throw new Error("Expected a positive integer");
11
- }
12
- return intValue;
13
- }
14
- function buildHcs26TopicMemo(input) {
15
- const indexed = input.indexed ?? true;
16
- const ttlSeconds = toPositiveInt(
17
- input.ttlSeconds ?? HCS26_DEFAULT_TTL_SECONDS
18
- );
19
- const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);
20
- const indexedSegment = indexed ? "0" : "1";
21
- return `${HCS26_PROTOCOL}:${indexedSegment}:${ttlSeconds}:${topicType}`;
22
- }
23
- function parseHcs26TopicMemo(memoRaw) {
24
- const memo = memoRaw.trim();
25
- if (!memo) {
26
- return null;
27
- }
28
- const match = memo.match(/^hcs-26:(\d+):(\d+):(\d+)$/);
29
- if (!match) {
30
- return null;
31
- }
32
- const indexedSegment = Number(match[1]);
33
- const ttlSeconds = Number(match[2]);
34
- const topicType = Number(match[3]);
35
- if (![indexedSegment, ttlSeconds, topicType].every(Number.isFinite)) {
36
- return null;
37
- }
38
- const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);
39
- if (!parsedTopicType.success) {
40
- return null;
41
- }
42
- if (indexedSegment !== 0 && indexedSegment !== 1) {
43
- return null;
44
- }
45
- return {
46
- protocol: HCS26_PROTOCOL,
47
- indexed: indexedSegment === 0,
48
- ttlSeconds,
49
- topicType: parsedTopicType.data
1
+ import { isJsonObject } from "./standards-sdk.es198.js";
2
+ import "./standards-sdk.es182.js";
3
+ import "./standards-sdk.es195.js";
4
+ import "./standards-sdk.es196.js";
5
+ import "./standards-sdk.es197.js";
6
+ function applyCollectedFields(subject, fieldsList) {
7
+ if (fieldsList.length === 0) {
8
+ return subject;
9
+ }
10
+ const metadata = {
11
+ ...subject.metadata ?? {}
50
12
  };
13
+ for (const fields of fieldsList) {
14
+ if (fields.scope === "root") {
15
+ for (const [key, value] of Object.entries(fields.values)) {
16
+ metadata[key] = value;
17
+ }
18
+ continue;
19
+ }
20
+ const scopeKey = fields.scope;
21
+ const existing = metadata[scopeKey];
22
+ const record = isJsonObject(existing) ? { ...existing } : {};
23
+ for (const [key, value] of Object.entries(fields.values)) {
24
+ record[key] = value;
25
+ }
26
+ metadata[scopeKey] = record;
27
+ }
28
+ return { ...subject, metadata };
51
29
  }
52
- function buildHcs26TransactionMemo(input) {
53
- const operation = hcs26OperationEnumSchema.parse(input.operation);
54
- const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);
55
- return `${HCS26_PROTOCOL}:op:${operation}:${topicType}`;
56
- }
57
- function parseHcs26TransactionMemo(memoRaw) {
58
- const memo = memoRaw.trim();
59
- if (!memo) {
60
- return null;
61
- }
62
- const match = memo.match(/^hcs-26:op:(\d+):(\d+)$/);
63
- if (!match) {
64
- return null;
65
- }
66
- const operation = Number(match[1]);
67
- const topicType = Number(match[2]);
68
- if (![operation, topicType].every(Number.isFinite)) {
69
- return null;
70
- }
71
- const parsedOperation = hcs26OperationEnumSchema.safeParse(operation);
72
- if (!parsedOperation.success) {
73
- return null;
74
- }
75
- const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);
76
- if (!parsedTopicType.success) {
77
- return null;
78
- }
79
- return {
80
- protocol: HCS26_PROTOCOL,
81
- operation: parsedOperation.data,
82
- topicType: parsedTopicType.data
83
- };
84
- }
85
- const hcs26TopicMemoSchema = z.string().transform((value) => {
86
- const parsed = parseHcs26TopicMemo(value);
87
- if (!parsed) {
88
- throw new Error("Invalid HCS-26 topic memo");
89
- }
90
- return parsed;
91
- });
92
- const hcs26TransactionMemoSchema = z.string().transform((value) => {
93
- const parsed = parseHcs26TransactionMemo(value);
94
- if (!parsed) {
95
- throw new Error("Invalid HCS-26 transaction memo");
96
- }
97
- return parsed;
98
- });
99
30
  export {
100
- HCS26_DEFAULT_TTL_SECONDS,
101
- buildHcs26TopicMemo,
102
- buildHcs26TransactionMemo,
103
- hcs26TopicMemoSchema,
104
- hcs26TransactionMemoSchema,
105
- parseHcs26TopicMemo,
106
- parseHcs26TransactionMemo
31
+ applyCollectedFields
107
32
  };
108
33
  //# sourceMappingURL=standards-sdk.es124.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es124.js","sources":["../../src/hcs-26/memos.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n HCS26_PROTOCOL,\n hcs26OperationEnumSchema,\n hcs26TopicTypeEnumSchema,\n type Hcs26OperationEnum,\n type Hcs26TopicTypeEnum,\n} from './types';\n\nexport type Hcs26TopicMemo = {\n protocol: typeof HCS26_PROTOCOL;\n indexed: boolean;\n ttlSeconds: number;\n topicType: Hcs26TopicTypeEnum;\n};\n\nexport const HCS26_DEFAULT_TTL_SECONDS = 86400;\n\nfunction toPositiveInt(value: number): number {\n if (!Number.isFinite(value)) {\n throw new Error('Expected a finite number');\n }\n const intValue = Math.floor(value);\n if (intValue <= 0) {\n throw new Error('Expected a positive integer');\n }\n return intValue;\n}\n\nexport function buildHcs26TopicMemo(input: {\n indexed?: boolean;\n ttlSeconds?: number;\n topicType: Hcs26TopicTypeEnum;\n}): string {\n const indexed = input.indexed ?? true;\n const ttlSeconds = toPositiveInt(\n input.ttlSeconds ?? HCS26_DEFAULT_TTL_SECONDS,\n );\n const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);\n\n // HCS-2 memo convention: indexed topics use \"0\" in the second segment.\n const indexedSegment = indexed ? '0' : '1';\n return `${HCS26_PROTOCOL}:${indexedSegment}:${ttlSeconds}:${topicType}`;\n}\n\nexport function parseHcs26TopicMemo(memoRaw: string): Hcs26TopicMemo | null {\n const memo = memoRaw.trim();\n if (!memo) {\n return null;\n }\n\n const match = memo.match(/^hcs-26:(\\d+):(\\d+):(\\d+)$/);\n if (!match) {\n return null;\n }\n\n const indexedSegment = Number(match[1]);\n const ttlSeconds = Number(match[2]);\n const topicType = Number(match[3]);\n\n if (![indexedSegment, ttlSeconds, topicType].every(Number.isFinite)) {\n return null;\n }\n\n const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);\n if (!parsedTopicType.success) {\n return null;\n }\n\n if (indexedSegment !== 0 && indexedSegment !== 1) {\n return null;\n }\n\n return {\n protocol: HCS26_PROTOCOL,\n indexed: indexedSegment === 0,\n ttlSeconds,\n topicType: parsedTopicType.data,\n };\n}\n\nexport function buildHcs26TransactionMemo(input: {\n operation: Hcs26OperationEnum;\n topicType: Hcs26TopicTypeEnum;\n}): string {\n const operation = hcs26OperationEnumSchema.parse(input.operation);\n const topicType = hcs26TopicTypeEnumSchema.parse(input.topicType);\n return `${HCS26_PROTOCOL}:op:${operation}:${topicType}`;\n}\n\nexport type Hcs26TransactionMemo = {\n protocol: typeof HCS26_PROTOCOL;\n operation: Hcs26OperationEnum;\n topicType: Hcs26TopicTypeEnum;\n};\n\nexport function parseHcs26TransactionMemo(\n memoRaw: string,\n): Hcs26TransactionMemo | null {\n const memo = memoRaw.trim();\n if (!memo) {\n return null;\n }\n\n const match = memo.match(/^hcs-26:op:(\\d+):(\\d+)$/);\n if (!match) {\n return null;\n }\n\n const operation = Number(match[1]);\n const topicType = Number(match[2]);\n if (![operation, topicType].every(Number.isFinite)) {\n return null;\n }\n\n const parsedOperation = hcs26OperationEnumSchema.safeParse(operation);\n if (!parsedOperation.success) {\n return null;\n }\n const parsedTopicType = hcs26TopicTypeEnumSchema.safeParse(topicType);\n if (!parsedTopicType.success) {\n return null;\n }\n\n return {\n protocol: HCS26_PROTOCOL,\n operation: parsedOperation.data,\n topicType: parsedTopicType.data,\n };\n}\n\nexport const hcs26TopicMemoSchema = z.string().transform(value => {\n const parsed = parseHcs26TopicMemo(value);\n if (!parsed) {\n throw new Error('Invalid HCS-26 topic memo');\n }\n return parsed;\n});\n\nexport const hcs26TransactionMemoSchema = z.string().transform(value => {\n const parsed = parseHcs26TransactionMemo(value);\n if (!parsed) {\n throw new Error('Invalid HCS-26 transaction memo');\n }\n return parsed;\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es124.js","sources":["../../src/hcs-25/collectors/merge.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { isJsonObject } from '../signals';\nimport type { Hcs25CollectedFields } from './types';\n\n/**\n * Immutably merges collected fields into a subject's metadata, honoring the\n * storage scopes documented by the HCS-25 signal catalog: `root` writes\n * `metadata.<key>`, `metrics` writes `metadata.metrics.<key>`, `additional`\n * writes `metadata.additional.<key>`, and any other scope string merges into\n * the `metadata.<scope>` record (e.g. `outputVerificationSummary`).\n */\nexport function applyCollectedFields(\n subject: Hcs25Subject,\n fieldsList: readonly Hcs25CollectedFields[],\n): Hcs25Subject {\n if (fieldsList.length === 0) {\n return subject;\n }\n\n const metadata: Record<string, Hcs25JsonValue> = {\n ...(subject.metadata ?? {}),\n };\n\n for (const fields of fieldsList) {\n if (fields.scope === 'root') {\n for (const [key, value] of Object.entries(fields.values)) {\n metadata[key] = value;\n }\n continue;\n }\n\n const scopeKey = fields.scope;\n const existing = metadata[scopeKey];\n const record: Record<string, Hcs25JsonValue> = isJsonObject(existing)\n ? { ...existing }\n : {};\n for (const [key, value] of Object.entries(fields.values)) {\n record[key] = value;\n }\n metadata[scopeKey] = record;\n }\n\n return { ...subject, metadata };\n}\n"],"names":[],"mappings":";;;;;AAWO,SAAS,qBACd,SACA,YACc;AACd,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,QAAM,WAA2C;AAAA,IAC/C,GAAI,QAAQ,YAAY,CAAA;AAAA,EAAC;AAG3B,aAAW,UAAU,YAAY;AAC/B,QAAI,OAAO,UAAU,QAAQ;AAC3B,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;AACxD,iBAAS,GAAG,IAAI;AAAA,MAClB;AACA;AAAA,IACF;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,WAAW,SAAS,QAAQ;AAClC,UAAM,SAAyC,aAAa,QAAQ,IAChE,EAAE,GAAG,SAAA,IACL,CAAA;AACJ,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;AACxD,aAAO,GAAG,IAAI;AAAA,IAChB;AACA,aAAS,QAAQ,IAAI;AAAA,EACvB;AAEA,SAAO,EAAE,GAAG,SAAS,SAAA;AACvB;"}
@@ -1,163 +1,203 @@
1
- import { Logger } from "./standards-sdk.es128.js";
2
- import { Hcs26SkillRegistryResolver } from "./standards-sdk.es123.js";
3
- function getManifestTopicId(entry) {
4
- const topicIdCandidate = entry.t_id;
5
- if (typeof topicIdCandidate === "string" && topicIdCandidate.trim()) {
6
- return topicIdCandidate.trim();
7
- }
8
- const hrlCandidate = entry.manifest_hcs1;
9
- if (typeof hrlCandidate !== "string" || !hrlCandidate.trim()) {
10
- throw new Error("Missing manifest reference in version register entry");
11
- }
12
- const hrl = hrlCandidate.trim();
13
- const prefix = "hcs://1/";
14
- if (!hrl.startsWith(prefix)) {
15
- throw new Error(`Invalid manifest HRL: ${hrl}`);
16
- }
17
- return hrl.slice(prefix.length);
1
+ import { isValidSignalId, isValidAdapterId } from "./standards-sdk.es117.js";
2
+ import { applyCollectedFields } from "./standards-sdk.es124.js";
3
+ import { resolveFetch, Hcs25CollectorTimeoutError, isTimeoutError } from "./standards-sdk.es122.js";
4
+ const DEFAULT_TIMEOUT_MS = 3e4;
5
+ function isSignalAdapterApplicable(rule, subject) {
6
+ if (rule.includeRegistries) {
7
+ if (subject.registry === void 0 || !rule.includeRegistries.includes(subject.registry)) {
8
+ return false;
9
+ }
10
+ }
11
+ if (rule.excludeRegistries && subject.registry !== void 0 && rule.excludeRegistries.includes(subject.registry)) {
12
+ return false;
13
+ }
14
+ if (rule.appliesTo && !rule.appliesTo(subject)) {
15
+ return false;
16
+ }
17
+ return true;
18
18
  }
19
- class HCS26BaseClient {
20
- constructor(config) {
21
- this.network = config.network;
22
- this.logger = config.logger ?? Logger.getInstance({
23
- module: "HCS26Client",
24
- level: "info"
25
- });
26
- this.verificationProvider = config.verificationProvider;
27
- this.resolver = new Hcs26SkillRegistryResolver({
28
- network: this.network,
29
- logger: this.logger,
30
- mirrorNode: config.mirrorNode
31
- });
19
+ function validateSignalAdapter(adapter) {
20
+ if (!isValidAdapterId(adapter.id)) {
21
+ throw new TypeError(
22
+ `invalid signal adapter id "${String(adapter.id)}": identifiers must match ^[a-z][a-z0-9]*(-[a-z][a-z0-9]*)*$`
23
+ );
32
24
  }
33
- async resolveSkill(params) {
34
- const discovery = await this.resolver.resolveDiscoveryRecord({
35
- directoryTopicId: params.directoryTopicId,
36
- skillUid: params.skillUid,
37
- scanLimit: params.discoveryScanLimit
38
- });
39
- if (!discovery) {
40
- return null;
41
- }
42
- const versionRegistryTopicId = discovery.t_id;
43
- const latestVersion = await this.resolver.getLatestVersionRegister({
44
- versionRegistryTopicId,
45
- skillUid: params.skillUid
46
- });
47
- if (!latestVersion) {
48
- throw new Error(
49
- `No active version entries found for skill ${params.skillUid} in version registry ${versionRegistryTopicId}`
25
+ if (!Array.isArray(adapter.produces) || adapter.produces.length === 0) {
26
+ throw new TypeError(
27
+ `signal adapter "${adapter.id}" must declare at least one produced signalId`
28
+ );
29
+ }
30
+ for (const signalId of adapter.produces) {
31
+ if (!isValidSignalId(signalId)) {
32
+ throw new TypeError(
33
+ `signal adapter "${adapter.id}" declares invalid signalId "${String(signalId)}"`
50
34
  );
51
35
  }
52
- const manifestTopicId = getManifestTopicId(latestVersion);
53
- const { manifest, sha256Hex } = await this.resolver.resolveManifest({
54
- manifestTopicId
55
- });
56
- await this.resolver.verifyVersionRegisterMatchesManifest({
57
- versionRegister: latestVersion,
58
- manifestSha256Hex: sha256Hex
59
- });
60
- let verification;
61
- const provider = this.verificationProvider;
62
- const includeVerification = params.includeVerification === true;
63
- const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
64
- if (includeVerification && provider && name) {
65
- try {
66
- verification = await provider.getSkillVerificationStatus({ name });
67
- } catch (error) {
68
- const detail = error instanceof Error ? error.message : String(error);
69
- this.logger.warn(
70
- `Failed to resolve verification status for skill "${name}": ${detail}`
71
- );
72
- verification = null;
36
+ }
37
+ if (typeof adapter.collect !== "function") {
38
+ throw new TypeError(
39
+ `signal adapter "${adapter.id}" must declare a collect function`
40
+ );
41
+ }
42
+ }
43
+ function isStale(fetchedAt, staleAfterMs, now) {
44
+ if (!fetchedAt) {
45
+ return false;
46
+ }
47
+ const fetchedMs = Date.parse(fetchedAt);
48
+ if (Number.isNaN(fetchedMs)) {
49
+ return false;
50
+ }
51
+ return now.getTime() - fetchedMs > staleAfterMs;
52
+ }
53
+ function applyFreshness(result, staleAfterMs, now) {
54
+ if (staleAfterMs === void 0 || result.status !== "ok") {
55
+ return result;
56
+ }
57
+ const fetchedAt = result.provenance?.fetchedAt;
58
+ if (!isStale(fetchedAt, staleAfterMs, now)) {
59
+ return result;
60
+ }
61
+ return {
62
+ ...result,
63
+ status: "stale",
64
+ fields: markStatusFieldsStale(result.fields)
65
+ };
66
+ }
67
+ function markStatusFieldsStale(fields) {
68
+ if (!fields) {
69
+ return fields;
70
+ }
71
+ return fields.map((block) => {
72
+ const values = { ...block.values };
73
+ for (const key of Object.keys(values)) {
74
+ if (key.endsWith("Status") && typeof values[key] === "string") {
75
+ values[key] = "stale";
73
76
  }
74
77
  }
75
- return {
76
- directoryTopicId: params.directoryTopicId,
77
- skillUid: params.skillUid,
78
- discovery,
79
- versionRegistryTopicId,
80
- latestVersion,
81
- manifest,
82
- manifestSha256Hex: sha256Hex,
83
- ...includeVerification ? { verification } : {}
84
- };
85
- }
86
- async listSkillVersions(params) {
87
- const discovery = await this.resolver.resolveDiscoveryRecord({
88
- directoryTopicId: params.directoryTopicId,
89
- skillUid: params.skillUid,
90
- scanLimit: params.discoveryScanLimit
91
- });
92
- if (!discovery) {
93
- return [];
94
- }
95
- const versionRegistryTopicId = discovery.t_id;
96
- return this.resolver.listVersionRegisters({
97
- versionRegistryTopicId,
98
- skillUid: params.skillUid,
99
- limit: params.limit
100
- });
78
+ return { ...block, values };
79
+ });
80
+ }
81
+ function toSignal(result, now) {
82
+ return {
83
+ status: result.status,
84
+ value: result.value,
85
+ fetchedAt: result.provenance?.fetchedAt ?? now.toISOString(),
86
+ provenance: result.provenance
87
+ };
88
+ }
89
+ function summarizeStatuses(counts) {
90
+ if (counts.has("error")) {
91
+ return "error";
92
+ }
93
+ if (counts.has("timeout")) {
94
+ return "timeout";
95
+ }
96
+ if (counts.size === 0) {
97
+ return "missing";
98
+ }
99
+ if ((counts.get("ok") ?? 0) > 0 || counts.has("stale")) {
100
+ return "ok";
101
101
  }
102
- async resolveSkillVersion(params) {
103
- const versionRaw = params.version.trim();
104
- if (!versionRaw) {
105
- throw new Error("version is required");
102
+ return "missing";
103
+ }
104
+ async function collectHcs25Signals(subject, options) {
105
+ const fetch = resolveFetch(options.fetch);
106
+ const now = options.now ?? /* @__PURE__ */ new Date();
107
+ const snapshot = { ...options.previousSnapshot ?? {} };
108
+ const results = [];
109
+ let current = subject;
110
+ for (const adapter of options.adapters) {
111
+ validateSignalAdapter(adapter);
112
+ if (!isSignalAdapterApplicable(adapter, current)) {
113
+ results.push({
114
+ adapterId: adapter.id,
115
+ applicable: false,
116
+ signalIds: [],
117
+ status: "missing"
118
+ });
119
+ continue;
106
120
  }
107
- const discovery = await this.resolver.resolveDiscoveryRecord({
108
- directoryTopicId: params.directoryTopicId,
109
- skillUid: params.skillUid,
110
- scanLimit: params.discoveryScanLimit
111
- });
112
- if (!discovery) {
113
- return null;
121
+ const timeoutMs = adapter.timeoutMs ?? options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
122
+ const controller = new AbortController();
123
+ let timer;
124
+ let adapterResults;
125
+ let runStatus;
126
+ let runError;
127
+ try {
128
+ adapterResults = await Promise.race([
129
+ adapter.collect(current, {
130
+ subject: current,
131
+ fetch,
132
+ timeoutMs,
133
+ now,
134
+ signal: controller.signal,
135
+ force: options.force === true
136
+ }),
137
+ new Promise((_resolve, reject) => {
138
+ timer = setTimeout(() => {
139
+ controller.abort();
140
+ reject(new Hcs25CollectorTimeoutError());
141
+ }, timeoutMs + 1);
142
+ })
143
+ ]);
144
+ clearTimeout(timer);
145
+ if (adapterResults.length === 0) {
146
+ adapterResults = adapter.produces.filter((signalId) => !(signalId in snapshot)).map((signalId) => ({ signalId, status: "missing" }));
147
+ }
148
+ } catch (error) {
149
+ const status = isTimeoutError(error) ? "timeout" : "error";
150
+ runStatus = status;
151
+ runError = error instanceof Error ? error.message : String(error);
152
+ adapterResults = adapter.produces.map((signalId) => ({
153
+ signalId,
154
+ status
155
+ }));
114
156
  }
115
- const versionRegistryTopicId = discovery.t_id;
116
- const entries = await this.resolver.listVersionRegisters({
117
- versionRegistryTopicId,
118
- skillUid: params.skillUid,
119
- limit: 250
120
- });
121
- const target = entries.find((entry) => entry.version.trim() === versionRaw);
122
- if (!target) {
123
- return null;
157
+ const emitted = /* @__PURE__ */ new Set();
158
+ const statusCounts = /* @__PURE__ */ new Map();
159
+ const adapterFields = [];
160
+ for (const raw of adapterResults) {
161
+ if (!isValidSignalId(raw.signalId)) {
162
+ continue;
163
+ }
164
+ const result = applyFreshness(raw, options.staleAfterMs, now);
165
+ emitted.add(result.signalId);
166
+ statusCounts.set(
167
+ result.status,
168
+ (statusCounts.get(result.status) ?? 0) + 1
169
+ );
170
+ snapshot[result.signalId] = toSignal(result, now);
171
+ if (result.fields) {
172
+ adapterFields.push(...result.fields);
173
+ }
124
174
  }
125
- const manifestTopicId = getManifestTopicId(target);
126
- const { manifest, sha256Hex } = await this.resolver.resolveManifest({
127
- manifestTopicId
128
- });
129
- await this.resolver.verifyVersionRegisterMatchesManifest({
130
- versionRegister: target,
131
- manifestSha256Hex: sha256Hex
175
+ if (adapterFields.length > 0) {
176
+ current = applyCollectedFields(current, adapterFields);
177
+ }
178
+ results.push({
179
+ adapterId: adapter.id,
180
+ applicable: true,
181
+ signalIds: [...emitted],
182
+ status: runStatus ?? summarizeStatuses(statusCounts),
183
+ error: runError
132
184
  });
133
- let verification;
134
- const provider = this.verificationProvider;
135
- const includeVerification = params.includeVerification === true;
136
- const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
137
- if (includeVerification && provider && name) {
138
- try {
139
- verification = await provider.getSkillVerificationStatus({ name });
140
- } catch (error) {
141
- const detail = error instanceof Error ? error.message : String(error);
142
- this.logger.warn(
143
- `Failed to resolve verification status for skill "${name}": ${detail}`
144
- );
145
- verification = null;
185
+ }
186
+ if (options.staleAfterMs !== void 0) {
187
+ for (const [signalId, signal] of Object.entries(snapshot)) {
188
+ if (signal.status === "ok" && isStale(signal.fetchedAt, options.staleAfterMs, now)) {
189
+ snapshot[signalId] = { ...signal, status: "stale" };
146
190
  }
147
191
  }
148
- return {
149
- directoryTopicId: params.directoryTopicId,
150
- skillUid: params.skillUid,
151
- discovery,
152
- versionRegistryTopicId,
153
- versionEntry: target,
154
- manifest,
155
- manifestSha256Hex: sha256Hex,
156
- ...includeVerification ? { verification } : {}
157
- };
158
192
  }
193
+ return {
194
+ subject: current,
195
+ snapshot,
196
+ results
197
+ };
159
198
  }
160
199
  export {
161
- HCS26BaseClient
200
+ collectHcs25Signals,
201
+ isSignalAdapterApplicable
162
202
  };
163
203
  //# sourceMappingURL=standards-sdk.es125.js.map
@@ -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;"}