@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,855 @@
1
+ import {
2
+ getContainedHomeSiblingRuntimeRoot,
3
+ resolveTrustedBuildHome
4
+ } from "./chunk-56WPYDJH.js";
5
+ import {
6
+ BUILD_HOME_DIR_NAME
7
+ } from "./chunk-7VRJHTGZ.js";
8
+
9
+ // src/core/sandbox/provider-manifests.ts
10
+ import fs from "fs";
11
+ import os from "os";
12
+ import path from "path";
13
+
14
+ // src/core/sandbox/provider-manifest-table.ts
15
+ var sub = (homeRelative, note) => ({
16
+ kind: "subpath",
17
+ homeRelative,
18
+ note
19
+ });
20
+ var lit = (homeRelative, note) => ({
21
+ kind: "literal",
22
+ homeRelative,
23
+ note
24
+ });
25
+ var rgx = (homeRelative, note, probeName) => ({
26
+ kind: "regex",
27
+ homeRelative,
28
+ note,
29
+ ...probeName ? { probeName } : {}
30
+ });
31
+ var COMMON_TOOLCHAIN_WRITE_PATHS = [
32
+ sub(".cache", "XDG cache"),
33
+ sub("Library/Caches", "macOS user caches"),
34
+ sub(".npm"),
35
+ sub(".bun"),
36
+ sub(".m2"),
37
+ sub(".gradle")
38
+ ];
39
+ var CURSOR_KEYCHAIN_WRITE = {
40
+ kind: "subpath",
41
+ homeRelative: "Library/Keychains",
42
+ note: "macOS Keychain state for Cursor CLI login lookup",
43
+ // The cursor mcp.json authority-deny applies to the config dir, not here.
44
+ authorityDenyExempt: true
45
+ };
46
+ var CLAUDE_OPTIONAL_STATE_SUBPATHS = [
47
+ "file-history",
48
+ "plans",
49
+ "debug",
50
+ "paste-cache",
51
+ "uploads",
52
+ "session-env",
53
+ "tasks",
54
+ "shell-snapshots",
55
+ "backups",
56
+ "feedback-bundles",
57
+ "feedback",
58
+ "usage-data",
59
+ "cache",
60
+ "agent-memory",
61
+ "skills",
62
+ "agents",
63
+ "commands",
64
+ "workflows",
65
+ "rules",
66
+ "output-styles"
67
+ ];
68
+ var CLAUDE_STATE_FILE_REGEX = "\\.claude/(?:history\\.jsonl|stats-cache\\.json|\\.credentials\\.json|\\.credentials\\.lock|CLAUDE\\.md)(?:\\.[^/]*)?$";
69
+ var GEMINI_STACK_POLICY_DENY_PATHS = [
70
+ { kind: "literal", relativePath: "settings.json" },
71
+ { kind: "literal", relativePath: "trustedFolders.json" },
72
+ { kind: "subpath", relativePath: "policies" }
73
+ ];
74
+ var PROVIDER_MANIFESTS = {
75
+ "project-verification": {
76
+ providerId: "project-verification",
77
+ requiredWritePaths: [
78
+ ...COMMON_TOOLCHAIN_WRITE_PATHS,
79
+ sub(".cargo/registry"),
80
+ sub(".cargo/git"),
81
+ sub(".nuget/packages"),
82
+ sub(".pub-cache"),
83
+ sub(".gem"),
84
+ sub("Library/pnpm/store"),
85
+ sub(".local/share/pnpm/store"),
86
+ sub("go/pkg/mod")
87
+ ]
88
+ },
89
+ claude: {
90
+ providerId: "claude",
91
+ authorityStateRoot: ".claude",
92
+ // Enumerated, not the whole ~/.claude root: Claude writes its own app data
93
+ // and the content it authors (skills, agents, memory), never settings,
94
+ // hooks, plugins or the native-install binary. Names follow
95
+ // https://code.claude.com/docs/en/claude-directory (Application data and
96
+ // State files to keep). remote-settings.json and policy-limits.json are
97
+ // server-delivered policy caches and are deliberately not granted.
98
+ // Each static subpath is authorityDenyExempt: the authority denies below
99
+ // are joined onto granted roots, and joining them onto these narrow
100
+ // subpaths would only emit meaningless denies (and would block an authored
101
+ // skill that happens to be named `hooks`).
102
+ requiredWritePaths: [
103
+ ...[
104
+ sub(".claude/projects", "Claude CLI transcripts and auto memory"),
105
+ sub(".claude/sessions", "Claude CLI per-session liveness files"),
106
+ ...CLAUDE_OPTIONAL_STATE_SUBPATHS.map((entry) => ({
107
+ ...sub(`.claude/${entry}`, "Claude CLI app data or authored content"),
108
+ probeExempt: true
109
+ })),
110
+ sub(".claude.json.lock", "Claude CLI atomic-write lock")
111
+ ].map((spec) => ({ ...spec, authorityDenyExempt: true })),
112
+ {
113
+ ...rgx(CLAUDE_STATE_FILE_REGEX, "Claude CLI state files and their atomic-write temps"),
114
+ probeExempt: true
115
+ },
116
+ lit(".claude.json", "Claude CLI root config"),
117
+ // Claude writes a lock dir + atomic temp files next to ~/.claude.json;
118
+ // blocking these forces non-atomic writes that can corrupt the config.
119
+ // Observed temp name: .claude.json.tmp.<pid>.<12 hex>.
120
+ rgx(
121
+ "\\.claude\\.json\\.tmp\\.[^/]+$",
122
+ "Claude CLI atomic-write temp",
123
+ ".claude.json.tmp.build-cap-{id}"
124
+ )
125
+ ],
126
+ // A CLAUDE_CONFIG_DIR runtime root is granted whole (a dedicated dir), so
127
+ // these are re-denied beneath it. Settings and hooks alter policy; plugins,
128
+ // local (native install) and dev-mods supply code that later runs.
129
+ persistentAuthorityWriteDenyPaths: [
130
+ { kind: "literal", relativePath: "settings.json" },
131
+ { kind: "literal", relativePath: "settings.local.json" },
132
+ { kind: "subpath", relativePath: "hooks" },
133
+ { kind: "subpath", relativePath: "plugins" },
134
+ { kind: "subpath", relativePath: "local" },
135
+ { kind: "subpath", relativePath: "dev-mods" }
136
+ ],
137
+ // ${CLAUDE_PLUGIN_DATA} resolves to ~/.claude/plugins/data/<id>/: runtime
138
+ // plugin data (dependencies, caches), kept across plugin updates. Plugin
139
+ // code and config stay denied. Source:
140
+ // https://code.claude.com/docs/en/plugins/manifest-reference#environment-variables
141
+ persistentAuthorityWriteReallowPaths: [{ kind: "subpath", relativePath: "plugins/data" }]
142
+ },
143
+ codex: {
144
+ providerId: "codex",
145
+ requiredWritePaths: [sub(".codex", "Codex CLI state (CODEX_HOME)")],
146
+ // config.toml / profile sidecars steer later invocations (model_provider,
147
+ // approvals); rules/ is the exec policy, hooks.json supplies commands, and
148
+ // requirements/managed_config are managed policy. auth.json stays writable
149
+ // — it is required Codex state, not a deferred-execution policy surface.
150
+ persistentAuthorityWriteDenyPaths: [
151
+ { kind: "literal", relativePath: "config.toml" },
152
+ { kind: "literal", relativePath: "requirements.toml" },
153
+ { kind: "literal", relativePath: "managed_config.toml" },
154
+ { kind: "literal", relativePath: "hooks.json" },
155
+ { kind: "subpath", relativePath: "rules" }
156
+ ]
157
+ },
158
+ copilot: {
159
+ providerId: "copilot",
160
+ requiredWritePaths: [
161
+ sub(".copilot", "Copilot CLI state"),
162
+ {
163
+ ...sub("Library/Application Support/github-copilot", "Copilot macOS state"),
164
+ authorityDenyExempt: true
165
+ },
166
+ {
167
+ ...sub("Library/Application Support/GitHub Copilot", "Copilot macOS state"),
168
+ authorityDenyExempt: true
169
+ },
170
+ { ...sub(".config/gh", "gh CLI auth used by Copilot"), authorityDenyExempt: true }
171
+ ],
172
+ // config.json carries trusted folders and permissions, settings.json the
173
+ // user settings, mcp-config.json the MCP servers and hooks/ the hook code
174
+ // that later turns load.
175
+ persistentAuthorityWriteDenyPaths: [
176
+ { kind: "literal", relativePath: "config.json" },
177
+ { kind: "literal", relativePath: "settings.json" },
178
+ { kind: "literal", relativePath: "mcp-config.json" },
179
+ { kind: "literal", relativePath: "permissions-config.json" },
180
+ { kind: "literal", relativePath: "permissions-config" },
181
+ { kind: "subpath", relativePath: "hooks" }
182
+ ]
183
+ },
184
+ cursor: {
185
+ providerId: "cursor",
186
+ requiredWritePaths: [sub(".cursor", "Cursor CLI state"), CURSOR_KEYCHAIN_WRITE],
187
+ // User-level MCP config and hooks are loaded by later Cursor turns
188
+ // (`--approve-mcps` and project `.cursor/mcp.json` are the documented MCP
189
+ // surfaces). cli-config.json holds the permission allow/deny lists,
190
+ // approval mode and sandbox settings, so it is denied too; the login
191
+ // itself lives in the Keychain and the Build-seeded runtime copy is
192
+ // written before launch, not by the confined process.
193
+ persistentAuthorityWriteDenyPaths: [
194
+ { kind: "literal", relativePath: "mcp.json" },
195
+ { kind: "literal", relativePath: "cli-config.json", staticRootOnly: true },
196
+ { kind: "literal", relativePath: "hooks.json" },
197
+ { kind: "literal", relativePath: "sandbox.json" },
198
+ { kind: "subpath", relativePath: "sandbox-policies" }
199
+ ]
200
+ },
201
+ gemini: {
202
+ providerId: "gemini",
203
+ requiredWritePaths: [
204
+ sub(".gemini", "Gemini CLI state"),
205
+ { ...sub(".gcloud", "gcloud auth cache"), authorityDenyExempt: true },
206
+ { ...sub(".config/gcloud", "gcloud auth config"), authorityDenyExempt: true },
207
+ // Gemini CLI 0.53.1 stores an interactively-entered API key in the macOS
208
+ // Keychain (service "gemini-cli-api-key"). Security.framework updates
209
+ // lock/session state and the keychain db during an ordinary LOOKUP, so
210
+ // reading a secret requires WRITE access here — a read grant is not
211
+ // sufficient. Established by bisection: granting only login.keychain-db,
212
+ // that file plus the session UUID dir, or plus a .fl* lock regex all fail,
213
+ // and granting the directory then re-denying the db also fails.
214
+ //
215
+ // Declared per-provider (not in the shared write block) so only providers
216
+ // that actually need the keychain receive it, and so the inherited-sandbox
217
+ // capability probe checks it — an outer sandbox that denies this path now
218
+ // fails closed as sandbox_capability_denied instead of launching Gemini
219
+ // with its internal protections bypassed and failing at credential access.
220
+ {
221
+ ...sub("Library/Keychains", "macOS Keychain state for Gemini CLI API-key lookup"),
222
+ authorityDenyExempt: true
223
+ }
224
+ ],
225
+ persistentAuthorityWriteDenyPaths: GEMINI_STACK_POLICY_DENY_PATHS
226
+ },
227
+ grok: {
228
+ providerId: "grok",
229
+ requiredWritePaths: [sub(".grok", "Grok CLI session/auth state")],
230
+ // ~/.grok stays writable for sessions, auth, skills, plugins, AGENTS.md and
231
+ // memory. These are the paths Grok's own sandbox write-denies under every
232
+ // built-in profile (docs/user-guide/18-sandbox.md, "Direct global write
233
+ // protection"): settings, folder trust, managed policy and sandbox
234
+ // profiles (unmatched tools inherit always-approve / ask rules from
235
+ // config.toml), hook sources, and bundle caches that load as built-ins.
236
+ // bin/, downloads/ and vendor/ hold the executables a later launch runs.
237
+ // hooks-paths lists further hook sources, which are denied as well.
238
+ persistentAuthorityWriteDenyPaths: [
239
+ { kind: "literal", relativePath: "config.toml" },
240
+ { kind: "literal", relativePath: "sandbox.toml" },
241
+ { kind: "literal", relativePath: "requirements.toml" },
242
+ { kind: "literal", relativePath: "managed_config.toml" },
243
+ { kind: "literal", relativePath: "trusted_folders.toml" },
244
+ { kind: "literal", relativePath: "hooks-paths" },
245
+ { kind: "subpath", relativePath: "hooks" },
246
+ { kind: "subpath", relativePath: "bundled" },
247
+ { kind: "subpath", relativePath: "bundles" },
248
+ { kind: "subpath", relativePath: "bin" },
249
+ { kind: "subpath", relativePath: "downloads" },
250
+ { kind: "subpath", relativePath: "vendor" }
251
+ ],
252
+ authorityPathRegistry: "hooks-paths"
253
+ },
254
+ kiro: {
255
+ providerId: "kiro",
256
+ requiredWritePaths: [sub(".kiro", "Kiro CLI state"), sub(".config/kiro", "Kiro CLI config")],
257
+ // CLI settings and MCP servers are loaded by later turns. settings/ also
258
+ // holds runtime feed and survey state, so only the two files are denied.
259
+ persistentAuthorityWriteDenyPaths: [
260
+ { kind: "literal", relativePath: "settings/cli.json" },
261
+ { kind: "literal", relativePath: "settings/mcp.json" }
262
+ ]
263
+ },
264
+ antigravity: {
265
+ providerId: "antigravity",
266
+ // Antigravity (`agy`) is built on the Gemini stack and writes across the
267
+ // whole ~/.gemini tree at runtime: OAuth token (~/.gemini/oauth_creds.json),
268
+ // auto-created project config (~/.gemini/config/projects/*.json), and CLI
269
+ // state (~/.gemini/antigravity-cli/). Granting the subtree mirrors the
270
+ // gemini manifest; scoping to subdirs caused `operation not permitted` on
271
+ // the project-config write and a hard exit 2 under the seatbelt.
272
+ requiredWritePaths: [sub(".gemini", "Antigravity/Gemini CLI state, OAuth, and project config")],
273
+ persistentAuthorityWriteDenyPaths: GEMINI_STACK_POLICY_DENY_PATHS
274
+ },
275
+ opencode: {
276
+ providerId: "opencode",
277
+ requiredWritePaths: [sub(".config/opencode", "OpenCode CLI state")],
278
+ // Isolated runs already treat these as user config (commands / agents)
279
+ // that would otherwise leak into later invocations.
280
+ persistentAuthorityWriteDenyPaths: [
281
+ { kind: "literal", relativePath: "opencode/opencode.json" },
282
+ { kind: "literal", relativePath: "opencode/opencode.jsonc" },
283
+ { kind: "literal", relativePath: "opencode/config.json" },
284
+ { kind: "subpath", relativePath: "opencode/agent" }
285
+ ]
286
+ },
287
+ pi: {
288
+ providerId: "pi",
289
+ // Pi writes auth.json, models.json, the model store, and a security event
290
+ // log under ~/.pi/agent. Build passes --no-session so session files are not
291
+ // created, but the agent dir itself is still written at startup: without
292
+ // this grant Pi dies with EPERM on mkdir before the model is reached.
293
+ requiredWritePaths: [
294
+ {
295
+ ...sub(".pi", "Pi agent auth, model catalog, and event log"),
296
+ authorityPathPrefix: "agent"
297
+ }
298
+ ],
299
+ persistentAuthorityWriteDenyPaths: [
300
+ { kind: "subpath", relativePath: "extensions" },
301
+ { kind: "subpath", relativePath: "npm" },
302
+ { kind: "subpath", relativePath: "git" },
303
+ { kind: "literal", relativePath: "settings.json" },
304
+ { kind: "literal", relativePath: "trust.json" },
305
+ { kind: "literal", relativePath: "models.json" }
306
+ ],
307
+ protectAuthorityRoot: true
308
+ }
309
+ };
310
+
311
+ // src/core/sandbox/provider-manifests.ts
312
+ var isRuntimeOverride = (spec) => !!spec.absolutePath && !spec.staticAlias;
313
+ var absoluteSubpath = (absolutePath, note) => ({
314
+ kind: "subpath",
315
+ homeRelative: absolutePath,
316
+ absolutePath,
317
+ note
318
+ });
319
+ var absoluteLiteral = (absolutePath, note) => ({
320
+ kind: "literal",
321
+ homeRelative: absolutePath,
322
+ absolutePath,
323
+ note
324
+ });
325
+ var rejectedRuntimeDir = (absolutePath, note) => ({
326
+ kind: "subpath",
327
+ homeRelative: absolutePath,
328
+ absolutePath,
329
+ note,
330
+ rejected: true
331
+ });
332
+ var BUILD_SHARED_WRITE_PATHS = [
333
+ // `.build` covers the default config/data/state roots (~/.build/{config,data,state})
334
+ // as well as the runtime dirs that always lived there. The two XDG entries remain
335
+ // for installs that explicitly set XDG_STATE_HOME / XDG_DATA_HOME.
336
+ sub(BUILD_HOME_DIR_NAME, "Build home (config/data/state and runtime dirs)"),
337
+ sub(".local/state/build", "Build XDG state (legacy/explicit XDG_STATE_HOME)"),
338
+ sub(".local/share/build", "Build XDG data (legacy/explicit XDG_DATA_HOME)")
339
+ ];
340
+ function getKnownSandboxProviderIds() {
341
+ return Object.keys(PROVIDER_MANIFESTS).sort();
342
+ }
343
+ function getProviderFilesystemManifest(providerId) {
344
+ if (!providerId) return void 0;
345
+ return PROVIDER_MANIFESTS[providerId.toLowerCase()];
346
+ }
347
+ function getRequiredWritePathsForProvider(providerId, options = {}) {
348
+ const manifest = getProviderFilesystemManifest(providerId);
349
+ const providerPaths = resolveRuntimeProviderWritePaths(providerId, manifest, options.env);
350
+ return [
351
+ ...providerPaths,
352
+ ...options.includeSharedPaths === false ? [] : resolveRuntimeSharedWritePaths(options.env)
353
+ ];
354
+ }
355
+ function getProviderAuthorityWriteDenyPathSpecs(providerId, options = {}) {
356
+ return collectAuthorityPathSpecs(providerId, options, "deny");
357
+ }
358
+ function getProviderAuthorityWriteReallowPathSpecs(providerId, options = {}) {
359
+ return collectAuthorityPathSpecs(providerId, options, "reallow");
360
+ }
361
+ var MAX_AUTHORITY_REGISTRY_BYTES = 64 * 1024;
362
+ var MAX_AUTHORITY_REGISTRY_ENTRIES = 256;
363
+ function readAuthorityRegistryTargets(registryPath, home) {
364
+ let text;
365
+ try {
366
+ const stat = fs.lstatSync(registryPath);
367
+ if (!stat.isFile() || stat.size > MAX_AUTHORITY_REGISTRY_BYTES) return [];
368
+ text = fs.readFileSync(registryPath, "utf8");
369
+ } catch {
370
+ return [];
371
+ }
372
+ if (text.includes("\0")) return [];
373
+ const resolvedHome = home ? path.resolve(home) : void 0;
374
+ const targets = /* @__PURE__ */ new Set();
375
+ for (const rawLine of text.split(/\r?\n/).slice(0, MAX_AUTHORITY_REGISTRY_ENTRIES)) {
376
+ const line = rawLine.trim();
377
+ if (!line || line.startsWith("#") || !path.isAbsolute(line)) continue;
378
+ const lexical = path.resolve(line);
379
+ const real = resolveExistingPathPrefix(lexical);
380
+ const candidates = real ? [lexical, real] : [lexical];
381
+ for (const candidate of candidates) {
382
+ const containsHome = resolvedHome ? isPathWithin(resolvedHome, candidate) : false;
383
+ if (candidate === path.parse(candidate).root || containsHome) continue;
384
+ targets.add(candidate);
385
+ }
386
+ }
387
+ return [...targets];
388
+ }
389
+ function collectAuthorityPathSpecs(providerId, options, mode) {
390
+ const manifests = providerId ? [getProviderFilesystemManifest(providerId)].filter(
391
+ (manifest) => !!manifest
392
+ ) : Object.values(PROVIDER_MANIFESTS);
393
+ const seen = /* @__PURE__ */ new Set();
394
+ const results = [];
395
+ for (const manifest of manifests) {
396
+ const entries = mode === "deny" ? manifest.persistentAuthorityWriteDenyPaths ?? [] : manifest.persistentAuthorityWriteReallowPaths ?? [];
397
+ const registry = mode === "deny" ? manifest.authorityPathRegistry : void 0;
398
+ if (!entries.length && !registry) continue;
399
+ const runtimeRoots = resolveRuntimeProviderWritePaths(
400
+ manifest.providerId,
401
+ manifest,
402
+ options.env
403
+ );
404
+ const runtimeRootPaths = new Set(
405
+ runtimeRoots.flatMap((spec) => isRuntimeOverride(spec) ? [spec.absolutePath] : [])
406
+ );
407
+ const stateRoot = manifest.authorityStateRoot && (!providerId || !runtimeRoots.some(isRuntimeOverride)) ? [sub(manifest.authorityStateRoot)] : [];
408
+ const roots = [
409
+ ...providerId ? runtimeRoots : [...manifest.requiredWritePaths, ...runtimeRoots],
410
+ ...stateRoot
411
+ ];
412
+ for (const rootSpec of roots) {
413
+ if (rootSpec.rejected || rootSpec.kind !== "subpath") continue;
414
+ if (rootSpec.authorityDenyExempt) continue;
415
+ const isOpencode = manifest.providerId === "opencode";
416
+ const isOpencodeRuntimeRoot = rootSpec.note?.includes("OpenCode XDG_") === true;
417
+ if (isOpencodeRuntimeRoot && !rootSpec.note?.includes("XDG_CONFIG_HOME")) continue;
418
+ const root = resolveWritePathSpec(rootSpec, options.env?.HOME);
419
+ if (!root) continue;
420
+ const isRuntimeRoot = isRuntimeOverride(rootSpec) || runtimeRootPaths.has(root);
421
+ const push = (kind, absolutePath) => {
422
+ const key = `${kind}:${absolutePath}`;
423
+ if (seen.has(key)) return;
424
+ seen.add(key);
425
+ results.push({
426
+ kind,
427
+ homeRelative: absolutePath,
428
+ absolutePath,
429
+ note: `${manifest.providerId} persistent authority surface`
430
+ });
431
+ };
432
+ for (const entry of entries) {
433
+ if (entry.staticRootOnly && isRuntimeRoot) continue;
434
+ const relativePath = isOpencode && !isOpencodeRuntimeRoot ? entry.relativePath.replace(/^opencode\//, "") : entry.relativePath;
435
+ push(entry.kind, path.join(root, rootSpec.authorityPathPrefix ?? "", relativePath));
436
+ }
437
+ if (registry) {
438
+ const registryPath = path.join(root, rootSpec.authorityPathPrefix ?? "", registry);
439
+ for (const target of readAuthorityRegistryTargets(registryPath, options.env?.HOME)) {
440
+ push("subpath", target);
441
+ }
442
+ }
443
+ }
444
+ }
445
+ return results;
446
+ }
447
+ function getProviderAuthorityRoots(providerId, options = {}) {
448
+ const manifests = providerId ? [getProviderFilesystemManifest(providerId)].filter(
449
+ (manifest) => !!manifest
450
+ ) : Object.values(PROVIDER_MANIFESTS);
451
+ const roots = /* @__PURE__ */ new Set();
452
+ for (const manifest of manifests) {
453
+ if (!manifest.protectAuthorityRoot) continue;
454
+ const runtimeRoots = resolveRuntimeProviderWritePaths(
455
+ manifest.providerId,
456
+ manifest,
457
+ options.env
458
+ );
459
+ for (const spec of providerId ? runtimeRoots : [...manifest.requiredWritePaths, ...runtimeRoots]) {
460
+ if (spec.rejected || spec.kind !== "subpath" || spec.authorityDenyExempt) continue;
461
+ const root = resolveWritePathSpec(spec, options.env?.HOME);
462
+ if (root) roots.add(path.join(root, spec.authorityPathPrefix ?? ""));
463
+ }
464
+ }
465
+ return [...roots];
466
+ }
467
+ function isPathWithin(candidate, parent) {
468
+ const relative = path.relative(parent, candidate);
469
+ return relative === "" || !!relative && !relative.startsWith("..") && !path.isAbsolute(relative);
470
+ }
471
+ function allowedRuntimeConfigRoots(env = process.env) {
472
+ const roots = /* @__PURE__ */ new Set();
473
+ const home = env?.HOME ?? process.env.HOME ?? os.homedir();
474
+ if (home) {
475
+ const resolvedHome = path.resolve(home);
476
+ const realHome = resolveExistingPathPrefix(resolvedHome);
477
+ const addHomeRoot = (root) => {
478
+ const real = resolveExistingPathPrefix(root);
479
+ if (!real || !realHome) return;
480
+ if (real === path.parse(real).root || isPathWithin(realHome, real)) return;
481
+ roots.add(root);
482
+ };
483
+ addHomeRoot(path.join(resolvedHome, ".config", "build"));
484
+ addHomeRoot(path.join(resolvedHome, ".build"));
485
+ addHomeRoot(path.join(resolvedHome, ".local", "share", "build"));
486
+ addHomeRoot(path.join(resolvedHome, ".local", "state", "build"));
487
+ addHomeRoot(path.join(resolvedHome, ".claude"));
488
+ addHomeRoot(path.join(resolvedHome, ".codex"));
489
+ addHomeRoot(path.join(resolvedHome, ".grok"));
490
+ addHomeRoot(path.join(resolvedHome, ".pi"));
491
+ addHomeRoot(path.join(resolvedHome, ".cursor"));
492
+ }
493
+ const containedRuntimeRoot = getContainedHomeSiblingRuntimeRoot(env);
494
+ if (containedRuntimeRoot) {
495
+ roots.add(containedRuntimeRoot);
496
+ }
497
+ for (const leaf of ["state", "data"]) {
498
+ const buildHomeLeaf = resolveTrustedBuildHomeLeaf(env, leaf);
499
+ if (buildHomeLeaf) roots.add(buildHomeLeaf);
500
+ }
501
+ roots.add(path.join(path.resolve(process.cwd()), ".build-project"));
502
+ for (const tmpRoot of [
503
+ os.tmpdir(),
504
+ "/tmp",
505
+ "/private/tmp",
506
+ "/var/folders",
507
+ "/private/var/folders"
508
+ ]) {
509
+ if (tmpRoot) roots.add(path.resolve(tmpRoot));
510
+ }
511
+ return [...roots];
512
+ }
513
+ function resolveTrustedBuildHomeLeaf(env, leaf) {
514
+ const rawHome = expandLeadingTilde(env?.BUILD_HOME);
515
+ if (!rawHome) return void 0;
516
+ const home = env?.HOME ?? process.env.HOME ?? os.homedir();
517
+ const resolvedHome = resolveTrustedBuildHome(path.resolve(rawHome), env, home);
518
+ if (!resolvedHome) return void 0;
519
+ const resolvedLeaf = resolveExistingPathPrefix(path.join(resolvedHome, leaf));
520
+ return resolvedLeaf && isPathWithin(resolvedLeaf, resolvedHome) ? resolvedLeaf : void 0;
521
+ }
522
+ function withResolvedTarget(lexical) {
523
+ const real = resolveExistingPathPrefix(lexical);
524
+ return real && real !== lexical ? [lexical, real] : [lexical];
525
+ }
526
+ function resolveExistingPathPrefix(candidate) {
527
+ const segments = [];
528
+ let current = candidate;
529
+ while (!fs.existsSync(current)) {
530
+ const parent = path.dirname(current);
531
+ if (parent === current) {
532
+ return path.resolve(candidate);
533
+ }
534
+ segments.unshift(path.basename(current));
535
+ current = parent;
536
+ }
537
+ try {
538
+ const realPrefix = fs.realpathSync(current);
539
+ return path.join(realPrefix, ...segments);
540
+ } catch {
541
+ return void 0;
542
+ }
543
+ }
544
+ function expandLeadingTilde(rawValue) {
545
+ if (rawValue === void 0) return void 0;
546
+ const trimmed = rawValue.trim();
547
+ if (!trimmed) return trimmed;
548
+ if (trimmed !== "~" && !trimmed.startsWith("~/")) return trimmed;
549
+ const home = process.env.HOME ?? os.homedir();
550
+ if (!home) return trimmed;
551
+ return trimmed === "~" ? home : path.join(home, trimmed.slice(2));
552
+ }
553
+ function resolveAllowedRuntimeConfigDir(rawValue, env) {
554
+ const trimmed = rawValue?.trim();
555
+ if (!trimmed) return void 0;
556
+ const resolved = resolveExistingPathPrefix(path.resolve(trimmed));
557
+ if (!resolved) return void 0;
558
+ return isAllowedRuntimeWritePath(resolved, env) ? resolved : void 0;
559
+ }
560
+ function isAllowedRuntimeWritePath(absolutePath, env = process.env) {
561
+ if (!absolutePath || !path.isAbsolute(absolutePath)) return false;
562
+ const resolved = resolveExistingPathPrefix(path.resolve(absolutePath));
563
+ if (!resolved) return false;
564
+ return allowedRuntimeConfigRoots(env).some((root) => {
565
+ const resolvedRoot = resolveExistingPathPrefix(root);
566
+ return resolvedRoot ? isPathWithin(resolved, resolvedRoot) : false;
567
+ });
568
+ }
569
+ function withCanonicalStateTargets(specs, env) {
570
+ const home = env?.HOME ?? process.env.HOME ?? os.homedir();
571
+ if (!home) return specs;
572
+ let realHome;
573
+ try {
574
+ realHome = fs.realpathSync(home);
575
+ } catch {
576
+ return specs;
577
+ }
578
+ const result = [];
579
+ for (const spec of specs) {
580
+ result.push(spec);
581
+ if (spec.kind === "regex" || spec.rejected || spec.absolutePath) continue;
582
+ let real;
583
+ try {
584
+ real = fs.realpathSync(path.join(home, spec.homeRelative));
585
+ } catch {
586
+ continue;
587
+ }
588
+ if (real === path.join(realHome, spec.homeRelative)) continue;
589
+ if (real === path.parse(real).root || isPathWithin(realHome, real)) continue;
590
+ result.push({
591
+ ...spec,
592
+ homeRelative: real,
593
+ absolutePath: real,
594
+ note: `${spec.note ?? spec.homeRelative} (symlink target)`,
595
+ staticAlias: true
596
+ });
597
+ }
598
+ return result;
599
+ }
600
+ function resolveRuntimeProviderWritePaths(providerId, manifest, env) {
601
+ return withCanonicalStateTargets(
602
+ resolveRuntimeProviderWritePathsUncanonical(providerId, manifest, env),
603
+ env
604
+ );
605
+ }
606
+ function resolveRuntimeProviderWritePathsUncanonical(providerId, manifest, env) {
607
+ const normalized = providerId?.toLowerCase();
608
+ const basePaths = manifest?.requiredWritePaths ?? [];
609
+ if (normalized === "claude") {
610
+ const configDir = resolveAllowedRuntimeConfigDir(env?.CLAUDE_CONFIG_DIR, env);
611
+ if (configDir) {
612
+ return [absoluteSubpath(configDir, "Claude CLI config dir (CLAUDE_CONFIG_DIR)")];
613
+ }
614
+ return basePaths;
615
+ }
616
+ if (normalized === "cursor") {
617
+ const configDir = resolveAllowedRuntimeConfigDir(
618
+ env?.CURSOR_CONFIG_DIR ?? env?.BUILD_CURSOR_CONFIG_DIR,
619
+ env
620
+ );
621
+ if (configDir) {
622
+ return [
623
+ absoluteSubpath(configDir, "Cursor CLI config dir (CURSOR_CONFIG_DIR)"),
624
+ CURSOR_KEYCHAIN_WRITE
625
+ ];
626
+ }
627
+ return basePaths;
628
+ }
629
+ if (normalized === "codex") {
630
+ const rawCodexHome = expandLeadingTilde(env?.CODEX_HOME);
631
+ if (rawCodexHome) {
632
+ const configDir = resolveAllowedRuntimeConfigDir(rawCodexHome, env);
633
+ return [
634
+ configDir ? absoluteSubpath(configDir, "Codex CLI state (CODEX_HOME)") : rejectedRuntimeDir(
635
+ path.resolve(rawCodexHome),
636
+ "Codex CLI state (CODEX_HOME, rejected: outside allowed roots)"
637
+ )
638
+ ];
639
+ }
640
+ return basePaths;
641
+ }
642
+ if (normalized === "grok") {
643
+ const rawGrokHome = expandLeadingTilde(env?.GROK_HOME);
644
+ const home = env?.HOME ?? process.env.HOME ?? os.homedir();
645
+ if (rawGrokHome && path.resolve(rawGrokHome) !== path.join(path.resolve(home), ".grok")) {
646
+ const configDir = resolveAllowedRuntimeConfigDir(rawGrokHome, env);
647
+ return [
648
+ configDir ? absoluteSubpath(configDir, "Grok CLI state (GROK_HOME)") : rejectedRuntimeDir(
649
+ path.resolve(rawGrokHome),
650
+ "Grok CLI state (GROK_HOME, rejected: outside allowed roots)"
651
+ )
652
+ ];
653
+ }
654
+ return basePaths;
655
+ }
656
+ if (normalized === "opencode") {
657
+ const xdgDirs = [
658
+ { value: env?.XDG_DATA_HOME, note: "OpenCode XDG_DATA_HOME (isolated)" },
659
+ {
660
+ value: env?.XDG_CONFIG_HOME,
661
+ note: "OpenCode XDG_CONFIG_HOME (isolated)"
662
+ },
663
+ {
664
+ value: env?.XDG_STATE_HOME,
665
+ note: "OpenCode XDG_STATE_HOME (isolated)"
666
+ },
667
+ {
668
+ value: env?.XDG_CACHE_HOME,
669
+ note: "OpenCode XDG_CACHE_HOME (isolated)"
670
+ }
671
+ ];
672
+ const anyPresent = xdgDirs.some((d) => d.value?.trim());
673
+ if (!anyPresent) {
674
+ return basePaths;
675
+ }
676
+ const resolvedSpecs = [];
677
+ for (const { value, note } of xdgDirs) {
678
+ const trimmed = value?.trim();
679
+ if (!trimmed) continue;
680
+ const resolved = resolveAllowedRuntimeConfigDir(trimmed, env);
681
+ resolvedSpecs.push(
682
+ resolved ? absoluteSubpath(resolved, note) : rejectedRuntimeDir(path.resolve(trimmed), `${note} (rejected: outside allowed roots)`)
683
+ );
684
+ }
685
+ return resolvedSpecs.length > 0 ? resolvedSpecs : basePaths;
686
+ }
687
+ if (normalized === "pi") {
688
+ const rawAgentDir = expandLeadingTilde(env?.PI_CODING_AGENT_DIR);
689
+ if (rawAgentDir) {
690
+ const configDir = resolveAllowedRuntimeConfigDir(rawAgentDir, env);
691
+ return [
692
+ configDir ? absoluteSubpath(configDir, "Pi agent dir (PI_CODING_AGENT_DIR)") : rejectedRuntimeDir(
693
+ path.resolve(rawAgentDir),
694
+ "Pi agent dir (PI_CODING_AGENT_DIR, rejected: outside allowed roots)"
695
+ )
696
+ ];
697
+ }
698
+ return basePaths;
699
+ }
700
+ return basePaths;
701
+ }
702
+ function resolveRuntimeBuildStatePath(env) {
703
+ const buildHome = expandLeadingTilde(env.BUILD_HOME);
704
+ if (buildHome) {
705
+ const statePath = path.join(buildHome, "state");
706
+ const resolved = resolveAllowedRuntimeConfigDir(statePath, env);
707
+ return resolved ? absoluteSubpath(resolved, "Build home state dir (BUILD_HOME/state)") : rejectedRuntimeDir(
708
+ path.resolve(statePath),
709
+ "Build home state dir (BUILD_HOME/state, rejected: outside allowed roots)"
710
+ );
711
+ }
712
+ const xdgStateHome = env.XDG_STATE_HOME?.trim();
713
+ if (xdgStateHome) {
714
+ const resolved = resolveAllowedRuntimeConfigDir(path.join(xdgStateHome, "build"), env);
715
+ if (resolved) {
716
+ return absoluteSubpath(resolved, "Build XDG state (XDG_STATE_HOME)");
717
+ }
718
+ }
719
+ return void 0;
720
+ }
721
+ function resolveRuntimeSharedWritePaths(env) {
722
+ if (!env) return BUILD_SHARED_WRITE_PATHS;
723
+ const stateDir = resolveRuntimeBuildStatePath(env);
724
+ const dataDir = resolveRuntimeBuildDataPath(env);
725
+ const configDir = resolveAllowedRuntimeConfigDir(env.BUILD_CONFIG_DIR, env);
726
+ if (!stateDir && !dataDir && !configDir) return BUILD_SHARED_WRITE_PATHS;
727
+ return [
728
+ stateDir ?? sub(BUILD_HOME_DIR_NAME, "Build home state (default ~/.build/state)"),
729
+ dataDir ?? sub(BUILD_HOME_DIR_NAME, "Build home data (default ~/.build/data)"),
730
+ configDir ? absoluteSubpath(configDir, "Build config dir (BUILD_CONFIG_DIR)") : sub(BUILD_HOME_DIR_NAME, "Build home config and runtime dirs")
731
+ ];
732
+ }
733
+ function getBuildAuthorityWriteDenyPathSpecs(env = process.env) {
734
+ const specs = [
735
+ sub(`${BUILD_HOME_DIR_NAME}/config`, "Build executable-selection config (default)")
736
+ ];
737
+ const explicitConfigDir = env.BUILD_CONFIG_DIR?.trim();
738
+ if (explicitConfigDir) {
739
+ const resolved = resolveAllowedRuntimeConfigDir(explicitConfigDir, env);
740
+ if (resolved) specs.push(absoluteSubpath(resolved, "Build executable-selection config"));
741
+ }
742
+ const buildHome = expandLeadingTilde(env.BUILD_HOME);
743
+ if (buildHome) {
744
+ const lexical = path.resolve(buildHome, "config");
745
+ specs.push(absoluteSubpath(lexical, "Build executable-selection config"));
746
+ const real = resolveExistingPathPrefix(lexical);
747
+ if (real && real !== lexical) {
748
+ specs.push(absoluteSubpath(real, "Build executable-selection config (resolved)"));
749
+ }
750
+ }
751
+ const xdgConfigHome = env.XDG_CONFIG_HOME?.trim();
752
+ if (xdgConfigHome) {
753
+ const resolved = resolveAllowedRuntimeConfigDir(path.join(xdgConfigHome, "build"), env);
754
+ if (resolved) specs.push(absoluteSubpath(resolved, "Build executable-selection config"));
755
+ }
756
+ specs.push(...getHomeDotEnvWriteDenyPathSpecs(env));
757
+ return specs;
758
+ }
759
+ function getHomeDotEnvWriteDenyPathSpecs(env) {
760
+ const homes = /* @__PURE__ */ new Set();
761
+ for (const home of [env.HOME, process.env.HOME ?? os.homedir()]) {
762
+ if (home) homes.add(path.resolve(home));
763
+ }
764
+ const specs = [];
765
+ for (const home of homes) {
766
+ const lexical = path.join(home, ".build", ".env");
767
+ specs.push(absoluteLiteral(lexical, "Build home dotenv file"));
768
+ const real = resolveExistingPathPrefix(lexical);
769
+ if (real && real !== lexical) {
770
+ specs.push(absoluteLiteral(real, "Build home dotenv file (resolved)"));
771
+ }
772
+ }
773
+ return specs;
774
+ }
775
+ function resolveRuntimeBuildDataPath(env) {
776
+ const explicitDataDir = env.BUILD_DATA_DIR?.trim();
777
+ if (explicitDataDir) {
778
+ const resolved = resolveAllowedRuntimeConfigDir(explicitDataDir, env);
779
+ if (resolved) {
780
+ return absoluteSubpath(resolved, "Build data dir (BUILD_DATA_DIR)");
781
+ }
782
+ }
783
+ const buildHome = expandLeadingTilde(env.BUILD_HOME);
784
+ if (buildHome) {
785
+ const dataPath = path.join(buildHome, "data");
786
+ const resolved = resolveAllowedRuntimeConfigDir(dataPath, env);
787
+ return resolved ? absoluteSubpath(resolved, "Build home data dir (BUILD_HOME/data)") : rejectedRuntimeDir(
788
+ path.resolve(dataPath),
789
+ "Build home data dir (BUILD_HOME/data, rejected: outside allowed roots)"
790
+ );
791
+ }
792
+ const xdgDataHome = env.XDG_DATA_HOME?.trim();
793
+ if (xdgDataHome) {
794
+ const resolved = resolveAllowedRuntimeConfigDir(path.join(xdgDataHome, "build"), env);
795
+ if (resolved) {
796
+ return absoluteSubpath(resolved, "Build XDG data (XDG_DATA_HOME)");
797
+ }
798
+ }
799
+ return void 0;
800
+ }
801
+ function getAllProviderWritePathSpecs(options = {}) {
802
+ const seen = /* @__PURE__ */ new Set();
803
+ const result = [];
804
+ const pushUnique = (spec) => {
805
+ const key = `${spec.kind}:${spec.absolutePath ?? spec.homeRelative}`;
806
+ if (seen.has(key)) return;
807
+ seen.add(key);
808
+ result.push(spec);
809
+ };
810
+ for (const manifest of Object.values(PROVIDER_MANIFESTS)) {
811
+ for (const spec of withCanonicalStateTargets(manifest.requiredWritePaths, options.env)) {
812
+ pushUnique(spec);
813
+ }
814
+ }
815
+ const claudeRuntimeConfigDir = resolveAllowedRuntimeConfigDir(
816
+ options.env?.CLAUDE_CONFIG_DIR,
817
+ options.env
818
+ );
819
+ if (claudeRuntimeConfigDir) {
820
+ pushUnique(
821
+ absoluteSubpath(claudeRuntimeConfigDir, "Claude CLI config dir (CLAUDE_CONFIG_DIR)")
822
+ );
823
+ }
824
+ const cursorRuntimeConfigDir = resolveAllowedRuntimeConfigDir(
825
+ options.env?.CURSOR_CONFIG_DIR ?? options.env?.BUILD_CURSOR_CONFIG_DIR,
826
+ options.env
827
+ );
828
+ if (cursorRuntimeConfigDir) {
829
+ pushUnique(
830
+ absoluteSubpath(cursorRuntimeConfigDir, "Cursor CLI config dir (CURSOR_CONFIG_DIR)")
831
+ );
832
+ }
833
+ for (const spec of resolveRuntimeSharedWritePaths(options.env)) pushUnique(spec);
834
+ for (const spec of COMMON_TOOLCHAIN_WRITE_PATHS) pushUnique(spec);
835
+ return result;
836
+ }
837
+ function resolveWritePathSpec(spec, home = process.env.HOME ?? os.homedir()) {
838
+ if (spec.kind === "regex") return void 0;
839
+ if (spec.absolutePath) return spec.absolutePath;
840
+ return `${home}/${spec.homeRelative}`;
841
+ }
842
+
843
+ export {
844
+ getKnownSandboxProviderIds,
845
+ getRequiredWritePathsForProvider,
846
+ getProviderAuthorityWriteDenyPathSpecs,
847
+ getProviderAuthorityWriteReallowPathSpecs,
848
+ getProviderAuthorityRoots,
849
+ withResolvedTarget,
850
+ isAllowedRuntimeWritePath,
851
+ getBuildAuthorityWriteDenyPathSpecs,
852
+ getAllProviderWritePathSpecs,
853
+ resolveWritePathSpec
854
+ };
855
+ //# sourceMappingURL=chunk-DP7FKP6W.js.map