@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.es188.js","sources":["../../src/hcs-25/adapters/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es188.js","sources":["../../src/hcs-25/adapters/ans-trust-discovery.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25ComponentDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport {\n HCS25_ANS_TRUST_DISCOVERY_SIGNALS,\n readMetadataRecord,\n readNumber,\n readString,\n type Hcs25AnsTrustDiscoverySignal,\n} from '../signals';\n\n/**\n * Options for the ANS Trust Discovery adapter.\n */\nexport interface Hcs25AnsTrustDiscoveryAdapterOptions {\n /** Registries whose subjects carry ANS Trust Index signals. */\n includeRegistries?: readonly string[];\n}\n\nconst ADAPTER_ID = 'ans-trust-discovery';\n\nconst DEFAULT_INCLUDED_REGISTRIES: readonly string[] = ['ans'];\n\nconst MISSING: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\n/**\n * Maps a stored `ansTrustDiscoveryStatus` onto one signal. A present score\n * keeps `stale` so the scoring layer applies the stale multiplier, and\n * otherwise passes through as ok. `timeout` or `error` with no score surfaces\n * as that status. Anything else without a score is missing.\n */\nfunction ansTrustStatus(\n status: string | null,\n score: number | null,\n): Hcs25NormalizedValue {\n if (score !== null) {\n return {\n value: clampScore(score),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n }\n if (status === 'timeout' || status === 'error') {\n return { value: 0, status };\n }\n return MISSING;\n}\n\n/**\n * Reads one stored signal score from `metadata.ansTrustDiscovery`.\n */\nfunction normalizeAnsTrustSignal(\n subject: Hcs25Subject,\n signal: Hcs25AnsTrustDiscoverySignal,\n): Hcs25NormalizedValue {\n const record = readMetadataRecord(subject, 'ansTrustDiscovery');\n if (!record) {\n return MISSING;\n }\n\n return ansTrustStatus(\n readString(record, 'ansTrustDiscoveryStatus'),\n readNumber(record, `${ADAPTER_ID}.${signal}`),\n );\n}\n\n/**\n * Creates the `ans-trust-discovery` adapter: passes through the\n * infrastructure trust signals published by an ANS Trust Index provider\n * (certificate type, DNS security, agent age, version stability, DNS\n * consistency, HTTPS record, agent card, certificate hygiene) as one\n * component each. Scores are pre-normalized to `[0,100]` by the provider;\n * signals the provider could not compute are excluded from the adapter\n * total, which is the mean of the remaining components.\n *\n * Applies to subjects whose `registry` is `ans` (the UAID `registry`\n * parameter); callers set `subject.registry` when building the subject.\n */\nexport function createAnsTrustDiscoveryAdapter(\n options: Hcs25AnsTrustDiscoveryAdapterOptions = {},\n): Hcs25AdapterDefinition {\n return {\n id: ADAPTER_ID,\n weight: 1,\n contributionMode: 'scoped',\n includeRegistries: options.includeRegistries ?? DEFAULT_INCLUDED_REGISTRIES,\n defaultComponentKey: `${ADAPTER_ID}.certtype`,\n components: HCS25_ANS_TRUST_DISCOVERY_SIGNALS.map(\n (signal): Hcs25ComponentDefinition => ({\n name: signal,\n nonScorableWhenUnavailable: true,\n normalize: ({ subject }): Hcs25NormalizedValue =>\n normalizeAnsTrustSignal(subject, signal),\n }),\n ),\n };\n}\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,aAAa;AAEnB,MAAM,8BAAiD,CAAC,KAAK;AAE7D,MAAM,UAAgC,EAAE,OAAO,GAAG,QAAQ,UAAA;AAQ1D,SAAS,eACP,QACA,OACsB;AACtB,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,MACL,OAAO,WAAW,KAAK;AAAA,MACvB,QAAQ,WAAW,UAAU,UAAU;AAAA,IAAA;AAAA,EAE3C;AACA,MAAI,WAAW,aAAa,WAAW,SAAS;AAC9C,WAAO,EAAE,OAAO,GAAG,OAAA;AAAA,EACrB;AACA,SAAO;AACT;AAKA,SAAS,wBACP,SACA,QACsB;AACtB,QAAM,SAAS,mBAAmB,SAAS,mBAAmB;AAC9D,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,WAAW,QAAQ,yBAAyB;AAAA,IAC5C,WAAW,QAAQ,GAAG,UAAU,IAAI,MAAM,EAAE;AAAA,EAAA;AAEhD;AAcO,SAAS,+BACd,UAAgD,IACxB;AACxB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,qBAAqB,GAAG,UAAU;AAAA,IAClC,YAAY,kCAAkC;AAAA,MAC5C,CAAC,YAAsC;AAAA,QACrC,MAAM;AAAA,QACN,4BAA4B;AAAA,QAC5B,WAAW,CAAC,EAAE,cACZ,wBAAwB,SAAS,MAAM;AAAA,MAAA;AAAA,IAC3C;AAAA,EACF;AAEJ;"}
|
|
@@ -1,52 +1,61 @@
|
|
|
1
1
|
import { clampScore } from "./standards-sdk.es119.js";
|
|
2
|
-
import {
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
6
|
-
import "./standards-sdk.
|
|
7
|
-
import
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
import { readString, readNumber, readSubjectMetrics, readBoolean } from "./standards-sdk.es201.js";
|
|
3
|
+
import "./standards-sdk.es184.js";
|
|
4
|
+
import "./standards-sdk.es198.js";
|
|
5
|
+
import "./standards-sdk.es199.js";
|
|
6
|
+
import "./standards-sdk.es200.js";
|
|
7
|
+
import "./standards-sdk.es183.js";
|
|
8
|
+
const DEFAULT_EXCLUDED_REGISTRIES = [
|
|
9
|
+
"openrouter",
|
|
10
|
+
"near-ai"
|
|
11
|
+
];
|
|
12
|
+
function normalizeAvailability(subject, scoreScale, recencyWindowMinutes) {
|
|
13
|
+
const metadata = subject.metadata;
|
|
14
|
+
const probeStatus = metadata ? readString(metadata, "availabilityStatus") : null;
|
|
15
|
+
const stale = probeStatus === "stale";
|
|
16
|
+
const rawScore = metadata ? readNumber(metadata, "availabilityScore") : null;
|
|
17
|
+
if (rawScore !== null) {
|
|
18
|
+
const ratio = scoreScale === "ratio" ? rawScore : scoreScale === "percent" ? rawScore / 100 : rawScore > 1 ? rawScore / 100 : rawScore;
|
|
19
|
+
return {
|
|
20
|
+
value: clampScore(ratio * 100),
|
|
21
|
+
status: stale ? "stale" : "ok"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const metrics = readSubjectMetrics(subject);
|
|
25
|
+
const minsFromLastOnline = readNumber(metrics, "minsFromLastOnline");
|
|
26
|
+
if (minsFromLastOnline !== null) {
|
|
27
|
+
return {
|
|
28
|
+
value: clampScore(100 * (1 - minsFromLastOnline / recencyWindowMinutes)),
|
|
29
|
+
status: "ok"
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const isOnline = readBoolean(metrics, "isOnline");
|
|
33
|
+
if (isOnline !== null) {
|
|
34
|
+
return { value: isOnline ? 100 : 0, status: "ok" };
|
|
35
|
+
}
|
|
36
|
+
if (probeStatus === "timeout" || probeStatus === "error") {
|
|
37
|
+
return { value: 0, status: probeStatus };
|
|
38
|
+
}
|
|
39
|
+
return { value: 0, status: "missing" };
|
|
14
40
|
}
|
|
15
|
-
function
|
|
16
|
-
const
|
|
17
|
-
const
|
|
41
|
+
function createAvailabilityAdapter(options = {}) {
|
|
42
|
+
const scoreScale = options.scoreScale ?? "auto";
|
|
43
|
+
const recencyWindowMinutes = options.recencyWindowMinutes ?? 1440;
|
|
18
44
|
return {
|
|
19
|
-
id: "
|
|
45
|
+
id: "availability",
|
|
20
46
|
weight: 1,
|
|
21
|
-
contributionMode: "
|
|
22
|
-
|
|
47
|
+
contributionMode: "universal",
|
|
48
|
+
excludeRegistries: options.excludeRegistries ?? DEFAULT_EXCLUDED_REGISTRIES,
|
|
49
|
+
defaultComponentKey: "availability.uptime",
|
|
23
50
|
components: [
|
|
24
51
|
{
|
|
25
|
-
name: "
|
|
26
|
-
normalize: ({ subject }) =>
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "volume",
|
|
30
|
-
normalize: ({ subject }) => {
|
|
31
|
-
const summary = readMetadataRecord(subject, "erc8004FeedbackSummary");
|
|
32
|
-
const totalFeedbacks = summary ? readNumber(summary, "totalFeedbacks") : null;
|
|
33
|
-
if (totalFeedbacks === null) {
|
|
34
|
-
return MISSING;
|
|
35
|
-
}
|
|
36
|
-
const volumeRaw = Math.min(
|
|
37
|
-
volumeCap,
|
|
38
|
-
Math.log10(totalFeedbacks + 1) * volumeWeight
|
|
39
|
-
);
|
|
40
|
-
return {
|
|
41
|
-
value: clampScore(100 * clampUnit(volumeRaw / volumeCap)),
|
|
42
|
-
status: "ok"
|
|
43
|
-
};
|
|
44
|
-
}
|
|
52
|
+
name: "uptime",
|
|
53
|
+
normalize: ({ subject }) => normalizeAvailability(subject, scoreScale, recencyWindowMinutes)
|
|
45
54
|
}
|
|
46
55
|
]
|
|
47
56
|
};
|
|
48
57
|
}
|
|
49
58
|
export {
|
|
50
|
-
|
|
59
|
+
createAvailabilityAdapter
|
|
51
60
|
};
|
|
52
61
|
//# sourceMappingURL=standards-sdk.es189.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es189.js","sources":["../../src/hcs-25/adapters/
|
|
1
|
+
{"version":3,"file":"standards-sdk.es189.js","sources":["../../src/hcs-25/adapters/availability.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport {\n readBoolean,\n readNumber,\n readString,\n readSubjectMetrics,\n} from '../signals';\n\n/**\n * Options for the availability adapter.\n */\nexport interface Hcs25AvailabilityAdapterOptions {\n /**\n * How to interpret `availabilityScore`. `auto` (the default) treats\n * values up to and including one as a ratio and larger values as an\n * already-normalized percent.\n */\n scoreScale?: 'ratio' | 'percent' | 'auto';\n /** Recency window in minutes for last-seen decay. Defaults to 1440. */\n recencyWindowMinutes?: number;\n /** Registries where reachability is not meaningful. */\n excludeRegistries?: readonly string[];\n}\n\nconst DEFAULT_EXCLUDED_REGISTRIES: readonly string[] = [\n 'openrouter',\n 'near-ai',\n];\n\nfunction normalizeAvailability(\n subject: Hcs25Subject,\n scoreScale: 'ratio' | 'percent' | 'auto',\n recencyWindowMinutes: number,\n): Hcs25NormalizedValue {\n const metadata = subject.metadata;\n const probeStatus = metadata\n ? readString(metadata, 'availabilityStatus')\n : null;\n const stale = probeStatus === 'stale';\n const rawScore = metadata ? readNumber(metadata, 'availabilityScore') : null;\n if (rawScore !== null) {\n const ratio =\n scoreScale === 'ratio'\n ? rawScore\n : scoreScale === 'percent'\n ? rawScore / 100\n : rawScore > 1\n ? rawScore / 100\n : rawScore;\n return {\n value: clampScore(ratio * 100),\n status: stale ? 'stale' : 'ok',\n };\n }\n\n const metrics = readSubjectMetrics(subject);\n const minsFromLastOnline = readNumber(metrics, 'minsFromLastOnline');\n if (minsFromLastOnline !== null) {\n return {\n value: clampScore(100 * (1 - minsFromLastOnline / recencyWindowMinutes)),\n status: 'ok',\n };\n }\n\n const isOnline = readBoolean(metrics, 'isOnline');\n if (isOnline !== null) {\n return { value: isOnline ? 100 : 0, status: 'ok' };\n }\n\n if (probeStatus === 'timeout' || probeStatus === 'error') {\n return { value: 0, status: probeStatus };\n }\n\n return { value: 0, status: 'missing' };\n}\n\n/**\n * Creates the `availability` adapter: rewards reachable endpoints and\n * penalizes long offline windows using a linear 24-hour recency decay.\n */\nexport function createAvailabilityAdapter(\n options: Hcs25AvailabilityAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const scoreScale = options.scoreScale ?? 'auto';\n const recencyWindowMinutes = options.recencyWindowMinutes ?? 1440;\n\n return {\n id: 'availability',\n weight: 1,\n contributionMode: 'universal',\n excludeRegistries: options.excludeRegistries ?? DEFAULT_EXCLUDED_REGISTRIES,\n defaultComponentKey: 'availability.uptime',\n components: [\n {\n name: 'uptime',\n normalize: ({ subject }) =>\n normalizeAvailability(subject, scoreScale, recencyWindowMinutes),\n },\n ],\n };\n}\n"],"names":[],"mappings":";;;;;;;AA6BA,MAAM,8BAAiD;AAAA,EACrD;AAAA,EACA;AACF;AAEA,SAAS,sBACP,SACA,YACA,sBACsB;AACtB,QAAM,WAAW,QAAQ;AACzB,QAAM,cAAc,WAChB,WAAW,UAAU,oBAAoB,IACzC;AACJ,QAAM,QAAQ,gBAAgB;AAC9B,QAAM,WAAW,WAAW,WAAW,UAAU,mBAAmB,IAAI;AACxE,MAAI,aAAa,MAAM;AACrB,UAAM,QACJ,eAAe,UACX,WACA,eAAe,YACb,WAAW,MACX,WAAW,IACT,WAAW,MACX;AACV,WAAO;AAAA,MACL,OAAO,WAAW,QAAQ,GAAG;AAAA,MAC7B,QAAQ,QAAQ,UAAU;AAAA,IAAA;AAAA,EAE9B;AAEA,QAAM,UAAU,mBAAmB,OAAO;AAC1C,QAAM,qBAAqB,WAAW,SAAS,oBAAoB;AACnE,MAAI,uBAAuB,MAAM;AAC/B,WAAO;AAAA,MACL,OAAO,WAAW,OAAO,IAAI,qBAAqB,qBAAqB;AAAA,MACvE,QAAQ;AAAA,IAAA;AAAA,EAEZ;AAEA,QAAM,WAAW,YAAY,SAAS,UAAU;AAChD,MAAI,aAAa,MAAM;AACrB,WAAO,EAAE,OAAO,WAAW,MAAM,GAAG,QAAQ,KAAA;AAAA,EAC9C;AAEA,MAAI,gBAAgB,aAAa,gBAAgB,SAAS;AACxD,WAAO,EAAE,OAAO,GAAG,QAAQ,YAAA;AAAA,EAC7B;AAEA,SAAO,EAAE,OAAO,GAAG,QAAQ,UAAA;AAC7B;AAMO,SAAS,0BACd,UAA2C,IACnB;AACxB,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,uBAAuB,QAAQ,wBAAwB;AAE7D,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,QAAA,MACZ,sBAAsB,SAAS,YAAY,oBAAoB;AAAA,MAAA;AAAA,IACnE;AAAA,EACF;AAEJ;"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { KeyList, TopicCreateTransaction, AccountId, Transaction, TopicMessageSubmitTransaction, Hbar } from "@hashgraph/sdk";
|
|
2
|
-
import { Logger } from "./standards-sdk.
|
|
2
|
+
import { Logger } from "./standards-sdk.es148.js";
|
|
3
3
|
import "axios";
|
|
4
4
|
import "@hashgraph/proto";
|
|
5
|
-
import { ProgressReporter } from "./standards-sdk.
|
|
5
|
+
import { ProgressReporter } from "./standards-sdk.es151.js";
|
|
6
6
|
import "buffer";
|
|
7
7
|
import "@noble/curves/secp256k1.js";
|
|
8
8
|
import "zod";
|
|
9
|
-
import "./standards-sdk.
|
|
10
|
-
import "./standards-sdk.
|
|
11
|
-
import "./standards-sdk.
|
|
9
|
+
import "./standards-sdk.es178.js";
|
|
10
|
+
import "./standards-sdk.es172.js";
|
|
11
|
+
import "./standards-sdk.es176.js";
|
|
12
12
|
import "ethers";
|
|
13
|
-
import "./standards-sdk.
|
|
14
|
-
import "./standards-sdk.
|
|
15
|
-
import { getTopicId } from "./standards-sdk.
|
|
16
|
-
import { InscriptionSDK } from "./standards-sdk.
|
|
13
|
+
import "./standards-sdk.es165.js";
|
|
14
|
+
import "./standards-sdk.es156.js";
|
|
15
|
+
import { getTopicId } from "./standards-sdk.es157.js";
|
|
16
|
+
import { InscriptionSDK } from "./standards-sdk.es207.js";
|
|
17
17
|
import { HCS10BaseClient, Hcs10MemoType } from "./standards-sdk.es16.js";
|
|
18
18
|
import * as mime from "mime-types";
|
|
19
19
|
import { AgentBuilder } from "./standards-sdk.es23.js";
|
|
20
20
|
import { HCS11Client } from "./standards-sdk.es27.js";
|
|
21
|
-
import { inscribeWithSigner } from "./standards-sdk.
|
|
21
|
+
import { inscribeWithSigner } from "./standards-sdk.es167.js";
|
|
22
22
|
const isBrowser = typeof window !== "undefined";
|
|
23
23
|
class BrowserHCSClient extends HCS10BaseClient {
|
|
24
24
|
constructor(config) {
|
|
@@ -1,65 +1,235 @@
|
|
|
1
1
|
import { clampScore } from "./standards-sdk.es119.js";
|
|
2
|
-
import {
|
|
3
|
-
import "./standards-sdk.
|
|
4
|
-
import "./standards-sdk.
|
|
5
|
-
import "./standards-sdk.
|
|
6
|
-
import "./standards-sdk.
|
|
7
|
-
import
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
import { readSubjectAdditional, readNumber, readString } from "./standards-sdk.es201.js";
|
|
3
|
+
import "./standards-sdk.es184.js";
|
|
4
|
+
import "./standards-sdk.es198.js";
|
|
5
|
+
import "./standards-sdk.es199.js";
|
|
6
|
+
import "./standards-sdk.es200.js";
|
|
7
|
+
import "./standards-sdk.es183.js";
|
|
8
|
+
const DEFAULT_MODEL_REGISTRIES = ["openrouter", "near-ai"];
|
|
9
|
+
const MISSING = { value: 0, status: "missing" };
|
|
10
|
+
const DEFAULT_MODEL_TIERS = [
|
|
11
|
+
{
|
|
12
|
+
score: 95,
|
|
13
|
+
patterns: [
|
|
14
|
+
"gpt-5",
|
|
15
|
+
"gpt-4.5",
|
|
16
|
+
"o3",
|
|
17
|
+
"o4-mini",
|
|
18
|
+
"claude-opus-4",
|
|
19
|
+
"claude-4-opus",
|
|
20
|
+
"gemini-3",
|
|
21
|
+
"grok-4"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
score: 85,
|
|
26
|
+
patterns: [
|
|
27
|
+
"claude-sonnet-4",
|
|
28
|
+
"claude-4-sonnet",
|
|
29
|
+
"claude-3-7-sonnet",
|
|
30
|
+
"gemini-2.5-pro",
|
|
31
|
+
"deepseek-v3",
|
|
32
|
+
"deepseek-r1",
|
|
33
|
+
"llama-4-maverick",
|
|
34
|
+
"qwen3-235b",
|
|
35
|
+
"grok-3"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
score: 70,
|
|
40
|
+
patterns: [
|
|
41
|
+
"gpt-4o",
|
|
42
|
+
"gemini-2.5-flash",
|
|
43
|
+
"claude-haiku",
|
|
44
|
+
"llama-4-scout",
|
|
45
|
+
"qwen3-32b",
|
|
46
|
+
"mistral-large"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
score: 55,
|
|
51
|
+
patterns: ["llama-3.3", "llama-3.1", "qwen", "mistral", "gemma", "phi-"]
|
|
52
|
+
},
|
|
53
|
+
{ score: 35, patterns: ["llama-2", "gpt-3.5", "gemini-1"] }
|
|
13
54
|
];
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const rawScore = compositeScore ?? flatScore;
|
|
22
|
-
if (rawScore === null) {
|
|
23
|
-
if (status === "error" || status === "timeout") {
|
|
24
|
-
return { value: 0, status };
|
|
25
|
-
}
|
|
26
|
-
if (status === "ok") {
|
|
27
|
-
return { value: 0, status: "missing" };
|
|
28
|
-
}
|
|
29
|
-
return MISSING_SCORE;
|
|
30
|
-
}
|
|
31
|
-
const denominator = maxScore - baselineScore;
|
|
32
|
-
if (denominator <= 0) {
|
|
33
|
-
return {
|
|
34
|
-
value: clampScore(maxContribution),
|
|
35
|
-
status: status === "stale" ? "stale" : "ok"
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const normalized = clampUnit((rawScore - baselineScore) / denominator);
|
|
55
|
+
const DEFAULT_MODEL_ID_KEYS = [
|
|
56
|
+
"openrouterModelId",
|
|
57
|
+
"modelId",
|
|
58
|
+
"model"
|
|
59
|
+
];
|
|
60
|
+
function createOpenRouterEvalsAdapter(options = {}) {
|
|
61
|
+
const lowCoverageMultiplier = options.lowCoverageMultiplier ?? 0.5;
|
|
39
62
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
63
|
+
id: "openrouter-evals",
|
|
64
|
+
weight: 0.5,
|
|
65
|
+
contributionMode: "scoped",
|
|
66
|
+
includeRegistries: options.includeRegistries ?? DEFAULT_MODEL_REGISTRIES,
|
|
67
|
+
defaultComponentKey: "openrouter-evals.score",
|
|
68
|
+
components: [
|
|
69
|
+
{
|
|
70
|
+
name: "score",
|
|
71
|
+
normalize: ({ subject }) => {
|
|
72
|
+
const additional = readSubjectAdditional(subject);
|
|
73
|
+
const score = readNumber(additional, "openrouterEvalScore");
|
|
74
|
+
const status = readString(additional, "openrouterEvalStatus");
|
|
75
|
+
if (score === null || status === "missing") {
|
|
76
|
+
if (status === "timeout" || status === "error") {
|
|
77
|
+
return { value: 0, status };
|
|
78
|
+
}
|
|
79
|
+
return MISSING;
|
|
80
|
+
}
|
|
81
|
+
const multiplier = status === "low-coverage" ? lowCoverageMultiplier : 1;
|
|
82
|
+
return {
|
|
83
|
+
value: clampScore(score * multiplier),
|
|
84
|
+
status: status === "stale" ? "stale" : "ok"
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function createChatbotArenaAdapter(includeRegistries) {
|
|
92
|
+
return {
|
|
93
|
+
id: "chatbot-arena",
|
|
94
|
+
weight: 6,
|
|
95
|
+
contributionMode: "scoped",
|
|
96
|
+
includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,
|
|
97
|
+
defaultComponentKey: "chatbot-arena.score",
|
|
98
|
+
components: [
|
|
99
|
+
{
|
|
100
|
+
name: "score",
|
|
101
|
+
normalize: ({ subject }) => {
|
|
102
|
+
const additional = readSubjectAdditional(subject);
|
|
103
|
+
const score = readNumber(additional, "chatbotArenaEvalScore");
|
|
104
|
+
const status = readString(additional, "chatbotArenaEvalStatus");
|
|
105
|
+
if (score === null) {
|
|
106
|
+
if (status === "timeout" || status === "error") {
|
|
107
|
+
return { value: 0, status };
|
|
108
|
+
}
|
|
109
|
+
return MISSING;
|
|
110
|
+
}
|
|
111
|
+
if (status === "missing") {
|
|
112
|
+
return MISSING;
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
value: clampScore(score),
|
|
116
|
+
status: status === "stale" ? "stale" : "ok"
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
]
|
|
42
121
|
};
|
|
43
122
|
}
|
|
44
|
-
function
|
|
45
|
-
const baselineScore = options.baselineScore ?? 1200;
|
|
46
|
-
const maxScore = options.maxScore ?? 2e3;
|
|
47
|
-
const maxContribution = options.maxContribution ?? 100;
|
|
123
|
+
function createHuggingFaceModelIndexAdapter(includeRegistries) {
|
|
48
124
|
return {
|
|
49
|
-
id: "
|
|
125
|
+
id: "huggingface-model-index",
|
|
126
|
+
weight: 0.8,
|
|
127
|
+
contributionMode: "conditional",
|
|
128
|
+
includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,
|
|
129
|
+
defaultComponentKey: "huggingface-model-index.score",
|
|
130
|
+
components: [
|
|
131
|
+
{
|
|
132
|
+
name: "score",
|
|
133
|
+
nonScorableWhenUnavailable: true,
|
|
134
|
+
normalize: ({ subject }) => {
|
|
135
|
+
const additional = readSubjectAdditional(subject);
|
|
136
|
+
const score = readNumber(additional, "huggingFaceEvalScore") ?? readNumber(additional, "huggingFaceSignalScore");
|
|
137
|
+
const status = readString(additional, "huggingFaceEvalStatus");
|
|
138
|
+
const mode = readString(additional, "huggingFaceEvalMode");
|
|
139
|
+
if (score === null || mode === "missing" || status === "missing") {
|
|
140
|
+
if (status === "timeout" || status === "error") {
|
|
141
|
+
return { value: 0, status };
|
|
142
|
+
}
|
|
143
|
+
return MISSING;
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
value: clampScore(score),
|
|
147
|
+
status: status === "stale" ? "stale" : "ok"
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function createOpenLlmLeaderboardAdapter(includeRegistries) {
|
|
155
|
+
return {
|
|
156
|
+
id: "openllm-leaderboard",
|
|
50
157
|
weight: 1,
|
|
51
|
-
contributionMode: "
|
|
52
|
-
|
|
53
|
-
defaultComponentKey: "
|
|
158
|
+
contributionMode: "conditional",
|
|
159
|
+
includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,
|
|
160
|
+
defaultComponentKey: "openllm-leaderboard.score",
|
|
161
|
+
components: [
|
|
162
|
+
{
|
|
163
|
+
name: "score",
|
|
164
|
+
nonScorableWhenUnavailable: true,
|
|
165
|
+
normalize: ({ subject }) => {
|
|
166
|
+
const additional = readSubjectAdditional(subject);
|
|
167
|
+
const score = readNumber(additional, "openLlmEvalScore");
|
|
168
|
+
const status = readString(additional, "openLlmEvalStatus");
|
|
169
|
+
if (score === null || status === "missing") {
|
|
170
|
+
if (status === "timeout" || status === "error") {
|
|
171
|
+
return { value: 0, status };
|
|
172
|
+
}
|
|
173
|
+
return MISSING;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
value: clampScore(score),
|
|
177
|
+
status: status === "stale" ? "stale" : "ok"
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function createModelTierAdapter(options = {}) {
|
|
185
|
+
const tiers = options.tiers ?? DEFAULT_MODEL_TIERS;
|
|
186
|
+
const defaultScore = options.defaultScore ?? 50;
|
|
187
|
+
const modelIdKeys = options.modelIdKeys ?? DEFAULT_MODEL_ID_KEYS;
|
|
188
|
+
return {
|
|
189
|
+
id: "model-tier",
|
|
190
|
+
weight: 2,
|
|
191
|
+
contributionMode: "conditional",
|
|
192
|
+
includeRegistries: options.includeRegistries ?? DEFAULT_MODEL_REGISTRIES,
|
|
193
|
+
defaultComponentKey: "model-tier.score",
|
|
54
194
|
components: [
|
|
55
195
|
{
|
|
56
196
|
name: "score",
|
|
57
|
-
|
|
197
|
+
nonScorableWhenUnavailable: true,
|
|
198
|
+
normalize: ({ subject }) => {
|
|
199
|
+
const additional = readSubjectAdditional(subject);
|
|
200
|
+
const hasStrongCoverage = readString(additional, "openrouterEvalStatus") === "ok";
|
|
201
|
+
const hasIndependentEvals = [
|
|
202
|
+
"chatbotArenaEvalStatus",
|
|
203
|
+
"huggingFaceEvalStatus",
|
|
204
|
+
"openLlmEvalStatus"
|
|
205
|
+
].some((key) => readString(additional, key) === "ok");
|
|
206
|
+
if (hasStrongCoverage || hasIndependentEvals) {
|
|
207
|
+
return MISSING;
|
|
208
|
+
}
|
|
209
|
+
const modelId = modelIdKeys.map((key) => readString(additional, key)).find((value) => value !== null);
|
|
210
|
+
if (modelId === null) {
|
|
211
|
+
return MISSING;
|
|
212
|
+
}
|
|
213
|
+
const normalizedId = modelId.toLowerCase();
|
|
214
|
+
const tier = tiers.find(
|
|
215
|
+
(entry) => entry.patterns.some(
|
|
216
|
+
(pattern) => normalizedId.includes(pattern.toLowerCase())
|
|
217
|
+
)
|
|
218
|
+
);
|
|
219
|
+
return {
|
|
220
|
+
value: clampScore(tier ? tier.score : defaultScore),
|
|
221
|
+
status: "ok"
|
|
222
|
+
};
|
|
223
|
+
}
|
|
58
224
|
}
|
|
59
225
|
]
|
|
60
226
|
};
|
|
61
227
|
}
|
|
62
228
|
export {
|
|
63
|
-
|
|
229
|
+
createChatbotArenaAdapter,
|
|
230
|
+
createHuggingFaceModelIndexAdapter,
|
|
231
|
+
createModelTierAdapter,
|
|
232
|
+
createOpenLlmLeaderboardAdapter,
|
|
233
|
+
createOpenRouterEvalsAdapter
|
|
64
234
|
};
|
|
65
235
|
//# sourceMappingURL=standards-sdk.es190.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es190.js","sources":["../../src/hcs-25/adapters/ethos.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport { readMetadataRecord, readNumber, readString } from '../signals';\nimport { clampUnit } from './normalization';\n\n/**\n * Options for the Ethos credibility adapter.\n */\nexport interface Hcs25EthosAdapterOptions {\n /** Raw Ethos score that maps to a zero contribution. Default 1200. */\n baselineScore?: number;\n /** Raw Ethos score that maps to the maximum contribution. Default 2000. */\n maxScore?: number;\n /** Maximum contribution budget in `[0,100]`. Default 100. */\n maxContribution?: number;\n /** Registries where Ethos identity mapping is undefined. */\n excludeRegistries?: readonly string[];\n}\n\nconst DEFAULT_EXCLUDED_REGISTRIES: readonly string[] = [\n 'openrouter',\n 'near-ai',\n 'agentverse',\n 'uagent',\n];\n\nconst MISSING_SCORE: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\nfunction normalizeEthos(\n subject: Hcs25Subject,\n baselineScore: number,\n maxScore: number,\n maxContribution: number,\n): Hcs25NormalizedValue {\n const metadata = subject.metadata;\n const composite = readMetadataRecord(subject, 'ethosComposite');\n const compositeScore = composite ? readNumber(composite, 'score') : null;\n const flatScore = metadata ? readNumber(metadata, 'ethosScore') : null;\n const status = metadata ? readString(metadata, 'ethosScoreStatus') : null;\n\n const rawScore = compositeScore ?? flatScore;\n if (rawScore === null) {\n if (status === 'error' || status === 'timeout') {\n return { value: 0, status };\n }\n if (status === 'ok') {\n return { value: 0, status: 'missing' };\n }\n return MISSING_SCORE;\n }\n\n const denominator = maxScore - baselineScore;\n if (denominator <= 0) {\n return {\n value: clampScore(maxContribution),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n }\n\n const normalized = clampUnit((rawScore - baselineScore) / denominator);\n return {\n value: clampScore(maxContribution * normalized),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n}\n\n/**\n * Creates the `ethos` adapter: maps a raw Ethos reputation score into a\n * bounded trust contribution using configured baseline, max, and budget\n * anchors.\n */\nexport function createEthosAdapter(\n options: Hcs25EthosAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const baselineScore = options.baselineScore ?? 1200;\n const maxScore = options.maxScore ?? 2000;\n const maxContribution = options.maxContribution ?? 100;\n\n return {\n id: 'ethos',\n weight: 1,\n contributionMode: 'universal',\n excludeRegistries: options.excludeRegistries ?? DEFAULT_EXCLUDED_REGISTRIES,\n defaultComponentKey: 'ethos.score',\n components: [\n {\n name: 'score',\n normalize: ({ subject }) =>\n normalizeEthos(subject, baselineScore, maxScore, maxContribution),\n },\n ],\n };\n}\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,8BAAiD;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,gBAAsC,EAAE,OAAO,GAAG,QAAQ,UAAA;AAEhE,SAAS,eACP,SACA,eACA,UACA,iBACsB;AACtB,QAAM,WAAW,QAAQ;AACzB,QAAM,YAAY,mBAAmB,SAAS,gBAAgB;AAC9D,QAAM,iBAAiB,YAAY,WAAW,WAAW,OAAO,IAAI;AACpE,QAAM,YAAY,WAAW,WAAW,UAAU,YAAY,IAAI;AAClE,QAAM,SAAS,WAAW,WAAW,UAAU,kBAAkB,IAAI;AAErE,QAAM,WAAW,kBAAkB;AACnC,MAAI,aAAa,MAAM;AACrB,QAAI,WAAW,WAAW,WAAW,WAAW;AAC9C,aAAO,EAAE,OAAO,GAAG,OAAA;AAAA,IACrB;AACA,QAAI,WAAW,MAAM;AACnB,aAAO,EAAE,OAAO,GAAG,QAAQ,UAAA;AAAA,IAC7B;AACA,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,WAAW;AAC/B,MAAI,eAAe,GAAG;AACpB,WAAO;AAAA,MACL,OAAO,WAAW,eAAe;AAAA,MACjC,QAAQ,WAAW,UAAU,UAAU;AAAA,IAAA;AAAA,EAE3C;AAEA,QAAM,aAAa,WAAW,WAAW,iBAAiB,WAAW;AACrE,SAAO;AAAA,IACL,OAAO,WAAW,kBAAkB,UAAU;AAAA,IAC9C,QAAQ,WAAW,UAAU,UAAU;AAAA,EAAA;AAE3C;AAOO,SAAS,mBACd,UAAoC,IACZ;AACxB,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,kBAAkB,QAAQ,mBAAmB;AAEnD,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,QAAA,MACZ,eAAe,SAAS,eAAe,UAAU,eAAe;AAAA,MAAA;AAAA,IACpE;AAAA,EACF;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es190.js","sources":["../../src/hcs-25/adapters/model-evals.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport {\n readNumber,\n readString,\n readSubjectAdditional,\n type Hcs25JsonObject,\n} from '../signals';\n\n/**\n * Options for the OpenRouter benchmarks adapter.\n */\nexport interface Hcs25OpenRouterEvalsAdapterOptions {\n /** Multiplier applied to scores whose coverage status is `low-coverage`. */\n lowCoverageMultiplier?: number;\n /** Model catalog registries where the adapter applies. */\n includeRegistries?: readonly string[];\n}\n\n/**\n * A heuristic model tier: a score plus the lowercase identifier patterns\n * that map to it. The first matching tier wins.\n */\nexport interface Hcs25ModelTier {\n score: number;\n patterns: readonly string[];\n}\n\n/**\n * Options for the fallback model-tier adapter.\n */\nexport interface Hcs25ModelTierAdapterOptions {\n /** Tier table; the first matching tier wins. */\n tiers?: readonly Hcs25ModelTier[];\n /** Score for models that match no tier. Default 50. */\n defaultScore?: number;\n /** Metadata keys checked for the model identifier, in order. */\n modelIdKeys?: readonly string[];\n /** Model catalog registries where the adapter applies. */\n includeRegistries?: readonly string[];\n}\n\nconst DEFAULT_MODEL_REGISTRIES: readonly string[] = ['openrouter', 'near-ai'];\n\nconst MISSING: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\nconst DEFAULT_MODEL_TIERS: readonly Hcs25ModelTier[] = [\n {\n score: 95,\n patterns: [\n 'gpt-5',\n 'gpt-4.5',\n 'o3',\n 'o4-mini',\n 'claude-opus-4',\n 'claude-4-opus',\n 'gemini-3',\n 'grok-4',\n ],\n },\n {\n score: 85,\n patterns: [\n 'claude-sonnet-4',\n 'claude-4-sonnet',\n 'claude-3-7-sonnet',\n 'gemini-2.5-pro',\n 'deepseek-v3',\n 'deepseek-r1',\n 'llama-4-maverick',\n 'qwen3-235b',\n 'grok-3',\n ],\n },\n {\n score: 70,\n patterns: [\n 'gpt-4o',\n 'gemini-2.5-flash',\n 'claude-haiku',\n 'llama-4-scout',\n 'qwen3-32b',\n 'mistral-large',\n ],\n },\n {\n score: 55,\n patterns: ['llama-3.3', 'llama-3.1', 'qwen', 'mistral', 'gemma', 'phi-'],\n },\n { score: 35, patterns: ['llama-2', 'gpt-3.5', 'gemini-1'] },\n];\n\nconst DEFAULT_MODEL_ID_KEYS: readonly string[] = [\n 'openrouterModelId',\n 'modelId',\n 'model',\n];\n\n/**\n * Creates the `openrouter-evals` adapter: exposes a coverage-aware\n * benchmark component for model catalog entries, down-weighting\n * low-coverage scores.\n */\nexport function createOpenRouterEvalsAdapter(\n options: Hcs25OpenRouterEvalsAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const lowCoverageMultiplier = options.lowCoverageMultiplier ?? 0.5;\n\n return {\n id: 'openrouter-evals',\n weight: 0.5,\n contributionMode: 'scoped',\n includeRegistries: options.includeRegistries ?? DEFAULT_MODEL_REGISTRIES,\n defaultComponentKey: 'openrouter-evals.score',\n components: [\n {\n name: 'score',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const additional: Hcs25JsonObject = readSubjectAdditional(subject);\n const score = readNumber(additional, 'openrouterEvalScore');\n const status = readString(additional, 'openrouterEvalStatus');\n\n if (score === null || status === 'missing') {\n if (status === 'timeout' || status === 'error') {\n return { value: 0, status };\n }\n return MISSING;\n }\n\n const multiplier =\n status === 'low-coverage' ? lowCoverageMultiplier : 1;\n return {\n value: clampScore(score * multiplier),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n },\n },\n ],\n };\n}\n\n/**\n * Creates the `chatbot-arena` adapter: exposes an independent\n * preference-leaderboard signal as a normalized component.\n */\nexport function createChatbotArenaAdapter(\n includeRegistries?: readonly string[],\n): Hcs25AdapterDefinition {\n return {\n id: 'chatbot-arena',\n weight: 6,\n contributionMode: 'scoped',\n includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,\n defaultComponentKey: 'chatbot-arena.score',\n components: [\n {\n name: 'score',\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const additional = readSubjectAdditional(subject);\n const score = readNumber(additional, 'chatbotArenaEvalScore');\n const status = readString(additional, 'chatbotArenaEvalStatus');\n\n if (score === null) {\n if (status === 'timeout' || status === 'error') {\n return { value: 0, status };\n }\n return MISSING;\n }\n if (status === 'missing') {\n return MISSING;\n }\n return {\n value: clampScore(score),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n },\n },\n ],\n };\n}\n\n/**\n * Creates the `huggingface-model-index` adapter: exposes Hugging\n * Face-derived model-index and popularity signals, contributing only when\n * coverage exists.\n */\nexport function createHuggingFaceModelIndexAdapter(\n includeRegistries?: readonly string[],\n): Hcs25AdapterDefinition {\n return {\n id: 'huggingface-model-index',\n weight: 0.8,\n contributionMode: 'conditional',\n includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,\n defaultComponentKey: 'huggingface-model-index.score',\n components: [\n {\n name: 'score',\n nonScorableWhenUnavailable: true,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const additional = readSubjectAdditional(subject);\n const score =\n readNumber(additional, 'huggingFaceEvalScore') ??\n readNumber(additional, 'huggingFaceSignalScore');\n const status = readString(additional, 'huggingFaceEvalStatus');\n const mode = readString(additional, 'huggingFaceEvalMode');\n\n if (score === null || mode === 'missing' || status === 'missing') {\n if (status === 'timeout' || status === 'error') {\n return { value: 0, status };\n }\n return MISSING;\n }\n return {\n value: clampScore(score),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n },\n },\n ],\n };\n}\n\n/**\n * Creates the `openllm-leaderboard` adapter: exposes a benchmark-derived\n * leaderboard score, contributing only when a record exists.\n */\nexport function createOpenLlmLeaderboardAdapter(\n includeRegistries?: readonly string[],\n): Hcs25AdapterDefinition {\n return {\n id: 'openllm-leaderboard',\n weight: 1,\n contributionMode: 'conditional',\n includeRegistries: includeRegistries ?? DEFAULT_MODEL_REGISTRIES,\n defaultComponentKey: 'openllm-leaderboard.score',\n components: [\n {\n name: 'score',\n nonScorableWhenUnavailable: true,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const additional = readSubjectAdditional(subject);\n const score = readNumber(additional, 'openLlmEvalScore');\n const status = readString(additional, 'openLlmEvalStatus');\n\n if (score === null || status === 'missing') {\n if (status === 'timeout' || status === 'error') {\n return { value: 0, status };\n }\n return MISSING;\n }\n return {\n value: clampScore(score),\n status: status === 'stale' ? 'stale' : 'ok',\n };\n },\n },\n ],\n };\n}\n\n/**\n * Creates the `model-tier` adapter: a deterministic fallback heuristic for\n * model catalogs with sparse external-eval coverage. It suppresses itself\n * when OpenRouter coverage is sufficient or any independent eval source\n * exists, per the specification's fallback-only guidance.\n */\nexport function createModelTierAdapter(\n options: Hcs25ModelTierAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const tiers = options.tiers ?? DEFAULT_MODEL_TIERS;\n const defaultScore = options.defaultScore ?? 50;\n const modelIdKeys = options.modelIdKeys ?? DEFAULT_MODEL_ID_KEYS;\n\n return {\n id: 'model-tier',\n weight: 2,\n contributionMode: 'conditional',\n includeRegistries: options.includeRegistries ?? DEFAULT_MODEL_REGISTRIES,\n defaultComponentKey: 'model-tier.score',\n components: [\n {\n name: 'score',\n nonScorableWhenUnavailable: true,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const additional = readSubjectAdditional(subject);\n\n const hasStrongCoverage =\n readString(additional, 'openrouterEvalStatus') === 'ok';\n const hasIndependentEvals = [\n 'chatbotArenaEvalStatus',\n 'huggingFaceEvalStatus',\n 'openLlmEvalStatus',\n ].some(key => readString(additional, key) === 'ok');\n if (hasStrongCoverage || hasIndependentEvals) {\n return MISSING;\n }\n\n const modelId = modelIdKeys\n .map(key => readString(additional, key))\n .find((value): value is string => value !== null);\n if (modelId === null) {\n return MISSING;\n }\n\n const normalizedId = modelId.toLowerCase();\n const tier = tiers.find(entry =>\n entry.patterns.some(pattern =>\n normalizedId.includes(pattern.toLowerCase()),\n ),\n );\n return {\n value: clampScore(tier ? tier.score : defaultScore),\n status: 'ok',\n };\n },\n },\n ],\n };\n}\n"],"names":[],"mappings":";;;;;;;AA8CA,MAAM,2BAA8C,CAAC,cAAc,SAAS;AAE5E,MAAM,UAAgC,EAAE,OAAO,GAAG,QAAQ,UAAA;AAE1D,MAAM,sBAAiD;AAAA,EACrD;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,UAAU;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,UAAU,CAAC,aAAa,aAAa,QAAQ,WAAW,SAAS,MAAM;AAAA,EAAA;AAAA,EAEzE,EAAE,OAAO,IAAI,UAAU,CAAC,WAAW,WAAW,UAAU,EAAA;AAC1D;AAEA,MAAM,wBAA2C;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF;AAOO,SAAS,6BACd,UAA8C,IACtB;AACxB,QAAM,wBAAwB,QAAQ,yBAAyB;AAE/D,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,aAA8B,sBAAsB,OAAO;AACjE,gBAAM,QAAQ,WAAW,YAAY,qBAAqB;AAC1D,gBAAM,SAAS,WAAW,YAAY,sBAAsB;AAE5D,cAAI,UAAU,QAAQ,WAAW,WAAW;AAC1C,gBAAI,WAAW,aAAa,WAAW,SAAS;AAC9C,qBAAO,EAAE,OAAO,GAAG,OAAA;AAAA,YACrB;AACA,mBAAO;AAAA,UACT;AAEA,gBAAM,aACJ,WAAW,iBAAiB,wBAAwB;AACtD,iBAAO;AAAA,YACL,OAAO,WAAW,QAAQ,UAAU;AAAA,YACpC,QAAQ,WAAW,UAAU,UAAU;AAAA,UAAA;AAAA,QAE3C;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAMO,SAAS,0BACd,mBACwB;AACxB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,qBAAqB;AAAA,IACxC,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,aAAa,sBAAsB,OAAO;AAChD,gBAAM,QAAQ,WAAW,YAAY,uBAAuB;AAC5D,gBAAM,SAAS,WAAW,YAAY,wBAAwB;AAE9D,cAAI,UAAU,MAAM;AAClB,gBAAI,WAAW,aAAa,WAAW,SAAS;AAC9C,qBAAO,EAAE,OAAO,GAAG,OAAA;AAAA,YACrB;AACA,mBAAO;AAAA,UACT;AACA,cAAI,WAAW,WAAW;AACxB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,YACL,OAAO,WAAW,KAAK;AAAA,YACvB,QAAQ,WAAW,UAAU,UAAU;AAAA,UAAA;AAAA,QAE3C;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAOO,SAAS,mCACd,mBACwB;AACxB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,qBAAqB;AAAA,IACxC,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,4BAA4B;AAAA,QAC5B,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,aAAa,sBAAsB,OAAO;AAChD,gBAAM,QACJ,WAAW,YAAY,sBAAsB,KAC7C,WAAW,YAAY,wBAAwB;AACjD,gBAAM,SAAS,WAAW,YAAY,uBAAuB;AAC7D,gBAAM,OAAO,WAAW,YAAY,qBAAqB;AAEzD,cAAI,UAAU,QAAQ,SAAS,aAAa,WAAW,WAAW;AAChE,gBAAI,WAAW,aAAa,WAAW,SAAS;AAC9C,qBAAO,EAAE,OAAO,GAAG,OAAA;AAAA,YACrB;AACA,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,YACL,OAAO,WAAW,KAAK;AAAA,YACvB,QAAQ,WAAW,UAAU,UAAU;AAAA,UAAA;AAAA,QAE3C;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAMO,SAAS,gCACd,mBACwB;AACxB,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,qBAAqB;AAAA,IACxC,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,4BAA4B;AAAA,QAC5B,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,aAAa,sBAAsB,OAAO;AAChD,gBAAM,QAAQ,WAAW,YAAY,kBAAkB;AACvD,gBAAM,SAAS,WAAW,YAAY,mBAAmB;AAEzD,cAAI,UAAU,QAAQ,WAAW,WAAW;AAC1C,gBAAI,WAAW,aAAa,WAAW,SAAS;AAC9C,qBAAO,EAAE,OAAO,GAAG,OAAA;AAAA,YACrB;AACA,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,YACL,OAAO,WAAW,KAAK;AAAA,YACvB,QAAQ,WAAW,UAAU,UAAU;AAAA,UAAA;AAAA,QAE3C;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;AAQO,SAAS,uBACd,UAAwC,IAChB;AACxB,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,eAAe,QAAQ,gBAAgB;AAC7C,QAAM,cAAc,QAAQ,eAAe;AAE3C,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,mBAAmB,QAAQ,qBAAqB;AAAA,IAChD,qBAAqB;AAAA,IACrB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,4BAA4B;AAAA,QAC5B,WAAW,CAAC,EAAE,cAAoC;AAChD,gBAAM,aAAa,sBAAsB,OAAO;AAEhD,gBAAM,oBACJ,WAAW,YAAY,sBAAsB,MAAM;AACrD,gBAAM,sBAAsB;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,UAAA,EACA,KAAK,CAAA,QAAO,WAAW,YAAY,GAAG,MAAM,IAAI;AAClD,cAAI,qBAAqB,qBAAqB;AAC5C,mBAAO;AAAA,UACT;AAEA,gBAAM,UAAU,YACb,IAAI,CAAA,QAAO,WAAW,YAAY,GAAG,CAAC,EACtC,KAAK,CAAC,UAA2B,UAAU,IAAI;AAClD,cAAI,YAAY,MAAM;AACpB,mBAAO;AAAA,UACT;AAEA,gBAAM,eAAe,QAAQ,YAAA;AAC7B,gBAAM,OAAO,MAAM;AAAA,YAAK,CAAA,UACtB,MAAM,SAAS;AAAA,cAAK,CAAA,YAClB,aAAa,SAAS,QAAQ,aAAa;AAAA,YAAA;AAAA,UAC7C;AAEF,iBAAO;AAAA,YACL,OAAO,WAAW,OAAO,KAAK,QAAQ,YAAY;AAAA,YAClD,QAAQ;AAAA,UAAA;AAAA,QAEZ;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
|