@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,729 @@
1
+ import {
2
+ ProjectLinkRetargetError,
3
+ clearDependencySetupFailure,
4
+ cloneDirectory,
5
+ describeDependencySourceMismatch,
6
+ ensureEmptyTarget,
7
+ ensureWorktreeDependencyExcludes,
8
+ ensureWorktreeGitExclude,
9
+ findProjectLinks,
10
+ listNodeWorkspaceMembers,
11
+ parseProjectDependencySetupCommand,
12
+ prepareWorktreeEnvironments,
13
+ recordDependencySetupFailure,
14
+ retargetProjectLinks,
15
+ runDependencySetup
16
+ } from "./chunk-AHU3FKPA.js";
17
+ import {
18
+ execGit
19
+ } from "./chunk-MHLEZQQI.js";
20
+ import {
21
+ isTrustedProjectRoot
22
+ } from "./chunk-QJ6OEH4K.js";
23
+ import {
24
+ BUILD_WORKTREE_DEPENDENCY_ROOT,
25
+ BUILD_WORKTREE_DEPENDENCY_ROOTS,
26
+ BUILD_WORKTREE_NODE_MODULES_STRATEGY,
27
+ getRuntimeEnv,
28
+ readRawEnv
29
+ } from "./chunk-7VRJHTGZ.js";
30
+
31
+ // src/core/project/installed-dependency-drift.ts
32
+ import * as fs from "fs/promises";
33
+ import * as path from "path";
34
+ var NODE_MODULES_SEGMENT = "node_modules/";
35
+ async function readLockfilePackages(filePath) {
36
+ const parsed = JSON.parse(await fs.readFile(filePath, "utf8"));
37
+ if (typeof parsed !== "object" || parsed === null) return null;
38
+ const packages = parsed.packages;
39
+ return typeof packages === "object" && packages !== null ? packages : null;
40
+ }
41
+ function entryVersion(entry) {
42
+ if (typeof entry !== "object" || entry === null) return void 0;
43
+ const version = entry.version;
44
+ return typeof version === "string" ? version : void 0;
45
+ }
46
+ function compareInstalledDependencyPackages(locked, installed) {
47
+ const drift = [];
48
+ for (const [key, entry] of Object.entries(installed)) {
49
+ const installedVersion = entryVersion(entry);
50
+ const lockedVersion = entryVersion(locked[key]);
51
+ if (!installedVersion || !lockedVersion || installedVersion === lockedVersion) continue;
52
+ const nameStart = key.lastIndexOf(NODE_MODULES_SEGMENT);
53
+ drift.push({
54
+ name: nameStart >= 0 ? key.slice(nameStart + NODE_MODULES_SEGMENT.length) : key,
55
+ installed: installedVersion,
56
+ locked: lockedVersion
57
+ });
58
+ }
59
+ return drift;
60
+ }
61
+ async function findInstalledDependencyDrift(projectRoot, installedRoot = projectRoot) {
62
+ const lockfilePath = path.join(projectRoot, "package-lock.json");
63
+ const installedPath = path.join(installedRoot, "node_modules", ".package-lock.json");
64
+ try {
65
+ const [locked, installed] = await Promise.all([
66
+ readLockfilePackages(lockfilePath),
67
+ readLockfilePackages(installedPath)
68
+ ]);
69
+ if (!locked || !installed) return [];
70
+ return compareInstalledDependencyPackages(locked, installed);
71
+ } catch {
72
+ return [];
73
+ }
74
+ }
75
+
76
+ // src/utils/node-modules.ts
77
+ import { existsSync, readFileSync } from "fs";
78
+ import * as fs3 from "fs/promises";
79
+ import path3 from "path";
80
+ import { fileURLToPath } from "url";
81
+ import { execa } from "execa";
82
+
83
+ // src/utils/node-workspace-modules.ts
84
+ import { lstatSync } from "fs";
85
+ import * as fs2 from "fs/promises";
86
+ import path2 from "path";
87
+ function isRealDirectory(target) {
88
+ try {
89
+ const stat = lstatSync(target);
90
+ return stat.isDirectory() && !stat.isSymbolicLink();
91
+ } catch {
92
+ return false;
93
+ }
94
+ }
95
+ function exists(target) {
96
+ try {
97
+ lstatSync(target);
98
+ return true;
99
+ } catch {
100
+ return false;
101
+ }
102
+ }
103
+ async function materializeWorkspaceNodeModules(options) {
104
+ const created = [];
105
+ try {
106
+ for (const member of listNodeWorkspaceMembers(options.worktreePath)) {
107
+ const from = path2.join(options.sourceRoot, member, "node_modules");
108
+ const to = path2.join(options.worktreePath, member, "node_modules");
109
+ if (!isRealDirectory(from) || exists(to)) continue;
110
+ await fs2.mkdir(path2.dirname(to), { recursive: true });
111
+ created.push(to);
112
+ await cloneDirectory(from, to);
113
+ retargetProjectLinks(to, options.sourceRoot, options.worktreePath);
114
+ }
115
+ } catch (error) {
116
+ for (const directory of created) await ensureEmptyTarget(directory);
117
+ throw error;
118
+ }
119
+ const relative = created.map(
120
+ (directory) => path2.relative(options.worktreePath, directory).replace(/\\/g, "/")
121
+ );
122
+ if (relative.length > 0) {
123
+ await ensureWorktreeDependencyExcludes(options.worktreePath, relative);
124
+ }
125
+ return relative;
126
+ }
127
+
128
+ // src/utils/node-modules.ts
129
+ var BUILD_PACKAGE_NAME = "@ebrindley/build";
130
+ function parseStrategy(raw) {
131
+ const value = (raw ?? "").trim().toLowerCase();
132
+ if (value === "clone" || value === "symlink" || value === "off") return value;
133
+ return "clone";
134
+ }
135
+ async function pathExists(p) {
136
+ try {
137
+ await fs3.access(p);
138
+ return true;
139
+ } catch {
140
+ return false;
141
+ }
142
+ }
143
+ function recordWarning(warnings, logger, message) {
144
+ warnings.push(message);
145
+ logger?.warn?.(message);
146
+ }
147
+ function uniqueExistingRoots(roots) {
148
+ const seen = /* @__PURE__ */ new Set();
149
+ const result = [];
150
+ for (const root of roots) {
151
+ const trimmed = root?.trim();
152
+ if (!trimmed) continue;
153
+ const resolved = path3.resolve(trimmed);
154
+ if (seen.has(resolved)) continue;
155
+ seen.add(resolved);
156
+ result.push(resolved);
157
+ }
158
+ return result;
159
+ }
160
+ function splitEnvPathList(value) {
161
+ return value ? value.split(path3.delimiter).map((entry) => entry.trim()).filter(Boolean) : [];
162
+ }
163
+ async function findBuildPackageRoot() {
164
+ let current = path3.dirname(fileURLToPath(import.meta.url));
165
+ for (let depth = 0; depth < 8; depth += 1) {
166
+ const packageJson = path3.join(current, "package.json");
167
+ try {
168
+ const parsed = JSON.parse(await fs3.readFile(packageJson, "utf8"));
169
+ if (parsed.name === "@ebrindley/build") return current;
170
+ } catch {
171
+ }
172
+ const parent = path3.dirname(current);
173
+ if (parent === current) break;
174
+ current = parent;
175
+ }
176
+ return void 0;
177
+ }
178
+ async function readPackageName(root) {
179
+ try {
180
+ const parsed = JSON.parse(await fs3.readFile(path3.join(root, "package.json"), "utf8"));
181
+ return typeof parsed.name === "string" ? parsed.name : void 0;
182
+ } catch {
183
+ return void 0;
184
+ }
185
+ }
186
+ async function resolvePackageRootFallback(repoRoot) {
187
+ const packageRoot = await findBuildPackageRoot();
188
+ if (!packageRoot) return void 0;
189
+ const [repoName, packageName] = await Promise.all([
190
+ readPackageName(repoRoot),
191
+ readPackageName(packageRoot)
192
+ ]);
193
+ return repoName && repoName === packageName ? packageRoot : void 0;
194
+ }
195
+ async function resolveLinkedWorktreeSourceRoot(repoRoot) {
196
+ try {
197
+ const dotGit = await fs3.readFile(path3.join(repoRoot, ".git"), "utf8");
198
+ const match = /^gitdir:\s*(.+)$/m.exec(dotGit.trim());
199
+ if (!match?.[1]) return void 0;
200
+ const gitDir = path3.resolve(repoRoot, match[1]);
201
+ const worktreesDir = path3.dirname(gitDir);
202
+ if (path3.basename(worktreesDir) !== "worktrees") return void 0;
203
+ const commonGitDir = path3.dirname(worktreesDir);
204
+ const sourceRoot = path3.dirname(commonGitDir);
205
+ if (sourceRoot === repoRoot) return void 0;
206
+ await fs3.access(path3.join(sourceRoot, ".git"));
207
+ return sourceRoot;
208
+ } catch {
209
+ return void 0;
210
+ }
211
+ }
212
+ async function resolveNodeModulesSource(options, warnings) {
213
+ const repoRoot = path3.resolve(options.repoRoot);
214
+ const repoPackageName = await readPackageName(repoRoot);
215
+ const log = options.logger;
216
+ const roots = uniqueExistingRoots([
217
+ ...splitEnvPathList(readRawEnv(BUILD_WORKTREE_DEPENDENCY_ROOTS)),
218
+ ...splitEnvPathList(readRawEnv(BUILD_WORKTREE_DEPENDENCY_ROOT)),
219
+ ...options.sourceRoots ?? [],
220
+ repoRoot,
221
+ await resolveLinkedWorktreeSourceRoot(repoRoot),
222
+ await resolvePackageRootFallback(options.repoRoot)
223
+ ]);
224
+ for (const root of roots) {
225
+ const nodeModulesPath = path3.join(root, "node_modules");
226
+ if (!await pathExists(nodeModulesPath)) continue;
227
+ const mismatch = await describeDependencySourceMismatch(options.worktreePath, root, "node");
228
+ const drift = await findInstalledDependencyDrift(options.worktreePath, root);
229
+ if (mismatch || drift.length > 0) {
230
+ recordWarning(
231
+ warnings,
232
+ log,
233
+ `[worktrees] skipping node_modules source ${root}: ${mismatch ?? "installed dependencies differ from candidate package-lock.json"}`
234
+ );
235
+ continue;
236
+ }
237
+ const sourcePackageName = root === repoRoot ? repoPackageName : await readPackageName(root);
238
+ if (root !== repoRoot) {
239
+ if (repoPackageName && sourcePackageName && repoPackageName !== sourcePackageName) {
240
+ recordWarning(
241
+ warnings,
242
+ log,
243
+ `[worktrees] skipping node_modules source ${root}: package name "${sourcePackageName}" does not match "${repoPackageName}"`
244
+ );
245
+ continue;
246
+ }
247
+ if (repoPackageName && !sourcePackageName) {
248
+ recordWarning(
249
+ warnings,
250
+ log,
251
+ `[worktrees] skipping node_modules source ${root}: missing package.json name for compatibility check`
252
+ );
253
+ continue;
254
+ }
255
+ if (!repoPackageName || !sourcePackageName) {
256
+ recordWarning(
257
+ warnings,
258
+ log,
259
+ `[worktrees] using node_modules source ${root} without package-name compatibility confirmation`
260
+ );
261
+ }
262
+ }
263
+ if (sourcePackageName === BUILD_PACKAGE_NAME) {
264
+ const preflightPath = path3.join(root, "scripts", "assert-node-runtime.mjs");
265
+ if (!await pathExists(preflightPath)) {
266
+ recordWarning(
267
+ warnings,
268
+ log,
269
+ `[worktrees] skipping node_modules source ${root}: Node runtime preflight is unavailable`
270
+ );
271
+ continue;
272
+ }
273
+ const preflight = await execa(
274
+ process.execPath,
275
+ [preflightPath, "--root", root, "--native", "required"],
276
+ { reject: false, stdio: "pipe" }
277
+ );
278
+ if ((preflight.exitCode ?? 1) !== 0) {
279
+ const detail = String(preflight.stderr ?? preflight.stdout ?? "").trim();
280
+ recordWarning(
281
+ warnings,
282
+ log,
283
+ `[worktrees] skipping node_modules source ${root}: Node/native readiness failed${detail ? ` (${detail.slice(-500)})` : ""}`
284
+ );
285
+ continue;
286
+ }
287
+ }
288
+ return { root, nodeModulesPath };
289
+ }
290
+ return void 0;
291
+ }
292
+ async function resolveSymlinkSource(source, repoRoot, candidateRoot) {
293
+ const repoNodeModules = path3.join(repoRoot, "node_modules");
294
+ if (await pathExists(repoNodeModules) && !await describeDependencySourceMismatch(candidateRoot, repoRoot, "node") && (await findInstalledDependencyDrift(candidateRoot, repoRoot)).length === 0) {
295
+ return { root: repoRoot, nodeModulesPath: repoNodeModules };
296
+ }
297
+ return source;
298
+ }
299
+ function usesYarnPnp(root) {
300
+ if (existsSync(path3.join(root, ".pnp.cjs")) || existsSync(path3.join(root, ".pnp.js"))) {
301
+ return true;
302
+ }
303
+ try {
304
+ return /^\s*nodeLinker:\s*["']?pnp["']?\s*(?:#.*)?$/m.test(
305
+ readFileSync(path3.join(root, ".yarnrc.yml"), "utf8")
306
+ );
307
+ } catch {
308
+ return false;
309
+ }
310
+ }
311
+ async function provisionWorkspaceMemberModules(worktreePath, sourceRoot) {
312
+ if (usesYarnPnp(worktreePath)) return;
313
+ await materializeWorkspaceNodeModules({ sourceRoot, worktreePath });
314
+ }
315
+ function isDisposableWorktree(options) {
316
+ const own = path3.resolve(options.worktreePath);
317
+ return ![options.repoRoot, ...options.sourceRoots ?? []].some(
318
+ (root) => path3.resolve(root) === own
319
+ );
320
+ }
321
+ async function installNodeDependenciesFromLockfile(options, setupPlan, warnings) {
322
+ if (!isDisposableWorktree(options) || usesYarnPnp(options.worktreePath)) return void 0;
323
+ const installs = (setupPlan?.commands ?? []).filter((command) => {
324
+ const setup = parseProjectDependencySetupCommand(command);
325
+ return setup !== null && ["npm", "pnpm", "yarn", "bun"].includes(setup.file) && (setup.args[0] === "ci" || setup.args[0] === "install");
326
+ });
327
+ if (installs.length === 0) return void 0;
328
+ const worktreePath = options.worktreePath;
329
+ const target = path3.join(worktreePath, "node_modules");
330
+ const locked = installs.every((command) => {
331
+ const args = parseProjectDependencySetupCommand(command)?.args ?? [];
332
+ return args[0] === "ci" || args.includes("--frozen-lockfile");
333
+ });
334
+ const bootstrap = options.allowManifestBootstrap === true && !await pathExists(path3.join(options.repoRoot, "package.json"));
335
+ if (!locked && !bootstrap) {
336
+ const reason = "No node_modules source and no lockfile to install from; run the package manager install in the worktree";
337
+ recordDependencySetupFailure(worktreePath, {
338
+ ecosystem: "node",
339
+ cause: reason,
340
+ ignoredOnceInstalled: true
341
+ });
342
+ return { ecosystem: "node", action: "setup-required", reason, warnings };
343
+ }
344
+ try {
345
+ await ensureWorktreeGitExclude(worktreePath, ["node_modules/"]);
346
+ await ensureWorktreeDependencyExcludes(worktreePath, ["node_modules"]);
347
+ for (const command of installs) await runDependencySetup(worktreePath, command);
348
+ if (!await pathExists(target)) {
349
+ throw new Error("Lockfile install completed without creating node_modules");
350
+ }
351
+ clearDependencySetupFailure(worktreePath, "node");
352
+ return {
353
+ ecosystem: "node",
354
+ action: "provisioned",
355
+ reason: `Installed project dependencies in the worktree (${installs.join(" && ")})`,
356
+ warnings
357
+ };
358
+ } catch (error) {
359
+ const message = error instanceof Error ? error.message : String(error);
360
+ await ensureEmptyTarget(target);
361
+ recordWarning(
362
+ warnings,
363
+ options.logger,
364
+ `[worktrees] failed to install node dependencies for ${worktreePath}: ${message}`
365
+ );
366
+ recordDependencySetupFailure(worktreePath, { ecosystem: "node", cause: message });
367
+ if (!(options.bestEffort ?? true)) throw error;
368
+ return { ecosystem: "node", action: "setup-required", reason: message, warnings };
369
+ }
370
+ }
371
+ async function prepareNodeWorktreeDependencies(options, setupPlan) {
372
+ const explicitStrategy = readRawEnv(BUILD_WORKTREE_NODE_MODULES_STRATEGY);
373
+ if (options.artifactMode === "cache-only" && !explicitStrategy && !options.strategy) {
374
+ return {
375
+ ecosystem: "node",
376
+ action: "cache-relied",
377
+ reason: "Node dependency preparation relies on package-manager caches; repo-local node_modules cloning is disabled for this worktree",
378
+ warnings: []
379
+ };
380
+ }
381
+ const strategy = options.strategy ?? parseStrategy(explicitStrategy);
382
+ const bestEffort = options.bestEffort ?? true;
383
+ const log = options.logger;
384
+ const warnings = [];
385
+ if (strategy === "off") {
386
+ return {
387
+ ecosystem: "node",
388
+ action: "skipped",
389
+ reason: "Node dependency preparation disabled by strategy off",
390
+ warnings
391
+ };
392
+ }
393
+ const target = path3.join(options.worktreePath, "node_modules");
394
+ const excludeDependencies = async () => {
395
+ await ensureWorktreeDependencyExcludes(options.worktreePath, ["node_modules"]).catch(
396
+ (error) => {
397
+ const message = error instanceof Error ? error.message : String(error);
398
+ recordWarning(
399
+ warnings,
400
+ log,
401
+ `[worktrees] failed to exclude node_modules for ${options.worktreePath}: ${message}`
402
+ );
403
+ if (!bestEffort) throw error;
404
+ }
405
+ );
406
+ };
407
+ let existingTarget;
408
+ try {
409
+ existingTarget = await fs3.lstat(target);
410
+ } catch {
411
+ }
412
+ if (existingTarget && !existingTarget.isSymbolicLink()) {
413
+ await excludeDependencies();
414
+ return {
415
+ ecosystem: "node",
416
+ action: "skipped",
417
+ reason: "Worktree already has node_modules",
418
+ sourcePath: target,
419
+ warnings
420
+ };
421
+ }
422
+ const source = await resolveNodeModulesSource(options, warnings);
423
+ if (!source) {
424
+ const installed = await pathExists(target) ? void 0 : await installNodeDependenciesFromLockfile(options, setupPlan, warnings);
425
+ if (installed) return installed;
426
+ return {
427
+ ecosystem: "node",
428
+ action: "skipped",
429
+ reason: "No compatible node_modules source found",
430
+ warnings
431
+ };
432
+ }
433
+ await excludeDependencies();
434
+ try {
435
+ if (existingTarget?.isSymbolicLink() && strategy !== "symlink") {
436
+ await ensureEmptyTarget(target);
437
+ } else if (existingTarget) {
438
+ return {
439
+ ecosystem: "node",
440
+ action: "skipped",
441
+ reason: "Worktree already has node_modules",
442
+ sourcePath: source.nodeModulesPath,
443
+ sourceRoot: source.root,
444
+ warnings
445
+ };
446
+ }
447
+ } catch {
448
+ }
449
+ try {
450
+ const symlinkSource = strategy === "symlink" ? await resolveSymlinkSource(source, path3.resolve(options.repoRoot), options.worktreePath) : void 0;
451
+ const projectLinks = symlinkSource ? findProjectLinks(symlinkSource.nodeModulesPath, symlinkSource.root) : [];
452
+ if (symlinkSource && projectLinks.length === 0) {
453
+ await fs3.symlink(
454
+ symlinkSource.nodeModulesPath,
455
+ target,
456
+ process.platform === "win32" ? "junction" : "dir"
457
+ );
458
+ await provisionWorkspaceMemberModules(options.worktreePath, symlinkSource.root);
459
+ clearDependencySetupFailure(options.worktreePath, "node");
460
+ return {
461
+ ecosystem: "node",
462
+ action: "symlinked",
463
+ reason: "Symlinked node_modules from compatible dependency source",
464
+ sourcePath: symlinkSource.nodeModulesPath,
465
+ sourceRoot: symlinkSource.root,
466
+ warnings
467
+ };
468
+ }
469
+ log?.debug?.(`[worktrees] cloning node_modules from ${source.root} into ${target}`);
470
+ await cloneDirectory(source.nodeModulesPath, target);
471
+ retargetProjectLinks(target, source.root, options.worktreePath);
472
+ await provisionWorkspaceMemberModules(options.worktreePath, source.root);
473
+ clearDependencySetupFailure(options.worktreePath, "node");
474
+ return {
475
+ ecosystem: "node",
476
+ action: "cloned",
477
+ reason: projectLinks.length > 0 ? "Cloned node_modules instead of symlinking it: workspace or file: links would load the source checkout" : "Cloned node_modules from compatible dependency source",
478
+ sourcePath: source.nodeModulesPath,
479
+ sourceRoot: source.root,
480
+ warnings
481
+ };
482
+ } catch (error) {
483
+ const message = error instanceof Error ? error.message : String(error);
484
+ await ensureEmptyTarget(target);
485
+ recordWarning(
486
+ warnings,
487
+ log,
488
+ `[worktrees] failed to provision node_modules for ${options.worktreePath}: ${message}`
489
+ );
490
+ recordDependencySetupFailure(options.worktreePath, {
491
+ ecosystem: "node",
492
+ cause: message
493
+ });
494
+ if (!bestEffort) throw error;
495
+ return {
496
+ ecosystem: "node",
497
+ action: "skipped",
498
+ reason: error instanceof ProjectLinkRetargetError ? `node_modules cloned from the source checkout is unusable for verification: ${message}` : "Failed to provision node_modules; continuing because preparation is best-effort",
499
+ sourcePath: source.nodeModulesPath,
500
+ sourceRoot: source.root,
501
+ warnings
502
+ };
503
+ }
504
+ }
505
+ function toEnvironmentResult(result) {
506
+ const provisioned = result.action === "cloned" || result.action === "symlinked" || result.action === "provisioned";
507
+ const present = result.action === "skipped" && /already has/.test(result.reason);
508
+ const action = provisioned || present ? "provisioned" : result.action === "cache-relied" ? "cache-relied" : "setup-required";
509
+ return {
510
+ ecosystem: result.ecosystem,
511
+ action,
512
+ reason: result.reason,
513
+ envRoot: result.sourcePath,
514
+ sourceRoot: result.sourceRoot,
515
+ warnings: result.warnings
516
+ };
517
+ }
518
+ async function prepareWorktreeDependencies(options) {
519
+ const repoRoot = path3.resolve(options.repoRoot);
520
+ let nodeResult;
521
+ const environments = await prepareWorktreeEnvironments({
522
+ repoRoot,
523
+ worktreePath: options.worktreePath,
524
+ sourceRoots: options.sourceRoots,
525
+ bestEffort: options.bestEffort,
526
+ logger: options.logger,
527
+ prepareNode: async (setupPlan) => {
528
+ nodeResult = await prepareNodeWorktreeDependencies({ ...options, repoRoot }, setupPlan);
529
+ return toEnvironmentResult(nodeResult);
530
+ }
531
+ });
532
+ const warnings = environments.flatMap((environment) => environment.warnings);
533
+ if (nodeResult)
534
+ return { ...nodeResult, warnings, environments };
535
+ const primary = environments[0];
536
+ if (!primary) throw new Error("worktree environment preparation returned no result");
537
+ return {
538
+ ecosystem: primary.ecosystem,
539
+ action: primary.action === "unavailable" ? "unsupported" : primary.action,
540
+ reason: primary.reason,
541
+ sourcePath: primary.envRoot,
542
+ sourceRoot: primary.sourceRoot,
543
+ warnings,
544
+ environments
545
+ };
546
+ }
547
+
548
+ // src/utils/worktree-env-files.ts
549
+ import { chmod, copyFile, lstat as lstat2, mkdir as mkdir2, realpath } from "fs/promises";
550
+ import path4 from "path";
551
+ var LEGACY_ENV_FILE_NAMES = [".env", ".env.local"];
552
+ var USER_SCOPE_SOURCE_TYPES = ["user", "profile"];
553
+ var GIT_PROBE_TIMEOUT_MS = 15e3;
554
+ var managersByRoot = /* @__PURE__ */ new Map();
555
+ var untrustedProjectNoticeRoots = /* @__PURE__ */ new Set();
556
+ function normalizeEnvFileName(raw) {
557
+ if (typeof raw !== "string") return void 0;
558
+ const trimmed = raw.trim();
559
+ if (!trimmed || trimmed.includes("\0") || /[*?[\]{}]/.test(trimmed)) return void 0;
560
+ if (path4.isAbsolute(trimmed) || path4.win32.isAbsolute(trimmed)) return void 0;
561
+ const normalized = path4.posix.normalize(trimmed.replace(/\\/g, "/"));
562
+ if (normalized === "." || normalized === ".." || normalized.startsWith("../")) return void 0;
563
+ if (normalized.endsWith("/")) return void 0;
564
+ const firstSegment = normalized.split("/")[0];
565
+ if (firstSegment === ".git") return void 0;
566
+ return normalized;
567
+ }
568
+ function configuredNamesFromSources(sources, repoRoot, logger) {
569
+ const names = [];
570
+ for (const source of sources) {
571
+ const list = source.data?.worktree?.copyEnvFiles;
572
+ if (!Array.isArray(list)) continue;
573
+ if (USER_SCOPE_SOURCE_TYPES.includes(source.type)) {
574
+ names.push(...list);
575
+ } else if (source.type === "project") {
576
+ if (isTrustedProjectRoot(repoRoot)) {
577
+ names.push(...list);
578
+ } else if (!untrustedProjectNoticeRoots.has(repoRoot)) {
579
+ untrustedProjectNoticeRoots.add(repoRoot);
580
+ logger?.warn?.(
581
+ "Ignoring worktree.copyEnvFiles from project config: copying env files needs BUILD_TRUST_PROJECT_PROVIDER_TEMPLATES to name this project root, or set it in user config."
582
+ );
583
+ }
584
+ }
585
+ }
586
+ return names;
587
+ }
588
+ async function resolveWorktreeEnvFileNames(repoRoot, logger) {
589
+ const raw = [];
590
+ if (getRuntimeEnv("BUILD_COPY_ENV_TO_WORKTREES") === "1") raw.push(...LEGACY_ENV_FILE_NAMES);
591
+ try {
592
+ let manager = managersByRoot.get(repoRoot);
593
+ if (!manager) {
594
+ const { ConfigManager: Manager } = await import("./config-manager-J2UTO635.js");
595
+ manager = new Manager({ cwd: repoRoot });
596
+ managersByRoot.set(repoRoot, manager);
597
+ }
598
+ const loaded = await manager.loadConfig();
599
+ raw.push(...configuredNamesFromSources(loaded.sources, repoRoot, logger));
600
+ } catch {
601
+ }
602
+ const names = [];
603
+ for (const entry of raw) {
604
+ const name = normalizeEnvFileName(entry);
605
+ if (name === void 0) {
606
+ logger?.warn?.(
607
+ "Ignoring an invalid worktree.copyEnvFiles entry: use a repo-relative file path."
608
+ );
609
+ continue;
610
+ }
611
+ if (!names.includes(name)) names.push(name);
612
+ }
613
+ return names;
614
+ }
615
+ async function isTracked(worktreePath, name) {
616
+ try {
617
+ const result = await execGit(["ls-files", "--error-unmatch", "--", name], {
618
+ cwd: worktreePath,
619
+ timeoutMs: GIT_PROBE_TIMEOUT_MS
620
+ });
621
+ return result.exitCode !== 1;
622
+ } catch {
623
+ return true;
624
+ }
625
+ }
626
+ async function isIgnored(worktreePath, name) {
627
+ try {
628
+ const result = await execGit(["check-ignore", "-q", "--", name], {
629
+ cwd: worktreePath,
630
+ timeoutMs: GIT_PROBE_TIMEOUT_MS
631
+ });
632
+ return result.exitCode === 0;
633
+ } catch {
634
+ return false;
635
+ }
636
+ }
637
+ function isWithin(root, candidate) {
638
+ const relative = path4.relative(root, candidate);
639
+ return !relative.startsWith("..") && !path4.isAbsolute(relative);
640
+ }
641
+ async function sourceRejection(repoRoot, name) {
642
+ const source = path4.join(repoRoot, ...name.split("/"));
643
+ let stat;
644
+ try {
645
+ stat = await lstat2(source);
646
+ } catch {
647
+ return "not present in the checkout";
648
+ }
649
+ if (!stat.isFile()) return "not a regular file";
650
+ try {
651
+ if (!isWithin(await realpath(repoRoot), await realpath(source))) {
652
+ return "resolves outside the checkout";
653
+ }
654
+ } catch {
655
+ return "not present in the checkout";
656
+ }
657
+ return void 0;
658
+ }
659
+ async function destinationRejection(worktreePath, name) {
660
+ const destination = path4.join(worktreePath, ...name.split("/"));
661
+ try {
662
+ const stat = await lstat2(destination);
663
+ if (stat.isSymbolicLink() || !stat.isFile()) return "destination is not a regular file";
664
+ } catch {
665
+ }
666
+ try {
667
+ await mkdir2(path4.dirname(destination), { recursive: true });
668
+ if (!isWithin(await realpath(worktreePath), await realpath(path4.dirname(destination)))) {
669
+ return "destination resolves outside the worktree";
670
+ }
671
+ } catch {
672
+ return "destination directory is not writable";
673
+ }
674
+ return void 0;
675
+ }
676
+ async function copyConfiguredEnvFilesToWorktree(options) {
677
+ const result = { copied: [], skipped: [] };
678
+ const repoRoot = path4.resolve(options.repoRoot);
679
+ const worktreePath = path4.resolve(options.worktreePath);
680
+ const names = options.names ?? await resolveWorktreeEnvFileNames(repoRoot, options.logger);
681
+ if (names.length === 0 || repoRoot === worktreePath) return result;
682
+ const skip = (name, reason) => {
683
+ result.skipped.push({ name, reason });
684
+ options.logger?.warn?.(`Skipping ${name} env file copy: ${reason}.`);
685
+ };
686
+ for (const name of names) {
687
+ const rejected = await sourceRejection(repoRoot, name);
688
+ if (rejected) {
689
+ result.skipped.push({ name, reason: rejected });
690
+ options.logger?.debug?.(`Skipping ${name} env file copy: ${rejected}.`);
691
+ continue;
692
+ }
693
+ if (await isTracked(worktreePath, name)) {
694
+ skip(name, "tracked at the requested ref, so copying would dirty the worktree");
695
+ continue;
696
+ }
697
+ if (!await isIgnored(worktreePath, name)) {
698
+ await ensureWorktreeGitExclude(worktreePath, [`/${name}`]).catch(() => void 0);
699
+ if (!await isIgnored(worktreePath, name)) {
700
+ skip(name, "could not exclude it from git status");
701
+ continue;
702
+ }
703
+ }
704
+ const blocked = await destinationRejection(worktreePath, name);
705
+ if (blocked) {
706
+ skip(name, blocked);
707
+ continue;
708
+ }
709
+ try {
710
+ const destination = path4.join(worktreePath, ...name.split("/"));
711
+ await copyFile(path4.join(repoRoot, ...name.split("/")), destination);
712
+ await chmod(destination, 384);
713
+ result.copied.push(name);
714
+ } catch {
715
+ skip(name, "copy failed");
716
+ }
717
+ }
718
+ if (result.copied.length > 0) {
719
+ options.logger?.debug?.(`Copied ${result.copied.length} env file(s) into the worktree.`);
720
+ }
721
+ return result;
722
+ }
723
+
724
+ export {
725
+ findInstalledDependencyDrift,
726
+ prepareWorktreeDependencies,
727
+ copyConfiguredEnvFilesToWorktree
728
+ };
729
+ //# sourceMappingURL=chunk-BIUV23HH.js.map