@dzhechkov/harness-core 0.8.39 → 0.8.40
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/.dz-manifest.json +76 -56
- package/README.md +48 -0
- package/dist/cmd-usage.d.ts.map +1 -1
- package/dist/cmd-usage.js +48 -2
- package/dist/cmd-usage.js.map +1 -1
- package/dist/compounding.d.ts +66 -0
- package/dist/compounding.d.ts.map +1 -1
- package/dist/compounding.js +76 -9
- package/dist/compounding.js.map +1 -1
- package/dist/doctor-instrument.d.ts +65 -0
- package/dist/doctor-instrument.d.ts.map +1 -0
- package/dist/doctor-instrument.js +91 -0
- package/dist/doctor-instrument.js.map +1 -0
- package/dist/feature-tier.d.ts.map +1 -1
- package/dist/feature-tier.js +13 -1
- package/dist/feature-tier.js.map +1 -1
- package/dist/guard.d.ts +17 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +15 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/mutation-gate.d.ts +30 -0
- package/dist/mutation-gate.d.ts.map +1 -1
- package/dist/mutation-gate.js +45 -1
- package/dist/mutation-gate.js.map +1 -1
- package/dist/operations.d.ts +13 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +88 -2
- package/dist/operations.js.map +1 -1
- package/dist/registry.d.ts +58 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +62 -5
- package/dist/registry.js.map +1 -1
- package/dist/release.d.ts +18 -0
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +30 -0
- package/dist/release.js.map +1 -1
- package/dist/round-exec.d.ts +10 -0
- package/dist/round-exec.d.ts.map +1 -1
- package/dist/round-exec.js +3 -2
- package/dist/round-exec.js.map +1 -1
- package/dist/round.d.ts +19 -0
- package/dist/round.d.ts.map +1 -1
- package/dist/round.js +1 -0
- package/dist/round.js.map +1 -1
- package/package.json +1 -1
- package/sbom.json +105 -55
- package/src/cmd-usage.ts +52 -2
- package/src/compounding.ts +112 -9
- package/src/doctor-instrument.ts +153 -0
- package/src/feature-tier.ts +14 -1
- package/src/guard.ts +24 -0
- package/src/index.ts +5 -2
- package/src/mutation-gate.ts +54 -1
- package/src/operations.ts +85 -3
- package/src/registry.ts +91 -1
- package/src/release.ts +36 -0
- package/src/round-exec.ts +13 -2
- package/src/round.ts +20 -0
package/.dz-manifest.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "README.md",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "3ef818e122247951d0842998cca60d8fba532eecd05ca3c84b449831beee70a0"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "dist/__tests__/golden-baseline.test.d.ts",
|
|
@@ -465,15 +465,15 @@
|
|
|
465
465
|
},
|
|
466
466
|
{
|
|
467
467
|
"path": "dist/cmd-usage.d.ts.map",
|
|
468
|
-
"sha256": "
|
|
468
|
+
"sha256": "caea0f64380b639539021083c43c8401a84094d614c6c33f979ed1534962f872"
|
|
469
469
|
},
|
|
470
470
|
{
|
|
471
471
|
"path": "dist/cmd-usage.js",
|
|
472
|
-
"sha256": "
|
|
472
|
+
"sha256": "cb0d8be68bca868f903880f993b3403ef09fc6813d37647c3ca903b035a37f6e"
|
|
473
473
|
},
|
|
474
474
|
{
|
|
475
475
|
"path": "dist/cmd-usage.js.map",
|
|
476
|
-
"sha256": "
|
|
476
|
+
"sha256": "4e20aba9308748e50c333dab95cfa7ccb63c3f8de31efeabcd49fd2fae30d296"
|
|
477
477
|
},
|
|
478
478
|
{
|
|
479
479
|
"path": "dist/codex-hooks-assets.d.ts",
|
|
@@ -557,19 +557,19 @@
|
|
|
557
557
|
},
|
|
558
558
|
{
|
|
559
559
|
"path": "dist/compounding.d.ts",
|
|
560
|
-
"sha256": "
|
|
560
|
+
"sha256": "9a4731c1d61005a8fdd04f99267eb27632ec6244dbf94eca710ddacde6b17a9c"
|
|
561
561
|
},
|
|
562
562
|
{
|
|
563
563
|
"path": "dist/compounding.d.ts.map",
|
|
564
|
-
"sha256": "
|
|
564
|
+
"sha256": "1213ddad737a4a439b3e214fae615a9e8dced521b3c68747aacf5ee6af60938a"
|
|
565
565
|
},
|
|
566
566
|
{
|
|
567
567
|
"path": "dist/compounding.js",
|
|
568
|
-
"sha256": "
|
|
568
|
+
"sha256": "10e4593a8f27a219135e520d6719332a316de66328c6ce977ef34500cd80e74a"
|
|
569
569
|
},
|
|
570
570
|
{
|
|
571
571
|
"path": "dist/compounding.js.map",
|
|
572
|
-
"sha256": "
|
|
572
|
+
"sha256": "b6e13d176d70574cfa22a1e112ffd7fb68bf401050b30b22779a7bdfce8a4bce"
|
|
573
573
|
},
|
|
574
574
|
{
|
|
575
575
|
"path": "dist/confirmation-file-gate.d.ts",
|
|
@@ -779,6 +779,22 @@
|
|
|
779
779
|
"path": "dist/discrimination-gate.js.map",
|
|
780
780
|
"sha256": "670bec50dd1b6f13ee2d625e1b212282f901e83ff145b6a3eef72316a6e33175"
|
|
781
781
|
},
|
|
782
|
+
{
|
|
783
|
+
"path": "dist/doctor-instrument.d.ts",
|
|
784
|
+
"sha256": "2879145a9fbaf455da1b7e5b43900c5dd14ab7c81065ff15fab9d1791fe784bd"
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
"path": "dist/doctor-instrument.d.ts.map",
|
|
788
|
+
"sha256": "5f4e5c6196250fb080b2429ef2b634a65b90cf1872d43588f4062622b9d9066c"
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"path": "dist/doctor-instrument.js",
|
|
792
|
+
"sha256": "27e76e9e724650db911d00c68ad8f99282ef27ee94d1e4f0865b336c67e9192d"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"path": "dist/doctor-instrument.js.map",
|
|
796
|
+
"sha256": "d36f00fea832a6dc154109b65d5d0726fc70f91f330c910c6b7d3c40d6149b2d"
|
|
797
|
+
},
|
|
782
798
|
{
|
|
783
799
|
"path": "dist/downloads.d.ts",
|
|
784
800
|
"sha256": "6c2923007fcb9d67d4fd9b01f019da3ae57fb11af1c835376595f1ea0ab910ef"
|
|
@@ -1041,15 +1057,15 @@
|
|
|
1041
1057
|
},
|
|
1042
1058
|
{
|
|
1043
1059
|
"path": "dist/feature-tier.d.ts.map",
|
|
1044
|
-
"sha256": "
|
|
1060
|
+
"sha256": "e77f19ac5214bf758b999ca76bd26bee2c95d88cb3715c76cc1ad3ebf3525b72"
|
|
1045
1061
|
},
|
|
1046
1062
|
{
|
|
1047
1063
|
"path": "dist/feature-tier.js",
|
|
1048
|
-
"sha256": "
|
|
1064
|
+
"sha256": "d97eabf8f021f5aa4b55b04dc4256b8136d0a6ae20c0822d30262cfc5d7936d3"
|
|
1049
1065
|
},
|
|
1050
1066
|
{
|
|
1051
1067
|
"path": "dist/feature-tier.js.map",
|
|
1052
|
-
"sha256": "
|
|
1068
|
+
"sha256": "62caa97608a0424272964220deb45bfacdcf7d723d5a31049f59ebc80be88e6e"
|
|
1053
1069
|
},
|
|
1054
1070
|
{
|
|
1055
1071
|
"path": "dist/guard-promotion.d.ts",
|
|
@@ -1085,19 +1101,19 @@
|
|
|
1085
1101
|
},
|
|
1086
1102
|
{
|
|
1087
1103
|
"path": "dist/guard.d.ts",
|
|
1088
|
-
"sha256": "
|
|
1104
|
+
"sha256": "dff439f8383788d388334d178d114a9f6053e459eb6fbc1bb8475b9cd16c7dce"
|
|
1089
1105
|
},
|
|
1090
1106
|
{
|
|
1091
1107
|
"path": "dist/guard.d.ts.map",
|
|
1092
|
-
"sha256": "
|
|
1108
|
+
"sha256": "9d5483e6ef65aeb842e8140447be2160dd1fde8abed37f62d23117aed03c471b"
|
|
1093
1109
|
},
|
|
1094
1110
|
{
|
|
1095
1111
|
"path": "dist/guard.js",
|
|
1096
|
-
"sha256": "
|
|
1112
|
+
"sha256": "cd9864b9a207439ef92b6e6735fd7c3388f3b2a6f62b9696d126b4048aa814e3"
|
|
1097
1113
|
},
|
|
1098
1114
|
{
|
|
1099
1115
|
"path": "dist/guard.js.map",
|
|
1100
|
-
"sha256": "
|
|
1116
|
+
"sha256": "0ec9c46ce9f5d6ceed61161a36bd2ae0d29d1cf9e1e19c5aaa28e95387b0c8bf"
|
|
1101
1117
|
},
|
|
1102
1118
|
{
|
|
1103
1119
|
"path": "dist/harness-core-location.d.ts",
|
|
@@ -1133,19 +1149,19 @@
|
|
|
1133
1149
|
},
|
|
1134
1150
|
{
|
|
1135
1151
|
"path": "dist/index.d.ts",
|
|
1136
|
-
"sha256": "
|
|
1152
|
+
"sha256": "6742e527f6a49df11428bb5a37049c3f62fb9fa9e5e3e1a1ecebd709fc644bbf"
|
|
1137
1153
|
},
|
|
1138
1154
|
{
|
|
1139
1155
|
"path": "dist/index.d.ts.map",
|
|
1140
|
-
"sha256": "
|
|
1156
|
+
"sha256": "eb9d920b318e78ba9fc7e2c5d232d54ae5bd7179a1cd4d94319f442b3ff71d5f"
|
|
1141
1157
|
},
|
|
1142
1158
|
{
|
|
1143
1159
|
"path": "dist/index.js",
|
|
1144
|
-
"sha256": "
|
|
1160
|
+
"sha256": "02aa43f38a2b9f8a7a3e1d7233333d41320eb4d97285097b9d1162d45d13f48b"
|
|
1145
1161
|
},
|
|
1146
1162
|
{
|
|
1147
1163
|
"path": "dist/index.js.map",
|
|
1148
|
-
"sha256": "
|
|
1164
|
+
"sha256": "c827ac4452f7b834b405421e829dfe2faa2092a352567c20470b6d81fd063072"
|
|
1149
1165
|
},
|
|
1150
1166
|
{
|
|
1151
1167
|
"path": "dist/integration-apply.d.ts",
|
|
@@ -1517,19 +1533,19 @@
|
|
|
1517
1533
|
},
|
|
1518
1534
|
{
|
|
1519
1535
|
"path": "dist/mutation-gate.d.ts",
|
|
1520
|
-
"sha256": "
|
|
1536
|
+
"sha256": "4df5b94b7146cd1bec847adfa7c4567ddd80cd6ef1bc9901d886619c8de0ca5f"
|
|
1521
1537
|
},
|
|
1522
1538
|
{
|
|
1523
1539
|
"path": "dist/mutation-gate.d.ts.map",
|
|
1524
|
-
"sha256": "
|
|
1540
|
+
"sha256": "d1e027b0e9c453fd0909b69962d8575712b66aca7ebad499769e31f5527d32fd"
|
|
1525
1541
|
},
|
|
1526
1542
|
{
|
|
1527
1543
|
"path": "dist/mutation-gate.js",
|
|
1528
|
-
"sha256": "
|
|
1544
|
+
"sha256": "da1f98f1e8122d97be3d9ed81d6bf5e5febeca6f14060d06a3571dc10adb82a7"
|
|
1529
1545
|
},
|
|
1530
1546
|
{
|
|
1531
1547
|
"path": "dist/mutation-gate.js.map",
|
|
1532
|
-
"sha256": "
|
|
1548
|
+
"sha256": "eaa45becf4789b2d4cce2eb8296a150dab57de6117880c6b431c0b89a8b04232"
|
|
1533
1549
|
},
|
|
1534
1550
|
{
|
|
1535
1551
|
"path": "dist/name-check.d.ts",
|
|
@@ -1597,19 +1613,19 @@
|
|
|
1597
1613
|
},
|
|
1598
1614
|
{
|
|
1599
1615
|
"path": "dist/operations.d.ts",
|
|
1600
|
-
"sha256": "
|
|
1616
|
+
"sha256": "08cfb9ffe7eadb82d2f2f40aff7360aa75ff389728ece5f71d10c58804b8b192"
|
|
1601
1617
|
},
|
|
1602
1618
|
{
|
|
1603
1619
|
"path": "dist/operations.d.ts.map",
|
|
1604
|
-
"sha256": "
|
|
1620
|
+
"sha256": "b1432400a5a51599f9c1cd0416e84caa8e076b2aebf7f2f1f49c7d9d39e6cbae"
|
|
1605
1621
|
},
|
|
1606
1622
|
{
|
|
1607
1623
|
"path": "dist/operations.js",
|
|
1608
|
-
"sha256": "
|
|
1624
|
+
"sha256": "ad12b1f41aef0079fb9e1bf666623f51a95026db53b12b112206ffe41e509789"
|
|
1609
1625
|
},
|
|
1610
1626
|
{
|
|
1611
1627
|
"path": "dist/operations.js.map",
|
|
1612
|
-
"sha256": "
|
|
1628
|
+
"sha256": "d1aa989e25ccdb894d1ece97a6e86d5c406bb6cac1a48d8094e04ea3ba0c2a20"
|
|
1613
1629
|
},
|
|
1614
1630
|
{
|
|
1615
1631
|
"path": "dist/package-skill-layouts.d.ts",
|
|
@@ -2013,19 +2029,19 @@
|
|
|
2013
2029
|
},
|
|
2014
2030
|
{
|
|
2015
2031
|
"path": "dist/registry.d.ts",
|
|
2016
|
-
"sha256": "
|
|
2032
|
+
"sha256": "a4bd17e2138cfdc4b5222f23641e1a8b2d42668606b0c2bf7b8e0e40cc536a41"
|
|
2017
2033
|
},
|
|
2018
2034
|
{
|
|
2019
2035
|
"path": "dist/registry.d.ts.map",
|
|
2020
|
-
"sha256": "
|
|
2036
|
+
"sha256": "2eae51ab376f906d9e9d87557403ea1c3e14aafe77647b412c70f3466cc996ce"
|
|
2021
2037
|
},
|
|
2022
2038
|
{
|
|
2023
2039
|
"path": "dist/registry.js",
|
|
2024
|
-
"sha256": "
|
|
2040
|
+
"sha256": "58c6966af5db8b4b004e005393f2dd3614333d10f6af5863a55283994bf40626"
|
|
2025
2041
|
},
|
|
2026
2042
|
{
|
|
2027
2043
|
"path": "dist/registry.js.map",
|
|
2028
|
-
"sha256": "
|
|
2044
|
+
"sha256": "2763b10689a4e37f1b3e21b4895224002f8bcfe44d575651e8a17aeb541acacb"
|
|
2029
2045
|
},
|
|
2030
2046
|
{
|
|
2031
2047
|
"path": "dist/release-line.d.ts",
|
|
@@ -2045,19 +2061,19 @@
|
|
|
2045
2061
|
},
|
|
2046
2062
|
{
|
|
2047
2063
|
"path": "dist/release.d.ts",
|
|
2048
|
-
"sha256": "
|
|
2064
|
+
"sha256": "a8df443a72098d2763fb1a5c890679645c3e4a1e8e66cc57f0f84bdc45a22943"
|
|
2049
2065
|
},
|
|
2050
2066
|
{
|
|
2051
2067
|
"path": "dist/release.d.ts.map",
|
|
2052
|
-
"sha256": "
|
|
2068
|
+
"sha256": "56a239a947b4b71ad78694704e579637989f13b736e39b4df3749fd77978fb99"
|
|
2053
2069
|
},
|
|
2054
2070
|
{
|
|
2055
2071
|
"path": "dist/release.js",
|
|
2056
|
-
"sha256": "
|
|
2072
|
+
"sha256": "f2b24ecf4d9dda40248312c2ea8da5a463aafff3a9e6f33d95e88f46465cef6c"
|
|
2057
2073
|
},
|
|
2058
2074
|
{
|
|
2059
2075
|
"path": "dist/release.js.map",
|
|
2060
|
-
"sha256": "
|
|
2076
|
+
"sha256": "087b7ccd1c940236f3851c64f990a81b9fe01c882dd2967408abffc9dbbc0fe5"
|
|
2061
2077
|
},
|
|
2062
2078
|
{
|
|
2063
2079
|
"path": "dist/repo-boundary.d.ts",
|
|
@@ -2173,35 +2189,35 @@
|
|
|
2173
2189
|
},
|
|
2174
2190
|
{
|
|
2175
2191
|
"path": "dist/round-exec.d.ts",
|
|
2176
|
-
"sha256": "
|
|
2192
|
+
"sha256": "3a7860e320ed7a2bf37b142f7aa37bcaec5302c563dc7b1ce2e75f6d4f9cc350"
|
|
2177
2193
|
},
|
|
2178
2194
|
{
|
|
2179
2195
|
"path": "dist/round-exec.d.ts.map",
|
|
2180
|
-
"sha256": "
|
|
2196
|
+
"sha256": "809a2c982c127e5917d61d9999b938d5ef945e40d966f453e87e84c5b4be5e9a"
|
|
2181
2197
|
},
|
|
2182
2198
|
{
|
|
2183
2199
|
"path": "dist/round-exec.js",
|
|
2184
|
-
"sha256": "
|
|
2200
|
+
"sha256": "c10264a02e7bb92eb35d91df2672e8ea0b46af9b663a5516dfec23ea355aa7e0"
|
|
2185
2201
|
},
|
|
2186
2202
|
{
|
|
2187
2203
|
"path": "dist/round-exec.js.map",
|
|
2188
|
-
"sha256": "
|
|
2204
|
+
"sha256": "7da84a5b9a1a94426f60a472de0d4fd02386afa5b9f36b5fa47b106e641c595e"
|
|
2189
2205
|
},
|
|
2190
2206
|
{
|
|
2191
2207
|
"path": "dist/round.d.ts",
|
|
2192
|
-
"sha256": "
|
|
2208
|
+
"sha256": "a3b2c7e909172750bec800ddfcf17ea821478f902f65a8cae0259c6930b21055"
|
|
2193
2209
|
},
|
|
2194
2210
|
{
|
|
2195
2211
|
"path": "dist/round.d.ts.map",
|
|
2196
|
-
"sha256": "
|
|
2212
|
+
"sha256": "16b1c539770b0c53ab0ae14a91d07792cf2c5ba6006ec2ff8ecfc4fc45b08bec"
|
|
2197
2213
|
},
|
|
2198
2214
|
{
|
|
2199
2215
|
"path": "dist/round.js",
|
|
2200
|
-
"sha256": "
|
|
2216
|
+
"sha256": "a98e3622b004415680c5293e17893c107f3d1516d07dbbef5920a812730ca655"
|
|
2201
2217
|
},
|
|
2202
2218
|
{
|
|
2203
2219
|
"path": "dist/round.js.map",
|
|
2204
|
-
"sha256": "
|
|
2220
|
+
"sha256": "19d71d80111bd2fe9f30079fa722120771fe09e7ee5a84dcdd748253fcf1f40d"
|
|
2205
2221
|
},
|
|
2206
2222
|
{
|
|
2207
2223
|
"path": "dist/routing-outcomes.d.ts",
|
|
@@ -2925,7 +2941,7 @@
|
|
|
2925
2941
|
},
|
|
2926
2942
|
{
|
|
2927
2943
|
"path": "package.json",
|
|
2928
|
-
"sha256": "
|
|
2944
|
+
"sha256": "93cea298d51618d7ea9cf0a76a476afb4ee4350de7fbcb430f8fa77ba21a0a9c"
|
|
2929
2945
|
},
|
|
2930
2946
|
{
|
|
2931
2947
|
"path": "src/__tests__/golden-baseline.test.ts",
|
|
@@ -3041,7 +3057,7 @@
|
|
|
3041
3057
|
},
|
|
3042
3058
|
{
|
|
3043
3059
|
"path": "src/cmd-usage.ts",
|
|
3044
|
-
"sha256": "
|
|
3060
|
+
"sha256": "24563544a556fce1469f0011f18ac7e3056e704c0280e71609c81e0173e7bd24"
|
|
3045
3061
|
},
|
|
3046
3062
|
{
|
|
3047
3063
|
"path": "src/codex-hooks-assets.ts",
|
|
@@ -3065,7 +3081,7 @@
|
|
|
3065
3081
|
},
|
|
3066
3082
|
{
|
|
3067
3083
|
"path": "src/compounding.ts",
|
|
3068
|
-
"sha256": "
|
|
3084
|
+
"sha256": "eefa21a7b72408846c52149c057de5e8b6b63c544d39fab327a294e0fa3bfbdc"
|
|
3069
3085
|
},
|
|
3070
3086
|
{
|
|
3071
3087
|
"path": "src/confirmation-file-gate.ts",
|
|
@@ -3123,6 +3139,10 @@
|
|
|
3123
3139
|
"path": "src/discrimination-gate.ts",
|
|
3124
3140
|
"sha256": "1f2b27209260d55f0b4482d61d104ed44cca1d9c9101f9658b525a53dabeff36"
|
|
3125
3141
|
},
|
|
3142
|
+
{
|
|
3143
|
+
"path": "src/doctor-instrument.ts",
|
|
3144
|
+
"sha256": "7b847263c2943faea0a6843f886f40a07b0c3c2f22a80036bd0a04eb976cd3bd"
|
|
3145
|
+
},
|
|
3126
3146
|
{
|
|
3127
3147
|
"path": "src/downloads.ts",
|
|
3128
3148
|
"sha256": "1442c789d2519c1b621b326411fcee4a57ab933ce332dbc60d271e64b49ec5db"
|
|
@@ -3189,7 +3209,7 @@
|
|
|
3189
3209
|
},
|
|
3190
3210
|
{
|
|
3191
3211
|
"path": "src/feature-tier.ts",
|
|
3192
|
-
"sha256": "
|
|
3212
|
+
"sha256": "1e78bcf0b073cc9f3fafdcf0b4b09ce618f5b92da37c41b95edaf55b4ea7e84a"
|
|
3193
3213
|
},
|
|
3194
3214
|
{
|
|
3195
3215
|
"path": "src/guard-promotion.ts",
|
|
@@ -3201,7 +3221,7 @@
|
|
|
3201
3221
|
},
|
|
3202
3222
|
{
|
|
3203
3223
|
"path": "src/guard.ts",
|
|
3204
|
-
"sha256": "
|
|
3224
|
+
"sha256": "d664a75f17779c7909f22a5ec8fa388560967a248832c9c424ff22d54abd4a63"
|
|
3205
3225
|
},
|
|
3206
3226
|
{
|
|
3207
3227
|
"path": "src/harness-core-location.ts",
|
|
@@ -3213,7 +3233,7 @@
|
|
|
3213
3233
|
},
|
|
3214
3234
|
{
|
|
3215
3235
|
"path": "src/index.ts",
|
|
3216
|
-
"sha256": "
|
|
3236
|
+
"sha256": "a014b91ccf5378fccd5d40cb9cbbfd5384086a58d1e50b4c15a002c900063900"
|
|
3217
3237
|
},
|
|
3218
3238
|
{
|
|
3219
3239
|
"path": "src/integration-apply.ts",
|
|
@@ -3309,7 +3329,7 @@
|
|
|
3309
3329
|
},
|
|
3310
3330
|
{
|
|
3311
3331
|
"path": "src/mutation-gate.ts",
|
|
3312
|
-
"sha256": "
|
|
3332
|
+
"sha256": "3793b900cab1689a0e1893d22653a4297c474fe2fd332a76e55810be3019ca36"
|
|
3313
3333
|
},
|
|
3314
3334
|
{
|
|
3315
3335
|
"path": "src/name-check.ts",
|
|
@@ -3329,7 +3349,7 @@
|
|
|
3329
3349
|
},
|
|
3330
3350
|
{
|
|
3331
3351
|
"path": "src/operations.ts",
|
|
3332
|
-
"sha256": "
|
|
3352
|
+
"sha256": "e99a8536fab6ddc0262b97cb4f25d57922f5d25187646cafc1e81530ba00120a"
|
|
3333
3353
|
},
|
|
3334
3354
|
{
|
|
3335
3355
|
"path": "src/package-skill-layouts.ts",
|
|
@@ -3437,7 +3457,7 @@
|
|
|
3437
3457
|
},
|
|
3438
3458
|
{
|
|
3439
3459
|
"path": "src/registry.ts",
|
|
3440
|
-
"sha256": "
|
|
3460
|
+
"sha256": "8b512c6149f4892633a5bbe10ca347914ee606dfa1c89b56408cab69ee6bc826"
|
|
3441
3461
|
},
|
|
3442
3462
|
{
|
|
3443
3463
|
"path": "src/release-line.ts",
|
|
@@ -3445,7 +3465,7 @@
|
|
|
3445
3465
|
},
|
|
3446
3466
|
{
|
|
3447
3467
|
"path": "src/release.ts",
|
|
3448
|
-
"sha256": "
|
|
3468
|
+
"sha256": "3d2b6c959468b5c953d40081acb834ac6fa82f35d3deb4136bc511455c7e4b4a"
|
|
3449
3469
|
},
|
|
3450
3470
|
{
|
|
3451
3471
|
"path": "src/repo-boundary.ts",
|
|
@@ -3473,11 +3493,11 @@
|
|
|
3473
3493
|
},
|
|
3474
3494
|
{
|
|
3475
3495
|
"path": "src/round-exec.ts",
|
|
3476
|
-
"sha256": "
|
|
3496
|
+
"sha256": "e530880f7e2e789e10adff66f536e6536cd0b74a62d117bf9ce1d547bea4fdb9"
|
|
3477
3497
|
},
|
|
3478
3498
|
{
|
|
3479
3499
|
"path": "src/round.ts",
|
|
3480
|
-
"sha256": "
|
|
3500
|
+
"sha256": "6d34a2eaced71e6bc6d7edf8edda137d534badea0adb888c1dfb3a2f44d91d97"
|
|
3481
3501
|
},
|
|
3482
3502
|
{
|
|
3483
3503
|
"path": "src/routing-outcomes.ts",
|
|
@@ -3665,5 +3685,5 @@
|
|
|
3665
3685
|
}
|
|
3666
3686
|
]
|
|
3667
3687
|
},
|
|
3668
|
-
"signature": "
|
|
3688
|
+
"signature": "OBBVihXA+g1xd+7uK7KIA+GqSErOYGCTyRmXUCuwlTvL2aR1FfSYxlOAMC9KKS+231qeejogHBvie/NxheSWBg=="
|
|
3669
3689
|
}
|
package/README.md
CHANGED
|
@@ -304,6 +304,54 @@ explicit knob always wins over the preset:
|
|
|
304
304
|
`BUDGET_PRESETS` in `feature-adr-routing.ts`; an unknown priority is a startup error naming the valid
|
|
305
305
|
list, never a silent `unset`. Setting `priority` alone (no other routing knob) turns routing on.
|
|
306
306
|
|
|
307
|
+
### `roundId` — the round's join key, as a field (backlog c60cc857)
|
|
308
|
+
|
|
309
|
+
Every row `closeRound` writes carries **`roundId`**, the round's own identity
|
|
310
|
+
(`round-<slug>-<n>-<closedAt>`). The same string is still the first token of `note`, because the
|
|
311
|
+
confirming re-read of the ledger greps for it there — but a key that lives inside prose can only be
|
|
312
|
+
joined by parsing prose, and with a `--note` present the field reads `<marker> | <note>`, so an
|
|
313
|
+
equality match on `note` misses it.
|
|
314
|
+
|
|
315
|
+
MEASURED on the COMMITTED ledger at `488f596c`: **the round's own identity was in a field 0 times
|
|
316
|
+
out of 99 `round` rows — while sitting inside `note` prose 99 times out of 99.**
|
|
317
|
+
|
|
318
|
+
One command prints every LEDGER COUNT above, in this order: rows; `round` rows; of those,
|
|
319
|
+
rows with `roundId`; rows whose `note` starts with the round marker; rows with `taskId`; rows with
|
|
320
|
+
`stateId`; rows carrying none of `runId`/`taskId`/`stateId`; rows with `runnerId`. It answers
|
|
321
|
+
`436 99 0 99 28 76 22 99`.
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
git show 488f596c:.dz/feature-adr/run-cost-ledger.jsonl | node -e \
|
|
325
|
+
'const L=require("fs").readFileSync(0,"utf8").split("\n").filter(Boolean).map(JSON.parse),R=L.filter(r=>r.stage==="round"),h=(r,f)=>r[f]!==undefined&&r[f]!==null&&r[f]!=="";console.log(L.length,R.length,R.filter(r=>h(r,"roundId")).length,R.filter(r=>/^round-.+-\d+-\d{8}T/.test(r.note||"")).length,R.filter(r=>h(r,"taskId")).length,R.filter(r=>h(r,"stateId")).length,R.filter(r=>!h(r,"runId")&&!h(r,"taskId")&&!h(r,"stateId")).length,R.filter(r=>h(r,"runnerId")).length)'
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
The command names the commit rather than `HEAD` on purpose: the ledger is tracked and keeps growing,
|
|
329
|
+
so a `HEAD` form would print different numbers every week and the claim would stop being checkable.
|
|
330
|
+
|
|
331
|
+
What the other id fields are, and why they do not answer this section's question: `taskId` names the
|
|
332
|
+
TASK a round serves, `stateId` its state file, `runnerId` the host that wrote the row. None of them
|
|
333
|
+
is the round's ledger identity.
|
|
334
|
+
|
|
335
|
+
**This paragraph needed five corrections, every one from cross-family review (Codex `gpt-5.6-sol`),
|
|
336
|
+
and they are kept because the corrections teach more than the result.** (1) The first draft counted
|
|
337
|
+
an uncommitted working copy — 457/119/117 — which cannot be audited from the repository. (2) The
|
|
338
|
+
second said 97 rows "carried no join key in any field" while measuring only a missing `runId`.
|
|
339
|
+
(3) The third quoted 28/76/22 that the shown reproducer did not print. (4) The fourth called those
|
|
340
|
+
22 rows "no id field at all" when `runnerId` is present on every one. (5) The fifth added that
|
|
341
|
+
`runnerId` claim without adding its count to the command. Each time the NUMBER was right and the
|
|
342
|
+
SENTENCE was wider than the predicate that produced it — the same defect this repo keeps finding in
|
|
343
|
+
code verdicts, wearing prose. Six rounds on one paragraph is itself the finding: a sentence added
|
|
344
|
+
to JUSTIFY a number is a new claim, and it needs its own predicate or it does not belong — the sixth
|
|
345
|
+
round caught the phrase "every number this section states", which the ledger command cannot cover
|
|
346
|
+
because this correction list is not a ledger count. Its evidence is `git log` on this file, not that
|
|
347
|
+
command, and reviewing this paragraph stopped here on purpose: the repo's own rule is that three
|
|
348
|
+
rounds on one mechanism mean you write the boundary instead of taking a fourth.
|
|
349
|
+
|
|
350
|
+
**`RoundLedgerRow` is the shape this version WRITES, not the shape the file holds.** The ledger is
|
|
351
|
+
append-only, so rows written before a field existed do not have it — `roundId` included. Read a
|
|
352
|
+
ledger line as `unknown` and put it through `validateClosedRoundLedgerRow` (or your own guard);
|
|
353
|
+
never type a parsed historical line with this interface and dereference a later field as guaranteed.
|
|
354
|
+
|
|
307
355
|
### QE self-report, arm fields, and their honest limits (instrument-round-b, ADR-001 D1/D2, fix-round-1)
|
|
308
356
|
|
|
309
357
|
The `.claude/workflows/feature-adr.js` pipeline script (not a `harness-core` module — a workflow the
|
package/dist/cmd-usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-usage.d.ts","sourceRoot":"","sources":["../src/cmd-usage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cmd-usage.d.ts","sourceRoot":"","sources":["../src/cmd-usage.ts"],"names":[],"mappings":"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"}
|
package/dist/cmd-usage.js
CHANGED
|
@@ -270,9 +270,13 @@ export function loadDeadwoodAllowlist(json) {
|
|
|
270
270
|
function parseGuardAuditUsage(text, weeks, now) {
|
|
271
271
|
const auditTimestamps = [];
|
|
272
272
|
const hits = [];
|
|
273
|
+
let evaluationRows = 0;
|
|
273
274
|
let skipped = 0;
|
|
274
275
|
let outOfRange = 0;
|
|
275
276
|
const newestAllowed = now.getTime() + DEADWOOD_FUTURE_TOLERANCE_MS;
|
|
277
|
+
// Same window arithmetic `foldCmdUsage` uses, so "counted as evidence" and "counted as a run"
|
|
278
|
+
// cannot disagree about which rows are inside.
|
|
279
|
+
const windowStart = now.getTime() - Math.max(0, weeks) * 7 * DAY_MS;
|
|
276
280
|
for (const line of text.split('\n')) {
|
|
277
281
|
if (line.trim() === '')
|
|
278
282
|
continue;
|
|
@@ -297,17 +301,42 @@ function parseGuardAuditUsage(text, weeks, now) {
|
|
|
297
301
|
continue;
|
|
298
302
|
}
|
|
299
303
|
auditTimestamps.push(row.ts);
|
|
304
|
+
// A rule's HEALTHY state is silence, so firing cannot measure whether it is alive. `evaluated`
|
|
305
|
+
// records the rules that actually got their turn; rows written before the field existed carry
|
|
306
|
+
// none, and they contribute evidence about firing only.
|
|
307
|
+
//
|
|
308
|
+
// Two conditions, both named by cross-family review (Codex gpt-5.6-sol, 2026-09-21), both of
|
|
309
|
+
// which turn this evidence into a false accusation if skipped:
|
|
310
|
+
// · the row must be INSIDE the window. An instrumented row older than `now - weeks` yields no
|
|
311
|
+
// in-window runs, so counting it as evidence would let one ancient row flip every absent
|
|
312
|
+
// rule from "cannot judge" to "dead".
|
|
313
|
+
// · the array must carry a USABLE id. `evaluated: []` is a row that recorded nothing; treating
|
|
314
|
+
// it as evidence is the same false accusation by a shorter path.
|
|
315
|
+
const evaluatedIds = new Set();
|
|
316
|
+
if (Array.isArray(row.evaluated)) {
|
|
317
|
+
for (const value of row.evaluated) {
|
|
318
|
+
if (typeof value === 'string' && value.trim() !== '')
|
|
319
|
+
evaluatedIds.add(value);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (evaluatedIds.size > 0 && tsMs >= windowStart)
|
|
323
|
+
evaluationRows += 1;
|
|
324
|
+
for (const id of evaluatedIds) {
|
|
325
|
+
hits.push({ kind: 'cmd', cmd: id, ts: row.ts, v: CMD_USAGE_SCHEMA });
|
|
326
|
+
}
|
|
300
327
|
const violations = Array.isArray(row.violations) ? row.violations : [];
|
|
301
328
|
for (const value of violations) {
|
|
302
329
|
const rule = typeof value === 'object' && value !== null
|
|
303
330
|
? value.rule
|
|
304
331
|
: undefined;
|
|
305
|
-
|
|
332
|
+
// One guard run is ONE run. A rule that both evaluated and fired in the same row would be
|
|
333
|
+
// counted twice — 100 warning evaluations reported as 200 runs (same review, second finding).
|
|
334
|
+
if (typeof rule === 'string' && rule.trim() !== '' && !evaluatedIds.has(rule)) {
|
|
306
335
|
hits.push({ kind: 'cmd', cmd: rule, ts: row.ts, v: CMD_USAGE_SCHEMA });
|
|
307
336
|
}
|
|
308
337
|
}
|
|
309
338
|
}
|
|
310
|
-
return { auditTimestamps, stats: foldCmdUsage(hits, weeks, now), skipped, outOfRange };
|
|
339
|
+
return { auditTimestamps, stats: foldCmdUsage(hits, weeks, now), skipped, outOfRange, evaluationRows };
|
|
311
340
|
}
|
|
312
341
|
function timestampDepthDays(timestamps, now) {
|
|
313
342
|
let first = Number.POSITIVE_INFINITY;
|
|
@@ -454,6 +483,23 @@ export function buildDeadwoodReport(input) {
|
|
|
454
483
|
});
|
|
455
484
|
continue;
|
|
456
485
|
}
|
|
486
|
+
// A rule the window has no EVALUATION evidence for is unjudged, not unused. Firing is the wrong
|
|
487
|
+
// signal for a guard (silence is its healthy state), so without `evaluated` rows the only honest
|
|
488
|
+
// answer is "this report cannot judge the rule" — exactly what the skill surface already says.
|
|
489
|
+
if (item.kind === 'rule' && rules.evaluationRows === 0
|
|
490
|
+
&& (rules.stats.get(item.surface)?.runsInWindow ?? 0) === 0
|
|
491
|
+
// An explicit allowlist entry is an operator's standing statement about this surface; it keeps
|
|
492
|
+
// its own wording. Only the ACCUSING path — "zero usage, consider deprecating" — is withdrawn.
|
|
493
|
+
&& !allowlist.has(allowlistKey(item.kind, item.surface))) {
|
|
494
|
+
noInstrumentation.push({
|
|
495
|
+
state: 'no-instrumentation',
|
|
496
|
+
surface: item.surface,
|
|
497
|
+
kind: item.kind,
|
|
498
|
+
reason: 'no guard-audit row in this window recorded which rules it evaluated; a rule that '
|
|
499
|
+
+ 'never fires may be a healthy safety net, so firing alone cannot judge it',
|
|
500
|
+
});
|
|
501
|
+
continue;
|
|
502
|
+
}
|
|
457
503
|
classifyInstrumented({ surface: item.surface, kind: item.kind }, item.kind === 'command'
|
|
458
504
|
? commandStatForInventoryItem(item, commandStats)
|
|
459
505
|
: rules.stats.get(item.surface), allowlist, { candidates, exempt, used });
|