@hashgraphonline/standards-sdk 0.1.190 → 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.
- package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
- package/dist/browser/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/index.d.ts +1 -0
- package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -1
- package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
- package/dist/browser/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser/hcs-25/collectors/catalog.d.ts +9 -2
- package/dist/browser/hcs-25/collectors/catalog.d.ts.map +1 -1
- package/dist/browser/hcs-25/collectors/index.d.ts +1 -0
- package/dist/browser/hcs-25/collectors/index.d.ts.map +1 -1
- package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
- package/dist/browser/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/index.d.ts +1 -0
- package/dist/browser/hcs-25/signals/index.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
- package/dist/browser-root/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts +1 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
- package/dist/browser-root/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/collectors/catalog.d.ts +9 -2
- package/dist/browser-root/hcs-25/collectors/catalog.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/collectors/index.d.ts +1 -0
- package/dist/browser-root/hcs-25/collectors/index.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
- package/dist/browser-root/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/index.d.ts +1 -0
- package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -1
- package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
- package/dist/cjs/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts +1 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -1
- package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
- package/dist/cjs/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
- package/dist/cjs/hcs-25/collectors/catalog.d.ts +9 -2
- package/dist/cjs/hcs-25/collectors/catalog.d.ts.map +1 -1
- package/dist/cjs/hcs-25/collectors/index.d.ts +1 -0
- package/dist/cjs/hcs-25/collectors/index.d.ts.map +1 -1
- package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
- package/dist/cjs/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/index.d.ts +1 -0
- package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts +22 -0
- package/dist/es/hcs-25/adapters/ans-trust-discovery.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/index.d.ts +1 -0
- package/dist/es/hcs-25/adapters/index.d.ts.map +1 -1
- package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts +32 -0
- package/dist/es/hcs-25/collectors/ans-trust-discovery.d.ts.map +1 -0
- package/dist/es/hcs-25/collectors/catalog.d.ts +9 -2
- package/dist/es/hcs-25/collectors/catalog.d.ts.map +1 -1
- package/dist/es/hcs-25/collectors/index.d.ts +1 -0
- package/dist/es/hcs-25/collectors/index.d.ts.map +1 -1
- package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts +50 -0
- package/dist/es/hcs-25/signals/ans-trust-discovery.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/index.d.ts +1 -0
- package/dist/es/hcs-25/signals/index.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +78 -71
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +2 -2
- package/dist/es/standards-sdk.es103.js +2 -2
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +2 -2
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es115.js +3 -3
- package/dist/es/standards-sdk.es116.js +4 -4
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +22 -4
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +15 -12
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +6 -5
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +6 -5
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +6 -5
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +110 -136
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +133 -141
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +135 -345
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +332 -344
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +338 -178
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +200 -196
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +216 -364
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +358 -100
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +91 -220
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +173 -1250
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1295 -98
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +109 -246
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +263 -97
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +107 -248
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +246 -472
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +458 -85
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +96 -151
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +155 -29
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +26 -4
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +10 -180
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +179 -26
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +27 -20
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +18 -156
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +148 -190
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +159 -747
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +786 -9
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +13 -567
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +541 -600
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +625 -12
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +13 -2
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +2 -87
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +84 -37
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +6 -6
- package/dist/es/standards-sdk.es160.js +40 -2
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +2 -235
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +204 -1109
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +1059 -225
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +303 -419
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +418 -351
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +347 -1114
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +1094 -180
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +153 -1512
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +1457 -1056
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +1163 -14
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +15 -449
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +440 -248
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +259 -4
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +4 -81
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +71 -77
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +80 -53
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +59 -2546
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +2547 -159
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +159 -7
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +13 -13
- package/dist/es/standards-sdk.es180.js +7 -86
- package/dist/es/standards-sdk.es180.js.map +1 -1
- package/dist/es/standards-sdk.es181.js +65 -44
- package/dist/es/standards-sdk.es181.js.map +1 -1
- package/dist/es/standards-sdk.es182.js +57 -188
- package/dist/es/standards-sdk.es182.js.map +1 -1
- package/dist/es/standards-sdk.es183.js +27 -26
- package/dist/es/standards-sdk.es183.js.map +1 -1
- package/dist/es/standards-sdk.es184.js +191 -53
- package/dist/es/standards-sdk.es184.js.map +1 -1
- package/dist/es/standards-sdk.es185.js +21 -109
- package/dist/es/standards-sdk.es185.js.map +1 -1
- package/dist/es/standards-sdk.es186.js +49 -47
- package/dist/es/standards-sdk.es186.js.map +1 -1
- package/dist/es/standards-sdk.es187.js +89 -205
- package/dist/es/standards-sdk.es187.js.map +1 -1
- package/dist/es/standards-sdk.es188.js +35 -58
- package/dist/es/standards-sdk.es188.js.map +1 -1
- package/dist/es/standards-sdk.es189.js +48 -39
- package/dist/es/standards-sdk.es189.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +10 -10
- package/dist/es/standards-sdk.es190.js +218 -48
- package/dist/es/standards-sdk.es190.js.map +1 -1
- package/dist/es/standards-sdk.es191.js +66 -42
- package/dist/es/standards-sdk.es191.js.map +1 -1
- package/dist/es/standards-sdk.es192.js +33 -105
- package/dist/es/standards-sdk.es192.js.map +1 -1
- package/dist/es/standards-sdk.es193.js +49 -43
- package/dist/es/standards-sdk.es193.js.map +1 -1
- package/dist/es/standards-sdk.es194.js +33 -42
- package/dist/es/standards-sdk.es194.js.map +1 -1
- package/dist/es/standards-sdk.es195.js +123 -72
- package/dist/es/standards-sdk.es195.js.map +1 -1
- package/dist/es/standards-sdk.es196.js +58 -75
- package/dist/es/standards-sdk.es196.js.map +1 -1
- package/dist/es/standards-sdk.es197.js +60 -44
- package/dist/es/standards-sdk.es197.js.map +1 -1
- package/dist/es/standards-sdk.es198.js +72 -36
- package/dist/es/standards-sdk.es198.js.map +1 -1
- package/dist/es/standards-sdk.es199.js +75 -30
- package/dist/es/standards-sdk.es199.js.map +1 -1
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es200.js +44 -34
- package/dist/es/standards-sdk.es200.js.map +1 -1
- package/dist/es/standards-sdk.es201.js +36 -48
- package/dist/es/standards-sdk.es201.js.map +1 -1
- package/dist/es/standards-sdk.es202.js +30 -138
- package/dist/es/standards-sdk.es202.js.map +1 -1
- package/dist/es/standards-sdk.es203.js +34 -42
- package/dist/es/standards-sdk.es203.js.map +1 -1
- package/dist/es/standards-sdk.es204.js +48 -12482
- package/dist/es/standards-sdk.es204.js.map +1 -1
- package/dist/es/standards-sdk.es205.js +134 -13
- package/dist/es/standards-sdk.es205.js.map +1 -1
- package/dist/es/standards-sdk.es206.js +36 -50
- package/dist/es/standards-sdk.es206.js.map +1 -1
- package/dist/es/standards-sdk.es207.js +12449 -78
- package/dist/es/standards-sdk.es207.js.map +1 -1
- package/dist/es/standards-sdk.es208.js +15 -79
- package/dist/es/standards-sdk.es208.js.map +1 -1
- package/dist/es/standards-sdk.es209.js +48 -192
- package/dist/es/standards-sdk.es209.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es210.js +90 -651
- package/dist/es/standards-sdk.es210.js.map +1 -1
- package/dist/es/standards-sdk.es211.js +71 -63
- package/dist/es/standards-sdk.es211.js.map +1 -1
- package/dist/es/standards-sdk.es212.js +188 -160
- package/dist/es/standards-sdk.es212.js.map +1 -1
- package/dist/es/standards-sdk.es213.js +65 -314
- package/dist/es/standards-sdk.es213.js.map +1 -1
- package/dist/es/standards-sdk.es214.js +661 -335
- package/dist/es/standards-sdk.es214.js.map +1 -1
- package/dist/es/standards-sdk.es215.js +129 -410
- package/dist/es/standards-sdk.es215.js.map +1 -1
- package/dist/es/standards-sdk.es216.js +200 -209
- package/dist/es/standards-sdk.es216.js.map +1 -1
- package/dist/es/standards-sdk.es217.js +334 -64
- package/dist/es/standards-sdk.es217.js.map +1 -1
- package/dist/es/standards-sdk.es218.js +438 -124
- package/dist/es/standards-sdk.es218.js.map +1 -1
- package/dist/es/standards-sdk.es219.js +310 -496
- package/dist/es/standards-sdk.es219.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es220.js +60 -243
- package/dist/es/standards-sdk.es220.js.map +1 -1
- package/dist/es/standards-sdk.es221.js +118 -175
- package/dist/es/standards-sdk.es221.js.map +1 -1
- package/dist/es/standards-sdk.es222.js +465 -67
- package/dist/es/standards-sdk.es222.js.map +1 -1
- package/dist/es/standards-sdk.es223.js +250 -143
- package/dist/es/standards-sdk.es223.js.map +1 -1
- package/dist/es/standards-sdk.es224.js +172 -160
- package/dist/es/standards-sdk.es224.js.map +1 -1
- package/dist/es/standards-sdk.es225.js +65 -630
- package/dist/es/standards-sdk.es225.js.map +1 -1
- package/dist/es/standards-sdk.es226.js +128 -161
- package/dist/es/standards-sdk.es226.js.map +1 -1
- package/dist/es/standards-sdk.es227.js +144 -195
- package/dist/es/standards-sdk.es227.js.map +1 -1
- package/dist/es/standards-sdk.es228.js +668 -223
- package/dist/es/standards-sdk.es228.js.map +1 -1
- package/dist/es/standards-sdk.es229.js +188 -0
- package/dist/es/standards-sdk.es229.js.map +1 -0
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es230.js +238 -0
- package/dist/es/standards-sdk.es230.js.map +1 -0
- package/dist/es/standards-sdk.es231.js +242 -0
- package/dist/es/standards-sdk.es231.js.map +1 -0
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +13 -13
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +7 -7
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +8 -8
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +3 -3
- package/dist/es/standards-sdk.es75.js +5 -5
- package/dist/es/standards-sdk.es76.js +3 -3
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2
- package/dist/es/standards-sdk.es83.js +2 -2
- package/dist/es/standards-sdk.es84.js +5 -5
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es89.js +2 -2
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +4 -4
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es96.js +2 -2
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es120.js","sources":["../../src/hcs-25/signals/index.ts"],"sourcesContent":["export * from './metadata';\nexport * from './simple-evals';\nexport * from './marketplace';\nexport * from './operational';\nexport * from './model-evals';\n\n/**\n * Documentation for one published signal family: where it is stored on the\n * subject record and which fields it reads.\n */\nexport interface Hcs25SignalFamilyDoc {\n storage: string;\n fields: readonly string[];\n}\n\n/**\n * The published HCS-25 signal catalog for this SDK: every signal family\n * documented under the specification's per-signal catalog, mapped to its\n * storage location and stored fields.\n */\nexport const HCS25_SIGNAL_CATALOG: Readonly<\n Record<string, Hcs25SignalFamilyDoc>\n> = {\n availability: {\n storage: 'metadata',\n fields: [\n 'availabilityScore',\n 'availabilityCheckedAt',\n 'availabilityLatencyMs',\n 'availabilityReason',\n 'availabilitySource',\n 'metrics.isOnline',\n 'metrics.minsFromLastOnline',\n 'metrics.lastActiveAt',\n ],\n },\n ethos: {\n storage: 'metadata',\n fields: [\n 'ethosUserkey',\n 'ethosScore',\n 'ethosScoreStatus',\n 'ethosScoreUpdatedAt',\n 'ethosSources',\n 'ethosComposite',\n ],\n },\n acp: {\n storage: 'metadata.metrics',\n fields: [\n 'metrics.successRate',\n 'metrics.successfulJobCount',\n 'metrics.totalJobCount',\n 'metrics.volume',\n 'metrics.revenue',\n 'metrics.rating',\n 'successRate',\n 'successfulJobCount',\n ],\n },\n 'erc8004-feedback': {\n storage: 'metadata.erc8004FeedbackSummary',\n fields: [\n 'averageScore',\n 'totalFeedbacks',\n 'registry',\n 'network',\n 'updatedAt',\n ],\n },\n x402: {\n storage: 'metadata.x402UsageSummary',\n fields: [\n 'x402UsageStatus',\n 'x402UsageUpdatedAt',\n 'x402UsageSource',\n 'volume7dUsd',\n 'volume24hUsd',\n 'inboundTrades7d',\n 'outboundTrades7d',\n ],\n },\n 'oss-popularity': {\n storage: 'metadata.additional',\n fields: [\n 'githubRepo',\n 'githubStars',\n 'githubStarsUpdatedAt',\n 'packageRegistry',\n 'packageName',\n 'packageDownloadCount',\n 'npmDownloads30d',\n 'pypiDownloads30d',\n ],\n },\n 'agentverse-insights': {\n storage: 'metadata.additional',\n fields: [\n 'agentverseInsightsRating',\n 'agentverseInsightsReadmeQualityScore',\n 'agentverseInsightsReadmeUniquenessScore',\n 'agentverseInsightsInteractionsScore',\n 'agentverseInsightsAvgResponseTime',\n 'agentverseInsightsVerifierTotalInteractions',\n 'agentverseInsightsVerifierTotalSuccessInteractions',\n 'agentverseInsightsVerifierRecentInteractions',\n 'agentverseInsightsVerifierRecentSuccessInteractions',\n ],\n },\n 'agentverse-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'a2aSimpleMathScore',\n 'a2aSimpleMathStatus',\n 'a2aSimpleMathSessionId',\n 'a2aSimpleScienceScore',\n 'a2aSimpleScienceStatus',\n 'a2aSimpleScienceSessionId',\n ],\n },\n 'a2a-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'a2aSimpleMathScore',\n 'a2aSimpleMathStatus',\n 'a2aSimpleMathQuestionId',\n 'a2aSimpleMathUpdatedAt',\n 'a2aSimpleScienceScore',\n 'a2aSimpleScienceStatus',\n 'a2aSimpleScienceQuestionId',\n 'a2aSimpleScienceUpdatedAt',\n ],\n },\n 'nanda-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'nandaSimpleMathScore',\n 'nandaSimpleMathStatus',\n 'nandaSimpleMathQuestionId',\n 'nandaSimpleMathUpdatedAt',\n 'nandaSimpleScienceScore',\n 'nandaSimpleScienceStatus',\n 'nandaSimpleScienceQuestionId',\n 'nandaSimpleScienceUpdatedAt',\n ],\n },\n 'simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'questionId',\n 'expected',\n 'response',\n 'status',\n 'score',\n 'sessionId',\n ],\n },\n 'openrouter-evals': {\n storage: 'metadata.additional',\n fields: [\n 'openrouterEvalScore',\n 'openrouterEvalStatus',\n 'openrouterEvalUpdatedAt',\n 'openrouterEvalSources',\n 'openrouterEvalMetricsCount',\n 'openrouterEvalCategoryCount',\n 'openrouterEvalCoverageWeight',\n 'openrouterEvalCategories',\n ],\n },\n 'chatbot-arena': {\n storage: 'metadata.additional',\n fields: [\n 'chatbotArenaEvalScore',\n 'chatbotArenaEvalElo',\n 'chatbotArenaEvalVotes',\n 'chatbotArenaEvalStatus',\n 'chatbotArenaEvalUpdatedAt',\n 'chatbotArenaEvalSources',\n ],\n },\n 'huggingface-model-index': {\n storage: 'metadata.additional',\n fields: [\n 'huggingFaceModelId',\n 'openrouterHuggingFaceId',\n 'huggingFaceEvalScore',\n 'huggingFaceSignalScore',\n 'huggingFaceEvalMetricsCount',\n 'huggingFaceDownloads',\n 'huggingFaceLikes',\n 'huggingFaceEvalMode',\n 'huggingFaceEvalStatus',\n 'huggingFaceEvalUpdatedAt',\n 'huggingFaceEvalSources',\n ],\n },\n 'openllm-leaderboard': {\n storage: 'metadata.additional',\n fields: [\n 'openLlmEvalScore',\n 'openLlmEvalMetricsCount',\n 'openLlmEvalStatus',\n 'openLlmEvalUpdatedAt',\n 'openLlmEvalSources',\n 'openrouterHuggingFaceId',\n ],\n },\n 'output-verification': {\n storage: 'metadata.outputVerificationSummary',\n fields: [\n 'allowRate',\n 'blockRate',\n 'uncertainRate',\n 'avgConfidence',\n 'totalChecks',\n 'stakeDistribution',\n 'windowDays',\n 'providers',\n 'updatedAt',\n ],\n },\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-sdk.es120.js","sources":["../../src/hcs-25/signals/index.ts"],"sourcesContent":["export * from './metadata';\nexport * from './simple-evals';\nexport * from './marketplace';\nexport * from './operational';\nexport * from './model-evals';\nexport * from './ans-trust-discovery';\n\n/**\n * Documentation for one published signal family: where it is stored on the\n * subject record and which fields it reads.\n */\nexport interface Hcs25SignalFamilyDoc {\n storage: string;\n fields: readonly string[];\n}\n\n/**\n * The published HCS-25 signal catalog for this SDK: every signal family\n * documented under the specification's per-signal catalog, mapped to its\n * storage location and stored fields.\n */\nexport const HCS25_SIGNAL_CATALOG: Readonly<\n Record<string, Hcs25SignalFamilyDoc>\n> = {\n availability: {\n storage: 'metadata',\n fields: [\n 'availabilityScore',\n 'availabilityCheckedAt',\n 'availabilityLatencyMs',\n 'availabilityReason',\n 'availabilitySource',\n 'metrics.isOnline',\n 'metrics.minsFromLastOnline',\n 'metrics.lastActiveAt',\n ],\n },\n ethos: {\n storage: 'metadata',\n fields: [\n 'ethosUserkey',\n 'ethosScore',\n 'ethosScoreStatus',\n 'ethosScoreUpdatedAt',\n 'ethosSources',\n 'ethosComposite',\n ],\n },\n acp: {\n storage: 'metadata.metrics',\n fields: [\n 'metrics.successRate',\n 'metrics.successfulJobCount',\n 'metrics.totalJobCount',\n 'metrics.volume',\n 'metrics.revenue',\n 'metrics.rating',\n 'successRate',\n 'successfulJobCount',\n ],\n },\n 'erc8004-feedback': {\n storage: 'metadata.erc8004FeedbackSummary',\n fields: [\n 'averageScore',\n 'totalFeedbacks',\n 'registry',\n 'network',\n 'updatedAt',\n ],\n },\n x402: {\n storage: 'metadata.x402UsageSummary',\n fields: [\n 'x402UsageStatus',\n 'x402UsageUpdatedAt',\n 'x402UsageSource',\n 'volume7dUsd',\n 'volume24hUsd',\n 'inboundTrades7d',\n 'outboundTrades7d',\n ],\n },\n 'oss-popularity': {\n storage: 'metadata.additional',\n fields: [\n 'githubRepo',\n 'githubStars',\n 'githubStarsUpdatedAt',\n 'packageRegistry',\n 'packageName',\n 'packageDownloadCount',\n 'npmDownloads30d',\n 'pypiDownloads30d',\n ],\n },\n 'agentverse-insights': {\n storage: 'metadata.additional',\n fields: [\n 'agentverseInsightsRating',\n 'agentverseInsightsReadmeQualityScore',\n 'agentverseInsightsReadmeUniquenessScore',\n 'agentverseInsightsInteractionsScore',\n 'agentverseInsightsAvgResponseTime',\n 'agentverseInsightsVerifierTotalInteractions',\n 'agentverseInsightsVerifierTotalSuccessInteractions',\n 'agentverseInsightsVerifierRecentInteractions',\n 'agentverseInsightsVerifierRecentSuccessInteractions',\n ],\n },\n 'agentverse-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'a2aSimpleMathScore',\n 'a2aSimpleMathStatus',\n 'a2aSimpleMathSessionId',\n 'a2aSimpleScienceScore',\n 'a2aSimpleScienceStatus',\n 'a2aSimpleScienceSessionId',\n ],\n },\n 'a2a-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'a2aSimpleMathScore',\n 'a2aSimpleMathStatus',\n 'a2aSimpleMathQuestionId',\n 'a2aSimpleMathUpdatedAt',\n 'a2aSimpleScienceScore',\n 'a2aSimpleScienceStatus',\n 'a2aSimpleScienceQuestionId',\n 'a2aSimpleScienceUpdatedAt',\n ],\n },\n 'nanda-simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'nandaSimpleMathScore',\n 'nandaSimpleMathStatus',\n 'nandaSimpleMathQuestionId',\n 'nandaSimpleMathUpdatedAt',\n 'nandaSimpleScienceScore',\n 'nandaSimpleScienceStatus',\n 'nandaSimpleScienceQuestionId',\n 'nandaSimpleScienceUpdatedAt',\n ],\n },\n 'simple-evals': {\n storage: 'metadata.additional',\n fields: [\n 'questionId',\n 'expected',\n 'response',\n 'status',\n 'score',\n 'sessionId',\n ],\n },\n 'openrouter-evals': {\n storage: 'metadata.additional',\n fields: [\n 'openrouterEvalScore',\n 'openrouterEvalStatus',\n 'openrouterEvalUpdatedAt',\n 'openrouterEvalSources',\n 'openrouterEvalMetricsCount',\n 'openrouterEvalCategoryCount',\n 'openrouterEvalCoverageWeight',\n 'openrouterEvalCategories',\n ],\n },\n 'chatbot-arena': {\n storage: 'metadata.additional',\n fields: [\n 'chatbotArenaEvalScore',\n 'chatbotArenaEvalElo',\n 'chatbotArenaEvalVotes',\n 'chatbotArenaEvalStatus',\n 'chatbotArenaEvalUpdatedAt',\n 'chatbotArenaEvalSources',\n ],\n },\n 'huggingface-model-index': {\n storage: 'metadata.additional',\n fields: [\n 'huggingFaceModelId',\n 'openrouterHuggingFaceId',\n 'huggingFaceEvalScore',\n 'huggingFaceSignalScore',\n 'huggingFaceEvalMetricsCount',\n 'huggingFaceDownloads',\n 'huggingFaceLikes',\n 'huggingFaceEvalMode',\n 'huggingFaceEvalStatus',\n 'huggingFaceEvalUpdatedAt',\n 'huggingFaceEvalSources',\n ],\n },\n 'openllm-leaderboard': {\n storage: 'metadata.additional',\n fields: [\n 'openLlmEvalScore',\n 'openLlmEvalMetricsCount',\n 'openLlmEvalStatus',\n 'openLlmEvalUpdatedAt',\n 'openLlmEvalSources',\n 'openrouterHuggingFaceId',\n ],\n },\n 'output-verification': {\n storage: 'metadata.outputVerificationSummary',\n fields: [\n 'allowRate',\n 'blockRate',\n 'uncertainRate',\n 'avgConfidence',\n 'totalChecks',\n 'stakeDistribution',\n 'windowDays',\n 'providers',\n 'updatedAt',\n ],\n },\n 'ans-trust-discovery': {\n storage: 'metadata.ansTrustDiscovery',\n fields: [\n 'ans-trust-discovery.certtype',\n 'ans-trust-discovery.dnssecurity',\n 'ans-trust-discovery.agentage',\n 'ans-trust-discovery.versionstability',\n 'ans-trust-discovery.dnsconsistency',\n 'ans-trust-discovery.httpsrecord',\n 'ans-trust-discovery.agentcard',\n 'ans-trust-discovery.certificatehygiene',\n 'ansTrustDiscoveryStatus',\n 'ansTrustDiscoveryUpdatedAt',\n ],\n },\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { createAcpAdapter } from "./standards-sdk.
|
|
2
|
-
import { createAgentverseInsightsAdapter, createAgentverseVerifierAdapter } from "./standards-sdk.
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { createAcpAdapter } from "./standards-sdk.es186.js";
|
|
2
|
+
import { createAgentverseInsightsAdapter, createAgentverseVerifierAdapter } from "./standards-sdk.es187.js";
|
|
3
|
+
import { createAnsTrustDiscoveryAdapter } from "./standards-sdk.es188.js";
|
|
4
|
+
import { createAvailabilityAdapter } from "./standards-sdk.es189.js";
|
|
5
|
+
import { createConnectivityAdapter } from "./standards-sdk.es191.js";
|
|
6
|
+
import { createErc8004FeedbackAdapter } from "./standards-sdk.es192.js";
|
|
7
|
+
import { createEthosAdapter } from "./standards-sdk.es193.js";
|
|
8
|
+
import { createOpenRouterEvalsAdapter, createChatbotArenaAdapter, createHuggingFaceModelIndexAdapter, createOpenLlmLeaderboardAdapter, createModelTierAdapter } from "./standards-sdk.es190.js";
|
|
9
|
+
import { createOutputVerificationAdapter } from "./standards-sdk.es195.js";
|
|
10
|
+
import { createOssPopularityAdapter } from "./standards-sdk.es194.js";
|
|
11
|
+
import { createSimpleMathAdapter, createSimpleScienceAdapter } from "./standards-sdk.es196.js";
|
|
12
|
+
import { createX402Adapter } from "./standards-sdk.es197.js";
|
|
12
13
|
import "./standards-sdk.es118.js";
|
|
13
14
|
function createHcs25AdapterCatalog() {
|
|
14
15
|
return [
|
|
@@ -28,13 +29,15 @@ function createHcs25AdapterCatalog() {
|
|
|
28
29
|
createOpenLlmLeaderboardAdapter(),
|
|
29
30
|
createModelTierAdapter(),
|
|
30
31
|
createOutputVerificationAdapter(),
|
|
31
|
-
createConnectivityAdapter()
|
|
32
|
+
createConnectivityAdapter(),
|
|
33
|
+
createAnsTrustDiscoveryAdapter()
|
|
32
34
|
];
|
|
33
35
|
}
|
|
34
36
|
export {
|
|
35
37
|
createAcpAdapter,
|
|
36
38
|
createAgentverseInsightsAdapter,
|
|
37
39
|
createAgentverseVerifierAdapter,
|
|
40
|
+
createAnsTrustDiscoveryAdapter,
|
|
38
41
|
createAvailabilityAdapter,
|
|
39
42
|
createChatbotArenaAdapter,
|
|
40
43
|
createConnectivityAdapter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es121.js","sources":["../../src/hcs-25/adapters/index.ts"],"sourcesContent":["import type { Hcs25AdapterDefinition } from '../types';\nimport { createAcpAdapter } from './acp';\nimport {\n createAgentverseInsightsAdapter,\n createAgentverseVerifierAdapter,\n} from './agentverse';\nimport { createAvailabilityAdapter } from './availability';\nimport { createConnectivityAdapter } from './connectivity';\nimport { createErc8004FeedbackAdapter } from './erc8004-feedback';\nimport { createEthosAdapter } from './ethos';\nimport {\n createChatbotArenaAdapter,\n createHuggingFaceModelIndexAdapter,\n createModelTierAdapter,\n createOpenLlmLeaderboardAdapter,\n createOpenRouterEvalsAdapter,\n} from './model-evals';\nimport { createOutputVerificationAdapter } from './output-verification';\nimport { createOssPopularityAdapter } from './oss-popularity';\nimport {\n createSimpleMathAdapter,\n createSimpleScienceAdapter,\n} from './simple-evals';\nimport { createX402Adapter } from './x402';\n\nexport * from './normalization';\nexport * from './availability';\nexport * from './ethos';\nexport * from './acp';\nexport * from './erc8004-feedback';\nexport * from './x402';\nexport * from './oss-popularity';\nexport * from './simple-evals';\nexport * from './agentverse';\nexport * from './model-evals';\nexport * from './output-verification';\nexport * from './connectivity';\n\n/**\n * Creates the full HCS-25 adapter catalog documented in the specification,\n * with the suggested contribution modes and weights from Appendix A. Every\n * adapter is created with default options; compose\n * `compileScoringConfig` over the result to score a subject.\n */\nexport function createHcs25AdapterCatalog(): Hcs25AdapterDefinition[] {\n return [\n createAvailabilityAdapter(),\n createEthosAdapter(),\n createAcpAdapter(),\n createErc8004FeedbackAdapter(),\n createX402Adapter(),\n createOssPopularityAdapter(),\n createSimpleMathAdapter(),\n createSimpleScienceAdapter(),\n createAgentverseInsightsAdapter(),\n createAgentverseVerifierAdapter(),\n createOpenRouterEvalsAdapter(),\n createChatbotArenaAdapter(),\n createHuggingFaceModelIndexAdapter(),\n createOpenLlmLeaderboardAdapter(),\n createModelTierAdapter(),\n createOutputVerificationAdapter(),\n createConnectivityAdapter(),\n ];\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-sdk.es121.js","sources":["../../src/hcs-25/adapters/index.ts"],"sourcesContent":["import type { Hcs25AdapterDefinition } from '../types';\nimport { createAcpAdapter } from './acp';\nimport {\n createAgentverseInsightsAdapter,\n createAgentverseVerifierAdapter,\n} from './agentverse';\nimport { createAnsTrustDiscoveryAdapter } from './ans-trust-discovery';\nimport { createAvailabilityAdapter } from './availability';\nimport { createConnectivityAdapter } from './connectivity';\nimport { createErc8004FeedbackAdapter } from './erc8004-feedback';\nimport { createEthosAdapter } from './ethos';\nimport {\n createChatbotArenaAdapter,\n createHuggingFaceModelIndexAdapter,\n createModelTierAdapter,\n createOpenLlmLeaderboardAdapter,\n createOpenRouterEvalsAdapter,\n} from './model-evals';\nimport { createOutputVerificationAdapter } from './output-verification';\nimport { createOssPopularityAdapter } from './oss-popularity';\nimport {\n createSimpleMathAdapter,\n createSimpleScienceAdapter,\n} from './simple-evals';\nimport { createX402Adapter } from './x402';\n\nexport * from './normalization';\nexport * from './availability';\nexport * from './ethos';\nexport * from './acp';\nexport * from './erc8004-feedback';\nexport * from './x402';\nexport * from './oss-popularity';\nexport * from './simple-evals';\nexport * from './agentverse';\nexport * from './model-evals';\nexport * from './output-verification';\nexport * from './connectivity';\nexport * from './ans-trust-discovery';\n\n/**\n * Creates the full HCS-25 adapter catalog documented in the specification,\n * with the suggested contribution modes and weights from Appendix A. Every\n * adapter is created with default options; compose\n * `compileScoringConfig` over the result to score a subject.\n */\nexport function createHcs25AdapterCatalog(): Hcs25AdapterDefinition[] {\n return [\n createAvailabilityAdapter(),\n createEthosAdapter(),\n createAcpAdapter(),\n createErc8004FeedbackAdapter(),\n createX402Adapter(),\n createOssPopularityAdapter(),\n createSimpleMathAdapter(),\n createSimpleScienceAdapter(),\n createAgentverseInsightsAdapter(),\n createAgentverseVerifierAdapter(),\n createOpenRouterEvalsAdapter(),\n createChatbotArenaAdapter(),\n createHuggingFaceModelIndexAdapter(),\n createOpenLlmLeaderboardAdapter(),\n createModelTierAdapter(),\n createOutputVerificationAdapter(),\n createConnectivityAdapter(),\n createAnsTrustDiscoveryAdapter(),\n ];\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AA8CO,SAAS,4BAAsD;AACpE,SAAO;AAAA,IACL,0BAAA;AAAA,IACA,mBAAA;AAAA,IACA,iBAAA;AAAA,IACA,6BAAA;AAAA,IACA,kBAAA;AAAA,IACA,2BAAA;AAAA,IACA,wBAAA;AAAA,IACA,2BAAA;AAAA,IACA,gCAAA;AAAA,IACA,gCAAA;AAAA,IACA,6BAAA;AAAA,IACA,0BAAA;AAAA,IACA,mCAAA;AAAA,IACA,gCAAA;AAAA,IACA,uBAAA;AAAA,IACA,gCAAA;AAAA,IACA,0BAAA;AAAA,IACA,+BAAA;AAAA,EAA+B;AAEnC;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { isJsonObject } from "./standards-sdk.
|
|
2
|
-
import "./standards-sdk.
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
1
|
+
import { isJsonObject } 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";
|
|
6
7
|
function parseTimestampMs(value) {
|
|
7
8
|
if (value instanceof Date) {
|
|
8
9
|
return value.getTime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es123.js","sources":["../../src/hcs-25/collectors/freshness.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { isJsonObject } from '../signals';\n\n/**\n * Reads an ISO-8601/epoch timestamp field into milliseconds, or null.\n */\nexport function parseTimestampMs(value: unknown): number | null {\n if (value instanceof Date) {\n return value.getTime();\n }\n if (typeof value === 'string') {\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n return null;\n}\n\n/**\n * Options for {@link shouldRefreshStoredFields}.\n */\nexport interface Hcs25FreshnessGate {\n /**\n * Metadata scope holding the fields: `root` reads `metadata.<key>`\n * directly; any other value reads `metadata.<scope>.<key>`.\n */\n scope?: 'root' | (string & {});\n /** Field storing the last refresh timestamp. Default `updatedAt`. */\n updatedAtKey?: string;\n /** Field storing the last status (`ok` vs failure states). */\n statusKey?: string;\n /** TTL applied when the stored status is `ok`. */\n ttlMs: number;\n /** TTL applied for non-`ok` statuses (default: same as `ttlMs`). */\n failureTtlMs?: number;\n /** Clock for the comparison. */\n now?: Date;\n /** When true, always refresh (equivalent to `context.force`). */\n force?: boolean;\n}\n\nfunction readField(subject: Hcs25Subject, scope: string, key: string): unknown {\n const metadata = subject.metadata ?? {};\n if (scope === 'root') {\n return (metadata as Record<string, Hcs25JsonValue>)[key];\n }\n const record = metadata[scope];\n if (!isJsonObject(record)) {\n return undefined;\n }\n return (record as Record<string, Hcs25JsonValue>)[key];\n}\n\n/**\n * Production-style refresh gating (Registry Broker): a signal with a stored\n * `ok` status is refreshed once `ttlMs` has elapsed since its stored\n * timestamp; failures use `failureTtlMs` so transiently missing/erroring\n * sources re-check sooner. Returns false when the stored fields are still\n * fresh and the adapter may skip collection entirely.\n */\nexport function shouldRefreshStoredFields(\n subject: Hcs25Subject,\n options: Hcs25FreshnessGate,\n): boolean {\n if (options.force) {\n return true;\n }\n const scope = options.scope ?? 'root';\n const updatedAt = parseTimestampMs(\n readField(subject, scope, options.updatedAtKey ?? 'updatedAt'),\n );\n if (updatedAt === null) {\n return true;\n }\n const status = readField(subject, scope, options.statusKey ?? 'status');\n const normalizedStatus = typeof status === 'string' ? status.trim() : '';\n if (!normalizedStatus) {\n return true;\n }\n const ttl =\n normalizedStatus === 'ok'\n ? options.ttlMs\n : (options.failureTtlMs ?? options.ttlMs);\n const now = options.now ?? new Date();\n return now.getTime() - updatedAt >= ttl;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-sdk.es123.js","sources":["../../src/hcs-25/collectors/freshness.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { isJsonObject } from '../signals';\n\n/**\n * Reads an ISO-8601/epoch timestamp field into milliseconds, or null.\n */\nexport function parseTimestampMs(value: unknown): number | null {\n if (value instanceof Date) {\n return value.getTime();\n }\n if (typeof value === 'string') {\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : null;\n }\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n return null;\n}\n\n/**\n * Options for {@link shouldRefreshStoredFields}.\n */\nexport interface Hcs25FreshnessGate {\n /**\n * Metadata scope holding the fields: `root` reads `metadata.<key>`\n * directly; any other value reads `metadata.<scope>.<key>`.\n */\n scope?: 'root' | (string & {});\n /** Field storing the last refresh timestamp. Default `updatedAt`. */\n updatedAtKey?: string;\n /** Field storing the last status (`ok` vs failure states). */\n statusKey?: string;\n /** TTL applied when the stored status is `ok`. */\n ttlMs: number;\n /** TTL applied for non-`ok` statuses (default: same as `ttlMs`). */\n failureTtlMs?: number;\n /** Clock for the comparison. */\n now?: Date;\n /** When true, always refresh (equivalent to `context.force`). */\n force?: boolean;\n}\n\nfunction readField(subject: Hcs25Subject, scope: string, key: string): unknown {\n const metadata = subject.metadata ?? {};\n if (scope === 'root') {\n return (metadata as Record<string, Hcs25JsonValue>)[key];\n }\n const record = metadata[scope];\n if (!isJsonObject(record)) {\n return undefined;\n }\n return (record as Record<string, Hcs25JsonValue>)[key];\n}\n\n/**\n * Production-style refresh gating (Registry Broker): a signal with a stored\n * `ok` status is refreshed once `ttlMs` has elapsed since its stored\n * timestamp; failures use `failureTtlMs` so transiently missing/erroring\n * sources re-check sooner. Returns false when the stored fields are still\n * fresh and the adapter may skip collection entirely.\n */\nexport function shouldRefreshStoredFields(\n subject: Hcs25Subject,\n options: Hcs25FreshnessGate,\n): boolean {\n if (options.force) {\n return true;\n }\n const scope = options.scope ?? 'root';\n const updatedAt = parseTimestampMs(\n readField(subject, scope, options.updatedAtKey ?? 'updatedAt'),\n );\n if (updatedAt === null) {\n return true;\n }\n const status = readField(subject, scope, options.statusKey ?? 'status');\n const normalizedStatus = typeof status === 'string' ? status.trim() : '';\n if (!normalizedStatus) {\n return true;\n }\n const ttl =\n normalizedStatus === 'ok'\n ? options.ttlMs\n : (options.failureTtlMs ?? options.ttlMs);\n const now = options.now ?? new Date();\n return now.getTime() - updatedAt >= ttl;\n}\n"],"names":[],"mappings":";;;;;;AAMO,SAAS,iBAAiB,OAA+B;AAC9D,MAAI,iBAAiB,MAAM;AACzB,WAAO,MAAM,QAAA;AAAA,EACf;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS,KAAK,MAAM,KAAK;AAC/B,WAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAAA,EAC5C;AACA,MAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,GAAG;AACvD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAyBA,SAAS,UAAU,SAAuB,OAAe,KAAsB;AAC7E,QAAM,WAAW,QAAQ,YAAY,CAAA;AACrC,MAAI,UAAU,QAAQ;AACpB,WAAQ,SAA4C,GAAG;AAAA,EACzD;AACA,QAAM,SAAS,SAAS,KAAK;AAC7B,MAAI,CAAC,aAAa,MAAM,GAAG;AACzB,WAAO;AAAA,EACT;AACA,SAAQ,OAA0C,GAAG;AACvD;AASO,SAAS,0BACd,SACA,SACS;AACT,MAAI,QAAQ,OAAO;AACjB,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,YAAY;AAAA,IAChB,UAAU,SAAS,OAAO,QAAQ,gBAAgB,WAAW;AAAA,EAAA;AAE/D,MAAI,cAAc,MAAM;AACtB,WAAO;AAAA,EACT;AACA,QAAM,SAAS,UAAU,SAAS,OAAO,QAAQ,aAAa,QAAQ;AACtE,QAAM,mBAAmB,OAAO,WAAW,WAAW,OAAO,SAAS;AACtE,MAAI,CAAC,kBAAkB;AACrB,WAAO;AAAA,EACT;AACA,QAAM,MACJ,qBAAqB,OACjB,QAAQ,QACP,QAAQ,gBAAgB,QAAQ;AACvC,QAAM,MAAM,QAAQ,OAAO,oBAAI,KAAA;AAC/B,SAAO,IAAI,YAAY,aAAa;AACtC;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { isJsonObject } from "./standards-sdk.
|
|
2
|
-
import "./standards-sdk.
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
1
|
+
import { isJsonObject } 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";
|
|
6
7
|
function applyCollectedFields(subject, fieldsList) {
|
|
7
8
|
if (fieldsList.length === 0) {
|
|
8
9
|
return subject;
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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,8 +1,9 @@
|
|
|
1
|
-
import { isJsonObject, readString, readSubjectAdditional } from "./standards-sdk.
|
|
2
|
-
import "./standards-sdk.
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
1
|
+
import { isJsonObject, readString, readSubjectAdditional } from "./standards-sdk.es201.js";
|
|
2
|
+
import "./standards-sdk.es184.js";
|
|
3
|
+
import "./standards-sdk.es198.js";
|
|
4
|
+
import "./standards-sdk.es199.js";
|
|
5
|
+
import "./standards-sdk.es200.js";
|
|
6
|
+
import "./standards-sdk.es183.js";
|
|
6
7
|
const ENDPOINT_KEYS = [
|
|
7
8
|
"endpoint",
|
|
8
9
|
"url",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es127.js","sources":["../../src/hcs-25/collectors/endpoints.ts"],"sourcesContent":["import type { Hcs25Subject } from '../types';\nimport { isJsonObject, readString, readSubjectAdditional } from '../signals';\n\nconst ENDPOINT_KEYS = [\n 'endpoint',\n 'url',\n 'serverUrl',\n 'endpointUrl',\n 'baseUrl',\n] as const;\n\nfunction readEndpointKeys(\n record: Record<string, unknown> | undefined,\n): string | null {\n if (!record) {\n return null;\n }\n for (const key of ENDPOINT_KEYS) {\n const value = record[key];\n if (typeof value === 'string' && /^https?:\\/\\//.test(value)) {\n return value;\n }\n }\n return null;\n}\n\n/**\n * Resolves the subject's callable endpoint URL from common metadata\n * locations: `metadata.endpoint|url|serverUrl|endpointUrl|baseUrl`,\n * `metadata.additional.*` equivalents, and the first\n * `metadata.endpoints[].url` (AgentVerse-style endpoint lists).\n */\nexport function resolveSubjectEndpoint(subject: Hcs25Subject): string | null {\n const metadata = subject.metadata;\n if (metadata) {\n const direct = readEndpointKeys(metadata);\n if (direct) {\n return direct;\n }\n\n const endpoints = metadata.endpoints;\n if (Array.isArray(endpoints)) {\n for (const entry of endpoints) {\n if (isJsonObject(entry)) {\n const url = readString(entry, 'url');\n if (url && /^https?:\\/\\//.test(url)) {\n return url;\n }\n }\n }\n }\n }\n\n return readEndpointKeys(readSubjectAdditional(subject));\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standards-sdk.es127.js","sources":["../../src/hcs-25/collectors/endpoints.ts"],"sourcesContent":["import type { Hcs25Subject } from '../types';\nimport { isJsonObject, readString, readSubjectAdditional } from '../signals';\n\nconst ENDPOINT_KEYS = [\n 'endpoint',\n 'url',\n 'serverUrl',\n 'endpointUrl',\n 'baseUrl',\n] as const;\n\nfunction readEndpointKeys(\n record: Record<string, unknown> | undefined,\n): string | null {\n if (!record) {\n return null;\n }\n for (const key of ENDPOINT_KEYS) {\n const value = record[key];\n if (typeof value === 'string' && /^https?:\\/\\//.test(value)) {\n return value;\n }\n }\n return null;\n}\n\n/**\n * Resolves the subject's callable endpoint URL from common metadata\n * locations: `metadata.endpoint|url|serverUrl|endpointUrl|baseUrl`,\n * `metadata.additional.*` equivalents, and the first\n * `metadata.endpoints[].url` (AgentVerse-style endpoint lists).\n */\nexport function resolveSubjectEndpoint(subject: Hcs25Subject): string | null {\n const metadata = subject.metadata;\n if (metadata) {\n const direct = readEndpointKeys(metadata);\n if (direct) {\n return direct;\n }\n\n const endpoints = metadata.endpoints;\n if (Array.isArray(endpoints)) {\n for (const entry of endpoints) {\n if (isJsonObject(entry)) {\n const url = readString(entry, 'url');\n if (url && /^https?:\\/\\//.test(url)) {\n return url;\n }\n }\n }\n }\n }\n\n return readEndpointKeys(readSubjectAdditional(subject));\n}\n"],"names":[],"mappings":";;;;;;AAGA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,iBACP,QACe;AACf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,aAAW,OAAO,eAAe;AAC/B,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,OAAO,UAAU,YAAY,eAAe,KAAK,KAAK,GAAG;AAC3D,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAQO,SAAS,uBAAuB,SAAsC;AAC3E,QAAM,WAAW,QAAQ;AACzB,MAAI,UAAU;AACZ,UAAM,SAAS,iBAAiB,QAAQ;AACxC,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,SAAS;AAC3B,QAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAW,SAAS,WAAW;AAC7B,YAAI,aAAa,KAAK,GAAG;AACvB,gBAAM,MAAM,WAAW,OAAO,KAAK;AACnC,cAAI,OAAO,eAAe,KAAK,GAAG,GAAG;AACnC,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,iBAAiB,sBAAsB,OAAO,CAAC;AACxD;"}
|
|
@@ -1,163 +1,137 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./standards-sdk.
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
6
|
-
import {
|
|
7
|
-
import { Hcs25CollectorHttpError, isTimeoutError } from "./standards-sdk.es122.js";
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (
|
|
1
|
+
import { readString } from "./standards-sdk.es201.js";
|
|
2
|
+
import "./standards-sdk.es184.js";
|
|
3
|
+
import "./standards-sdk.es198.js";
|
|
4
|
+
import "./standards-sdk.es199.js";
|
|
5
|
+
import "./standards-sdk.es200.js";
|
|
6
|
+
import { HCS25_ANS_TRUST_DISCOVERY_SIGNALS } from "./standards-sdk.es183.js";
|
|
7
|
+
import { stripTrailingSlashes, requestJson, Hcs25CollectorHttpError, isTimeoutError } from "./standards-sdk.es122.js";
|
|
8
|
+
const DEFAULT_ANS_BASE_URL = "https://api.godaddy.com";
|
|
9
|
+
const SIGNAL_IDS = HCS25_ANS_TRUST_DISCOVERY_SIGNALS.map(
|
|
10
|
+
(signal) => `ans-trust-discovery.${signal}`
|
|
11
|
+
);
|
|
12
|
+
const DEFAULT_INCLUDED_REGISTRIES = ["ans"];
|
|
13
|
+
function nativeIdFromUaid(value) {
|
|
14
|
+
if (!value) {
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
const nativeId = value.match(/(?:^|;)nativeId=([^;]+)(?:;|$)/i)?.[1]?.trim();
|
|
18
|
+
if (!nativeId) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
return decodeURIComponent(nativeId);
|
|
23
|
+
} catch {
|
|
24
|
+
return nativeId;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function defaultResolveAgentId(subject) {
|
|
28
|
+
const metadata = subject.metadata ?? {};
|
|
29
|
+
return readString(metadata, "nativeId") ?? nativeIdFromUaid(subject.id) ?? nativeIdFromUaid(readString(metadata, "uaidFull"));
|
|
18
30
|
}
|
|
19
|
-
function
|
|
20
|
-
|
|
31
|
+
function readSignalScore(payload) {
|
|
32
|
+
if (!payload || payload.missing === true) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const score = payload.score;
|
|
36
|
+
if (typeof score !== "number" || !Number.isFinite(score)) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return Math.min(100, Math.max(0, score));
|
|
40
|
+
}
|
|
41
|
+
function statusResult(status, now, url, agentId) {
|
|
42
|
+
const provenance = {
|
|
43
|
+
source: "ans-trust-discovery",
|
|
44
|
+
sourceUrl: url,
|
|
45
|
+
subjectId: agentId,
|
|
46
|
+
fetchedAt: now
|
|
47
|
+
};
|
|
48
|
+
const fields = status === "missing" ? void 0 : [
|
|
21
49
|
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
values: {
|
|
28
|
-
availabilityScore: null,
|
|
29
|
-
availabilityCheckedAt: now.toISOString(),
|
|
30
|
-
availabilityReason: reason,
|
|
31
|
-
availabilitySource: "probe",
|
|
32
|
-
availabilityStatus: "missing"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
]
|
|
50
|
+
scope: "ansTrustDiscovery",
|
|
51
|
+
values: {
|
|
52
|
+
ansTrustDiscoveryStatus: status,
|
|
53
|
+
ansTrustDiscoveryUpdatedAt: now
|
|
54
|
+
}
|
|
36
55
|
}
|
|
37
56
|
];
|
|
57
|
+
return SIGNAL_IDS.map((signalId, index) => ({
|
|
58
|
+
signalId,
|
|
59
|
+
status,
|
|
60
|
+
fields: index === 0 ? fields : void 0,
|
|
61
|
+
provenance
|
|
62
|
+
}));
|
|
38
63
|
}
|
|
39
|
-
function
|
|
40
|
-
const
|
|
41
|
-
const
|
|
64
|
+
function createAnsTrustDiscoverySignalAdapter(options = {}) {
|
|
65
|
+
const resolveAgentId = options.resolveAgentId ?? defaultResolveAgentId;
|
|
66
|
+
const baseUrl = stripTrailingSlashes(options.baseUrl ?? DEFAULT_ANS_BASE_URL);
|
|
42
67
|
const collect = async (subject, context) => {
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (lastActiveAt !== null) {
|
|
48
|
-
const mins = minutesSince(lastActiveAt, now);
|
|
49
|
-
if (mins !== null) {
|
|
50
|
-
results.push({
|
|
51
|
-
signalId: "availability.last_seen",
|
|
52
|
-
status: "ok",
|
|
53
|
-
value: mins,
|
|
54
|
-
fields: [{ scope: "metrics", values: { minsFromLastOnline: mins } }],
|
|
55
|
-
provenance: {
|
|
56
|
-
source: "metadata",
|
|
57
|
-
subjectId: subject.id,
|
|
58
|
-
fetchedAt: now.toISOString()
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
const endpoint = resolveEndpoint(subject);
|
|
64
|
-
if (!endpoint) {
|
|
65
|
-
if (results.length > 0) {
|
|
66
|
-
return results;
|
|
67
|
-
}
|
|
68
|
-
return missingResult(now, "no endpoint metadata");
|
|
68
|
+
const now = context.now.toISOString();
|
|
69
|
+
const agentId = resolveAgentId(subject);
|
|
70
|
+
if (!agentId) {
|
|
71
|
+
return statusResult("missing", now, void 0, void 0);
|
|
69
72
|
}
|
|
70
|
-
const
|
|
73
|
+
const url = `${baseUrl}/v1/ans/registered-agents/${encodeURIComponent(agentId)}`;
|
|
74
|
+
let data;
|
|
71
75
|
try {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
});
|
|
78
|
-
return response.status;
|
|
79
|
-
};
|
|
80
|
-
let status;
|
|
81
|
-
if (method === "auto") {
|
|
82
|
-
try {
|
|
83
|
-
status = await attempt("HEAD");
|
|
84
|
-
if (status === 405 || status === 501) {
|
|
85
|
-
status = await attempt("GET");
|
|
86
|
-
}
|
|
87
|
-
} catch (error) {
|
|
88
|
-
if (error instanceof Hcs25CollectorHttpError) {
|
|
89
|
-
throw error;
|
|
90
|
-
}
|
|
91
|
-
status = await attempt("GET");
|
|
92
|
-
}
|
|
93
|
-
} else {
|
|
94
|
-
status = await attempt(method);
|
|
95
|
-
}
|
|
96
|
-
const latencyMs = Date.now() - started;
|
|
97
|
-
const reachable = status < 500;
|
|
98
|
-
results.push({
|
|
99
|
-
signalId: "availability.probe",
|
|
100
|
-
status: "ok",
|
|
101
|
-
value: reachable ? 1 : 0,
|
|
102
|
-
fields: [
|
|
103
|
-
{
|
|
104
|
-
scope: "root",
|
|
105
|
-
values: {
|
|
106
|
-
availabilityScore: reachable ? 1 : 0,
|
|
107
|
-
availabilityCheckedAt: now.toISOString(),
|
|
108
|
-
availabilityLatencyMs: latencyMs,
|
|
109
|
-
availabilityReason: reachable ? "reachable" : `endpoint returned HTTP ${status}`,
|
|
110
|
-
availabilitySource: "probe",
|
|
111
|
-
availabilityStatus: "ok"
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
],
|
|
115
|
-
provenance: {
|
|
116
|
-
source: "probe",
|
|
117
|
-
sourceUrl: endpoint,
|
|
118
|
-
subjectId: subject.id,
|
|
119
|
-
fetchedAt: now.toISOString()
|
|
120
|
-
}
|
|
76
|
+
data = await requestJson(url, {
|
|
77
|
+
fetch: context.fetch,
|
|
78
|
+
headers: options.headers,
|
|
79
|
+
timeoutMs: context.timeoutMs,
|
|
80
|
+
signal: context.signal
|
|
121
81
|
});
|
|
122
|
-
return results;
|
|
123
82
|
} catch (error) {
|
|
124
|
-
|
|
125
|
-
|
|
83
|
+
if (error instanceof Hcs25CollectorHttpError && error.status === 404) {
|
|
84
|
+
return statusResult("missing", now, url, agentId);
|
|
85
|
+
}
|
|
86
|
+
return statusResult(
|
|
87
|
+
isTimeoutError(error) ? "timeout" : "error",
|
|
88
|
+
now,
|
|
89
|
+
url,
|
|
90
|
+
agentId
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
const signals = data.signals;
|
|
94
|
+
const values = {
|
|
95
|
+
ansTrustDiscoveryUpdatedAt: now
|
|
96
|
+
};
|
|
97
|
+
let present = 0;
|
|
98
|
+
const results = [];
|
|
99
|
+
for (const signal of HCS25_ANS_TRUST_DISCOVERY_SIGNALS) {
|
|
100
|
+
const payload = signals && typeof signals === "object" ? signals[signal] : void 0;
|
|
101
|
+
const score = readSignalScore(payload);
|
|
102
|
+
const signalId = `ans-trust-discovery.${signal}`;
|
|
103
|
+
values[signalId] = score;
|
|
104
|
+
if (score !== null) {
|
|
105
|
+
present += 1;
|
|
106
|
+
}
|
|
126
107
|
results.push({
|
|
127
|
-
signalId
|
|
128
|
-
status:
|
|
129
|
-
|
|
130
|
-
{
|
|
131
|
-
scope: "root",
|
|
132
|
-
values: {
|
|
133
|
-
availabilityCheckedAt: now.toISOString(),
|
|
134
|
-
availabilityReason: error instanceof Error ? error.message : String(error),
|
|
135
|
-
availabilitySource: "probe",
|
|
136
|
-
availabilityStatus: statusValue
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
],
|
|
108
|
+
signalId,
|
|
109
|
+
status: score === null ? "missing" : "ok",
|
|
110
|
+
value: score ?? void 0,
|
|
140
111
|
provenance: {
|
|
141
|
-
source: "
|
|
142
|
-
sourceUrl:
|
|
143
|
-
subjectId:
|
|
144
|
-
fetchedAt: now
|
|
112
|
+
source: "ans-trust-discovery",
|
|
113
|
+
sourceUrl: url,
|
|
114
|
+
subjectId: agentId,
|
|
115
|
+
fetchedAt: now
|
|
145
116
|
}
|
|
146
117
|
});
|
|
147
|
-
return results;
|
|
148
118
|
}
|
|
119
|
+
values.ansTrustDiscoveryStatus = present > 0 ? "ok" : "missing";
|
|
120
|
+
const carrier = results.find((result) => result.status === "ok") ?? results[0];
|
|
121
|
+
carrier.fields = [{ scope: "ansTrustDiscovery", values }];
|
|
122
|
+
return results;
|
|
149
123
|
};
|
|
150
124
|
return {
|
|
151
|
-
id: "
|
|
152
|
-
produces:
|
|
125
|
+
id: "ans-trust-discovery",
|
|
126
|
+
produces: SIGNAL_IDS,
|
|
153
127
|
timeoutMs: options.timeoutMs,
|
|
154
|
-
includeRegistries: options.includeRegistries,
|
|
155
|
-
excludeRegistries: options.excludeRegistries
|
|
128
|
+
includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,
|
|
129
|
+
excludeRegistries: options.excludeRegistries,
|
|
156
130
|
appliesTo: options.appliesTo,
|
|
157
131
|
collect
|
|
158
132
|
};
|
|
159
133
|
}
|
|
160
134
|
export {
|
|
161
|
-
|
|
135
|
+
createAnsTrustDiscoverySignalAdapter
|
|
162
136
|
};
|
|
163
137
|
//# sourceMappingURL=standards-sdk.es128.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es128.js","sources":["../../src/hcs-25/collectors/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es128.js","sources":["../../src/hcs-25/collectors/ans-trust-discovery.ts"],"sourcesContent":["import type { Hcs25JsonValue, Hcs25Subject } from '../types';\nimport { readString } from '../signals';\nimport { HCS25_ANS_TRUST_DISCOVERY_SIGNALS } from '../signals/ans-trust-discovery';\nimport {\n Hcs25CollectorHttpError,\n isTimeoutError,\n requestJson,\n stripTrailingSlashes,\n} from './http';\nimport type {\n Hcs25CollectContext,\n Hcs25SignalAdapter,\n Hcs25SignalAdapterResult,\n} from './types';\n\n/**\n * Provider listed in the ANS Trust Discovery signal specification.\n * Callers can point {@link Hcs25AnsTrustDiscoverySignalAdapterOptions.baseUrl}\n * at another provider that serves the same response shape.\n */\nconst DEFAULT_ANS_BASE_URL = 'https://api.godaddy.com';\n\nconst SIGNAL_IDS = HCS25_ANS_TRUST_DISCOVERY_SIGNALS.map(\n signal => `ans-trust-discovery.${signal}`,\n);\n\n/**\n * Options for the ANS Trust Discovery signal adapter.\n */\nexport interface Hcs25AnsTrustDiscoverySignalAdapterOptions {\n /**\n * ANS Trust Index origin. Requests\n * `GET {baseUrl}/v1/ans/registered-agents/{agentId}`.\n * Default `https://api.godaddy.com`.\n */\n baseUrl?: string;\n /** Extra request headers, such as a provider credential. */\n headers?: Record<string, string>;\n /**\n * Resolves the provider agent id. Default reads `metadata.nativeId`,\n * then the `nativeId` parameter of a UAID in `subject.id` or\n * `metadata.uaidFull`.\n */\n resolveAgentId?: (subject: Hcs25Subject) => string | null;\n timeoutMs?: number;\n includeRegistries?: readonly string[];\n excludeRegistries?: readonly string[];\n appliesTo?: (subject: Hcs25Subject) => boolean;\n}\n\nconst DEFAULT_INCLUDED_REGISTRIES: readonly string[] = ['ans'];\n\ninterface AnsSignalPayload {\n score?: unknown;\n missing?: unknown;\n}\n\ninterface AnsTrustResponse {\n signals?: Record<string, AnsSignalPayload>;\n}\n\nfunction nativeIdFromUaid(value: string | null): string | null {\n if (!value) {\n return null;\n }\n const nativeId = value.match(/(?:^|;)nativeId=([^;]+)(?:;|$)/i)?.[1]?.trim();\n if (!nativeId) {\n return null;\n }\n try {\n return decodeURIComponent(nativeId);\n } catch {\n return nativeId;\n }\n}\n\nfunction defaultResolveAgentId(subject: Hcs25Subject): string | null {\n const metadata = subject.metadata ?? {};\n return (\n readString(metadata, 'nativeId') ??\n nativeIdFromUaid(subject.id) ??\n nativeIdFromUaid(readString(metadata, 'uaidFull'))\n );\n}\n\nfunction readSignalScore(payload: AnsSignalPayload | undefined): number | null {\n if (!payload || payload.missing === true) {\n return null;\n }\n const score = payload.score;\n if (typeof score !== 'number' || !Number.isFinite(score)) {\n return null;\n }\n return Math.min(100, Math.max(0, score));\n}\n\nfunction statusResult(\n status: 'missing' | 'timeout' | 'error',\n now: string,\n url: string | undefined,\n agentId: string | undefined,\n): Hcs25SignalAdapterResult[] {\n const provenance = {\n source: 'ans-trust-discovery',\n sourceUrl: url,\n subjectId: agentId,\n fetchedAt: now,\n };\n const fields =\n status === 'missing'\n ? undefined\n : [\n {\n scope: 'ansTrustDiscovery',\n values: {\n ansTrustDiscoveryStatus: status,\n ansTrustDiscoveryUpdatedAt: now,\n },\n },\n ];\n return SIGNAL_IDS.map((signalId, index) => ({\n signalId,\n status,\n fields: index === 0 ? fields : undefined,\n provenance,\n }));\n}\n\n/**\n * Creates the `ans-trust-discovery` signal adapter: reads the eight ANS\n * Trust Index signals from a provider's registered-agent endpoint and\n * stores them under `metadata.ansTrustDiscovery`.\n */\nexport function createAnsTrustDiscoverySignalAdapter(\n options: Hcs25AnsTrustDiscoverySignalAdapterOptions = {},\n): Hcs25SignalAdapter {\n const resolveAgentId = options.resolveAgentId ?? defaultResolveAgentId;\n const baseUrl = stripTrailingSlashes(options.baseUrl ?? DEFAULT_ANS_BASE_URL);\n\n const collect = async (\n subject: Hcs25Subject,\n context: Hcs25CollectContext,\n ): Promise<Hcs25SignalAdapterResult[]> => {\n const now = context.now.toISOString();\n const agentId = resolveAgentId(subject);\n if (!agentId) {\n return statusResult('missing', now, undefined, undefined);\n }\n\n const url = `${baseUrl}/v1/ans/registered-agents/${encodeURIComponent(agentId)}`;\n let data: AnsTrustResponse;\n try {\n data = await requestJson<AnsTrustResponse>(url, {\n fetch: context.fetch,\n headers: options.headers,\n timeoutMs: context.timeoutMs,\n signal: context.signal,\n });\n } catch (error) {\n if (error instanceof Hcs25CollectorHttpError && error.status === 404) {\n return statusResult('missing', now, url, agentId);\n }\n return statusResult(\n isTimeoutError(error) ? 'timeout' : 'error',\n now,\n url,\n agentId,\n );\n }\n\n const signals = data.signals;\n const values: Record<string, Hcs25JsonValue> = {\n ansTrustDiscoveryUpdatedAt: now,\n };\n let present = 0;\n const results: Hcs25SignalAdapterResult[] = [];\n\n for (const signal of HCS25_ANS_TRUST_DISCOVERY_SIGNALS) {\n const payload =\n signals && typeof signals === 'object' ? signals[signal] : undefined;\n const score = readSignalScore(payload);\n const signalId = `ans-trust-discovery.${signal}`;\n values[signalId] = score;\n if (score !== null) {\n present += 1;\n }\n results.push({\n signalId,\n status: score === null ? 'missing' : 'ok',\n value: score ?? undefined,\n provenance: {\n source: 'ans-trust-discovery',\n sourceUrl: url,\n subjectId: agentId,\n fetchedAt: now,\n },\n });\n }\n\n values.ansTrustDiscoveryStatus = present > 0 ? 'ok' : 'missing';\n const carrier =\n results.find(result => result.status === 'ok') ?? results[0];\n carrier.fields = [{ scope: 'ansTrustDiscovery', values }];\n return results;\n };\n\n return {\n id: 'ans-trust-discovery',\n produces: SIGNAL_IDS,\n timeoutMs: options.timeoutMs,\n includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,\n excludeRegistries: options.excludeRegistries,\n appliesTo: options.appliesTo,\n collect,\n };\n}\n"],"names":[],"mappings":"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"}
|