@ebrindley/build 0.0.0-stage → 1.42.1-rc28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/.build-project/providers/catalog.json +13951 -0
  2. package/.build-project/providers/pricing.json +1978 -0
  3. package/.build-project/providers/registry.json +4103 -0
  4. package/.github/SECURITY.md +75 -0
  5. package/.nvmrc +1 -0
  6. package/CHANGELOG.md +661 -0
  7. package/CODE_OF_CONDUCT.md +44 -0
  8. package/CONTRIBUTING.md +24 -0
  9. package/INSTALL.md +623 -0
  10. package/LICENSE +21 -0
  11. package/README.md +118 -2
  12. package/THIRD_PARTY_NOTICES.txt +26 -0
  13. package/dist/ai-judge-UE5UOYOO.js +191 -0
  14. package/dist/allowlist-grounding-KPLN6NC5.js +16 -0
  15. package/dist/allowlist-utils-MZZKKXRD.js +31 -0
  16. package/dist/apply-completion-mode-EM37UZHB.js +110 -0
  17. package/dist/artifact-migrator-WPACNSEP.js +276 -0
  18. package/dist/ask-2OZ4JFQR.js +176 -0
  19. package/dist/auth-6UKBTJUQ.js +185 -0
  20. package/dist/auth-H5KJL6HL.js +165 -0
  21. package/dist/auth-LVJRJDMU.js +12 -0
  22. package/dist/auth-NHZOCNRR.js +94 -0
  23. package/dist/auth-PBXHWXGW.js +95 -0
  24. package/dist/auth-T7Y5DCAH.js +91 -0
  25. package/dist/auth-TVVKCHQW.js +13 -0
  26. package/dist/auth-UHB2UCSS.js +97 -0
  27. package/dist/auth-VACA3VUL.js +98 -0
  28. package/dist/auth-VVLC77S3.js +44 -0
  29. package/dist/auth-liveness-XO4AGDDD.js +53 -0
  30. package/dist/autoloop-cleanup-SI3VGAAR.js +106 -0
  31. package/dist/autoloop-evidence-gates-J5GG5YQB.js +39 -0
  32. package/dist/autoloop-gate-policy-SUNAEP6Q.js +169 -0
  33. package/dist/autoloop-helpers-VQGQNTT6.js +52 -0
  34. package/dist/autoloop-ledger-P6TIDP7C.js +96 -0
  35. package/dist/autoloop-ledger-subscriber-HFAGOZXH.js +161 -0
  36. package/dist/autoloop-run-defaults-GWGZBNT7.js +27 -0
  37. package/dist/autoloop-run-lock-GBWRM5A2.js +197 -0
  38. package/dist/autoloop-success-C32QVWOP.js +93 -0
  39. package/dist/autoloop-termination-summary-GI6IBQWD.js +58 -0
  40. package/dist/autoloop-trajectory-AMKSQISD.js +70 -0
  41. package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
  42. package/dist/automatic-branch-cleanup-R62X2C5O.js +49 -0
  43. package/dist/autonomous-loop-controller-2WL363LW.js +4386 -0
  44. package/dist/backend-YUTFDZXZ.js +30 -0
  45. package/dist/background-executor-Z3ODTMD7.js +260 -0
  46. package/dist/backlog-75QPEAMW.js +403 -0
  47. package/dist/backlog-execution-intent-GWUV5TUK.js +19 -0
  48. package/dist/backup-active-store-XHWLN34M.js +16 -0
  49. package/dist/backup-machine-stores-UI4LTJOY.js +251 -0
  50. package/dist/backup-telemetry-db-Z4ICYCNW.js +26 -0
  51. package/dist/branch-archive-manager-FMSQ7YJF.js +18 -0
  52. package/dist/branch-cleanup-manager-ST6FJGND.js +35 -0
  53. package/dist/build-gate-7NKWPY62.js +68 -0
  54. package/dist/build-root-S7DINODY.js +18 -0
  55. package/dist/change-summary-R6CB6VXJ.js +50 -0
  56. package/dist/chunk-24MNKKOM.js +173 -0
  57. package/dist/chunk-2H6VZFIO.js +235 -0
  58. package/dist/chunk-2JIX3EKV.js +39 -0
  59. package/dist/chunk-2KO7HVZM.js +106 -0
  60. package/dist/chunk-2L36U25O.js +100 -0
  61. package/dist/chunk-2NMNFUQA.js +475 -0
  62. package/dist/chunk-2OUAEH67.js +83 -0
  63. package/dist/chunk-2VLJUXJU.js +115 -0
  64. package/dist/chunk-2VUEDIUM.js +77 -0
  65. package/dist/chunk-2Y2IIHPI.js +430 -0
  66. package/dist/chunk-2YRG3LHZ.js +220 -0
  67. package/dist/chunk-2Z5Q3SUY.js +65 -0
  68. package/dist/chunk-32IYXIE5.js +873 -0
  69. package/dist/chunk-33IGPPUI.js +292 -0
  70. package/dist/chunk-352PCJLK.js +283 -0
  71. package/dist/chunk-35J4NE6S.js +226 -0
  72. package/dist/chunk-3C7WBIVK.js +1016 -0
  73. package/dist/chunk-3H3EY6U7.js +1225 -0
  74. package/dist/chunk-3H4MWYIC.js +198 -0
  75. package/dist/chunk-3HHWQR3N.js +2479 -0
  76. package/dist/chunk-3JKNRYEE.js +14 -0
  77. package/dist/chunk-3LECCYZY.js +128 -0
  78. package/dist/chunk-3LOY6YZI.js +852 -0
  79. package/dist/chunk-3M57DADF.js +44 -0
  80. package/dist/chunk-3NOTLVLG.js +3803 -0
  81. package/dist/chunk-3OPP2OZB.js +1480 -0
  82. package/dist/chunk-3P5IN5E7.js +9 -0
  83. package/dist/chunk-3PL22IYZ.js +20 -0
  84. package/dist/chunk-3REDAJUJ.js +14 -0
  85. package/dist/chunk-3S2R4XJI.js +203 -0
  86. package/dist/chunk-3UBZI5DW.js +61 -0
  87. package/dist/chunk-3VV5OBGG.js +308 -0
  88. package/dist/chunk-3WY5TU2O.js +823 -0
  89. package/dist/chunk-43OKHTW4.js +82 -0
  90. package/dist/chunk-45KUJBDI.js +112 -0
  91. package/dist/chunk-47X5LM7B.js +224 -0
  92. package/dist/chunk-4B6FQJ77.js +268 -0
  93. package/dist/chunk-4BTDUT2S.js +42 -0
  94. package/dist/chunk-4DJL2VXA.js +24 -0
  95. package/dist/chunk-4EBSXZ73.js +48 -0
  96. package/dist/chunk-4QKP6I4C.js +294 -0
  97. package/dist/chunk-4U6XK2DG.js +300 -0
  98. package/dist/chunk-4UMRUFBD.js +132 -0
  99. package/dist/chunk-4US4SYJ4.js +569 -0
  100. package/dist/chunk-4ZPLWEZO.js +154 -0
  101. package/dist/chunk-56WPYDJH.js +624 -0
  102. package/dist/chunk-57WRCJJW.js +50 -0
  103. package/dist/chunk-5AW4RMNG.js +24 -0
  104. package/dist/chunk-5EQN56OZ.js +155 -0
  105. package/dist/chunk-5F43TUIN.js +38 -0
  106. package/dist/chunk-5FKHIKTS.js +115 -0
  107. package/dist/chunk-5HDP7XZG.js +91 -0
  108. package/dist/chunk-5KQETTNS.js +152 -0
  109. package/dist/chunk-5PDVN2KO.js +498 -0
  110. package/dist/chunk-5UBIFVRD.js +509 -0
  111. package/dist/chunk-5YDE3Q62.js +46 -0
  112. package/dist/chunk-626AJVMU.js +302 -0
  113. package/dist/chunk-633XZ7UF.js +3583 -0
  114. package/dist/chunk-63DHNHGA.js +236 -0
  115. package/dist/chunk-666656AR.js +568 -0
  116. package/dist/chunk-67YRJPJO.js +19 -0
  117. package/dist/chunk-6CAU7VBA.js +20 -0
  118. package/dist/chunk-6CB3KJRY.js +21 -0
  119. package/dist/chunk-6DBMALXL.js +29 -0
  120. package/dist/chunk-6E25C4IA.js +269 -0
  121. package/dist/chunk-6FIBNIQU.js +73 -0
  122. package/dist/chunk-6G57FYBV.js +189 -0
  123. package/dist/chunk-6KZKRTG3.js +4885 -0
  124. package/dist/chunk-6LAH2UV2.js +525 -0
  125. package/dist/chunk-6PZY2TTU.js +921 -0
  126. package/dist/chunk-6T6NHXK4.js +230 -0
  127. package/dist/chunk-6TBEX4R4.js +432 -0
  128. package/dist/chunk-6TRD7TEE.js +911 -0
  129. package/dist/chunk-6XCP2RAI.js +47 -0
  130. package/dist/chunk-726G6WDL.js +351 -0
  131. package/dist/chunk-75EMT7BF.js +616 -0
  132. package/dist/chunk-762ACDZJ.js +4696 -0
  133. package/dist/chunk-77I6G4CO.js +1 -0
  134. package/dist/chunk-7DJ6SQH3.js +510 -0
  135. package/dist/chunk-7HPCIOMA.js +1383 -0
  136. package/dist/chunk-7HYBSRPZ.js +17503 -0
  137. package/dist/chunk-7KBEOPVB.js +73 -0
  138. package/dist/chunk-7LHJDJB3.js +2222 -0
  139. package/dist/chunk-7NVJMH52.js +306 -0
  140. package/dist/chunk-7RMARDVH.js +33 -0
  141. package/dist/chunk-7SEWU4QG.js +36 -0
  142. package/dist/chunk-7TUTZTI2.js +911 -0
  143. package/dist/chunk-7VBDFPUM.js +340 -0
  144. package/dist/chunk-7VRJHTGZ.js +6406 -0
  145. package/dist/chunk-7YAOUUKK.js +493 -0
  146. package/dist/chunk-AAAODV76.js +860 -0
  147. package/dist/chunk-AB4HUJVQ.js +339 -0
  148. package/dist/chunk-AEQWV746.js +611 -0
  149. package/dist/chunk-AHU3FKPA.js +11639 -0
  150. package/dist/chunk-AISTV5XU.js +226 -0
  151. package/dist/chunk-AJBTKGJZ.js +48 -0
  152. package/dist/chunk-AJJNW7XT.js +248 -0
  153. package/dist/chunk-AJN5Y5YZ.js +160 -0
  154. package/dist/chunk-ALDTFNZ3.js +150 -0
  155. package/dist/chunk-ARARVIZK.js +281 -0
  156. package/dist/chunk-ATBM6AW5.js +53 -0
  157. package/dist/chunk-ATKEKM3E.js +206 -0
  158. package/dist/chunk-AUJLW6JZ.js +92 -0
  159. package/dist/chunk-AY3MHEFM.js +24 -0
  160. package/dist/chunk-B7PYTV72.js +236 -0
  161. package/dist/chunk-B7YRSULE.js +1423 -0
  162. package/dist/chunk-BAWJNMWF.js +339 -0
  163. package/dist/chunk-BBPIILO2.js +88 -0
  164. package/dist/chunk-BD3PGW6A.js +957 -0
  165. package/dist/chunk-BDPYFAB4.js +44 -0
  166. package/dist/chunk-BIUV23HH.js +729 -0
  167. package/dist/chunk-BQ3VAGXH.js +243 -0
  168. package/dist/chunk-BQJOGAWT.js +31 -0
  169. package/dist/chunk-BT7EG7CO.js +68 -0
  170. package/dist/chunk-BV3XQQLU.js +27 -0
  171. package/dist/chunk-BY6ODHNZ.js +78 -0
  172. package/dist/chunk-BZRLSZNV.js +79 -0
  173. package/dist/chunk-C3DH3NCY.js +2773 -0
  174. package/dist/chunk-C3KCMAJP.js +756 -0
  175. package/dist/chunk-C7AGUJ5K.js +267 -0
  176. package/dist/chunk-CBSWKQCX.js +342 -0
  177. package/dist/chunk-CE5OZBYY.js +21 -0
  178. package/dist/chunk-CFCVYHSW.js +373 -0
  179. package/dist/chunk-CHA2HDE5.js +126 -0
  180. package/dist/chunk-CIHWPGS5.js +146 -0
  181. package/dist/chunk-CJBSZX3F.js +127 -0
  182. package/dist/chunk-CLA6QIJM.js +43 -0
  183. package/dist/chunk-CPSVQR2I.js +365 -0
  184. package/dist/chunk-CRPRVNQ4.js +254 -0
  185. package/dist/chunk-CSIE4Y7C.js +1093 -0
  186. package/dist/chunk-CSOPSYDY.js +142 -0
  187. package/dist/chunk-CSXLLEGB.js +205 -0
  188. package/dist/chunk-CTDLERWU.js +293 -0
  189. package/dist/chunk-CULBXMSK.js +110 -0
  190. package/dist/chunk-D2M2Y5ID.js +21 -0
  191. package/dist/chunk-D37WY7SH.js +1060 -0
  192. package/dist/chunk-D4VJFCGZ.js +89 -0
  193. package/dist/chunk-D6WTZMZB.js +48 -0
  194. package/dist/chunk-DBHOWDUH.js +976 -0
  195. package/dist/chunk-DCACX7BV.js +19364 -0
  196. package/dist/chunk-DFHX4XYA.js +128 -0
  197. package/dist/chunk-DIKBRRKE.js +176 -0
  198. package/dist/chunk-DJG5RIOR.js +9 -0
  199. package/dist/chunk-DNIOIISW.js +616 -0
  200. package/dist/chunk-DOA5G7IA.js +315 -0
  201. package/dist/chunk-DP7FKP6W.js +855 -0
  202. package/dist/chunk-DS2JZ677.js +79 -0
  203. package/dist/chunk-DSRLVYBS.js +82 -0
  204. package/dist/chunk-EAEVKNJA.js +209 -0
  205. package/dist/chunk-EEUESN3T.js +575 -0
  206. package/dist/chunk-EJ4LUU5Y.js +73 -0
  207. package/dist/chunk-EJIWTPSZ.js +1063 -0
  208. package/dist/chunk-EJVCDTAN.js +116 -0
  209. package/dist/chunk-EKLUBDBQ.js +627 -0
  210. package/dist/chunk-EN62WLFD.js +849 -0
  211. package/dist/chunk-ENYRCL43.js +26 -0
  212. package/dist/chunk-EP22ZMFO.js +273 -0
  213. package/dist/chunk-EP4SVAVI.js +87 -0
  214. package/dist/chunk-EPAMVGI3.js +1562 -0
  215. package/dist/chunk-EPRMH6HO.js +24 -0
  216. package/dist/chunk-ES6NWJ36.js +4057 -0
  217. package/dist/chunk-ETA2K4KI.js +30 -0
  218. package/dist/chunk-ETAD4NKD.js +31 -0
  219. package/dist/chunk-EUWIIDQ7.js +93 -0
  220. package/dist/chunk-EVE3OD2W.js +141 -0
  221. package/dist/chunk-EXA26FFC.js +459 -0
  222. package/dist/chunk-EXSPAA35.js +244 -0
  223. package/dist/chunk-F55YABKV.js +258 -0
  224. package/dist/chunk-F5DNGU5W.js +27 -0
  225. package/dist/chunk-F622MJYV.js +103 -0
  226. package/dist/chunk-F6NIQD74.js +5111 -0
  227. package/dist/chunk-FAWJTC34.js +43 -0
  228. package/dist/chunk-FAZBRHGG.js +47 -0
  229. package/dist/chunk-FIEUSGNJ.js +39 -0
  230. package/dist/chunk-FKCG7K6H.js +1146 -0
  231. package/dist/chunk-FOVVXV45.js +229 -0
  232. package/dist/chunk-FRBPKBFE.js +30 -0
  233. package/dist/chunk-FSA5BPFI.js +268 -0
  234. package/dist/chunk-FSJ5TTZ3.js +29 -0
  235. package/dist/chunk-FT7SGLXT.js +193 -0
  236. package/dist/chunk-FUUVZZUB.js +62 -0
  237. package/dist/chunk-FYMRVUNZ.js +1697 -0
  238. package/dist/chunk-FYTAA5FG.js +162 -0
  239. package/dist/chunk-G3VB2UCZ.js +3892 -0
  240. package/dist/chunk-G6OIMVXH.js +405 -0
  241. package/dist/chunk-G7PQCXVH.js +228 -0
  242. package/dist/chunk-GAB6UW52.js +1087 -0
  243. package/dist/chunk-GAFJEYLK.js +29 -0
  244. package/dist/chunk-GC4CRMTS.js +642 -0
  245. package/dist/chunk-GFHSIWHL.js +5297 -0
  246. package/dist/chunk-GI5M67YA.js +735 -0
  247. package/dist/chunk-GIJWHUWF.js +191 -0
  248. package/dist/chunk-GO6DRECI.js +1 -0
  249. package/dist/chunk-GOFVBTMN.js +314 -0
  250. package/dist/chunk-GQIP72ZJ.js +13 -0
  251. package/dist/chunk-GQXLXRFA.js +28 -0
  252. package/dist/chunk-GT6HFKJB.js +48 -0
  253. package/dist/chunk-GVJGSSKM.js +174 -0
  254. package/dist/chunk-GWHGTG37.js +36 -0
  255. package/dist/chunk-GZAJHLKO.js +18 -0
  256. package/dist/chunk-GZK62I3N.js +314 -0
  257. package/dist/chunk-H3HGMISG.js +483 -0
  258. package/dist/chunk-H3ISZJMJ.js +403 -0
  259. package/dist/chunk-H4HXVWEC.js +9 -0
  260. package/dist/chunk-H6MJGKAW.js +120 -0
  261. package/dist/chunk-HBTTGVR5.js +353 -0
  262. package/dist/chunk-HBZ322WZ.js +35 -0
  263. package/dist/chunk-HEP3ILP4.js +34 -0
  264. package/dist/chunk-HGFXODKO.js +106 -0
  265. package/dist/chunk-HHWDTB6S.js +59 -0
  266. package/dist/chunk-HKO45NLZ.js +286 -0
  267. package/dist/chunk-HLVTEA6A.js +89 -0
  268. package/dist/chunk-HS3SY6HN.js +160 -0
  269. package/dist/chunk-HT5OCGKN.js +899 -0
  270. package/dist/chunk-HXIIEMGF.js +78 -0
  271. package/dist/chunk-I56TH7VM.js +46 -0
  272. package/dist/chunk-I6FN3R5D.js +352 -0
  273. package/dist/chunk-I7SCBHJN.js +655 -0
  274. package/dist/chunk-IJM4GKAT.js +529 -0
  275. package/dist/chunk-IMEYU36R.js +344 -0
  276. package/dist/chunk-INJ3SS6A.js +936 -0
  277. package/dist/chunk-IUKOPCCE.js +441 -0
  278. package/dist/chunk-IVEPZQJO.js +33 -0
  279. package/dist/chunk-IVZEONFC.js +43 -0
  280. package/dist/chunk-IWBHRSG7.js +936 -0
  281. package/dist/chunk-IYY3HQAD.js +484 -0
  282. package/dist/chunk-J2ICMYDA.js +48 -0
  283. package/dist/chunk-J2QCFLUN.js +505 -0
  284. package/dist/chunk-J5HM6V5P.js +1039 -0
  285. package/dist/chunk-J6NZX6QH.js +398 -0
  286. package/dist/chunk-JBBB2Y47.js +432 -0
  287. package/dist/chunk-JDCZQZU7.js +42 -0
  288. package/dist/chunk-JEDNXGSS.js +169 -0
  289. package/dist/chunk-JHP7OT6K.js +89 -0
  290. package/dist/chunk-JLS65NUQ.js +14 -0
  291. package/dist/chunk-JNMWYMC6.js +38 -0
  292. package/dist/chunk-JNSTWNNW.js +25 -0
  293. package/dist/chunk-JOSK6GEU.js +9564 -0
  294. package/dist/chunk-JQUMSIGC.js +100 -0
  295. package/dist/chunk-JVHGMURQ.js +1106 -0
  296. package/dist/chunk-JYXS47FQ.js +951 -0
  297. package/dist/chunk-K2ZMW2Z5.js +2147 -0
  298. package/dist/chunk-K7FAFORM.js +14 -0
  299. package/dist/chunk-KBJXX3ON.js +333 -0
  300. package/dist/chunk-KHFKVQWY.js +486 -0
  301. package/dist/chunk-KHMEI3DQ.js +173 -0
  302. package/dist/chunk-KHW3UD7B.js +69 -0
  303. package/dist/chunk-KKQKWAMF.js +365 -0
  304. package/dist/chunk-KOKXJV2U.js +455 -0
  305. package/dist/chunk-KQ4NGOJI.js +14 -0
  306. package/dist/chunk-KQYQOXMS.js +342 -0
  307. package/dist/chunk-KTMW65UX.js +14 -0
  308. package/dist/chunk-KUEWV2JH.js +593 -0
  309. package/dist/chunk-KXYDV3HP.js +1523 -0
  310. package/dist/chunk-KZ4JMGZ5.js +96 -0
  311. package/dist/chunk-KZWGBUIO.js +2659 -0
  312. package/dist/chunk-L2CBG5IX.js +1892 -0
  313. package/dist/chunk-L2S235CU.js +314 -0
  314. package/dist/chunk-L32WD57F.js +98 -0
  315. package/dist/chunk-LDJCKAJP.js +123 -0
  316. package/dist/chunk-LDWNBEN7.js +541 -0
  317. package/dist/chunk-LJVH57G2.js +241 -0
  318. package/dist/chunk-LPQ7NZEN.js +209 -0
  319. package/dist/chunk-LRGH3CCV.js +148 -0
  320. package/dist/chunk-LULOGMMM.js +1133 -0
  321. package/dist/chunk-LWGKN2GY.js +8284 -0
  322. package/dist/chunk-LX4F24ZH.js +157 -0
  323. package/dist/chunk-M4BUEXXF.js +839 -0
  324. package/dist/chunk-M6UHOC4I.js +553 -0
  325. package/dist/chunk-MCBNWZNO.js +657 -0
  326. package/dist/chunk-MEMSY6VY.js +223 -0
  327. package/dist/chunk-MHLEZQQI.js +145 -0
  328. package/dist/chunk-MJ6WNSIX.js +192 -0
  329. package/dist/chunk-MKASIKWZ.js +442 -0
  330. package/dist/chunk-MNOVBYFU.js +60 -0
  331. package/dist/chunk-MO2BYAAF.js +2896 -0
  332. package/dist/chunk-MP6P7Y2A.js +180 -0
  333. package/dist/chunk-MQ4TFJAG.js +3365 -0
  334. package/dist/chunk-MT2WAIR3.js +131 -0
  335. package/dist/chunk-MTU7VTNN.js +1122 -0
  336. package/dist/chunk-MULMXX4V.js +150 -0
  337. package/dist/chunk-MW2DWWVA.js +147 -0
  338. package/dist/chunk-MY3ZPUN4.js +151 -0
  339. package/dist/chunk-MYLH2S4G.js +64 -0
  340. package/dist/chunk-MZ5WYKNA.js +28 -0
  341. package/dist/chunk-N3Q2JNPV.js +249 -0
  342. package/dist/chunk-N5DX4JAK.js +12 -0
  343. package/dist/chunk-NAINGKHF.js +35 -0
  344. package/dist/chunk-NEQUQHOX.js +223 -0
  345. package/dist/chunk-NHNPEZS4.js +1408 -0
  346. package/dist/chunk-NHTIXJCR.js +17 -0
  347. package/dist/chunk-NKLPMBNV.js +1154 -0
  348. package/dist/chunk-NMVZ5YES.js +199 -0
  349. package/dist/chunk-NRFRY3GE.js +256 -0
  350. package/dist/chunk-NTD6CSI6.js +1266 -0
  351. package/dist/chunk-NUO7B3SH.js +318 -0
  352. package/dist/chunk-NVOHIJKG.js +1319 -0
  353. package/dist/chunk-NXH3RX7O.js +523 -0
  354. package/dist/chunk-NXZ3DURF.js +257 -0
  355. package/dist/chunk-O26L6F7F.js +209 -0
  356. package/dist/chunk-O5RRIUEP.js +124 -0
  357. package/dist/chunk-O5X6BKAO.js +10 -0
  358. package/dist/chunk-O6ZQUVTR.js +31 -0
  359. package/dist/chunk-O7FE75QZ.js +306 -0
  360. package/dist/chunk-OC7Z6AJQ.js +81 -0
  361. package/dist/chunk-OH7IEZ63.js +307 -0
  362. package/dist/chunk-OI734GRS.js +115 -0
  363. package/dist/chunk-OJBH62DK.js +684 -0
  364. package/dist/chunk-OKJLVSTJ.js +247 -0
  365. package/dist/chunk-OMX5VL43.js +79 -0
  366. package/dist/chunk-ONHAMBN6.js +12 -0
  367. package/dist/chunk-ONYPLIVE.js +753 -0
  368. package/dist/chunk-OSK7QWPD.js +637 -0
  369. package/dist/chunk-OTXLMJKP.js +438 -0
  370. package/dist/chunk-OV5PKQMA.js +213 -0
  371. package/dist/chunk-OXK5HA4B.js +31 -0
  372. package/dist/chunk-OYDWFQA4.js +272 -0
  373. package/dist/chunk-OZAUKWHB.js +22 -0
  374. package/dist/chunk-P5P2EKGH.js +94 -0
  375. package/dist/chunk-P6SSWAKY.js +29 -0
  376. package/dist/chunk-P7CQGPLS.js +30 -0
  377. package/dist/chunk-P7RVCHQV.js +197 -0
  378. package/dist/chunk-PEBWDYIW.js +726 -0
  379. package/dist/chunk-PFCXFO7A.js +9193 -0
  380. package/dist/chunk-PFLDWMX6.js +168 -0
  381. package/dist/chunk-PHZGLQSK.js +15883 -0
  382. package/dist/chunk-PNFTPNSR.js +20 -0
  383. package/dist/chunk-PPHXX4W7.js +175 -0
  384. package/dist/chunk-PPZESPJT.js +262 -0
  385. package/dist/chunk-PRDHI2L5.js +296 -0
  386. package/dist/chunk-PSTKWHHN.js +32 -0
  387. package/dist/chunk-PV53ODOT.js +555 -0
  388. package/dist/chunk-PVJBTI7P.js +24 -0
  389. package/dist/chunk-PXKERBKX.js +100 -0
  390. package/dist/chunk-PZ5AY32C.js +10 -0
  391. package/dist/chunk-Q3DHEZA5.js +85 -0
  392. package/dist/chunk-Q5RZDVQK.js +204 -0
  393. package/dist/chunk-Q64IR2Z2.js +4933 -0
  394. package/dist/chunk-Q6Z5UGPL.js +398 -0
  395. package/dist/chunk-QAMAV4DT.js +627 -0
  396. package/dist/chunk-QBWF4444.js +112 -0
  397. package/dist/chunk-QDKYT4CI.js +22805 -0
  398. package/dist/chunk-QFLBRWCJ.js +126 -0
  399. package/dist/chunk-QILAQACE.js +107 -0
  400. package/dist/chunk-QJ6OEH4K.js +3683 -0
  401. package/dist/chunk-QK3NLYTV.js +320 -0
  402. package/dist/chunk-QOFLUS24.js +535 -0
  403. package/dist/chunk-QOIASNEJ.js +98 -0
  404. package/dist/chunk-QP4UTSOV.js +3587 -0
  405. package/dist/chunk-QP5ST7RI.js +904 -0
  406. package/dist/chunk-QS5AGRZN.js +167 -0
  407. package/dist/chunk-QTAOU53N.js +107 -0
  408. package/dist/chunk-QTCLJHLZ.js +351 -0
  409. package/dist/chunk-QTOLTG4L.js +119 -0
  410. package/dist/chunk-QWDV4OSL.js +142 -0
  411. package/dist/chunk-QWMQ74KD.js +508 -0
  412. package/dist/chunk-QX6LOMMH.js +158 -0
  413. package/dist/chunk-QXBKIHY7.js +238 -0
  414. package/dist/chunk-QXBKTJT6.js +270 -0
  415. package/dist/chunk-QYQOVOLR.js +196 -0
  416. package/dist/chunk-R2CKS6WT.js +73 -0
  417. package/dist/chunk-R2TIYG7U.js +68 -0
  418. package/dist/chunk-R2W3LESH.js +465 -0
  419. package/dist/chunk-R5EXHMUN.js +100 -0
  420. package/dist/chunk-RBBTBCHX.js +289 -0
  421. package/dist/chunk-RBKLOUXA.js +121 -0
  422. package/dist/chunk-RCP2Y6DQ.js +86 -0
  423. package/dist/chunk-RCYEJSD5.js +260 -0
  424. package/dist/chunk-RFDVSI4N.js +134 -0
  425. package/dist/chunk-RGJU63FV.js +1717 -0
  426. package/dist/chunk-RI4EX2QE.js +18 -0
  427. package/dist/chunk-RIMARPCF.js +152 -0
  428. package/dist/chunk-RJ6RSNT6.js +42 -0
  429. package/dist/chunk-RNI2GUIF.js +131 -0
  430. package/dist/chunk-RPHUWJ3K.js +264 -0
  431. package/dist/chunk-RPIMAMV7.js +361 -0
  432. package/dist/chunk-RQFX6YRN.js +49 -0
  433. package/dist/chunk-RRC5BL7B.js +285 -0
  434. package/dist/chunk-RSYTSBOO.js +79 -0
  435. package/dist/chunk-RWQQIKIC.js +35 -0
  436. package/dist/chunk-RZUBOZH2.js +373 -0
  437. package/dist/chunk-S2E632FQ.js +380 -0
  438. package/dist/chunk-S2VQCZO4.js +22 -0
  439. package/dist/chunk-S2XIMQJQ.js +681 -0
  440. package/dist/chunk-S47ISY27.js +183 -0
  441. package/dist/chunk-S6I4KISU.js +142 -0
  442. package/dist/chunk-S6TAFQI5.js +2403 -0
  443. package/dist/chunk-SBBNT5ZJ.js +27 -0
  444. package/dist/chunk-SDJV2DTQ.js +491 -0
  445. package/dist/chunk-SDPIFNLD.js +33 -0
  446. package/dist/chunk-SF6YK3JI.js +835 -0
  447. package/dist/chunk-SK3ZFONO.js +976 -0
  448. package/dist/chunk-SKTFRFQ7.js +1775 -0
  449. package/dist/chunk-SNGM452K.js +2002 -0
  450. package/dist/chunk-STW7OFOA.js +581 -0
  451. package/dist/chunk-SU6UFUQY.js +1351 -0
  452. package/dist/chunk-SVJM3LJA.js +27 -0
  453. package/dist/chunk-SVUNZOPG.js +129 -0
  454. package/dist/chunk-T5XLUYV3.js +34 -0
  455. package/dist/chunk-T7E5JS6N.js +57 -0
  456. package/dist/chunk-TA3N5MMO.js +450 -0
  457. package/dist/chunk-TAJPCXSB.js +13 -0
  458. package/dist/chunk-TDEMDRN2.js +1639 -0
  459. package/dist/chunk-TDSEX5CF.js +24 -0
  460. package/dist/chunk-TGCVL74Y.js +28 -0
  461. package/dist/chunk-TGXXYDL4.js +1012 -0
  462. package/dist/chunk-TIKTYUJO.js +296 -0
  463. package/dist/chunk-TIZAJD4M.js +6029 -0
  464. package/dist/chunk-TLSEZZCG.js +5549 -0
  465. package/dist/chunk-TMBDRHAX.js +19 -0
  466. package/dist/chunk-TRURQUBP.js +1217 -0
  467. package/dist/chunk-TSQ256N5.js +152 -0
  468. package/dist/chunk-TUQMMFEQ.js +2244 -0
  469. package/dist/chunk-U424MJLC.js +81 -0
  470. package/dist/chunk-U4DRS6ZW.js +11 -0
  471. package/dist/chunk-U5KS22IN.js +204 -0
  472. package/dist/chunk-UAPHFJPN.js +673 -0
  473. package/dist/chunk-UB7LQITD.js +1040 -0
  474. package/dist/chunk-UBVRHGAZ.js +237 -0
  475. package/dist/chunk-UDNNAQN5.js +98 -0
  476. package/dist/chunk-UJP3XM54.js +342 -0
  477. package/dist/chunk-UJYDH2MW.js +305 -0
  478. package/dist/chunk-UKMPASIC.js +399 -0
  479. package/dist/chunk-UKUL3EHK.js +763 -0
  480. package/dist/chunk-UPHU64NB.js +1327 -0
  481. package/dist/chunk-URMSZXAD.js +43 -0
  482. package/dist/chunk-US3RT6CY.js +525 -0
  483. package/dist/chunk-UTDEOPKV.js +30 -0
  484. package/dist/chunk-UUUDKV7N.js +13 -0
  485. package/dist/chunk-UVKWU3SM.js +39 -0
  486. package/dist/chunk-V2TVPO3X.js +521 -0
  487. package/dist/chunk-V3KLVK7B.js +398 -0
  488. package/dist/chunk-V3YFFHDR.js +17 -0
  489. package/dist/chunk-VAG6GUBR.js +1162 -0
  490. package/dist/chunk-VBENAHDA.js +1814 -0
  491. package/dist/chunk-VBNCKCCI.js +16 -0
  492. package/dist/chunk-VCGSWN5M.js +1300 -0
  493. package/dist/chunk-VE2O2I7M.js +115 -0
  494. package/dist/chunk-VIFHYTI5.js +31 -0
  495. package/dist/chunk-VJER3FUS.js +5080 -0
  496. package/dist/chunk-VLMDM56Q.js +268 -0
  497. package/dist/chunk-VMFZEVVX.js +99 -0
  498. package/dist/chunk-VNDPQVUZ.js +1853 -0
  499. package/dist/chunk-VSPJRLGA.js +4783 -0
  500. package/dist/chunk-VSWC5ZXI.js +103 -0
  501. package/dist/chunk-VYI4DSZP.js +2017 -0
  502. package/dist/chunk-W4BAIQ6L.js +1212 -0
  503. package/dist/chunk-W7VQAL2K.js +2203 -0
  504. package/dist/chunk-WEI3ZDZH.js +33 -0
  505. package/dist/chunk-WEIUS5NT.js +26 -0
  506. package/dist/chunk-WEW7UFWE.js +546 -0
  507. package/dist/chunk-WGQAXLNA.js +384 -0
  508. package/dist/chunk-WJAL4JL3.js +206 -0
  509. package/dist/chunk-WKFOJ5ZG.js +141 -0
  510. package/dist/chunk-WMWQEFLN.js +2177 -0
  511. package/dist/chunk-WNECKKO2.js +154 -0
  512. package/dist/chunk-WPKLYOAM.js +195 -0
  513. package/dist/chunk-WSH37YQN.js +243 -0
  514. package/dist/chunk-WV3KQDPE.js +84 -0
  515. package/dist/chunk-WZFC4V4U.js +389 -0
  516. package/dist/chunk-XCOIBNET.js +13 -0
  517. package/dist/chunk-XDM65LBX.js +53 -0
  518. package/dist/chunk-XGU6PBO5.js +645 -0
  519. package/dist/chunk-XHOI4V62.js +43 -0
  520. package/dist/chunk-XIBVFMLQ.js +6858 -0
  521. package/dist/chunk-XJ2E7YEJ.js +117 -0
  522. package/dist/chunk-XON4ZCYX.js +69 -0
  523. package/dist/chunk-XQPEWJPI.js +127 -0
  524. package/dist/chunk-XSJTIFUY.js +31 -0
  525. package/dist/chunk-XT7OVWM3.js +64 -0
  526. package/dist/chunk-XTXYIISX.js +1104 -0
  527. package/dist/chunk-XV7NZL4B.js +57 -0
  528. package/dist/chunk-XWIZ6B5S.js +109 -0
  529. package/dist/chunk-XWLIKOBX.js +240 -0
  530. package/dist/chunk-XZOXEIN4.js +156 -0
  531. package/dist/chunk-XZRS7I7W.js +3673 -0
  532. package/dist/chunk-Y4ZDDHB6.js +44 -0
  533. package/dist/chunk-Y733RB7T.js +194 -0
  534. package/dist/chunk-YBHUB4XR.js +14931 -0
  535. package/dist/chunk-YKC75XK4.js +147 -0
  536. package/dist/chunk-YKMXFVK7.js +27 -0
  537. package/dist/chunk-YO5BAJ55.js +225 -0
  538. package/dist/chunk-YPDCLXNZ.js +568 -0
  539. package/dist/chunk-YSQPGVFK.js +116 -0
  540. package/dist/chunk-YTVVTIWJ.js +716 -0
  541. package/dist/chunk-YVCMDVBB.js +698 -0
  542. package/dist/chunk-YYTOA6DP.js +114 -0
  543. package/dist/chunk-Z5WGNULV.js +88 -0
  544. package/dist/chunk-Z6NGVVXG.js +66 -0
  545. package/dist/chunk-Z7CDQNH3.js +20 -0
  546. package/dist/chunk-ZH4G3FU5.js +187 -0
  547. package/dist/chunk-ZJB6SQPA.js +257 -0
  548. package/dist/chunk-ZL6E4HMY.js +42 -0
  549. package/dist/chunk-ZMLOC3DW.js +62 -0
  550. package/dist/chunk-ZORW64QH.js +101 -0
  551. package/dist/chunk-ZVVD2XGV.js +1369 -0
  552. package/dist/cli-utils-ER33ODC5.js +31 -0
  553. package/dist/cli-validation-6CHPTANV.js +146 -0
  554. package/dist/commit-utils-3STAY7C7.js +49 -0
  555. package/dist/compatibility-notice-IHNXR2JR.js +21 -0
  556. package/dist/compete-config-resolver-V3GDNJMM.js +125 -0
  557. package/dist/compete-results-XUM3PJHS.js +318 -0
  558. package/dist/competition-outcome-tracker-NWSMVUPG.js +62 -0
  559. package/dist/config-4HHE4OIK.js +238 -0
  560. package/dist/config-D6YAZASH.js +10 -0
  561. package/dist/config-MIPRDYYV.js +46 -0
  562. package/dist/config-audit-GA5DCUAI.js +371 -0
  563. package/dist/config-explain-4LMO556H.js +71 -0
  564. package/dist/config-loader-RGP634PC.js +51 -0
  565. package/dist/config-manager-J2UTO635.js +114 -0
  566. package/dist/config-merger-TVUJBZTS.js +14 -0
  567. package/dist/config-validator-H4ZVIE56.js +122 -0
  568. package/dist/cost-HSIV5U2Y.js +85 -0
  569. package/dist/data-migration-state-OAUL2WPQ.js +35 -0
  570. package/dist/db-migrator-NUOW5NKR.js +34 -0
  571. package/dist/default-paths-UILB62BN.js +49 -0
  572. package/dist/discovery-V6GYUJUC.js +53 -0
  573. package/dist/doctor-BBSMCDWE.js +271 -0
  574. package/dist/doctor-context-blocks-LPY75VZA.js +231 -0
  575. package/dist/doctor-instructions-import-JXHDDOE5.js +70 -0
  576. package/dist/doctor-purpose-6YJOXPBE.js +30 -0
  577. package/dist/domain-analyzer-S35ABUNA.js +48 -0
  578. package/dist/ensure-initialized-Q6PEU55O.js +78 -0
  579. package/dist/entry.js +922 -0
  580. package/dist/error-parser-core-MZFMFANN.js +70 -0
  581. package/dist/evaluation-context-GQBYDAEV.js +63 -0
  582. package/dist/evidence-plan-resolver-5FUAP3SA.js +111 -0
  583. package/dist/execution-data-writer-YCG5UH37.js +72 -0
  584. package/dist/execution-policy-applier-PWZM5LNA.js +63 -0
  585. package/dist/execution-preflight-DASJWWQF.js +223 -0
  586. package/dist/execution-roles-KNSNNB2D.js +112 -0
  587. package/dist/exit-code-error-QIY5DOKF.js +18 -0
  588. package/dist/external-temp-cleanup-CAW7LQ6R.js +360 -0
  589. package/dist/factory-YCYCB7AE.js +209 -0
  590. package/dist/file-utils-ZQYNBQBW.js +45 -0
  591. package/dist/flywheel-allowlist-revert-H22HA6JE.js +21 -0
  592. package/dist/flywheel-autoloop-executor-PDOASJEZ.js +316 -0
  593. package/dist/flywheel-autoloop-unverified-TOKYFCDC.js +36 -0
  594. package/dist/flywheel-competition-executor-YJUMMEJO.js +320 -0
  595. package/dist/flywheel-executor-JWU43KAY.js +437 -0
  596. package/dist/flywheel-git-isolation-FQ2TRWMB.js +56 -0
  597. package/dist/flywheel-manifest-HDPNMWWF.js +114 -0
  598. package/dist/flywheel-model-defaults-UHAKTZT3.js +110 -0
  599. package/dist/flywheel-preflight-III2C7TH.js +163 -0
  600. package/dist/flywheel-resume-2O45MS7Y.js +31 -0
  601. package/dist/flywheel-resume-execution-lease-P2BK257J.js +59 -0
  602. package/dist/flywheel-safety-AVAVFXIJ.js +19 -0
  603. package/dist/flywheel-scope-decision-ALJUUNGG.js +14 -0
  604. package/dist/get-telemetry-logger-MPDVO2JA.js +155 -0
  605. package/dist/git-message-style-KCXGMTDT.js +104 -0
  606. package/dist/guidance-profile-config-G3K5YQOO.js +113 -0
  607. package/dist/guidance-profile-renderer-TX4TNDFL.js +23 -0
  608. package/dist/identity-XLQJ4YJF.js +25 -0
  609. package/dist/index-query-6NUY4FKX.js +37 -0
  610. package/dist/index.js +85588 -0
  611. package/dist/indexer-DL54CM3K.js +44 -0
  612. package/dist/init-OUZ72344.js +245 -0
  613. package/dist/instructions-import-offer-NSYXSITC.js +363 -0
  614. package/dist/instructions-run-NBII7W36.js +114 -0
  615. package/dist/interrupted-work-E4TLKJLE.js +43 -0
  616. package/dist/invoke-provider-auth-NEWEIHCI.js +38 -0
  617. package/dist/judge-scoring.json +64 -0
  618. package/dist/lab-mode-YXQ2Y3NG.js +44 -0
  619. package/dist/lab-utils-5QAMDJR5.js +29 -0
  620. package/dist/linux-host-class-YDWQX65O.js +31 -0
  621. package/dist/llm-judge-executor-OJSNCTFJ.js +179 -0
  622. package/dist/local-ci-config-VZ4WWDT5.js +48 -0
  623. package/dist/local-executor-DCMDDRX2.js +280 -0
  624. package/dist/logger-5KNKS3O4.js +154 -0
  625. package/dist/matrix-prompt-builder-4ZBOGZSB.js +527 -0
  626. package/dist/matrix-result-parser-EZJM4YXP.js +14 -0
  627. package/dist/merge-batch-RTEEMVDB.js +313 -0
  628. package/dist/merge-batch-members-VIWGVRHP.js +24 -0
  629. package/dist/merge-queue-TIIUSOY6.js +126 -0
  630. package/dist/merge-queue-trust-DUNZ4J65.js +21 -0
  631. package/dist/metadata-UKSMWM6J.js +29 -0
  632. package/dist/model-catalog-readiness-R5KJBP5M.js +202 -0
  633. package/dist/model-invocations-db-XTUPPQ34.js +70 -0
  634. package/dist/model-resolver-JFZ2MHOJ.js +39 -0
  635. package/dist/model-resolver-SCQ57KAQ.js +217 -0
  636. package/dist/model-roles-D3OR4NAH.js +110 -0
  637. package/dist/monitor-F4SIU5G2.js +96 -0
  638. package/dist/nested-worktrees-2WUWQ75N.js +23 -0
  639. package/dist/next-S3IRLVER.js +96 -0
  640. package/dist/next-UKPFRXOO.js +148 -0
  641. package/dist/opportunistic-TL4S26VX.js +86 -0
  642. package/dist/optimization-config-resolver-NAEIYU6A.js +148 -0
  643. package/dist/package-HJR4QJT4.js +10 -0
  644. package/dist/parse-git-status-7PIYFPS2.js +21 -0
  645. package/dist/path-security-5WJSY56G.js +41 -0
  646. package/dist/paths-JUI7C4KU.js +45 -0
  647. package/dist/plan-backlog-list-fast-SSTQL5XP.js +89 -0
  648. package/dist/plan-backlog-show-fast-PFRAQ3JB.js +114 -0
  649. package/dist/plan-sprint-list-fast-HD2KBZSY.js +110 -0
  650. package/dist/plan-sprint-status-fast-YFYH7WQF.js +116 -0
  651. package/dist/plan-task-status-fast-JU5PNLUU.js +114 -0
  652. package/dist/plan-to-flywheel-PY5MSY2H.js +529 -0
  653. package/dist/preflight-PJHGTJNZ.js +12 -0
  654. package/dist/process-registry-B4ZUCN7T.js +28 -0
  655. package/dist/process-scanner-TU3QHWVB.js +23 -0
  656. package/dist/processes-6FHVGT72.js +28 -0
  657. package/dist/processes-json-fast-YWTMUWXB.js +72 -0
  658. package/dist/profile-HWTC56SG.js +209 -0
  659. package/dist/project-runtime-paths-2UQNG5Y4.js +41 -0
  660. package/dist/protected-branches-N36LDBFY.js +71 -0
  661. package/dist/provider-aware-resource-manager-YTFAHNGJ.js +40 -0
  662. package/dist/provider-matrix-2KO2V5OM.js +214 -0
  663. package/dist/provider-matrix-renderer-MEC3PER7.js +139 -0
  664. package/dist/provider-output-forwarding-2AHL7YMA.js +26 -0
  665. package/dist/provider-registry-WCZ65QHC.js +136 -0
  666. package/dist/provider-temp-cleanup-IUNPJCZF.js +14 -0
  667. package/dist/prune-engine-EOQVWEP6.js +448 -0
  668. package/dist/publication-turn-S42RZTQF.js +44 -0
  669. package/dist/quality-gate-JQMVCKOO.js +72 -0
  670. package/dist/quickstart-3O6FRCFB.js +105 -0
  671. package/dist/readiness-GW6ABRHB.js +139 -0
  672. package/dist/readiness-KFZCXDTT.js +215 -0
  673. package/dist/registry-7XG376SY.js +217 -0
  674. package/dist/repair-helpers-TTV5FEF4.js +117 -0
  675. package/dist/repo-root-YG6MQZDW.js +28 -0
  676. package/dist/resolution-engine-FFEK7HQ2.js +187 -0
  677. package/dist/resolve-provider-cli-ZEXVZKET.js +44 -0
  678. package/dist/restore-telemetry-db-E7BR5PO7.js +459 -0
  679. package/dist/routing-events-AW6SRZ6G.js +13 -0
  680. package/dist/routing-history-store-FMDDQL6W.js +39 -0
  681. package/dist/routing-planner-C6OHO3EY.js +221 -0
  682. package/dist/runner-KHDNQ5KU.js +1194 -0
  683. package/dist/runner-PIS2BW7Y.js +1801 -0
  684. package/dist/safety-E3JJVSFL.js +67 -0
  685. package/dist/safety-stanza-HE6GXP4G.js +49 -0
  686. package/dist/sandbox-7LBZC5PE.js +72 -0
  687. package/dist/sandbox-ASWCDYZL.js +80 -0
  688. package/dist/schema-extensions.sql +234 -0
  689. package/dist/security-JI22TBEB.js +17 -0
  690. package/dist/setup-bb-plugin-FQXLA76Y.js +531 -0
  691. package/dist/setup-claude-code-NF4ZSHVE.js +197 -0
  692. package/dist/setup-temp-cleanup-2APZ4HMA.js +29 -0
  693. package/dist/shared-utils-34HJZ6JX.js +40 -0
  694. package/dist/simple-artifact-goal-MQLDDMMX.js +29 -0
  695. package/dist/sprint-N7JFTEGL.js +403 -0
  696. package/dist/sprint-bridge-KJXIBNRJ.js +117 -0
  697. package/dist/sprint-completion-dependents-34SR7JVL.js +43 -0
  698. package/dist/sprint-execution-service-A6JPUBWY.js +376 -0
  699. package/dist/sprint-manager-MU2ZUWN2.js +140 -0
  700. package/dist/sqlite-timeout-config-U2CT4LKU.js +13 -0
  701. package/dist/sqlite-wrapper-FSGJ2QEW.js +19 -0
  702. package/dist/stale-cleanup-orchestrator-4X6324VF.js +71 -0
  703. package/dist/storage-access-I3V5LER7.js +31 -0
  704. package/dist/store-XVG64ZR2.js +25 -0
  705. package/dist/task-classifier-MN2DYE5R.js +558 -0
  706. package/dist/task-list-fast-7AT6LTTA.js +112 -0
  707. package/dist/task-manager-LHPBBRRE.js +136 -0
  708. package/dist/task-report-OLPAWBTK.js +64 -0
  709. package/dist/task-type-detector-6RG3YNZF.js +27 -0
  710. package/dist/task-type-resolver-EQHOUIHT.js +64 -0
  711. package/dist/telemetry-5VYSK772.js +212 -0
  712. package/dist/telemetry-health-tracker-4GFW2EMP.js +12 -0
  713. package/dist/telemetry-path-resolver-H3NFHHQY.js +34 -0
  714. package/dist/telemetry-reliability-URJDTNPZ.js +76 -0
  715. package/dist/transports-NREZQTJK.js +106 -0
  716. package/dist/unified-cost-tracker-5MTBJ2CL.js +59 -0
  717. package/dist/unified-state-cleanup-GGAXLHXF.js +292 -0
  718. package/dist/universal-cost-calculator-JTFEJVWK.js +70 -0
  719. package/dist/user-agents-QLIGPLP2.js +30 -0
  720. package/dist/variant-execution-I4ZZUAWY.js +319 -0
  721. package/dist/variant-opt-parser-JHCXKY2K.js +251 -0
  722. package/dist/variant-request-input-PL37N3AN.js +11 -0
  723. package/dist/variant-state-cleanup-KHMXRBZN.js +287 -0
  724. package/dist/variant-worker-COB5YTJX.js +4517 -0
  725. package/dist/variant-worker.js +26 -0
  726. package/dist/variants-XGDSXYG3.js +267 -0
  727. package/dist/verification-command-YSPU4VBH.js +66 -0
  728. package/dist/verify-command-timeout-DQUYH33Z.js +11 -0
  729. package/dist/verify-commands-LOHMOFKC.js +65 -0
  730. package/dist/warning-JSKSFKBT.js +13 -0
  731. package/dist/work-edge-K65NHVWY.js +50 -0
  732. package/dist/work-item-writer-KY5ZWZWW.js +30 -0
  733. package/dist/worker-JNXXEIT6.js +1504 -0
  734. package/dist/worker.js +21 -0
  735. package/dist/workspace-tree-identity-JO5PSKTW.js +52 -0
  736. package/dist/worktree-environment-WTVABAQW.js +64 -0
  737. package/dist/worktree-metrics-VZRQI26T.js +66 -0
  738. package/dist/writeback-TQFQBJNU.js +50 -0
  739. package/docs/CLI_REFERENCE.md +8287 -0
  740. package/docs/PROVIDER_SETUP.md +1737 -0
  741. package/docs/README.md +96 -0
  742. package/docs/TROUBLESHOOTING.md +2209 -0
  743. package/docs/getting-started/QUICK_START.md +260 -0
  744. package/docs/getting-started/README.md +198 -0
  745. package/docs/getting-started/SETUP.md +25 -0
  746. package/docs/reference/AGENT_CONTEXT.md +84 -0
  747. package/docs/reference/DELIVERY_ONBOARDING.md +198 -0
  748. package/docs/reference/PROVIDER_RELEASE_TIERS.md +34 -0
  749. package/docs/reference/SECURITY.md +291 -0
  750. package/docs/reference/TELEMETRY_PRIVACY.md +259 -0
  751. package/integrations/bb-plugin-build/README.md +391 -0
  752. package/integrations/bb-plugin-build/app.css +431 -0
  753. package/integrations/bb-plugin-build/app.tsx +6210 -0
  754. package/integrations/bb-plugin-build/package.json +45 -0
  755. package/integrations/bb-plugin-build/server.ts +488 -0
  756. package/integrations/bb-plugin-build/src/adapter.ts +3672 -0
  757. package/integrations/bb-plugin-build/src/backlog-authoring-model.ts +150 -0
  758. package/integrations/bb-plugin-build/src/backlog-authoring-schema.ts +458 -0
  759. package/integrations/bb-plugin-build/src/backlog-authoring-service.ts +467 -0
  760. package/integrations/bb-plugin-build/src/backlog-authoring-view.ts +1025 -0
  761. package/integrations/bb-plugin-build/src/command-evidence-schema.ts +13 -0
  762. package/integrations/bb-plugin-build/src/competition-defaults-schema.ts +122 -0
  763. package/integrations/bb-plugin-build/src/competition-defaults-service.ts +105 -0
  764. package/integrations/bb-plugin-build/src/competition-defaults-view.ts +138 -0
  765. package/integrations/bb-plugin-build/src/contract.ts +718 -0
  766. package/integrations/bb-plugin-build/src/execution-activity-view.ts +98 -0
  767. package/integrations/bb-plugin-build/src/finalize-model.ts +205 -0
  768. package/integrations/bb-plugin-build/src/finalize-schema.ts +150 -0
  769. package/integrations/bb-plugin-build/src/finalize-service.ts +330 -0
  770. package/integrations/bb-plugin-build/src/finalize-view.ts +159 -0
  771. package/integrations/bb-plugin-build/src/judge-operations-readback.ts +303 -0
  772. package/integrations/bb-plugin-build/src/judge-operations-schema.ts +33 -0
  773. package/integrations/bb-plugin-build/src/judge-operations-view.ts +459 -0
  774. package/integrations/bb-plugin-build/src/model.ts +1318 -0
  775. package/integrations/bb-plugin-build/src/monitor-service.ts +233 -0
  776. package/integrations/bb-plugin-build/src/panel-read-ux.ts +97 -0
  777. package/integrations/bb-plugin-build/src/patch-preview-schema.ts +166 -0
  778. package/integrations/bb-plugin-build/src/patch-preview-service.ts +480 -0
  779. package/integrations/bb-plugin-build/src/patch-preview-view.ts +109 -0
  780. package/integrations/bb-plugin-build/src/planning-readback.ts +228 -0
  781. package/integrations/bb-plugin-build/src/planning-service.ts +647 -0
  782. package/integrations/bb-plugin-build/src/planning-sync-evidence.ts +37 -0
  783. package/integrations/bb-plugin-build/src/planning-workspace-readback.ts +33 -0
  784. package/integrations/bb-plugin-build/src/planning-workspace-schema.ts +131 -0
  785. package/integrations/bb-plugin-build/src/planning-workspace.ts +333 -0
  786. package/integrations/bb-plugin-build/src/poll-handoff.ts +136 -0
  787. package/integrations/bb-plugin-build/src/project-target-server.ts +21 -0
  788. package/integrations/bb-plugin-build/src/project-target.ts +45 -0
  789. package/integrations/bb-plugin-build/src/reference-index.ts +218 -0
  790. package/integrations/bb-plugin-build/src/repository-identity.ts +17 -0
  791. package/integrations/bb-plugin-build/src/repository-schema.ts +30 -0
  792. package/integrations/bb-plugin-build/src/result-explorer-view.ts +597 -0
  793. package/integrations/bb-plugin-build/src/result-readback-model.ts +163 -0
  794. package/integrations/bb-plugin-build/src/result-readback-schema.ts +319 -0
  795. package/integrations/bb-plugin-build/src/result-readback-service.ts +333 -0
  796. package/integrations/bb-plugin-build/src/run-page-view.ts +332 -0
  797. package/integrations/bb-plugin-build/src/setup-config-schema.ts +293 -0
  798. package/integrations/bb-plugin-build/src/setup-config-service.ts +620 -0
  799. package/integrations/bb-plugin-build/src/setup-config-view.ts +388 -0
  800. package/integrations/bb-plugin-build/src/sprint-close-model.ts +150 -0
  801. package/integrations/bb-plugin-build/src/sprint-close-schema.ts +128 -0
  802. package/integrations/bb-plugin-build/src/sprint-close-service.ts +293 -0
  803. package/integrations/bb-plugin-build/src/sprint-close-view.ts +116 -0
  804. package/integrations/bb-plugin-build/src/sprint-composition-model.ts +709 -0
  805. package/integrations/bb-plugin-build/src/sprint-composition-readback.ts +231 -0
  806. package/integrations/bb-plugin-build/src/sprint-composition-schema.ts +597 -0
  807. package/integrations/bb-plugin-build/src/sprint-composition-service.ts +773 -0
  808. package/integrations/bb-plugin-build/src/sprint-composition-view.ts +1221 -0
  809. package/integrations/bb-plugin-build/src/sprint-execution-schema.ts +188 -0
  810. package/integrations/bb-plugin-build/src/sprint-execution-service.ts +289 -0
  811. package/integrations/bb-plugin-build/src/sprint-execution-view.ts +54 -0
  812. package/integrations/bb-plugin-build/src/task-authoring-model.ts +563 -0
  813. package/integrations/bb-plugin-build/src/task-authoring-schema.ts +629 -0
  814. package/integrations/bb-plugin-build/src/task-authoring-service.ts +842 -0
  815. package/integrations/bb-plugin-build/src/task-authoring-view.ts +1227 -0
  816. package/integrations/bb-plugin-build/src/task-catalog-schema.ts +46 -0
  817. package/integrations/bb-plugin-build/src/task-catalog-service.ts +44 -0
  818. package/integrations/bb-plugin-build/src/task-detail-readback.ts +56 -0
  819. package/integrations/bb-plugin-build/src/task-detail-schema.ts +171 -0
  820. package/integrations/bb-plugin-build/src/task-navigation.ts +446 -0
  821. package/integrations/bb-plugin-build/src/workbench-route.ts +74 -0
  822. package/package.json +306 -4
  823. package/schemas/README.md +80 -0
  824. package/schemas/build.config.schema.json +2110 -0
  825. package/schemas/config-v1.schema.json +136 -0
  826. package/schemas/execution-config.schema.json +47 -0
  827. package/schemas/judge-scoring.schema.json +257 -0
  828. package/schemas/provider-config.schema.json +179 -0
  829. package/schemas/telemetry-config.schema.json +79 -0
  830. package/schemas/user-preferences.schema.json +141 -0
  831. package/scripts/assert-node-runtime.mjs +146 -0
  832. package/scripts/preflight-native.mjs +49 -0
  833. package/scripts/setup-git-hooks.mjs +39 -0
  834. package/scripts/sync.sh +2871 -0
  835. package/scripts/write-node-launcher.sh +138 -0
  836. package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
  837. package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
  838. package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
  839. package/templates/.build-project/README.md +41 -0
  840. package/templates/.build-project/agents/README.md +50 -0
  841. package/templates/.build-project/agents/architect.md +10 -0
  842. package/templates/.build-project/agents/code-reviewer.md +10 -0
  843. package/templates/.build-project/agents/debugger.md +10 -0
  844. package/templates/.build-project/agents/documenter.md +10 -0
  845. package/templates/.build-project/agents/test-automator.md +10 -0
  846. package/templates/.build-project/config/build.config.jsonc +64 -0
  847. package/templates/.build-project/config/project-context.template.json +6 -0
  848. package/templates/.build-project/config/task-type-aliases.presets/kanban.yaml +14 -0
  849. package/templates/.build-project/config/task-type-aliases.presets/scrum.yaml +17 -0
  850. package/templates/.build-project/config/task-type-aliases.presets/xp.yaml +12 -0
  851. package/templates/.build-project/config/task-type-aliases.yaml +29 -0
  852. package/templates/.build-project/gitignore.template +70 -0
  853. package/templates/.build-project/task-types/analysis.yaml +38 -0
  854. package/templates/.build-project/task-types/architecture.yaml +35 -0
  855. package/templates/.build-project/task-types/doc.yaml +34 -0
  856. package/templates/.build-project/task-types/feature.yaml +22 -0
  857. package/templates/.build-project/task-types/general.yaml +4 -0
  858. package/templates/.build-project/task-types/security.yaml +38 -0
  859. package/templates/AGENTS.template.md +85 -0
  860. package/templates/CLAUDE.template.md +1 -0
  861. package/templates/GEMINI.template.md +1 -0
  862. package/templates/builtin-workflows/code-review.yaml +73 -0
  863. package/templates/builtin-workflows/skills/code-review/SKILL.md +61 -0
  864. package/templates/builtin-workflows/skills/execution-contract-analysis/SKILL.md +24 -0
  865. package/templates/builtin-workflows/skills/execution-contract-code/SKILL.md +19 -0
  866. package/templates/builtin-workflows/skills/execution-contract-structured/SKILL.md +17 -0
  867. package/templates/ci/incident-intake.mjs +787 -0
  868. package/templates/ci/incidents.yml.template +103 -0
  869. package/templates/ci/node.yml.template +17 -0
  870. package/templates/ci/python.yml.template +17 -0
  871. package/templates/guard-kit/GUARD_SETUP.md.template +258 -0
  872. package/templates/guard-kit/build-guard.yml.template +189 -0
  873. package/templates/guard-kit/check.mjs.template +932 -0
  874. package/templates/guard-kit/config.json.template +7 -0
  875. package/templates/guard-kit/policy.json.template +1 -0
  876. package/templates/profiles/README.md +57 -0
  877. package/templates/profiles/frontier-claude.json +23 -0
  878. package/templates/profiles/frontier-codex.json +23 -0
@@ -0,0 +1,103 @@
1
+ # Generated locally after review. Publish to activate record-only incident intake.
2
+ # Optional dispatch requires an owner-provided executor accepting the four documented inputs.
3
+ name: Build CI incidents
4
+ on:
5
+ workflow_run:
6
+ workflows: ['REVIEWED_BACKGROUND_WORKFLOW']
7
+ types: [completed]
8
+ workflow_dispatch:
9
+ inputs:
10
+ incident_number:
11
+ required: true
12
+ type: string
13
+ expected_attempt:
14
+ required: true
15
+ type: string
16
+ executor_run_id:
17
+ required: true
18
+ type: string
19
+ outcome:
20
+ required: true
21
+ type: choice
22
+ options: [retry, needs-decision, candidate]
23
+ repair_pr:
24
+ required: false
25
+ type: string
26
+ repair_sha:
27
+ required: false
28
+ type: string
29
+ permissions:
30
+ contents: read
31
+ actions: read
32
+ issues: write
33
+ jobs:
34
+ intake:
35
+ if: github.event_name == 'workflow_run'
36
+ runs-on: ubuntu-latest
37
+ concurrency:
38
+ group: build-incident-dispatch
39
+ cancel-in-progress: false
40
+ queue: max
41
+ steps:
42
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
43
+ with:
44
+ ref: ${{ github.event.repository.default_branch }}
45
+ persist-credentials: false
46
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
47
+ with:
48
+ node-version: '24'
49
+ - run: node .build-project/ci/incident-intake.mjs intake
50
+ env:
51
+ GITHUB_TOKEN: ${{ github.token }}
52
+ reconcile:
53
+ if: github.event_name == 'workflow_dispatch'
54
+ runs-on: ubuntu-latest
55
+ permissions:
56
+ contents: read
57
+ actions: read
58
+ issues: write
59
+ pull-requests: read
60
+ checks: read
61
+ concurrency:
62
+ group: build-incident-dispatch
63
+ cancel-in-progress: false
64
+ queue: max
65
+ steps:
66
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
67
+ with:
68
+ ref: ${{ github.event.repository.default_branch }}
69
+ persist-credentials: false
70
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
71
+ with:
72
+ node-version: '24'
73
+ - run: node .build-project/ci/incident-intake.mjs reconcile
74
+ env:
75
+ GITHUB_TOKEN: ${{ github.token }}
76
+ BUILD_REPAIR_WORKFLOW: ${{ vars.BUILD_REPAIR_WORKFLOW }}
77
+ dispatch:
78
+ needs: [intake, reconcile]
79
+ if: always() && (needs.intake.result == 'success' || needs.reconcile.result == 'success') && vars.BUILD_REPAIR_DISPATCH_ENABLED == 'true' && vars.BUILD_REPAIR_CALLBACK_CONFIGURED == 'true' && vars.BUILD_REPAIR_WORKFLOW != ''
80
+ runs-on: ubuntu-latest
81
+ # GitHub.com queues at most 100 waiting jobs; incident issues remain durable beyond this bound.
82
+ concurrency:
83
+ group: build-incident-dispatch
84
+ cancel-in-progress: false
85
+ queue: max
86
+ permissions:
87
+ contents: read
88
+ actions: write
89
+ issues: write
90
+ steps:
91
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
92
+ with:
93
+ ref: ${{ github.event.repository.default_branch }}
94
+ persist-credentials: false
95
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
96
+ with:
97
+ node-version: '24'
98
+ - run: node .build-project/ci/incident-intake.mjs dispatch
99
+ env:
100
+ GITHUB_TOKEN: ${{ github.token }}
101
+ BUILD_REPAIR_DISPATCH_ENABLED: ${{ vars.BUILD_REPAIR_DISPATCH_ENABLED }}
102
+ BUILD_REPAIR_WORKFLOW: ${{ vars.BUILD_REPAIR_WORKFLOW }}
103
+ BUILD_REPAIR_CALLBACK_CONFIGURED: ${{ vars.BUILD_REPAIR_CALLBACK_CONFIGURED }}
@@ -0,0 +1,17 @@
1
+ name: Build CI
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches: [__DEFAULT_BRANCH__]
6
+ permissions:
7
+ contents: read
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.run_id }}
10
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
11
+ jobs:
12
+ validation:
13
+ name: Build CI
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
17
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444
@@ -0,0 +1,17 @@
1
+ name: Build CI
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches: [__DEFAULT_BRANCH__]
6
+ permissions:
7
+ contents: read
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.run_id }}
10
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
11
+ jobs:
12
+ validation:
13
+ name: Build CI
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
17
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
@@ -0,0 +1,258 @@
1
+ # Build Guard setup playbook (kit version {{KIT_VERSION}})
2
+
3
+ ## What this is
4
+
5
+ This file is the PATH; `build guard verify` is the GROUND TRUTH. Follow these
6
+ steps, in order, until `build guard verify` reports `configured` (all local and
7
+ GitHub criteria pass) or `proven-gated` (a live rejection was also witnessed).
8
+ Re-run `build guard verify` after every step and let its scorecard — not this
9
+ document — tell you what is still missing.
10
+
11
+ This file is generated by Build. It is overwritten on every
12
+ `build init --guardrails` install/upgrade/reinstall. It is NOT hash-tracked, so
13
+ you may annotate it freely without tripping a tamper check, but your notes are
14
+ lost on the next upgrade — keep durable notes elsewhere.
15
+
16
+ ## The criteria (C1..C7)
17
+
18
+ `build guard verify` evaluates seven criteria, in order. Order is load-bearing:
19
+ later criteria depend on earlier ones (C5/C6 need the check identity from C4 and
20
+ the remote default branch from C2; C7 needs the identity from C4).
21
+
22
+ | ID | Meaning (one line) |
23
+ |----|--------------------|
24
+ | C1 | Kit installed and untampered (`.build-project/guard/` present, hashes match the lock). |
25
+ | C2 | Gate present on the remote default branch (`check.mjs` committed on `main`). |
26
+ | C3 | Local gate actually gates (self-test: the committed `check.mjs` rejects a planted violation). |
27
+ | C4 | A single gate-check identity is derivable from your workflows (one job, correct triggers, no `continue-on-error`). |
28
+ | C5 | Green evidence for the current default-branch head or the merged PR that produced it. |
29
+ | C6 | Branch protection (or a ruleset) REQUIRES that check context, ideally with up-to-date-branch strictness. |
30
+ | C7 | Witnessed live rejection: a canary PR was actually blocked by the check (the proof). |
31
+
32
+ ### Verdict ladder
33
+
34
+ - `not-gated` — a criterion in C1..C6 hard-FAILED, or a canary was NOT rejected
35
+ (C7 fail). `build guard verify` exits 1.
36
+ - `partially-gated` — no hard failure, but at least one C1..C6 criterion is a
37
+ `gap` (could not be verified: missing `gh`, no network, opaque ruleset
38
+ semantics, or skipped via a flag). Exits 3.
39
+ - `configured` — C1..C6 all pass. C7 may be a gap. This is the normal "the gate
40
+ is wired and required" target. Exits 0.
41
+ - `proven-gated` — C1..C6 all pass AND C7 passes (a canary was witnessed being
42
+ rejected). The strongest verdict. Exits 0.
43
+
44
+ A criterion that cannot be verified is a `gap`, never a `pass` — the scorecard
45
+ fails closed. `configured` and `proven-gated` are unreachable while any C1..C6
46
+ criterion is a gap (for example, an uninterpretable ruleset forces C6 to a gap).
47
+
48
+ ## Ordered steps
49
+
50
+ Do these in order. Skipping ahead — especially requiring the check (C6) before
51
+ it has ever reported green (C5) — deadlocks every PR.
52
+
53
+ ### Step 1 — Install the kit (C1)
54
+
55
+ ```bash
56
+ build init --guardrails
57
+ ```
58
+
59
+ This renders `.build-project/guard/` (`check.mjs`, `config.json`, `policy.json`,
60
+ `checks.lock`, and this file). `policy.json` carries the repo's `git.attribution`
61
+ mode; change it with `build config set git.attribution <allow|human-only>`
62
+ followed by `build guard sync`, never by hand. In ordinary repositories it also installs one
63
+ repo-local pre-commit wrapper that runs the built-in secret catalog against the
64
+ staged index. Existing hooks are preserved as a sidecar. Build does not rewrite
65
+ global, Husky-generated, or tracked repository hooks; those repositories keep
66
+ their existing local hook policy and still use the hosted Guard.
67
+
68
+ The local scan is a fast accident-prevention layer, not a replacement for a
69
+ deeper scanner such as Gitleaks or TruffleHog. If Node is temporarily unavailable,
70
+ use `SKIP_BUILD_GUARD_SECRET_SCAN=1 git commit ...`; `--no-verify` bypasses every
71
+ pre-commit hook and should be reserved for recovery. Confirm C1:
72
+
73
+ ```bash
74
+ build guard verify
75
+ ```
76
+
77
+ C1 should read `OK: C1 Kit installed and untampered`. If it reports `absent`,
78
+ run the install again; if `tampered`/`partial`, run
79
+ `build init --guardrails --reinstall-guard`.
80
+
81
+ ### Step 2 — Commit the gate on a branch
82
+
83
+ Create a normal working branch and commit the whole guard directory:
84
+
85
+ ```bash
86
+ git checkout -b add-build-guard
87
+ git add .build-project/guard
88
+ git commit -m "Add Build guard kit"
89
+ ```
90
+
91
+ The gate only works once `check.mjs` is COMMITTED — the CI trusted-base pattern
92
+ reads it from the base branch's tree. A repo-wide `.build-project/` gitignore silently
93
+ swallows it; make sure `.build-project/guard/check.mjs` is tracked.
94
+
95
+ ### Step 3 — Add the reference workflow (C4)
96
+
97
+ Print the reference GitHub Actions workflow and save it:
98
+
99
+ ```bash
100
+ build guard print-ci > .github/workflows/build-guard.yml
101
+ ```
102
+
103
+ (You can also copy `build-guard.yml.template` from the kit and substitute the
104
+ kit version yourself.) Adapt ONLY the CUSTOMIZE-FREELY regions marked in the
105
+ file (runner label, timeout, optional path-filter additions). Do NOT change the
106
+ MUST-NOT-CHANGE regions: `permissions: contents: read`, the trusted-base
107
+ extraction, the `test -s` non-empty guard, `fetch-depth: 0`, both triggers
108
+ (`pull_request_target` and `merge_group`), checkout of the base branch (do
109
+ not set checkout `ref:` to the PR head), and the literal job
110
+ `name: Build Guard` (that name is the required status-check context).
111
+ Commit it alongside the gate.
112
+
113
+ ### Step 4 — Land the gate + workflow on the default branch (C2, C5)
114
+
115
+ Open a PR from your branch and merge it into the default branch through your
116
+ existing flow. This satisfies C2. The introducing PR cannot use a
117
+ `pull_request_target` workflow absent from its base, and the reference workflow
118
+ has no default-branch push trigger.
119
+
120
+ ### Step 5 — Confirm green evidence for the current default branch (C5)
121
+
122
+ Use the next ordinary PR after installation: its base now contains the workflow.
123
+ Wait for its "Build Guard" check to pass, then merge through the existing flow.
124
+ A small verification PR can establish this first run if no ordinary change is
125
+ ready. After that merge, run:
126
+
127
+ ```bash
128
+ build guard verify
129
+ ```
130
+
131
+ C5 accepts a successful check on the CURRENT default-branch head or on the
132
+ merged PR that produced it. An unrelated historical green run is insufficient.
133
+ If C5 reports no evidence, inspect the associated PR and workflow event; waiting
134
+ alone does not create a missing run. Require the check only after C5 passes.
135
+
136
+ For a PR head that remains "Expected — Waiting for status", diagnose the exact
137
+ SHA without changing the C1..C7 verdict:
138
+
139
+ ```bash
140
+ build guard verify --head-sha <40-character-head-sha>
141
+ ```
142
+
143
+ The diagnostic distinguishes absent, queued, running, completed, and stale-head
144
+ state. If an open PR still has no event or app-bound check after 15 minutes,
145
+ close and reopen that PR to retrigger the native `pull_request_target`
146
+ workflow on the same SHA. Do not publish a replacement check manually; the
147
+ GitHub Actions-owned workflow remains the only attestation producer.
148
+
149
+ ### Step 6 — Require the check in branch protection (C6)
150
+
151
+ ONLY after C5 is green. Requiring a check that has never reported deadlocks every
152
+ PR ("Expected — Waiting for status" forever). Require the exact context string
153
+ `Build Guard` with up-to-date-branch strictness.
154
+
155
+ UI path: Repository Settings -> Branches (or Rules -> Rulesets) -> the default
156
+ branch rule -> "Require status checks to pass before merging" -> add
157
+ `Build Guard` -> also enable "Require branches to be up to date before merging".
158
+
159
+ Add the context to the existing policy. Preserve all other required checks
160
+ (including `Build Local CI`, if present), expected check sources, review
161
+ requirements, push restrictions, and administrator policy. Select GitHub Actions
162
+ as the expected source for `Build Guard` where the UI supports it. A full
163
+ branch-protection replacement can remove those existing controls; use the
164
+ additive UI procedure above.
165
+
166
+ Strictness matters: without "up to date before merging" a PR can merge green
167
+ against a stale base and break the gate on the new head (the stale-green-merge
168
+ race). Re-run `build guard verify`; C6 should pass and the verdict should reach
169
+ `configured`.
170
+
171
+ ### Step 7 — Optional live proof canary (C7)
172
+
173
+ This upgrades `configured` to `proven-gated` by WITNESSING a real rejection.
174
+
175
+ 1. Branch: `git checkout -b build-guard-canary/<date>` (the
176
+ `build-guard-canary/` prefix lets `build guard verify` auto-discover it).
177
+ 2. Add a file whose path matches an artifact deny glob (see
178
+ `defaultDenyPaths` / `extraDenyPaths`; a path listed in `config.json`
179
+ `allowPaths` is exempt from the defaults) — for example a committed
180
+ `dist/` build output. NEVER use a secret-shaped string: push protection would
181
+ reject the push and page your security team, and the point is to test the
182
+ gate, not the platform.
183
+ 3. Open it as a DRAFT PR. Expect the "Build Guard" check to FAIL within
184
+ minutes. If it PASSES, your gate is broken — return to Step 3 and check the
185
+ workflow's trusted-base extraction and triggers.
186
+ 4. Close the PR UNMERGED (never merge a canary).
187
+ 5. Prove it:
188
+
189
+ ```bash
190
+ build guard verify --canary-pr <n>
191
+ ```
192
+
193
+ With C1..C6 already passing, C7 now passes and the verdict is `proven-gated`.
194
+
195
+ ## Exit-code contracts
196
+
197
+ The gate (`check.mjs`, run in CI):
198
+
199
+ - `0` — clean.
200
+ - `1` — a HARD finding (secret in an added line, a denied artifact path, or AI
201
+ attribution under `human-only`). Blocks the merge.
202
+ - `2` — ONLY guard-machinery changed under `.build-project/guard/` and no hard finding.
203
+ Softer than 1, but the reference workflow still blocks on it: it means "a human should review the
204
+ gate change." Legitimate kit-upgrade PRs are the expected exit-2 case. A hard
205
+ finding always dominates, so exit 1 wins when both are present. See the
206
+ [two-context/review alternative](#two-context-split-for-automerge-teams) before
207
+ choosing a different maintenance policy; human review alone does not override a
208
+ failing required check.
209
+
210
+ `build guard verify` (the scorecard):
211
+
212
+ - `0` — `configured` or `proven-gated`.
213
+ - `3` — `partially-gated` (at least one unverifiable gap, no hard failure).
214
+ - `1` — `not-gated` (a criterion failed, or a canary was not rejected).
215
+
216
+ ## Troubleshooting
217
+
218
+ | Scorecard message (paraphrased) | Next action |
219
+ |---------------------------------|-------------|
220
+ | C1 state is `absent` | Run `build init --guardrails`. |
221
+ | C1 state is `tampered`/`partial` | Run `build init --guardrails --reinstall-guard`; `config.json` is preserved. |
222
+ | C2 gate not on the default branch | Merge the branch from Step 2 to the default branch (Step 4). |
223
+ | C3 self-test could not run / skipped via `--no-selftest` | Run in a full checkout with Node >= 24; drop `--no-selftest`. |
224
+ | C4 "no GitHub Actions workflows found" | Add the workflow from Step 3 (`build guard print-ci`). |
225
+ | C4 flags `continue-on-error` / missing trigger / dead extraction | Fix the workflow's MUST-NOT-CHANGE regions; do not soften the gate. |
226
+ | C5 "has never reported on the current default-branch head" | Complete the post-install PR flow in Step 5; do not require the check yet. |
227
+ | C5 "not green ... latest conclusion: failure" | Investigate the failing run; the gate found a real problem or the workflow is misconfigured. |
228
+ | C6 "does not require 'Build Guard'" | Require the context in branch protection / a ruleset (Step 6). |
229
+ | C6 "strict ... enforcement is OFF" | Enable "Require branches to be up to date before merging" / `strict_required_status_checks_policy=true`. |
230
+ | C6 "semantics could not be fully interpreted" | Inspect the ruleset with the `gh api` command shown; a merge-queue-only ruleset with no visible required checks reads as a gap. |
231
+ | C7 "no canary proof recorded" | Run the Step 7 canary (an artifact-path violation, never a secret), or pass `--canary-pr <n>`. |
232
+ | C7 "was merged — the gate did not block it" | The gate did not reject the canary: it is broken. Return to Step 3. |
233
+
234
+ ## Optional patterns
235
+
236
+ ### Two-context split for automerge teams
237
+
238
+ If you want routine PRs to automerge but still block on gate-machinery changes,
239
+ split the single check into two contexts: one required check that runs the gate
240
+ and treats only hard findings (exit 1) as failing, and a second required check
241
+ (or a `CODEOWNERS`-gated review) for guard-directory changes (exit 2). Require
242
+ both; automation may merge when the hard-finding context is green while
243
+ exit-2 PRs still wait for a human. Keep the trusted-base extraction in both.
244
+
245
+ ## Non-GitHub CI
246
+
247
+ The trusted-base pattern is portable. On another CI platform, replicate the
248
+ reference workflow's shell step: fail closed (`set -euo pipefail`), fetch the
249
+ base branch, `git show base:.build-project/guard/check.mjs > "$PRIVATE_TMP/guard-check.mjs"`
250
+ (use a private per-run temp path, never a predictable shared `/tmp` filename),
251
+ `test -s` it, then run it with `BUILD_GUARD_DIR="$PWD/.build-project/guard"`. Enforce
252
+ the equivalent of a required, up-to-date status check in your platform's
253
+ merge-protection settings.
254
+
255
+ Criteria C5, C6, and C7 use the GitHub API (via `gh`) and will report `gap` off
256
+ GitHub, so `configured`/`proven-gated` are unreachable there — that is expected,
257
+ not a failure. Rely on the local criteria (C1..C4) plus your platform's own
258
+ equivalents of the green-run, required-check, and rejection-proof gates.
@@ -0,0 +1,189 @@
1
+ # Build Guard reference workflow (kit version {{KIT_VERSION}}).
2
+ #
3
+ # Emitted by `build guard print-ci`. This is NOT installed into your repo
4
+ # automatically: copy it to .github/workflows/build-guard.yml, commit it on a
5
+ # branch, land it on your default branch, confirm one green run, and only then
6
+ # require the "Build Guard" check in branch protection. The ordered procedure
7
+ # and the criteria this satisfies (C4..C7) live in .build-project/guard/GUARD_SETUP.md.
8
+ #
9
+ # ---------------------------------------------------------------------------
10
+ # MUST NOT CHANGE (security-critical — editing these breaks the guarantee):
11
+ # * permissions: contents: read (least privilege; do not widen).
12
+ # * The trusted-base extraction: the gate is run from the BASE branch's copy
13
+ # of check.mjs, not the PR's copy. A PR could otherwise strip its own
14
+ # guard-integrity check before it runs. Keep the `git show ... > file`,
15
+ # the `test -s` non-empty guard, and `set -euo pipefail` exactly as-is.
16
+ # * fetch-depth: 0 (the gate needs history to find the merge base; a shallow
17
+ # clone makes it fail closed instead of passing silently).
18
+ # * Both triggers: pull_request_target AND merge_group. pull_request_target
19
+ # is what makes GitHub load THIS workflow file from the base/default
20
+ # branch; `on: pull_request` would load the PR's copy, so a PR could
21
+ # rewrite the YAML to skip the gate and still publish a green
22
+ # "Build Guard" context. A merge queue re-runs required checks in the
23
+ # queue; omitting merge_group leaves queued PRs unguarded / stuck.
24
+ # * Checkout the BASE / default branch (the pull_request_target default).
25
+ # Do NOT set checkout `ref:` to the PR head — that would make the
26
+ # workspace the untrusted tree used to run scripts. Fetch the PR head
27
+ # SHA only as a git object for the gate's diff.
28
+ # * The pull_request_target `types:` list must keep `edited`. Every check
29
+ # below is computed against the BASE branch, and the required status is
30
+ # bound to the head SHA — so retargeting a PR to a different base leaves
31
+ # the previous base's green result standing for an unexamined range.
32
+ # `edited` is the only event GitHub fires for a base change (with
33
+ # changes.base), and the default types (opened, synchronize, reopened)
34
+ # do not include it. Re-running on `edited` re-reports this context for
35
+ # the same head SHA against the new base. Title/body edits also fire it;
36
+ # a redundant re-run is the intended cost.
37
+ # * The job `name:` is the status-check CONTEXT you require in branch
38
+ # protection. Keep it a stable literal ("Build Guard") — never an
39
+ # expression, or the required context name changes per run and can never
40
+ # be satisfied.
41
+ #
42
+ # CUSTOMIZE FREELY (safe to adapt to your project):
43
+ # * runs-on: swap the runner label for a self-hosted/larger runner.
44
+ # * timeout-minutes: raise/lower for your repo size.
45
+ # * ADD paths-filters ONLY with care. Filtering a REQUIRED check means PRs
46
+ # that touch no matching path never report the check and sit forever
47
+ # "Expected — Waiting for status". Recommended: do NOT paths-filter this
48
+ # workflow. If your team wants automerge without the guard blocking on
49
+ # kit-upgrade PRs (exit 2), use the two-context split documented in
50
+ # GUARD_SETUP.md instead of a paths-filter.
51
+ # ---------------------------------------------------------------------------
52
+
53
+ name: Build Guard
54
+
55
+ # All PRs (no branch filter) plus merge-queue runs. Do not add a branches
56
+ # filter unless you deliberately want some PRs unguarded.
57
+ #
58
+ # pull_request_target loads this YAML from the base branch. `edited` is
59
+ # load-bearing, not cosmetic: it is the event a base retarget fires, and
60
+ # without it the head SHA keeps the green this gate published for its former
61
+ # base. The other three are GitHub's defaults, restated because naming `types`
62
+ # at all replaces them.
63
+ on:
64
+ pull_request_target:
65
+ types: [opened, synchronize, reopened, edited]
66
+ merge_group:
67
+
68
+ # Cancel superseded runs: a new push to the same PR obsoletes the in-flight
69
+ # run, and the required status is bound to the new head SHA, so canceling the
70
+ # stale run cannot wedge the current head's check.
71
+ # pull_request_target sets github.ref to the BASE branch, so the group must
72
+ # key on the PR number (not github.ref) or every PR targeting the same base
73
+ # would share one slot and cancel each other.
74
+ concurrency:
75
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
76
+ cancel-in-progress: true
77
+
78
+ # Least privilege: the gate only reads the tree and git history.
79
+ # pull_request_target's default token is write-capable — this block is what
80
+ # pins it to read. Do not add pull-requests: write or secrets.
81
+ permissions:
82
+ contents: read
83
+
84
+ jobs:
85
+ build-guard:
86
+ # This literal is the status-check context you require in branch
87
+ # protection. Keep it stable and expression-free.
88
+ name: Build Guard
89
+ runs-on: ubuntu-latest
90
+ timeout-minutes: 10
91
+ steps:
92
+ # SHA-pinned (supply-chain): a mutable tag on a security-critical gate's
93
+ # own actions would let a retagged action compromise the gate.
94
+ # pull_request_target default ref is the base/default branch. Do not set
95
+ # `ref:` to the PR head — the workspace must stay the trusted base tree.
96
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
97
+ with:
98
+ # Full history so the gate can compute the merge base. A shallow
99
+ # clone makes the gate fail closed, not pass silently.
100
+ fetch-depth: 0
101
+
102
+ # check.mjs requires Node >= 24; the runner's ambient node may be older.
103
+ # Pin the runtime explicitly so the gate never depends on image defaults.
104
+ - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
105
+ with:
106
+ node-version: '24'
107
+
108
+ - name: Run Build Guard (trusted base copy)
109
+ # Fail closed on every error, unset variable, and pipe failure.
110
+ run: |
111
+ set -euo pipefail
112
+
113
+ # Resolve the base BRANCH name for both event types. Fail closed if
114
+ # it cannot be determined (a missing base must never empty the diff
115
+ # and skip every check).
116
+ if [ "${GITHUB_EVENT_NAME}" = "pull_request_target" ]; then
117
+ # pull_request_target exposes the base branch directly.
118
+ BASE_BRANCH="${GITHUB_BASE_REF:?Error: GITHUB_BASE_REF is empty on a pull_request_target event}"
119
+ PR_SHA="$(jq -r '.pull_request.head.sha // empty' "${GITHUB_EVENT_PATH}")"
120
+ if [ -z "${PR_SHA}" ]; then
121
+ echo "Error: could not resolve pull_request.head.sha from the event payload (fail closed)." >&2
122
+ exit 1
123
+ fi
124
+ PR_NUMBER="$(jq -r '.pull_request.number // empty' "${GITHUB_EVENT_PATH}")"
125
+ if [ -z "${PR_NUMBER}" ]; then
126
+ echo "Error: could not resolve pull_request.number from the event payload (fail closed)." >&2
127
+ exit 1
128
+ fi
129
+ elif [ "${GITHUB_EVENT_NAME}" = "merge_group" ]; then
130
+ # merge_group leaves GITHUB_BASE_REF empty; the base branch lives in
131
+ # the event payload as merge_group.base_ref (a full ref like
132
+ # refs/heads/main). Strip the refs/heads/ prefix.
133
+ BASE_REF_FULL="$(jq -r '.merge_group.base_ref // empty' "${GITHUB_EVENT_PATH}")"
134
+ if [ -z "${BASE_REF_FULL}" ]; then
135
+ echo "Error: could not resolve merge_group.base_ref from the event payload (fail closed)." >&2
136
+ exit 1
137
+ fi
138
+ BASE_BRANCH="${BASE_REF_FULL#refs/heads/}"
139
+ else
140
+ echo "Error: unsupported event '${GITHUB_EVENT_NAME}' for the Build Guard gate (fail closed)." >&2
141
+ exit 1
142
+ fi
143
+
144
+ if [ -z "${BASE_BRANCH}" ]; then
145
+ echo "Error: base branch resolved empty (fail closed)." >&2
146
+ exit 1
147
+ fi
148
+
149
+ # Fetch the base branch so origin/<base> is resolvable for the diff.
150
+ git fetch --no-tags origin "+refs/heads/${BASE_BRANCH}:refs/remotes/origin/${BASE_BRANCH}"
151
+
152
+ # pull_request_target workspace is the base tree. Fetch the PR head
153
+ # SHA as a git object only (GitHub's pull ref, including forks) and
154
+ # point HEAD at that object so the gate diffs against it. Do not
155
+ # checkout the PR — that would replace the trusted workspace.
156
+ if [ "${GITHUB_EVENT_NAME}" = "pull_request_target" ]; then
157
+ git fetch --no-tags origin "+refs/pull/${PR_NUMBER}/head:refs/build/pr-head"
158
+ FETCHED_SHA="$(git rev-parse --verify "refs/build/pr-head^{commit}")"
159
+ if [ "${FETCHED_SHA}" != "${PR_SHA}" ]; then
160
+ echo "Error: fetched PR head ${FETCHED_SHA} does not match event sha ${PR_SHA} (fail closed)." >&2
161
+ exit 1
162
+ fi
163
+ git update-ref --no-deref HEAD "${PR_SHA}"
164
+ fi
165
+
166
+ # TRUSTED BASE: run the gate from the BASE branch's committed copy of
167
+ # check.mjs, never the PR's copy. A PR cannot strip its own
168
+ # guard-integrity check this way. RUNNER_TEMP (per-job temp dir,
169
+ # always set on GitHub runners) avoids the predictable shared /tmp
170
+ # path a concurrent process on a persistent self-hosted runner could
171
+ # race or pre-create.
172
+ git show "origin/${BASE_BRANCH}:.build-project/guard/check.mjs" > "${RUNNER_TEMP}/guard-check.mjs"
173
+
174
+ # Non-empty guard: an empty file would run as a silent pass under node.
175
+ test -s "${RUNNER_TEMP}/guard-check.mjs"
176
+
177
+ # Point the extracted gate at the trusted workspace guard dir (config).
178
+ # The workspace is the BASE checkout, so config is not
179
+ # PR-controlled. The gate diffs git objects (HEAD = PR sha vs base).
180
+ # The gate's exit code passes straight through:
181
+ # 0 clean.
182
+ # 1 hard finding (secret / artifact path) -> blocks.
183
+ # 2 ONLY guard-machinery changed (exit 2) -> also blocks this check.
184
+ # Exit 2 is expected on legitimate kit-upgrade PRs and means "a human
185
+ # should review the gate change". Teams that want such PRs to
186
+ # automerge should split contexts per GUARD_SETUP.md rather than
187
+ # weaken this required check. Never mask the gate's exit code (no
188
+ # error suppression, no `|| true`).
189
+ BUILD_GUARD_DIR="$PWD/.build-project/guard" node "${RUNNER_TEMP}/guard-check.mjs"