@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,1146 @@
1
+ import {
2
+ normalizeReasoningEffortInput
3
+ } from "./chunk-4BTDUT2S.js";
4
+ import {
5
+ MAX_CONCURRENT_DEFAULT
6
+ } from "./chunk-U4DRS6ZW.js";
7
+
8
+ // src/core/config/schemas/config-schemas.ts
9
+ import { hostname } from "os";
10
+ import { z } from "zod";
11
+ var ConfigNumberSchema = z.preprocess((value) => {
12
+ if (typeof value === "string" && value.trim() !== "") {
13
+ const parsed = Number(value);
14
+ return Number.isNaN(parsed) ? value : parsed;
15
+ }
16
+ return value;
17
+ }, z.number());
18
+ var ConfigBooleanSchema = z.preprocess((value) => {
19
+ if (typeof value === "string") {
20
+ const normalized = value.trim().toLowerCase();
21
+ if (normalized === "true") return true;
22
+ if (normalized === "false") return false;
23
+ }
24
+ return value;
25
+ }, z.boolean());
26
+ function normalizeJudgeType(value) {
27
+ return typeof value === "string" ? value.trim().toLowerCase() : value;
28
+ }
29
+ var JudgeTypeSchema = z.preprocess(normalizeJudgeType, z.enum(["ai", "multi-lens"]));
30
+ var ModelChangeContextTypeSchema = z.enum(["cli_flag", "config_edit", "first_time"]);
31
+ var ModelFamilySchema = z.enum(["sonnet", "gpt", "glm", "kimi"]);
32
+ var ModelRoutingRouteSchema = z.object({
33
+ /**
34
+ * Execution provider (tool/facade) Build will run (e.g. codex/claude/cursor/copilot/opencode).
35
+ * Note: This is NOT the upstream provider/host.
36
+ */
37
+ engine: z.string(),
38
+ /** Upstream provider/host label for display/debugging (OpenAI/Anthropic/Z.ai/Moonshot/...) */
39
+ upstream: z.string().optional(),
40
+ /**
41
+ * Model template or literal model ID to pass to the execution provider.
42
+ *
43
+ * Supported placeholders:
44
+ * - {{latest}}: resolved best-available model for this engine+family request (deterministic, local)
45
+ * - {{family}}: model family (sonnet/gpt/glm/kimi)
46
+ * - {{version}}: resolved family version (e.g. "4.5", "5.2")
47
+ * - {{version_dash}}: resolved family version with '.' replaced by '-' (e.g. "4-5", "5-2")
48
+ */
49
+ modelTemplate: z.string().optional()
50
+ }).strict();
51
+ var ModelRoutingFailoverSchema = z.object({
52
+ enabled: z.boolean().optional(),
53
+ maxAttempts: z.number().int().min(1).max(10).optional()
54
+ }).optional();
55
+ var ModelRoutingPreferencesSchema = z.object({
56
+ /** Retired, still read this release (retired-config-keys.ts): ordered routes per family */
57
+ routes: z.record(ModelFamilySchema, z.array(ModelRoutingRouteSchema)).optional(),
58
+ failover: ModelRoutingFailoverSchema
59
+ // retired, still read: use execution.failover
60
+ }).optional();
61
+ var CursorConfigSchema = z.object({
62
+ enabled: z.boolean().optional(),
63
+ model: z.string().optional(),
64
+ aliases: z.object({
65
+ models: z.record(z.string(), z.string()).optional()
66
+ }).optional(),
67
+ preferences: z.object({
68
+ firstSeen: z.iso.datetime().optional(),
69
+ lastModelChange: z.iso.datetime().optional(),
70
+ userChosenDefault: z.string().optional(),
71
+ usageCount: z.number().optional(),
72
+ version: z.string().optional()
73
+ }).optional()
74
+ }).strict();
75
+ var ClaudeConfigSchema = z.object({
76
+ enabled: z.boolean().optional(),
77
+ model: z.string().optional(),
78
+ aliases: z.object({
79
+ models: z.record(z.string(), z.string()).optional()
80
+ }).optional()
81
+ }).strict();
82
+ var CodexConfigSchema = z.object({
83
+ enabled: z.boolean().optional(),
84
+ model: z.string().optional(),
85
+ aliases: z.object({
86
+ models: z.record(z.string(), z.string()).optional()
87
+ }).optional()
88
+ }).strict();
89
+ var CopilotConfigSchema = z.object({
90
+ enabled: z.boolean().optional(),
91
+ organization: z.string().optional(),
92
+ seat: z.string().optional(),
93
+ aliases: z.object({
94
+ models: z.record(z.string(), z.string()).optional()
95
+ }).optional()
96
+ }).strict();
97
+ var GeminiConfigSchema = z.object({
98
+ enabled: z.boolean().optional(),
99
+ model: z.string().optional(),
100
+ aliases: z.object({
101
+ models: z.record(z.string(), z.string()).optional()
102
+ }).optional()
103
+ }).loose();
104
+ var OpencodeConfigSchema = z.object({
105
+ enabled: z.boolean().optional(),
106
+ model: z.string().optional(),
107
+ aliases: z.object({
108
+ models: z.record(z.string(), z.string()).optional()
109
+ }).optional()
110
+ }).loose();
111
+ var GrokConfigSchema = z.object({
112
+ enabled: z.boolean().optional(),
113
+ model: z.string().optional(),
114
+ aliases: z.object({
115
+ models: z.record(z.string(), z.string()).optional()
116
+ }).optional()
117
+ }).loose();
118
+ var OpenrouterConfigSchema = z.object({
119
+ enabled: z.boolean().optional(),
120
+ model: z.string().optional(),
121
+ aliases: z.object({
122
+ models: z.record(z.string(), z.string()).optional()
123
+ }).optional()
124
+ }).loose();
125
+ var KiroConfigSchema = z.object({
126
+ enabled: z.boolean().optional(),
127
+ model: z.string().optional(),
128
+ aliases: z.object({
129
+ models: z.record(z.string(), z.string()).optional()
130
+ }).optional()
131
+ }).loose();
132
+ var AntigravityConfigSchema = z.object({
133
+ enabled: z.boolean().optional(),
134
+ model: z.string().optional(),
135
+ aliases: z.object({
136
+ models: z.record(z.string(), z.string()).optional()
137
+ }).optional()
138
+ }).loose();
139
+ var PiConfigSchema = z.object({
140
+ enabled: z.boolean().optional(),
141
+ model: z.string().optional(),
142
+ aliases: z.object({
143
+ models: z.record(z.string(), z.string()).optional()
144
+ }).optional()
145
+ }).loose();
146
+ var ProvidersConfigSchema = z.object({
147
+ claude: ClaudeConfigSchema.optional(),
148
+ codex: CodexConfigSchema.optional(),
149
+ cursor: CursorConfigSchema.optional(),
150
+ copilot: CopilotConfigSchema.optional(),
151
+ gemini: GeminiConfigSchema.optional(),
152
+ opencode: OpencodeConfigSchema.optional(),
153
+ grok: GrokConfigSchema.optional(),
154
+ openrouter: OpenrouterConfigSchema.optional(),
155
+ kiro: KiroConfigSchema.optional(),
156
+ antigravity: AntigravityConfigSchema.optional(),
157
+ pi: PiConfigSchema.optional()
158
+ }).strict();
159
+ var QualityConfigSchema = z.object({
160
+ // Legacy project config key accepted for backwards-compatible `build config set`.
161
+ enforce: ConfigBooleanSchema.optional(),
162
+ coverage: z.object({
163
+ enabled: ConfigBooleanSchema,
164
+ threshold: ConfigNumberSchema
165
+ }).optional(),
166
+ lint: z.object({
167
+ enabled: ConfigBooleanSchema
168
+ }).optional(),
169
+ security: z.object({
170
+ enabled: ConfigBooleanSchema
171
+ }).optional()
172
+ }).strict();
173
+ var LEGACY_REPO_LOCAL_TELEMETRY_DATABASE = ".build-project/telemetry/db/variants.db";
174
+ var TelemetryConfigSchema = z.object({
175
+ enabled: z.boolean().optional(),
176
+ /**
177
+ * DEPRECATED override. Set only to relocate telemetry outside the repository.
178
+ *
179
+ * Telemetry is written under the Build data root; there is no default value.
180
+ * A value equal to the historical repo-local default
181
+ * (`.build-project/telemetry/db/variants.db`) is ignored, and any other value is
182
+ * honored with a one-time deprecation warning.
183
+ */
184
+ database: z.string().optional(),
185
+ ephemeralReplication: z.boolean().optional(),
186
+ retention: z.object({
187
+ backups_days: z.number().positive().optional(),
188
+ backups_monthly_count: z.number().nonnegative().optional(),
189
+ backups_max_bytes: z.number().nonnegative().optional(),
190
+ logs_days: z.number().positive().optional(),
191
+ vacuum_on_cleanup: z.boolean().optional()
192
+ }).strict().optional()
193
+ }).strict();
194
+ var VariantsConfigSchema = z.object({
195
+ /**
196
+ * Removed by ADR-025 (variant strategy axis). Accepted for one release so an
197
+ * existing consumer config still loads; the value is ignored by resolution
198
+ * and reported once by the config validator.
199
+ */
200
+ strategies: z.record(
201
+ z.string(),
202
+ z.object({
203
+ weight: z.number()
204
+ })
205
+ ).optional(),
206
+ maxConcurrent: z.number().optional()
207
+ }).strict();
208
+ var ComplexityNumberSchema = z.union([
209
+ z.number(),
210
+ z.object({
211
+ low: z.number(),
212
+ medium: z.number(),
213
+ high: z.number()
214
+ })
215
+ ]);
216
+ var ReasoningEffortSchema = z.preprocess(
217
+ (value) => {
218
+ if (value === void 0 || value === null) return void 0;
219
+ const normalized = normalizeReasoningEffortInput(value);
220
+ return normalized ?? value;
221
+ },
222
+ z.enum(["low", "medium", "high", "xhigh", "max"])
223
+ );
224
+ var OptimizationVariantRecipeSchema = z.object({
225
+ provider: z.string().trim().min(1),
226
+ model: z.string().trim().min(1).optional(),
227
+ modelRole: z.string().trim().min(1).optional(),
228
+ fallbackModelRole: z.string().trim().min(1).optional(),
229
+ // Retired: still read this release.
230
+ reasoningEffort: ReasoningEffortSchema.optional(),
231
+ /** Removed by ADR-025; accepted for one release and ignored. */
232
+ strategy: z.string().trim().min(1).optional(),
233
+ mode: z.enum(["local", "cloud"]).optional()
234
+ }).strict().superRefine((recipe, ctx) => {
235
+ if (recipe.mode === "cloud") {
236
+ ctx.addIssue({
237
+ code: "custom",
238
+ path: ["mode"],
239
+ message: 'Cloud execution is not supported; use mode "local"'
240
+ });
241
+ }
242
+ });
243
+ var OptimizationModeRecipeSchema = z.object({
244
+ /** Retired: speed/cost still read it this release; quality ignores it. */
245
+ providerPreference: z.array(z.string().trim().min(1)).optional(),
246
+ modelRole: z.string().trim().min(1).optional(),
247
+ fallbackModelRole: z.string().trim().min(1).optional(),
248
+ // Retired: speed/cost still read it; quality ignores it.
249
+ reasoningEffort: ReasoningEffortSchema.optional(),
250
+ variants: z.array(OptimizationVariantRecipeSchema).optional(),
251
+ parallel: ComplexityNumberSchema.optional(),
252
+ maxConcurrent: ComplexityNumberSchema.optional(),
253
+ earlyExit: z.boolean().optional(),
254
+ streamResults: z.boolean().optional(),
255
+ compete: z.boolean().optional(),
256
+ aiJudge: z.boolean().optional(),
257
+ synthesize: z.boolean().optional(),
258
+ autoloop: z.boolean().optional(),
259
+ autoloopMaxIterations: ComplexityNumberSchema.optional(),
260
+ autoloopTimeboxMinutes: ComplexityNumberSchema.optional(),
261
+ autoloopMinProgress: z.number().min(0).max(1).optional(),
262
+ autoloopJudge: z.boolean().optional(),
263
+ autoloopQualityGates: z.boolean().optional(),
264
+ // Phase B schema catch-up: runtime/flag concepts that already exist
265
+ // (`--autoloop-completion-promise`, `--autoloop-completion-signal`,
266
+ // `--autoloop-validation`) but were not previously schema-covered.
267
+ autoloopCompletionPromise: z.string().optional(),
268
+ autoloopCompletionSignal: z.string().optional(),
269
+ autoloopValidationMode: z.enum(["heuristic", "none", "deterministic"]).optional()
270
+ }).strict();
271
+ var OptimizationAutoloopRecipeSchema = z.object({
272
+ // Retired semanticVerifier* keys: still read this release (retired-config-keys.ts).
273
+ semanticVerifierProviderPreference: z.array(z.string().trim().min(1)).optional(),
274
+ semanticVerifierProvider: z.string().trim().min(1).optional(),
275
+ semanticVerifierModel: z.string().trim().min(1).optional(),
276
+ semanticVerifierModelRole: z.string().trim().min(1).optional(),
277
+ fallbackModelRole: z.string().trim().min(1).optional()
278
+ // Retired: still read this release.
279
+ }).strict();
280
+ var OptimizationConfigSchema = z.object({
281
+ reasoningEffortByRole: z.record(z.string().trim().min(1), ReasoningEffortSchema).optional(),
282
+ speed: OptimizationModeRecipeSchema.optional(),
283
+ quality: OptimizationModeRecipeSchema.optional(),
284
+ cost: OptimizationModeRecipeSchema.optional(),
285
+ autoloop: OptimizationAutoloopRecipeSchema.optional()
286
+ }).strict();
287
+ var ExecutionContractRefSchema = z.object({
288
+ id: z.string().trim().min(1),
289
+ version: z.string().trim().min(1).optional()
290
+ }).strict();
291
+ var PlanExecuteBlockerModeSchema = z.enum(["non-interactive", "interactive"]);
292
+ var CompeteConfigSchema = z.record(z.string(), z.unknown()).optional();
293
+ var PlanExecuteConfigSchema = z.object({
294
+ blockerMode: PlanExecuteBlockerModeSchema.optional()
295
+ }).strict();
296
+ var WorktreeConfigSchema = z.object({
297
+ poolSize: z.number().optional(),
298
+ maxConcurrent: z.number().optional(),
299
+ cleanupInterval: z.number().optional(),
300
+ healthCheckInterval: z.number().optional(),
301
+ /**
302
+ * Repo-root-relative gitignored env files (for example `.env`) to copy into
303
+ * variant, synthesis and baseline worktrees. Off when unset. Project config
304
+ * is honored only for a trusted project root (secrets boundary).
305
+ */
306
+ copyEnvFiles: z.array(z.string()).optional()
307
+ }).strict();
308
+ var FuzzyFileMatchingSchema = z.object({
309
+ enabled: z.boolean().optional(),
310
+ basenameMatch: z.boolean().optional(),
311
+ normalizedPath: z.boolean().optional(),
312
+ caseInsensitive: z.boolean().optional()
313
+ }).strict();
314
+ var DefaultsConfigSchema = z.object({
315
+ provider: z.string().optional(),
316
+ /** Removed by ADR-025; accepted for one release and ignored. */
317
+ strategy: z.string().optional(),
318
+ model: z.string().optional(),
319
+ /** Removed; accepted for one release and ignored. */
320
+ routingPolicy: z.enum(["strict", "reroute"]).optional(),
321
+ providerOrder: z.array(z.string()).optional(),
322
+ synthesis: z.object({
323
+ provider: z.string().optional(),
324
+ model: z.string().optional(),
325
+ reasoningEffort: ReasoningEffortSchema.optional(),
326
+ /** Compare a validated synthesis with the judged winner before shipping it (default true). */
327
+ headToHead: z.boolean().optional(),
328
+ /** Retired: still read this release; use defaults.providerOrder. */
329
+ providerOrder: z.array(z.string()).optional()
330
+ }).optional(),
331
+ splitter: z.object({
332
+ provider: z.string().optional(),
333
+ model: z.string().optional(),
334
+ reasoningEffort: ReasoningEffortSchema.optional()
335
+ }).optional(),
336
+ intent: z.object({
337
+ decompositionHints: z.array(z.string()).optional(),
338
+ nonGoals: z.array(z.string()).optional(),
339
+ disableRepoContext: z.boolean().optional(),
340
+ decomposition: z.object({
341
+ /** Retired: still read this release; use defaults.providerOrder. */
342
+ providerOrder: z.array(z.string()).optional(),
343
+ /** Removed; accepted for one release and ignored. */
344
+ routingPolicy: z.enum(["strict", "reroute"]).optional(),
345
+ /** Never supported; accepted for one release and ignored. */
346
+ model: z.unknown().optional()
347
+ }).optional()
348
+ }).optional(),
349
+ judge: z.object({
350
+ type: JudgeTypeSchema.optional(),
351
+ provider: z.string().optional(),
352
+ model: z.string().optional(),
353
+ reasoningEffort: ReasoningEffortSchema.optional(),
354
+ /** Removed; accepted for one release and ignored. */
355
+ providerOrder: z.array(z.string()).optional()
356
+ }).optional(),
357
+ providers: z.record(
358
+ z.string(),
359
+ z.object({
360
+ model: z.string().optional(),
361
+ /** Overrides the providers.yaml fast slot for anything that wants a fast model. */
362
+ fastModel: z.string().optional(),
363
+ reasoningEffort: ReasoningEffortSchema.optional(),
364
+ /** Removed by ADR-025; accepted for one release and ignored. */
365
+ strategy: z.string().optional(),
366
+ modelOrder: z.array(z.string()).optional()
367
+ // Retired: still read; set `model` instead.
368
+ })
369
+ ).optional()
370
+ }).strict();
371
+ var AutomationConfigSchema = z.object({
372
+ flywheel: z.object({
373
+ merge: z.object({
374
+ biomeRepair: z.boolean().optional()
375
+ }).optional()
376
+ }).optional()
377
+ }).strict();
378
+ var SyncConfigSchema = z.object({
379
+ routeMain: z.boolean().optional(),
380
+ autoPublish: z.boolean().optional(),
381
+ protectMain: z.enum(["off", "warn", "confirm", "block"]).optional(),
382
+ checkoutMain: z.boolean().optional()
383
+ }).strict();
384
+ var JudgeConfigSchema = z.object({
385
+ /** Custom prompt template for AI Judge evaluation */
386
+ prompt: z.string().optional(),
387
+ /** Provider to use for AI Judge (defaults to claude) */
388
+ provider: z.string().optional(),
389
+ /** Model to use for AI Judge (defaults to resolved from config) */
390
+ model: z.string().optional(),
391
+ /** Reasoning effort applied to judge calls when the tier does not override it. */
392
+ reasoningEffort: ReasoningEffortSchema.optional(),
393
+ /**
394
+ * Thinking budget token hint for judge execution (provider-specific).
395
+ *
396
+ * For Claude CLI, Build uses env-based toggles (e.g. MAX_THINKING_TOKENS / ANTHROPIC_MAX_THINKING_TOKENS).
397
+ */
398
+ thinkingBudgetTokens: z.number().int().min(0).optional(),
399
+ /**
400
+ * When true, Build will fail the judge call if thinking cannot be verified.
401
+ * Intended for "always thinking" enforcement in judge evaluation.
402
+ */
403
+ requireThinking: z.boolean().optional(),
404
+ /**
405
+ * Per-judge overrides. These take precedence over the top-level judge.* fields.
406
+ */
407
+ ai: z.object({
408
+ provider: z.string().optional(),
409
+ model: z.string().optional(),
410
+ reasoningEffort: ReasoningEffortSchema.optional(),
411
+ thinkingBudgetTokens: z.number().int().min(0).optional(),
412
+ requireThinking: z.boolean().optional()
413
+ }).optional(),
414
+ multiLens: z.object({
415
+ provider: z.string().optional(),
416
+ model: z.string().optional(),
417
+ reasoningEffort: ReasoningEffortSchema.optional(),
418
+ thinkingBudgetTokens: z.number().int().min(0).optional(),
419
+ requireThinking: z.boolean().optional()
420
+ }).optional(),
421
+ matrixEscalation: z.object({
422
+ closeCallMargin: z.number().min(0).optional(),
423
+ borderlineMargin: z.number().min(0).optional(),
424
+ confidenceThreshold: z.number().min(0).max(1).optional()
425
+ }).optional(),
426
+ /**
427
+ * Retired: the multi-agent judge tier. Accepted so existing configs still load;
428
+ * nothing reads it.
429
+ */
430
+ multiAgent: z.unknown().optional().describe("Retired. Accepted and ignored.")
431
+ }).strict();
432
+ var ProviderTempCleanupConfigSchema = z.object({
433
+ roots: z.array(z.string()).optional(),
434
+ maxAgeHours: z.number().min(1).optional()
435
+ }).strict();
436
+ var PruneRetentionConfigSchema = z.object({
437
+ ttls: z.record(z.string(), z.number().int().min(1)).optional()
438
+ }).strict();
439
+ var BranchCleanupConfigSchema = z.object({
440
+ automatic: z.boolean().optional(),
441
+ idleDays: z.number().int().min(1).optional(),
442
+ holdDays: z.number().int().min(1).optional()
443
+ }).strict();
444
+ var CleanupConfigSchema = z.object({
445
+ providerTemp: ProviderTempCleanupConfigSchema.optional(),
446
+ prune: PruneRetentionConfigSchema.optional(),
447
+ branches: BranchCleanupConfigSchema.optional()
448
+ }).strict();
449
+ var ExecutionTransportModeSchema = z.enum([
450
+ "auto",
451
+ "headless",
452
+ "tmux-exec",
453
+ "interactive"
454
+ ]);
455
+ var ExecutionTransportConfigSchema = z.object({
456
+ default: ExecutionTransportModeSchema.optional(),
457
+ providers: z.record(z.string(), ExecutionTransportModeSchema).optional()
458
+ }).strict();
459
+ var ExecutionConfigSchema = z.object({
460
+ // Legacy project config key accepted for backwards-compatible `build config set`.
461
+ timeout: ConfigNumberSchema.optional(),
462
+ defaultTimeout: ConfigNumberSchema.optional(),
463
+ concurrencyMultiplier: ConfigNumberSchema.optional(),
464
+ transport: ExecutionTransportConfigSchema.optional(),
465
+ fuzzyFileMatching: FuzzyFileMatchingSchema.optional(),
466
+ failover: z.boolean().optional(),
467
+ // failover for run --model and read-only calls; default true
468
+ biomeRepair: z.object({
469
+ provider: z.string().optional(),
470
+ model: z.string().optional(),
471
+ reasoningEffort: ReasoningEffortSchema.optional()
472
+ }).optional()
473
+ }).strict();
474
+ var FeaturesConfigSchema = z.object({
475
+ competeZeroFlag: z.boolean().optional()
476
+ }).loose();
477
+ var RoutingModeSchema = z.enum(["frugal", "balanced", "quality", "speed"]);
478
+ var TaskTypeTraitsSchema = z.object({
479
+ code: z.boolean().optional(),
480
+ reasoning: z.boolean().optional(),
481
+ longContext: z.boolean().optional(),
482
+ fast: z.boolean().optional(),
483
+ thinking: z.boolean().optional()
484
+ }).strict();
485
+ var TaskTypePreferenceSchema = z.object({
486
+ traits: TaskTypeTraitsSchema.default({}),
487
+ preferredTier: z.enum(["premium", "standard", "economy"]).optional()
488
+ }).strict();
489
+ var TierThresholdsSchema = z.object({
490
+ basicMax: z.number().min(0.05).max(0.95).optional(),
491
+ standardMax: z.number().min(0.05).max(0.95).optional()
492
+ }).strict();
493
+ var RoutingBehaviorSchema = z.enum(["legacy", "adaptive"]);
494
+ var RoutingConfigSchema = z.object({
495
+ behavior: RoutingBehaviorSchema.optional(),
496
+ mode: RoutingModeSchema.optional(),
497
+ taskTypePreferences: z.record(z.string(), TaskTypePreferenceSchema).optional(),
498
+ thresholds: TierThresholdsSchema.optional()
499
+ }).strict();
500
+ var VerificationConfigSchema = z.object({
501
+ format: z.union([z.string(), z.array(z.string())]).optional(),
502
+ build: z.union([z.string(), z.array(z.string())]).optional(),
503
+ typecheck: z.union([z.string(), z.array(z.string())]).optional(),
504
+ lint: z.union([z.string(), z.array(z.string())]).optional(),
505
+ test: z.union([z.string(), z.array(z.string())]).optional(),
506
+ audit: z.union([z.string(), z.array(z.string())]).optional(),
507
+ coverage: z.union([z.string(), z.array(z.string())]).optional()
508
+ }).optional();
509
+ function isSafeCiAuthorityPathEntry(value) {
510
+ const raw = value.trim();
511
+ if (!raw || raw === "." || raw === "./" || raw.includes("\0")) return false;
512
+ if (raw.startsWith("/") || raw.startsWith("\\")) return false;
513
+ if (raw.startsWith("\\\\")) return false;
514
+ if (/^[a-zA-Z]:/.test(raw)) return false;
515
+ const withForward = raw.replace(/\\/g, "/").replace(/^\.\//, "");
516
+ if (!withForward || withForward === ".") return false;
517
+ if (withForward.startsWith("/") || withForward.startsWith("//")) return false;
518
+ if (/^[a-zA-Z]:/.test(withForward)) return false;
519
+ const segments = withForward.split("/");
520
+ if (segments.includes("..")) return false;
521
+ const cleaned = segments.filter((segment) => segment.length > 0 && segment !== ".").join("/");
522
+ if (!cleaned || cleaned === ".") return false;
523
+ return true;
524
+ }
525
+ var SAFE_CI_REPO_RELATIVE_PATH_PATTERN = /^(?!\s*$)(?!\s*(?:\.[/\\]+)*\.(?:[/\\]+)?\s*$)(?!\s*[A-Za-z]:)(?!\s*[/\\])(?!\s*\.\.(?:[/\\]|$))(?!.*(?:^|[/\\])\.\.(?:[/\\]|$))[^\0]+$/;
526
+ var SAFE_CI_PATH_ENTRY_MESSAGE = "path entries must be repo-relative (no absolute, UNC, drive, empty, dot-only, or parent traversal)";
527
+ var CiSafePathListSchema = z.array(
528
+ z.string().trim().min(1).max(500).regex(SAFE_CI_REPO_RELATIVE_PATH_PATTERN, SAFE_CI_PATH_ENTRY_MESSAGE).refine(isSafeCiAuthorityPathEntry, {
529
+ message: SAFE_CI_PATH_ENTRY_MESSAGE
530
+ })
531
+ ).max(64);
532
+ var CiValidationProfileSchema = z.object({
533
+ id: z.string().trim().regex(
534
+ /^[a-z][a-z0-9_-]{0,31}$/,
535
+ "validation profile id must be a lowercase identifier (not reserved full)"
536
+ ).refine((id) => id !== "full", {
537
+ message: "validation profile id must not be the reserved value 'full'"
538
+ }),
539
+ include: CiSafePathListSchema.min(1).max(32),
540
+ extensions: z.array(
541
+ z.string().trim().regex(
542
+ /^\.[A-Za-z0-9_+.-]{1,32}$/,
543
+ "extensions must be case-sensitive tokens with a leading dot (e.g. .md)"
544
+ )
545
+ ).min(1).max(16)
546
+ }).strict();
547
+ var CiConfigSchema = z.object({
548
+ enabled: z.boolean().optional(),
549
+ commands: z.union([z.string(), z.array(z.string())]).optional(),
550
+ authorityPaths: CiSafePathListSchema.optional(),
551
+ authorityPathsComplete: z.boolean().optional(),
552
+ /**
553
+ * Trusted-base exact paths/prefixes eligible for automatic merge.
554
+ * Separate from validation authority; empty/omitted is fail-closed.
555
+ */
556
+ autoMergePaths: CiSafePathListSchema.optional(),
557
+ /**
558
+ * Trusted-base validation profiles for optional narrowing (max 8).
559
+ * Unique ids; nonempty include paths and extensions. Runtime fail-closes
560
+ * on overlap, incomplete authority, or non-regular change metadata.
561
+ */
562
+ validationProfiles: z.array(CiValidationProfileSchema).max(8).optional(),
563
+ statusContext: z.string().trim().min(1).max(100).optional(),
564
+ autoMerge: z.boolean().optional(),
565
+ mergeMethod: z.enum(["merge", "squash", "rebase"]).optional(),
566
+ maxConcurrent: z.number().int().min(1).max(8).optional(),
567
+ /**
568
+ * Let the local merge queue land waiting reviewed PRs as one batch PR
569
+ * through one gate. Default false.
570
+ */
571
+ mergeBatching: z.boolean().optional(),
572
+ /**
573
+ * Let merge-queue workers on different hosts take turns landing through a lease ref on the
574
+ * remote, so one host's landing does not discard another's gate. Efficiency only; default
575
+ * true. BUILD_LOCAL_CI_LANDING_LEASE=0 also turns it off.
576
+ */
577
+ landingLease: z.boolean().optional()
578
+ }).strict().superRefine((value, ctx) => {
579
+ if (value.authorityPathsComplete === true) {
580
+ const paths = value.authorityPaths ?? [];
581
+ if (paths.length === 0) {
582
+ ctx.addIssue({
583
+ code: z.ZodIssueCode.custom,
584
+ path: ["authorityPathsComplete"],
585
+ message: "authorityPathsComplete=true requires at least one valid authorityPaths entry"
586
+ });
587
+ }
588
+ }
589
+ const profiles = value.validationProfiles ?? [];
590
+ const seenIds = /* @__PURE__ */ new Set();
591
+ for (let index = 0; index < profiles.length; index += 1) {
592
+ const id = profiles[index]?.id;
593
+ if (!id) continue;
594
+ if (seenIds.has(id)) {
595
+ ctx.addIssue({
596
+ code: z.ZodIssueCode.custom,
597
+ path: ["validationProfiles", index, "id"],
598
+ message: `duplicate validation profile id '${id}'`
599
+ });
600
+ }
601
+ seenIds.add(id);
602
+ }
603
+ }).optional();
604
+ var ProgressNarrationConfigSchema = z.object({
605
+ enabled: z.boolean().optional(),
606
+ provider: z.string().trim().min(1).optional(),
607
+ model: z.string().trim().min(1).optional(),
608
+ minIntervalMs: z.int().positive().max(6e5).optional(),
609
+ maxAgeMs: z.int().positive().max(6e5).optional(),
610
+ maxChars: z.int().positive().max(160).optional(),
611
+ timeoutMs: z.int().positive().max(12e4).optional(),
612
+ maxConsecutiveFailures: z.int().positive().max(20).optional()
613
+ }).strict().optional();
614
+ var AskPresetSchema = z.object({
615
+ to: z.string().optional(),
616
+ model: z.string().optional(),
617
+ effort: z.string().optional()
618
+ }).strict();
619
+ var InheritanceConfigSchema = z.object({
620
+ automated: z.enum(["build", "native", "native+build"]).optional(),
621
+ ask: z.enum(["build", "native", "native+build"]).optional()
622
+ }).strict().optional();
623
+ var AskConfigSchema = z.object({
624
+ presets: z.record(
625
+ z.string().regex(/^[a-z0-9][a-z0-9-]{0,63}$/, "preset names are kebab-case"),
626
+ AskPresetSchema
627
+ ).optional(),
628
+ /**
629
+ * Time budget for one consult, in whole seconds. Wall-clock only — no cost,
630
+ * spend, or token figure participates ([B5]). Defaults live in
631
+ * src/core/ask/ask-budget.ts (hard 900, idle warn 300, idle kill 600,
632
+ * stdin deadline 30).
633
+ */
634
+ timeoutSeconds: z.int().positive().optional(),
635
+ idleWarnSeconds: z.int().positive().optional(),
636
+ idleKillSeconds: z.int().positive().optional(),
637
+ /** Deadline for the non-TTY stdin read (first byte through EOF). */
638
+ stdinDeadlineSeconds: z.int().positive().optional()
639
+ }).strict().optional();
640
+ var RolesSubagentsSchema = z.preprocess(
641
+ (value) => {
642
+ if (typeof value === "string") {
643
+ const normalized = value.trim().toLowerCase();
644
+ if (normalized === "advisory" || normalized === "off") {
645
+ return normalized;
646
+ }
647
+ if (normalized !== "") {
648
+ const parsed = Number(normalized);
649
+ return Number.isNaN(parsed) ? value : parsed;
650
+ }
651
+ }
652
+ return value;
653
+ },
654
+ z.union([z.int().positive(), z.literal("advisory"), z.literal("off")])
655
+ );
656
+ var RolesReviewerGateSchema = z.enum(["off", "advisory", "high-severity-blocks"]);
657
+ var RolesReviewerThresholdSchema = z.enum(["critical", "high", "medium", "low"]);
658
+ var RolesReviewerPolicySchema = z.enum([
659
+ "off",
660
+ "advisory",
661
+ "block:critical",
662
+ "block:high",
663
+ "block:medium",
664
+ "block:low",
665
+ "repair:critical",
666
+ "repair:high",
667
+ "repair:medium",
668
+ "repair:low"
669
+ ]);
670
+ var RolesExecutorTransportSchema = z.enum(["auto", "headless", "tmux-exec"]);
671
+ var RolesReasoningEffortSchema = ReasoningEffortSchema;
672
+ var RolesOrchestratorSchema = z.object({
673
+ provider: z.string().optional(),
674
+ model: z.string().optional(),
675
+ modelRole: z.string().optional(),
676
+ fallbackModelRole: z.string().optional(),
677
+ // Retired: still read this release.
678
+ reasoningEffort: RolesReasoningEffortSchema.optional(),
679
+ /** Removed; accepted for one release and ignored. */
680
+ candidates: z.unknown().optional(),
681
+ /** Removed; accepted for one release and ignored. */
682
+ onExhausted: z.unknown().optional()
683
+ }).strict().superRefine((value, ctx) => {
684
+ if (!value.provider && (value.model || value.modelRole || value.fallbackModelRole)) {
685
+ ctx.addIssue({
686
+ code: "custom",
687
+ path: ["provider"],
688
+ message: "provider is required when orchestrator model or modelRole is configured"
689
+ });
690
+ }
691
+ });
692
+ var RolesExecutorSchema = z.object({
693
+ provider: z.string().optional(),
694
+ model: z.string().optional(),
695
+ modelRole: z.string().optional(),
696
+ subagents: RolesSubagentsSchema.optional(),
697
+ transport: RolesExecutorTransportSchema.optional(),
698
+ reasoningEffort: RolesReasoningEffortSchema.optional(),
699
+ /** Removed; accepted for one release and ignored. */
700
+ candidates: z.unknown().optional(),
701
+ /** Removed; accepted for one release and ignored. */
702
+ onExhausted: z.unknown().optional()
703
+ }).strict();
704
+ var RolesReviewerSchema = z.object({
705
+ provider: z.string().optional(),
706
+ model: z.string().optional(),
707
+ modelRole: z.string().optional(),
708
+ policy: RolesReviewerPolicySchema.optional(),
709
+ gate: RolesReviewerGateSchema.optional(),
710
+ threshold: RolesReviewerThresholdSchema.optional(),
711
+ /**
712
+ * Retired: still read this release; use `provider` or defaults.providerOrder.
713
+ * Preferred provider ids for automatic reviewer selection (highest first),
714
+ * then the remaining enabled providers in registry order.
715
+ */
716
+ providerPreference: z.array(z.string().trim().min(1)).optional(),
717
+ reasoningEffort: RolesReasoningEffortSchema.optional(),
718
+ /** Removed; accepted for one release and ignored. */
719
+ candidates: z.unknown().optional(),
720
+ /** Removed; accepted for one release and ignored. */
721
+ onExhausted: z.unknown().optional()
722
+ }).strict();
723
+ var RolesConfigSchema = z.object({
724
+ orchestrator: RolesOrchestratorSchema.optional(),
725
+ executor: RolesExecutorSchema.optional(),
726
+ reviewer: RolesReviewerSchema.optional()
727
+ }).strict();
728
+ var ProviderInvocationConfigSchema = z.object({
729
+ /**
730
+ * Absolute directory roots under which invoke workingDirectory must resolve.
731
+ * When omitted, invoke defaults to the process cwd realpath as the sole root.
732
+ * Dangerous roots (`/`, `$HOME`, system tmp, etc.) are always refused.
733
+ */
734
+ allowedRoots: z.array(z.string().min(1)).optional()
735
+ }).strict();
736
+ var GitAttributionModeSchema = z.enum(["allow", "human-only"]);
737
+ var GitMessageStyleSchema = z.enum(["plain", "conventional"]);
738
+ var GitConfigSchema = z.object({
739
+ attribution: GitAttributionModeSchema.optional(),
740
+ messageStyle: GitMessageStyleSchema.optional()
741
+ }).strict();
742
+ var BuildConfigSchema = z.object({
743
+ $schema: z.string().optional(),
744
+ defaultProvider: z.string().optional(),
745
+ providers: ProvidersConfigSchema.optional(),
746
+ quality: QualityConfigSchema.optional(),
747
+ telemetry: TelemetryConfigSchema.optional(),
748
+ variants: VariantsConfigSchema.optional(),
749
+ optimization: OptimizationConfigSchema.optional(),
750
+ execution: ExecutionConfigSchema.optional(),
751
+ worktree: WorktreeConfigSchema.optional(),
752
+ defaults: DefaultsConfigSchema.optional(),
753
+ compete: CompeteConfigSchema,
754
+ planExecute: PlanExecuteConfigSchema.optional(),
755
+ routing: RoutingConfigSchema.optional(),
756
+ automation: AutomationConfigSchema.optional(),
757
+ judge: JudgeConfigSchema.optional(),
758
+ sync: SyncConfigSchema.optional(),
759
+ features: FeaturesConfigSchema.optional(),
760
+ cleanup: CleanupConfigSchema.optional(),
761
+ verification: VerificationConfigSchema,
762
+ ci: CiConfigSchema,
763
+ progressNarration: ProgressNarrationConfigSchema,
764
+ ask: AskConfigSchema,
765
+ inheritance: InheritanceConfigSchema,
766
+ roles: RolesConfigSchema.optional(),
767
+ providerInvocation: ProviderInvocationConfigSchema.optional(),
768
+ git: GitConfigSchema.optional()
769
+ }).strip();
770
+ var KNOWN_BUILD_CONFIG_ROOTS = Object.keys(BuildConfigSchema.shape);
771
+ var FirstTimeSetupV2StateSchema = z.object({
772
+ version: z.literal(2),
773
+ defaultsInitialized: z.boolean(),
774
+ defaultsInitializedAt: z.iso.datetime().optional(),
775
+ completed: z.boolean(),
776
+ completedAt: z.iso.datetime().optional(),
777
+ readyProviderIds: z.array(z.string().min(1))
778
+ }).passthrough().refine((state) => !state.completed || state.readyProviderIds.length > 0, {
779
+ message: "Completed first-run state requires at least one ready provider",
780
+ path: ["readyProviderIds"]
781
+ }).refine((state) => !state.completed || state.defaultsInitialized, {
782
+ message: "Completed first-run state requires initialized defaults",
783
+ path: ["defaultsInitialized"]
784
+ });
785
+ var LegacyFirstTimeSetupStateSchema = z.object({
786
+ version: z.never().optional(),
787
+ completed: z.boolean(),
788
+ timestamp: z.iso.datetime().optional(),
789
+ provider: z.string().optional()
790
+ }).passthrough();
791
+ var FirstTimeSetupStateSchema = z.union([
792
+ FirstTimeSetupV2StateSchema,
793
+ LegacyFirstTimeSetupStateSchema
794
+ ]);
795
+ var UserPreferencesSchema = z.object({
796
+ version: z.string(),
797
+ userId: z.string(),
798
+ modelRouting: ModelRoutingPreferencesSchema,
799
+ preferences: z.object({
800
+ cursor: z.object({
801
+ defaultModel: z.string(),
802
+ userChosenDefault: z.string().optional(),
803
+ lastModelChange: z.iso.datetime().optional(),
804
+ firstTimeSetup: z.object({
805
+ completed: z.boolean(),
806
+ timestamp: z.iso.datetime().optional(),
807
+ autoModelChosen: z.boolean().optional()
808
+ }),
809
+ usageHistory: z.object({
810
+ lastUsed: z.string().optional(),
811
+ usageCount: z.number(),
812
+ modelChanges: z.array(
813
+ z.object({
814
+ from: z.string(),
815
+ to: z.string(),
816
+ timestamp: z.iso.datetime(),
817
+ context: ModelChangeContextTypeSchema
818
+ })
819
+ ).optional()
820
+ })
821
+ })
822
+ }),
823
+ globalDefaults: z.object({
824
+ cursorModel: z.string(),
825
+ defaultProvider: z.string().optional(),
826
+ defaultModel: z.string().optional(),
827
+ aiJudgeModel: z.string().optional()
828
+ }),
829
+ migrations: z.object({
830
+ lastAppliedVersion: z.string()
831
+ }),
832
+ firstTimeSetup: FirstTimeSetupStateSchema.optional()
833
+ });
834
+ var SystemConfigSchema = z.object({
835
+ providers: z.object({
836
+ cursor: z.object({
837
+ enabled: z.boolean(),
838
+ model: z.string(),
839
+ systemDefaults: z.object({
840
+ autoModelForNewUsers: z.boolean(),
841
+ allowUserOverride: z.boolean(),
842
+ restrictedModels: z.array(z.string())
843
+ })
844
+ })
845
+ })
846
+ });
847
+ var ConfigSourceTypeSchema = z.enum([
848
+ "cli",
849
+ "project",
850
+ "user",
851
+ "system",
852
+ "default",
853
+ "env",
854
+ "profile",
855
+ "merged"
856
+ ]);
857
+ var DEFAULT_CONFIG = {
858
+ providers: {
859
+ claude: {
860
+ enabled: true
861
+ // model omitted: resolved at runtime from providers.yaml registry default
862
+ },
863
+ codex: {
864
+ enabled: true
865
+ // model omitted: resolved at runtime from providers.yaml registry default
866
+ },
867
+ cursor: {
868
+ enabled: true
869
+ // model omitted: resolved at runtime from providers.yaml registry default
870
+ }
871
+ },
872
+ quality: {
873
+ coverage: {
874
+ enabled: true,
875
+ threshold: 80
876
+ },
877
+ lint: {
878
+ enabled: true
879
+ },
880
+ security: {
881
+ enabled: true
882
+ }
883
+ },
884
+ // `database` is deliberately omitted: telemetry resolves to the Build data
885
+ // root, and a default here would be written into every generated config and
886
+ // then honored as a repo-local override.
887
+ telemetry: {
888
+ enabled: true
889
+ },
890
+ // No provider lists or panels: speed and cost follow the provider order, quality
891
+ // (best) runs its first 3 installed providers, and the is-it-done check runs on
892
+ // the provider that did the work.
893
+ optimization: {
894
+ speed: {
895
+ modelRole: "fast",
896
+ parallel: { low: 2, medium: 3, high: 4 },
897
+ maxConcurrent: { low: 2, medium: 3, high: 6 },
898
+ earlyExit: true,
899
+ streamResults: true
900
+ },
901
+ quality: {
902
+ parallel: { low: 2, medium: 3, high: 4 },
903
+ maxConcurrent: { low: 2, medium: 3, high: 4 },
904
+ aiJudge: true,
905
+ synthesize: true,
906
+ earlyExit: true,
907
+ streamResults: true,
908
+ autoloop: true,
909
+ autoloopMaxIterations: { low: 3, medium: 4, high: 5 },
910
+ autoloopTimeboxMinutes: { low: 45, medium: 60, high: 90 },
911
+ autoloopMinProgress: 0.15,
912
+ autoloopJudge: true,
913
+ autoloopQualityGates: true
914
+ },
915
+ cost: {
916
+ modelRole: "fast",
917
+ compete: false,
918
+ maxConcurrent: 1,
919
+ autoloop: false
920
+ }
921
+ },
922
+ execution: {
923
+ defaultTimeout: 30,
924
+ concurrencyMultiplier: 2,
925
+ fuzzyFileMatching: {
926
+ enabled: false,
927
+ // Opt-in for backwards compatibility
928
+ basenameMatch: true,
929
+ normalizedPath: true,
930
+ caseInsensitive: false
931
+ }
932
+ },
933
+ planExecute: {
934
+ blockerMode: "non-interactive"
935
+ },
936
+ worktree: {
937
+ poolSize: 4,
938
+ maxConcurrent: MAX_CONCURRENT_DEFAULT,
939
+ cleanupInterval: 36e5,
940
+ // 1 hour
941
+ healthCheckInterval: 3e5
942
+ // 5 minutes
943
+ },
944
+ sync: {
945
+ routeMain: false,
946
+ // Push directly to main; QG self-heals failures via fix PRs
947
+ autoPublish: false,
948
+ // Publishing a new branch requires an explicit user preference or --publish
949
+ protectMain: "confirm",
950
+ // Prompt on protected branches; block non-interactive commits by default
951
+ checkoutMain: false
952
+ // Auto-checkout main after successful sync
953
+ },
954
+ routing: {
955
+ behavior: "legacy",
956
+ mode: "balanced"
957
+ }
958
+ };
959
+ var DEFAULT_USER_PREFERENCES = {
960
+ version: "1.0",
961
+ userId: `${process.env.USER || "unknown"}@${hostname()}`,
962
+ preferences: {
963
+ cursor: {
964
+ defaultModel: "auto",
965
+ userChosenDefault: void 0,
966
+ lastModelChange: void 0,
967
+ firstTimeSetup: {
968
+ completed: false
969
+ },
970
+ usageHistory: {
971
+ usageCount: 0
972
+ }
973
+ }
974
+ },
975
+ globalDefaults: {
976
+ cursorModel: "auto",
977
+ defaultProvider: void 0,
978
+ defaultModel: void 0,
979
+ aiJudgeModel: void 0
980
+ },
981
+ migrations: {
982
+ lastAppliedVersion: "1.0"
983
+ }
984
+ };
985
+
986
+ // src/core/config/canonical-read.ts
987
+ import { existsSync, readFileSync } from "fs";
988
+ import { parse as parseJsonc } from "jsonc-parser";
989
+ var RETIRED_BUILD_CONFIG_ROOTS = /* @__PURE__ */ new Set(["tui", "lifecycle"]);
990
+ function buildConfigCandidates(filePath) {
991
+ const base = filePath.replace(/\.(jsonc|json)$/i, "");
992
+ return [`${base}.jsonc`, `${base}.json`];
993
+ }
994
+ function selectedBuildConfigCandidate(filePath) {
995
+ const candidates = buildConfigCandidates(filePath);
996
+ return candidates.find((candidate) => existsSync(candidate)) ?? candidates[0];
997
+ }
998
+ var BuildConfigReadError = class extends Error {
999
+ constructor(filePath, reason, diagnostics, cause) {
1000
+ const detail = diagnostics.map((diagnostic) => diagnostic.message).join("; ");
1001
+ super(`Invalid Build configuration at ${filePath} (${reason}): ${detail}`);
1002
+ this.filePath = filePath;
1003
+ this.reason = reason;
1004
+ this.diagnostics = diagnostics;
1005
+ this.name = "BuildConfigReadError";
1006
+ if (cause !== void 0) {
1007
+ this.cause = cause;
1008
+ }
1009
+ }
1010
+ filePath;
1011
+ reason;
1012
+ diagnostics;
1013
+ code = "BUILD_CONFIG_READ_INVALID";
1014
+ };
1015
+ function nodeErrorCode(error) {
1016
+ if (!error || typeof error !== "object" || !("code" in error)) return void 0;
1017
+ const code = error.code;
1018
+ return typeof code === "string" || typeof code === "number" ? String(code) : void 0;
1019
+ }
1020
+ function offsetToLineColumn(source, offset) {
1021
+ const lines = source.slice(0, offset).split("\n");
1022
+ return {
1023
+ line: lines.length,
1024
+ column: (lines[lines.length - 1]?.length ?? 0) + 1
1025
+ };
1026
+ }
1027
+ function parseDiagnostics(source, errors) {
1028
+ return errors.map((error) => {
1029
+ const location = offsetToLineColumn(source, error.offset);
1030
+ return {
1031
+ message: `JSONC parse error ${error.error} at line ${location.line}, column ${location.column}`,
1032
+ code: error.error,
1033
+ offset: error.offset,
1034
+ line: location.line,
1035
+ column: location.column
1036
+ };
1037
+ });
1038
+ }
1039
+ function readCanonicalBuildConfig(filePath) {
1040
+ let source;
1041
+ try {
1042
+ source = readFileSync(filePath, "utf8");
1043
+ } catch (error) {
1044
+ if (nodeErrorCode(error) === "ENOENT") {
1045
+ return { status: "missing", filePath };
1046
+ }
1047
+ const detail = error instanceof Error ? error.message : String(error);
1048
+ return {
1049
+ status: "invalid",
1050
+ filePath,
1051
+ error: new BuildConfigReadError(
1052
+ filePath,
1053
+ "unreadable",
1054
+ [{ message: `Unable to read config file: ${detail}`, code: nodeErrorCode(error) }],
1055
+ error
1056
+ )
1057
+ };
1058
+ }
1059
+ return parseCanonicalBuildConfig(source, filePath);
1060
+ }
1061
+ function parseCanonicalBuildConfig(source, filePath) {
1062
+ const errors = [];
1063
+ const parsed = parseJsonc(source, errors, {
1064
+ allowTrailingComma: true,
1065
+ allowEmptyContent: false,
1066
+ disallowComments: false
1067
+ });
1068
+ if (errors.length > 0) {
1069
+ return {
1070
+ status: "invalid",
1071
+ filePath,
1072
+ error: new BuildConfigReadError(filePath, "parse", parseDiagnostics(source, errors))
1073
+ };
1074
+ }
1075
+ const validation = BuildConfigSchema.safeParse(parsed);
1076
+ if (!validation.success) {
1077
+ const diagnostics = validation.error.issues.map((issue) => {
1078
+ const path = issue.path.map(String).join(".");
1079
+ return {
1080
+ message: `${path || "<root>"}: ${issue.message}`,
1081
+ path: path || void 0,
1082
+ code: issue.code
1083
+ };
1084
+ });
1085
+ return {
1086
+ status: "invalid",
1087
+ filePath,
1088
+ error: new BuildConfigReadError(filePath, "schema", diagnostics, validation.error),
1089
+ parsed
1090
+ };
1091
+ }
1092
+ const unknownTopLevelKeys = parsed && typeof parsed === "object" && !Array.isArray(parsed) ? Object.keys(parsed).filter(
1093
+ (key) => !KNOWN_BUILD_CONFIG_ROOTS.includes(key) && !RETIRED_BUILD_CONFIG_ROOTS.has(key)
1094
+ ) : [];
1095
+ if (unknownTopLevelKeys.length > 0) {
1096
+ return {
1097
+ status: "invalid",
1098
+ filePath,
1099
+ error: new BuildConfigReadError(
1100
+ filePath,
1101
+ "schema",
1102
+ unknownTopLevelKeys.map((key) => ({
1103
+ message: `${key}: Unknown top-level configuration key`,
1104
+ path: key,
1105
+ code: "unrecognized_key"
1106
+ }))
1107
+ ),
1108
+ parsed
1109
+ };
1110
+ }
1111
+ return {
1112
+ status: "valid",
1113
+ filePath,
1114
+ config: validation.data,
1115
+ unknownTopLevelKeys: []
1116
+ };
1117
+ }
1118
+ function isBuildConfigReadError(error) {
1119
+ return error instanceof BuildConfigReadError;
1120
+ }
1121
+ function consumeBuildConfigRead(result) {
1122
+ if (result.status === "missing") return null;
1123
+ if (result.status === "invalid") throw result.error;
1124
+ return result.config;
1125
+ }
1126
+
1127
+ export {
1128
+ JudgeTypeSchema,
1129
+ LEGACY_REPO_LOCAL_TELEMETRY_DATABASE,
1130
+ TelemetryConfigSchema,
1131
+ ReasoningEffortSchema,
1132
+ RolesConfigSchema,
1133
+ BuildConfigSchema,
1134
+ KNOWN_BUILD_CONFIG_ROOTS,
1135
+ UserPreferencesSchema,
1136
+ DEFAULT_CONFIG,
1137
+ DEFAULT_USER_PREFERENCES,
1138
+ buildConfigCandidates,
1139
+ selectedBuildConfigCandidate,
1140
+ BuildConfigReadError,
1141
+ readCanonicalBuildConfig,
1142
+ parseCanonicalBuildConfig,
1143
+ isBuildConfigReadError,
1144
+ consumeBuildConfigRead
1145
+ };
1146
+ //# sourceMappingURL=chunk-FKCG7K6H.js.map