@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,29 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { hcs25SignalStatusSchema } from "./standards-sdk.es118.js";
|
|
3
|
+
const HCS25_ANS_TRUST_DISCOVERY_SIGNALS = [
|
|
4
|
+
"certtype",
|
|
5
|
+
"dnssecurity",
|
|
6
|
+
"agentage",
|
|
7
|
+
"versionstability",
|
|
8
|
+
"dnsconsistency",
|
|
9
|
+
"httpsrecord",
|
|
10
|
+
"agentcard",
|
|
11
|
+
"certificatehygiene"
|
|
12
|
+
];
|
|
13
|
+
const ansTrustDiscoveryScoreSchema = z.number().min(0).max(100).nullish();
|
|
14
|
+
const hcs25AnsTrustDiscoveryFieldsSchema = z.object({
|
|
15
|
+
"ans-trust-discovery.certtype": ansTrustDiscoveryScoreSchema,
|
|
16
|
+
"ans-trust-discovery.dnssecurity": ansTrustDiscoveryScoreSchema,
|
|
17
|
+
"ans-trust-discovery.agentage": ansTrustDiscoveryScoreSchema,
|
|
18
|
+
"ans-trust-discovery.versionstability": ansTrustDiscoveryScoreSchema,
|
|
19
|
+
"ans-trust-discovery.dnsconsistency": ansTrustDiscoveryScoreSchema,
|
|
20
|
+
"ans-trust-discovery.httpsrecord": ansTrustDiscoveryScoreSchema,
|
|
21
|
+
"ans-trust-discovery.agentcard": ansTrustDiscoveryScoreSchema,
|
|
22
|
+
"ans-trust-discovery.certificatehygiene": ansTrustDiscoveryScoreSchema,
|
|
23
|
+
ansTrustDiscoveryStatus: hcs25SignalStatusSchema.nullish(),
|
|
24
|
+
ansTrustDiscoveryUpdatedAt: z.string().nullish()
|
|
25
|
+
}).passthrough();
|
|
23
26
|
export {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
meanOfPresent,
|
|
27
|
-
normalizeRatio
|
|
27
|
+
HCS25_ANS_TRUST_DISCOVERY_SIGNALS,
|
|
28
|
+
hcs25AnsTrustDiscoveryFieldsSchema
|
|
28
29
|
};
|
|
29
30
|
//# sourceMappingURL=standards-sdk.es183.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es183.js","sources":["../../src/hcs-25/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es183.js","sources":["../../src/hcs-25/signals/ans-trust-discovery.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { hcs25SignalStatusSchema } from '../types';\n\n/**\n * Signals published by an ANS Trust Index provider and consumed by the\n * `ans-trust-discovery` adapter, in specification order.\n */\nexport const HCS25_ANS_TRUST_DISCOVERY_SIGNALS = [\n 'certtype',\n 'dnssecurity',\n 'agentage',\n 'versionstability',\n 'dnsconsistency',\n 'httpsrecord',\n 'agentcard',\n 'certificatehygiene',\n] as const;\n\n/**\n * One signal name from {@link HCS25_ANS_TRUST_DISCOVERY_SIGNALS}.\n */\nexport type Hcs25AnsTrustDiscoverySignal =\n (typeof HCS25_ANS_TRUST_DISCOVERY_SIGNALS)[number];\n\nconst ansTrustDiscoveryScoreSchema = z.number().min(0).max(100).nullish();\n\n/**\n * Stored-field schema for ANS Trust Index signals stored under\n * `metadata.ansTrustDiscovery`. Each signal is a provider-normalized score\n * in `[0,100]`, or null when the provider could not compute it.\n */\nexport const hcs25AnsTrustDiscoveryFieldsSchema = z\n .object({\n 'ans-trust-discovery.certtype': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.dnssecurity': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.agentage': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.versionstability': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.dnsconsistency': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.httpsrecord': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.agentcard': ansTrustDiscoveryScoreSchema,\n 'ans-trust-discovery.certificatehygiene': ansTrustDiscoveryScoreSchema,\n ansTrustDiscoveryStatus: hcs25SignalStatusSchema.nullish(),\n ansTrustDiscoveryUpdatedAt: z.string().nullish(),\n })\n .passthrough();\n"],"names":[],"mappings":";;AAQO,MAAM,oCAAoC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQA,MAAM,+BAA+B,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAA;AAOzD,MAAM,qCAAqC,EAC/C,OAAO;AAAA,EACN,gCAAgC;AAAA,EAChC,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,wCAAwC;AAAA,EACxC,sCAAsC;AAAA,EACtC,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,0CAA0C;AAAA,EAC1C,yBAAyB,wBAAwB,QAAA;AAAA,EACjD,4BAA4B,EAAE,OAAA,EAAS,QAAA;AACzC,CAAC,EACA,YAAA;"}
|
|
@@ -1,61 +1,199 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const SIMPLE_EVAL_GRADE_CORRECT = {
|
|
3
|
+
status: "correct",
|
|
4
|
+
score: 100
|
|
5
|
+
};
|
|
6
|
+
const SIMPLE_EVAL_GRADE_WRONG = {
|
|
7
|
+
status: "wrong",
|
|
8
|
+
score: 0
|
|
9
|
+
};
|
|
10
|
+
const SIMPLE_EVAL_GRADE_UNPARSEABLE = {
|
|
11
|
+
status: "unparseable",
|
|
12
|
+
score: 0
|
|
13
|
+
};
|
|
14
|
+
function mapSimpleEvalStatus(token) {
|
|
15
|
+
switch (token) {
|
|
16
|
+
case "timeout":
|
|
17
|
+
return "timeout";
|
|
18
|
+
case "stale":
|
|
19
|
+
return "stale";
|
|
20
|
+
case "missing":
|
|
21
|
+
case "skipped":
|
|
22
|
+
return "missing";
|
|
23
|
+
case "upstream-error":
|
|
24
|
+
case "error":
|
|
25
|
+
return "error";
|
|
26
|
+
default:
|
|
27
|
+
return "ok";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function gradeSimpleMathResponse(response, expected) {
|
|
31
|
+
const match = response.match(/-?\d+(?:\.\d+)?/);
|
|
32
|
+
if (!match) {
|
|
33
|
+
return SIMPLE_EVAL_GRADE_UNPARSEABLE;
|
|
34
|
+
}
|
|
35
|
+
const value = Number.parseFloat(match[0]);
|
|
36
|
+
return value === expected ? SIMPLE_EVAL_GRADE_CORRECT : SIMPLE_EVAL_GRADE_WRONG;
|
|
37
|
+
}
|
|
38
|
+
const SCIENCE_CHOICE_LETTERS = ["A", "B", "C", "D"];
|
|
39
|
+
function gradeSimpleScienceResponse(response, correctChoice, options) {
|
|
40
|
+
const letterMatch = response.match(/\b([A-Da-d])\b/);
|
|
41
|
+
if (letterMatch) {
|
|
42
|
+
return letterMatch[1].toUpperCase() === correctChoice ? SIMPLE_EVAL_GRADE_CORRECT : SIMPLE_EVAL_GRADE_WRONG;
|
|
43
|
+
}
|
|
44
|
+
if (options) {
|
|
45
|
+
const normalized = response.toLowerCase();
|
|
46
|
+
const matchedIndex = options.findIndex(
|
|
47
|
+
(option) => option.length > 0 && normalized.includes(option.toLowerCase())
|
|
48
|
+
);
|
|
49
|
+
if (matchedIndex >= 0) {
|
|
50
|
+
return SCIENCE_CHOICE_LETTERS[matchedIndex] === correctChoice ? SIMPLE_EVAL_GRADE_CORRECT : SIMPLE_EVAL_GRADE_WRONG;
|
|
51
|
+
}
|
|
14
52
|
}
|
|
15
|
-
|
|
16
|
-
return metadata ? readNumber(metadata, key) : null;
|
|
53
|
+
return SIMPLE_EVAL_GRADE_UNPARSEABLE;
|
|
17
54
|
}
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
|
|
55
|
+
function randomInt(rng, minInclusive, maxInclusive) {
|
|
56
|
+
const span = maxInclusive - minInclusive + 1;
|
|
57
|
+
return minInclusive + Math.floor(rng() * span);
|
|
58
|
+
}
|
|
59
|
+
function generateSimpleMathQuestion(rng = Math.random) {
|
|
60
|
+
const operations = ["add", "sub", "mul"];
|
|
61
|
+
const operation = operations[Math.floor(rng() * operations.length) % operations.length];
|
|
62
|
+
let left;
|
|
63
|
+
let right;
|
|
64
|
+
let expected;
|
|
65
|
+
let expression;
|
|
66
|
+
if (operation === "add") {
|
|
67
|
+
left = randomInt(rng, 10, 100);
|
|
68
|
+
right = randomInt(rng, 10, 100);
|
|
69
|
+
expected = left + right;
|
|
70
|
+
expression = `${left}+${right}`;
|
|
71
|
+
} else if (operation === "sub") {
|
|
72
|
+
left = randomInt(rng, 10, 100);
|
|
73
|
+
right = randomInt(rng, 1, 50);
|
|
74
|
+
expected = left - right;
|
|
75
|
+
expression = `${left}-${right}`;
|
|
76
|
+
} else {
|
|
77
|
+
left = randomInt(rng, 2, 12);
|
|
78
|
+
right = randomInt(rng, 2, 12);
|
|
79
|
+
expected = left * right;
|
|
80
|
+
expression = `${left}x${right}`;
|
|
81
|
+
}
|
|
82
|
+
const operator = operation === "add" ? "+" : operation === "sub" ? "−" : "×";
|
|
21
83
|
return {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
name: "jobs.successRate",
|
|
29
|
-
normalize: ({ subject }) => {
|
|
30
|
-
const raw = readAcpField(subject, "successRate");
|
|
31
|
-
return raw === null ? MISSING : { value: clampScore(normalizeRatio(raw) * 100), status: "ok" };
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: "jobs.deliveryVolume",
|
|
36
|
-
normalize: ({ subject }) => {
|
|
37
|
-
const volume = readAcpField(subject, "volume") ?? readAcpField(subject, "successfulJobCount");
|
|
38
|
-
return volume === null ? MISSING : { value: logScale(volume, volumeCap), status: "ok" };
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "jobs.revenue",
|
|
43
|
-
normalize: ({ subject }) => {
|
|
44
|
-
const revenue = readAcpField(subject, "revenue");
|
|
45
|
-
return revenue === null ? MISSING : { value: logScale(revenue, revenueCap), status: "ok" };
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "reviews.rating",
|
|
50
|
-
normalize: ({ subject }) => {
|
|
51
|
-
const rating = readAcpField(subject, "rating");
|
|
52
|
-
return rating === null ? MISSING : { value: clampScore(rating / 5 * 100), status: "ok" };
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
]
|
|
84
|
+
questionId: `math:${operation}:${expression}`,
|
|
85
|
+
prompt: `Answer with just the number.
|
|
86
|
+
|
|
87
|
+
What is ${left} ${operator} ${right}?`,
|
|
88
|
+
expected
|
|
56
89
|
};
|
|
57
90
|
}
|
|
91
|
+
function sciencePrompt(stem, options) {
|
|
92
|
+
const lines = options.map(
|
|
93
|
+
(option, index) => `${SCIENCE_CHOICE_LETTERS[index]}) ${option}`
|
|
94
|
+
);
|
|
95
|
+
return `Answer with just A, B, C, or D.
|
|
96
|
+
|
|
97
|
+
${stem}
|
|
98
|
+
${lines.join("\n")}`;
|
|
99
|
+
}
|
|
100
|
+
function scienceQuestion(questionId, stem, options, correctIndex) {
|
|
101
|
+
return {
|
|
102
|
+
questionId,
|
|
103
|
+
prompt: sciencePrompt(stem, options),
|
|
104
|
+
options: [options[0], options[1], options[2], options[3]],
|
|
105
|
+
correctChoice: SCIENCE_CHOICE_LETTERS[correctIndex]
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const SIMPLE_SCIENCE_QUESTION_BANK = [
|
|
109
|
+
scienceQuestion(
|
|
110
|
+
"science:photosynthesis-gas",
|
|
111
|
+
"Which gas do plants primarily absorb during photosynthesis?",
|
|
112
|
+
["Oxygen", "Carbon dioxide", "Nitrogen", "Helium"],
|
|
113
|
+
1
|
|
114
|
+
),
|
|
115
|
+
scienceQuestion(
|
|
116
|
+
"science:water-formula",
|
|
117
|
+
"What is the chemical formula for water?",
|
|
118
|
+
["HO", "H2O2", "H2O", "O2H"],
|
|
119
|
+
2
|
|
120
|
+
),
|
|
121
|
+
scienceQuestion(
|
|
122
|
+
"science:blood-pump",
|
|
123
|
+
"Which organ pumps blood through the human body?",
|
|
124
|
+
["Liver", "Heart", "Lungs", "Kidneys"],
|
|
125
|
+
1
|
|
126
|
+
),
|
|
127
|
+
scienceQuestion(
|
|
128
|
+
"science:vacuum-speed",
|
|
129
|
+
"Which of these travels fastest in a vacuum?",
|
|
130
|
+
["Sound", "Water waves", "Wind", "Light"],
|
|
131
|
+
3
|
|
132
|
+
),
|
|
133
|
+
scienceQuestion(
|
|
134
|
+
"science:red-planet",
|
|
135
|
+
"Which planet is known as the Red Planet?",
|
|
136
|
+
["Mars", "Venus", "Jupiter", "Mercury"],
|
|
137
|
+
0
|
|
138
|
+
),
|
|
139
|
+
scienceQuestion(
|
|
140
|
+
"science:boiling-point",
|
|
141
|
+
"At what temperature does water boil at sea level, in Celsius?",
|
|
142
|
+
["50°C", "100°C", "150°C", "200°C"],
|
|
143
|
+
1
|
|
144
|
+
),
|
|
145
|
+
scienceQuestion(
|
|
146
|
+
"science:photosynthesis-energy",
|
|
147
|
+
"What is the primary source of energy for photosynthesis?",
|
|
148
|
+
["Sunlight", "Moonlight", "Lightning", "Starlight"],
|
|
149
|
+
0
|
|
150
|
+
),
|
|
151
|
+
scienceQuestion(
|
|
152
|
+
"science:atom-charge",
|
|
153
|
+
"What is the electrical charge of a proton?",
|
|
154
|
+
["Negative", "Neutral", "Positive", "Variable"],
|
|
155
|
+
2
|
|
156
|
+
)
|
|
157
|
+
];
|
|
158
|
+
function sampleSimpleScienceQuestion(rng = Math.random) {
|
|
159
|
+
const index = Math.floor(rng() * SIMPLE_SCIENCE_QUESTION_BANK.length) % SIMPLE_SCIENCE_QUESTION_BANK.length;
|
|
160
|
+
return SIMPLE_SCIENCE_QUESTION_BANK[index];
|
|
161
|
+
}
|
|
162
|
+
const hcs25SimpleEvalFieldsSchema = z.object({
|
|
163
|
+
a2aSimpleMathScore: z.number().nullish(),
|
|
164
|
+
a2aSimpleMathStatus: z.string().nullish(),
|
|
165
|
+
a2aSimpleMathQuestionId: z.string().nullish(),
|
|
166
|
+
a2aSimpleMathSessionId: z.string().nullish(),
|
|
167
|
+
a2aSimpleMathResponse: z.string().nullish(),
|
|
168
|
+
a2aSimpleMathError: z.string().nullish(),
|
|
169
|
+
a2aSimpleMathUpdatedAt: z.string().nullish(),
|
|
170
|
+
a2aSimpleScienceScore: z.number().nullish(),
|
|
171
|
+
a2aSimpleScienceStatus: z.string().nullish(),
|
|
172
|
+
a2aSimpleScienceQuestionId: z.string().nullish(),
|
|
173
|
+
a2aSimpleScienceSessionId: z.string().nullish(),
|
|
174
|
+
a2aSimpleScienceResponse: z.string().nullish(),
|
|
175
|
+
a2aSimpleScienceError: z.string().nullish(),
|
|
176
|
+
a2aSimpleScienceUpdatedAt: z.string().nullish(),
|
|
177
|
+
nandaSimpleMathScore: z.number().nullish(),
|
|
178
|
+
nandaSimpleMathStatus: z.string().nullish(),
|
|
179
|
+
nandaSimpleMathQuestionId: z.string().nullish(),
|
|
180
|
+
nandaSimpleMathResponse: z.string().nullish(),
|
|
181
|
+
nandaSimpleMathError: z.string().nullish(),
|
|
182
|
+
nandaSimpleMathUpdatedAt: z.string().nullish(),
|
|
183
|
+
nandaSimpleScienceScore: z.number().nullish(),
|
|
184
|
+
nandaSimpleScienceStatus: z.string().nullish(),
|
|
185
|
+
nandaSimpleScienceQuestionId: z.string().nullish(),
|
|
186
|
+
nandaSimpleScienceResponse: z.string().nullish(),
|
|
187
|
+
nandaSimpleScienceError: z.string().nullish(),
|
|
188
|
+
nandaSimpleScienceUpdatedAt: z.string().nullish()
|
|
189
|
+
}).passthrough();
|
|
58
190
|
export {
|
|
59
|
-
|
|
191
|
+
SIMPLE_SCIENCE_QUESTION_BANK,
|
|
192
|
+
generateSimpleMathQuestion,
|
|
193
|
+
gradeSimpleMathResponse,
|
|
194
|
+
gradeSimpleScienceResponse,
|
|
195
|
+
hcs25SimpleEvalFieldsSchema,
|
|
196
|
+
mapSimpleEvalStatus,
|
|
197
|
+
sampleSimpleScienceQuestion
|
|
60
198
|
};
|
|
61
199
|
//# sourceMappingURL=standards-sdk.es184.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es184.js","sources":["../../src/hcs-25/adapters/acp.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport { readNumber, readSubjectMetrics } from '../signals';\nimport { logScale, normalizeRatio } from './normalization';\n\n/**\n * Options for the ACP/Virtuals marketplace adapter.\n */\nexport interface Hcs25AcpAdapterOptions {\n /** Volume cap used for log scaling delivery volume. Default 500. */\n volumeCap?: number;\n /** Revenue cap used for log scaling revenue. Default 10000. */\n revenueCap?: number;\n /** Registries where marketplace metrics apply. */\n includeRegistries?: readonly string[];\n}\n\nconst DEFAULT_INCLUDED_REGISTRIES: readonly string[] = ['virtuals-protocol'];\n\nconst MISSING: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\nfunction readAcpField(subject: Hcs25Subject, key: string): number | null {\n const metricsValue = readNumber(readSubjectMetrics(subject), key);\n if (metricsValue !== null) {\n return metricsValue;\n }\n const metadata = subject.metadata;\n return metadata ? readNumber(metadata, key) : null;\n}\n\n/**\n * Creates the `acp` adapter: normalizes marketplace-native execution\n * performance (job success, delivery volume, revenue, ratings) for\n * ACP/Virtuals-style agents. Delivery volume falls back to the successful\n * job count when no provider-defined volume exists.\n */\nexport function createAcpAdapter(\n options: Hcs25AcpAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const volumeCap = options.volumeCap ?? 500;\n const revenueCap = options.revenueCap ?? 10000;\n\n return {\n id: 'acp',\n weight: 2,\n contributionMode: 'scoped',\n includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,\n components: [\n {\n name: 'jobs.successRate',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const raw = readAcpField(subject, 'successRate');\n return raw === null\n ? MISSING\n : { value: clampScore(normalizeRatio(raw) * 100), status: 'ok' };\n },\n },\n {\n name: 'jobs.deliveryVolume',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const volume =\n readAcpField(subject, 'volume') ??\n readAcpField(subject, 'successfulJobCount');\n return volume === null\n ? MISSING\n : { value: logScale(volume, volumeCap), status: 'ok' };\n },\n },\n {\n name: 'jobs.revenue',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const revenue = readAcpField(subject, 'revenue');\n return revenue === null\n ? MISSING\n : { value: logScale(revenue, revenueCap), status: 'ok' };\n },\n },\n {\n name: 'reviews.rating',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const rating = readAcpField(subject, 'rating');\n return rating === null\n ? MISSING\n : { value: clampScore((rating / 5) * 100), status: 'ok' };\n },\n },\n ],\n };\n}\n"],"names":[],"mappings":";;;;;;;AAqBA,MAAM,8BAAiD,CAAC,mBAAmB;AAE3E,MAAM,UAAgC,EAAE,OAAO,GAAG,QAAQ,UAAA;AAE1D,SAAS,aAAa,SAAuB,KAA4B;AACvE,QAAM,eAAe,WAAW,mBAAmB,OAAO,GAAG,GAAG;AAChE,MAAI,iBAAiB,MAAM;AACzB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,QAAQ;AACzB,SAAO,WAAW,WAAW,UAAU,GAAG,IAAI;AAChD;AAQO,SAAS,iBACd,UAAkC,IACV;AACxB,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,aAAa,QAAQ,cAAc;AAEzC,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,MAAM,aAAa,SAAS,aAAa;AAC/C,iBAAO,QAAQ,OACX,UACA,EAAE,OAAO,WAAW,eAAe,GAAG,IAAI,GAAG,GAAG,QAAQ,KAAA;AAAA,QAC9D;AAAA,MAAA;AAAA,MAEF;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,SACJ,aAAa,SAAS,QAAQ,KAC9B,aAAa,SAAS,oBAAoB;AAC5C,iBAAO,WAAW,OACd,UACA,EAAE,OAAO,SAAS,QAAQ,SAAS,GAAG,QAAQ,KAAA;AAAA,QACpD;AAAA,MAAA;AAAA,MAEF;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,UAAU,aAAa,SAAS,SAAS;AAC/C,iBAAO,YAAY,OACf,UACA,EAAE,OAAO,SAAS,SAAS,UAAU,GAAG,QAAQ,KAAA;AAAA,QACtD;AAAA,MAAA;AAAA,MAEF;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,SAAS,aAAa,SAAS,QAAQ;AAC7C,iBAAO,WAAW,OACd,UACA,EAAE,OAAO,WAAY,SAAS,IAAK,GAAG,GAAG,QAAQ,KAAA;AAAA,QACvD;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es184.js","sources":["../../src/hcs-25/signals/simple-evals.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type { Hcs25SignalStatus } from '../types';\n\n/**\n * Status tokens emitted by simple eval runners, per the HCS-25 simple-evals\n * methodology.\n */\nexport type Hcs25SimpleEvalStatus =\n | 'correct'\n | 'wrong'\n | 'unparseable'\n | 'timeout'\n | 'missing'\n | 'empty'\n | 'skipped'\n | 'upstream-error'\n | 'stale'\n | 'error';\n\n/**\n * A graded simple-eval outcome. Scores are binary per the methodology.\n */\nexport interface Hcs25SimpleEvalGrade {\n status: Hcs25SimpleEvalStatus;\n score: number;\n}\n\nconst SIMPLE_EVAL_GRADE_CORRECT: Hcs25SimpleEvalGrade = {\n status: 'correct',\n score: 100,\n};\n\nconst SIMPLE_EVAL_GRADE_WRONG: Hcs25SimpleEvalGrade = {\n status: 'wrong',\n score: 0,\n};\n\nconst SIMPLE_EVAL_GRADE_UNPARSEABLE: Hcs25SimpleEvalGrade = {\n status: 'unparseable',\n score: 0,\n};\n\n/**\n * Maps a simple-eval status token onto an HCS-25 signal status code.\n * Substantive outcomes stay `ok` because the stored score carries the value;\n * skipped runs are treated as missing.\n */\nexport function mapSimpleEvalStatus(token: string | null): Hcs25SignalStatus {\n switch (token) {\n case 'timeout':\n return 'timeout';\n case 'stale':\n return 'stale';\n case 'missing':\n case 'skipped':\n return 'missing';\n case 'upstream-error':\n case 'error':\n return 'error';\n default:\n return 'ok';\n }\n}\n\n/**\n * Grades a SimpleMath response by extracting the first numeric token and\n * comparing it against the expected answer.\n */\nexport function gradeSimpleMathResponse(\n response: string,\n expected: number,\n): Hcs25SimpleEvalGrade {\n const match = response.match(/-?\\d+(?:\\.\\d+)?/);\n if (!match) {\n return SIMPLE_EVAL_GRADE_UNPARSEABLE;\n }\n\n const value = Number.parseFloat(match[0]);\n return value === expected\n ? SIMPLE_EVAL_GRADE_CORRECT\n : SIMPLE_EVAL_GRADE_WRONG;\n}\n\nconst SCIENCE_CHOICE_LETTERS = ['A', 'B', 'C', 'D'] as const;\n\n/**\n * Grades a SimpleScience response by extracting a standalone `A|B|C|D`\n * token, falling back to full option-text matching when options are\n * provided.\n */\nexport function gradeSimpleScienceResponse(\n response: string,\n correctChoice: (typeof SCIENCE_CHOICE_LETTERS)[number],\n options?: readonly string[],\n): Hcs25SimpleEvalGrade {\n const letterMatch = response.match(/\\b([A-Da-d])\\b/);\n if (letterMatch) {\n return letterMatch[1].toUpperCase() === correctChoice\n ? SIMPLE_EVAL_GRADE_CORRECT\n : SIMPLE_EVAL_GRADE_WRONG;\n }\n\n if (options) {\n const normalized = response.toLowerCase();\n const matchedIndex = options.findIndex(\n option => option.length > 0 && normalized.includes(option.toLowerCase()),\n );\n if (matchedIndex >= 0) {\n return SCIENCE_CHOICE_LETTERS[matchedIndex] === correctChoice\n ? SIMPLE_EVAL_GRADE_CORRECT\n : SIMPLE_EVAL_GRADE_WRONG;\n }\n }\n\n return SIMPLE_EVAL_GRADE_UNPARSEABLE;\n}\n\n/**\n * A generated SimpleMath question with its stable identifier and expected\n * answer.\n */\nexport interface Hcs25SimpleMathQuestion {\n questionId: string;\n prompt: string;\n expected: number;\n}\n\nfunction randomInt(\n rng: () => number,\n minInclusive: number,\n maxInclusive: number,\n): number {\n const span = maxInclusive - minInclusive + 1;\n return minInclusive + Math.floor(rng() * span);\n}\n\n/**\n * Generates a random SimpleMath question. Operand ranges follow the\n * methodology: addition uses two integers in 10–100, subtraction subtracts\n * 1–50 from 10–100, and multiplication uses small integers in 2–12. Pass a\n * seeded rng for deterministic generation.\n */\nexport function generateSimpleMathQuestion(\n rng: () => number = Math.random,\n): Hcs25SimpleMathQuestion {\n const operations = ['add', 'sub', 'mul'] as const;\n const operation =\n operations[Math.floor(rng() * operations.length) % operations.length];\n\n let left: number;\n let right: number;\n let expected: number;\n let expression: string;\n\n if (operation === 'add') {\n left = randomInt(rng, 10, 100);\n right = randomInt(rng, 10, 100);\n expected = left + right;\n expression = `${left}+${right}`;\n } else if (operation === 'sub') {\n left = randomInt(rng, 10, 100);\n right = randomInt(rng, 1, 50);\n expected = left - right;\n expression = `${left}-${right}`;\n } else {\n left = randomInt(rng, 2, 12);\n right = randomInt(rng, 2, 12);\n expected = left * right;\n expression = `${left}x${right}`;\n }\n\n const operator = operation === 'add' ? '+' : operation === 'sub' ? '−' : '×';\n\n return {\n questionId: `math:${operation}:${expression}`,\n prompt: `Answer with just the number.\\n\\nWhat is ${left} ${operator} ${right}?`,\n expected,\n };\n}\n\n/**\n * A curated SimpleScience multiple-choice question with exactly four\n * options and one unambiguous correct choice.\n */\nexport interface Hcs25SimpleScienceQuestion {\n questionId: string;\n prompt: string;\n options: readonly [string, string, string, string];\n correctChoice: (typeof SCIENCE_CHOICE_LETTERS)[number];\n}\n\nfunction sciencePrompt(stem: string, options: readonly string[]): string {\n const lines = options.map(\n (option, index) => `${SCIENCE_CHOICE_LETTERS[index]}) ${option}`,\n );\n return `Answer with just A, B, C, or D.\\n\\n${stem}\\n${lines.join('\\n')}`;\n}\n\nfunction scienceQuestion(\n questionId: string,\n stem: string,\n options: readonly string[],\n correctIndex: number,\n): Hcs25SimpleScienceQuestion {\n return {\n questionId,\n prompt: sciencePrompt(stem, options),\n options: [options[0], options[1], options[2], options[3]],\n correctChoice: SCIENCE_CHOICE_LETTERS[correctIndex],\n };\n}\n\n/**\n * A small curated bank of basic science facts spanning chemistry, biology,\n * physics, and earth science, per the methodology.\n */\nexport const SIMPLE_SCIENCE_QUESTION_BANK: readonly Hcs25SimpleScienceQuestion[] =\n [\n scienceQuestion(\n 'science:photosynthesis-gas',\n 'Which gas do plants primarily absorb during photosynthesis?',\n ['Oxygen', 'Carbon dioxide', 'Nitrogen', 'Helium'],\n 1,\n ),\n scienceQuestion(\n 'science:water-formula',\n 'What is the chemical formula for water?',\n ['HO', 'H2O2', 'H2O', 'O2H'],\n 2,\n ),\n scienceQuestion(\n 'science:blood-pump',\n 'Which organ pumps blood through the human body?',\n ['Liver', 'Heart', 'Lungs', 'Kidneys'],\n 1,\n ),\n scienceQuestion(\n 'science:vacuum-speed',\n 'Which of these travels fastest in a vacuum?',\n ['Sound', 'Water waves', 'Wind', 'Light'],\n 3,\n ),\n scienceQuestion(\n 'science:red-planet',\n 'Which planet is known as the Red Planet?',\n ['Mars', 'Venus', 'Jupiter', 'Mercury'],\n 0,\n ),\n scienceQuestion(\n 'science:boiling-point',\n 'At what temperature does water boil at sea level, in Celsius?',\n ['50°C', '100°C', '150°C', '200°C'],\n 1,\n ),\n scienceQuestion(\n 'science:photosynthesis-energy',\n 'What is the primary source of energy for photosynthesis?',\n ['Sunlight', 'Moonlight', 'Lightning', 'Starlight'],\n 0,\n ),\n scienceQuestion(\n 'science:atom-charge',\n 'What is the electrical charge of a proton?',\n ['Negative', 'Neutral', 'Positive', 'Variable'],\n 2,\n ),\n ];\n\n/**\n * Samples a random science question from the curated bank. Pass a seeded rng\n * for deterministic sampling.\n */\nexport function sampleSimpleScienceQuestion(\n rng: () => number = Math.random,\n): Hcs25SimpleScienceQuestion {\n const index =\n Math.floor(rng() * SIMPLE_SCIENCE_QUESTION_BANK.length) %\n SIMPLE_SCIENCE_QUESTION_BANK.length;\n return SIMPLE_SCIENCE_QUESTION_BANK[index];\n}\n\n/**\n * Stored-field schema for the shared A2A/NANDA simple-eval signal family.\n * Field names follow the `a2aSimple*` / `nandaSimple*` conventions.\n */\nexport const hcs25SimpleEvalFieldsSchema = z\n .object({\n a2aSimpleMathScore: z.number().nullish(),\n a2aSimpleMathStatus: z.string().nullish(),\n a2aSimpleMathQuestionId: z.string().nullish(),\n a2aSimpleMathSessionId: z.string().nullish(),\n a2aSimpleMathResponse: z.string().nullish(),\n a2aSimpleMathError: z.string().nullish(),\n a2aSimpleMathUpdatedAt: z.string().nullish(),\n a2aSimpleScienceScore: z.number().nullish(),\n a2aSimpleScienceStatus: z.string().nullish(),\n a2aSimpleScienceQuestionId: z.string().nullish(),\n a2aSimpleScienceSessionId: z.string().nullish(),\n a2aSimpleScienceResponse: z.string().nullish(),\n a2aSimpleScienceError: z.string().nullish(),\n a2aSimpleScienceUpdatedAt: z.string().nullish(),\n nandaSimpleMathScore: z.number().nullish(),\n nandaSimpleMathStatus: z.string().nullish(),\n nandaSimpleMathQuestionId: z.string().nullish(),\n nandaSimpleMathResponse: z.string().nullish(),\n nandaSimpleMathError: z.string().nullish(),\n nandaSimpleMathUpdatedAt: z.string().nullish(),\n nandaSimpleScienceScore: z.number().nullish(),\n nandaSimpleScienceStatus: z.string().nullish(),\n nandaSimpleScienceQuestionId: z.string().nullish(),\n nandaSimpleScienceResponse: z.string().nullish(),\n nandaSimpleScienceError: z.string().nullish(),\n nandaSimpleScienceUpdatedAt: z.string().nullish(),\n })\n .passthrough();\n"],"names":[],"mappings":"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"}
|
|
@@ -1,117 +1,29 @@
|
|
|
1
1
|
import { clampScore } from "./standards-sdk.es119.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import "./standards-sdk.es195.js";
|
|
5
|
-
import "./standards-sdk.es196.js";
|
|
6
|
-
import "./standards-sdk.es197.js";
|
|
7
|
-
import { clampUnit } from "./standards-sdk.es183.js";
|
|
8
|
-
const DEFAULT_INCLUDED_REGISTRIES = ["agentverse", "uagent"];
|
|
9
|
-
const MISSING = { value: 0, status: "missing" };
|
|
10
|
-
function withInsightsStatus(additional, result) {
|
|
11
|
-
const status = readString(additional, "agentverseInsightsStatus");
|
|
12
|
-
if (result.status === "ok" && status === "stale") {
|
|
13
|
-
return { value: result.value, status: "stale" };
|
|
14
|
-
}
|
|
15
|
-
if (result.status !== "ok" && (status === "upstream-error" || status === "error")) {
|
|
16
|
-
return { value: 0, status: "error" };
|
|
17
|
-
}
|
|
18
|
-
if (result.status !== "ok" && status === "timeout") {
|
|
19
|
-
return { value: 0, status: "timeout" };
|
|
20
|
-
}
|
|
21
|
-
return result;
|
|
2
|
+
function clampUnit(value) {
|
|
3
|
+
return Math.min(1, Math.max(0, value));
|
|
22
4
|
}
|
|
23
|
-
function
|
|
24
|
-
|
|
25
|
-
const rating = readNumber(additional, "agentverseInsightsRating");
|
|
26
|
-
if (rating !== null) {
|
|
27
|
-
return withInsightsStatus(additional, {
|
|
28
|
-
value: clampScore(rating / 5 * 100),
|
|
29
|
-
status: "ok"
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const proxies = [
|
|
33
|
-
readNumber(additional, "agentverseInsightsReadmeQualityScore"),
|
|
34
|
-
readNumber(additional, "agentverseInsightsReadmeUniquenessScore"),
|
|
35
|
-
readNumber(additional, "agentverseInsightsInteractionsScore")
|
|
36
|
-
].filter((value) => value !== null);
|
|
37
|
-
if (proxies.length === 0) {
|
|
38
|
-
return withInsightsStatus(additional, MISSING);
|
|
39
|
-
}
|
|
40
|
-
const mean = proxies.reduce((sum, value) => sum + value, 0) / proxies.length;
|
|
41
|
-
return withInsightsStatus(additional, {
|
|
42
|
-
value: clampScore(mean * 100),
|
|
43
|
-
status: "ok"
|
|
44
|
-
});
|
|
5
|
+
function normalizeRatio(value) {
|
|
6
|
+
return clampUnit(value > 1 ? value / 100 : value);
|
|
45
7
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
components: [
|
|
54
|
-
{ name: "score", normalize: ({ subject }) => normalizeInsights(subject) }
|
|
55
|
-
]
|
|
56
|
-
};
|
|
8
|
+
function logScale(value, cap) {
|
|
9
|
+
if (cap <= 0) {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
return clampScore(
|
|
13
|
+
100 * clampUnit(Math.log1p(Math.max(0, value)) / Math.log1p(cap))
|
|
14
|
+
);
|
|
57
15
|
}
|
|
58
|
-
function
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
contributionMode: "conditional",
|
|
65
|
-
includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,
|
|
66
|
-
defaultComponentKey: "agentverse-verifier.score",
|
|
67
|
-
components: [
|
|
68
|
-
{
|
|
69
|
-
name: "score",
|
|
70
|
-
nonScorableWhenUnavailable: true,
|
|
71
|
-
normalize: ({ subject }) => {
|
|
72
|
-
const additional = readSubjectAdditional(subject);
|
|
73
|
-
const recentInteractions = readNumber(
|
|
74
|
-
additional,
|
|
75
|
-
"agentverseInsightsVerifierRecentInteractions"
|
|
76
|
-
) ?? 0;
|
|
77
|
-
const recentSuccesses = readNumber(
|
|
78
|
-
additional,
|
|
79
|
-
"agentverseInsightsVerifierRecentSuccessInteractions"
|
|
80
|
-
) ?? 0;
|
|
81
|
-
const totalInteractions = readNumber(
|
|
82
|
-
additional,
|
|
83
|
-
"agentverseInsightsVerifierTotalInteractions"
|
|
84
|
-
) ?? 0;
|
|
85
|
-
const totalSuccesses = readNumber(
|
|
86
|
-
additional,
|
|
87
|
-
"agentverseInsightsVerifierTotalSuccessInteractions"
|
|
88
|
-
) ?? 0;
|
|
89
|
-
const useRecent = recentInteractions > 0;
|
|
90
|
-
const interactions = useRecent ? recentInteractions : totalInteractions;
|
|
91
|
-
const successes = useRecent ? recentSuccesses : totalSuccesses;
|
|
92
|
-
if (interactions <= 0) {
|
|
93
|
-
return withInsightsStatus(additional, MISSING);
|
|
94
|
-
}
|
|
95
|
-
const successRate = clampUnit(successes / interactions) * 100;
|
|
96
|
-
const avgResponseTime = readNumber(
|
|
97
|
-
additional,
|
|
98
|
-
"agentverseInsightsAvgResponseTime"
|
|
99
|
-
);
|
|
100
|
-
const responseFactor = avgResponseTime === null ? 1 : clampUnit(1 - avgResponseTime / responseTimeCapSeconds);
|
|
101
|
-
const volumeFactor = clampUnit(
|
|
102
|
-
Math.log1p(interactions) / Math.log1p(interactionCap)
|
|
103
|
-
);
|
|
104
|
-
return withInsightsStatus(additional, {
|
|
105
|
-
value: clampScore(successRate * responseFactor * volumeFactor),
|
|
106
|
-
status: "ok"
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
};
|
|
16
|
+
function meanOfPresent(values) {
|
|
17
|
+
const present = values.filter((value) => value !== null);
|
|
18
|
+
if (present.length === 0) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return present.reduce((sum, value) => sum + value, 0) / present.length;
|
|
112
22
|
}
|
|
113
23
|
export {
|
|
114
|
-
|
|
115
|
-
|
|
24
|
+
clampUnit,
|
|
25
|
+
logScale,
|
|
26
|
+
meanOfPresent,
|
|
27
|
+
normalizeRatio
|
|
116
28
|
};
|
|
117
29
|
//# sourceMappingURL=standards-sdk.es185.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es185.js","sources":["../../src/hcs-25/adapters/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es185.js","sources":["../../src/hcs-25/adapters/normalization.ts"],"sourcesContent":["import { clampScore } from '../scoring';\n\n/**\n * Clamps a value into the unit interval `[0, 1]`.\n */\nexport function clampUnit(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\n/**\n * Normalizes a ratio that implementations may store either as `0..1` or as\n * `0..100`. Values above one are treated as percent scale.\n */\nexport function normalizeRatio(value: number): number {\n return clampUnit(value > 1 ? value / 100 : value);\n}\n\n/**\n * Log-scales a raw count into `[0, 100]` using `log1p` against a cap, per\n * the HCS-25 recommended log-scaling pattern.\n */\nexport function logScale(value: number, cap: number): number {\n if (cap <= 0) {\n return 0;\n }\n return clampScore(\n 100 * clampUnit(Math.log1p(Math.max(0, value)) / Math.log1p(cap)),\n );\n}\n\n/**\n * Computes the arithmetic mean of the provided values, returning null when\n * none are present.\n */\nexport function meanOfPresent(\n values: readonly (number | null)[],\n): number | null {\n const present = values.filter((value): value is number => value !== null);\n if (present.length === 0) {\n return null;\n }\n return present.reduce((sum, value) => sum + value, 0) / present.length;\n}\n"],"names":[],"mappings":";AAKO,SAAS,UAAU,OAAuB;AAC/C,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,CAAC;AACvC;AAMO,SAAS,eAAe,OAAuB;AACpD,SAAO,UAAU,QAAQ,IAAI,QAAQ,MAAM,KAAK;AAClD;AAMO,SAAS,SAAS,OAAe,KAAqB;AAC3D,MAAI,OAAO,GAAG;AACZ,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,UAAU,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,CAAC;AAAA,EAAA;AAEpE;AAMO,SAAS,cACd,QACe;AACf,QAAM,UAAU,OAAO,OAAO,CAAC,UAA2B,UAAU,IAAI;AACxE,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,CAAC,IAAI,QAAQ;AAClE;"}
|