@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.
- package/.build-project/providers/catalog.json +13951 -0
- package/.build-project/providers/pricing.json +1978 -0
- package/.build-project/providers/registry.json +4103 -0
- package/.github/SECURITY.md +75 -0
- package/.nvmrc +1 -0
- package/CHANGELOG.md +661 -0
- package/CODE_OF_CONDUCT.md +44 -0
- package/CONTRIBUTING.md +24 -0
- package/INSTALL.md +623 -0
- package/LICENSE +21 -0
- package/README.md +118 -2
- package/THIRD_PARTY_NOTICES.txt +26 -0
- package/dist/ai-judge-UE5UOYOO.js +191 -0
- package/dist/allowlist-grounding-KPLN6NC5.js +16 -0
- package/dist/allowlist-utils-MZZKKXRD.js +31 -0
- package/dist/apply-completion-mode-EM37UZHB.js +110 -0
- package/dist/artifact-migrator-WPACNSEP.js +276 -0
- package/dist/ask-2OZ4JFQR.js +176 -0
- package/dist/auth-6UKBTJUQ.js +185 -0
- package/dist/auth-H5KJL6HL.js +165 -0
- package/dist/auth-LVJRJDMU.js +12 -0
- package/dist/auth-NHZOCNRR.js +94 -0
- package/dist/auth-PBXHWXGW.js +95 -0
- package/dist/auth-T7Y5DCAH.js +91 -0
- package/dist/auth-TVVKCHQW.js +13 -0
- package/dist/auth-UHB2UCSS.js +97 -0
- package/dist/auth-VACA3VUL.js +98 -0
- package/dist/auth-VVLC77S3.js +44 -0
- package/dist/auth-liveness-XO4AGDDD.js +53 -0
- package/dist/autoloop-cleanup-SI3VGAAR.js +106 -0
- package/dist/autoloop-evidence-gates-J5GG5YQB.js +39 -0
- package/dist/autoloop-gate-policy-SUNAEP6Q.js +169 -0
- package/dist/autoloop-helpers-VQGQNTT6.js +52 -0
- package/dist/autoloop-ledger-P6TIDP7C.js +96 -0
- package/dist/autoloop-ledger-subscriber-HFAGOZXH.js +161 -0
- package/dist/autoloop-run-defaults-GWGZBNT7.js +27 -0
- package/dist/autoloop-run-lock-GBWRM5A2.js +197 -0
- package/dist/autoloop-success-C32QVWOP.js +93 -0
- package/dist/autoloop-termination-summary-GI6IBQWD.js +58 -0
- package/dist/autoloop-trajectory-AMKSQISD.js +70 -0
- package/dist/autoloop-wall-clock-T7ZVIQOC.js +12 -0
- package/dist/automatic-branch-cleanup-R62X2C5O.js +49 -0
- package/dist/autonomous-loop-controller-2WL363LW.js +4386 -0
- package/dist/backend-YUTFDZXZ.js +30 -0
- package/dist/background-executor-Z3ODTMD7.js +260 -0
- package/dist/backlog-75QPEAMW.js +403 -0
- package/dist/backlog-execution-intent-GWUV5TUK.js +19 -0
- package/dist/backup-active-store-XHWLN34M.js +16 -0
- package/dist/backup-machine-stores-UI4LTJOY.js +251 -0
- package/dist/backup-telemetry-db-Z4ICYCNW.js +26 -0
- package/dist/branch-archive-manager-FMSQ7YJF.js +18 -0
- package/dist/branch-cleanup-manager-ST6FJGND.js +35 -0
- package/dist/build-gate-7NKWPY62.js +68 -0
- package/dist/build-root-S7DINODY.js +18 -0
- package/dist/change-summary-R6CB6VXJ.js +50 -0
- package/dist/chunk-24MNKKOM.js +173 -0
- package/dist/chunk-2H6VZFIO.js +235 -0
- package/dist/chunk-2JIX3EKV.js +39 -0
- package/dist/chunk-2KO7HVZM.js +106 -0
- package/dist/chunk-2L36U25O.js +100 -0
- package/dist/chunk-2NMNFUQA.js +475 -0
- package/dist/chunk-2OUAEH67.js +83 -0
- package/dist/chunk-2VLJUXJU.js +115 -0
- package/dist/chunk-2VUEDIUM.js +77 -0
- package/dist/chunk-2Y2IIHPI.js +430 -0
- package/dist/chunk-2YRG3LHZ.js +220 -0
- package/dist/chunk-2Z5Q3SUY.js +65 -0
- package/dist/chunk-32IYXIE5.js +873 -0
- package/dist/chunk-33IGPPUI.js +292 -0
- package/dist/chunk-352PCJLK.js +283 -0
- package/dist/chunk-35J4NE6S.js +226 -0
- package/dist/chunk-3C7WBIVK.js +1016 -0
- package/dist/chunk-3H3EY6U7.js +1225 -0
- package/dist/chunk-3H4MWYIC.js +198 -0
- package/dist/chunk-3HHWQR3N.js +2479 -0
- package/dist/chunk-3JKNRYEE.js +14 -0
- package/dist/chunk-3LECCYZY.js +128 -0
- package/dist/chunk-3LOY6YZI.js +852 -0
- package/dist/chunk-3M57DADF.js +44 -0
- package/dist/chunk-3NOTLVLG.js +3803 -0
- package/dist/chunk-3OPP2OZB.js +1480 -0
- package/dist/chunk-3P5IN5E7.js +9 -0
- package/dist/chunk-3PL22IYZ.js +20 -0
- package/dist/chunk-3REDAJUJ.js +14 -0
- package/dist/chunk-3S2R4XJI.js +203 -0
- package/dist/chunk-3UBZI5DW.js +61 -0
- package/dist/chunk-3VV5OBGG.js +308 -0
- package/dist/chunk-3WY5TU2O.js +823 -0
- package/dist/chunk-43OKHTW4.js +82 -0
- package/dist/chunk-45KUJBDI.js +112 -0
- package/dist/chunk-47X5LM7B.js +224 -0
- package/dist/chunk-4B6FQJ77.js +268 -0
- package/dist/chunk-4BTDUT2S.js +42 -0
- package/dist/chunk-4DJL2VXA.js +24 -0
- package/dist/chunk-4EBSXZ73.js +48 -0
- package/dist/chunk-4QKP6I4C.js +294 -0
- package/dist/chunk-4U6XK2DG.js +300 -0
- package/dist/chunk-4UMRUFBD.js +132 -0
- package/dist/chunk-4US4SYJ4.js +569 -0
- package/dist/chunk-4ZPLWEZO.js +154 -0
- package/dist/chunk-56WPYDJH.js +624 -0
- package/dist/chunk-57WRCJJW.js +50 -0
- package/dist/chunk-5AW4RMNG.js +24 -0
- package/dist/chunk-5EQN56OZ.js +155 -0
- package/dist/chunk-5F43TUIN.js +38 -0
- package/dist/chunk-5FKHIKTS.js +115 -0
- package/dist/chunk-5HDP7XZG.js +91 -0
- package/dist/chunk-5KQETTNS.js +152 -0
- package/dist/chunk-5PDVN2KO.js +498 -0
- package/dist/chunk-5UBIFVRD.js +509 -0
- package/dist/chunk-5YDE3Q62.js +46 -0
- package/dist/chunk-626AJVMU.js +302 -0
- package/dist/chunk-633XZ7UF.js +3583 -0
- package/dist/chunk-63DHNHGA.js +236 -0
- package/dist/chunk-666656AR.js +568 -0
- package/dist/chunk-67YRJPJO.js +19 -0
- package/dist/chunk-6CAU7VBA.js +20 -0
- package/dist/chunk-6CB3KJRY.js +21 -0
- package/dist/chunk-6DBMALXL.js +29 -0
- package/dist/chunk-6E25C4IA.js +269 -0
- package/dist/chunk-6FIBNIQU.js +73 -0
- package/dist/chunk-6G57FYBV.js +189 -0
- package/dist/chunk-6KZKRTG3.js +4885 -0
- package/dist/chunk-6LAH2UV2.js +525 -0
- package/dist/chunk-6PZY2TTU.js +921 -0
- package/dist/chunk-6T6NHXK4.js +230 -0
- package/dist/chunk-6TBEX4R4.js +432 -0
- package/dist/chunk-6TRD7TEE.js +911 -0
- package/dist/chunk-6XCP2RAI.js +47 -0
- package/dist/chunk-726G6WDL.js +351 -0
- package/dist/chunk-75EMT7BF.js +616 -0
- package/dist/chunk-762ACDZJ.js +4696 -0
- package/dist/chunk-77I6G4CO.js +1 -0
- package/dist/chunk-7DJ6SQH3.js +510 -0
- package/dist/chunk-7HPCIOMA.js +1383 -0
- package/dist/chunk-7HYBSRPZ.js +17503 -0
- package/dist/chunk-7KBEOPVB.js +73 -0
- package/dist/chunk-7LHJDJB3.js +2222 -0
- package/dist/chunk-7NVJMH52.js +306 -0
- package/dist/chunk-7RMARDVH.js +33 -0
- package/dist/chunk-7SEWU4QG.js +36 -0
- package/dist/chunk-7TUTZTI2.js +911 -0
- package/dist/chunk-7VBDFPUM.js +340 -0
- package/dist/chunk-7VRJHTGZ.js +6406 -0
- package/dist/chunk-7YAOUUKK.js +493 -0
- package/dist/chunk-AAAODV76.js +860 -0
- package/dist/chunk-AB4HUJVQ.js +339 -0
- package/dist/chunk-AEQWV746.js +611 -0
- package/dist/chunk-AHU3FKPA.js +11639 -0
- package/dist/chunk-AISTV5XU.js +226 -0
- package/dist/chunk-AJBTKGJZ.js +48 -0
- package/dist/chunk-AJJNW7XT.js +248 -0
- package/dist/chunk-AJN5Y5YZ.js +160 -0
- package/dist/chunk-ALDTFNZ3.js +150 -0
- package/dist/chunk-ARARVIZK.js +281 -0
- package/dist/chunk-ATBM6AW5.js +53 -0
- package/dist/chunk-ATKEKM3E.js +206 -0
- package/dist/chunk-AUJLW6JZ.js +92 -0
- package/dist/chunk-AY3MHEFM.js +24 -0
- package/dist/chunk-B7PYTV72.js +236 -0
- package/dist/chunk-B7YRSULE.js +1423 -0
- package/dist/chunk-BAWJNMWF.js +339 -0
- package/dist/chunk-BBPIILO2.js +88 -0
- package/dist/chunk-BD3PGW6A.js +957 -0
- package/dist/chunk-BDPYFAB4.js +44 -0
- package/dist/chunk-BIUV23HH.js +729 -0
- package/dist/chunk-BQ3VAGXH.js +243 -0
- package/dist/chunk-BQJOGAWT.js +31 -0
- package/dist/chunk-BT7EG7CO.js +68 -0
- package/dist/chunk-BV3XQQLU.js +27 -0
- package/dist/chunk-BY6ODHNZ.js +78 -0
- package/dist/chunk-BZRLSZNV.js +79 -0
- package/dist/chunk-C3DH3NCY.js +2773 -0
- package/dist/chunk-C3KCMAJP.js +756 -0
- package/dist/chunk-C7AGUJ5K.js +267 -0
- package/dist/chunk-CBSWKQCX.js +342 -0
- package/dist/chunk-CE5OZBYY.js +21 -0
- package/dist/chunk-CFCVYHSW.js +373 -0
- package/dist/chunk-CHA2HDE5.js +126 -0
- package/dist/chunk-CIHWPGS5.js +146 -0
- package/dist/chunk-CJBSZX3F.js +127 -0
- package/dist/chunk-CLA6QIJM.js +43 -0
- package/dist/chunk-CPSVQR2I.js +365 -0
- package/dist/chunk-CRPRVNQ4.js +254 -0
- package/dist/chunk-CSIE4Y7C.js +1093 -0
- package/dist/chunk-CSOPSYDY.js +142 -0
- package/dist/chunk-CSXLLEGB.js +205 -0
- package/dist/chunk-CTDLERWU.js +293 -0
- package/dist/chunk-CULBXMSK.js +110 -0
- package/dist/chunk-D2M2Y5ID.js +21 -0
- package/dist/chunk-D37WY7SH.js +1060 -0
- package/dist/chunk-D4VJFCGZ.js +89 -0
- package/dist/chunk-D6WTZMZB.js +48 -0
- package/dist/chunk-DBHOWDUH.js +976 -0
- package/dist/chunk-DCACX7BV.js +19364 -0
- package/dist/chunk-DFHX4XYA.js +128 -0
- package/dist/chunk-DIKBRRKE.js +176 -0
- package/dist/chunk-DJG5RIOR.js +9 -0
- package/dist/chunk-DNIOIISW.js +616 -0
- package/dist/chunk-DOA5G7IA.js +315 -0
- package/dist/chunk-DP7FKP6W.js +855 -0
- package/dist/chunk-DS2JZ677.js +79 -0
- package/dist/chunk-DSRLVYBS.js +82 -0
- package/dist/chunk-EAEVKNJA.js +209 -0
- package/dist/chunk-EEUESN3T.js +575 -0
- package/dist/chunk-EJ4LUU5Y.js +73 -0
- package/dist/chunk-EJIWTPSZ.js +1063 -0
- package/dist/chunk-EJVCDTAN.js +116 -0
- package/dist/chunk-EKLUBDBQ.js +627 -0
- package/dist/chunk-EN62WLFD.js +849 -0
- package/dist/chunk-ENYRCL43.js +26 -0
- package/dist/chunk-EP22ZMFO.js +273 -0
- package/dist/chunk-EP4SVAVI.js +87 -0
- package/dist/chunk-EPAMVGI3.js +1562 -0
- package/dist/chunk-EPRMH6HO.js +24 -0
- package/dist/chunk-ES6NWJ36.js +4057 -0
- package/dist/chunk-ETA2K4KI.js +30 -0
- package/dist/chunk-ETAD4NKD.js +31 -0
- package/dist/chunk-EUWIIDQ7.js +93 -0
- package/dist/chunk-EVE3OD2W.js +141 -0
- package/dist/chunk-EXA26FFC.js +459 -0
- package/dist/chunk-EXSPAA35.js +244 -0
- package/dist/chunk-F55YABKV.js +258 -0
- package/dist/chunk-F5DNGU5W.js +27 -0
- package/dist/chunk-F622MJYV.js +103 -0
- package/dist/chunk-F6NIQD74.js +5111 -0
- package/dist/chunk-FAWJTC34.js +43 -0
- package/dist/chunk-FAZBRHGG.js +47 -0
- package/dist/chunk-FIEUSGNJ.js +39 -0
- package/dist/chunk-FKCG7K6H.js +1146 -0
- package/dist/chunk-FOVVXV45.js +229 -0
- package/dist/chunk-FRBPKBFE.js +30 -0
- package/dist/chunk-FSA5BPFI.js +268 -0
- package/dist/chunk-FSJ5TTZ3.js +29 -0
- package/dist/chunk-FT7SGLXT.js +193 -0
- package/dist/chunk-FUUVZZUB.js +62 -0
- package/dist/chunk-FYMRVUNZ.js +1697 -0
- package/dist/chunk-FYTAA5FG.js +162 -0
- package/dist/chunk-G3VB2UCZ.js +3892 -0
- package/dist/chunk-G6OIMVXH.js +405 -0
- package/dist/chunk-G7PQCXVH.js +228 -0
- package/dist/chunk-GAB6UW52.js +1087 -0
- package/dist/chunk-GAFJEYLK.js +29 -0
- package/dist/chunk-GC4CRMTS.js +642 -0
- package/dist/chunk-GFHSIWHL.js +5297 -0
- package/dist/chunk-GI5M67YA.js +735 -0
- package/dist/chunk-GIJWHUWF.js +191 -0
- package/dist/chunk-GO6DRECI.js +1 -0
- package/dist/chunk-GOFVBTMN.js +314 -0
- package/dist/chunk-GQIP72ZJ.js +13 -0
- package/dist/chunk-GQXLXRFA.js +28 -0
- package/dist/chunk-GT6HFKJB.js +48 -0
- package/dist/chunk-GVJGSSKM.js +174 -0
- package/dist/chunk-GWHGTG37.js +36 -0
- package/dist/chunk-GZAJHLKO.js +18 -0
- package/dist/chunk-GZK62I3N.js +314 -0
- package/dist/chunk-H3HGMISG.js +483 -0
- package/dist/chunk-H3ISZJMJ.js +403 -0
- package/dist/chunk-H4HXVWEC.js +9 -0
- package/dist/chunk-H6MJGKAW.js +120 -0
- package/dist/chunk-HBTTGVR5.js +353 -0
- package/dist/chunk-HBZ322WZ.js +35 -0
- package/dist/chunk-HEP3ILP4.js +34 -0
- package/dist/chunk-HGFXODKO.js +106 -0
- package/dist/chunk-HHWDTB6S.js +59 -0
- package/dist/chunk-HKO45NLZ.js +286 -0
- package/dist/chunk-HLVTEA6A.js +89 -0
- package/dist/chunk-HS3SY6HN.js +160 -0
- package/dist/chunk-HT5OCGKN.js +899 -0
- package/dist/chunk-HXIIEMGF.js +78 -0
- package/dist/chunk-I56TH7VM.js +46 -0
- package/dist/chunk-I6FN3R5D.js +352 -0
- package/dist/chunk-I7SCBHJN.js +655 -0
- package/dist/chunk-IJM4GKAT.js +529 -0
- package/dist/chunk-IMEYU36R.js +344 -0
- package/dist/chunk-INJ3SS6A.js +936 -0
- package/dist/chunk-IUKOPCCE.js +441 -0
- package/dist/chunk-IVEPZQJO.js +33 -0
- package/dist/chunk-IVZEONFC.js +43 -0
- package/dist/chunk-IWBHRSG7.js +936 -0
- package/dist/chunk-IYY3HQAD.js +484 -0
- package/dist/chunk-J2ICMYDA.js +48 -0
- package/dist/chunk-J2QCFLUN.js +505 -0
- package/dist/chunk-J5HM6V5P.js +1039 -0
- package/dist/chunk-J6NZX6QH.js +398 -0
- package/dist/chunk-JBBB2Y47.js +432 -0
- package/dist/chunk-JDCZQZU7.js +42 -0
- package/dist/chunk-JEDNXGSS.js +169 -0
- package/dist/chunk-JHP7OT6K.js +89 -0
- package/dist/chunk-JLS65NUQ.js +14 -0
- package/dist/chunk-JNMWYMC6.js +38 -0
- package/dist/chunk-JNSTWNNW.js +25 -0
- package/dist/chunk-JOSK6GEU.js +9564 -0
- package/dist/chunk-JQUMSIGC.js +100 -0
- package/dist/chunk-JVHGMURQ.js +1106 -0
- package/dist/chunk-JYXS47FQ.js +951 -0
- package/dist/chunk-K2ZMW2Z5.js +2147 -0
- package/dist/chunk-K7FAFORM.js +14 -0
- package/dist/chunk-KBJXX3ON.js +333 -0
- package/dist/chunk-KHFKVQWY.js +486 -0
- package/dist/chunk-KHMEI3DQ.js +173 -0
- package/dist/chunk-KHW3UD7B.js +69 -0
- package/dist/chunk-KKQKWAMF.js +365 -0
- package/dist/chunk-KOKXJV2U.js +455 -0
- package/dist/chunk-KQ4NGOJI.js +14 -0
- package/dist/chunk-KQYQOXMS.js +342 -0
- package/dist/chunk-KTMW65UX.js +14 -0
- package/dist/chunk-KUEWV2JH.js +593 -0
- package/dist/chunk-KXYDV3HP.js +1523 -0
- package/dist/chunk-KZ4JMGZ5.js +96 -0
- package/dist/chunk-KZWGBUIO.js +2659 -0
- package/dist/chunk-L2CBG5IX.js +1892 -0
- package/dist/chunk-L2S235CU.js +314 -0
- package/dist/chunk-L32WD57F.js +98 -0
- package/dist/chunk-LDJCKAJP.js +123 -0
- package/dist/chunk-LDWNBEN7.js +541 -0
- package/dist/chunk-LJVH57G2.js +241 -0
- package/dist/chunk-LPQ7NZEN.js +209 -0
- package/dist/chunk-LRGH3CCV.js +148 -0
- package/dist/chunk-LULOGMMM.js +1133 -0
- package/dist/chunk-LWGKN2GY.js +8284 -0
- package/dist/chunk-LX4F24ZH.js +157 -0
- package/dist/chunk-M4BUEXXF.js +839 -0
- package/dist/chunk-M6UHOC4I.js +553 -0
- package/dist/chunk-MCBNWZNO.js +657 -0
- package/dist/chunk-MEMSY6VY.js +223 -0
- package/dist/chunk-MHLEZQQI.js +145 -0
- package/dist/chunk-MJ6WNSIX.js +192 -0
- package/dist/chunk-MKASIKWZ.js +442 -0
- package/dist/chunk-MNOVBYFU.js +60 -0
- package/dist/chunk-MO2BYAAF.js +2896 -0
- package/dist/chunk-MP6P7Y2A.js +180 -0
- package/dist/chunk-MQ4TFJAG.js +3365 -0
- package/dist/chunk-MT2WAIR3.js +131 -0
- package/dist/chunk-MTU7VTNN.js +1122 -0
- package/dist/chunk-MULMXX4V.js +150 -0
- package/dist/chunk-MW2DWWVA.js +147 -0
- package/dist/chunk-MY3ZPUN4.js +151 -0
- package/dist/chunk-MYLH2S4G.js +64 -0
- package/dist/chunk-MZ5WYKNA.js +28 -0
- package/dist/chunk-N3Q2JNPV.js +249 -0
- package/dist/chunk-N5DX4JAK.js +12 -0
- package/dist/chunk-NAINGKHF.js +35 -0
- package/dist/chunk-NEQUQHOX.js +223 -0
- package/dist/chunk-NHNPEZS4.js +1408 -0
- package/dist/chunk-NHTIXJCR.js +17 -0
- package/dist/chunk-NKLPMBNV.js +1154 -0
- package/dist/chunk-NMVZ5YES.js +199 -0
- package/dist/chunk-NRFRY3GE.js +256 -0
- package/dist/chunk-NTD6CSI6.js +1266 -0
- package/dist/chunk-NUO7B3SH.js +318 -0
- package/dist/chunk-NVOHIJKG.js +1319 -0
- package/dist/chunk-NXH3RX7O.js +523 -0
- package/dist/chunk-NXZ3DURF.js +257 -0
- package/dist/chunk-O26L6F7F.js +209 -0
- package/dist/chunk-O5RRIUEP.js +124 -0
- package/dist/chunk-O5X6BKAO.js +10 -0
- package/dist/chunk-O6ZQUVTR.js +31 -0
- package/dist/chunk-O7FE75QZ.js +306 -0
- package/dist/chunk-OC7Z6AJQ.js +81 -0
- package/dist/chunk-OH7IEZ63.js +307 -0
- package/dist/chunk-OI734GRS.js +115 -0
- package/dist/chunk-OJBH62DK.js +684 -0
- package/dist/chunk-OKJLVSTJ.js +247 -0
- package/dist/chunk-OMX5VL43.js +79 -0
- package/dist/chunk-ONHAMBN6.js +12 -0
- package/dist/chunk-ONYPLIVE.js +753 -0
- package/dist/chunk-OSK7QWPD.js +637 -0
- package/dist/chunk-OTXLMJKP.js +438 -0
- package/dist/chunk-OV5PKQMA.js +213 -0
- package/dist/chunk-OXK5HA4B.js +31 -0
- package/dist/chunk-OYDWFQA4.js +272 -0
- package/dist/chunk-OZAUKWHB.js +22 -0
- package/dist/chunk-P5P2EKGH.js +94 -0
- package/dist/chunk-P6SSWAKY.js +29 -0
- package/dist/chunk-P7CQGPLS.js +30 -0
- package/dist/chunk-P7RVCHQV.js +197 -0
- package/dist/chunk-PEBWDYIW.js +726 -0
- package/dist/chunk-PFCXFO7A.js +9193 -0
- package/dist/chunk-PFLDWMX6.js +168 -0
- package/dist/chunk-PHZGLQSK.js +15883 -0
- package/dist/chunk-PNFTPNSR.js +20 -0
- package/dist/chunk-PPHXX4W7.js +175 -0
- package/dist/chunk-PPZESPJT.js +262 -0
- package/dist/chunk-PRDHI2L5.js +296 -0
- package/dist/chunk-PSTKWHHN.js +32 -0
- package/dist/chunk-PV53ODOT.js +555 -0
- package/dist/chunk-PVJBTI7P.js +24 -0
- package/dist/chunk-PXKERBKX.js +100 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-Q3DHEZA5.js +85 -0
- package/dist/chunk-Q5RZDVQK.js +204 -0
- package/dist/chunk-Q64IR2Z2.js +4933 -0
- package/dist/chunk-Q6Z5UGPL.js +398 -0
- package/dist/chunk-QAMAV4DT.js +627 -0
- package/dist/chunk-QBWF4444.js +112 -0
- package/dist/chunk-QDKYT4CI.js +22805 -0
- package/dist/chunk-QFLBRWCJ.js +126 -0
- package/dist/chunk-QILAQACE.js +107 -0
- package/dist/chunk-QJ6OEH4K.js +3683 -0
- package/dist/chunk-QK3NLYTV.js +320 -0
- package/dist/chunk-QOFLUS24.js +535 -0
- package/dist/chunk-QOIASNEJ.js +98 -0
- package/dist/chunk-QP4UTSOV.js +3587 -0
- package/dist/chunk-QP5ST7RI.js +904 -0
- package/dist/chunk-QS5AGRZN.js +167 -0
- package/dist/chunk-QTAOU53N.js +107 -0
- package/dist/chunk-QTCLJHLZ.js +351 -0
- package/dist/chunk-QTOLTG4L.js +119 -0
- package/dist/chunk-QWDV4OSL.js +142 -0
- package/dist/chunk-QWMQ74KD.js +508 -0
- package/dist/chunk-QX6LOMMH.js +158 -0
- package/dist/chunk-QXBKIHY7.js +238 -0
- package/dist/chunk-QXBKTJT6.js +270 -0
- package/dist/chunk-QYQOVOLR.js +196 -0
- package/dist/chunk-R2CKS6WT.js +73 -0
- package/dist/chunk-R2TIYG7U.js +68 -0
- package/dist/chunk-R2W3LESH.js +465 -0
- package/dist/chunk-R5EXHMUN.js +100 -0
- package/dist/chunk-RBBTBCHX.js +289 -0
- package/dist/chunk-RBKLOUXA.js +121 -0
- package/dist/chunk-RCP2Y6DQ.js +86 -0
- package/dist/chunk-RCYEJSD5.js +260 -0
- package/dist/chunk-RFDVSI4N.js +134 -0
- package/dist/chunk-RGJU63FV.js +1717 -0
- package/dist/chunk-RI4EX2QE.js +18 -0
- package/dist/chunk-RIMARPCF.js +152 -0
- package/dist/chunk-RJ6RSNT6.js +42 -0
- package/dist/chunk-RNI2GUIF.js +131 -0
- package/dist/chunk-RPHUWJ3K.js +264 -0
- package/dist/chunk-RPIMAMV7.js +361 -0
- package/dist/chunk-RQFX6YRN.js +49 -0
- package/dist/chunk-RRC5BL7B.js +285 -0
- package/dist/chunk-RSYTSBOO.js +79 -0
- package/dist/chunk-RWQQIKIC.js +35 -0
- package/dist/chunk-RZUBOZH2.js +373 -0
- package/dist/chunk-S2E632FQ.js +380 -0
- package/dist/chunk-S2VQCZO4.js +22 -0
- package/dist/chunk-S2XIMQJQ.js +681 -0
- package/dist/chunk-S47ISY27.js +183 -0
- package/dist/chunk-S6I4KISU.js +142 -0
- package/dist/chunk-S6TAFQI5.js +2403 -0
- package/dist/chunk-SBBNT5ZJ.js +27 -0
- package/dist/chunk-SDJV2DTQ.js +491 -0
- package/dist/chunk-SDPIFNLD.js +33 -0
- package/dist/chunk-SF6YK3JI.js +835 -0
- package/dist/chunk-SK3ZFONO.js +976 -0
- package/dist/chunk-SKTFRFQ7.js +1775 -0
- package/dist/chunk-SNGM452K.js +2002 -0
- package/dist/chunk-STW7OFOA.js +581 -0
- package/dist/chunk-SU6UFUQY.js +1351 -0
- package/dist/chunk-SVJM3LJA.js +27 -0
- package/dist/chunk-SVUNZOPG.js +129 -0
- package/dist/chunk-T5XLUYV3.js +34 -0
- package/dist/chunk-T7E5JS6N.js +57 -0
- package/dist/chunk-TA3N5MMO.js +450 -0
- package/dist/chunk-TAJPCXSB.js +13 -0
- package/dist/chunk-TDEMDRN2.js +1639 -0
- package/dist/chunk-TDSEX5CF.js +24 -0
- package/dist/chunk-TGCVL74Y.js +28 -0
- package/dist/chunk-TGXXYDL4.js +1012 -0
- package/dist/chunk-TIKTYUJO.js +296 -0
- package/dist/chunk-TIZAJD4M.js +6029 -0
- package/dist/chunk-TLSEZZCG.js +5549 -0
- package/dist/chunk-TMBDRHAX.js +19 -0
- package/dist/chunk-TRURQUBP.js +1217 -0
- package/dist/chunk-TSQ256N5.js +152 -0
- package/dist/chunk-TUQMMFEQ.js +2244 -0
- package/dist/chunk-U424MJLC.js +81 -0
- package/dist/chunk-U4DRS6ZW.js +11 -0
- package/dist/chunk-U5KS22IN.js +204 -0
- package/dist/chunk-UAPHFJPN.js +673 -0
- package/dist/chunk-UB7LQITD.js +1040 -0
- package/dist/chunk-UBVRHGAZ.js +237 -0
- package/dist/chunk-UDNNAQN5.js +98 -0
- package/dist/chunk-UJP3XM54.js +342 -0
- package/dist/chunk-UJYDH2MW.js +305 -0
- package/dist/chunk-UKMPASIC.js +399 -0
- package/dist/chunk-UKUL3EHK.js +763 -0
- package/dist/chunk-UPHU64NB.js +1327 -0
- package/dist/chunk-URMSZXAD.js +43 -0
- package/dist/chunk-US3RT6CY.js +525 -0
- package/dist/chunk-UTDEOPKV.js +30 -0
- package/dist/chunk-UUUDKV7N.js +13 -0
- package/dist/chunk-UVKWU3SM.js +39 -0
- package/dist/chunk-V2TVPO3X.js +521 -0
- package/dist/chunk-V3KLVK7B.js +398 -0
- package/dist/chunk-V3YFFHDR.js +17 -0
- package/dist/chunk-VAG6GUBR.js +1162 -0
- package/dist/chunk-VBENAHDA.js +1814 -0
- package/dist/chunk-VBNCKCCI.js +16 -0
- package/dist/chunk-VCGSWN5M.js +1300 -0
- package/dist/chunk-VE2O2I7M.js +115 -0
- package/dist/chunk-VIFHYTI5.js +31 -0
- package/dist/chunk-VJER3FUS.js +5080 -0
- package/dist/chunk-VLMDM56Q.js +268 -0
- package/dist/chunk-VMFZEVVX.js +99 -0
- package/dist/chunk-VNDPQVUZ.js +1853 -0
- package/dist/chunk-VSPJRLGA.js +4783 -0
- package/dist/chunk-VSWC5ZXI.js +103 -0
- package/dist/chunk-VYI4DSZP.js +2017 -0
- package/dist/chunk-W4BAIQ6L.js +1212 -0
- package/dist/chunk-W7VQAL2K.js +2203 -0
- package/dist/chunk-WEI3ZDZH.js +33 -0
- package/dist/chunk-WEIUS5NT.js +26 -0
- package/dist/chunk-WEW7UFWE.js +546 -0
- package/dist/chunk-WGQAXLNA.js +384 -0
- package/dist/chunk-WJAL4JL3.js +206 -0
- package/dist/chunk-WKFOJ5ZG.js +141 -0
- package/dist/chunk-WMWQEFLN.js +2177 -0
- package/dist/chunk-WNECKKO2.js +154 -0
- package/dist/chunk-WPKLYOAM.js +195 -0
- package/dist/chunk-WSH37YQN.js +243 -0
- package/dist/chunk-WV3KQDPE.js +84 -0
- package/dist/chunk-WZFC4V4U.js +389 -0
- package/dist/chunk-XCOIBNET.js +13 -0
- package/dist/chunk-XDM65LBX.js +53 -0
- package/dist/chunk-XGU6PBO5.js +645 -0
- package/dist/chunk-XHOI4V62.js +43 -0
- package/dist/chunk-XIBVFMLQ.js +6858 -0
- package/dist/chunk-XJ2E7YEJ.js +117 -0
- package/dist/chunk-XON4ZCYX.js +69 -0
- package/dist/chunk-XQPEWJPI.js +127 -0
- package/dist/chunk-XSJTIFUY.js +31 -0
- package/dist/chunk-XT7OVWM3.js +64 -0
- package/dist/chunk-XTXYIISX.js +1104 -0
- package/dist/chunk-XV7NZL4B.js +57 -0
- package/dist/chunk-XWIZ6B5S.js +109 -0
- package/dist/chunk-XWLIKOBX.js +240 -0
- package/dist/chunk-XZOXEIN4.js +156 -0
- package/dist/chunk-XZRS7I7W.js +3673 -0
- package/dist/chunk-Y4ZDDHB6.js +44 -0
- package/dist/chunk-Y733RB7T.js +194 -0
- package/dist/chunk-YBHUB4XR.js +14931 -0
- package/dist/chunk-YKC75XK4.js +147 -0
- package/dist/chunk-YKMXFVK7.js +27 -0
- package/dist/chunk-YO5BAJ55.js +225 -0
- package/dist/chunk-YPDCLXNZ.js +568 -0
- package/dist/chunk-YSQPGVFK.js +116 -0
- package/dist/chunk-YTVVTIWJ.js +716 -0
- package/dist/chunk-YVCMDVBB.js +698 -0
- package/dist/chunk-YYTOA6DP.js +114 -0
- package/dist/chunk-Z5WGNULV.js +88 -0
- package/dist/chunk-Z6NGVVXG.js +66 -0
- package/dist/chunk-Z7CDQNH3.js +20 -0
- package/dist/chunk-ZH4G3FU5.js +187 -0
- package/dist/chunk-ZJB6SQPA.js +257 -0
- package/dist/chunk-ZL6E4HMY.js +42 -0
- package/dist/chunk-ZMLOC3DW.js +62 -0
- package/dist/chunk-ZORW64QH.js +101 -0
- package/dist/chunk-ZVVD2XGV.js +1369 -0
- package/dist/cli-utils-ER33ODC5.js +31 -0
- package/dist/cli-validation-6CHPTANV.js +146 -0
- package/dist/commit-utils-3STAY7C7.js +49 -0
- package/dist/compatibility-notice-IHNXR2JR.js +21 -0
- package/dist/compete-config-resolver-V3GDNJMM.js +125 -0
- package/dist/compete-results-XUM3PJHS.js +318 -0
- package/dist/competition-outcome-tracker-NWSMVUPG.js +62 -0
- package/dist/config-4HHE4OIK.js +238 -0
- package/dist/config-D6YAZASH.js +10 -0
- package/dist/config-MIPRDYYV.js +46 -0
- package/dist/config-audit-GA5DCUAI.js +371 -0
- package/dist/config-explain-4LMO556H.js +71 -0
- package/dist/config-loader-RGP634PC.js +51 -0
- package/dist/config-manager-J2UTO635.js +114 -0
- package/dist/config-merger-TVUJBZTS.js +14 -0
- package/dist/config-validator-H4ZVIE56.js +122 -0
- package/dist/cost-HSIV5U2Y.js +85 -0
- package/dist/data-migration-state-OAUL2WPQ.js +35 -0
- package/dist/db-migrator-NUOW5NKR.js +34 -0
- package/dist/default-paths-UILB62BN.js +49 -0
- package/dist/discovery-V6GYUJUC.js +53 -0
- package/dist/doctor-BBSMCDWE.js +271 -0
- package/dist/doctor-context-blocks-LPY75VZA.js +231 -0
- package/dist/doctor-instructions-import-JXHDDOE5.js +70 -0
- package/dist/doctor-purpose-6YJOXPBE.js +30 -0
- package/dist/domain-analyzer-S35ABUNA.js +48 -0
- package/dist/ensure-initialized-Q6PEU55O.js +78 -0
- package/dist/entry.js +922 -0
- package/dist/error-parser-core-MZFMFANN.js +70 -0
- package/dist/evaluation-context-GQBYDAEV.js +63 -0
- package/dist/evidence-plan-resolver-5FUAP3SA.js +111 -0
- package/dist/execution-data-writer-YCG5UH37.js +72 -0
- package/dist/execution-policy-applier-PWZM5LNA.js +63 -0
- package/dist/execution-preflight-DASJWWQF.js +223 -0
- package/dist/execution-roles-KNSNNB2D.js +112 -0
- package/dist/exit-code-error-QIY5DOKF.js +18 -0
- package/dist/external-temp-cleanup-CAW7LQ6R.js +360 -0
- package/dist/factory-YCYCB7AE.js +209 -0
- package/dist/file-utils-ZQYNBQBW.js +45 -0
- package/dist/flywheel-allowlist-revert-H22HA6JE.js +21 -0
- package/dist/flywheel-autoloop-executor-PDOASJEZ.js +316 -0
- package/dist/flywheel-autoloop-unverified-TOKYFCDC.js +36 -0
- package/dist/flywheel-competition-executor-YJUMMEJO.js +320 -0
- package/dist/flywheel-executor-JWU43KAY.js +437 -0
- package/dist/flywheel-git-isolation-FQ2TRWMB.js +56 -0
- package/dist/flywheel-manifest-HDPNMWWF.js +114 -0
- package/dist/flywheel-model-defaults-UHAKTZT3.js +110 -0
- package/dist/flywheel-preflight-III2C7TH.js +163 -0
- package/dist/flywheel-resume-2O45MS7Y.js +31 -0
- package/dist/flywheel-resume-execution-lease-P2BK257J.js +59 -0
- package/dist/flywheel-safety-AVAVFXIJ.js +19 -0
- package/dist/flywheel-scope-decision-ALJUUNGG.js +14 -0
- package/dist/get-telemetry-logger-MPDVO2JA.js +155 -0
- package/dist/git-message-style-KCXGMTDT.js +104 -0
- package/dist/guidance-profile-config-G3K5YQOO.js +113 -0
- package/dist/guidance-profile-renderer-TX4TNDFL.js +23 -0
- package/dist/identity-XLQJ4YJF.js +25 -0
- package/dist/index-query-6NUY4FKX.js +37 -0
- package/dist/index.js +85588 -0
- package/dist/indexer-DL54CM3K.js +44 -0
- package/dist/init-OUZ72344.js +245 -0
- package/dist/instructions-import-offer-NSYXSITC.js +363 -0
- package/dist/instructions-run-NBII7W36.js +114 -0
- package/dist/interrupted-work-E4TLKJLE.js +43 -0
- package/dist/invoke-provider-auth-NEWEIHCI.js +38 -0
- package/dist/judge-scoring.json +64 -0
- package/dist/lab-mode-YXQ2Y3NG.js +44 -0
- package/dist/lab-utils-5QAMDJR5.js +29 -0
- package/dist/linux-host-class-YDWQX65O.js +31 -0
- package/dist/llm-judge-executor-OJSNCTFJ.js +179 -0
- package/dist/local-ci-config-VZ4WWDT5.js +48 -0
- package/dist/local-executor-DCMDDRX2.js +280 -0
- package/dist/logger-5KNKS3O4.js +154 -0
- package/dist/matrix-prompt-builder-4ZBOGZSB.js +527 -0
- package/dist/matrix-result-parser-EZJM4YXP.js +14 -0
- package/dist/merge-batch-RTEEMVDB.js +313 -0
- package/dist/merge-batch-members-VIWGVRHP.js +24 -0
- package/dist/merge-queue-TIIUSOY6.js +126 -0
- package/dist/merge-queue-trust-DUNZ4J65.js +21 -0
- package/dist/metadata-UKSMWM6J.js +29 -0
- package/dist/model-catalog-readiness-R5KJBP5M.js +202 -0
- package/dist/model-invocations-db-XTUPPQ34.js +70 -0
- package/dist/model-resolver-JFZ2MHOJ.js +39 -0
- package/dist/model-resolver-SCQ57KAQ.js +217 -0
- package/dist/model-roles-D3OR4NAH.js +110 -0
- package/dist/monitor-F4SIU5G2.js +96 -0
- package/dist/nested-worktrees-2WUWQ75N.js +23 -0
- package/dist/next-S3IRLVER.js +96 -0
- package/dist/next-UKPFRXOO.js +148 -0
- package/dist/opportunistic-TL4S26VX.js +86 -0
- package/dist/optimization-config-resolver-NAEIYU6A.js +148 -0
- package/dist/package-HJR4QJT4.js +10 -0
- package/dist/parse-git-status-7PIYFPS2.js +21 -0
- package/dist/path-security-5WJSY56G.js +41 -0
- package/dist/paths-JUI7C4KU.js +45 -0
- package/dist/plan-backlog-list-fast-SSTQL5XP.js +89 -0
- package/dist/plan-backlog-show-fast-PFRAQ3JB.js +114 -0
- package/dist/plan-sprint-list-fast-HD2KBZSY.js +110 -0
- package/dist/plan-sprint-status-fast-YFYH7WQF.js +116 -0
- package/dist/plan-task-status-fast-JU5PNLUU.js +114 -0
- package/dist/plan-to-flywheel-PY5MSY2H.js +529 -0
- package/dist/preflight-PJHGTJNZ.js +12 -0
- package/dist/process-registry-B4ZUCN7T.js +28 -0
- package/dist/process-scanner-TU3QHWVB.js +23 -0
- package/dist/processes-6FHVGT72.js +28 -0
- package/dist/processes-json-fast-YWTMUWXB.js +72 -0
- package/dist/profile-HWTC56SG.js +209 -0
- package/dist/project-runtime-paths-2UQNG5Y4.js +41 -0
- package/dist/protected-branches-N36LDBFY.js +71 -0
- package/dist/provider-aware-resource-manager-YTFAHNGJ.js +40 -0
- package/dist/provider-matrix-2KO2V5OM.js +214 -0
- package/dist/provider-matrix-renderer-MEC3PER7.js +139 -0
- package/dist/provider-output-forwarding-2AHL7YMA.js +26 -0
- package/dist/provider-registry-WCZ65QHC.js +136 -0
- package/dist/provider-temp-cleanup-IUNPJCZF.js +14 -0
- package/dist/prune-engine-EOQVWEP6.js +448 -0
- package/dist/publication-turn-S42RZTQF.js +44 -0
- package/dist/quality-gate-JQMVCKOO.js +72 -0
- package/dist/quickstart-3O6FRCFB.js +105 -0
- package/dist/readiness-GW6ABRHB.js +139 -0
- package/dist/readiness-KFZCXDTT.js +215 -0
- package/dist/registry-7XG376SY.js +217 -0
- package/dist/repair-helpers-TTV5FEF4.js +117 -0
- package/dist/repo-root-YG6MQZDW.js +28 -0
- package/dist/resolution-engine-FFEK7HQ2.js +187 -0
- package/dist/resolve-provider-cli-ZEXVZKET.js +44 -0
- package/dist/restore-telemetry-db-E7BR5PO7.js +459 -0
- package/dist/routing-events-AW6SRZ6G.js +13 -0
- package/dist/routing-history-store-FMDDQL6W.js +39 -0
- package/dist/routing-planner-C6OHO3EY.js +221 -0
- package/dist/runner-KHDNQ5KU.js +1194 -0
- package/dist/runner-PIS2BW7Y.js +1801 -0
- package/dist/safety-E3JJVSFL.js +67 -0
- package/dist/safety-stanza-HE6GXP4G.js +49 -0
- package/dist/sandbox-7LBZC5PE.js +72 -0
- package/dist/sandbox-ASWCDYZL.js +80 -0
- package/dist/schema-extensions.sql +234 -0
- package/dist/security-JI22TBEB.js +17 -0
- package/dist/setup-bb-plugin-FQXLA76Y.js +531 -0
- package/dist/setup-claude-code-NF4ZSHVE.js +197 -0
- package/dist/setup-temp-cleanup-2APZ4HMA.js +29 -0
- package/dist/shared-utils-34HJZ6JX.js +40 -0
- package/dist/simple-artifact-goal-MQLDDMMX.js +29 -0
- package/dist/sprint-N7JFTEGL.js +403 -0
- package/dist/sprint-bridge-KJXIBNRJ.js +117 -0
- package/dist/sprint-completion-dependents-34SR7JVL.js +43 -0
- package/dist/sprint-execution-service-A6JPUBWY.js +376 -0
- package/dist/sprint-manager-MU2ZUWN2.js +140 -0
- package/dist/sqlite-timeout-config-U2CT4LKU.js +13 -0
- package/dist/sqlite-wrapper-FSGJ2QEW.js +19 -0
- package/dist/stale-cleanup-orchestrator-4X6324VF.js +71 -0
- package/dist/storage-access-I3V5LER7.js +31 -0
- package/dist/store-XVG64ZR2.js +25 -0
- package/dist/task-classifier-MN2DYE5R.js +558 -0
- package/dist/task-list-fast-7AT6LTTA.js +112 -0
- package/dist/task-manager-LHPBBRRE.js +136 -0
- package/dist/task-report-OLPAWBTK.js +64 -0
- package/dist/task-type-detector-6RG3YNZF.js +27 -0
- package/dist/task-type-resolver-EQHOUIHT.js +64 -0
- package/dist/telemetry-5VYSK772.js +212 -0
- package/dist/telemetry-health-tracker-4GFW2EMP.js +12 -0
- package/dist/telemetry-path-resolver-H3NFHHQY.js +34 -0
- package/dist/telemetry-reliability-URJDTNPZ.js +76 -0
- package/dist/transports-NREZQTJK.js +106 -0
- package/dist/unified-cost-tracker-5MTBJ2CL.js +59 -0
- package/dist/unified-state-cleanup-GGAXLHXF.js +292 -0
- package/dist/universal-cost-calculator-JTFEJVWK.js +70 -0
- package/dist/user-agents-QLIGPLP2.js +30 -0
- package/dist/variant-execution-I4ZZUAWY.js +319 -0
- package/dist/variant-opt-parser-JHCXKY2K.js +251 -0
- package/dist/variant-request-input-PL37N3AN.js +11 -0
- package/dist/variant-state-cleanup-KHMXRBZN.js +287 -0
- package/dist/variant-worker-COB5YTJX.js +4517 -0
- package/dist/variant-worker.js +26 -0
- package/dist/variants-XGDSXYG3.js +267 -0
- package/dist/verification-command-YSPU4VBH.js +66 -0
- package/dist/verify-command-timeout-DQUYH33Z.js +11 -0
- package/dist/verify-commands-LOHMOFKC.js +65 -0
- package/dist/warning-JSKSFKBT.js +13 -0
- package/dist/work-edge-K65NHVWY.js +50 -0
- package/dist/work-item-writer-KY5ZWZWW.js +30 -0
- package/dist/worker-JNXXEIT6.js +1504 -0
- package/dist/worker.js +21 -0
- package/dist/workspace-tree-identity-JO5PSKTW.js +52 -0
- package/dist/worktree-environment-WTVABAQW.js +64 -0
- package/dist/worktree-metrics-VZRQI26T.js +66 -0
- package/dist/writeback-TQFQBJNU.js +50 -0
- package/docs/CLI_REFERENCE.md +8287 -0
- package/docs/PROVIDER_SETUP.md +1737 -0
- package/docs/README.md +96 -0
- package/docs/TROUBLESHOOTING.md +2209 -0
- package/docs/getting-started/QUICK_START.md +260 -0
- package/docs/getting-started/README.md +198 -0
- package/docs/getting-started/SETUP.md +25 -0
- package/docs/reference/AGENT_CONTEXT.md +84 -0
- package/docs/reference/DELIVERY_ONBOARDING.md +198 -0
- package/docs/reference/PROVIDER_RELEASE_TIERS.md +34 -0
- package/docs/reference/SECURITY.md +291 -0
- package/docs/reference/TELEMETRY_PRIVACY.md +259 -0
- package/integrations/bb-plugin-build/README.md +391 -0
- package/integrations/bb-plugin-build/app.css +431 -0
- package/integrations/bb-plugin-build/app.tsx +6210 -0
- package/integrations/bb-plugin-build/package.json +45 -0
- package/integrations/bb-plugin-build/server.ts +488 -0
- package/integrations/bb-plugin-build/src/adapter.ts +3672 -0
- package/integrations/bb-plugin-build/src/backlog-authoring-model.ts +150 -0
- package/integrations/bb-plugin-build/src/backlog-authoring-schema.ts +458 -0
- package/integrations/bb-plugin-build/src/backlog-authoring-service.ts +467 -0
- package/integrations/bb-plugin-build/src/backlog-authoring-view.ts +1025 -0
- package/integrations/bb-plugin-build/src/command-evidence-schema.ts +13 -0
- package/integrations/bb-plugin-build/src/competition-defaults-schema.ts +122 -0
- package/integrations/bb-plugin-build/src/competition-defaults-service.ts +105 -0
- package/integrations/bb-plugin-build/src/competition-defaults-view.ts +138 -0
- package/integrations/bb-plugin-build/src/contract.ts +718 -0
- package/integrations/bb-plugin-build/src/execution-activity-view.ts +98 -0
- package/integrations/bb-plugin-build/src/finalize-model.ts +205 -0
- package/integrations/bb-plugin-build/src/finalize-schema.ts +150 -0
- package/integrations/bb-plugin-build/src/finalize-service.ts +330 -0
- package/integrations/bb-plugin-build/src/finalize-view.ts +159 -0
- package/integrations/bb-plugin-build/src/judge-operations-readback.ts +303 -0
- package/integrations/bb-plugin-build/src/judge-operations-schema.ts +33 -0
- package/integrations/bb-plugin-build/src/judge-operations-view.ts +459 -0
- package/integrations/bb-plugin-build/src/model.ts +1318 -0
- package/integrations/bb-plugin-build/src/monitor-service.ts +233 -0
- package/integrations/bb-plugin-build/src/panel-read-ux.ts +97 -0
- package/integrations/bb-plugin-build/src/patch-preview-schema.ts +166 -0
- package/integrations/bb-plugin-build/src/patch-preview-service.ts +480 -0
- package/integrations/bb-plugin-build/src/patch-preview-view.ts +109 -0
- package/integrations/bb-plugin-build/src/planning-readback.ts +228 -0
- package/integrations/bb-plugin-build/src/planning-service.ts +647 -0
- package/integrations/bb-plugin-build/src/planning-sync-evidence.ts +37 -0
- package/integrations/bb-plugin-build/src/planning-workspace-readback.ts +33 -0
- package/integrations/bb-plugin-build/src/planning-workspace-schema.ts +131 -0
- package/integrations/bb-plugin-build/src/planning-workspace.ts +333 -0
- package/integrations/bb-plugin-build/src/poll-handoff.ts +136 -0
- package/integrations/bb-plugin-build/src/project-target-server.ts +21 -0
- package/integrations/bb-plugin-build/src/project-target.ts +45 -0
- package/integrations/bb-plugin-build/src/reference-index.ts +218 -0
- package/integrations/bb-plugin-build/src/repository-identity.ts +17 -0
- package/integrations/bb-plugin-build/src/repository-schema.ts +30 -0
- package/integrations/bb-plugin-build/src/result-explorer-view.ts +597 -0
- package/integrations/bb-plugin-build/src/result-readback-model.ts +163 -0
- package/integrations/bb-plugin-build/src/result-readback-schema.ts +319 -0
- package/integrations/bb-plugin-build/src/result-readback-service.ts +333 -0
- package/integrations/bb-plugin-build/src/run-page-view.ts +332 -0
- package/integrations/bb-plugin-build/src/setup-config-schema.ts +293 -0
- package/integrations/bb-plugin-build/src/setup-config-service.ts +620 -0
- package/integrations/bb-plugin-build/src/setup-config-view.ts +388 -0
- package/integrations/bb-plugin-build/src/sprint-close-model.ts +150 -0
- package/integrations/bb-plugin-build/src/sprint-close-schema.ts +128 -0
- package/integrations/bb-plugin-build/src/sprint-close-service.ts +293 -0
- package/integrations/bb-plugin-build/src/sprint-close-view.ts +116 -0
- package/integrations/bb-plugin-build/src/sprint-composition-model.ts +709 -0
- package/integrations/bb-plugin-build/src/sprint-composition-readback.ts +231 -0
- package/integrations/bb-plugin-build/src/sprint-composition-schema.ts +597 -0
- package/integrations/bb-plugin-build/src/sprint-composition-service.ts +773 -0
- package/integrations/bb-plugin-build/src/sprint-composition-view.ts +1221 -0
- package/integrations/bb-plugin-build/src/sprint-execution-schema.ts +188 -0
- package/integrations/bb-plugin-build/src/sprint-execution-service.ts +289 -0
- package/integrations/bb-plugin-build/src/sprint-execution-view.ts +54 -0
- package/integrations/bb-plugin-build/src/task-authoring-model.ts +563 -0
- package/integrations/bb-plugin-build/src/task-authoring-schema.ts +629 -0
- package/integrations/bb-plugin-build/src/task-authoring-service.ts +842 -0
- package/integrations/bb-plugin-build/src/task-authoring-view.ts +1227 -0
- package/integrations/bb-plugin-build/src/task-catalog-schema.ts +46 -0
- package/integrations/bb-plugin-build/src/task-catalog-service.ts +44 -0
- package/integrations/bb-plugin-build/src/task-detail-readback.ts +56 -0
- package/integrations/bb-plugin-build/src/task-detail-schema.ts +171 -0
- package/integrations/bb-plugin-build/src/task-navigation.ts +446 -0
- package/integrations/bb-plugin-build/src/workbench-route.ts +74 -0
- package/package.json +306 -4
- package/schemas/README.md +80 -0
- package/schemas/build.config.schema.json +2110 -0
- package/schemas/config-v1.schema.json +136 -0
- package/schemas/execution-config.schema.json +47 -0
- package/schemas/judge-scoring.schema.json +257 -0
- package/schemas/provider-config.schema.json +179 -0
- package/schemas/telemetry-config.schema.json +79 -0
- package/schemas/user-preferences.schema.json +141 -0
- package/scripts/assert-node-runtime.mjs +146 -0
- package/scripts/preflight-native.mjs +49 -0
- package/scripts/setup-git-hooks.mjs +39 -0
- package/scripts/sync.sh +2871 -0
- package/scripts/write-node-launcher.sh +138 -0
- package/src/resources/gemini/slash-packs/default/plan.toml +15 -0
- package/src/resources/gemini/slash-packs/default/summary.toml +16 -0
- package/src/resources/gemini/slash-packs/default/tests.toml +16 -0
- package/templates/.build-project/README.md +41 -0
- package/templates/.build-project/agents/README.md +50 -0
- package/templates/.build-project/agents/architect.md +10 -0
- package/templates/.build-project/agents/code-reviewer.md +10 -0
- package/templates/.build-project/agents/debugger.md +10 -0
- package/templates/.build-project/agents/documenter.md +10 -0
- package/templates/.build-project/agents/test-automator.md +10 -0
- package/templates/.build-project/config/build.config.jsonc +64 -0
- package/templates/.build-project/config/project-context.template.json +6 -0
- package/templates/.build-project/config/task-type-aliases.presets/kanban.yaml +14 -0
- package/templates/.build-project/config/task-type-aliases.presets/scrum.yaml +17 -0
- package/templates/.build-project/config/task-type-aliases.presets/xp.yaml +12 -0
- package/templates/.build-project/config/task-type-aliases.yaml +29 -0
- package/templates/.build-project/gitignore.template +70 -0
- package/templates/.build-project/task-types/analysis.yaml +38 -0
- package/templates/.build-project/task-types/architecture.yaml +35 -0
- package/templates/.build-project/task-types/doc.yaml +34 -0
- package/templates/.build-project/task-types/feature.yaml +22 -0
- package/templates/.build-project/task-types/general.yaml +4 -0
- package/templates/.build-project/task-types/security.yaml +38 -0
- package/templates/AGENTS.template.md +85 -0
- package/templates/CLAUDE.template.md +1 -0
- package/templates/GEMINI.template.md +1 -0
- package/templates/builtin-workflows/code-review.yaml +73 -0
- package/templates/builtin-workflows/skills/code-review/SKILL.md +61 -0
- package/templates/builtin-workflows/skills/execution-contract-analysis/SKILL.md +24 -0
- package/templates/builtin-workflows/skills/execution-contract-code/SKILL.md +19 -0
- package/templates/builtin-workflows/skills/execution-contract-structured/SKILL.md +17 -0
- package/templates/ci/incident-intake.mjs +787 -0
- package/templates/ci/incidents.yml.template +103 -0
- package/templates/ci/node.yml.template +17 -0
- package/templates/ci/python.yml.template +17 -0
- package/templates/guard-kit/GUARD_SETUP.md.template +258 -0
- package/templates/guard-kit/build-guard.yml.template +189 -0
- package/templates/guard-kit/check.mjs.template +932 -0
- package/templates/guard-kit/config.json.template +7 -0
- package/templates/guard-kit/policy.json.template +1 -0
- package/templates/profiles/README.md +57 -0
- package/templates/profiles/frontier-claude.json +23 -0
- package/templates/profiles/frontier-codex.json +23 -0
|
@@ -0,0 +1,756 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LEGACY_REPO_LOCAL_TELEMETRY_DATABASE,
|
|
3
|
+
readCanonicalBuildConfig,
|
|
4
|
+
selectedBuildConfigCandidate
|
|
5
|
+
} from "./chunk-FKCG7K6H.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveLabsRoot,
|
|
8
|
+
resolveProjectRuntimeDir,
|
|
9
|
+
resolveRunStateDir
|
|
10
|
+
} from "./chunk-AJN5Y5YZ.js";
|
|
11
|
+
import {
|
|
12
|
+
applySqlitePragmas
|
|
13
|
+
} from "./chunk-HEP3ILP4.js";
|
|
14
|
+
import {
|
|
15
|
+
getConfigPaths
|
|
16
|
+
} from "./chunk-35J4NE6S.js";
|
|
17
|
+
import {
|
|
18
|
+
getDataDir,
|
|
19
|
+
getGlobalTelemetryDir,
|
|
20
|
+
getProjectDataDir,
|
|
21
|
+
getStableRepoIdentity
|
|
22
|
+
} from "./chunk-56WPYDJH.js";
|
|
23
|
+
import {
|
|
24
|
+
resolveBuildRoot
|
|
25
|
+
} from "./chunk-CHA2HDE5.js";
|
|
26
|
+
import {
|
|
27
|
+
BUILD_LAB_BASELINE,
|
|
28
|
+
BUILD_LAB_ID,
|
|
29
|
+
BUILD_LAB_MODE,
|
|
30
|
+
BUILD_LAB_RUN_ID,
|
|
31
|
+
BUILD_TELEMETRY_DB,
|
|
32
|
+
BUILD_WORKTREE_BASE,
|
|
33
|
+
emitCustomWarning,
|
|
34
|
+
getExecutionContext,
|
|
35
|
+
hasExecutionContext,
|
|
36
|
+
readEnv,
|
|
37
|
+
readRawEnv
|
|
38
|
+
} from "./chunk-7VRJHTGZ.js";
|
|
39
|
+
|
|
40
|
+
// src/telemetry/telemetry-path-resolver.ts
|
|
41
|
+
import { execSync } from "child_process";
|
|
42
|
+
import path3 from "path";
|
|
43
|
+
|
|
44
|
+
// src/orchestrator/lab-mode.ts
|
|
45
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
46
|
+
import { createHash } from "crypto";
|
|
47
|
+
import * as fs from "fs";
|
|
48
|
+
import * as path from "path";
|
|
49
|
+
|
|
50
|
+
// src/core/lab-mode-env.ts
|
|
51
|
+
function isLabModeFromEnv() {
|
|
52
|
+
const val = readRawEnv(BUILD_LAB_MODE)?.trim().toLowerCase();
|
|
53
|
+
return val === "1" || val === "true";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// src/orchestrator/lab-mode.ts
|
|
57
|
+
var labContextStorage = new AsyncLocalStorage();
|
|
58
|
+
var LabPathResolver = class _LabPathResolver {
|
|
59
|
+
static instance = null;
|
|
60
|
+
/** Process-wide fallback for single-run CLI / tests outside ALS. */
|
|
61
|
+
legacySlot = { context: null, source: null };
|
|
62
|
+
incompleteEnvWarningEmitted = false;
|
|
63
|
+
constructor() {
|
|
64
|
+
}
|
|
65
|
+
resolveSlot() {
|
|
66
|
+
return labContextStorage.getStore() ?? this.legacySlot;
|
|
67
|
+
}
|
|
68
|
+
isEnvLabModeEnabled() {
|
|
69
|
+
return isLabModeFromEnv();
|
|
70
|
+
}
|
|
71
|
+
hydrateContextFromEnv() {
|
|
72
|
+
const slot = this.resolveSlot();
|
|
73
|
+
if (slot.source === "cleared") {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (!this.isEnvLabModeEnabled()) {
|
|
77
|
+
if (slot.source === "env") {
|
|
78
|
+
slot.context = null;
|
|
79
|
+
slot.source = null;
|
|
80
|
+
}
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (slot.source === "explicit") {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const labId = readEnv(BUILD_LAB_ID).value;
|
|
87
|
+
const runId = readEnv(BUILD_LAB_RUN_ID).value;
|
|
88
|
+
if (!labId || !runId) {
|
|
89
|
+
if (!this.incompleteEnvWarningEmitted) {
|
|
90
|
+
this.incompleteEnvWarningEmitted = true;
|
|
91
|
+
console.warn(
|
|
92
|
+
"[LabPathResolver] BUILD_LAB_MODE is enabled but lab context is incomplete. Ignoring lab mode until both BUILD_LAB_ID and BUILD_LAB_RUN_ID are set."
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
slot.context = {
|
|
98
|
+
labId,
|
|
99
|
+
runId,
|
|
100
|
+
baseline: readEnv(BUILD_LAB_BASELINE).value ?? "HEAD",
|
|
101
|
+
task: "env"
|
|
102
|
+
};
|
|
103
|
+
slot.source = "env";
|
|
104
|
+
this.incompleteEnvWarningEmitted = false;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Gets the singleton instance of the resolver.
|
|
108
|
+
*/
|
|
109
|
+
static getInstance() {
|
|
110
|
+
if (!_LabPathResolver.instance) {
|
|
111
|
+
_LabPathResolver.instance = new _LabPathResolver();
|
|
112
|
+
}
|
|
113
|
+
return _LabPathResolver.instance;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* True when the current async tree has an ALS lab slot (not merely legacy fallback).
|
|
117
|
+
*/
|
|
118
|
+
hasScopedContext() {
|
|
119
|
+
return labContextStorage.getStore() !== void 0;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Run asynchronous work with an isolated lab slot pre-loaded with context.
|
|
123
|
+
*/
|
|
124
|
+
runWithContextAsync(context, fn) {
|
|
125
|
+
return labContextStorage.run({ context: { ...context }, source: "explicit" }, fn);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Enter an empty isolated slot for asynchronous setup and execution.
|
|
129
|
+
*/
|
|
130
|
+
runIsolatedAsync(fn) {
|
|
131
|
+
return labContextStorage.run({ context: null, source: null }, fn);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Bind delayed lifecycle work (signals, beforeExit, deferred cleanup) to the
|
|
135
|
+
* current slot. EventEmitter callbacks otherwise inherit the emitter's async
|
|
136
|
+
* context, which can be the production/legacy slot rather than the lab run
|
|
137
|
+
* that registered the cleanup.
|
|
138
|
+
*/
|
|
139
|
+
bindCurrentContext(fn) {
|
|
140
|
+
const current = this.resolveSlot();
|
|
141
|
+
const captured = {
|
|
142
|
+
context: current.context ? { ...current.context } : null,
|
|
143
|
+
source: current.source
|
|
144
|
+
};
|
|
145
|
+
return (...args) => labContextStorage.run(
|
|
146
|
+
{
|
|
147
|
+
context: captured.context ? { ...captured.context } : null,
|
|
148
|
+
source: captured.source
|
|
149
|
+
},
|
|
150
|
+
() => fn(...args)
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Sets the lab context for the current execution (scoped slot if active, else legacy).
|
|
155
|
+
* Must be called explicitly before path resolution when lab mode is active.
|
|
156
|
+
*/
|
|
157
|
+
setContext(context) {
|
|
158
|
+
const slot = this.resolveSlot();
|
|
159
|
+
slot.context = context;
|
|
160
|
+
slot.source = "explicit";
|
|
161
|
+
this.incompleteEnvWarningEmitted = false;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Clears the lab context for the active slot only, returning that slot to
|
|
165
|
+
* standard path behavior. Concurrent ALS trees are unaffected.
|
|
166
|
+
* Must be called after lab execution to prevent state leakage.
|
|
167
|
+
*/
|
|
168
|
+
clearContext() {
|
|
169
|
+
const slot = this.resolveSlot();
|
|
170
|
+
slot.context = null;
|
|
171
|
+
slot.source = "cleared";
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Returns true if lab mode is currently active for the active slot.
|
|
175
|
+
*/
|
|
176
|
+
isLabMode() {
|
|
177
|
+
this.hydrateContextFromEnv();
|
|
178
|
+
return this.resolveSlot().context !== null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Returns the current lab context for the active slot, or null if not active.
|
|
182
|
+
*/
|
|
183
|
+
getContext() {
|
|
184
|
+
this.hydrateContextFromEnv();
|
|
185
|
+
return this.resolveSlot().context;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Helper method to construct lab-specific or standard paths.
|
|
189
|
+
* Reduces duplication and prevents copy-paste errors in path resolution.
|
|
190
|
+
*
|
|
191
|
+
* The standard (non-lab) branch resolves `telemetry` through the same layout
|
|
192
|
+
* `TelemetryPathResolver.resolveDbDir()` uses, so `BUILD_TELEMETRY_DB` and a
|
|
193
|
+
* non-default `telemetry.database` relocate logs, synthesis, and readiness
|
|
194
|
+
* beside the database. Derivation is the resolver's own `telemetryDir`
|
|
195
|
+
* (see `telemetryDirFromDbDir`), never a second copy of the rule. Callers whose standard branch is
|
|
196
|
+
* not under this tree (`getStateDir` resolves through `resolveRunStateDir`;
|
|
197
|
+
* `getArtifactDir`, `getWorktreeBaseDir` are repo-local or external) return
|
|
198
|
+
* before reaching here and are unaffected.
|
|
199
|
+
*/
|
|
200
|
+
getBasePath(buildDir, subpath) {
|
|
201
|
+
if (!this.isLabMode()) {
|
|
202
|
+
if (subpath === "telemetry") {
|
|
203
|
+
return TelemetryPathResolver.getInstance().resolveDbLayout(buildDir).telemetryDir;
|
|
204
|
+
}
|
|
205
|
+
return path.join(buildDir, subpath);
|
|
206
|
+
}
|
|
207
|
+
const context = this.resolveSlot().context;
|
|
208
|
+
if (!context) {
|
|
209
|
+
return path.join(buildDir, subpath);
|
|
210
|
+
}
|
|
211
|
+
return path.join(resolveLabsRoot(buildDir), context.labId, "runs", context.runId, subpath);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Resolves the telemetry directory path.
|
|
215
|
+
* Lab mode: `.build-project/labs/{labId}/runs/{runId}/telemetry/`
|
|
216
|
+
* Standard: the directory `TelemetryPathResolver` owns (data root, or an
|
|
217
|
+
* explicit `BUILD_TELEMETRY_DB` / `telemetry.database` override).
|
|
218
|
+
*/
|
|
219
|
+
getTelemetryDir(buildDir) {
|
|
220
|
+
return this.getBasePath(buildDir, "telemetry");
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Resolves the state directory path.
|
|
224
|
+
* Lab mode: `.build-project/labs/{labId}/runs/{runId}/state/`
|
|
225
|
+
* Standard: `telemetry/state/` under the project data dir (see `resolveRunStateDir`)
|
|
226
|
+
*/
|
|
227
|
+
getStateDir(buildDir) {
|
|
228
|
+
if (!this.isLabMode()) {
|
|
229
|
+
return resolveRunStateDir(buildDir);
|
|
230
|
+
}
|
|
231
|
+
return this.getBasePath(buildDir, "state");
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Resolves the per-variant state directory (`<state dir>/variants`) where variant
|
|
235
|
+
* state files are written and read back, lab-aware like the state dir.
|
|
236
|
+
*/
|
|
237
|
+
getVariantStateDir(buildDir) {
|
|
238
|
+
return path.join(this.getStateDir(buildDir), "variants");
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Resolves the worktree base directory path.
|
|
242
|
+
* Lab mode: `.build-project/labs/{labId}/runs/{runId}/worktrees/`
|
|
243
|
+
* Standard: BUILD_WORKTREE_BASE env or `/tmp/build-worktrees`
|
|
244
|
+
*/
|
|
245
|
+
getWorktreeBaseDir(buildDir) {
|
|
246
|
+
if (!this.isLabMode()) {
|
|
247
|
+
return readEnv(BUILD_WORKTREE_BASE).value ?? "/tmp/build-worktrees";
|
|
248
|
+
}
|
|
249
|
+
return this.getBasePath(buildDir, "worktrees");
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Resolves the artifact storage directory path.
|
|
253
|
+
* Lab mode: `.build-project/labs/{labId}/runs/{runId}/artifacts/`
|
|
254
|
+
* Standard: `{buildDir}/artifacts/`
|
|
255
|
+
*/
|
|
256
|
+
getArtifactDir(buildDir) {
|
|
257
|
+
if (!this.isLabMode()) {
|
|
258
|
+
return path.join(buildDir, "artifacts");
|
|
259
|
+
}
|
|
260
|
+
return this.getBasePath(buildDir, "artifacts");
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Resolves the JSONL logs directory path.
|
|
264
|
+
* Lab mode: `.build-project/labs/{labId}/runs/{runId}/logs/`
|
|
265
|
+
* Standard: `logs/` under the resolved telemetry directory (data root or override).
|
|
266
|
+
*
|
|
267
|
+
* Anchored on the telemetry directory rather than a repo-local join so it agrees
|
|
268
|
+
* with where `TelemetryCore` actually writes JSONL (it derives its logs directory
|
|
269
|
+
* from the same `resolveDbLayout` helper) and with the `telemetry/logs` migration
|
|
270
|
+
* target. A repo-local join here left readers pointed at an empty directory.
|
|
271
|
+
*/
|
|
272
|
+
getLogsDir(buildDir) {
|
|
273
|
+
if (!this.isLabMode()) {
|
|
274
|
+
return path.join(this.getBasePath(buildDir, "telemetry"), "logs");
|
|
275
|
+
}
|
|
276
|
+
return this.getBasePath(buildDir, "logs");
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
function runWithLabContextAsync(context, fn) {
|
|
280
|
+
return LabPathResolver.getInstance().runWithContextAsync(context, fn);
|
|
281
|
+
}
|
|
282
|
+
function generateLabId(task, baseline) {
|
|
283
|
+
const normalizedTask = task.trim().toLowerCase();
|
|
284
|
+
const normalizedBaseline = baseline.trim();
|
|
285
|
+
const input = `${normalizedTask}:${normalizedBaseline}`;
|
|
286
|
+
const hash = createHash("sha256").update(input).digest("hex");
|
|
287
|
+
return `lab-${hash.substring(0, 8)}`;
|
|
288
|
+
}
|
|
289
|
+
function generateRunId() {
|
|
290
|
+
const now = /* @__PURE__ */ new Date();
|
|
291
|
+
const year = now.getFullYear();
|
|
292
|
+
const month = String(now.getMonth() + 1).padStart(2, "0");
|
|
293
|
+
const day = String(now.getDate()).padStart(2, "0");
|
|
294
|
+
const hours = String(now.getHours()).padStart(2, "0");
|
|
295
|
+
const minutes = String(now.getMinutes()).padStart(2, "0");
|
|
296
|
+
const seconds = String(now.getSeconds()).padStart(2, "0");
|
|
297
|
+
const suffix = String(Math.floor(Math.random() * 1e3)).padStart(3, "0");
|
|
298
|
+
return `${year}${month}${day}-${hours}${minutes}${seconds}-${suffix}`;
|
|
299
|
+
}
|
|
300
|
+
function createLabContext(task, baseline = "HEAD") {
|
|
301
|
+
const labId = generateLabId(task, baseline);
|
|
302
|
+
const runId = generateRunId();
|
|
303
|
+
return {
|
|
304
|
+
labId,
|
|
305
|
+
runId,
|
|
306
|
+
baseline,
|
|
307
|
+
task
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
function resolveDefaultBuildDir() {
|
|
311
|
+
return hasExecutionContext() ? getExecutionContext().buildDir : path.join(resolveBuildRoot(process.cwd()), ".build-project");
|
|
312
|
+
}
|
|
313
|
+
function validateLabConfig() {
|
|
314
|
+
const errors = [];
|
|
315
|
+
const labId = readEnv(BUILD_LAB_ID).value;
|
|
316
|
+
if (labId !== void 0) {
|
|
317
|
+
if (!/^[a-zA-Z0-9-_]+$/.test(labId)) {
|
|
318
|
+
errors.push(
|
|
319
|
+
"BUILD_LAB_ID must contain only alphanumeric characters, hyphens, and underscores"
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
const runId = readEnv(BUILD_LAB_RUN_ID).value;
|
|
324
|
+
if (runId !== void 0) {
|
|
325
|
+
if (!/^\d{8}-\d{6}-\d{3}$/.test(runId)) {
|
|
326
|
+
errors.push(
|
|
327
|
+
"BUILD_LAB_RUN_ID must match format YYYYMMDD-HHMMSS-NNN (e.g., 20251220-195415-748)"
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const labBaselineResult = readEnv(BUILD_LAB_BASELINE);
|
|
332
|
+
const baseline = labBaselineResult.source === "env" ? labBaselineResult.value : void 0;
|
|
333
|
+
if (baseline !== void 0) {
|
|
334
|
+
if (baseline.trim().length === 0) {
|
|
335
|
+
errors.push("BUILD_LAB_BASELINE must not be empty");
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return {
|
|
339
|
+
valid: errors.length === 0,
|
|
340
|
+
errors
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
function verifyLabMode() {
|
|
344
|
+
const resolver = LabPathResolver.getInstance();
|
|
345
|
+
const context = resolver.getContext();
|
|
346
|
+
if (!context) {
|
|
347
|
+
return { active: false, context: null, paths: null };
|
|
348
|
+
}
|
|
349
|
+
const buildDir = resolveDefaultBuildDir();
|
|
350
|
+
return {
|
|
351
|
+
active: true,
|
|
352
|
+
context,
|
|
353
|
+
paths: {
|
|
354
|
+
telemetry: resolver.getTelemetryDir(buildDir),
|
|
355
|
+
state: resolver.getStateDir(buildDir),
|
|
356
|
+
worktrees: resolver.getWorktreeBaseDir(buildDir),
|
|
357
|
+
logs: resolver.getLogsDir(buildDir)
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
function initializeLabModeFromEnv(task) {
|
|
362
|
+
const isLabModeEnabled = isLabModeFromEnv();
|
|
363
|
+
if (!isLabModeEnabled) {
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
const baseline = readEnv(BUILD_LAB_BASELINE).value ?? "HEAD";
|
|
367
|
+
const customLabId = readEnv(BUILD_LAB_ID).value;
|
|
368
|
+
const customRunId = readEnv(BUILD_LAB_RUN_ID).value;
|
|
369
|
+
const resolver = LabPathResolver.getInstance();
|
|
370
|
+
if (customLabId && customRunId) {
|
|
371
|
+
resolver.setContext({
|
|
372
|
+
labId: customLabId,
|
|
373
|
+
runId: customRunId,
|
|
374
|
+
baseline,
|
|
375
|
+
task
|
|
376
|
+
});
|
|
377
|
+
} else if (customLabId) {
|
|
378
|
+
resolver.setContext({
|
|
379
|
+
labId: customLabId,
|
|
380
|
+
runId: generateRunId(),
|
|
381
|
+
baseline,
|
|
382
|
+
task
|
|
383
|
+
});
|
|
384
|
+
} else {
|
|
385
|
+
const context = createLabContext(task, baseline);
|
|
386
|
+
resolver.setContext(context);
|
|
387
|
+
}
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
390
|
+
function getMostRecentLabRun() {
|
|
391
|
+
const buildDir = resolveDefaultBuildDir();
|
|
392
|
+
const labsDir = resolveProjectRuntimeDir(buildDir, "labs");
|
|
393
|
+
if (!fs.existsSync(labsDir)) {
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
let mostRecentRun = null;
|
|
397
|
+
let mostRecentTimestamp = 0;
|
|
398
|
+
try {
|
|
399
|
+
const labIds = fs.readdirSync(labsDir);
|
|
400
|
+
for (const labId of labIds) {
|
|
401
|
+
const runsDir = path.join(labsDir, labId, "runs");
|
|
402
|
+
if (!fs.existsSync(runsDir)) {
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
const runIds = fs.readdirSync(runsDir);
|
|
406
|
+
for (const runId of runIds) {
|
|
407
|
+
const match = /^(\d{8})-(\d{6})-(\d{3})$/.exec(runId);
|
|
408
|
+
if (!match) {
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
const dateStr = match[1] ?? "";
|
|
412
|
+
const timeStr = match[2] ?? "";
|
|
413
|
+
const year = Number.parseInt(dateStr.substring(0, 4), 10);
|
|
414
|
+
const month = Number.parseInt(dateStr.substring(4, 6), 10) - 1;
|
|
415
|
+
const day = Number.parseInt(dateStr.substring(6, 8), 10);
|
|
416
|
+
const hours = Number.parseInt(timeStr.substring(0, 2), 10);
|
|
417
|
+
const minutes = Number.parseInt(timeStr.substring(2, 4), 10);
|
|
418
|
+
const seconds = Number.parseInt(timeStr.substring(4, 6), 10);
|
|
419
|
+
const timestamp = new Date(year, month, day, hours, minutes, seconds).getTime();
|
|
420
|
+
if (timestamp > mostRecentTimestamp) {
|
|
421
|
+
mostRecentTimestamp = timestamp;
|
|
422
|
+
mostRecentRun = {
|
|
423
|
+
labId,
|
|
424
|
+
runId,
|
|
425
|
+
baseline: "HEAD",
|
|
426
|
+
// We don't store this, default to HEAD
|
|
427
|
+
task: "unknown"
|
|
428
|
+
// We don't store this
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
} catch (_error) {
|
|
434
|
+
return null;
|
|
435
|
+
}
|
|
436
|
+
return mostRecentRun;
|
|
437
|
+
}
|
|
438
|
+
function getLabWarningStateFile() {
|
|
439
|
+
return path.join(resolveDefaultBuildDir(), ".last-lab-warning");
|
|
440
|
+
}
|
|
441
|
+
function checkAndWarnLabContext() {
|
|
442
|
+
const resolver = LabPathResolver.getInstance();
|
|
443
|
+
if (resolver.isLabMode()) {
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
446
|
+
const warningStateFile = getLabWarningStateFile();
|
|
447
|
+
if (fs.existsSync(warningStateFile)) {
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
const recentLabRun = getMostRecentLabRun();
|
|
451
|
+
if (!recentLabRun) {
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
const buildDir = resolveDefaultBuildDir();
|
|
455
|
+
const labPath = path.join(buildDir, "labs", recentLabRun.labId, "runs", recentLabRun.runId);
|
|
456
|
+
console.log(
|
|
457
|
+
`Note: Most recent run was lab (${recentLabRun.labId}). Use --lab to continue in lab mode, or view results at: ${labPath}`
|
|
458
|
+
);
|
|
459
|
+
try {
|
|
460
|
+
fs.writeFileSync(warningStateFile, (/* @__PURE__ */ new Date()).toISOString());
|
|
461
|
+
} catch {
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// src/utils/project-registry.ts
|
|
466
|
+
import fs2 from "fs";
|
|
467
|
+
import path2 from "path";
|
|
468
|
+
import Database from "better-sqlite3";
|
|
469
|
+
function getRegistryDbPath(dataDir = getDataDir()) {
|
|
470
|
+
return path2.join(dataDir, "registry.db");
|
|
471
|
+
}
|
|
472
|
+
function openRegistryDb(dataDir = getDataDir()) {
|
|
473
|
+
fs2.mkdirSync(dataDir, { recursive: true, mode: 448 });
|
|
474
|
+
const db = new Database(getRegistryDbPath(dataDir));
|
|
475
|
+
applySqlitePragmas(db);
|
|
476
|
+
db.exec(`
|
|
477
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
478
|
+
project_id TEXT PRIMARY KEY,
|
|
479
|
+
name TEXT NOT NULL,
|
|
480
|
+
git_common_dir TEXT NOT NULL,
|
|
481
|
+
first_seen TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
482
|
+
last_seen TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
483
|
+
);
|
|
484
|
+
`);
|
|
485
|
+
return db;
|
|
486
|
+
}
|
|
487
|
+
function upsertProjectRegistryEntry(entry, dataDir = getDataDir()) {
|
|
488
|
+
const db = openRegistryDb(dataDir);
|
|
489
|
+
try {
|
|
490
|
+
db.prepare(
|
|
491
|
+
`
|
|
492
|
+
INSERT INTO projects (project_id, name, git_common_dir)
|
|
493
|
+
VALUES (?, ?, ?)
|
|
494
|
+
ON CONFLICT(project_id) DO UPDATE SET
|
|
495
|
+
last_seen = CURRENT_TIMESTAMP,
|
|
496
|
+
name = excluded.name,
|
|
497
|
+
git_common_dir = excluded.git_common_dir
|
|
498
|
+
`
|
|
499
|
+
).run(entry.projectId, entry.name, entry.gitCommonDir);
|
|
500
|
+
} finally {
|
|
501
|
+
db.close();
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// src/telemetry/telemetry-path-resolver.ts
|
|
506
|
+
function resolveRepoRootFromBuildDir(buildDir) {
|
|
507
|
+
const normalized = path3.resolve(buildDir);
|
|
508
|
+
return path3.basename(normalized) === ".build-project" ? path3.dirname(normalized) : normalized;
|
|
509
|
+
}
|
|
510
|
+
var warnedConfiguredTelemetryDbPaths = /* @__PURE__ */ new Set();
|
|
511
|
+
function resetConfiguredTelemetryDbWarningCache() {
|
|
512
|
+
warnedConfiguredTelemetryDbPaths.clear();
|
|
513
|
+
}
|
|
514
|
+
function dbLocationToDir(location) {
|
|
515
|
+
return location.endsWith(".db") ? path3.dirname(location) : location;
|
|
516
|
+
}
|
|
517
|
+
function telemetryDirFromDbDir(dbDir) {
|
|
518
|
+
return path3.basename(dbDir) === "db" ? path3.dirname(dbDir) : dbDir;
|
|
519
|
+
}
|
|
520
|
+
function isLegacyRepoLocalTelemetryLocation(resolved, legacyDefaultFile) {
|
|
521
|
+
const legacyDbDir = path3.dirname(legacyDefaultFile);
|
|
522
|
+
const resolvedDir = dbLocationToDir(resolved);
|
|
523
|
+
return resolved === legacyDefaultFile || resolvedDir === legacyDbDir;
|
|
524
|
+
}
|
|
525
|
+
var TelemetryPathResolver = class _TelemetryPathResolver {
|
|
526
|
+
static instance = null;
|
|
527
|
+
projectIdByRepoRoot = /* @__PURE__ */ new Map();
|
|
528
|
+
registryUpsertAttempted = /* @__PURE__ */ new Set();
|
|
529
|
+
static getInstance() {
|
|
530
|
+
if (!_TelemetryPathResolver.instance) {
|
|
531
|
+
_TelemetryPathResolver.instance = new _TelemetryPathResolver();
|
|
532
|
+
}
|
|
533
|
+
return _TelemetryPathResolver.instance;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* The one directory telemetry databases are written to.
|
|
537
|
+
*
|
|
538
|
+
* Resolution order, highest first:
|
|
539
|
+
*
|
|
540
|
+
* 1. `BUILD_TELEMETRY_DB` — the explicit escape hatch used by tests and CI.
|
|
541
|
+
* 2. Lab context — an explicitly requested, deliberately throwaway run tree
|
|
542
|
+
* under `.build-project/labs/{lab}/runs/{run}/telemetry`.
|
|
543
|
+
* 3. `telemetry.database` in project or user config, honored only when it is
|
|
544
|
+
* something other than the historical repo-local default, with a one-time
|
|
545
|
+
* deprecation advisory.
|
|
546
|
+
* 4. The Build data root.
|
|
547
|
+
*
|
|
548
|
+
* Nothing here probes the filesystem for a repo-local database. A checkout is
|
|
549
|
+
* disposable, so anchoring telemetry inside one meant deleting the checkout
|
|
550
|
+
* destroyed the only copy of its history; the previous marker/probe chain also
|
|
551
|
+
* gave two clones of one repo two different stores. Repo-local data left by an
|
|
552
|
+
* older version stays on disk and is merged by `build data migrate execute`,
|
|
553
|
+
* which `build doctor` advises about; it is never resolved back into.
|
|
554
|
+
*/
|
|
555
|
+
resolveDbDir(buildDir) {
|
|
556
|
+
return this.resolveDbLayout(buildDir).dbDir;
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Database directory plus the telemetry directory that owns logs/synthesis.
|
|
560
|
+
*
|
|
561
|
+
* `telemetryDir` is derived with {@link telemetryDirFromDbDir} for every
|
|
562
|
+
* resolution branch, so consumers that go through this layout agree with
|
|
563
|
+
* `TelemetryCore` under overrides and in lab mode.
|
|
564
|
+
*/
|
|
565
|
+
resolveDbLayout(buildDir) {
|
|
566
|
+
const absoluteBuildDir = path3.resolve(buildDir);
|
|
567
|
+
const telemetryDbOverride = readEnv(BUILD_TELEMETRY_DB).value;
|
|
568
|
+
if (telemetryDbOverride) {
|
|
569
|
+
const dbDir2 = dbLocationToDir(path3.resolve(telemetryDbOverride));
|
|
570
|
+
return {
|
|
571
|
+
dbDir: dbDir2,
|
|
572
|
+
telemetryDir: telemetryDirFromDbDir(dbDir2)
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
const labResolver = LabPathResolver.getInstance();
|
|
576
|
+
if (labResolver.isLabMode()) {
|
|
577
|
+
const telemetryDir2 = labResolver.getTelemetryDir(absoluteBuildDir);
|
|
578
|
+
const dbDir2 = path3.join(telemetryDir2, "db");
|
|
579
|
+
return {
|
|
580
|
+
dbDir: dbDir2,
|
|
581
|
+
telemetryDir: telemetryDirFromDbDir(dbDir2)
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
const configuredTelemetryDb = this.resolveConfiguredTelemetryDb(absoluteBuildDir);
|
|
585
|
+
if (configuredTelemetryDb) {
|
|
586
|
+
const dbDir2 = dbLocationToDir(configuredTelemetryDb);
|
|
587
|
+
return {
|
|
588
|
+
dbDir: dbDir2,
|
|
589
|
+
telemetryDir: telemetryDirFromDbDir(dbDir2)
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
const telemetryDir = getGlobalTelemetryDir();
|
|
593
|
+
const dbDir = path3.join(telemetryDir, "db");
|
|
594
|
+
return {
|
|
595
|
+
dbDir,
|
|
596
|
+
telemetryDir: telemetryDirFromDbDir(dbDir)
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
resolveTelemetryDir(buildDir) {
|
|
600
|
+
return this.resolveDbLayout(buildDir).telemetryDir;
|
|
601
|
+
}
|
|
602
|
+
resolveProjectDataDir(buildDir) {
|
|
603
|
+
const repoRoot = this.resolveRepoRootFromBuildDir(buildDir);
|
|
604
|
+
return getProjectDataDir(repoRoot);
|
|
605
|
+
}
|
|
606
|
+
getProjectId(buildDir, options = {}) {
|
|
607
|
+
const { register = true } = options;
|
|
608
|
+
const repoRoot = this.resolveRepoRootFromBuildDir(buildDir);
|
|
609
|
+
const cacheKey = path3.resolve(repoRoot);
|
|
610
|
+
const cached = this.projectIdByRepoRoot.get(cacheKey);
|
|
611
|
+
const projectId = cached ?? getStableRepoIdentity(repoRoot);
|
|
612
|
+
if (!cached) {
|
|
613
|
+
this.projectIdByRepoRoot.set(cacheKey, projectId);
|
|
614
|
+
}
|
|
615
|
+
if (register && !this.registryUpsertAttempted.has(projectId)) {
|
|
616
|
+
this.registryUpsertAttempted.add(projectId);
|
|
617
|
+
const gitCommonDir = this.resolveGitCommonDir(repoRoot);
|
|
618
|
+
try {
|
|
619
|
+
upsertProjectRegistryEntry({
|
|
620
|
+
projectId,
|
|
621
|
+
name: path3.basename(repoRoot),
|
|
622
|
+
gitCommonDir
|
|
623
|
+
});
|
|
624
|
+
} catch {
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
return projectId;
|
|
628
|
+
}
|
|
629
|
+
getDbContext() {
|
|
630
|
+
const labContext = LabPathResolver.getInstance().getContext();
|
|
631
|
+
if (!labContext) {
|
|
632
|
+
return { labId: null, labRunId: null };
|
|
633
|
+
}
|
|
634
|
+
return {
|
|
635
|
+
labId: labContext.labId,
|
|
636
|
+
labRunId: labContext.runId
|
|
637
|
+
};
|
|
638
|
+
}
|
|
639
|
+
resolveRepoRootFromBuildDir(buildDir) {
|
|
640
|
+
return resolveRepoRootFromBuildDir(buildDir);
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* The `telemetry.database` override, or null when there is nothing to honor.
|
|
644
|
+
*
|
|
645
|
+
* Two values are deliberately treated as "nothing":
|
|
646
|
+
*
|
|
647
|
+
* 1. An absent or blank setting. `build init` no longer writes one at all.
|
|
648
|
+
* 2. A value that resolves to the historical repo-local default
|
|
649
|
+
* (`.build-project/telemetry/db/variants.db`). Every config generated before this
|
|
650
|
+
* change carries that string, so honoring it would keep recreating the
|
|
651
|
+
* database inside the checkout for exactly the installs the single write
|
|
652
|
+
* path exists to fix. Comparison is on the resolved path, so relative and
|
|
653
|
+
* `./`-prefixed spellings are all recognized, as is an absolute spelling that
|
|
654
|
+
* uses the same filesystem alias `repoRoot` itself resolved through. The
|
|
655
|
+
* directory itself (`.build-project/telemetry/db`) and other database files in it
|
|
656
|
+
* (`.build-project/telemetry/db/validations.db`) are the same default, not an
|
|
657
|
+
* override: comparison is on the resolved directory, not the file string.
|
|
658
|
+
*
|
|
659
|
+
* Known limit: an absolute value reaching this same database through a
|
|
660
|
+
* different alias (`/tmp/repo/...` against a `/private/tmp/repo` root) compares
|
|
661
|
+
* unequal and is therefore honored as an override, leaving telemetry in the
|
|
662
|
+
* checkout. That is left alone deliberately. It takes a hand-edited absolute
|
|
663
|
+
* path — the generated default was relative and is no longer written at all —
|
|
664
|
+
* and it announces itself, because the deprecation warning below names the
|
|
665
|
+
* resolved path and the remedy. Closing it needs canonicalization that works
|
|
666
|
+
* on a database file that does not exist yet, since `fs.realpathSync` throws
|
|
667
|
+
* on a missing path; a plain realpath comparison would fail open in exactly
|
|
668
|
+
* this case rather than fix it.
|
|
669
|
+
*
|
|
670
|
+
* Anything else is an operator's explicit relocation and is honored verbatim,
|
|
671
|
+
* including paths outside the repository — that is now the setting's only
|
|
672
|
+
* documented purpose. It is deprecated, so a resolved override is reported once
|
|
673
|
+
* per location per process.
|
|
674
|
+
*/
|
|
675
|
+
resolveConfiguredTelemetryDb(buildDir) {
|
|
676
|
+
const repoRoot = this.resolveRepoRootFromBuildDir(buildDir);
|
|
677
|
+
const legacyDefault = path3.resolve(repoRoot, LEGACY_REPO_LOCAL_TELEMETRY_DATABASE);
|
|
678
|
+
const paths = getConfigPaths(repoRoot);
|
|
679
|
+
for (const configuredPath of [paths.projectConfigFile, paths.userConfigFile]) {
|
|
680
|
+
const configPath = selectedBuildConfigCandidate(configuredPath);
|
|
681
|
+
const read = readCanonicalBuildConfig(configPath);
|
|
682
|
+
if (read.status === "invalid") continue;
|
|
683
|
+
if (read.status === "missing") continue;
|
|
684
|
+
const database = read.config.telemetry?.database;
|
|
685
|
+
if (typeof database !== "string" || database.trim() === "") {
|
|
686
|
+
continue;
|
|
687
|
+
}
|
|
688
|
+
const resolved = path3.resolve(repoRoot, database);
|
|
689
|
+
if (isLegacyRepoLocalTelemetryLocation(resolved, legacyDefault)) {
|
|
690
|
+
continue;
|
|
691
|
+
}
|
|
692
|
+
this.warnConfiguredTelemetryDbDeprecated(configPath, resolved);
|
|
693
|
+
return resolved;
|
|
694
|
+
}
|
|
695
|
+
return null;
|
|
696
|
+
}
|
|
697
|
+
warnConfiguredTelemetryDbDeprecated(configPath, resolvedDb) {
|
|
698
|
+
if (warnedConfiguredTelemetryDbPaths.has(resolvedDb)) {
|
|
699
|
+
return;
|
|
700
|
+
}
|
|
701
|
+
warnedConfiguredTelemetryDbPaths.add(resolvedDb);
|
|
702
|
+
emitCustomWarning(
|
|
703
|
+
"WARN" /* WARN */,
|
|
704
|
+
"configuration" /* CONFIGURATION */,
|
|
705
|
+
`telemetry.database is deprecated; telemetry resolves to ${resolvedDb} instead of the Build data root. Remove it from ${configPath} to use the data root.`,
|
|
706
|
+
{
|
|
707
|
+
subsystem: "telemetry",
|
|
708
|
+
executionPhase: "setup"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
metadata: {
|
|
712
|
+
setting: "telemetry.database",
|
|
713
|
+
configPath,
|
|
714
|
+
resolvedDb,
|
|
715
|
+
dataRootDb: path3.join(getGlobalTelemetryDir(), "db")
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
);
|
|
719
|
+
}
|
|
720
|
+
resolveGitCommonDir(repoRoot) {
|
|
721
|
+
try {
|
|
722
|
+
const stdout = execSync("git rev-parse --git-common-dir", {
|
|
723
|
+
cwd: repoRoot,
|
|
724
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
725
|
+
timeout: 1500
|
|
726
|
+
}).toString().trim();
|
|
727
|
+
if (!stdout) {
|
|
728
|
+
return path3.join(repoRoot, ".git");
|
|
729
|
+
}
|
|
730
|
+
return path3.isAbsolute(stdout) ? stdout : path3.resolve(repoRoot, stdout);
|
|
731
|
+
} catch {
|
|
732
|
+
return path3.join(repoRoot, ".git");
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
};
|
|
736
|
+
|
|
737
|
+
export {
|
|
738
|
+
isLabModeFromEnv,
|
|
739
|
+
resolveRepoRootFromBuildDir,
|
|
740
|
+
resetConfiguredTelemetryDbWarningCache,
|
|
741
|
+
dbLocationToDir,
|
|
742
|
+
telemetryDirFromDbDir,
|
|
743
|
+
isLegacyRepoLocalTelemetryLocation,
|
|
744
|
+
TelemetryPathResolver,
|
|
745
|
+
LabPathResolver,
|
|
746
|
+
runWithLabContextAsync,
|
|
747
|
+
generateLabId,
|
|
748
|
+
generateRunId,
|
|
749
|
+
createLabContext,
|
|
750
|
+
validateLabConfig,
|
|
751
|
+
verifyLabMode,
|
|
752
|
+
initializeLabModeFromEnv,
|
|
753
|
+
getMostRecentLabRun,
|
|
754
|
+
checkAndWarnLabContext
|
|
755
|
+
};
|
|
756
|
+
//# sourceMappingURL=chunk-C3KCMAJP.js.map
|