@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,823 @@
1
+ import {
2
+ evaluateStaleReclaim
3
+ } from "./chunk-P7CQGPLS.js";
4
+ import {
5
+ atomicWriteJson
6
+ } from "./chunk-RFDVSI4N.js";
7
+ import {
8
+ resolveBuildRoot
9
+ } from "./chunk-CHA2HDE5.js";
10
+ import {
11
+ emitCustomWarning
12
+ } from "./chunk-7VRJHTGZ.js";
13
+
14
+ // src/planning/backlog-execution-provenance.ts
15
+ import { randomUUID } from "crypto";
16
+ import * as fsSync from "fs";
17
+ import * as fs from "fs/promises";
18
+ import * as os from "os";
19
+ import * as path from "path";
20
+ var BACKLOG_EXECUTION_STATUSES = [
21
+ "initialized",
22
+ "executing",
23
+ "blocked",
24
+ "pr-open",
25
+ "archive-sync-pending",
26
+ "delivered-local",
27
+ "merged",
28
+ "archived",
29
+ "failed"
30
+ ];
31
+ var DELIVERY_BEARING_BACKLOG_EXECUTION_STATUSES = /* @__PURE__ */ new Set([
32
+ "pr-open",
33
+ "archive-sync-pending",
34
+ "delivered-local",
35
+ "merged",
36
+ "archived"
37
+ ]);
38
+ function backlogExecutionStatusCarriesDelivery(status) {
39
+ return status !== null && status !== void 0 ? DELIVERY_BEARING_BACKLOG_EXECUTION_STATUSES.has(status) : false;
40
+ }
41
+ function resolveAdHocBacklogExecutionSuccessUpdates(outcome) {
42
+ const base = {
43
+ executingPid: null,
44
+ // An ad-hoc run has no canonical workflow to apply; drop any id a prior
45
+ // canonical attempt left so `backlog execute` cannot reuse it as this result.
46
+ workflowId: null,
47
+ lastCompletedStep: "execute",
48
+ failedAtStep: null,
49
+ errorMessage: null
50
+ };
51
+ if (typeof outcome?.prNumber === "number" && Number.isFinite(outcome.prNumber)) {
52
+ return {
53
+ ...base,
54
+ status: "pr-open",
55
+ prNumber: outcome.prNumber
56
+ };
57
+ }
58
+ if (outcome?.deliveredLocal === true) {
59
+ return {
60
+ ...base,
61
+ status: "delivered-local",
62
+ prNumber: null
63
+ };
64
+ }
65
+ return base;
66
+ }
67
+ var BACKLOG_ITEM_COMMIT_TRAILER_KEY = "Build-Backlog-Item";
68
+ function formatBacklogItemCommitTrailer(backlogItemId) {
69
+ return `${BACKLOG_ITEM_COMMIT_TRAILER_KEY}: ${backlogItemId}`;
70
+ }
71
+ function extractBacklogItemTrailerIds(commitBody) {
72
+ const prefix = `${BACKLOG_ITEM_COMMIT_TRAILER_KEY}:`;
73
+ return commitBody.split("\n").flatMap((line) => {
74
+ const trimmed = line.trim();
75
+ const id = trimmed.startsWith(prefix) ? trimmed.slice(prefix.length).trim().split(/\s+/, 1)[0] : void 0;
76
+ return id ? [id] : [];
77
+ });
78
+ }
79
+ function commitBodyContainsBacklogItemTrailer(commitBody, backlogItemId) {
80
+ return extractBacklogItemTrailerIds(commitBody).includes(backlogItemId);
81
+ }
82
+ function evaluateAutoFinalizeEligibility(provenance, mergeCommit, evidence) {
83
+ if (provenance.status !== "pr-open") {
84
+ return {
85
+ eligible: false,
86
+ reason: `status is ${provenance.status} (expected pr-open)`
87
+ };
88
+ }
89
+ if (provenance.prNumber === null || provenance.prNumber === void 0) {
90
+ return { eligible: false, reason: "missing prNumber on provenance record" };
91
+ }
92
+ if (!mergeCommit || mergeCommit.trim().length === 0) {
93
+ return {
94
+ eligible: false,
95
+ reason: `PR #${provenance.prNumber} is not merged`
96
+ };
97
+ }
98
+ if (!evidence.validCommit) {
99
+ return {
100
+ eligible: false,
101
+ reason: `merge commit ${mergeCommit} is not a valid commit`
102
+ };
103
+ }
104
+ if (!evidence.prMerged) {
105
+ return {
106
+ eligible: false,
107
+ reason: `PR #${provenance.prNumber} is not merged`
108
+ };
109
+ }
110
+ if (!evidence.mergeCommitOnRemoteDefault) {
111
+ return {
112
+ eligible: false,
113
+ reason: `merge commit ${mergeCommit} is not on the remote default branch`
114
+ };
115
+ }
116
+ if (!evidence.mergeCommitMatchesPr) {
117
+ return {
118
+ eligible: false,
119
+ reason: `PR #${provenance.prNumber} merge commit does not match ${mergeCommit}`
120
+ };
121
+ }
122
+ if (!evidence.backlogItemMatchesPr) {
123
+ return {
124
+ eligible: false,
125
+ reason: `PR #${provenance.prNumber} is not linked to backlog item ${provenance.backlogItemId}`
126
+ };
127
+ }
128
+ return { eligible: true, mergeCommit: mergeCommit.trim() };
129
+ }
130
+ function evaluateArchiveSyncResumeEligibility(provenance, archiveSyncMergeCommit, evidence) {
131
+ if (provenance.status !== "archive-sync-pending") {
132
+ return {
133
+ eligible: false,
134
+ reason: `status is ${provenance.status} (expected archive-sync-pending)`
135
+ };
136
+ }
137
+ if (provenance.archiveSyncPrNumber === null) {
138
+ return {
139
+ eligible: false,
140
+ reason: "missing archiveSyncPrNumber on provenance record"
141
+ };
142
+ }
143
+ if (provenance.prNumber === null) {
144
+ return {
145
+ eligible: false,
146
+ reason: "missing original prNumber on provenance record"
147
+ };
148
+ }
149
+ if (!provenance.mergeCommit?.trim()) {
150
+ return {
151
+ eligible: false,
152
+ reason: "missing original mergeCommit on provenance record"
153
+ };
154
+ }
155
+ if (!archiveSyncMergeCommit?.trim()) {
156
+ return {
157
+ eligible: false,
158
+ reason: `archive sync PR #${provenance.archiveSyncPrNumber} is not merged`
159
+ };
160
+ }
161
+ if (!evidence.validCommit) {
162
+ return {
163
+ eligible: false,
164
+ reason: `archive sync merge commit ${archiveSyncMergeCommit} is not a valid commit`
165
+ };
166
+ }
167
+ if (!evidence.prMerged) {
168
+ return {
169
+ eligible: false,
170
+ reason: `archive sync PR #${provenance.archiveSyncPrNumber} is not merged`
171
+ };
172
+ }
173
+ if (!evidence.mergeCommitOnRemoteDefault) {
174
+ return {
175
+ eligible: false,
176
+ reason: `archive sync merge commit ${archiveSyncMergeCommit} is not on the remote default branch`
177
+ };
178
+ }
179
+ if (!evidence.mergeCommitMatchesPr) {
180
+ return {
181
+ eligible: false,
182
+ reason: `archive sync PR #${provenance.archiveSyncPrNumber} merge commit does not match ${archiveSyncMergeCommit}`
183
+ };
184
+ }
185
+ return { eligible: true, mergeCommit: provenance.mergeCommit.trim() };
186
+ }
187
+ async function listBacklogExecutionProvenanceByStatus(projectRoot, status) {
188
+ const dir = provenanceDir(projectRoot);
189
+ let entries;
190
+ try {
191
+ entries = await fs.readdir(dir);
192
+ } catch (error) {
193
+ if (error.code === "ENOENT") {
194
+ return [];
195
+ }
196
+ throw error;
197
+ }
198
+ const matches = [];
199
+ for (const entry of entries) {
200
+ if (!entry.endsWith(".json")) {
201
+ continue;
202
+ }
203
+ const backlogItemId = entry.slice(0, -".json".length);
204
+ const provenance = await loadBacklogExecutionProvenance(projectRoot, backlogItemId, {
205
+ cleanupTerminalLocks: false
206
+ });
207
+ if (provenance?.status === status) {
208
+ matches.push(provenance);
209
+ }
210
+ }
211
+ matches.sort((a, b) => a.backlogItemId.localeCompare(b.backlogItemId));
212
+ return matches;
213
+ }
214
+ function nonemptyProvenanceText(value) {
215
+ const trimmed = typeof value === "string" ? value.trim() : "";
216
+ return trimmed.length > 0 ? trimmed : null;
217
+ }
218
+ function projectAdvisoryExecutionEvidence(provenance) {
219
+ if (!provenance) {
220
+ return {
221
+ advisory: true,
222
+ run: null,
223
+ branch: null,
224
+ worktree: null,
225
+ commit: null,
226
+ prNumber: null,
227
+ pendingBlockers: []
228
+ };
229
+ }
230
+ const prNumber = typeof provenance.prNumber === "number" && Number.isFinite(provenance.prNumber) ? provenance.prNumber : null;
231
+ return {
232
+ advisory: true,
233
+ run: {
234
+ status: provenance.status,
235
+ workflowId: nonemptyProvenanceText(provenance.workflowId),
236
+ executingPid: typeof provenance.executingPid === "number" && Number.isFinite(provenance.executingPid) ? provenance.executingPid : null,
237
+ lastCompletedStep: provenance.lastCompletedStep
238
+ },
239
+ branch: nonemptyProvenanceText(provenance.branch),
240
+ worktree: null,
241
+ commit: nonemptyProvenanceText(provenance.mergeCommit),
242
+ prNumber,
243
+ pendingBlockers: Array.isArray(provenance.pendingBlockers) ? provenance.pendingBlockers : []
244
+ };
245
+ }
246
+ var DEFAULT_BACKLOG_EXECUTION_LOCK_RETRY_MS = 1e3;
247
+ function emitBacklogExecutionProvenanceWarning(message, metadata) {
248
+ emitCustomWarning(
249
+ "WARN" /* WARN */,
250
+ "workspace_edits" /* WORKSPACE_EDITS */,
251
+ message,
252
+ {
253
+ taskId: "backlog-execution-provenance",
254
+ subsystem: "planning/backlog-execution-provenance",
255
+ executionPhase: "execution"
256
+ },
257
+ { metadata, skipConsole: true }
258
+ );
259
+ }
260
+ function isTerminalBacklogExecutionStatus(status) {
261
+ return status === "archived" || status === "merged";
262
+ }
263
+ function provenanceDir(projectRoot) {
264
+ const resolvedProjectRoot = path.resolve(projectRoot);
265
+ const sharedRoot = fsSync.existsSync(path.join(resolvedProjectRoot, ".git")) ? resolveBuildRoot(resolvedProjectRoot) : resolvedProjectRoot;
266
+ return path.join(sharedRoot, ".build-project", "provenance");
267
+ }
268
+ function lockDir(projectRoot) {
269
+ return path.join(provenanceDir(projectRoot), "locks");
270
+ }
271
+ function lockPath(projectRoot, backlogItemId) {
272
+ return path.join(lockDir(projectRoot), `${backlogItemId}.lock`);
273
+ }
274
+ function getBacklogExecutionProvenancePath(projectRoot, backlogItemId) {
275
+ return path.join(provenanceDir(projectRoot), `${backlogItemId}.json`);
276
+ }
277
+ function nowIso() {
278
+ return (/* @__PURE__ */ new Date()).toISOString();
279
+ }
280
+ function normalizePendingBlockers(value) {
281
+ if (!Array.isArray(value)) return [];
282
+ return value.flatMap((entry) => {
283
+ if (!entry || typeof entry !== "object") return [];
284
+ const candidate = entry;
285
+ if (typeof candidate.question !== "string" || candidate.question.trim().length === 0) {
286
+ return [];
287
+ }
288
+ return [
289
+ {
290
+ ...typeof candidate.id === "string" && candidate.id.trim().length > 0 ? { id: candidate.id } : {},
291
+ question: candidate.question,
292
+ ...Array.isArray(candidate.stageIds) ? {
293
+ stageIds: candidate.stageIds.filter(
294
+ (stageId) => typeof stageId === "string"
295
+ )
296
+ } : {}
297
+ }
298
+ ];
299
+ });
300
+ }
301
+ function normalizeLoadedBacklogExecutionProvenance(provenance) {
302
+ return {
303
+ ...provenance,
304
+ taskIds: Array.isArray(provenance.taskIds) ? provenance.taskIds : [],
305
+ pendingBlockers: normalizePendingBlockers(
306
+ provenance.pendingBlockers
307
+ )
308
+ };
309
+ }
310
+ function isBacklogExecutionStatus(value) {
311
+ return typeof value === "string" && BACKLOG_EXECUTION_STATUSES.includes(value);
312
+ }
313
+ function parseBacklogExecutionProvenanceFile(raw, filePath, expectedBacklogItemId) {
314
+ let parsed;
315
+ try {
316
+ parsed = JSON.parse(raw);
317
+ } catch (error) {
318
+ emitBacklogExecutionProvenanceWarning(
319
+ `[build] Corrupt backlog execution provenance at ${filePath}; treating it as absent and reinitializing execution state.`,
320
+ {
321
+ filePath,
322
+ error: error instanceof Error ? error.message : String(error),
323
+ operation: "parse-backlog-execution-provenance"
324
+ }
325
+ );
326
+ return null;
327
+ }
328
+ const candidate = parsed;
329
+ if (!candidate || typeof candidate !== "object" || typeof candidate.backlogItemId !== "string" || candidate.backlogItemId.trim().length === 0 || !isBacklogExecutionStatus(candidate.status)) {
330
+ emitBacklogExecutionProvenanceWarning(
331
+ `[build] Invalid backlog execution provenance at ${filePath} (missing or malformed backlogItemId/status); treating it as absent and reinitializing execution state.`,
332
+ {
333
+ filePath,
334
+ operation: "validate-backlog-execution-provenance"
335
+ }
336
+ );
337
+ return null;
338
+ }
339
+ if (candidate.backlogItemId !== expectedBacklogItemId) {
340
+ emitBacklogExecutionProvenanceWarning(
341
+ `[build] Backlog execution provenance at ${filePath} records backlogItemId ${candidate.backlogItemId}, which does not match the item it was loaded for (${expectedBacklogItemId}); treating it as absent. Remove or rename the file so each record identifies exactly one backlog item.`,
342
+ {
343
+ filePath,
344
+ expectedBacklogItemId,
345
+ recordedBacklogItemId: candidate.backlogItemId,
346
+ operation: "validate-backlog-execution-provenance-id-binding"
347
+ }
348
+ );
349
+ return null;
350
+ }
351
+ return normalizeLoadedBacklogExecutionProvenance(candidate);
352
+ }
353
+ async function ensureBacklogExecutionProvenanceDir(projectRoot) {
354
+ await fs.mkdir(provenanceDir(projectRoot), { recursive: true });
355
+ await fs.mkdir(lockDir(projectRoot), { recursive: true });
356
+ }
357
+ function ensureBacklogExecutionProvenanceDirSync(projectRoot) {
358
+ fsSync.mkdirSync(provenanceDir(projectRoot), { recursive: true });
359
+ fsSync.mkdirSync(lockDir(projectRoot), { recursive: true });
360
+ }
361
+ function createInitialBacklogExecutionProvenance(backlogItemId) {
362
+ const timestamp = nowIso();
363
+ return {
364
+ backlogItemId,
365
+ branch: null,
366
+ branchRole: null,
367
+ sourceBranch: null,
368
+ sourceBranchRole: null,
369
+ branchRoleAction: null,
370
+ branchRoleOverride: null,
371
+ workflowId: null,
372
+ sprintId: null,
373
+ taskIds: [],
374
+ planArtifact: null,
375
+ prNumber: null,
376
+ mergeCommit: null,
377
+ archiveSyncPrNumber: null,
378
+ archiveSyncWarning: null,
379
+ status: "initialized",
380
+ executingPid: null,
381
+ executingStartedAt: null,
382
+ lastCompletedStep: null,
383
+ failedAtStep: null,
384
+ errorMessage: null,
385
+ pendingBlockers: [],
386
+ createdAt: timestamp,
387
+ updatedAt: timestamp
388
+ };
389
+ }
390
+ async function loadBacklogExecutionProvenance(projectRoot, backlogItemId, options = {}) {
391
+ const filePath = getBacklogExecutionProvenancePath(projectRoot, backlogItemId);
392
+ try {
393
+ const raw = await fs.readFile(filePath, "utf8");
394
+ const provenance = parseBacklogExecutionProvenanceFile(raw, filePath, backlogItemId);
395
+ if (!provenance) {
396
+ return null;
397
+ }
398
+ if (options.cleanupTerminalLocks !== false) {
399
+ await cleanupTerminalBacklogExecutionLock(projectRoot, backlogItemId, provenance);
400
+ }
401
+ return provenance;
402
+ } catch (error) {
403
+ if (error.code === "ENOENT") {
404
+ return null;
405
+ }
406
+ throw error;
407
+ }
408
+ }
409
+ function isPidAlive(pid) {
410
+ try {
411
+ process.kill(pid, 0);
412
+ return true;
413
+ } catch (error) {
414
+ return error.code !== "ESRCH";
415
+ }
416
+ }
417
+ function backlogExecutionHostIdentity() {
418
+ const envHostname = process.env.HOSTNAME?.trim();
419
+ return envHostname || os.hostname() || "unknown";
420
+ }
421
+ function recordedExecutionChildIsLive(provenance) {
422
+ const pid = provenance.executingChildPid;
423
+ if (typeof pid === "number" && Number.isFinite(pid) && pid > 0) {
424
+ return provenance.executingChildHost === backlogExecutionHostIdentity() ? isPidAlive(pid) : true;
425
+ }
426
+ return provenance.executingChildSpawnPending === true;
427
+ }
428
+ var LOCK_HOST_LINE_PREFIX = "host=";
429
+ function formatBacklogExecutionLockContent(ownerToken) {
430
+ return `${ownerToken}
431
+ ${(/* @__PURE__ */ new Date()).toISOString()}
432
+ ${LOCK_HOST_LINE_PREFIX}${backlogExecutionHostIdentity()}
433
+ `;
434
+ }
435
+ function parseBacklogExecutionLockContent(content) {
436
+ const lines = content.split("\n");
437
+ const ownerToken = (lines[0] ?? "").trim();
438
+ const pid = Number.parseInt(ownerToken.split(":")[0] ?? "", 10);
439
+ const hostLine = lines.map((line) => line.trim()).find((line) => line.startsWith(LOCK_HOST_LINE_PREFIX));
440
+ const host = hostLine ? hostLine.slice(LOCK_HOST_LINE_PREFIX.length).trim() : "";
441
+ return {
442
+ ownerToken,
443
+ pid: Number.isFinite(pid) ? pid : null,
444
+ host: host.length > 0 ? host : null
445
+ };
446
+ }
447
+ function observeBacklogExecutionLockHolder(payload) {
448
+ if (payload.pid === null) {
449
+ return null;
450
+ }
451
+ const currentHost = backlogExecutionHostIdentity();
452
+ const sameHost = payload.host === null || payload.host !== "unknown" && payload.host === currentHost;
453
+ return { sameHost, pidAlive: sameHost ? isPidAlive(payload.pid) : false };
454
+ }
455
+ var FOREIGN_HOST_BACKLOG_EXECUTION_LOCK_STALE_MS = 3e5;
456
+ var FOREIGN_HOST_BACKLOG_EXECUTION_LOCK_MULTIPLIER = 3;
457
+ function shouldReclaimBacklogExecutionLock(payload, ageMs) {
458
+ const holder = observeBacklogExecutionLockHolder(payload);
459
+ if (holder === null) {
460
+ return true;
461
+ }
462
+ return evaluateStaleReclaim(
463
+ { ageMs, holder },
464
+ {
465
+ staleMs: FOREIGN_HOST_BACKLOG_EXECUTION_LOCK_STALE_MS,
466
+ corruptPayload: "reclaim",
467
+ foreignHost: {
468
+ kind: "after-multiplier",
469
+ multiplier: FOREIGN_HOST_BACKLOG_EXECUTION_LOCK_MULTIPLIER
470
+ },
471
+ sameHostDeadPid: "immediate"
472
+ }
473
+ ) === "reclaim";
474
+ }
475
+ async function backlogExecutionLockAgeMs(filePath) {
476
+ try {
477
+ const stat2 = await fs.stat(filePath);
478
+ return Math.max(0, Date.now() - stat2.mtimeMs);
479
+ } catch {
480
+ return 0;
481
+ }
482
+ }
483
+ async function isBacklogExecutionLockHeldByLiveProcess(projectRoot, backlogItemId) {
484
+ const filePath = lockPath(projectRoot, backlogItemId);
485
+ try {
486
+ const content = await fs.readFile(filePath, "utf8");
487
+ const payload = parseBacklogExecutionLockContent(content);
488
+ return !shouldReclaimBacklogExecutionLock(payload, await backlogExecutionLockAgeMs(filePath));
489
+ } catch (error) {
490
+ if (error.code === "ENOENT") {
491
+ return false;
492
+ }
493
+ throw error;
494
+ }
495
+ }
496
+ async function readBacklogExecutionLockPayload(projectRoot, backlogItemId) {
497
+ const filePath = lockPath(projectRoot, backlogItemId);
498
+ try {
499
+ const content = await fs.readFile(filePath, "utf8");
500
+ return parseBacklogExecutionLockContent(content);
501
+ } catch (error) {
502
+ if (error.code === "ENOENT") {
503
+ return null;
504
+ }
505
+ throw error;
506
+ }
507
+ }
508
+ async function isBacklogExecutionProvenanceActivelyExecuting(projectRoot, provenance) {
509
+ if (provenance.status !== "executing") {
510
+ return false;
511
+ }
512
+ if (await isBacklogExecutionLockHeldByLiveProcess(projectRoot, provenance.backlogItemId)) {
513
+ const lock = await readBacklogExecutionLockPayload(projectRoot, provenance.backlogItemId);
514
+ const holder = lock ? observeBacklogExecutionLockHolder(lock) : null;
515
+ if (holder?.sameHost === true && lock?.pid === process.pid) {
516
+ if (provenance.executingPid == null) {
517
+ return recordedExecutionChildIsLive(provenance);
518
+ }
519
+ return isPidAlive(provenance.executingPid) || recordedExecutionChildIsLive(provenance);
520
+ }
521
+ return true;
522
+ }
523
+ if (typeof provenance.executingPid === "number" && isPidAlive(provenance.executingPid)) {
524
+ return true;
525
+ }
526
+ return recordedExecutionChildIsLive(provenance);
527
+ }
528
+ async function cleanupTerminalBacklogExecutionLock(projectRoot, backlogItemId, provenance) {
529
+ if (!isTerminalBacklogExecutionStatus(provenance.status)) {
530
+ return;
531
+ }
532
+ const filePath = lockPath(projectRoot, backlogItemId);
533
+ try {
534
+ const content = await fs.readFile(filePath, "utf8");
535
+ const payload = parseBacklogExecutionLockContent(content);
536
+ if (await shouldReclaimBacklogExecutionLockFile(filePath, payload)) {
537
+ await removeBacklogExecutionLockIfOwnerMatches(filePath, payload.ownerToken);
538
+ }
539
+ } catch {
540
+ return;
541
+ }
542
+ }
543
+ async function shouldReclaimBacklogExecutionLockFile(filePath, payload) {
544
+ return shouldReclaimBacklogExecutionLock(payload, await backlogExecutionLockAgeMs(filePath));
545
+ }
546
+ async function removeBacklogExecutionLockIfOwnerMatches(filePath, expectedOwnerToken, expectedIdentity) {
547
+ const reclaimPath = `${filePath}.reclaim.${process.pid}.${Date.now().toString(36)}.${randomUUID()}`;
548
+ try {
549
+ await fs.link(filePath, reclaimPath);
550
+ } catch (error) {
551
+ if (error.code === "ENOENT") {
552
+ return false;
553
+ }
554
+ throw error;
555
+ }
556
+ try {
557
+ const currentContent = await fs.readFile(reclaimPath, "utf8");
558
+ const currentOwnerToken = (currentContent.split("\n")[0] ?? "").trim();
559
+ if (currentOwnerToken !== expectedOwnerToken) {
560
+ return false;
561
+ }
562
+ const [currentStat, reclaimStat] = await Promise.all([
563
+ fs.stat(filePath).catch(() => null),
564
+ fs.stat(reclaimPath)
565
+ ]);
566
+ if (expectedIdentity && (reclaimStat.dev !== expectedIdentity.dev || reclaimStat.ino !== expectedIdentity.ino)) {
567
+ return false;
568
+ }
569
+ if (!currentStat || currentStat.dev !== reclaimStat.dev || currentStat.ino !== reclaimStat.ino) {
570
+ return false;
571
+ }
572
+ await fs.unlink(filePath);
573
+ return true;
574
+ } finally {
575
+ await fs.unlink(reclaimPath).catch(() => void 0);
576
+ }
577
+ }
578
+ function removeBacklogExecutionLockIfOwnerMatchesSync(filePath, expectedOwnerToken, expectedIdentity) {
579
+ const reclaimPath = `${filePath}.reclaim.${process.pid}.${Date.now().toString(36)}.${randomUUID()}`;
580
+ try {
581
+ fsSync.linkSync(filePath, reclaimPath);
582
+ } catch (error) {
583
+ if (error.code === "ENOENT") {
584
+ return false;
585
+ }
586
+ throw error;
587
+ }
588
+ try {
589
+ const currentContent = fsSync.readFileSync(reclaimPath, "utf8");
590
+ const currentOwnerToken = (currentContent.split("\n")[0] ?? "").trim();
591
+ if (currentOwnerToken !== expectedOwnerToken) {
592
+ return false;
593
+ }
594
+ const reclaimStat = fsSync.statSync(reclaimPath);
595
+ let currentStat;
596
+ try {
597
+ currentStat = fsSync.statSync(filePath);
598
+ } catch (error) {
599
+ if (error.code === "ENOENT") {
600
+ return false;
601
+ }
602
+ throw error;
603
+ }
604
+ if (reclaimStat.dev !== expectedIdentity.dev || reclaimStat.ino !== expectedIdentity.ino || currentStat.dev !== reclaimStat.dev || currentStat.ino !== reclaimStat.ino) {
605
+ return false;
606
+ }
607
+ fsSync.unlinkSync(filePath);
608
+ return true;
609
+ } finally {
610
+ try {
611
+ fsSync.unlinkSync(reclaimPath);
612
+ } catch {
613
+ }
614
+ }
615
+ }
616
+ async function cleanupTerminalBacklogExecutionLockFromStoredProvenance(projectRoot, backlogItemId) {
617
+ const filePath = getBacklogExecutionProvenancePath(projectRoot, backlogItemId);
618
+ try {
619
+ const raw = await fs.readFile(filePath, "utf8");
620
+ const provenance = parseBacklogExecutionProvenanceFile(raw, filePath, backlogItemId);
621
+ if (!provenance) {
622
+ return;
623
+ }
624
+ await cleanupTerminalBacklogExecutionLock(projectRoot, backlogItemId, provenance);
625
+ } catch (error) {
626
+ if (error.code === "ENOENT") {
627
+ return;
628
+ }
629
+ throw error;
630
+ }
631
+ }
632
+ function normalizeBacklogExecutionProvenance(provenance) {
633
+ if (!isTerminalBacklogExecutionStatus(provenance.status)) {
634
+ return provenance;
635
+ }
636
+ return {
637
+ ...provenance,
638
+ failedAtStep: null,
639
+ errorMessage: null,
640
+ pendingBlockers: []
641
+ };
642
+ }
643
+ function warnIfMergedWithoutCommit(provenance) {
644
+ if (provenance.status === "merged" && !provenance.mergeCommit) {
645
+ emitBacklogExecutionProvenanceWarning(
646
+ `[build] Persisting backlog item ${provenance.backlogItemId} as merged without a mergeCommit; the record cannot prove the merge landed.`,
647
+ {
648
+ backlogItemId: provenance.backlogItemId,
649
+ operation: "save-merged-without-merge-commit"
650
+ }
651
+ );
652
+ }
653
+ }
654
+ async function saveBacklogExecutionProvenance(projectRoot, provenance) {
655
+ warnIfMergedWithoutCommit(provenance);
656
+ await ensureBacklogExecutionProvenanceDir(projectRoot);
657
+ const filePath = getBacklogExecutionProvenancePath(projectRoot, provenance.backlogItemId);
658
+ const next = {
659
+ ...normalizeBacklogExecutionProvenance(provenance),
660
+ updatedAt: nowIso()
661
+ };
662
+ await atomicWriteJson(filePath, next);
663
+ }
664
+ function saveBacklogExecutionProvenanceSync(projectRoot, provenance) {
665
+ warnIfMergedWithoutCommit(provenance);
666
+ ensureBacklogExecutionProvenanceDirSync(projectRoot);
667
+ const filePath = getBacklogExecutionProvenancePath(projectRoot, provenance.backlogItemId);
668
+ const next = {
669
+ ...normalizeBacklogExecutionProvenance(provenance),
670
+ updatedAt: nowIso()
671
+ };
672
+ const dir = path.dirname(filePath);
673
+ const tempPath = path.join(dir, `.tmp.${process.pid}.${Date.now()}.${randomUUID()}`);
674
+ fsSync.writeFileSync(tempPath, `${JSON.stringify(next, null, 2)}
675
+ `, "utf8");
676
+ fsSync.renameSync(tempPath, filePath);
677
+ }
678
+ async function updateBacklogExecutionProvenance(projectRoot, backlogItemId, updates) {
679
+ const current = await loadBacklogExecutionProvenance(projectRoot, backlogItemId) ?? createInitialBacklogExecutionProvenance(backlogItemId);
680
+ const effectiveUpdates = { ...updates };
681
+ if (updates.status === "failed" && backlogExecutionStatusCarriesDelivery(current.status)) {
682
+ delete effectiveUpdates.status;
683
+ }
684
+ const next = {
685
+ ...current,
686
+ ...effectiveUpdates,
687
+ backlogItemId
688
+ };
689
+ if (effectiveUpdates.status && effectiveUpdates.status !== "blocked") {
690
+ next.pendingBlockers = [];
691
+ }
692
+ if (next.status === "merged" && !next.mergeCommit) {
693
+ throw new Error(
694
+ `Refusing to mark backlog item ${backlogItemId} as merged without a mergeCommit; include mergeCommit in the same update.`
695
+ );
696
+ }
697
+ await saveBacklogExecutionProvenance(projectRoot, next);
698
+ return next;
699
+ }
700
+ async function updateAdHocBacklogExecutionProvenance(projectRoot, backlogItemId, updates) {
701
+ const current = await loadBacklogExecutionProvenance(projectRoot, backlogItemId);
702
+ if (backlogExecutionStatusCarriesDelivery(current?.status)) return;
703
+ await updateBacklogExecutionProvenance(projectRoot, backlogItemId, updates);
704
+ }
705
+ async function acquireBacklogExecutionLock(projectRoot, backlogItemId) {
706
+ await ensureBacklogExecutionProvenanceDir(projectRoot);
707
+ await cleanupTerminalBacklogExecutionLockFromStoredProvenance(projectRoot, backlogItemId);
708
+ const filePath = lockPath(projectRoot, backlogItemId);
709
+ const retryDeadlineMs = Date.now() + DEFAULT_BACKLOG_EXECUTION_LOCK_RETRY_MS;
710
+ const ownerToken = `${process.pid}:${randomUUID()}`;
711
+ const attemptCreate = async () => {
712
+ const initializingPath = `${filePath}.init.${randomUUID()}`;
713
+ const handle = await fs.open(initializingPath, "wx");
714
+ try {
715
+ const stat2 = await handle.stat();
716
+ await handle.writeFile(formatBacklogExecutionLockContent(ownerToken), "utf8");
717
+ await handle.close();
718
+ await fs.link(initializingPath, filePath);
719
+ return { path: filePath, ownerToken, lockDev: stat2.dev, lockIno: stat2.ino };
720
+ } catch (error) {
721
+ await handle.close().catch(() => {
722
+ });
723
+ throw error;
724
+ } finally {
725
+ await fs.unlink(initializingPath).catch(() => void 0);
726
+ }
727
+ };
728
+ const blockingError = new Error(
729
+ `Backlog item ${backlogItemId} is already being executed. Remove ${path.relative(projectRoot, filePath)} if the prior run is stale.`
730
+ );
731
+ while (true) {
732
+ try {
733
+ return await attemptCreate();
734
+ } catch (error) {
735
+ if (error.code !== "EEXIST") {
736
+ throw error;
737
+ }
738
+ let isStale = false;
739
+ let stalePid = null;
740
+ let staleHost = null;
741
+ let staleOwnerToken = "";
742
+ try {
743
+ const content = await fs.readFile(filePath, "utf8");
744
+ const payload = parseBacklogExecutionLockContent(content);
745
+ staleOwnerToken = payload.ownerToken;
746
+ stalePid = payload.pid;
747
+ staleHost = payload.host;
748
+ isStale = await shouldReclaimBacklogExecutionLockFile(filePath, payload);
749
+ } catch {
750
+ isStale = true;
751
+ }
752
+ if (!isStale) {
753
+ if (Date.now() < retryDeadlineMs) {
754
+ await new Promise((resolve2) => setTimeout(resolve2, 10));
755
+ continue;
756
+ }
757
+ throw blockingError;
758
+ }
759
+ emitBacklogExecutionProvenanceWarning(
760
+ `[build] Stale lock detected for backlog item ${backlogItemId} (stale PID: ${stalePid ?? "unknown"}, host: ${staleHost ?? "unknown"}). Auto-recovering lock at ${filePath}.`,
761
+ {
762
+ backlogItemId,
763
+ filePath,
764
+ stalePid: stalePid ?? "unknown",
765
+ staleHost: staleHost ?? "unknown",
766
+ operation: "recover-stale-backlog-execution-lock"
767
+ }
768
+ );
769
+ await removeBacklogExecutionLockIfOwnerMatches(filePath, staleOwnerToken).catch(() => false);
770
+ await new Promise((resolve2) => setTimeout(resolve2, 10));
771
+ }
772
+ }
773
+ }
774
+ async function releaseBacklogExecutionLock(lock) {
775
+ try {
776
+ await removeBacklogExecutionLockIfOwnerMatches(lock.path, lock.ownerToken, {
777
+ dev: lock.lockDev,
778
+ ino: lock.lockIno
779
+ });
780
+ } catch (error) {
781
+ if (error.code !== "ENOENT") {
782
+ throw error;
783
+ }
784
+ }
785
+ }
786
+ function releaseBacklogExecutionLockSync(lock) {
787
+ try {
788
+ removeBacklogExecutionLockIfOwnerMatchesSync(lock.path, lock.ownerToken, {
789
+ dev: lock.lockDev,
790
+ ino: lock.lockIno
791
+ });
792
+ } catch (error) {
793
+ if (error.code !== "ENOENT") {
794
+ throw error;
795
+ }
796
+ }
797
+ }
798
+
799
+ export {
800
+ backlogExecutionStatusCarriesDelivery,
801
+ resolveAdHocBacklogExecutionSuccessUpdates,
802
+ BACKLOG_ITEM_COMMIT_TRAILER_KEY,
803
+ formatBacklogItemCommitTrailer,
804
+ extractBacklogItemTrailerIds,
805
+ commitBodyContainsBacklogItemTrailer,
806
+ evaluateAutoFinalizeEligibility,
807
+ evaluateArchiveSyncResumeEligibility,
808
+ listBacklogExecutionProvenanceByStatus,
809
+ projectAdvisoryExecutionEvidence,
810
+ getBacklogExecutionProvenancePath,
811
+ createInitialBacklogExecutionProvenance,
812
+ loadBacklogExecutionProvenance,
813
+ backlogExecutionHostIdentity,
814
+ isBacklogExecutionProvenanceActivelyExecuting,
815
+ saveBacklogExecutionProvenance,
816
+ saveBacklogExecutionProvenanceSync,
817
+ updateBacklogExecutionProvenance,
818
+ updateAdHocBacklogExecutionProvenance,
819
+ acquireBacklogExecutionLock,
820
+ releaseBacklogExecutionLock,
821
+ releaseBacklogExecutionLockSync
822
+ };
823
+ //# sourceMappingURL=chunk-3WY5TU2O.js.map