@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,1300 @@
1
+ import {
2
+ resolveLaunchInheritance
3
+ } from "./chunk-6CAU7VBA.js";
4
+ import {
5
+ tryResolveInstructionsImportOffer
6
+ } from "./chunk-IYY3HQAD.js";
7
+ import {
8
+ extractMockCompletionSignal,
9
+ parseCopilotError,
10
+ parseGeminiError
11
+ } from "./chunk-MKASIKWZ.js";
12
+ import {
13
+ CORE_DOCTRINE,
14
+ isSteeringDisabled
15
+ } from "./chunk-HKO45NLZ.js";
16
+ import {
17
+ resolveReadOnlyWorkingDir
18
+ } from "./chunk-GWHGTG37.js";
19
+ import {
20
+ providerOutputTail
21
+ } from "./chunk-JBBB2Y47.js";
22
+ import {
23
+ sanitizeDiagnosticText
24
+ } from "./chunk-RBKLOUXA.js";
25
+ import {
26
+ assertMockProvidersAllowed
27
+ } from "./chunk-VMFZEVVX.js";
28
+ import {
29
+ buildProviderExecutionEnv
30
+ } from "./chunk-XTXYIISX.js";
31
+ import {
32
+ safeRmDir
33
+ } from "./chunk-ALDTFNZ3.js";
34
+ import {
35
+ authFailureEvidence,
36
+ isAuthFailureError,
37
+ recordAuthOutcome
38
+ } from "./chunk-PPZESPJT.js";
39
+ import {
40
+ getProviderRuntimeQuirks
41
+ } from "./chunk-Y733RB7T.js";
42
+ import {
43
+ ProviderRegistry,
44
+ disabledBySuffix
45
+ } from "./chunk-QJ6OEH4K.js";
46
+ import {
47
+ INHERITED_SOURCES_FILENAME,
48
+ fingerprintInheritedSet,
49
+ oneLine,
50
+ readFrontMatter,
51
+ readLaunchInheritanceRecord,
52
+ stripFrontMatter
53
+ } from "./chunk-BD3PGW6A.js";
54
+ import {
55
+ INHERITED_AGENTS_DIRNAME,
56
+ INHERITED_INSTRUCTIONS_FILENAME,
57
+ INHERITED_SKILLS_DIRNAME,
58
+ INHERITED_STEERING_DIRNAME,
59
+ deliversBuildSet,
60
+ hasInheritanceDecision
61
+ } from "./chunk-43OKHTW4.js";
62
+ import {
63
+ findProjectRoot
64
+ } from "./chunk-35J4NE6S.js";
65
+ import {
66
+ USER_INSTRUCTIONS_FILENAME,
67
+ byteLength,
68
+ getShadowedLegacyInstructionsPath,
69
+ getUserInstructionsPath,
70
+ loadProjectInstructionsFile,
71
+ loadUserInstructionsFile,
72
+ sha256Text
73
+ } from "./chunk-RIMARPCF.js";
74
+ import {
75
+ ProviderExecutionError
76
+ } from "./chunk-RRC5BL7B.js";
77
+ import {
78
+ getDefaultBuildHome,
79
+ getStateDir,
80
+ getUserConfigDir
81
+ } from "./chunk-56WPYDJH.js";
82
+ import {
83
+ BUILD_CONFIG_DIR,
84
+ BUILD_CONFIG_DIR2,
85
+ BUILD_HOME,
86
+ BUILD_MOCK_PROVIDERS,
87
+ emitWarning,
88
+ getExecutionContext,
89
+ getRuntimeEnv,
90
+ hasExecutionContext,
91
+ readEnv,
92
+ readRawEnv
93
+ } from "./chunk-7VRJHTGZ.js";
94
+
95
+ // src/core/providers/presentation-profile.ts
96
+ var PRESENTATION_PROFILES = /* @__PURE__ */ new Set([
97
+ "quiet",
98
+ "structured-stream",
99
+ "debug-stream"
100
+ ]);
101
+ function resolvePresentationProfile(options = {}) {
102
+ if (options.explicit) {
103
+ return options.explicit;
104
+ }
105
+ if (options.verbose) {
106
+ return "structured-stream";
107
+ }
108
+ switch (options.entryPoint) {
109
+ case "compete":
110
+ case "pipeline":
111
+ case "cli":
112
+ return "quiet";
113
+ default:
114
+ break;
115
+ }
116
+ const envProfile = options.env?.BUILD_PRESENTATION_PROFILE;
117
+ if (isPresentationProfile(envProfile)) {
118
+ return envProfile;
119
+ }
120
+ return "quiet";
121
+ }
122
+ function shouldForwardStdout(profile) {
123
+ return profile === "structured-stream" || profile === "debug-stream";
124
+ }
125
+ function shouldForwardStructuredEvents(profile) {
126
+ return profile === "structured-stream" || profile === "debug-stream";
127
+ }
128
+ function isPresentationProfile(value) {
129
+ return value !== void 0 && PRESENTATION_PROFILES.has(value);
130
+ }
131
+
132
+ // src/core/providers/inheritance-bundle.ts
133
+ import {
134
+ chmodSync,
135
+ copyFileSync,
136
+ cpSync,
137
+ lstatSync,
138
+ mkdirSync,
139
+ mkdtempSync,
140
+ readdirSync as readdirSync2,
141
+ readFileSync,
142
+ realpathSync,
143
+ writeFileSync
144
+ } from "fs";
145
+ import { dirname as dirname2, join as join2 } from "path";
146
+
147
+ // src/core/steering/layout.ts
148
+ import { readdirSync, statSync } from "fs";
149
+ import { basename, dirname, join, resolve } from "path";
150
+ function getUserBuildHome() {
151
+ const configDir = getUserConfigDir();
152
+ if (readRawEnv(BUILD_HOME) && !readRawEnv(BUILD_CONFIG_DIR) && basename(configDir) === "config") {
153
+ return dirname(configDir);
154
+ }
155
+ return getDefaultBuildHome();
156
+ }
157
+ function isFile(path2) {
158
+ try {
159
+ return statSync(path2).isFile();
160
+ } catch {
161
+ return false;
162
+ }
163
+ }
164
+ function listDirectory(dir) {
165
+ try {
166
+ return readdirSync(dir).sort();
167
+ } catch {
168
+ return [];
169
+ }
170
+ }
171
+ function markdownEntries(dir, kind, level) {
172
+ return listDirectory(dir).filter((file) => file.endsWith(".md") && file.toLowerCase() !== "readme.md").map((file) => ({ kind, level, name: file.slice(0, -".md".length), path: join(dir, file) })).filter((entry) => isFile(entry.path));
173
+ }
174
+ function skillEntries(dir, level) {
175
+ return listDirectory(dir).map((name) => ({ kind: "skills", level, name, path: join(dir, name, "SKILL.md") })).filter((entry) => isFile(entry.path));
176
+ }
177
+ function entriesUnder(root, level) {
178
+ return {
179
+ agents: markdownEntries(join(root, "agents"), "agents", level),
180
+ skills: skillEntries(join(root, "skills"), level),
181
+ steering: markdownEntries(join(root, "steering"), "steering", level)
182
+ };
183
+ }
184
+ function mergeByName(user, repo, replaced) {
185
+ const repoByName = new Map(repo.map((entry) => [entry.name, entry]));
186
+ const kept = user.filter((entry) => {
187
+ const replacement = repoByName.get(entry.name);
188
+ if (replacement) replaced.push({ ...entry, replacedBy: replacement.path });
189
+ return !replacement;
190
+ });
191
+ return [...repo, ...kept].sort((a, b) => a.name.localeCompare(b.name));
192
+ }
193
+ function resolveRepoRoot(cwd, userHome) {
194
+ const root = findProjectRoot(cwd);
195
+ if (!root || resolve(root, BUILD_CONFIG_DIR2) === resolve(userHome)) return void 0;
196
+ return root;
197
+ }
198
+ function repoInstructionsPath(repoRoot) {
199
+ return join(repoRoot, BUILD_CONFIG_DIR2, "config", USER_INSTRUCTIONS_FILENAME);
200
+ }
201
+ function resolveRepoInstructionsPath(cwd = process.cwd()) {
202
+ const repoRoot = resolveRepoRoot(cwd, getUserBuildHome());
203
+ const path2 = repoRoot ? repoInstructionsPath(repoRoot) : void 0;
204
+ return path2 && isFile(path2) ? path2 : void 0;
205
+ }
206
+ function resolveInheritanceLayout(cwd = process.cwd()) {
207
+ const userHome = getUserBuildHome();
208
+ const repoRoot = resolveRepoRoot(cwd, userHome);
209
+ const instructions = [];
210
+ const userInstructions = getUserInstructionsPath();
211
+ if (isFile(userInstructions)) {
212
+ instructions.push({
213
+ kind: "instructions",
214
+ level: "user",
215
+ name: "instructions",
216
+ path: userInstructions
217
+ });
218
+ }
219
+ const user = entriesUnder(userHome, "user");
220
+ let repo = { agents: [], skills: [], steering: [] };
221
+ if (repoRoot) {
222
+ const repoBuild = join(repoRoot, BUILD_CONFIG_DIR2);
223
+ const repoInstructions = repoInstructionsPath(repoRoot);
224
+ if (isFile(repoInstructions)) {
225
+ instructions.push({
226
+ kind: "instructions",
227
+ level: "repo",
228
+ name: "instructions",
229
+ path: repoInstructions
230
+ });
231
+ }
232
+ repo = entriesUnder(repoBuild, "repo");
233
+ }
234
+ const replaced = [];
235
+ const shadowedLegacyInstructions = getShadowedLegacyInstructionsPath();
236
+ return {
237
+ userHome,
238
+ ...repoRoot ? { repoRoot } : {},
239
+ instructions,
240
+ agents: mergeByName(user.agents, repo.agents, replaced),
241
+ skills: mergeByName(user.skills, repo.skills, replaced),
242
+ steering: mergeByName(user.steering, repo.steering, replaced),
243
+ replaced,
244
+ ...shadowedLegacyInstructions ? { shadowedLegacyInstructions } : {}
245
+ };
246
+ }
247
+
248
+ // src/core/steering/instruction-set.ts
249
+ var INSTRUCTION_SET_PRECEDENCE_NOTE = "These instructions come from Build. They take precedence over your own user-level instructions, and later sections here take precedence over earlier ones. The repository's own instruction files take precedence over all of them.";
250
+ function resolveBuildInstructionSet(cwd) {
251
+ if (isSteeringDisabled()) return void 0;
252
+ const parts = [INSTRUCTION_SET_PRECEDENCE_NOTE];
253
+ const sources = [];
254
+ const floorText = CORE_DOCTRINE.map((entry) => entry.text).join("\n\n");
255
+ if (floorText) {
256
+ parts.push(floorText);
257
+ sources.push({ kind: "floor", sha256: sha256Text(floorText), bytes: byteLength(floorText) });
258
+ }
259
+ const repoPath = resolveRepoInstructionsPath(cwd);
260
+ for (const loaded of [
261
+ loadUserInstructionsFile(),
262
+ repoPath ? loadProjectInstructionsFile(repoPath) : null
263
+ ]) {
264
+ if (!loaded) continue;
265
+ parts.push(loaded.text.trim());
266
+ sources.push(loaded.source);
267
+ }
268
+ const text = `${parts.join("\n\n")}
269
+ `;
270
+ return { text, sha256: sha256Text(text), bytes: byteLength(text), sources };
271
+ }
272
+
273
+ // src/core/steering/steering-index.ts
274
+ var STEERING_INDEX_INTRO = "Steering docs from Build. Each line names a doc, says what it covers, and gives its path. Before you work on something a doc covers, read that doc and follow it.";
275
+ var SUMMARY_MAX_CHARS = 160;
276
+ var HEADING = /^#{1,6}\s+(.*?)(?:\s+#+)?$/;
277
+ var FIRST_SENTENCE = /^.*?[.!?](?=\s|$)/;
278
+ function cap(text) {
279
+ if (text.length <= SUMMARY_MAX_CHARS) return text;
280
+ const cut = text.slice(0, SUMMARY_MAX_CHARS - 3);
281
+ const lastSpace = cut.lastIndexOf(" ");
282
+ return `${lastSpace > 0 ? cut.slice(0, lastSpace) : cut}...`;
283
+ }
284
+ function summarizeSteeringDoc(text) {
285
+ const description = oneLine(readFrontMatter(text).description);
286
+ if (description) return cap(description);
287
+ const paragraph = [];
288
+ for (const line of stripFrontMatter(text).split(/\r?\n/)) {
289
+ const trimmed = line.trim();
290
+ const heading = HEADING.exec(trimmed);
291
+ if (paragraph.length === 0 && heading) return cap(oneLine(heading[1]));
292
+ if (!trimmed || heading) {
293
+ if (paragraph.length > 0) break;
294
+ continue;
295
+ }
296
+ paragraph.push(trimmed);
297
+ }
298
+ const joined = oneLine(paragraph.join(" "));
299
+ return cap(FIRST_SENTENCE.exec(joined)?.[0] ?? joined);
300
+ }
301
+ function buildSteeringIndexText(docs) {
302
+ const lines = docs.map((doc) => {
303
+ const summary = summarizeSteeringDoc(doc.text);
304
+ return `- ${doc.name}${summary ? `: ${summary}` : ""} (file: ${doc.path})`;
305
+ });
306
+ return lines.length > 0 ? `${STEERING_INDEX_INTRO}
307
+ ${lines.join("\n")}
308
+ ` : "";
309
+ }
310
+
311
+ // src/core/providers/inheritance-bundle.ts
312
+ function makeReadOnly(path2) {
313
+ const stat = lstatSync(path2);
314
+ if (stat.isSymbolicLink()) return;
315
+ if (stat.isDirectory()) {
316
+ for (const name of readdirSync2(path2)) makeReadOnly(join2(path2, name));
317
+ return;
318
+ }
319
+ chmodSync(path2, stat.mode & 365);
320
+ }
321
+ function copySkillsAndAgents(dir, layout, reads) {
322
+ for (const skill of reads("skills") ? layout.skills : []) {
323
+ const target = join2(dir, INHERITED_SKILLS_DIRNAME, skill.name);
324
+ cpSync(realpathSync(dirname2(skill.path)), target, { recursive: true });
325
+ makeReadOnly(target);
326
+ }
327
+ for (const agent of reads("agents") ? layout.agents : []) {
328
+ const target = join2(dir, INHERITED_AGENTS_DIRNAME, `${agent.name}.md`);
329
+ mkdirSync(dirname2(target), { recursive: true });
330
+ copyFileSync(agent.path, target);
331
+ makeReadOnly(target);
332
+ }
333
+ }
334
+ function copySteeringDocs(dir, layout) {
335
+ const docs = layout.steering.map((doc) => {
336
+ const text = readFileSync(doc.path, "utf8");
337
+ const path2 = join2(dir, INHERITED_STEERING_DIRNAME, `${doc.name}.md`);
338
+ mkdirSync(dirname2(path2), { recursive: true });
339
+ writeFileSync(path2, text, { mode: 292 });
340
+ return { name: doc.name, path: path2, text };
341
+ });
342
+ return buildSteeringIndexText(docs);
343
+ }
344
+ function setKinds(layout) {
345
+ const kinds = ["instructions"];
346
+ for (const kind of ["skills", "agents", "steering"]) {
347
+ if (layout[kind].length > 0) kinds.push(kind);
348
+ }
349
+ return kinds;
350
+ }
351
+ function createInheritanceBundle(launch, workingDir, routes) {
352
+ if (!hasInheritanceDecision(launch)) return void 0;
353
+ const cwd = workingDir ?? process.cwd();
354
+ const set = deliversBuildSet(launch) ? resolveBuildInstructionSet(cwd) : void 0;
355
+ let cleanup;
356
+ try {
357
+ const root = join2(getStateDir(), "inheritance");
358
+ mkdirSync(root, { recursive: true, mode: 448 });
359
+ const dir = mkdtempSync(join2(root, "run-"));
360
+ cleanup = async () => {
361
+ await safeRmDir(dir, { protectedPaths: [root], managedRoots: [root] }).catch(() => void 0);
362
+ };
363
+ if (!set) return { dir, cleanup };
364
+ const layout = resolveInheritanceLayout(cwd);
365
+ const prepared = { id: fingerprintInheritedSet(set.text, layout), kinds: setKinds(layout) };
366
+ const reads = (kind) => typeof routes?.routes[kind] === "string";
367
+ const steeringIndex = reads("steering") ? copySteeringDocs(dir, layout) : "";
368
+ if (reads("instructions")) {
369
+ const text = steeringIndex ? `${set.text}
370
+ ${steeringIndex}` : set.text;
371
+ writeFileSync(join2(dir, INHERITED_INSTRUCTIONS_FILENAME), text, { mode: 292 });
372
+ writeFileSync(join2(dir, INHERITED_SOURCES_FILENAME), JSON.stringify(set.sources), {
373
+ mode: 292
374
+ });
375
+ }
376
+ copySkillsAndAgents(dir, layout, reads);
377
+ return { dir, set: prepared, cleanup };
378
+ } catch (error) {
379
+ void cleanup?.();
380
+ emitWarning(
381
+ "CFG-001",
382
+ { taskId: "runtime-steering", subsystem: "steering", executionPhase: "setup" },
383
+ {
384
+ severity: "WARN" /* WARN */,
385
+ metadata: {
386
+ operation: "createInheritanceBundle",
387
+ error: error instanceof Error ? error.message : String(error)
388
+ }
389
+ }
390
+ );
391
+ return void 0;
392
+ }
393
+ }
394
+
395
+ // src/core/providers/native-mock-runner.ts
396
+ import * as fs from "fs/promises";
397
+ import * as path from "path";
398
+ function getProviderEnvValue(options, key) {
399
+ return options.env?.[key] ?? process.env[key];
400
+ }
401
+ function buildMockAIJudgeOutput(prompt) {
402
+ if (!prompt.includes('"variants"') || !prompt.includes('"summary"') || !prompt.includes('"winner"')) {
403
+ return void 0;
404
+ }
405
+ const variantIds = Array.from(prompt.matchAll(/^### Variant:[^\r\n]*\(id:[ \t]*([^)\r\n]+)\)/gm)).map((match) => match[1]?.trim()).filter((id) => Boolean(id));
406
+ const ids = variantIds.length > 0 ? Array.from(new Set(variantIds)) : ["v1"];
407
+ const ranked = [...ids];
408
+ const variants = ranked.map((id, index) => {
409
+ const score = Math.max(60, 92 - index * 6);
410
+ return {
411
+ id,
412
+ delivery: {
413
+ score,
414
+ rationale: "Synthetic mock judge score based on available mock deliverable evidence.",
415
+ evidence: ["E1"]
416
+ },
417
+ correctness: {
418
+ score,
419
+ rationale: "Synthetic mock judge score for deterministic validation runs.",
420
+ evidence: ["E1"]
421
+ },
422
+ quality: {
423
+ score,
424
+ rationale: "Synthetic mock judge score for deterministic validation runs.",
425
+ evidence: ["E1"]
426
+ },
427
+ dimensions: {
428
+ readability: score,
429
+ maintainability: score,
430
+ security: Math.max(50, score - 4),
431
+ innovation: Math.max(50, score - 8)
432
+ },
433
+ limitation: {
434
+ summary: "Synthetic mock output cannot assess real implementation quality.",
435
+ evidence: []
436
+ },
437
+ os: score
438
+ };
439
+ });
440
+ return JSON.stringify({
441
+ variants,
442
+ summary: {
443
+ ranking: ranked,
444
+ rankingRationale: "Synthetic mock judge ranking for deterministic provider validation.",
445
+ confidence: ids.length > 1 ? 0.86 : 0.65,
446
+ confidenceRationale: "Confidence reflects deterministic mock evidence only.",
447
+ top2SeparationRationale: ids.length > 1 ? "Synthetic score separation between mock variants." : "N/A: single variant"
448
+ },
449
+ winner: {
450
+ id: ranked[0],
451
+ reason: "Highest synthetic mock judge score."
452
+ }
453
+ });
454
+ }
455
+ function throwIfAborted(provider, abortSignal) {
456
+ if (abortSignal?.aborted) {
457
+ throw createMockAbortError(provider);
458
+ }
459
+ }
460
+ function createMockAbortError(provider) {
461
+ return new ProviderExecutionError(`Mock ${provider} execution aborted.`, {
462
+ retryable: false,
463
+ reason: "aborted"
464
+ });
465
+ }
466
+ async function runAbortableMockIo(provider, abortSignal, operation) {
467
+ throwIfAborted(provider, abortSignal);
468
+ const promise = operation();
469
+ if (!abortSignal) {
470
+ return promise;
471
+ }
472
+ return new Promise((resolve2, reject) => {
473
+ const onAbort = () => reject(createMockAbortError(provider));
474
+ const cleanup = () => abortSignal.removeEventListener("abort", onAbort);
475
+ abortSignal.addEventListener("abort", onAbort, { once: true });
476
+ promise.then(
477
+ (value) => {
478
+ cleanup();
479
+ resolve2(value);
480
+ },
481
+ (error) => {
482
+ cleanup();
483
+ reject(error);
484
+ }
485
+ );
486
+ });
487
+ }
488
+ async function runMockNative(options) {
489
+ const { provider, prompt, workingDir, files, onData } = options;
490
+ const intentPipelineMockOutput = "reliability-canary-output/mock-output.txt";
491
+ throwIfAborted(provider, options.abortSignal);
492
+ if (options.executionIntent === "analysis") {
493
+ const mockJudgeOutput = buildMockAIJudgeOutput(prompt);
494
+ if (mockJudgeOutput) {
495
+ throwIfAborted(provider, options.abortSignal);
496
+ return {
497
+ stdout: mockJudgeOutput,
498
+ stderr: "",
499
+ exitCode: 0
500
+ };
501
+ }
502
+ }
503
+ if (getProviderEnvValue(options, "BUILD_MOCK_PROVIDER_FAILURE") === "1") {
504
+ const message2 = `Mock ${provider} execution failed (BUILD_MOCK_PROVIDER_FAILURE=1)`;
505
+ throwIfAborted(provider, options.abortSignal);
506
+ onData?.(`${message2}
507
+ `);
508
+ return {
509
+ stdout: "",
510
+ stderr: message2,
511
+ exitCode: 1
512
+ };
513
+ }
514
+ if (getProviderEnvValue(options, "BUILD_MOCK_PROVIDER_NO_CHANGES") === "1") {
515
+ const message2 = `Mock ${provider} execution produced no changes (BUILD_MOCK_PROVIDER_NO_CHANGES=1)`;
516
+ throwIfAborted(provider, options.abortSignal);
517
+ onData?.(`${message2}
518
+ `);
519
+ return {
520
+ stdout: message2,
521
+ stderr: "",
522
+ exitCode: 0
523
+ };
524
+ }
525
+ if (getProviderEnvValue(options, "BUILD_MOCK_INTENT_PIPELINE") === "1") {
526
+ if (options.executionIntent === "analysis" && (options.circuitBreakerScope?.startsWith("plan-decompose:") || prompt.includes('"subStages"'))) {
527
+ throwIfAborted(provider, options.abortSignal);
528
+ return {
529
+ stdout: JSON.stringify({
530
+ subStages: [
531
+ {
532
+ id: "canary-write",
533
+ type: "standard",
534
+ name: "Write reliability canary marker",
535
+ prompt: `Write a deterministic reliability canary marker to ${intentPipelineMockOutput}`,
536
+ deps: [],
537
+ estimatedCost: 0.01,
538
+ allowlist: ["reliability-canary-output/"]
539
+ },
540
+ {
541
+ id: "canary-verify",
542
+ type: "verify",
543
+ name: "Verify reliability canary marker",
544
+ prompt: "Verify the reliability canary marker exists",
545
+ deps: ["canary-write"],
546
+ estimatedCost: 0.01,
547
+ verify: {
548
+ commands: [`test -f ${intentPipelineMockOutput}`]
549
+ }
550
+ }
551
+ ],
552
+ rationale: "Synthetic reliability canary plan with one write stage and one verify stage.",
553
+ estimatedTotalCost: 0.02,
554
+ estimatedDurationMs: 1e3,
555
+ hasParallelGroups: false,
556
+ parallelGroups: []
557
+ }),
558
+ stderr: "",
559
+ exitCode: 0
560
+ };
561
+ }
562
+ if (options.executionIntent === "analysis" && prompt.includes('"blockers"')) {
563
+ throwIfAborted(provider, options.abortSignal);
564
+ return {
565
+ stdout: '{"blockers":[]}',
566
+ stderr: "",
567
+ exitCode: 0
568
+ };
569
+ }
570
+ if (options.executionIntent !== "analysis") {
571
+ if (getProviderEnvValue(options, "BUILD_MOCK_INTENT_PIPELINE_EXECUTION_FAILURE") === "1") {
572
+ const message3 = "Mock intent pipeline execution failed (BUILD_MOCK_INTENT_PIPELINE_EXECUTION_FAILURE=1)";
573
+ throwIfAborted(provider, options.abortSignal);
574
+ onData?.(`${message3}
575
+ `);
576
+ return {
577
+ stdout: "",
578
+ stderr: message3,
579
+ exitCode: 1
580
+ };
581
+ }
582
+ const targetPath2 = path.join(workingDir, intentPipelineMockOutput);
583
+ await runAbortableMockIo(
584
+ provider,
585
+ options.abortSignal,
586
+ () => fs.mkdir(path.dirname(targetPath2), { recursive: true })
587
+ );
588
+ await runAbortableMockIo(
589
+ provider,
590
+ options.abortSignal,
591
+ () => fs.writeFile(targetPath2, `Synthetic reliability canary marker from ${provider}
592
+ `, "utf8")
593
+ );
594
+ const message2 = `Mock ${provider} execution applied change to ${intentPipelineMockOutput}`;
595
+ throwIfAborted(provider, options.abortSignal);
596
+ onData?.(`${message2}
597
+ `);
598
+ return {
599
+ stdout: message2,
600
+ stderr: "",
601
+ exitCode: 0,
602
+ filesModified: [intentPipelineMockOutput]
603
+ };
604
+ }
605
+ return {
606
+ stdout: "{}",
607
+ stderr: "",
608
+ exitCode: 0
609
+ };
610
+ }
611
+ if (options.executionIntent === "analysis") {
612
+ throwIfAborted(provider, options.abortSignal);
613
+ return {
614
+ stdout: "{}",
615
+ stderr: "",
616
+ exitCode: 0
617
+ };
618
+ }
619
+ const defaultMockOutput = "build-mock-output.txt";
620
+ const envMockOutput = getProviderEnvValue(options, "BUILD_MOCK_OUTPUT_FILE");
621
+ const safeEnvMockOutput = typeof envMockOutput === "string" && envMockOutput.replaceAll("\\", "/").startsWith(".build-project/tmp/") ? envMockOutput : void 0;
622
+ const promptFileMatch = prompt.match(/\bFILES?:\s*([^\s,;]+)/i);
623
+ const promptFileTarget = promptFileMatch?.[1]?.replace(/[.)\]}]+$/g, "");
624
+ const safePromptFileTarget = promptFileTarget && !path.isAbsolute(promptFileTarget) && !promptFileTarget.includes("..") && !promptFileTarget.replaceAll("\\", "/").startsWith(".build-project/") ? promptFileTarget : void 0;
625
+ const targetCandidate = files?.[0] ?? safePromptFileTarget ?? safeEnvMockOutput ?? defaultMockOutput;
626
+ const safeTarget = targetCandidate && !path.isAbsolute(targetCandidate) && !targetCandidate.includes("..") ? targetCandidate : defaultMockOutput;
627
+ const targetPath = path.join(workingDir, safeTarget);
628
+ await runAbortableMockIo(
629
+ provider,
630
+ options.abortSignal,
631
+ () => fs.mkdir(path.dirname(targetPath), { recursive: true })
632
+ );
633
+ const completionSignal = extractMockCompletionSignal(prompt);
634
+ const promptPreview = prompt.slice(0, 120).split(/\r?\n/).map((line) => line ? `// ${line}` : "//").join("\n");
635
+ const content = `// Mock change from ${provider} (native basic mode)
636
+ ${promptPreview}
637
+ `;
638
+ await runAbortableMockIo(
639
+ provider,
640
+ options.abortSignal,
641
+ () => fs.writeFile(targetPath, content, { flag: "a" })
642
+ );
643
+ const message = `Mock ${provider} execution applied change to ${safeTarget}` + (completionSignal ? `
644
+ ${completionSignal}` : "");
645
+ throwIfAborted(provider, options.abortSignal);
646
+ onData?.(`${message}
647
+ `);
648
+ return {
649
+ stdout: message,
650
+ stderr: "",
651
+ exitCode: 0,
652
+ filesModified: [safeTarget],
653
+ // The mock has already written the target, so report it as an already-applied
654
+ // edit. Provider-specific mock branches used to supply this, and a
655
+ // workspace-agent run outside a git worktree has no other discovery channel:
656
+ // git fallback finds nothing and the mock writes no edit-file declaration.
657
+ workspaceEdits: [
658
+ {
659
+ op: "writeFile",
660
+ path: safeTarget,
661
+ contents: content,
662
+ alreadyOnDisk: true,
663
+ _source: "protocol"
664
+ }
665
+ ]
666
+ };
667
+ }
668
+
669
+ // src/core/providers/provider-invocation-env.ts
670
+ import { AsyncLocalStorage } from "async_hooks";
671
+ var scope = new AsyncLocalStorage();
672
+ function withProviderInvocationEnv(providerEnv, fn) {
673
+ return scope.run(providerEnv, fn);
674
+ }
675
+ async function applyProviderInvocationEnv(provider, env) {
676
+ const providerEnv = scope.getStore();
677
+ const overrides = providerEnv ? await providerEnv(provider) : void 0;
678
+ return overrides ? { ...env, ...overrides } : env;
679
+ }
680
+
681
+ // src/core/providers/provider-skip.ts
682
+ var TRUTHY = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]);
683
+ function providerSkipEnvName(providerId) {
684
+ return `BUILD_SKIP_${providerId.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`;
685
+ }
686
+ function resolveProviderSkip(providerId, env) {
687
+ const name = providerSkipEnvName(providerId);
688
+ const raw = env && Object.hasOwn(env, name) ? env[name] : getRuntimeEnv(name);
689
+ if (!raw || !TRUTHY.has(raw.trim().toLowerCase())) return void 0;
690
+ const stderr = `Provider ${providerId} skipped via ${name}`;
691
+ return {
692
+ stdout: "",
693
+ stderr,
694
+ exitCode: 1,
695
+ skipped: true,
696
+ skipReason: name,
697
+ commandPath: providerId,
698
+ argvRedacted: [],
699
+ stdoutTail: "",
700
+ stderrTail: providerOutputTail(stderr)
701
+ };
702
+ }
703
+
704
+ // src/core/providers/telemetry-sink.ts
705
+ var DEFAULT_PROD_MAX_EVENTS = 5e3;
706
+ var DEFAULT_TEST_MAX_EVENTS = 1e4;
707
+ function resolveTelemetryRetentionPolicy(options = {}) {
708
+ const env = options.env ?? process.env;
709
+ const isTestRunner = env.NODE_ENV === "test" || env.VITEST === "true" || env.VITEST === "1";
710
+ let retainEvents;
711
+ if (options.retainEvents !== void 0) {
712
+ retainEvents = options.retainEvents;
713
+ } else {
714
+ const raw = env.BUILD_TELEMETRY_RETAIN_EVENTS;
715
+ if (raw === "0" || raw === "false") {
716
+ retainEvents = false;
717
+ } else if (raw === "1" || raw === "true") {
718
+ retainEvents = true;
719
+ } else {
720
+ retainEvents = true;
721
+ }
722
+ }
723
+ let maxRetainedEvents;
724
+ if (typeof options.maxRetainedEvents === "number" && options.maxRetainedEvents > 0) {
725
+ maxRetainedEvents = options.maxRetainedEvents;
726
+ } else {
727
+ const raw = env.BUILD_TELEMETRY_MAX_EVENTS;
728
+ const parsed = raw === void 0 ? NaN : Number.parseInt(raw, 10);
729
+ if (Number.isFinite(parsed) && parsed > 0) {
730
+ maxRetainedEvents = parsed;
731
+ } else {
732
+ maxRetainedEvents = isTestRunner ? DEFAULT_TEST_MAX_EVENTS : DEFAULT_PROD_MAX_EVENTS;
733
+ }
734
+ }
735
+ return { retainEvents, maxRetainedEvents };
736
+ }
737
+ var TelemetrySink = class {
738
+ constructor(options = {}) {
739
+ this.options = options;
740
+ this.retention = resolveTelemetryRetentionPolicy({
741
+ retainEvents: options.retainEvents,
742
+ maxRetainedEvents: options.maxRetainedEvents
743
+ });
744
+ }
745
+ options;
746
+ events = [];
747
+ usage = {};
748
+ usageSemantics;
749
+ usageInvalid = false;
750
+ retention;
751
+ handleStdoutLine(line, context = {}) {
752
+ return this.handleLine(line, { ...context, stream: "stdout" });
753
+ }
754
+ handleStderrLine(line, context = {}) {
755
+ return this.handleLine(line, { ...context, stream: "stderr" });
756
+ }
757
+ handleStreamEvent(event, context = {}) {
758
+ const telemetryEvent = this.toTelemetryEvent(event, context);
759
+ this.record(telemetryEvent);
760
+ if (event.type === "usage_delta") {
761
+ this.addUsage(event.usage, event.semantics);
762
+ }
763
+ return telemetryEvent;
764
+ }
765
+ getAccumulatedUsage() {
766
+ return this.usageInvalid ? {} : { ...this.usage };
767
+ }
768
+ getEvents() {
769
+ return [...this.events];
770
+ }
771
+ forwardPresentationChunk(chunk) {
772
+ this.options.onPresentationChunk?.(chunk);
773
+ }
774
+ forwardPresentationErrorChunk(chunk) {
775
+ this.options.onPresentationErrorChunk?.(chunk);
776
+ }
777
+ forwardStreamEvent(event) {
778
+ this.options.onStreamEvent?.(event);
779
+ }
780
+ handleLine(line, context) {
781
+ this.record({
782
+ type: "raw_event",
783
+ stream: context.stream ?? "stdout",
784
+ provider: context.provider,
785
+ timestamp: Date.now(),
786
+ line: sanitizeDiagnosticText(line)
787
+ });
788
+ const streamEvents = this.parseStreamEvents(line, context);
789
+ for (const event of streamEvents) {
790
+ this.handleStreamEvent(event, context);
791
+ }
792
+ return {
793
+ presentationChunk: this.formatPresentationChunk(line, context),
794
+ streamEvents
795
+ };
796
+ }
797
+ parseStreamEvents(line, context) {
798
+ if (!this.options.parseLine) {
799
+ return [];
800
+ }
801
+ try {
802
+ const parsed = this.options.parseLine(line, context);
803
+ if (!parsed) {
804
+ return [];
805
+ }
806
+ return Array.isArray(parsed) ? parsed : [parsed];
807
+ } catch (error) {
808
+ this.record({
809
+ type: "lifecycle",
810
+ phase: "error",
811
+ provider: context.provider,
812
+ timestamp: Date.now(),
813
+ message: "Failed to parse provider stream line",
814
+ error: error instanceof Error ? error.message : String(error)
815
+ });
816
+ return [];
817
+ }
818
+ }
819
+ formatPresentationChunk(line, context) {
820
+ if (!this.options.formatLine) {
821
+ return sanitizeDiagnosticText(line);
822
+ }
823
+ const formatted = this.options.formatLine(line, context);
824
+ if (formatted === null || formatted === void 0) {
825
+ return void 0;
826
+ }
827
+ return sanitizeDiagnosticText(formatted);
828
+ }
829
+ toTelemetryEvent(event, context) {
830
+ switch (event.type) {
831
+ case "attempt_started":
832
+ return {
833
+ type: "attempt_started",
834
+ attempt: event.attempt,
835
+ provider: context.provider,
836
+ timestamp: Date.now(),
837
+ rawEventType: event.rawEventType
838
+ };
839
+ case "model_resolved":
840
+ return {
841
+ type: "model_resolved",
842
+ model: event.model,
843
+ provider: context.provider,
844
+ timestamp: Date.now(),
845
+ rawEventType: event.rawEventType
846
+ };
847
+ case "text_delta":
848
+ case "text_snapshot":
849
+ return {
850
+ type: "text_delta",
851
+ text: event.text,
852
+ provider: context.provider,
853
+ timestamp: Date.now(),
854
+ rawEventType: event.rawEventType
855
+ };
856
+ case "tool_event":
857
+ return {
858
+ type: "tool_event",
859
+ name: event.name,
860
+ phase: event.phase,
861
+ id: event.id,
862
+ provider: context.provider,
863
+ timestamp: Date.now(),
864
+ rawEventType: event.rawEventType
865
+ };
866
+ case "usage_delta":
867
+ return {
868
+ type: "usage_delta",
869
+ usage: event.usage,
870
+ semantics: event.semantics,
871
+ provider: context.provider,
872
+ timestamp: Date.now(),
873
+ rawEventType: event.rawEventType
874
+ };
875
+ }
876
+ }
877
+ addUsage(usage, semantics) {
878
+ if (semantics === void 0 || this.usageSemantics !== void 0 && this.usageSemantics !== semantics) {
879
+ this.usageInvalid = true;
880
+ this.record({
881
+ type: "lifecycle",
882
+ phase: "error",
883
+ timestamp: Date.now(),
884
+ message: semantics === void 0 ? "Provider usage event omitted accounting semantics" : "Provider usage event changed accounting semantics"
885
+ });
886
+ return;
887
+ }
888
+ this.usageSemantics = semantics;
889
+ const assign = semantics === "delta" ? addOptional : replaceOptional;
890
+ if (usage.inputTokens !== void 0) {
891
+ this.usage.inputTokens = assign(this.usage.inputTokens, usage.inputTokens);
892
+ }
893
+ if (usage.outputTokens !== void 0) {
894
+ this.usage.outputTokens = assign(this.usage.outputTokens, usage.outputTokens);
895
+ }
896
+ if (usage.cachedInputTokens !== void 0) {
897
+ this.usage.cachedInputTokens = assign(this.usage.cachedInputTokens, usage.cachedInputTokens);
898
+ }
899
+ if (usage.cacheCreationInputTokens !== void 0) {
900
+ this.usage.cacheCreationInputTokens = assign(
901
+ this.usage.cacheCreationInputTokens,
902
+ usage.cacheCreationInputTokens
903
+ );
904
+ }
905
+ if (usage.reasoningTokens !== void 0) {
906
+ this.usage.reasoningTokens = assign(this.usage.reasoningTokens, usage.reasoningTokens);
907
+ }
908
+ if (usage.toolTokens !== void 0) {
909
+ this.usage.toolTokens = assign(this.usage.toolTokens, usage.toolTokens);
910
+ }
911
+ if (usage.extraDimensions) {
912
+ this.usage.extraDimensions ??= {};
913
+ for (const [key, value] of Object.entries(usage.extraDimensions)) {
914
+ this.usage.extraDimensions[key] = semantics === "delta" ? (this.usage.extraDimensions[key] ?? 0) + value : value;
915
+ }
916
+ }
917
+ if (usage.cacheReadTokensIncludedInInput === true) {
918
+ this.usage.cacheReadTokensIncludedInInput = true;
919
+ }
920
+ if (usage.cacheCreationTokensIncludedInInput === true) {
921
+ this.usage.cacheCreationTokensIncludedInInput = true;
922
+ }
923
+ }
924
+ record(event) {
925
+ if (this.retention.retainEvents) {
926
+ this.events.push(event);
927
+ if (this.events.length > this.retention.maxRetainedEvents) {
928
+ this.events.splice(0, this.events.length - this.retention.maxRetainedEvents);
929
+ }
930
+ }
931
+ this.options.onTelemetryEvent?.(event);
932
+ }
933
+ };
934
+ function createPresentationCallbacks(sink, profile) {
935
+ return {
936
+ onData: (chunk) => {
937
+ const result = sink.handleStdoutLine(chunk);
938
+ if (shouldForwardStdout(profile) && result.presentationChunk !== void 0) {
939
+ sink.forwardPresentationChunk(result.presentationChunk);
940
+ }
941
+ if (shouldForwardStructuredEvents(profile)) {
942
+ for (const event of result.streamEvents) {
943
+ sink.forwardStreamEvent(event);
944
+ }
945
+ }
946
+ },
947
+ onErrorData: (chunk) => {
948
+ const result = sink.handleStderrLine(chunk);
949
+ if (shouldForwardStdout(profile) && result.presentationChunk !== void 0) {
950
+ sink.forwardPresentationErrorChunk(result.presentationChunk);
951
+ }
952
+ if (shouldForwardStructuredEvents(profile)) {
953
+ for (const event of result.streamEvents) {
954
+ sink.forwardStreamEvent(event);
955
+ }
956
+ }
957
+ },
958
+ onStreamEvent: (event) => {
959
+ sink.handleStreamEvent(event);
960
+ if (shouldForwardStructuredEvents(profile)) {
961
+ sink.forwardStreamEvent(event);
962
+ }
963
+ }
964
+ };
965
+ }
966
+ function addOptional(current, next) {
967
+ if (next === void 0) {
968
+ return current;
969
+ }
970
+ return (current ?? 0) + next;
971
+ }
972
+ function replaceOptional(_current, next) {
973
+ return next;
974
+ }
975
+
976
+ // src/core/providers/run-provider.ts
977
+ function normalizeWorkspaceModeResult(result, requested) {
978
+ const workspaceModeRequested = result.workspaceModeRequested ?? result.promptModeRequested ?? requested;
979
+ const workspaceModeApplied = result.workspaceMode ?? result.promptMode ?? workspaceModeRequested;
980
+ return {
981
+ ...result,
982
+ workspaceMode: workspaceModeApplied,
983
+ workspaceModeRequested,
984
+ // Backwards compatibility
985
+ promptMode: result.promptMode ?? workspaceModeApplied,
986
+ promptModeRequested: result.promptModeRequested ?? workspaceModeRequested
987
+ };
988
+ }
989
+ function withPresentationCallbacks(options) {
990
+ const existing = options;
991
+ if (existing.__presentationCallbacksWrapped === true) {
992
+ return { options, sink: existing.__telemetrySink };
993
+ }
994
+ const presentationProfile = resolvePresentationProfile({
995
+ explicit: options.presentationProfile,
996
+ verbose: options.verbose,
997
+ entryPoint: options.entryPoint ?? "provider-native"
998
+ });
999
+ const sink = new TelemetrySink({
1000
+ onPresentationChunk: options.onData,
1001
+ onPresentationErrorChunk: options.onErrorData,
1002
+ onStreamEvent: options.onStreamEvent
1003
+ });
1004
+ const callbacks = createPresentationCallbacks(sink, presentationProfile);
1005
+ return {
1006
+ options: {
1007
+ ...options,
1008
+ presentationProfile,
1009
+ onData: callbacks.onData,
1010
+ onErrorData: callbacks.onErrorData,
1011
+ onStreamEvent: callbacks.onStreamEvent,
1012
+ __presentationCallbacksWrapped: true,
1013
+ __telemetrySink: sink
1014
+ },
1015
+ sink
1016
+ };
1017
+ }
1018
+ function mergeSinkUsageIntoResult(result, sink) {
1019
+ if (!sink) return result;
1020
+ const accumulated = sink.getAccumulatedUsage();
1021
+ const hasAny = accumulated.inputTokens !== void 0 || accumulated.outputTokens !== void 0 || accumulated.cachedInputTokens !== void 0 || accumulated.cacheCreationInputTokens !== void 0 || accumulated.reasoningTokens !== void 0 || accumulated.toolTokens !== void 0 || accumulated.extraDimensions !== void 0;
1022
+ if (!hasAny) return result;
1023
+ const existing = result.tokenUsage;
1024
+ const merged = {
1025
+ inputTokens: existing?.inputTokens ?? accumulated.inputTokens ?? 0,
1026
+ outputTokens: existing?.outputTokens ?? accumulated.outputTokens ?? 0,
1027
+ // Sink-accumulated usage sums every event of the run, so it is a run total.
1028
+ eventSemantics: existing?.eventSemantics ?? "logical_run_aggregate"
1029
+ };
1030
+ const optional = {
1031
+ cachedInputTokens: existing?.cachedInputTokens ?? accumulated.cachedInputTokens,
1032
+ cacheCreationInputTokens: existing?.cacheCreationInputTokens ?? accumulated.cacheCreationInputTokens,
1033
+ cacheReadTokensIncludedInInput: existing?.cacheReadTokensIncludedInInput ?? accumulated.cacheReadTokensIncludedInInput,
1034
+ cacheCreationTokensIncludedInInput: existing?.cacheCreationTokensIncludedInInput ?? accumulated.cacheCreationTokensIncludedInInput,
1035
+ reasoningTokens: existing?.reasoningTokens ?? accumulated.reasoningTokens,
1036
+ toolTokens: existing?.toolTokens ?? accumulated.toolTokens,
1037
+ extraDimensions: existing?.extraDimensions ?? accumulated.extraDimensions
1038
+ };
1039
+ for (const [key, value] of Object.entries(optional)) {
1040
+ if (value !== void 0) {
1041
+ Object.assign(merged, { [key]: value });
1042
+ }
1043
+ }
1044
+ return { ...result, tokenUsage: merged };
1045
+ }
1046
+ function recordAuthOutcomeBestEffort(provider, result, evidence, env) {
1047
+ void recordAuthOutcome(provider, result, evidence, { env }).catch(() => {
1048
+ });
1049
+ }
1050
+ async function runViaProviderRegistry(options, providerEnv, workspaceModeRequested) {
1051
+ const {
1052
+ provider,
1053
+ prompt,
1054
+ workingDir,
1055
+ model,
1056
+ files,
1057
+ onData,
1058
+ onErrorData,
1059
+ onStdoutChunk,
1060
+ onStderrChunk,
1061
+ timeoutMs
1062
+ } = options;
1063
+ const { getEngine } = await import("./factory-YCYCB7AE.js");
1064
+ const engine = await getEngine(provider);
1065
+ const runPayload = {
1066
+ variantInvocation: options.variantInvocation,
1067
+ profile: options.profile ?? "default",
1068
+ prompt,
1069
+ workingDir,
1070
+ abortSignal: options.abortSignal,
1071
+ model,
1072
+ modelExecutionPolicy: options.modelExecutionPolicy,
1073
+ fallbackModel: options.fallbackModel,
1074
+ modelReasoningEffort: options.modelReasoningEffort,
1075
+ generationSettings: options.generationSettings,
1076
+ structuredOutput: options.structuredOutput,
1077
+ executionIntent: options.executionIntent,
1078
+ // Native web-search clearance. Omitting this from the
1079
+ // engine.run field list silently drops the flag for every provider dispatched
1080
+ // through this generic path, so a provider builder that honors it can never
1081
+ // observe it. Every provider dispatched here depends on this line.
1082
+ nativeWebSearch: options.nativeWebSearch,
1083
+ isWorktreeExecution: options.isWorktreeExecution,
1084
+ transport: options.transport,
1085
+ executionTransport: options.executionTransport,
1086
+ workspaceMode: workspaceModeRequested,
1087
+ promptMode: workspaceModeRequested,
1088
+ presentationProfile: options.presentationProfile,
1089
+ files,
1090
+ allowedTools: options.allowedTools,
1091
+ tools: options.tools,
1092
+ disallowedTools: options.disallowedTools,
1093
+ attachments: options.attachments,
1094
+ env: providerEnv,
1095
+ onStreamEvent: options.onStreamEvent,
1096
+ readOnlyWorkingDir: options.readOnlyWorkingDir,
1097
+ delegatedSubagents: options.delegatedSubagents,
1098
+ nativeSubagents: options.nativeSubagents,
1099
+ cursorPromptProfile: options.cursorPromptProfile,
1100
+ onData,
1101
+ onErrorData,
1102
+ onStdoutChunk,
1103
+ onStderrChunk,
1104
+ timeout: timeoutMs,
1105
+ deadlineMs: options.deadlineMs,
1106
+ idleWarnMs: options.idleWarnMs,
1107
+ idleKillMs: options.idleKillMs,
1108
+ allowIdleTimeoutAboveProviderDefault: options.allowIdleTimeoutAboveProviderDefault,
1109
+ onActivity: options.onActivity,
1110
+ onSubmittedPrompt: options.onSubmittedPrompt,
1111
+ circuitBreakerScope: options.circuitBreakerScope,
1112
+ recentContext: options.recentContext,
1113
+ taskProfile: options.taskProfile,
1114
+ retryBudget: options.retryBudget,
1115
+ allowEmptyResults: options.allowEmptyResults,
1116
+ permissionMode: options.permissionMode,
1117
+ resumeSessionId: options.resumeSessionId,
1118
+ isBasicCompetition: options.isBasicCompetition,
1119
+ variantId: options.variantId
1120
+ };
1121
+ return engine.run(runPayload);
1122
+ }
1123
+ function isProviderResultAuthFailure(provider, stderr, stdout, exitCode) {
1124
+ const exitCodeNum = typeof exitCode === "number" ? exitCode : void 0;
1125
+ switch (provider) {
1126
+ case "gemini": {
1127
+ const parsed = parseGeminiError(
1128
+ Object.assign(new Error(stderr || stdout || `exit=${exitCode}`), {
1129
+ stderr,
1130
+ stdout,
1131
+ exitCode: exitCodeNum
1132
+ })
1133
+ );
1134
+ return parsed.type === "auth";
1135
+ }
1136
+ case "copilot": {
1137
+ const parsed = parseCopilotError(stderr, stdout, exitCodeNum);
1138
+ return parsed.type === "auth";
1139
+ }
1140
+ default:
1141
+ return isAuthFailureError(stderr || `exit=${exitCode}`);
1142
+ }
1143
+ }
1144
+ function usesAdapterOwnedMock(options) {
1145
+ return options.mockExecution === "adapter" && readEnv(BUILD_MOCK_PROVIDERS).value === "1" && getProviderRuntimeQuirks(options.provider)?.ownsMockExecution === true;
1146
+ }
1147
+ async function runProvider(options) {
1148
+ if (!options.variantRequest) return runProviderInternal(options);
1149
+ const { executeVariantRequest } = await import("./variant-execution-I4ZZUAWY.js");
1150
+ return executeVariantRequest(options, runProviderInternal);
1151
+ }
1152
+ async function runProviderInternal(options) {
1153
+ const wrapped = withPresentationCallbacks({
1154
+ ...options,
1155
+ readOnlyWorkingDir: resolveReadOnlyWorkingDir({
1156
+ readOnlyWorkingDir: options.readOnlyWorkingDir,
1157
+ executionIntent: options.executionIntent
1158
+ })
1159
+ });
1160
+ const executionOptions = wrapped.options;
1161
+ if (!executionOptions.provider) {
1162
+ throw new Error("Provider is required for native execution");
1163
+ }
1164
+ const skipped = resolveProviderSkip(executionOptions.provider, executionOptions.env);
1165
+ if (skipped) return skipped;
1166
+ const mockProvidersEnabled = getProviderEnvValue(executionOptions, "BUILD_MOCK_PROVIDERS") === "1";
1167
+ if (mockProvidersEnabled && !usesAdapterOwnedMock(executionOptions)) {
1168
+ assertMockProvidersAllowed(executionOptions.provider, executionOptions.env);
1169
+ return mergeSinkUsageIntoResult(
1170
+ normalizeWorkspaceModeResult(
1171
+ await runMockNative(executionOptions),
1172
+ executionOptions.workspaceMode ?? executionOptions.promptMode
1173
+ ),
1174
+ wrapped.sink
1175
+ );
1176
+ }
1177
+ if (!ProviderRegistry.isProviderEnabled(executionOptions.provider)) {
1178
+ const suffix = disabledBySuffix(
1179
+ ProviderRegistry.getActiveRegistry(),
1180
+ executionOptions.provider
1181
+ );
1182
+ throw new Error(`Provider is disabled: ${executionOptions.provider}${suffix}`);
1183
+ }
1184
+ try {
1185
+ const result = await runProviderInner(executionOptions);
1186
+ if (mockProvidersEnabled) {
1187
+ } else if ((result.exitCode ?? 0) === 0) {
1188
+ recordAuthOutcomeBestEffort(
1189
+ executionOptions.provider,
1190
+ "ok",
1191
+ { source: "provider-call", message: "Provider call succeeded" },
1192
+ executionOptions.env
1193
+ );
1194
+ } else if (isProviderResultAuthFailure(
1195
+ executionOptions.provider,
1196
+ result.stderr ?? "",
1197
+ result.stdout ?? "",
1198
+ result.exitCode
1199
+ )) {
1200
+ recordAuthOutcomeBestEffort(
1201
+ executionOptions.provider,
1202
+ "failed",
1203
+ {
1204
+ source: "provider-call",
1205
+ message: result.stderr || result.stdout || `Provider exited with code ${result.exitCode}`,
1206
+ ...typeof result.exitCode === "number" ? { exitCode: result.exitCode } : {}
1207
+ },
1208
+ executionOptions.env
1209
+ );
1210
+ }
1211
+ return mergeSinkUsageIntoResult(result, wrapped.sink);
1212
+ } catch (error) {
1213
+ if (!mockProvidersEnabled && isAuthFailureError(error)) {
1214
+ recordAuthOutcomeBestEffort(
1215
+ executionOptions.provider,
1216
+ "failed",
1217
+ authFailureEvidence(error),
1218
+ executionOptions.env
1219
+ );
1220
+ }
1221
+ throw error;
1222
+ }
1223
+ }
1224
+ async function readInheritanceRoutes(provider) {
1225
+ const { ensureRegistryInitialized, registry } = await import("./registry-7XG376SY.js");
1226
+ await ensureRegistryInitialized();
1227
+ return registry.get(provider)?.inheritance;
1228
+ }
1229
+ async function runProviderInner(options) {
1230
+ const inheritance = resolveLaunchInheritance(
1231
+ options.inheritanceScope ?? "automated",
1232
+ options.workingDir
1233
+ );
1234
+ const routes = deliversBuildSet(inheritance) ? await readInheritanceRoutes(options.provider) : void 0;
1235
+ const bundle = createInheritanceBundle(inheritance, options.workingDir, routes);
1236
+ try {
1237
+ const result = await runProviderLaunch(options, inheritance, bundle?.dir);
1238
+ const record = readLaunchInheritanceRecord(options.provider, inheritance, bundle, routes);
1239
+ if (!record) return result;
1240
+ const importStatus = tryResolveInstructionsImportOffer()?.status;
1241
+ const instructionsImport = importStatus ? { instructionsImport: { status: importStatus } } : {};
1242
+ return { ...result, inheritance: { ...record, ...instructionsImport } };
1243
+ } finally {
1244
+ await bundle?.cleanup();
1245
+ }
1246
+ }
1247
+ async function runProviderLaunch(options, inheritance, inheritanceDir) {
1248
+ const { provider, workingDir, model } = options;
1249
+ const workspaceModeRequested = options.workspaceMode ?? options.promptMode;
1250
+ const contextEnv = hasExecutionContext() ? getExecutionContext().envOverrides : {};
1251
+ const attributionEnv = Object.fromEntries(
1252
+ [
1253
+ "BUILD_ACTIVE_TASK_ID",
1254
+ "BUILD_PROJECT_ID",
1255
+ "BUILD_RUN_ID",
1256
+ "BUILD_LAB_ID",
1257
+ "BUILD_LAB_RUN_ID",
1258
+ "BUILD_TELEMETRY_DIR"
1259
+ ].filter((key) => contextEnv[key] !== void 0).map((key) => [key, contextEnv[key]])
1260
+ );
1261
+ const invocationEnv = Object.keys(attributionEnv).length ? { ...attributionEnv, ...options.env } : options.env;
1262
+ const env = await applyProviderInvocationEnv(provider, invocationEnv);
1263
+ const providerEnv = buildProviderExecutionEnv(provider, env, {
1264
+ workingDir,
1265
+ executionIntent: options.executionIntent,
1266
+ inheritance,
1267
+ inheritanceDir
1268
+ });
1269
+ providerEnv.BUILD_AGENT_ROLE ||= "provider";
1270
+ if (provider === "cursor" && options.resumeSessionId) {
1271
+ providerEnv.BUILD_CURSOR_RESUME_SESSION_ID = options.resumeSessionId;
1272
+ }
1273
+ const providerHandlesRateLimitToken = /* @__PURE__ */ new Set([
1274
+ "claude",
1275
+ "codex",
1276
+ "cursor",
1277
+ "opencode",
1278
+ "copilot",
1279
+ "grok",
1280
+ "gemini"
1281
+ ]);
1282
+ if (!providerHandlesRateLimitToken.has(provider)) {
1283
+ const { acquireRateLimitToken } = await import("./safety-E3JJVSFL.js");
1284
+ await acquireRateLimitToken(provider, model);
1285
+ }
1286
+ return normalizeWorkspaceModeResult(
1287
+ await runViaProviderRegistry(options, providerEnv, workspaceModeRequested),
1288
+ workspaceModeRequested
1289
+ );
1290
+ }
1291
+
1292
+ export {
1293
+ getUserBuildHome,
1294
+ resolveInheritanceLayout,
1295
+ resolvePresentationProfile,
1296
+ withProviderInvocationEnv,
1297
+ applyProviderInvocationEnv,
1298
+ runProvider
1299
+ };
1300
+ //# sourceMappingURL=chunk-VCGSWN5M.js.map