@joshuafolkken/kit 1.3044.0 → 1.3099.0
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/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -3
- package/.claude/skills/workflow-commands/halfrun.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +9 -2
- package/.claude/skills/workflow-commands/prerequisite.md +2 -0
- package/.claude/skills/workflow-commands/retrospective.md +2 -1
- package/.claude/skills/workflow-commands/split-assessment.md +4 -0
- package/.github/workflows/ci.yml +0 -20
- package/.github/workflows/pr-classification.yml +0 -5
- package/.github/workflows/publish.yml +0 -1
- package/.github/workflows/sonar-qube.yml +0 -5
- package/README.md +2 -0
- package/SECURITY.md +2 -1
- package/dist/.inputs-verified.json +1 -1
- package/dist/commands/adopt.js +29 -20
- package/dist/commands/auto-ok-judge-cli.js +43 -33
- package/dist/commands/auto-ok-main.js +73 -74
- package/dist/commands/backlog-budget-main.js +5 -6
- package/dist/commands/backlog-drive-cli.js +286 -305
- package/dist/commands/backlog-next-main.js +111 -108
- package/dist/commands/backlog-offer-main.js +148 -112
- package/dist/commands/backlog-plan-cli.js +123 -120
- package/dist/commands/backlog-triage-cli.js +131 -128
- package/dist/commands/backlogrun-cli.js +274 -264
- package/dist/commands/behavior-cli.js +23 -26
- package/dist/commands/bytes-command.js +56 -59
- package/dist/commands/cases-cli.js +4 -5
- package/dist/commands/check-commit-message-main.js +3 -4
- package/dist/commands/check-related.js +125 -119
- package/dist/commands/chunk-26JL4UU4.js +365 -0
- package/dist/commands/chunk-2BIVHPCA.js +85 -0
- package/dist/commands/chunk-2CKJODCK.js +245 -0
- package/dist/commands/chunk-2CNVIA35.js +335 -0
- package/dist/commands/chunk-2E6PSONB.js +46 -0
- package/dist/commands/chunk-2GA4775H.js +77 -0
- package/dist/commands/chunk-2O64H5UJ.js +462 -0
- package/dist/commands/chunk-2OEXY4GM.js +252 -0
- package/dist/commands/chunk-2OMIHPPE.js +51 -0
- package/dist/commands/chunk-2ONSHOAY.js +46 -0
- package/dist/commands/chunk-2SA3W4JF.js +41 -0
- package/dist/commands/chunk-2VY7CJ2R.js +212 -0
- package/dist/commands/chunk-2WRDAQPJ.js +74 -0
- package/dist/commands/chunk-2XLR7R6E.js +541 -0
- package/dist/commands/chunk-33TAOZUE.js +29 -0
- package/dist/commands/chunk-36XHHYNU.js +158 -0
- package/dist/commands/chunk-3CJNQU7P.js +179 -0
- package/dist/commands/chunk-3D5T6KMW.js +59 -0
- package/dist/commands/chunk-3EW5LTN3.js +114 -0
- package/dist/commands/chunk-3F3RNIG2.js +128 -0
- package/dist/commands/chunk-3FLTEJZY.js +74 -0
- package/dist/commands/chunk-3JWPTRNI.js +60 -0
- package/dist/commands/chunk-3LUPGBW4.js +137 -0
- package/dist/commands/chunk-3MQTOUXT.js +94 -0
- package/dist/commands/chunk-3PCUERXE.js +19 -0
- package/dist/commands/chunk-3U6A5WON.js +173 -0
- package/dist/commands/chunk-3VLDFM5I.js +426 -0
- package/dist/commands/chunk-3YT3RCSI.js +140 -0
- package/dist/commands/chunk-43DU7DYZ.js +540 -0
- package/dist/commands/chunk-43H725LG.js +132 -0
- package/dist/commands/chunk-46STCE6Q.js +48 -0
- package/dist/commands/chunk-46WEC6HZ.js +82 -0
- package/dist/commands/chunk-47J4KOZP.js +46 -0
- package/dist/commands/chunk-47W7PF4T.js +22 -0
- package/dist/commands/chunk-4F4KARQN.js +229 -0
- package/dist/commands/chunk-4HB7NWXP.js +263 -0
- package/dist/commands/chunk-4HOTJAO6.js +89 -0
- package/dist/commands/chunk-4I5AA4P5.js +237 -0
- package/dist/commands/chunk-4IDINPBE.js +525 -0
- package/dist/commands/chunk-4NSIW3UB.js +104 -0
- package/dist/commands/chunk-4YTKV6WV.js +37 -0
- package/dist/commands/chunk-5ARNFMQK.js +1263 -0
- package/dist/commands/chunk-5AZTSESD.js +114 -0
- package/dist/commands/chunk-5FUI2MLY.js +89 -0
- package/dist/commands/chunk-5GI5GLC4.js +214 -0
- package/dist/commands/chunk-5IHEBIPD.js +333 -0
- package/dist/commands/chunk-5KAW5GPF.js +44 -0
- package/dist/commands/chunk-5KSJEWXR.js +77 -0
- package/dist/commands/chunk-5OF2B4BF.js +35 -0
- package/dist/commands/chunk-5PLJ7R3D.js +126 -0
- package/dist/commands/chunk-5PPWXOCF.js +64 -0
- package/dist/commands/chunk-5VQCL33M.js +46 -0
- package/dist/commands/chunk-5Y7FOJLX.js +186 -0
- package/dist/commands/chunk-5YTEMF4O.js +110 -0
- package/dist/commands/chunk-6AHAY5VZ.js +69 -0
- package/dist/commands/chunk-6FN37DER.js +330 -0
- package/dist/commands/chunk-6JD4VNO4.js +124 -0
- package/dist/commands/chunk-6KUA7MRG.js +64 -0
- package/dist/commands/chunk-6LDEZFYR.js +88 -0
- package/dist/commands/chunk-6NXIZMIK.js +122 -0
- package/dist/commands/chunk-6O45F6YI.js +86 -0
- package/dist/commands/chunk-6OHJBQDE.js +184 -0
- package/dist/commands/chunk-6WDCCG3M.js +1249 -0
- package/dist/commands/chunk-6ZHXEQAI.js +715 -0
- package/dist/commands/chunk-736NECRD.js +16 -0
- package/dist/commands/chunk-77LEKVEE.js +32 -0
- package/dist/commands/chunk-7CX5VYOL.js +50 -0
- package/dist/commands/chunk-7DGHFBU7.js +247 -0
- package/dist/commands/chunk-7EAYFMDN.js +235 -0
- package/dist/commands/chunk-7HP3FQGQ.js +51 -0
- package/dist/commands/chunk-7HYYHCTN.js +402 -0
- package/dist/commands/chunk-7JOOMFDI.js +155 -0
- package/dist/commands/chunk-7K5ITPHR.js +338 -0
- package/dist/commands/chunk-7OEBSPPU.js +321 -0
- package/dist/commands/chunk-7ULYLGUK.js +492 -0
- package/dist/commands/chunk-A3JYZWBS.js +803 -0
- package/dist/commands/chunk-A3LCN4KA.js +84 -0
- package/dist/commands/chunk-ABLXBG6C.js +98 -0
- package/dist/commands/chunk-ABM2MZBF.js +161 -0
- package/dist/commands/chunk-AN7BFVHU.js +244 -0
- package/dist/commands/chunk-AQCVEQSM.js +99 -0
- package/dist/commands/chunk-AU563VKH.js +75 -0
- package/dist/commands/chunk-AUTD5FV2.js +1077 -0
- package/dist/commands/chunk-AV26CMY6.js +304 -0
- package/dist/commands/chunk-B2PJEV3S.js +246 -0
- package/dist/commands/chunk-B545ENGY.js +214 -0
- package/dist/commands/chunk-B5HP6T4L.js +170 -0
- package/dist/commands/chunk-B73IIRMS.js +207 -0
- package/dist/commands/chunk-BBLEC4YQ.js +109 -0
- package/dist/commands/chunk-BDSG6JKH.js +977 -0
- package/dist/commands/chunk-BFKTUD3V.js +33 -0
- package/dist/commands/chunk-BLRXHK2V.js +17 -0
- package/dist/commands/chunk-BML6MEUB.js +326 -0
- package/dist/commands/chunk-BPDNGJXY.js +63 -0
- package/dist/commands/chunk-BQLKWGGC.js +118 -0
- package/dist/commands/chunk-BRMJVCP7.js +167 -0
- package/dist/commands/chunk-BRWR5YKU.js +268 -0
- package/dist/commands/chunk-BUZAYEBD.js +319 -0
- package/dist/commands/chunk-BVUL57IX.js +139 -0
- package/dist/commands/chunk-C7FGDZWP.js +224 -0
- package/dist/commands/chunk-CC4BIGCA.js +20 -0
- package/dist/commands/chunk-CCHJZEF5.js +4220 -0
- package/dist/commands/chunk-CDK7QZWG.js +44 -0
- package/dist/commands/chunk-CDYFUCDC.js +72 -0
- package/dist/commands/chunk-CEADAQIL.js +170 -0
- package/dist/commands/chunk-CNL3SLM6.js +116 -0
- package/dist/commands/chunk-CNQ7D2GZ.js +104 -0
- package/dist/commands/chunk-CTXJVMHW.js +48 -0
- package/dist/commands/chunk-CUWT6UQO.js +13 -0
- package/dist/commands/chunk-CVRDJCOE.js +125 -0
- package/dist/commands/chunk-D6CF5QGM.js +80 -0
- package/dist/commands/chunk-DACNQAXC.js +20 -0
- package/dist/commands/chunk-DDOS32JU.js +74 -0
- package/dist/commands/chunk-DDZVMXZD.js +481 -0
- package/dist/commands/chunk-DF6QD4AF.js +52 -0
- package/dist/commands/chunk-DFEXNB44.js +159 -0
- package/dist/commands/chunk-DHDKG5HZ.js +151 -0
- package/dist/commands/chunk-DHJRFBKO.js +223 -0
- package/dist/commands/chunk-DKDWOE3C.js +78 -0
- package/dist/commands/chunk-DKO5VTEH.js +65 -0
- package/dist/commands/chunk-DLHH3MLS.js +85 -0
- package/dist/commands/chunk-DOYNK72G.js +81 -0
- package/dist/commands/chunk-DS53UUDH.js +679 -0
- package/dist/commands/chunk-DUA4E4ES.js +230 -0
- package/dist/commands/chunk-DURHGVRC.js +33 -0
- package/dist/commands/chunk-DVCMQMRN.js +191 -0
- package/dist/commands/chunk-E3YKMCCJ.js +108 -0
- package/dist/commands/chunk-E4F2RTKC.js +272 -0
- package/dist/commands/chunk-E4PFCTXN.js +127 -0
- package/dist/commands/chunk-EAOTR2WL.js +24 -0
- package/dist/commands/chunk-EHPTXSAT.js +315 -0
- package/dist/commands/chunk-EHVEWJQ4.js +33 -0
- package/dist/commands/chunk-EMFSPPMH.js +98 -0
- package/dist/commands/chunk-EPICTV2P.js +46 -0
- package/dist/commands/chunk-ES42XPAD.js +123 -0
- package/dist/commands/chunk-ESUY7KTZ.js +137 -0
- package/dist/commands/chunk-EVVQJJFV.js +507 -0
- package/dist/commands/chunk-EWXXEGXL.js +149 -0
- package/dist/commands/chunk-F2RDEF2J.js +205 -0
- package/dist/commands/chunk-F2U46HAE.js +52 -0
- package/dist/commands/chunk-F2VYWU6Z.js +653 -0
- package/dist/commands/chunk-F4SGOTUF.js +36 -0
- package/dist/commands/chunk-F4YMLVWN.js +183 -0
- package/dist/commands/chunk-F57LACNC.js +84 -0
- package/dist/commands/chunk-F5N2QIFD.js +213 -0
- package/dist/commands/chunk-F7B4ESZE.js +80 -0
- package/dist/commands/chunk-FA7CN75F.js +160 -0
- package/dist/commands/chunk-FDASVHZD.js +241 -0
- package/dist/commands/chunk-FEYZ575X.js +278 -0
- package/dist/commands/chunk-FJM2HWKW.js +299 -0
- package/dist/commands/chunk-FJMXUDEY.js +3985 -0
- package/dist/commands/chunk-FM7VVAK6.js +426 -0
- package/dist/commands/chunk-FQWRM5FC.js +67 -0
- package/dist/commands/chunk-FT33ZCSB.js +298 -0
- package/dist/commands/chunk-FTAWHAI7.js +170 -0
- package/dist/commands/chunk-G2DNS74C.js +53 -0
- package/dist/commands/chunk-G3BBCAAH.js +90 -0
- package/dist/commands/chunk-G75GWNNY.js +101 -0
- package/dist/commands/chunk-GA2YSPFH.js +32 -0
- package/dist/commands/chunk-GABDPTDK.js +907 -0
- package/dist/commands/chunk-GAVSK6P6.js +230 -0
- package/dist/commands/chunk-GB2BRQVL.js +300 -0
- package/dist/commands/chunk-GBMZXFFC.js +44 -0
- package/dist/commands/chunk-GDP7QXYE.js +76 -0
- package/dist/commands/chunk-GGWXF7RJ.js +70 -0
- package/dist/commands/chunk-GHOTKHI4.js +30 -0
- package/dist/commands/chunk-GMVN6ZP2.js +48 -0
- package/dist/commands/chunk-GNTTGRCX.js +133 -0
- package/dist/commands/chunk-GOY5JECO.js +130 -0
- package/dist/commands/chunk-GZL6ISVM.js +72 -0
- package/dist/commands/chunk-HALHQILI.js +51 -0
- package/dist/commands/chunk-HAT7AFBF.js +85 -0
- package/dist/commands/chunk-HDVSZ6CZ.js +292 -0
- package/dist/commands/chunk-HE3GOMR7.js +88 -0
- package/dist/commands/chunk-HEFUC4ZW.js +65 -0
- package/dist/commands/chunk-HHS3LYLV.js +30 -0
- package/dist/commands/chunk-HQZ65PJE.js +167 -0
- package/dist/commands/chunk-HRN73FQJ.js +77 -0
- package/dist/commands/chunk-HSZECERZ.js +271 -0
- package/dist/commands/chunk-HYE3MBAN.js +113 -0
- package/dist/commands/chunk-IAB6LCJL.js +18 -0
- package/dist/commands/chunk-IAGENI2U.js +42 -0
- package/dist/commands/chunk-ICPVBHIX.js +48 -0
- package/dist/commands/chunk-IONGJJYM.js +179 -0
- package/dist/commands/chunk-IP23WOWP.js +126 -0
- package/dist/commands/chunk-IPS7EBE5.js +140 -0
- package/dist/commands/chunk-IXZZSST7.js +459 -0
- package/dist/commands/chunk-IY3DSDRW.js +173 -0
- package/dist/commands/chunk-J2RUI4KN.js +47 -0
- package/dist/commands/chunk-J3PCRUVY.js +1223 -0
- package/dist/commands/chunk-J4XHEOOW.js +156 -0
- package/dist/commands/chunk-JDHLHYJJ.js +208 -0
- package/dist/commands/chunk-JEYITIWB.js +423 -0
- package/dist/commands/chunk-JGX7JIW4.js +126 -0
- package/dist/commands/chunk-JHIGDFBS.js +59 -0
- package/dist/commands/chunk-JI2EGXZX.js +53 -0
- package/dist/commands/chunk-JNV3VRK2.js +47 -0
- package/dist/commands/chunk-JPMAW2VZ.js +91 -0
- package/dist/commands/chunk-JQEY6KDP.js +90 -0
- package/dist/commands/chunk-JSJDIEGZ.js +88 -0
- package/dist/commands/chunk-JT5ICRFF.js +44 -0
- package/dist/commands/chunk-JU2MAYQ3.js +997 -0
- package/dist/commands/chunk-JUCJ4Y42.js +77 -0
- package/dist/commands/chunk-K3OZBV3L.js +49 -0
- package/dist/commands/chunk-K6P5PISC.js +114 -0
- package/dist/commands/chunk-KDCHY7XO.js +88 -0
- package/dist/commands/chunk-KDGX3JTV.js +51 -0
- package/dist/commands/chunk-KGSEWOKI.js +353 -0
- package/dist/commands/chunk-KIS7JFNP.js +217 -0
- package/dist/commands/chunk-KJPZPTS4.js +245 -0
- package/dist/commands/chunk-KKHD3C2P.js +114 -0
- package/dist/commands/chunk-KKIIY5I5.js +67 -0
- package/dist/commands/chunk-KN46UC77.js +114 -0
- package/dist/commands/chunk-KP2BVAS5.js +125 -0
- package/dist/commands/chunk-KPAJBJXG.js +63 -0
- package/dist/commands/chunk-KPMAJP6D.js +145 -0
- package/dist/commands/chunk-KR6WUAJM.js +122 -0
- package/dist/commands/chunk-KWLNK2NJ.js +391 -0
- package/dist/commands/chunk-L2CLCNXW.js +144 -0
- package/dist/commands/chunk-L7MDU6D7.js +155 -0
- package/dist/commands/chunk-L7VD4MLF.js +78 -0
- package/dist/commands/chunk-LBVYFW3I.js +38 -0
- package/dist/commands/chunk-LE3M42CF.js +350 -0
- package/dist/commands/chunk-LIPUSINQ.js +140 -0
- package/dist/commands/chunk-LJVZWE3A.js +1885 -0
- package/dist/commands/chunk-LKSSQVDA.js +49 -0
- package/dist/commands/chunk-LL6G34MF.js +93 -0
- package/dist/commands/chunk-LNQOL2CL.js +321 -0
- package/dist/commands/chunk-LS7P324N.js +72 -0
- package/dist/commands/chunk-LU5EOGFQ.js +50 -0
- package/dist/commands/chunk-LX2ENXHZ.js +197 -0
- package/dist/commands/chunk-M32UPB2D.js +110 -0
- package/dist/commands/chunk-M3UGRNNB.js +103 -0
- package/dist/commands/chunk-MDGPJOLK.js +351 -0
- package/dist/commands/chunk-MDKRTUE4.js +288 -0
- package/dist/commands/chunk-MFZVRWRS.js +34 -0
- package/dist/commands/chunk-MHF6BDQI.js +128 -0
- package/dist/commands/chunk-MLJDW7YN.js +64 -0
- package/dist/commands/chunk-MNLHYAJO.js +80 -0
- package/dist/commands/chunk-MOD3FG4V.js +419 -0
- package/dist/commands/chunk-MRAEJLXL.js +83 -0
- package/dist/commands/chunk-MRW2WYJS.js +68 -0
- package/dist/commands/chunk-MXPCEZL5.js +23 -0
- package/dist/commands/chunk-N2XH7QBY.js +103 -0
- package/dist/commands/chunk-N2ZF6T4E.js +332 -0
- package/dist/commands/chunk-N36NZMAL.js +79 -0
- package/dist/commands/chunk-N4EMFHQ6.js +114 -0
- package/dist/commands/chunk-N4P64UIH.js +211 -0
- package/dist/commands/chunk-NABSSY4P.js +204 -0
- package/dist/commands/chunk-NDQIJBRQ.js +100 -0
- package/dist/commands/chunk-NDR4PCVG.js +29 -0
- package/dist/commands/chunk-NEOCCN6D.js +302 -0
- package/dist/commands/chunk-NFKWFOFM.js +45 -0
- package/dist/commands/chunk-NFUPJBBG.js +516 -0
- package/dist/commands/chunk-NHEBKL7X.js +170 -0
- package/dist/commands/chunk-NHTEC5U4.js +99 -0
- package/dist/commands/chunk-NOSODWWK.js +1132 -0
- package/dist/commands/chunk-NPXXYG6Z.js +580 -0
- package/dist/commands/chunk-NR2JDBPV.js +75 -0
- package/dist/commands/chunk-NRULNBYI.js +1153 -0
- package/dist/commands/chunk-NTGF5N3N.js +110 -0
- package/dist/commands/chunk-NTIVNQKF.js +73 -0
- package/dist/commands/chunk-NUCFIYZL.js +119 -0
- package/dist/commands/chunk-NVMV7BYX.js +88 -0
- package/dist/commands/chunk-NYWPTYGL.js +169 -0
- package/dist/commands/chunk-NZ45KOLL.js +104 -0
- package/dist/commands/chunk-O45BX4EL.js +39 -0
- package/dist/commands/chunk-O46T4ANI.js +229 -0
- package/dist/commands/chunk-O5JGV7NA.js +245 -0
- package/dist/commands/chunk-O7ESC4HL.js +566 -0
- package/dist/commands/chunk-OBYLXHCH.js +86 -0
- package/dist/commands/chunk-OHN3QARP.js +769 -0
- package/dist/commands/chunk-OKBZGLD5.js +393 -0
- package/dist/commands/chunk-OKN63ZH5.js +109 -0
- package/dist/commands/chunk-ON4IKRGS.js +469 -0
- package/dist/commands/chunk-OT74RSQO.js +82 -0
- package/dist/commands/chunk-OVCVINYW.js +143 -0
- package/dist/commands/chunk-OZKLVTYI.js +342 -0
- package/dist/commands/chunk-OZN4HOZT.js +74 -0
- package/dist/commands/chunk-P3LJ2Q4N.js +555 -0
- package/dist/commands/chunk-P43GWYR6.js +185 -0
- package/dist/commands/chunk-P6ASP2DY.js +132 -0
- package/dist/commands/chunk-PBAEJ5PT.js +38 -0
- package/dist/commands/chunk-PCZROH3R.js +100 -0
- package/dist/commands/chunk-PJYTUUTH.js +34 -0
- package/dist/commands/chunk-PKXTISWR.js +58 -0
- package/dist/commands/chunk-PSGLUBSB.js +74 -0
- package/dist/commands/chunk-PUQA7F6Y.js +186 -0
- package/dist/commands/chunk-PVRDJU2B.js +126 -0
- package/dist/commands/chunk-Q3HM2BEH.js +45 -0
- package/dist/commands/chunk-Q42NF2TL.js +47 -0
- package/dist/commands/chunk-Q4ULMZAS.js +106 -0
- package/dist/commands/chunk-QCRUPRQ2.js +207 -0
- package/dist/commands/chunk-QFIKPGMC.js +280 -0
- package/dist/commands/chunk-QSBYULSS.js +100 -0
- package/dist/commands/chunk-QSJCZATC.js +18 -0
- package/dist/commands/chunk-QTJPCXEW.js +23 -0
- package/dist/commands/chunk-QTQAI2M2.js +179 -0
- package/dist/commands/chunk-QTVVFV4Q.js +127 -0
- package/dist/commands/chunk-QX2EMUXV.js +102 -0
- package/dist/commands/chunk-QXBOECGL.js +272 -0
- package/dist/commands/chunk-QXCG3SG4.js +88 -0
- package/dist/commands/chunk-QZVMGAWV.js +307 -0
- package/dist/commands/chunk-R36VZIKU.js +53 -0
- package/dist/commands/chunk-R3F7F3TX.js +94 -0
- package/dist/commands/chunk-R5AABJZJ.js +1062 -0
- package/dist/commands/chunk-R7PYR4HW.js +389 -0
- package/dist/commands/chunk-RAQ3E6OT.js +258 -0
- package/dist/commands/chunk-RESNXNDG.js +54 -0
- package/dist/commands/chunk-RFIOZTXY.js +305 -0
- package/dist/commands/chunk-RFWB2KAV.js +102 -0
- package/dist/commands/chunk-RFXON3FK.js +25 -0
- package/dist/commands/chunk-RGEB5L37.js +66 -0
- package/dist/commands/chunk-RGRLLF2J.js +119 -0
- package/dist/commands/chunk-RLRIMYXM.js +178 -0
- package/dist/commands/chunk-RNB3DQOZ.js +70 -0
- package/dist/commands/chunk-RO4QEZJO.js +172 -0
- package/dist/commands/chunk-RS5HBJY6.js +161 -0
- package/dist/commands/chunk-RV7EQIE4.js +202 -0
- package/dist/commands/chunk-RWPCK3CO.js +41 -0
- package/dist/commands/chunk-RWYSVFIA.js +250 -0
- package/dist/commands/chunk-RYKK75YT.js +289 -0
- package/dist/commands/chunk-S4JE63QE.js +704 -0
- package/dist/commands/chunk-S4OZJIXD.js +134 -0
- package/dist/commands/chunk-S5GX3H4P.js +91 -0
- package/dist/commands/chunk-SC57VV6A.js +60 -0
- package/dist/commands/chunk-SD4EX75H.js +177 -0
- package/dist/commands/chunk-SJITWFNY.js +480 -0
- package/dist/commands/chunk-SKGDMAIA.js +33 -0
- package/dist/commands/chunk-SNSZ25XZ.js +393 -0
- package/dist/commands/chunk-SOETJZWH.js +7672 -0
- package/dist/commands/chunk-SQZZHK6X.js +119 -0
- package/dist/commands/chunk-SRTEE34O.js +93 -0
- package/dist/commands/chunk-SYTCTLMD.js +285 -0
- package/dist/commands/chunk-T6JUDQMW.js +181 -0
- package/dist/commands/chunk-TEXUEBGE.js +208 -0
- package/dist/commands/chunk-TFDVTU6O.js +910 -0
- package/dist/commands/chunk-TFYYXETQ.js +472 -0
- package/dist/commands/chunk-TMFKVJUW.js +121 -0
- package/dist/commands/chunk-TNJU4CXD.js +32 -0
- package/dist/commands/chunk-TRHWBUWE.js +61 -0
- package/dist/commands/chunk-TROCFVCU.js +45 -0
- package/dist/commands/chunk-TUBBESHU.js +85 -0
- package/dist/commands/chunk-TVZIFZZN.js +62 -0
- package/dist/commands/chunk-TXRWAL63.js +144 -0
- package/dist/commands/chunk-U46YTYJQ.js +92 -0
- package/dist/commands/chunk-U5EO4QEV.js +48 -0
- package/dist/commands/chunk-UCO333EX.js +47 -0
- package/dist/commands/chunk-UIXQ4IYT.js +445 -0
- package/dist/commands/chunk-UJGNYPMD.js +716 -0
- package/dist/commands/chunk-URZ4RDC4.js +220 -0
- package/dist/commands/chunk-UUA63LCI.js +77 -0
- package/dist/commands/chunk-UUH3DE77.js +57 -0
- package/dist/commands/chunk-UVY5ODCM.js +60 -0
- package/dist/commands/chunk-UWMB6EOU.js +45 -0
- package/dist/commands/chunk-UY62WJV6.js +120 -0
- package/dist/commands/chunk-UZDKCGDC.js +198 -0
- package/dist/commands/chunk-VAHQ4AFM.js +585 -0
- package/dist/commands/chunk-VCWNMRH7.js +71 -0
- package/dist/commands/chunk-VL5I2IOD.js +332 -0
- package/dist/commands/chunk-VLN6TSPJ.js +139 -0
- package/dist/commands/chunk-VMG3QB6C.js +81 -0
- package/dist/commands/chunk-VO25PMGS.js +58 -0
- package/dist/commands/chunk-VPRQFM2T.js +37 -0
- package/dist/commands/chunk-VTLWODJ2.js +133 -0
- package/dist/commands/chunk-VUCDGQ6Y.js +260 -0
- package/dist/commands/chunk-VY7ZJMDT.js +469 -0
- package/dist/commands/chunk-W4BR6QNU.js +1241 -0
- package/dist/commands/chunk-W7X7MZZN.js +449 -0
- package/dist/commands/chunk-WCYRNNKF.js +76 -0
- package/dist/commands/chunk-WEUUJIWQ.js +84 -0
- package/dist/commands/chunk-WNBJK6QE.js +84 -0
- package/dist/commands/chunk-WORHUJ6T.js +73 -0
- package/dist/commands/chunk-WR5PKCQW.js +61 -0
- package/dist/commands/chunk-WR73HTRG.js +121 -0
- package/dist/commands/chunk-WRHMYSW7.js +36 -0
- package/dist/commands/chunk-WRNMUQTD.js +95 -0
- package/dist/commands/chunk-WROJTXWZ.js +138 -0
- package/dist/commands/chunk-WTIPX5NG.js +43 -0
- package/dist/commands/chunk-WWLCQREY.js +225 -0
- package/dist/commands/chunk-WXLW7S4M.js +71 -0
- package/dist/commands/chunk-WXXLJQBO.js +67 -0
- package/dist/commands/chunk-X4LYH6Q4.js +56 -0
- package/dist/commands/chunk-XAEL24EG.js +66 -0
- package/dist/commands/chunk-XDR2BRDL.js +216 -0
- package/dist/commands/chunk-XRQMVAB4.js +85 -0
- package/dist/commands/chunk-XUXCFPDK.js +218 -0
- package/dist/commands/chunk-XXPDFJRI.js +48 -0
- package/dist/commands/chunk-Y6OGDG5I.js +49 -0
- package/dist/commands/chunk-YANDBVAT.js +430 -0
- package/dist/commands/chunk-YD7XK2TX.js +550 -0
- package/dist/commands/chunk-YEAE46TS.js +98 -0
- package/dist/commands/chunk-YEQFAEVW.js +112 -0
- package/dist/commands/chunk-YJZAD4Z5.js +103 -0
- package/dist/commands/chunk-YNCF66RK.js +1052 -0
- package/dist/commands/chunk-YOA25SII.js +210 -0
- package/dist/commands/chunk-YOZTZMAT.js +38 -0
- package/dist/commands/chunk-YSGRHVZG.js +897 -0
- package/dist/commands/chunk-YSLGWRQN.js +646 -0
- package/dist/commands/chunk-YT5JR2CB.js +105 -0
- package/dist/commands/chunk-YTXCLGGL.js +168 -0
- package/dist/commands/chunk-YVHJN2HS.js +74 -0
- package/dist/commands/chunk-YY7XVVSB.js +43 -0
- package/dist/commands/chunk-Z2NUK47W.js +1314 -0
- package/dist/commands/chunk-Z5GZV4DV.js +16 -0
- package/dist/commands/chunk-ZB52ZIEA.js +1629 -0
- package/dist/commands/chunk-ZCD4AV2P.js +73 -0
- package/dist/commands/chunk-ZCHZU6NX.js +799 -0
- package/dist/commands/chunk-ZEH2B3DF.js +239 -0
- package/dist/commands/chunk-ZGANVZCA.js +92 -0
- package/dist/commands/chunk-ZGEUWHFF.js +297 -0
- package/dist/commands/chunk-ZHSNQ2F7.js +161 -0
- package/dist/commands/chunk-ZI3SABMH.js +347 -0
- package/dist/commands/chunk-ZIIUBGON.js +773 -0
- package/dist/commands/chunk-ZJJLROJY.js +269 -0
- package/dist/commands/chunk-ZNIIA275.js +59 -0
- package/dist/commands/chunk-ZV6BZZJ2.js +271 -0
- package/dist/commands/ci-timing-cli.js +22 -3
- package/dist/commands/code-symbol-cli.js +21 -7
- package/dist/commands/codex-hook-adapter.js +124 -119
- package/dist/commands/command-derive.js +9 -11
- package/dist/commands/cost-audit-main.js +118 -119
- package/dist/commands/cost-main.js +5 -7
- package/dist/commands/cspell-cached.js +55 -57
- package/dist/commands/defect-origin-main.js +42 -37
- package/dist/commands/defect-report-main.js +33 -25
- package/dist/commands/diff-summary-cli.js +3 -4
- package/dist/commands/disposition-cli.js +117 -118
- package/dist/commands/doctor.js +24 -11
- package/dist/commands/document-read-cli.js +50 -53
- package/dist/commands/document-section-main.js +50 -53
- package/dist/commands/dogfood-commit-cli.js +19 -4
- package/dist/commands/effect-audit-cli.js +40 -41
- package/dist/commands/epic-audit-main.js +88 -86
- package/dist/commands/epic-bundle-main.js +122 -119
- package/dist/commands/epic-check.js +37 -31
- package/dist/commands/epic-main.js +129 -126
- package/dist/commands/epic-next-main.js +85 -83
- package/dist/commands/eval-run.js +6 -7
- package/dist/commands/format-edited-cli.js +71 -46
- package/dist/commands/format.js +41 -56
- package/dist/commands/fresh-machine-cli.js +24 -7
- package/dist/commands/gh-usage-cli.js +22 -22
- package/dist/commands/git-followup-workflow.js +170 -159
- package/dist/commands/git-gh-checks-failed-main.js +23 -15
- package/dist/commands/git-workflow.js +52 -53
- package/dist/commands/github-release-cli.js +3 -3
- package/dist/commands/hook-ledger-cli.js +93 -94
- package/dist/commands/init-main.js +40 -40
- package/dist/commands/inputs.json +1999 -1954
- package/dist/commands/issue-ack-cli.js +28 -21
- package/dist/commands/issue-already-done-cli.js +107 -110
- package/dist/commands/issue-body-cli.js +71 -73
- package/dist/commands/issue-cite-main.js +35 -28
- package/dist/commands/issue-comment-main.js +36 -30
- package/dist/commands/issue-consolidate-cli.js +54 -54
- package/dist/commands/issue-file-main.js +274 -148
- package/dist/commands/issue-fold-existing-cli.js +126 -123
- package/dist/commands/issue-fold-main.js +57 -60
- package/dist/commands/issue-lint-main.js +59 -61
- package/dist/commands/issue-measured-cli.js +108 -110
- package/dist/commands/issue-plan-cli.js +156 -155
- package/dist/commands/issue-premise-unmet-cli.js +111 -113
- package/dist/commands/issue-priority-cli.js +38 -32
- package/dist/commands/issue-read-main.js +38 -33
- package/dist/commands/issue-release-class-cli.js +37 -31
- package/dist/commands/issue-release-main.js +35 -29
- package/dist/commands/issue-scout-main.js +123 -120
- package/dist/commands/issue-spill-main.js +149 -144
- package/dist/commands/issue-state-main.js +36 -31
- package/dist/commands/issue-tick-cli.js +37 -31
- package/dist/commands/josh-completion.js +21 -24
- package/dist/commands/lane-adopt-cli.js +53 -55
- package/dist/commands/lane-breakdown-cli.js +193 -172
- package/dist/commands/lane-cli.js +199 -180
- package/dist/commands/lane-launch-main.js +106 -56
- package/dist/commands/lane-limit-cli.js +119 -116
- package/dist/commands/lane-measure-cli.js +408 -245
- package/dist/commands/lane-pause-cli.js +51 -54
- package/dist/commands/lane-plan-cli.js +148 -147
- package/dist/commands/lane-resolve-cli.js +48 -50
- package/dist/commands/lane-restart-cli.js +185 -168
- package/dist/commands/lane-why-cli.js +121 -122
- package/dist/commands/lane-withdraw-cli.js +84 -86
- package/dist/commands/latest-corepack.js +3 -2
- package/dist/commands/latest-if-required-cli.js +12 -15
- package/dist/commands/latest-lane-guard-main.js +2 -3
- package/dist/commands/latest-scope-main.js +5 -7
- package/dist/commands/latest-update.js +3 -2
- package/dist/commands/lines-command.js +8 -10
- package/dist/commands/lint-parallel-main.js +65 -67
- package/dist/commands/lint-related.js +149 -133
- package/dist/commands/lint-rule.js +64 -66
- package/dist/commands/lockfile-policy.js +29 -32
- package/dist/commands/main-merge-main.js +23 -25
- package/dist/commands/main-sync-main.js +23 -24
- package/dist/commands/managed-config-scope-cli.js +11 -10
- package/dist/commands/measure-rerun-cli.js +31 -26
- package/dist/commands/metrics-command.js +97 -100
- package/dist/commands/observation-record-cli.js +24 -14
- package/dist/commands/observations-flush-cli.js +50 -52
- package/dist/commands/overrides-check.js +1 -1
- package/dist/commands/package-scout-cli.js +70 -73
- package/dist/commands/pin-verify-cli.js +21 -2
- package/dist/commands/plan-consumers-main.js +3 -4
- package/dist/commands/plan-scaffold-cli.js +145 -146
- package/dist/commands/pr-classification-main.js +22 -3
- package/dist/commands/pre-commit-lint.js +30 -34
- package/dist/commands/pre-commit-type-check.js +55 -55
- package/dist/commands/pre-push-unit.js +69 -70
- package/dist/commands/pretool-guard-cli.js +111 -113
- package/dist/commands/prevent-main-commit.js +2 -3
- package/dist/commands/project-profile-cli.js +24 -9
- package/dist/commands/propagate.js +31 -23
- package/dist/commands/prose-stale-cli.js +48 -42
- package/dist/commands/publishable-range-check.js +3 -3
- package/dist/commands/read-set-cli.js +58 -61
- package/dist/commands/refactor-scan-cli.js +8 -9
- package/dist/commands/release-cli.js +57 -57
- package/dist/commands/release-scope-main.js +41 -36
- package/dist/commands/rename-cli.js +64 -36
- package/dist/commands/repo-party-cli.js +3 -4
- package/dist/commands/report-template-cli.js +4 -5
- package/dist/commands/reserved-run.js +17 -20
- package/dist/commands/retrospective-cli.js +126 -127
- package/dist/commands/review-attest-cli.js +28 -20
- package/dist/commands/review-brief-main.js +184 -167
- package/dist/commands/review-findings-cli.js +23 -13
- package/dist/commands/review-pair-cli.js +180 -156
- package/dist/commands/review-record-main.js +171 -147
- package/dist/commands/review-round2-cli.js +89 -91
- package/dist/commands/review-stops-cli.js +51 -54
- package/dist/commands/review-submit-cli.js +184 -167
- package/dist/commands/rule-list.js +78 -80
- package/dist/commands/rule-value-cli.js +115 -116
- package/dist/commands/ruleset-check-cli.js +23 -6
- package/dist/commands/run-add-cli.js +115 -75
- package/dist/commands/run-board-main.js +173 -169
- package/dist/commands/run-carry-cli.js +182 -174
- package/dist/commands/run-chain-cli.js +184 -160
- package/dist/commands/run-cut-cli.js +206 -168
- package/dist/commands/run-ending-cli.js +51 -54
- package/dist/commands/run-entry-cli.js +230 -283
- package/dist/commands/run-event-cli.js +18 -21
- package/dist/commands/run-handoff-cli.js +75 -78
- package/dist/commands/run-handoff-lanes-cli.js +48 -51
- package/dist/commands/run-hold-main.js +105 -107
- package/dist/commands/run-liveness-cli.js +47 -49
- package/dist/commands/run-merge-main.js +159 -151
- package/dist/commands/run-next-cli.js +128 -129
- package/dist/commands/run-park-cli.js +137 -140
- package/dist/commands/run-pause-cli.js +190 -186
- package/dist/commands/run-pickup-cli.js +49 -52
- package/dist/commands/run-prep-main.js +124 -125
- package/dist/commands/run-prime-cli.js +175 -147
- package/dist/commands/run-progress-main.js +149 -146
- package/dist/commands/run-report-cli.js +60 -60
- package/dist/commands/run-review-cli.js +229 -214
- package/dist/commands/run-ship-cli.js +258 -252
- package/dist/commands/run-ship-evidence-cli.js +71 -72
- package/dist/commands/run-ship-lap-W66LTXJJ.js +28 -0
- package/dist/commands/run-ship-wait-main.js +83 -85
- package/dist/commands/run-split-cli.js +176 -172
- package/dist/commands/run-stale-main.js +72 -75
- package/dist/commands/run-status-cli.js +44 -44
- package/dist/commands/run-step-cli.js +213 -211
- package/dist/commands/run-tail-cli.js +23 -18
- package/dist/commands/run-tidy-main.js +67 -69
- package/dist/commands/run-wake-main.js +206 -187
- package/dist/commands/run-watcher-guard-cli.js +63 -66
- package/dist/commands/security-audit-main.js +21 -24
- package/dist/commands/security-audit-provision-main.js +9 -11
- package/dist/commands/selfcheck-cli.js +63 -57
- package/dist/commands/session-language-main.js +70 -73
- package/dist/commands/sonar-hotspots-cli.js +9 -8
- package/dist/commands/sonar-new-code-cli.js +3 -4
- package/dist/commands/split-assess-cli.js +55 -58
- package/dist/commands/split-child-recover-cli.js +38 -39
- package/dist/commands/start.js +64 -64
- package/dist/commands/stash-pop-main.js +4 -5
- package/dist/commands/stash-push-main.js +7 -9
- package/dist/commands/stop-guard.js +180 -176
- package/dist/commands/sync-main.js +30 -15
- package/dist/commands/telegram-test-main.js +29 -22
- package/dist/commands/test-declared.js +29 -15
- package/dist/commands/test-e2e-guard.js +54 -54
- package/dist/commands/test-pinned-main.js +57 -56
- package/dist/commands/test-reach-cli.js +40 -32
- package/dist/commands/test-red-main.js +12 -14
- package/dist/commands/test-related-XBDH2IOH.js +113 -0
- package/dist/commands/test-related-main.js +89 -89
- package/dist/commands/test-unit-guard-main.js +37 -37
- package/dist/commands/time-cli.js +54 -57
- package/dist/commands/time-density-cli.js +26 -29
- package/dist/commands/tree-status-cli.js +6 -8
- package/dist/commands/type-check-command.js +26 -11
- package/dist/commands/ui-routes-cli.js +5 -6
- package/dist/commands/ui-shot-cli.js +1 -1
- package/dist/commands/uninstall.js +44 -43
- package/dist/commands/unused-members-KVKZDTXD.js +329 -0
- package/dist/commands/unused-members-cli.js +27 -12
- package/dist/commands/upstream-interrupt-main.js +159 -151
- package/dist/commands/verification-gate.js +85 -86
- package/dist/commands/version-check.js +25 -8
- package/dist/hooks/chunk-3SA3FIQC.js +6869 -0
- package/dist/hooks/chunk-46PTTMGE.js +1625 -0
- package/dist/hooks/chunk-5NIBRHWG.js +77 -0
- package/dist/hooks/chunk-76QKN2K3.js +258 -0
- package/dist/hooks/chunk-CHEKMGFP.js +321 -0
- package/dist/hooks/chunk-DCILEVDR.js +5173 -0
- package/dist/hooks/chunk-HVNGIM5W.js +5092 -0
- package/dist/hooks/chunk-L6IZZ2IL.js +11219 -0
- package/dist/hooks/chunk-UZXMFOVK.js +9170 -0
- package/dist/hooks/chunk-WCJ2GWYJ.js +1381 -0
- package/dist/hooks/chunk-YRKS5ZKE.js +1915 -0
- package/dist/hooks/codex-hook-adapter.js +11 -12
- package/dist/hooks/daemon.js +2140 -1387
- package/dist/hooks/format-edited.js +6 -6
- package/dist/hooks/inputs.json +543 -518
- package/dist/hooks/pretool-guard.js +8 -8
- package/dist/hooks/run-ship-lap-P5555IG7.js +8 -0
- package/dist/hooks/session-lang.js +9 -7
- package/dist/hooks/stop-guard.js +970 -668
- package/dist/inputs.json +77 -68
- package/dist/josh.js +1029 -577
- package/dist/registry-migrate.mjs +33938 -0
- package/dist/version/index.js +4251 -175
- package/package.json +4 -1
- package/prompts/collaboration-workflow/principles.md +4 -1
- package/prompts/collaboration-workflow/rule-delivery.md +1 -1
- package/scripts/agent/codex-launch-identity.ts +70 -0
- package/scripts/auto-ok/auto-ok-cli.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge-write.ts +2 -0
- package/scripts/auto-ok/auto-ok-judge.ts +3 -1
- package/scripts/backlog/backlog-arrival.ts +1 -1
- package/scripts/backlog/backlog-budget.ts +5 -2
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-dispatch-bound.ts +17 -0
- package/scripts/backlog/backlog-drain-flush.ts +38 -3
- package/scripts/backlog/backlog-drive-cli.ts +1 -1
- package/scripts/backlog/backlog-drive-hold.ts +28 -5
- package/scripts/backlog/backlog-drive-launch.ts +37 -15
- package/scripts/backlog/backlog-drive-listing.ts +39 -23
- package/scripts/backlog/backlog-drive-retrospective-unit.ts +3 -2
- package/scripts/backlog/backlog-drive-split-unit.ts +1 -0
- package/scripts/backlog/backlog-hold-codes.ts +7 -0
- package/scripts/backlog/backlog-hold-text.ts +14 -1
- package/scripts/backlog/backlog-measure-close.ts +6 -0
- package/scripts/backlog/backlog-next-shared.ts +20 -2
- package/scripts/backlog/backlog-next.ts +24 -3
- package/scripts/backlog/backlog-offer-cli.ts +69 -16
- package/scripts/build/build-migration.ts +25 -0
- package/scripts/build/build.ts +2 -0
- package/scripts/epic/epic-classify.ts +6 -1
- package/scripts/epic/epic-live.ts +46 -0
- package/scripts/followup/followup-failed-tests.ts +71 -10
- package/scripts/followup/followup-job-rerun.ts +2 -2
- package/scripts/followup/git-followup-finish.ts +16 -1
- package/scripts/gate/change-scope-action.integration.test.ts +88 -0
- package/scripts/gate/change-scope-action.ts +2 -0
- package/scripts/gate/check-related-order.ts +6 -7
- package/scripts/gate/check-related.ts +18 -8
- package/scripts/gate/core-admission.ts +17 -30
- package/scripts/gate/core-budget-poll.ts +183 -0
- package/scripts/gate/core-budget-timing.ts +1 -1
- package/scripts/gate/core-budget.ts +24 -112
- package/scripts/gate/core-wait-record.ts +52 -7
- package/scripts/gate/machine-capacity.ts +6 -2
- package/scripts/gate/metrics-totals.ts +11 -0
- package/scripts/gate/path-glob.test.ts +18 -0
- package/scripts/gate/toolchain-inputs.consumer.test.ts +36 -0
- package/scripts/gate/verification-inputs.ts +2 -1
- package/scripts/gh/fix-gh-packages-logic.ts +22 -15
- package/scripts/gh/gh-request-tally.ts +4 -0
- package/scripts/hooks/bash-revert.ts +79 -31
- package/scripts/hooks/format-edited-file.ts +6 -8
- package/scripts/hooks/implementation-shell.ts +3 -2
- package/scripts/init/distributed-paths.ts +18 -5
- package/scripts/init/init-actions.ts +16 -1
- package/scripts/init/init-bootstrap.ts +2 -0
- package/scripts/init/init-logic.ts +40 -8
- package/scripts/init/init.ts +11 -3
- package/scripts/issue/defect-rate-cli.ts +19 -13
- package/scripts/issue/issue-file-batch.ts +7 -3
- package/scripts/issue/issue-file-cli.ts +19 -6
- package/scripts/issue/issue-file-main.ts +6 -1
- package/scripts/issue/issue-file-pass.ts +17 -0
- package/scripts/issue/issue-file.ts +3 -0
- package/scripts/issue/issue-not-before.ts +9 -2
- package/scripts/issue/issue-observation-gate.ts +141 -0
- package/scripts/issue/issue-observation-prime.ts +83 -0
- package/scripts/issue/issue-publication-state.ts +61 -0
- package/scripts/issue/issue-publication.ts +144 -0
- package/scripts/issue/issue-sample-prime.ts +2 -0
- package/scripts/issue/issue-search-count.ts +26 -0
- package/scripts/issue/issue-search.ts +128 -3
- package/scripts/issue/issue-spill-cli.ts +4 -0
- package/scripts/issue/upstream-interrupt-cli.ts +21 -5
- package/scripts/josh/josh-commands-ai.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-issue-write.ts +9 -0
- package/scripts/josh/josh-commands-run.ts +6 -1
- package/scripts/josh/josh-commands-ship.ts +5 -5
- package/scripts/josh/josh-run.ts +5 -2
- package/scripts/josh/shared-cache.ts +16 -1
- package/scripts/lane/lane-await.ts +15 -0
- package/scripts/lane/lane-cli.ts +2 -0
- package/scripts/lane/lane-dispatch-dependency.ts +102 -0
- package/scripts/lane/lane-dispatch-wait-stats.ts +239 -0
- package/scripts/lane/lane-dispatch.ts +44 -5
- package/scripts/lane/lane-early-push-count.ts +21 -0
- package/scripts/lane/lane-install.ts +15 -5
- package/scripts/lane/lane-launch-cli.ts +35 -14
- package/scripts/lane/lane-ledger-kind.ts +2 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +5 -1
- package/scripts/lane/lane-ledger-schema.ts +15 -1
- package/scripts/lane/lane-ledger-write.ts +4 -1
- package/scripts/lane/lane-relaunch.ts +25 -2
- package/scripts/lane/lane-state-record.ts +2 -0
- package/scripts/lane/lane-state.ts +8 -1
- package/scripts/lane/lane-stats-tables.ts +2 -0
- package/scripts/lane/openai-lane-supervisor.ts +16 -1
- package/scripts/lib/inherited-scope.ts +48 -0
- package/scripts/lint/format-steps.ts +93 -0
- package/scripts/lint/format.ts +6 -49
- package/scripts/lint/lint-related-fix.ts +35 -0
- package/scripts/lint/lint-related.ts +22 -35
- package/scripts/propagate/propagate-steps.ts +9 -4
- package/scripts/registry-migration/migrate-cli.ts +50 -0
- package/scripts/registry-migration/migrate-files.ts +154 -0
- package/scripts/registry-migration/migrate-lock.ts +147 -0
- package/scripts/registry-migration/migrate.ts +235 -0
- package/scripts/registry-migration/npm-acquisition.ts +118 -0
- package/scripts/review/review-record-cli.ts +27 -13
- package/scripts/review/review-record-pinned.ts +15 -6
- package/scripts/run/add/run-add-cli.ts +21 -3
- package/scripts/run/add/run-add.ts +26 -9
- package/scripts/run/board/run-board-layout.ts +11 -6
- package/scripts/run/board/run-board-read.ts +29 -69
- package/scripts/run/board/run-board-reason.ts +12 -0
- package/scripts/run/board/run-board-render-lanes.ts +26 -9
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-retry-wait.ts +35 -0
- package/scripts/run/board/run-board-root-layout.ts +69 -0
- package/scripts/run/board/run-board-seat.ts +9 -2
- package/scripts/run/board/run-board-setup.ts +6 -4
- package/scripts/run/board/run-board-single.ts +69 -4
- package/scripts/run/board/run-board-span-read.ts +85 -0
- package/scripts/run/board/run-board-tick.ts +12 -4
- package/scripts/run/carry/run-carry-reclaim.ts +12 -2
- package/scripts/run/carry/run-carry-session.ts +48 -0
- package/scripts/run/carry/run-carry.ts +21 -14
- package/scripts/run/cut/run-cut-resume.ts +15 -3
- package/scripts/run/cut/run-cut.ts +1 -1
- package/scripts/run/detached-launch.ts +14 -5
- package/scripts/run/early-push-record.ts +6 -2
- package/scripts/run/event/run-event-setup.ts +2 -0
- package/scripts/run/event/run-event-stream-emit.ts +27 -7
- package/scripts/run/hold/run-hold-cli.ts +40 -5
- package/scripts/run/hold/run-hold-ended.ts +50 -0
- package/scripts/run/merge/run-merge-cut-release.ts +17 -0
- package/scripts/run/merge/run-merge-human-review.ts +6 -0
- package/scripts/run/merge/run-merge-steps.ts +4 -57
- package/scripts/run/merge/run-merge-waits.ts +54 -0
- package/scripts/run/prime/run-prime-cli.ts +16 -2
- package/scripts/run/review/run-review-cli.ts +5 -7
- package/scripts/run/review/run-review-early-push.ts +19 -8
- package/scripts/run/review/run-review-join-read.ts +33 -6
- package/scripts/run/review/run-review-pinned-remaining.ts +124 -0
- package/scripts/run/review/run-review-pinned-steps.ts +7 -1
- package/scripts/run/run-halfrun-resume.ts +49 -6
- package/scripts/run/run-headless.ts +3 -0
- package/scripts/run/run-pr-return.ts +14 -5
- package/scripts/run/run-repair-attempt.ts +219 -0
- package/scripts/run/ship/run-ship-lap.ts +5 -17
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +4 -13
- package/scripts/run/ship/run-ship-scoped.ts +66 -30
- package/scripts/run/startup/run-startup-schema.ts +31 -0
- package/scripts/run/startup/run-startup-store.ts +130 -0
- package/scripts/run/startup/run-startup.ts +119 -0
- package/scripts/run/wake/run-wake-codex.ts +144 -0
- package/scripts/run/wake/run-wake-driver.ts +32 -7
- package/scripts/run/wake/run-wake-handoff.ts +9 -8
- package/scripts/run/wake/run-wake-loop.ts +23 -3
- package/scripts/run/wake/run-wake-ports.ts +17 -3
- package/scripts/run/wake/run-wake-takeover.ts +6 -3
- package/scripts/run/wake/run-wake-window.ts +4 -1
- package/scripts/run/wake/run-wake.ts +5 -0
- package/scripts/sync/sync-ai-files.ts +17 -0
- package/scripts/sync/sync-configs.ts +11 -1
- package/scripts/sync/sync.ts +5 -1
- package/scripts/test/test-pinned-cache-logic.ts +13 -7
- package/scripts/test/test-pinned-cache.ts +33 -11
- package/scripts/test/test-related-cap.ts +7 -3
- package/scripts/test/test-related-imports.ts +92 -0
- package/scripts/test/test-runner-config.ts +19 -0
- package/scripts/test/vitest-failure-summary.ts +7 -0
- package/scripts/version/npm-registry.ts +45 -7
- package/scripts/version/upgrade-shell-command.ts +34 -2
- package/templates/workflows/ci.yml +0 -15
- package/templates/workflows/github-release.yml +0 -5
- package/dist/commands/chunk-23GH6B3D.js +0 -333
- package/dist/commands/chunk-24OATKOF.js +0 -7534
- package/dist/commands/chunk-24ZDAWML.js +0 -48
- package/dist/commands/chunk-2BB5ZR2F.js +0 -128
- package/dist/commands/chunk-2BJJUTZA.js +0 -59
- package/dist/commands/chunk-2CXT6MBR.js +0 -51
- package/dist/commands/chunk-2DJLAUYB.js +0 -109
- package/dist/commands/chunk-2EZTYLO4.js +0 -179
- package/dist/commands/chunk-2FJJYCBD.js +0 -149
- package/dist/commands/chunk-2PHOLX62.js +0 -43
- package/dist/commands/chunk-2QM72JCJ.js +0 -338
- package/dist/commands/chunk-2VRITY55.js +0 -41
- package/dist/commands/chunk-2XAH3MHV.js +0 -23
- package/dist/commands/chunk-34KZDKQJ.js +0 -304
- package/dist/commands/chunk-352KLSFX.js +0 -67
- package/dist/commands/chunk-36LOGVJ7.js +0 -38
- package/dist/commands/chunk-3AEDZZNL.js +0 -223
- package/dist/commands/chunk-3B2HEFNO.js +0 -51
- package/dist/commands/chunk-3PEXBHRN.js +0 -33
- package/dist/commands/chunk-3Z425MM3.js +0 -61
- package/dist/commands/chunk-3ZOX4G4U.js +0 -88
- package/dist/commands/chunk-452HWOJ7.js +0 -395
- package/dist/commands/chunk-475EFIJV.js +0 -178
- package/dist/commands/chunk-47UZB54M.js +0 -73
- package/dist/commands/chunk-4DN4XVPL.js +0 -716
- package/dist/commands/chunk-4DVM57T7.js +0 -86
- package/dist/commands/chunk-4EADHJVC.js +0 -247
- package/dist/commands/chunk-4HERA2GY.js +0 -95
- package/dist/commands/chunk-4JI35CVO.js +0 -70
- package/dist/commands/chunk-4L4LNWZ7.js +0 -143
- package/dist/commands/chunk-4N32QKJZ.js +0 -170
- package/dist/commands/chunk-4NRSFLG7.js +0 -185
- package/dist/commands/chunk-4OKRPAUT.js +0 -98
- package/dist/commands/chunk-4PUKDAXL.js +0 -42
- package/dist/commands/chunk-4Q64PG46.js +0 -478
- package/dist/commands/chunk-4UDTQVDD.js +0 -278
- package/dist/commands/chunk-4WR2LEZL.js +0 -123
- package/dist/commands/chunk-4ZJOC6OK.js +0 -298
- package/dist/commands/chunk-4ZQM4I7R.js +0 -533
- package/dist/commands/chunk-54X37JEJ.js +0 -170
- package/dist/commands/chunk-56KW5EOK.js +0 -85
- package/dist/commands/chunk-5CG3XU3O.js +0 -74
- package/dist/commands/chunk-5ESZLHDZ.js +0 -514
- package/dist/commands/chunk-5FBRMARM.js +0 -578
- package/dist/commands/chunk-5RG4S66L.js +0 -47
- package/dist/commands/chunk-5UJGACVN.js +0 -137
- package/dist/commands/chunk-5Y7B7FDL.js +0 -44
- package/dist/commands/chunk-5Z6E5ZUV.js +0 -89
- package/dist/commands/chunk-5ZNUH4LV.js +0 -1722
- package/dist/commands/chunk-5ZTQX7OS.js +0 -125
- package/dist/commands/chunk-66NX6EXR.js +0 -29
- package/dist/commands/chunk-66TGK5XL.js +0 -84
- package/dist/commands/chunk-6CFHLMKM.js +0 -555
- package/dist/commands/chunk-6DDK5XWK.js +0 -74
- package/dist/commands/chunk-6GQX752S.js +0 -145
- package/dist/commands/chunk-6HRRZANN.js +0 -55
- package/dist/commands/chunk-6MAZ55GF.js +0 -1241
- package/dist/commands/chunk-6OP63TBT.js +0 -78
- package/dist/commands/chunk-6Q3XUCLM.js +0 -204
- package/dist/commands/chunk-6RUWU2SB.js +0 -45
- package/dist/commands/chunk-6UCWAFQY.js +0 -245
- package/dist/commands/chunk-6WKJ3GDA.js +0 -408
- package/dist/commands/chunk-6YURRFRU.js +0 -461
- package/dist/commands/chunk-6YVURZAJ.js +0 -350
- package/dist/commands/chunk-6Z4YZG7P.js +0 -169
- package/dist/commands/chunk-77BIN247.js +0 -122
- package/dist/commands/chunk-7ABHNNY3.js +0 -529
- package/dist/commands/chunk-7C7FOKJK.js +0 -115
- package/dist/commands/chunk-7HAGC6SW.js +0 -1062
- package/dist/commands/chunk-7KKUFLH5.js +0 -56
- package/dist/commands/chunk-7LJQMM2K.js +0 -102
- package/dist/commands/chunk-7MJYLUF4.js +0 -99
- package/dist/commands/chunk-7NHZCI5Y.js +0 -704
- package/dist/commands/chunk-7OQ56DVW.js +0 -239
- package/dist/commands/chunk-7VWPGTZO.js +0 -260
- package/dist/commands/chunk-7YZXS3AK.js +0 -30
- package/dist/commands/chunk-A4HOQKOG.js +0 -85
- package/dist/commands/chunk-A6T2N7VC.js +0 -159
- package/dist/commands/chunk-AAUDI7WJ.js +0 -250
- package/dist/commands/chunk-AC26ZUG5.js +0 -259
- package/dist/commands/chunk-ACZ52JPI.js +0 -140
- package/dist/commands/chunk-AJ65WNJB.js +0 -230
- package/dist/commands/chunk-AK7SEO4Y.js +0 -177
- package/dist/commands/chunk-AKK56GNX.js +0 -205
- package/dist/commands/chunk-AKQYYHP2.js +0 -461
- package/dist/commands/chunk-ALDAS2WG.js +0 -137
- package/dist/commands/chunk-ANUTT56I.js +0 -85
- package/dist/commands/chunk-AVVMDVGO.js +0 -68
- package/dist/commands/chunk-B3M5WSGN.js +0 -72
- package/dist/commands/chunk-B7ZNIEDV.js +0 -351
- package/dist/commands/chunk-BCUDQWYK.js +0 -77
- package/dist/commands/chunk-BF6YX4HE.js +0 -70
- package/dist/commands/chunk-BHRS7HAM.js +0 -272
- package/dist/commands/chunk-BIKGPT52.js +0 -29
- package/dist/commands/chunk-BJA5U4Q7.js +0 -75
- package/dist/commands/chunk-BMKWSWWE.js +0 -126
- package/dist/commands/chunk-BMTYUJNT.js +0 -59
- package/dist/commands/chunk-BRHPRDDV.js +0 -127
- package/dist/commands/chunk-BRUBX64M.js +0 -33
- package/dist/commands/chunk-BTZJDHQT.js +0 -46
- package/dist/commands/chunk-BYFC6MD2.js +0 -72
- package/dist/commands/chunk-BYGJ3BCJ.js +0 -803
- package/dist/commands/chunk-C2SEDMZ3.js +0 -238
- package/dist/commands/chunk-C54QXJD6.js +0 -4208
- package/dist/commands/chunk-C6QSVO5K.js +0 -56
- package/dist/commands/chunk-CBAKBWSZ.js +0 -332
- package/dist/commands/chunk-CFHRNTE5.js +0 -326
- package/dist/commands/chunk-CGLLAEKZ.js +0 -110
- package/dist/commands/chunk-CHKYPF5O.js +0 -82
- package/dist/commands/chunk-CJBW6BWG.js +0 -800
- package/dist/commands/chunk-CJKPF5DJ.js +0 -156
- package/dist/commands/chunk-CKUKK7JG.js +0 -252
- package/dist/commands/chunk-CMHGDCGN.js +0 -263
- package/dist/commands/chunk-CNGTHSUS.js +0 -750
- package/dist/commands/chunk-CP2J4RV2.js +0 -3987
- package/dist/commands/chunk-CQZI7RIK.js +0 -72
- package/dist/commands/chunk-CWCKCZS6.js +0 -188
- package/dist/commands/chunk-D5HIP4HT.js +0 -289
- package/dist/commands/chunk-D6D6WQR6.js +0 -125
- package/dist/commands/chunk-D7JRJI44.js +0 -297
- package/dist/commands/chunk-D7OAU32Z.js +0 -119
- package/dist/commands/chunk-DAAX7XDS.js +0 -1208
- package/dist/commands/chunk-DBKTFB5V.js +0 -18
- package/dist/commands/chunk-DEZF7QZZ.js +0 -184
- package/dist/commands/chunk-DMD74E3F.js +0 -39
- package/dist/commands/chunk-DPJVKTO4.js +0 -41
- package/dist/commands/chunk-DXJQHJQ4.js +0 -73
- package/dist/commands/chunk-DYZOOWVW.js +0 -912
- package/dist/commands/chunk-EBI2BAKQ.js +0 -47
- package/dist/commands/chunk-EDKOSZ3K.js +0 -88
- package/dist/commands/chunk-EFDVE5P5.js +0 -121
- package/dist/commands/chunk-EGIHAEMT.js +0 -72
- package/dist/commands/chunk-EKLU6QR7.js +0 -507
- package/dist/commands/chunk-ELY76WAR.js +0 -65
- package/dist/commands/chunk-EM3HAZF6.js +0 -52
- package/dist/commands/chunk-EMTZAGT5.js +0 -51
- package/dist/commands/chunk-ENKFCOVY.js +0 -472
- package/dist/commands/chunk-ERG4QRNG.js +0 -224
- package/dist/commands/chunk-EUGNQCYK.js +0 -139
- package/dist/commands/chunk-EW4NPUMQ.js +0 -363
- package/dist/commands/chunk-EWVR5AEX.js +0 -140
- package/dist/commands/chunk-EXDFKKMH.js +0 -113
- package/dist/commands/chunk-EXWB34R2.js +0 -238
- package/dist/commands/chunk-EYMPBHDN.js +0 -61
- package/dist/commands/chunk-EZ7IPKIH.js +0 -20
- package/dist/commands/chunk-EZSO25UZ.js +0 -80
- package/dist/commands/chunk-F6IQHZYY.js +0 -94
- package/dist/commands/chunk-FDS65XOJ.js +0 -212
- package/dist/commands/chunk-FFHEGWPK.js +0 -91
- package/dist/commands/chunk-FGL6DBZU.js +0 -71
- package/dist/commands/chunk-FHFWNNUC.js +0 -144
- package/dist/commands/chunk-FIUCHMCF.js +0 -32
- package/dist/commands/chunk-FJX7AENO.js +0 -74
- package/dist/commands/chunk-FKZ5E4JD.js +0 -97
- package/dist/commands/chunk-FMZWRDKH.js +0 -302
- package/dist/commands/chunk-FOKCRIAN.js +0 -67
- package/dist/commands/chunk-FQGWO2ZH.js +0 -43
- package/dist/commands/chunk-FROACLVU.js +0 -525
- package/dist/commands/chunk-FURNDIT3.js +0 -34
- package/dist/commands/chunk-FVDQNMP6.js +0 -93
- package/dist/commands/chunk-FVVZIJUC.js +0 -425
- package/dist/commands/chunk-FWU3H4TX.js +0 -17
- package/dist/commands/chunk-G3HBYHFA.js +0 -16
- package/dist/commands/chunk-G4E4M2P4.js +0 -299
- package/dist/commands/chunk-G5KSL2Q2.js +0 -151
- package/dist/commands/chunk-G6XC7V6Y.js +0 -58
- package/dist/commands/chunk-GCPP5XIG.js +0 -90
- package/dist/commands/chunk-GITT5A5A.js +0 -198
- package/dist/commands/chunk-GJYMI2CM.js +0 -48
- package/dist/commands/chunk-GLC47H7I.js +0 -285
- package/dist/commands/chunk-GUR54ELE.js +0 -328
- package/dist/commands/chunk-GW4UWR3O.js +0 -126
- package/dist/commands/chunk-GY4DMCKS.js +0 -306
- package/dist/commands/chunk-H6JQRHDC.js +0 -80
- package/dist/commands/chunk-HATKF6VX.js +0 -173
- package/dist/commands/chunk-HG2NZQD5.js +0 -135
- package/dist/commands/chunk-HH3CVIFU.js +0 -93
- package/dist/commands/chunk-HHMMGDMP.js +0 -469
- package/dist/commands/chunk-HI5WPM6C.js +0 -127
- package/dist/commands/chunk-HQGNXR6I.js +0 -245
- package/dist/commands/chunk-HTIDHEEN.js +0 -108
- package/dist/commands/chunk-HVCQYZVD.js +0 -38
- package/dist/commands/chunk-HWEZRNPL.js +0 -66
- package/dist/commands/chunk-HX3FFIO5.js +0 -74
- package/dist/commands/chunk-HXDTA5VU.js +0 -208
- package/dist/commands/chunk-I2KCGKJI.js +0 -107
- package/dist/commands/chunk-I63RNFFR.js +0 -213
- package/dist/commands/chunk-IAD4WLLI.js +0 -98
- package/dist/commands/chunk-IB5TT73I.js +0 -177
- package/dist/commands/chunk-IBAYXCMU.js +0 -156
- package/dist/commands/chunk-IGDJNXX2.js +0 -49
- package/dist/commands/chunk-ILGPZ47M.js +0 -33
- package/dist/commands/chunk-IYJEBWW5.js +0 -44
- package/dist/commands/chunk-J22PSIXR.js +0 -418
- package/dist/commands/chunk-J66YBAAM.js +0 -161
- package/dist/commands/chunk-J6WKZRV2.js +0 -391
- package/dist/commands/chunk-J7IO3AYH.js +0 -179
- package/dist/commands/chunk-JAKC2BHX.js +0 -88
- package/dist/commands/chunk-JCAQ7B6J.js +0 -124
- package/dist/commands/chunk-JHN6RCE6.js +0 -123
- package/dist/commands/chunk-JIGBNCDR.js +0 -88
- package/dist/commands/chunk-JJHWTFWQ.js +0 -76
- package/dist/commands/chunk-JJRKTWLK.js +0 -64
- package/dist/commands/chunk-JKOGWGQM.js +0 -92
- package/dist/commands/chunk-JM6EVOFN.js +0 -172
- package/dist/commands/chunk-JQXPLMCO.js +0 -81
- package/dist/commands/chunk-JV24VP2O.js +0 -81
- package/dist/commands/chunk-JVKXJ763.js +0 -45
- package/dist/commands/chunk-K275REYP.js +0 -37
- package/dist/commands/chunk-K4G3HOKS.js +0 -105
- package/dist/commands/chunk-K64EIHD2.js +0 -138
- package/dist/commands/chunk-KB3OQWDT.js +0 -71
- package/dist/commands/chunk-KCFOP5RI.js +0 -1310
- package/dist/commands/chunk-KGE4AS2Y.js +0 -134
- package/dist/commands/chunk-KIILCKQR.js +0 -220
- package/dist/commands/chunk-KK2SL42W.js +0 -241
- package/dist/commands/chunk-KKIMVXAP.js +0 -280
- package/dist/commands/chunk-KODXWMBX.js +0 -77
- package/dist/commands/chunk-KPSKWTOS.js +0 -208
- package/dist/commands/chunk-KVHNQHX3.js +0 -100
- package/dist/commands/chunk-KWYQR5MK.js +0 -269
- package/dist/commands/chunk-KXHXMERX.js +0 -214
- package/dist/commands/chunk-KZ5BBBMO.js +0 -271
- package/dist/commands/chunk-KZ7HD37E.js +0 -121
- package/dist/commands/chunk-KZSM5M5P.js +0 -89
- package/dist/commands/chunk-KZZWPUJW.js +0 -25
- package/dist/commands/chunk-L7DAL54N.js +0 -347
- package/dist/commands/chunk-LAR76BFA.js +0 -114
- package/dist/commands/chunk-LB557AHJ.js +0 -192
- package/dist/commands/chunk-LJXKVLYI.js +0 -229
- package/dist/commands/chunk-LOOFYHUM.js +0 -773
- package/dist/commands/chunk-LQXFVZTS.js +0 -13
- package/dist/commands/chunk-LT7QSHR4.js +0 -995
- package/dist/commands/chunk-LUXWDMKI.js +0 -426
- package/dist/commands/chunk-LWAXXZPS.js +0 -118
- package/dist/commands/chunk-LX7TIEMI.js +0 -1612
- package/dist/commands/chunk-LZ5QXE5N.js +0 -244
- package/dist/commands/chunk-LZPPSOTP.js +0 -122
- package/dist/commands/chunk-M4UV3BEV.js +0 -313
- package/dist/commands/chunk-M6JDU5EK.js +0 -133
- package/dist/commands/chunk-MDLOETXL.js +0 -211
- package/dist/commands/chunk-MFBNNTBM.js +0 -44
- package/dist/commands/chunk-MGF64OHV.js +0 -32
- package/dist/commands/chunk-MI2OS6TL.js +0 -132
- package/dist/commands/chunk-MLW4S35K.js +0 -389
- package/dist/commands/chunk-MN425CU6.js +0 -63
- package/dist/commands/chunk-MPGJ4ONJ.js +0 -634
- package/dist/commands/chunk-MRORPFSO.js +0 -402
- package/dist/commands/chunk-MUGTOJUL.js +0 -319
- package/dist/commands/chunk-MVHPRYHE.js +0 -91
- package/dist/commands/chunk-MWO6FOSZ.js +0 -393
- package/dist/commands/chunk-MXC4IBZ7.js +0 -104
- package/dist/commands/chunk-N7QTMTST.js +0 -210
- package/dist/commands/chunk-NDBX7LSS.js +0 -32
- package/dist/commands/chunk-NEGJ77RV.js +0 -173
- package/dist/commands/chunk-NEGRE5VW.js +0 -101
- package/dist/commands/chunk-NFPD2P3V.js +0 -53
- package/dist/commands/chunk-NHIW7JE6.js +0 -335
- package/dist/commands/chunk-NILSN7A4.js +0 -158
- package/dist/commands/chunk-NOLFSPOB.js +0 -74
- package/dist/commands/chunk-NSAVEXVR.js +0 -353
- package/dist/commands/chunk-NT67QTZO.js +0 -65
- package/dist/commands/chunk-NU7W6QGT.js +0 -155
- package/dist/commands/chunk-NYWGJLBU.js +0 -19
- package/dist/commands/chunk-OAAVY2JK.js +0 -49
- package/dist/commands/chunk-OGS2DK7I.js +0 -47
- package/dist/commands/chunk-OHNP3QL2.js +0 -186
- package/dist/commands/chunk-OIPV3PWW.js +0 -870
- package/dist/commands/chunk-OIX2363L.js +0 -16
- package/dist/commands/chunk-OJ65BZBV.js +0 -646
- package/dist/commands/chunk-OKZWEVR4.js +0 -352
- package/dist/commands/chunk-OL6IF4JC.js +0 -20
- package/dist/commands/chunk-OMPRILFH.js +0 -29
- package/dist/commands/chunk-OOWGH2RG.js +0 -85
- package/dist/commands/chunk-OP2RFVLS.js +0 -102
- package/dist/commands/chunk-ORKVN2LO.js +0 -56
- package/dist/commands/chunk-OSBWXZJ4.js +0 -492
- package/dist/commands/chunk-OT3UMEWK.js +0 -47
- package/dist/commands/chunk-OVWPZDWP.js +0 -64
- package/dist/commands/chunk-OWYK2BEJ.js +0 -1222
- package/dist/commands/chunk-OX3VQLV2.js +0 -488
- package/dist/commands/chunk-OZJP77UM.js +0 -103
- package/dist/commands/chunk-OZZWRJQI.js +0 -246
- package/dist/commands/chunk-P3H3DKTE.js +0 -69
- package/dist/commands/chunk-P4D5RESF.js +0 -88
- package/dist/commands/chunk-P4KIQRSL.js +0 -119
- package/dist/commands/chunk-P5SOYWH2.js +0 -37
- package/dist/commands/chunk-P7FPXAHP.js +0 -29
- package/dist/commands/chunk-PE7B7242.js +0 -84
- package/dist/commands/chunk-PFO7EYAP.js +0 -45
- package/dist/commands/chunk-PHLOTUB7.js +0 -366
- package/dist/commands/chunk-PTNQCCIB.js +0 -41
- package/dist/commands/chunk-PTZEFQUX.js +0 -211
- package/dist/commands/chunk-Q5Q2QYVU.js +0 -112
- package/dist/commands/chunk-Q7EEIOAD.js +0 -120
- package/dist/commands/chunk-QABRNGQV.js +0 -88
- package/dist/commands/chunk-QAHFPCFR.js +0 -50
- package/dist/commands/chunk-QDFVVRQP.js +0 -92
- package/dist/commands/chunk-QGAERR7D.js +0 -99
- package/dist/commands/chunk-QHWJJ6X5.js +0 -53
- package/dist/commands/chunk-QJRVDE7T.js +0 -307
- package/dist/commands/chunk-QMDKDQKW.js +0 -114
- package/dist/commands/chunk-QOSC5RKD.js +0 -18
- package/dist/commands/chunk-QQ4CIYMF.js +0 -132
- package/dist/commands/chunk-QV5FKMOU.js +0 -80
- package/dist/commands/chunk-QWWTC3XR.js +0 -109
- package/dist/commands/chunk-QXQ56E56.js +0 -27
- package/dist/commands/chunk-R54Z2Z3X.js +0 -114
- package/dist/commands/chunk-R6QE5VJG.js +0 -46
- package/dist/commands/chunk-RG53UFNW.js +0 -418
- package/dist/commands/chunk-RGGEQM6G.js +0 -140
- package/dist/commands/chunk-RH6ZWJOA.js +0 -77
- package/dist/commands/chunk-RHKCWJQX.js +0 -62
- package/dist/commands/chunk-RKIAX4DZ.js +0 -191
- package/dist/commands/chunk-RLBFEHHC.js +0 -300
- package/dist/commands/chunk-RN2YDNLF.js +0 -229
- package/dist/commands/chunk-RRAIRS2T.js +0 -54
- package/dist/commands/chunk-RS764ZMU.js +0 -46
- package/dist/commands/chunk-RUIBQMOV.js +0 -38
- package/dist/commands/chunk-RUQY5TS3.js +0 -83
- package/dist/commands/chunk-RVUJ6F5L.js +0 -181
- package/dist/commands/chunk-RW64VHEB.js +0 -130
- package/dist/commands/chunk-RXYMJPJB.js +0 -114
- package/dist/commands/chunk-S4M6UWR2.js +0 -103
- package/dist/commands/chunk-SASX3W2M.js +0 -99
- package/dist/commands/chunk-SFNBUB6D.js +0 -110
- package/dist/commands/chunk-SJ2ZN575.js +0 -90
- package/dist/commands/chunk-SP7DKYGU.js +0 -1263
- package/dist/commands/chunk-SSL6A3Y4.js +0 -165
- package/dist/commands/chunk-SVAKCXZ7.js +0 -44
- package/dist/commands/chunk-SYOXIKB7.js +0 -705
- package/dist/commands/chunk-SZG5HDNP.js +0 -321
- package/dist/commands/chunk-T25S4QHL.js +0 -52
- package/dist/commands/chunk-T4F33UKZ.js +0 -114
- package/dist/commands/chunk-T4UYEHWG.js +0 -50
- package/dist/commands/chunk-TAEGXID2.js +0 -58
- package/dist/commands/chunk-TCBUX52E.js +0 -701
- package/dist/commands/chunk-TEPYEUYG.js +0 -585
- package/dist/commands/chunk-TFLHYC2F.js +0 -141
- package/dist/commands/chunk-TJKM56WJ.js +0 -109
- package/dist/commands/chunk-TLAB552K.js +0 -445
- package/dist/commands/chunk-TP6L4W3W.js +0 -82
- package/dist/commands/chunk-TR7WWYD5.js +0 -60
- package/dist/commands/chunk-TVZXG4Y4.js +0 -197
- package/dist/commands/chunk-TYNH2R66.js +0 -1150
- package/dist/commands/chunk-U3IVVR4W.js +0 -33
- package/dist/commands/chunk-U5P6G3UV.js +0 -77
- package/dist/commands/chunk-U7XU5RG3.js +0 -86
- package/dist/commands/chunk-UKBBWMLE.js +0 -1189
- package/dist/commands/chunk-ULVVGGTY.js +0 -64
- package/dist/commands/chunk-UNMSZGSG.js +0 -269
- package/dist/commands/chunk-URDT2O2K.js +0 -36
- package/dist/commands/chunk-UTHUX7VU.js +0 -88
- package/dist/commands/chunk-V4Z7G4UH.js +0 -73
- package/dist/commands/chunk-V5FD7DVV.js +0 -48
- package/dist/commands/chunk-VCPGFBMN.js +0 -655
- package/dist/commands/chunk-VGPIQNDB.js +0 -24
- package/dist/commands/chunk-VJE3RJAX.js +0 -23
- package/dist/commands/chunk-VK6D5CWA.js +0 -161
- package/dist/commands/chunk-VOF3N4WO.js +0 -114
- package/dist/commands/chunk-VQVPAVQ3.js +0 -45
- package/dist/commands/chunk-VV4TQYGD.js +0 -38
- package/dist/commands/chunk-W3FX7FYN.js +0 -84
- package/dist/commands/chunk-W7DRUOF7.js +0 -122
- package/dist/commands/chunk-WAEN2RTT.js +0 -161
- package/dist/commands/chunk-WCEUMOKK.js +0 -84
- package/dist/commands/chunk-WJ4NEDNI.js +0 -288
- package/dist/commands/chunk-WMMGXJXP.js +0 -92
- package/dist/commands/chunk-WOFLW2LX.js +0 -26
- package/dist/commands/chunk-WTH6NTXU.js +0 -128
- package/dist/commands/chunk-WWVYEHQT.js +0 -272
- package/dist/commands/chunk-X3TNPALI.js +0 -213
- package/dist/commands/chunk-XC6GG5JR.js +0 -78
- package/dist/commands/chunk-XDF25GSU.js +0 -536
- package/dist/commands/chunk-XFPEUYDV.js +0 -67
- package/dist/commands/chunk-XFWI6WHH.js +0 -60
- package/dist/commands/chunk-XGMRAKSL.js +0 -85
- package/dist/commands/chunk-XHGWMD3L.js +0 -104
- package/dist/commands/chunk-XKSUBUIH.js +0 -116
- package/dist/commands/chunk-XPBF5DG3.js +0 -419
- package/dist/commands/chunk-XUMYPESL.js +0 -160
- package/dist/commands/chunk-XXC32PVL.js +0 -541
- package/dist/commands/chunk-XXN2EZBY.js +0 -133
- package/dist/commands/chunk-XXNEY4B3.js +0 -110
- package/dist/commands/chunk-Y27PTXXI.js +0 -258
- package/dist/commands/chunk-Y4EBUI6M.js +0 -237
- package/dist/commands/chunk-YAU3LYNF.js +0 -60
- package/dist/commands/chunk-YDURQICF.js +0 -204
- package/dist/commands/chunk-YGFOGA7C.js +0 -1153
- package/dist/commands/chunk-YHJ2AJMA.js +0 -66
- package/dist/commands/chunk-YIA6FC3K.js +0 -78
- package/dist/commands/chunk-YM77CF4D.js +0 -183
- package/dist/commands/chunk-YNPRJCEO.js +0 -81
- package/dist/commands/chunk-YTBQAD5W.js +0 -170
- package/dist/commands/chunk-YVH2OLDS.js +0 -104
- package/dist/commands/chunk-ZAAHZY2A.js +0 -19
- package/dist/commands/chunk-ZBZ5DDCH.js +0 -1866
- package/dist/commands/chunk-ZLRUHSOP.js +0 -48
- package/dist/commands/chunk-ZNR75OXP.js +0 -444
- package/dist/commands/chunk-ZSOR4ISJ.js +0 -75
- package/dist/commands/chunk-ZVAIIHBE.js +0 -63
- package/dist/commands/chunk-ZYFHYQA7.js +0 -51
- package/dist/commands/chunk-ZZFFSQF4.js +0 -218
- package/dist/commands/chunk-ZZULXNC2.js +0 -47
- package/dist/commands/chunk-ZZXO6TFH.js +0 -232
- package/dist/commands/run-ship-lap-W5T2VHFC.js +0 -30
- package/dist/commands/test-related-ZCNC46MS.js +0 -113
- package/dist/commands/unused-members-STULPRBU.js +0 -331
- package/dist/hooks/chunk-5CUXGQT6.js +0 -8353
- package/dist/hooks/chunk-5R5YFQR5.js +0 -931
- package/dist/hooks/chunk-6RLY27FT.js +0 -232
- package/dist/hooks/chunk-6YGMIODI.js +0 -86
- package/dist/hooks/chunk-AO4TOV4V.js +0 -5026
- package/dist/hooks/chunk-FOW4B7OQ.js +0 -1795
- package/dist/hooks/chunk-G5WSPYJ6.js +0 -5663
- package/dist/hooks/chunk-HHIVWGHX.js +0 -6869
- package/dist/hooks/chunk-IURJANNZ.js +0 -1082
- package/dist/hooks/chunk-OV22V63P.js +0 -10980
- package/dist/hooks/chunk-SXABK6UV.js +0 -321
- package/dist/hooks/run-ship-lap-VCEOUHQI.js +0 -8
|
@@ -0,0 +1,1153 @@
|
|
|
1
|
+
import {
|
|
2
|
+
git_gh_pr_rollup
|
|
3
|
+
} from "./chunk-OBYLXHCH.js";
|
|
4
|
+
import {
|
|
5
|
+
git_gh_repo
|
|
6
|
+
} from "./chunk-CTXJVMHW.js";
|
|
7
|
+
import {
|
|
8
|
+
forget_pr_numbers,
|
|
9
|
+
git_gh_pr_read,
|
|
10
|
+
git_gh_pr_rest,
|
|
11
|
+
read_listed_pull,
|
|
12
|
+
read_pull,
|
|
13
|
+
read_pull_or_listed,
|
|
14
|
+
require_pr_number
|
|
15
|
+
} from "./chunk-5IHEBIPD.js";
|
|
16
|
+
import {
|
|
17
|
+
FIRST_PAGE,
|
|
18
|
+
git_gh_issue_list
|
|
19
|
+
} from "./chunk-TEXUEBGE.js";
|
|
20
|
+
import {
|
|
21
|
+
pr_classification
|
|
22
|
+
} from "./chunk-RS5HBJY6.js";
|
|
23
|
+
import {
|
|
24
|
+
git_gh_issue_write
|
|
25
|
+
} from "./chunk-4F4KARQN.js";
|
|
26
|
+
import {
|
|
27
|
+
CHECK_STATUS_FAIL,
|
|
28
|
+
CHECK_STATUS_PENDING,
|
|
29
|
+
PrConflictError,
|
|
30
|
+
REQUIRED_CHECKS,
|
|
31
|
+
blocked_cause,
|
|
32
|
+
collect_blocking_failures,
|
|
33
|
+
describe_pr_failure,
|
|
34
|
+
evaluate_pr_state,
|
|
35
|
+
is_auto_merge_blocked,
|
|
36
|
+
is_coderabbit_check,
|
|
37
|
+
is_merge_conflict,
|
|
38
|
+
is_required_check,
|
|
39
|
+
is_review_decision_decisive,
|
|
40
|
+
missing_context_error,
|
|
41
|
+
parse_pr_state_snapshot,
|
|
42
|
+
read_string
|
|
43
|
+
} from "./chunk-WVR4RUFP.js";
|
|
44
|
+
import {
|
|
45
|
+
BLOCKED_BY_COUNT_FIELD,
|
|
46
|
+
PAGE,
|
|
47
|
+
git_gh_issue_graphql,
|
|
48
|
+
git_gh_issue_read
|
|
49
|
+
} from "./chunk-TFYYXETQ.js";
|
|
50
|
+
import {
|
|
51
|
+
GRAPHQL_PATH,
|
|
52
|
+
git_gh_transport
|
|
53
|
+
} from "./chunk-LX2ENXHZ.js";
|
|
54
|
+
import {
|
|
55
|
+
git_gh_helpers,
|
|
56
|
+
to_gh_state
|
|
57
|
+
} from "./chunk-IAGENI2U.js";
|
|
58
|
+
import {
|
|
59
|
+
gh_author_association
|
|
60
|
+
} from "./chunk-5YTEMF4O.js";
|
|
61
|
+
import {
|
|
62
|
+
git_gh_conditional,
|
|
63
|
+
git_gh_etag_read
|
|
64
|
+
} from "./chunk-IPS7EBE5.js";
|
|
65
|
+
import {
|
|
66
|
+
PR_POLL_SCHEDULES,
|
|
67
|
+
poll
|
|
68
|
+
} from "./chunk-SBGTCT2C.js";
|
|
69
|
+
import {
|
|
70
|
+
FULL_PAGE_QUERY,
|
|
71
|
+
git_gh_api_path
|
|
72
|
+
} from "./chunk-RDRN56E4.js";
|
|
73
|
+
import {
|
|
74
|
+
gh_failure,
|
|
75
|
+
gh_retry,
|
|
76
|
+
git_gh_exec,
|
|
77
|
+
parse_json_array_or_undefined
|
|
78
|
+
} from "./chunk-43DU7DYZ.js";
|
|
79
|
+
import {
|
|
80
|
+
error_text
|
|
81
|
+
} from "./chunk-CDY4NFQG.js";
|
|
82
|
+
import {
|
|
83
|
+
git_command
|
|
84
|
+
} from "./chunk-IXZZSST7.js";
|
|
85
|
+
import {
|
|
86
|
+
json_value
|
|
87
|
+
} from "./chunk-HIU2WXB6.js";
|
|
88
|
+
|
|
89
|
+
// scripts/gh/git-gh-issue.ts
|
|
90
|
+
var NUMBER_AND_BODY_FIELDS = "number,body";
|
|
91
|
+
var LABELLED_FIELDS = "number,body,stateReason";
|
|
92
|
+
var BACKLOG_SCAN_FIELDS = `number,title,body,labels,${BLOCKED_BY_COUNT_FIELD}`;
|
|
93
|
+
var NUMBER_TITLE_AND_LABELS_FIELDS = "number,title,labels";
|
|
94
|
+
var SUMMARY_FIELDS = "number,title,labels,createdAt";
|
|
95
|
+
var PICKUP_FIELDS = `${SUMMARY_FIELDS},blockedBy,body,${gh_author_association.AUTHOR_FIELDS}`;
|
|
96
|
+
var { issue_list } = git_gh_issue_list;
|
|
97
|
+
async function issue_list_recent(limit) {
|
|
98
|
+
return await issue_list({ json_fields: `${SUMMARY_FIELDS},body`, limit });
|
|
99
|
+
}
|
|
100
|
+
async function issue_list_open_bodies(limit) {
|
|
101
|
+
return await issue_list({ json_fields: BACKLOG_SCAN_FIELDS, limit });
|
|
102
|
+
}
|
|
103
|
+
async function issue_list_open_relations(limit) {
|
|
104
|
+
return await issue_list({ json_fields: `${BACKLOG_SCAN_FIELDS},blockedBy`, limit });
|
|
105
|
+
}
|
|
106
|
+
async function issue_list_recently_closed(limit) {
|
|
107
|
+
return await issue_list({
|
|
108
|
+
json_fields: NUMBER_TITLE_AND_LABELS_FIELDS,
|
|
109
|
+
limit,
|
|
110
|
+
state: "closed",
|
|
111
|
+
sort: "updated"
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async function issue_search_body(term, limit) {
|
|
115
|
+
return await issue_list({
|
|
116
|
+
json_fields: NUMBER_AND_BODY_FIELDS,
|
|
117
|
+
limit,
|
|
118
|
+
body_term: term
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async function issue_list_by_label(label, limit) {
|
|
122
|
+
return await issue_list({ json_fields: LABELLED_FIELDS, limit, label });
|
|
123
|
+
}
|
|
124
|
+
async function issue_list_by_label_summary(label, limit, options) {
|
|
125
|
+
return await issue_list({
|
|
126
|
+
json_fields: options?.json_fields ?? PICKUP_FIELDS,
|
|
127
|
+
limit,
|
|
128
|
+
label
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async function issue_list_label_first_page(label) {
|
|
132
|
+
const path = git_gh_issue_list.listing_path({ label }, FIRST_PAGE);
|
|
133
|
+
return await git_gh_etag_read.read_detail(path);
|
|
134
|
+
}
|
|
135
|
+
async function issue_list_by_label_in_repo(label, limit, repo) {
|
|
136
|
+
return await issue_list({ json_fields: SUMMARY_FIELDS, limit, label, repo });
|
|
137
|
+
}
|
|
138
|
+
var JUDGEMENT_FIELDS = "number,title,body,labels,updatedAt,author_association,user";
|
|
139
|
+
async function issue_list_open_for_judgement(limit) {
|
|
140
|
+
return await issue_list({ json_fields: JUDGEMENT_FIELDS, limit });
|
|
141
|
+
}
|
|
142
|
+
var git_gh_issue = {
|
|
143
|
+
...git_gh_issue_read,
|
|
144
|
+
...git_gh_issue_write,
|
|
145
|
+
issue_list_recent,
|
|
146
|
+
issue_list_by_label,
|
|
147
|
+
issue_list_by_label_in_repo,
|
|
148
|
+
issue_list_by_label_summary,
|
|
149
|
+
issue_list_label_first_page,
|
|
150
|
+
issue_search_body,
|
|
151
|
+
issue_list_open_bodies,
|
|
152
|
+
issue_list_open_relations,
|
|
153
|
+
issue_list_open_for_judgement,
|
|
154
|
+
issue_list_recently_closed
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
// scripts/gh/git-gh-branch-rules.ts
|
|
158
|
+
import { z } from "zod";
|
|
159
|
+
var REQUIRED_STATUS_CHECKS_RULE = "required_status_checks";
|
|
160
|
+
var required_check_schema = z.looseObject({ context: z.string() });
|
|
161
|
+
var rule_parameters_schema = z.looseObject({
|
|
162
|
+
required_status_checks: z.array(required_check_schema).optional()
|
|
163
|
+
});
|
|
164
|
+
var branch_rule_schema = z.looseObject({
|
|
165
|
+
type: z.string(),
|
|
166
|
+
parameters: rule_parameters_schema.nullish()
|
|
167
|
+
});
|
|
168
|
+
var required_contexts_by_branch = /* @__PURE__ */ new Map();
|
|
169
|
+
function to_required_contexts(rules) {
|
|
170
|
+
return rules.filter((rule) => rule.type === REQUIRED_STATUS_CHECKS_RULE).flatMap((rule) => rule.parameters?.required_status_checks ?? []).map((check) => check.context);
|
|
171
|
+
}
|
|
172
|
+
async function fetch_required_contexts(branch_name) {
|
|
173
|
+
const raw_json = await git_gh_exec.exec_gh_api({
|
|
174
|
+
path: `${git_gh_api_path.branch_rules_api_path(branch_name)}${FULL_PAGE_QUERY}`,
|
|
175
|
+
should_paginate: true
|
|
176
|
+
});
|
|
177
|
+
const rules = parse_json_array_or_undefined(raw_json, branch_rule_schema);
|
|
178
|
+
return rules === void 0 ? void 0 : to_required_contexts(rules);
|
|
179
|
+
}
|
|
180
|
+
async function read_required_contexts(branch_name) {
|
|
181
|
+
if (branch_name === void 0) return [];
|
|
182
|
+
const cached = required_contexts_by_branch.get(branch_name);
|
|
183
|
+
if (cached !== void 0) return cached;
|
|
184
|
+
try {
|
|
185
|
+
const contexts = await fetch_required_contexts(branch_name);
|
|
186
|
+
if (contexts === void 0) return [];
|
|
187
|
+
required_contexts_by_branch.set(branch_name, contexts);
|
|
188
|
+
return contexts;
|
|
189
|
+
} catch {
|
|
190
|
+
return [];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
var git_gh_branch_rules = { read_required_contexts };
|
|
194
|
+
|
|
195
|
+
// scripts/gh/git-gh-poll-read.ts
|
|
196
|
+
import { z as z2 } from "zod";
|
|
197
|
+
var UNREADABLE_POLL_MESSAGE = "gh api could not read a merge-gate poll";
|
|
198
|
+
var PAGE_SIZE = 100;
|
|
199
|
+
var kept_by_path = /* @__PURE__ */ new Map();
|
|
200
|
+
var page_schema = z2.object({ total_count: z2.number() });
|
|
201
|
+
function unreadable(path, answer) {
|
|
202
|
+
const cause = answer.kind === "unreadable" ? answer.cause : void 0;
|
|
203
|
+
const reason = cause === void 0 ? "" : `: ${error_text.message_of(cause)}`;
|
|
204
|
+
return new Error(`${UNREADABLE_POLL_MESSAGE}: ${path}${reason}`, { cause });
|
|
205
|
+
}
|
|
206
|
+
function settle_kept(path, answer) {
|
|
207
|
+
const settled = git_gh_etag_read.settle(kept_by_path.get(path), answer);
|
|
208
|
+
if (settled?.kept !== void 0) kept_by_path.set(path, settled.kept);
|
|
209
|
+
return settled?.body;
|
|
210
|
+
}
|
|
211
|
+
async function read_answer(path) {
|
|
212
|
+
return await git_gh_conditional.read_conditional(path, kept_by_path.get(path)?.etag);
|
|
213
|
+
}
|
|
214
|
+
async function read(path) {
|
|
215
|
+
const answer = await read_answer(path);
|
|
216
|
+
const body = settle_kept(path, answer);
|
|
217
|
+
if (body === void 0) throw unreadable(path, answer);
|
|
218
|
+
return body;
|
|
219
|
+
}
|
|
220
|
+
async function read_detail(path) {
|
|
221
|
+
const answer = await read_answer(path);
|
|
222
|
+
const body = settle_kept(path, answer);
|
|
223
|
+
return body === void 0 ? void 0 : { body, is_unchanged: answer.kind === "unchanged" };
|
|
224
|
+
}
|
|
225
|
+
function is_whole_listing(page) {
|
|
226
|
+
const total = json_value.parse_with(page, page_schema)?.total_count;
|
|
227
|
+
return total !== void 0 && total <= PAGE_SIZE;
|
|
228
|
+
}
|
|
229
|
+
async function read_object_pages(path) {
|
|
230
|
+
const full_path = `${path}${FULL_PAGE_QUERY}`;
|
|
231
|
+
const page = await read(full_path);
|
|
232
|
+
if (is_whole_listing(page)) return `[${page}]`;
|
|
233
|
+
return await git_gh_exec.exec_gh_api({
|
|
234
|
+
path: full_path,
|
|
235
|
+
should_paginate: true,
|
|
236
|
+
should_slurp: true
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
async function read_array_pages(path) {
|
|
240
|
+
return await git_gh_etag_read.read_listing(`${path}${FULL_PAGE_QUERY}`, PAGE_SIZE, read);
|
|
241
|
+
}
|
|
242
|
+
function forget_poll_reads() {
|
|
243
|
+
kept_by_path.clear();
|
|
244
|
+
}
|
|
245
|
+
var git_gh_poll_read = {
|
|
246
|
+
UNREADABLE_POLL_MESSAGE,
|
|
247
|
+
forget_poll_reads,
|
|
248
|
+
read,
|
|
249
|
+
read_array_pages,
|
|
250
|
+
read_detail,
|
|
251
|
+
read_object_pages
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// scripts/gh/git-gh-pr-graphql-snapshot.ts
|
|
255
|
+
import { z as z4 } from "zod";
|
|
256
|
+
|
|
257
|
+
// scripts/gh/git-gh-pr-review.ts
|
|
258
|
+
import { z as z3 } from "zod";
|
|
259
|
+
var REVIEW_APPROVED = "APPROVED";
|
|
260
|
+
var REVIEW_CHANGES_REQUESTED = "CHANGES_REQUESTED";
|
|
261
|
+
var REVIEW_NONE = "";
|
|
262
|
+
var STATE_CHANGING_REVIEWS = /* @__PURE__ */ new Set([REVIEW_APPROVED, REVIEW_CHANGES_REQUESTED]);
|
|
263
|
+
var rest_review_schema = z3.looseObject({
|
|
264
|
+
state: z3.string().optional(),
|
|
265
|
+
user: z3.looseObject({ login: z3.string().optional() }).nullish()
|
|
266
|
+
});
|
|
267
|
+
var NOT_A_REVIEW_LISTING = "gh api answered something other than a review listing";
|
|
268
|
+
function parse_rest_reviews(reviews_json) {
|
|
269
|
+
const parsed = parse_json_array_or_undefined(reviews_json, rest_review_schema);
|
|
270
|
+
if (parsed === void 0) throw new Error(NOT_A_REVIEW_LISTING);
|
|
271
|
+
return parsed;
|
|
272
|
+
}
|
|
273
|
+
var UNATTRIBUTED_REVIEWER = "(no author)";
|
|
274
|
+
function read_reviewer(review) {
|
|
275
|
+
const login = review.user?.login;
|
|
276
|
+
return typeof login === "string" && login.length > 0 ? login : UNATTRIBUTED_REVIEWER;
|
|
277
|
+
}
|
|
278
|
+
function read_state_changing(review) {
|
|
279
|
+
const state = review.state?.toUpperCase();
|
|
280
|
+
return state !== void 0 && STATE_CHANGING_REVIEWS.has(state) ? state : void 0;
|
|
281
|
+
}
|
|
282
|
+
function fold_latest_states(reviews) {
|
|
283
|
+
const latest = /* @__PURE__ */ new Map();
|
|
284
|
+
for (const review of reviews) {
|
|
285
|
+
const state = read_state_changing(review);
|
|
286
|
+
if (state !== void 0) latest.set(read_reviewer(review), state);
|
|
287
|
+
}
|
|
288
|
+
return latest;
|
|
289
|
+
}
|
|
290
|
+
function to_review_decision(reviews_json) {
|
|
291
|
+
const latest = new Set(fold_latest_states(parse_rest_reviews(reviews_json)).values());
|
|
292
|
+
if (latest.has(REVIEW_CHANGES_REQUESTED)) return REVIEW_CHANGES_REQUESTED;
|
|
293
|
+
return latest.has(REVIEW_APPROVED) ? REVIEW_APPROVED : REVIEW_NONE;
|
|
294
|
+
}
|
|
295
|
+
var git_gh_pr_review = { to_review_decision };
|
|
296
|
+
|
|
297
|
+
// scripts/gh/git-gh-pr-graphql-snapshot.ts
|
|
298
|
+
var TYPE_NAME_KEY = "__typename";
|
|
299
|
+
var CHECK_RUN = "CheckRun";
|
|
300
|
+
var STATUS_CONTEXT = "StatusContext";
|
|
301
|
+
var REQUIRED_STATUS_CHECKS = "REQUIRED_STATUS_CHECKS";
|
|
302
|
+
var CONTEXTS = `contexts(${PAGE}, after: $after) {
|
|
303
|
+
pageInfo { hasNextPage endCursor }
|
|
304
|
+
nodes {
|
|
305
|
+
__typename
|
|
306
|
+
... on ${CHECK_RUN} {
|
|
307
|
+
databaseId name status conclusion checkSuite { databaseId app { databaseId slug } }
|
|
308
|
+
}
|
|
309
|
+
... on ${STATUS_CONTEXT} { context state description }
|
|
310
|
+
}
|
|
311
|
+
}`;
|
|
312
|
+
var REQUIRED_CHECKS2 = `rules(${PAGE}) {
|
|
313
|
+
nodes { type parameters { ... on RequiredStatusChecksParameters { requiredStatusChecks { context } } } }
|
|
314
|
+
}`;
|
|
315
|
+
var SNAPSHOT_QUERY = `query($owner: String!, $name: String!, $branch: String!, $after: String) {
|
|
316
|
+
rateLimit { cost remaining }
|
|
317
|
+
repository(owner: $owner, name: $name) {
|
|
318
|
+
pullRequests(headRefName: $branch, first: 1, orderBy: { field: CREATED_AT, direction: DESC }) {
|
|
319
|
+
nodes {
|
|
320
|
+
number isCrossRepository merged mergeStateStatus reviewDecision
|
|
321
|
+
baseRef { ${REQUIRED_CHECKS2} }
|
|
322
|
+
commits(last: 1) { nodes { commit { id oid statusCheckRollup { ${CONTEXTS} } } } }
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}`;
|
|
327
|
+
var CONTEXTS_PAGE_QUERY = `query($id: ID!, $after: String) {
|
|
328
|
+
rateLimit { cost remaining }
|
|
329
|
+
node(id: $id) { ... on Commit { statusCheckRollup { ${CONTEXTS} } } }
|
|
330
|
+
}`;
|
|
331
|
+
var REVIEW_DECISION_QUERY = `query($owner: String!, $name: String!, $number: Int!) {
|
|
332
|
+
repository(owner: $owner, name: $name) { pullRequest(number: $number) { reviewDecision } }
|
|
333
|
+
}`;
|
|
334
|
+
var rate_limit_schema = z4.object({ cost: z4.number(), remaining: z4.number() });
|
|
335
|
+
var database_id_schema = z4.number().nullish();
|
|
336
|
+
var app_schema = z4.looseObject({ databaseId: database_id_schema, slug: z4.string().nullish() }).nullish();
|
|
337
|
+
var check_suite_schema = z4.looseObject({ databaseId: database_id_schema, app: app_schema });
|
|
338
|
+
var check_run_schema = z4.looseObject({
|
|
339
|
+
[TYPE_NAME_KEY]: z4.literal(CHECK_RUN),
|
|
340
|
+
databaseId: database_id_schema,
|
|
341
|
+
name: z4.string(),
|
|
342
|
+
status: z4.string(),
|
|
343
|
+
conclusion: z4.string().nullable(),
|
|
344
|
+
checkSuite: check_suite_schema.nullish()
|
|
345
|
+
});
|
|
346
|
+
var status_context_schema = z4.looseObject({
|
|
347
|
+
[TYPE_NAME_KEY]: z4.literal(STATUS_CONTEXT),
|
|
348
|
+
context: z4.string(),
|
|
349
|
+
state: z4.string(),
|
|
350
|
+
description: z4.string().nullable()
|
|
351
|
+
});
|
|
352
|
+
var context_schema = z4.discriminatedUnion(TYPE_NAME_KEY, [
|
|
353
|
+
check_run_schema,
|
|
354
|
+
status_context_schema
|
|
355
|
+
]);
|
|
356
|
+
var page_info_schema = z4.looseObject({
|
|
357
|
+
hasNextPage: z4.boolean(),
|
|
358
|
+
endCursor: z4.string().nullish()
|
|
359
|
+
});
|
|
360
|
+
var contexts_page_schema = z4.looseObject({
|
|
361
|
+
pageInfo: page_info_schema,
|
|
362
|
+
nodes: z4.array(context_schema)
|
|
363
|
+
});
|
|
364
|
+
var rollup_schema = z4.looseObject({ contexts: contexts_page_schema }).nullable();
|
|
365
|
+
var commit_schema = z4.looseObject({
|
|
366
|
+
id: z4.string(),
|
|
367
|
+
oid: z4.string(),
|
|
368
|
+
statusCheckRollup: rollup_schema
|
|
369
|
+
});
|
|
370
|
+
var commit_node_schema = z4.looseObject({ commit: commit_schema });
|
|
371
|
+
var commits_schema = z4.looseObject({ nodes: z4.array(commit_node_schema) });
|
|
372
|
+
var required_check_schema2 = z4.looseObject({ context: z4.string() });
|
|
373
|
+
var rule_parameters_schema2 = z4.looseObject({
|
|
374
|
+
requiredStatusChecks: z4.array(required_check_schema2).optional()
|
|
375
|
+
});
|
|
376
|
+
var rule_schema = z4.looseObject({
|
|
377
|
+
type: z4.string(),
|
|
378
|
+
parameters: rule_parameters_schema2.nullable()
|
|
379
|
+
});
|
|
380
|
+
var rules_schema = z4.looseObject({ nodes: z4.array(rule_schema) });
|
|
381
|
+
var base_reference_schema = z4.looseObject({ rules: rules_schema });
|
|
382
|
+
var pull_schema = z4.looseObject({
|
|
383
|
+
number: z4.number(),
|
|
384
|
+
isCrossRepository: z4.boolean(),
|
|
385
|
+
merged: z4.boolean(),
|
|
386
|
+
mergeStateStatus: z4.string(),
|
|
387
|
+
reviewDecision: z4.string().nullable(),
|
|
388
|
+
baseRef: base_reference_schema.nullable(),
|
|
389
|
+
commits: commits_schema
|
|
390
|
+
});
|
|
391
|
+
var pull_requests_schema = z4.looseObject({ nodes: z4.array(pull_schema) });
|
|
392
|
+
var snapshot_data_schema = z4.looseObject({
|
|
393
|
+
rateLimit: rate_limit_schema,
|
|
394
|
+
repository: z4.looseObject({ pullRequests: pull_requests_schema })
|
|
395
|
+
});
|
|
396
|
+
var page_data_schema = z4.looseObject({
|
|
397
|
+
rateLimit: rate_limit_schema,
|
|
398
|
+
node: z4.looseObject({ statusCheckRollup: rollup_schema })
|
|
399
|
+
});
|
|
400
|
+
var decision_pull_schema = z4.looseObject({ reviewDecision: z4.string().nullable() });
|
|
401
|
+
var decision_data_schema = z4.looseObject({
|
|
402
|
+
repository: z4.looseObject({ pullRequest: decision_pull_schema })
|
|
403
|
+
});
|
|
404
|
+
var EMPTY_PAGE = { pageInfo: { hasNextPage: false }, nodes: [] };
|
|
405
|
+
var DECISIONS = /* @__PURE__ */ new Set([REVIEW_APPROVED, REVIEW_CHANGES_REQUESTED]);
|
|
406
|
+
async function query_data(query, variables, schema) {
|
|
407
|
+
const json = await git_gh_transport.query({ query, variables });
|
|
408
|
+
if (json === void 0) return void 0;
|
|
409
|
+
return json_value.parse_with(json, z4.looseObject({ data: schema }))?.data;
|
|
410
|
+
}
|
|
411
|
+
function page_of(rollup) {
|
|
412
|
+
return rollup?.contexts ?? EMPTY_PAGE;
|
|
413
|
+
}
|
|
414
|
+
function spent_on(previous, next) {
|
|
415
|
+
return { cost: previous.cost + next.cost, remaining: next.remaining };
|
|
416
|
+
}
|
|
417
|
+
async function read_next_page(commit_id, after) {
|
|
418
|
+
const data = await query_data(CONTEXTS_PAGE_QUERY, { id: commit_id, after }, page_data_schema);
|
|
419
|
+
return data && { page: page_of(data.node.statusCheckRollup), rate_limit: data.rateLimit };
|
|
420
|
+
}
|
|
421
|
+
function joined(page, rest) {
|
|
422
|
+
return rest && { contexts: [...page.nodes, ...rest.contexts], rate_limit: rest.rate_limit };
|
|
423
|
+
}
|
|
424
|
+
async function read_pages_from(commit_id, read2) {
|
|
425
|
+
const { page, rate_limit } = read2;
|
|
426
|
+
if (!page.pageInfo.hasNextPage) return { contexts: page.nodes, rate_limit };
|
|
427
|
+
const next = await read_next_page(commit_id, page.pageInfo.endCursor);
|
|
428
|
+
if (next === void 0) return void 0;
|
|
429
|
+
const spent = spent_on(rate_limit, next.rate_limit);
|
|
430
|
+
return joined(page, await read_pages_from(commit_id, { page: next.page, rate_limit: spent }));
|
|
431
|
+
}
|
|
432
|
+
function lower_case_of(value) {
|
|
433
|
+
return value === null ? value : value.toLowerCase();
|
|
434
|
+
}
|
|
435
|
+
function to_rest_context(context) {
|
|
436
|
+
if (context.__typename === STATUS_CONTEXT) {
|
|
437
|
+
const { context: name2, state, description } = context;
|
|
438
|
+
return {
|
|
439
|
+
[TYPE_NAME_KEY]: STATUS_CONTEXT,
|
|
440
|
+
context: name2,
|
|
441
|
+
state: state.toLowerCase(),
|
|
442
|
+
description
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
const { name, status, conclusion } = context;
|
|
446
|
+
return { name, status: status.toLowerCase(), conclusion: lower_case_of(conclusion) };
|
|
447
|
+
}
|
|
448
|
+
function id_holder_of(database_id) {
|
|
449
|
+
return database_id === null || database_id === void 0 ? void 0 : { id: database_id };
|
|
450
|
+
}
|
|
451
|
+
function to_rest_app(app) {
|
|
452
|
+
if (app === null || app === void 0) return void 0;
|
|
453
|
+
const holder = id_holder_of(app.databaseId);
|
|
454
|
+
if (holder === void 0) return void 0;
|
|
455
|
+
return { ...holder, slug: app.slug ?? void 0 };
|
|
456
|
+
}
|
|
457
|
+
function to_rest_ids(context) {
|
|
458
|
+
if (context.__typename === STATUS_CONTEXT) return {};
|
|
459
|
+
const suite = context.checkSuite;
|
|
460
|
+
return {
|
|
461
|
+
...id_holder_of(context.databaseId),
|
|
462
|
+
check_suite: id_holder_of(suite?.databaseId),
|
|
463
|
+
app: to_rest_app(suite?.app)
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
function to_rest_rollup(contexts) {
|
|
467
|
+
const check_runs = contexts.filter((context) => context.__typename === CHECK_RUN).map((context) => ({ ...to_rest_ids(context), ...to_rest_context(context) }));
|
|
468
|
+
const statuses = contexts.filter((context) => context.__typename === STATUS_CONTEXT).map((context) => to_rest_context(context));
|
|
469
|
+
return [...git_gh_pr_rollup.newest_check_runs(check_runs), ...statuses];
|
|
470
|
+
}
|
|
471
|
+
function to_required_contexts2(base_reference) {
|
|
472
|
+
return (base_reference?.rules.nodes ?? []).filter((rule) => rule.type === REQUIRED_STATUS_CHECKS).flatMap((rule) => rule.parameters?.requiredStatusChecks ?? []).map((check) => check.context);
|
|
473
|
+
}
|
|
474
|
+
function to_review_decision2(decision) {
|
|
475
|
+
if (decision === null) return void 0;
|
|
476
|
+
return DECISIONS.has(decision) ? decision : REVIEW_NONE;
|
|
477
|
+
}
|
|
478
|
+
function to_checks_fields(pull, head_sha, contexts) {
|
|
479
|
+
return {
|
|
480
|
+
statusCheckRollup: to_rest_rollup(contexts),
|
|
481
|
+
mergeStateStatus: pull.mergeStateStatus,
|
|
482
|
+
headRefOid: head_sha,
|
|
483
|
+
requiredContexts: to_required_contexts2(pull.baseRef),
|
|
484
|
+
...pull.merged && { merged: true }
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
async function query_pull(variables) {
|
|
488
|
+
const data = await query_data(SNAPSHOT_QUERY, variables, snapshot_data_schema);
|
|
489
|
+
if (data === void 0) return void 0;
|
|
490
|
+
const [pull] = data.repository.pullRequests.nodes;
|
|
491
|
+
if (pull === void 0 || pull.isCrossRepository) return void 0;
|
|
492
|
+
return { pull, rate_limit: data.rateLimit };
|
|
493
|
+
}
|
|
494
|
+
async function read_pull2(branch_name) {
|
|
495
|
+
const repository = git_gh_issue_graphql.repository_variables_of();
|
|
496
|
+
if (repository === void 0) return void 0;
|
|
497
|
+
return await query_pull({ ...repository, branch: branch_name });
|
|
498
|
+
}
|
|
499
|
+
async function read_head_snapshot(answered) {
|
|
500
|
+
const { pull, rate_limit } = answered;
|
|
501
|
+
const [node] = pull.commits.nodes;
|
|
502
|
+
if (node === void 0) return void 0;
|
|
503
|
+
const { id, oid, statusCheckRollup: rollup } = node.commit;
|
|
504
|
+
const read2 = await read_pages_from(id, { page: page_of(rollup), rate_limit });
|
|
505
|
+
if (read2 === void 0) return void 0;
|
|
506
|
+
return {
|
|
507
|
+
pr_number: pull.number,
|
|
508
|
+
fields: to_checks_fields(pull, oid, read2.contexts),
|
|
509
|
+
review_decision: to_review_decision2(pull.reviewDecision),
|
|
510
|
+
rate_limit: read2.rate_limit
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
async function read_snapshot(branch_name) {
|
|
514
|
+
const answered = await read_pull2(branch_name);
|
|
515
|
+
return answered && await read_head_snapshot(answered);
|
|
516
|
+
}
|
|
517
|
+
async function read_review_decision(pr_number) {
|
|
518
|
+
const repository = git_gh_issue_graphql.repository_variables_of();
|
|
519
|
+
if (repository === void 0) return void 0;
|
|
520
|
+
const variables = { ...repository, number: pr_number };
|
|
521
|
+
const data = await query_data(REVIEW_DECISION_QUERY, variables, decision_data_schema);
|
|
522
|
+
return data && to_review_decision2(data.repository.pullRequest.reviewDecision);
|
|
523
|
+
}
|
|
524
|
+
var git_gh_pr_graphql_snapshot = { read_snapshot, read_review_decision };
|
|
525
|
+
|
|
526
|
+
// scripts/gh/git-gh-pr-graphql-state.ts
|
|
527
|
+
import { z as z5 } from "zod";
|
|
528
|
+
var MERGE_STATE_QUERY = "query($id: ID!) { node(id: $id) { ... on PullRequest { mergeStateStatus } } }";
|
|
529
|
+
var NO_MERGE_STATE_MESSAGE = "The merge state cannot be judged: GitHub refuses this pull request as too many files changed, and GraphQL did not answer its mergeStateStatus";
|
|
530
|
+
var merge_state_node_schema = z5.looseObject({ mergeStateStatus: z5.string() });
|
|
531
|
+
var merge_state_data_schema = z5.looseObject({ node: merge_state_node_schema });
|
|
532
|
+
var merge_state_response_schema = z5.looseObject({ data: merge_state_data_schema });
|
|
533
|
+
async function try_read_merge_state(node_id) {
|
|
534
|
+
if (node_id === void 0) return void 0;
|
|
535
|
+
const json = await git_gh_transport.query({
|
|
536
|
+
query: MERGE_STATE_QUERY,
|
|
537
|
+
variables: { id: node_id }
|
|
538
|
+
});
|
|
539
|
+
if (json === void 0) return void 0;
|
|
540
|
+
return json_value.parse_with(json, merge_state_response_schema)?.data.node.mergeStateStatus;
|
|
541
|
+
}
|
|
542
|
+
async function read_merge_state_status(listed, detail_error) {
|
|
543
|
+
const state = await try_read_merge_state(listed.node_id);
|
|
544
|
+
if (state === void 0) throw new Error(NO_MERGE_STATE_MESSAGE, { cause: detail_error });
|
|
545
|
+
return state;
|
|
546
|
+
}
|
|
547
|
+
var git_gh_pr_graphql_state = { read_merge_state_status, try_read_merge_state };
|
|
548
|
+
|
|
549
|
+
// scripts/gh/git-gh-pr-snapshot.ts
|
|
550
|
+
var NO_HEAD_SHA_MESSAGE = "gh api answered a pull request with no head commit";
|
|
551
|
+
function read_head_sha(pull) {
|
|
552
|
+
const sha = pull.head?.sha;
|
|
553
|
+
if (sha === void 0) throw new Error(NO_HEAD_SHA_MESSAGE);
|
|
554
|
+
return sha;
|
|
555
|
+
}
|
|
556
|
+
async function read_status_check_rollup(commit_sha) {
|
|
557
|
+
const [check_runs_json, status_json] = await Promise.all([
|
|
558
|
+
git_gh_poll_read.read_object_pages(git_gh_api_path.commit_check_runs_api_path(commit_sha)),
|
|
559
|
+
git_gh_poll_read.read_object_pages(git_gh_api_path.commit_status_api_path(commit_sha))
|
|
560
|
+
]);
|
|
561
|
+
return git_gh_pr_rollup.to_status_check_rollup({ check_runs_json, status_json });
|
|
562
|
+
}
|
|
563
|
+
async function read_rest_review_decision(pr_number) {
|
|
564
|
+
const path = git_gh_api_path.pull_reviews_api_path(String(pr_number));
|
|
565
|
+
return git_gh_pr_review.to_review_decision(await git_gh_poll_read.read_array_pages(path));
|
|
566
|
+
}
|
|
567
|
+
async function pr_get_review_decision(pr_number) {
|
|
568
|
+
const graphql_decision = await git_gh_pr_graphql_snapshot.read_review_decision(pr_number);
|
|
569
|
+
return graphql_decision ?? await read_rest_review_decision(pr_number);
|
|
570
|
+
}
|
|
571
|
+
async function build_checks_fields(pull) {
|
|
572
|
+
const head_sha = read_head_sha(pull);
|
|
573
|
+
const [rollup, required_contexts] = await Promise.all([
|
|
574
|
+
read_status_check_rollup(head_sha),
|
|
575
|
+
git_gh_branch_rules.read_required_contexts(pull.base?.ref)
|
|
576
|
+
]);
|
|
577
|
+
return {
|
|
578
|
+
statusCheckRollup: rollup,
|
|
579
|
+
mergeStateStatus: to_gh_state(pull.mergeable_state),
|
|
580
|
+
headRefOid: head_sha,
|
|
581
|
+
requiredContexts: required_contexts,
|
|
582
|
+
...git_gh_pr_rest.is_merged(pull) && { merged: true }
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
async function read_polled_pull(pr_number) {
|
|
586
|
+
const polled = await git_gh_poll_read.read_detail(
|
|
587
|
+
git_gh_api_path.pull_api_path(String(pr_number))
|
|
588
|
+
);
|
|
589
|
+
if (polled === void 0) return await read_pull(pr_number);
|
|
590
|
+
const pull = git_gh_pr_rest.parse_rest_pull(polled.body);
|
|
591
|
+
if (!polled.is_unchanged) return pull;
|
|
592
|
+
const state = await git_gh_pr_graphql_state.try_read_merge_state(pull.node_id);
|
|
593
|
+
return state === void 0 ? await read_pull(pr_number) : { ...pull, mergeable_state: state };
|
|
594
|
+
}
|
|
595
|
+
async function read_detail_or_listed(branch_name, pr_number) {
|
|
596
|
+
try {
|
|
597
|
+
return await read_polled_pull(pr_number);
|
|
598
|
+
} catch (error) {
|
|
599
|
+
const listed = await read_listed_pull(error, branch_name, pr_number);
|
|
600
|
+
if (listed === void 0) throw error;
|
|
601
|
+
const state = await git_gh_pr_graphql_state.read_merge_state_status(listed, error);
|
|
602
|
+
return { ...listed, mergeable_state: state };
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
async function resolve_pull(branch_name) {
|
|
606
|
+
const pr_number = await require_pr_number(branch_name);
|
|
607
|
+
return { pr_number, pull: await read_detail_or_listed(branch_name, pr_number) };
|
|
608
|
+
}
|
|
609
|
+
async function pr_get_checks_snapshot(branch_name) {
|
|
610
|
+
const graphql = await git_gh_pr_graphql_snapshot.read_snapshot(branch_name);
|
|
611
|
+
if (graphql !== void 0) {
|
|
612
|
+
return {
|
|
613
|
+
pr_number: graphql.pr_number,
|
|
614
|
+
snapshot_json: JSON.stringify(graphql.fields),
|
|
615
|
+
graphql: { review_decision: graphql.review_decision }
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
const { pr_number, pull } = await resolve_pull(branch_name);
|
|
619
|
+
return { pr_number, snapshot_json: JSON.stringify(await build_checks_fields(pull)) };
|
|
620
|
+
}
|
|
621
|
+
async function graphql_or_rest_decision(decision, pr_number) {
|
|
622
|
+
return decision ?? await read_rest_review_decision(pr_number);
|
|
623
|
+
}
|
|
624
|
+
async function pr_read_review_decision(checks) {
|
|
625
|
+
if (checks.graphql === void 0) return await pr_get_review_decision(checks.pr_number);
|
|
626
|
+
return await graphql_or_rest_decision(checks.graphql.review_decision, checks.pr_number);
|
|
627
|
+
}
|
|
628
|
+
async function pr_get_state_snapshot(branch_name) {
|
|
629
|
+
const graphql = await git_gh_pr_graphql_snapshot.read_snapshot(branch_name);
|
|
630
|
+
if (graphql !== void 0) {
|
|
631
|
+
const review_decision2 = await graphql_or_rest_decision(
|
|
632
|
+
graphql.review_decision,
|
|
633
|
+
graphql.pr_number
|
|
634
|
+
);
|
|
635
|
+
return JSON.stringify({ ...graphql.fields, reviewDecision: review_decision2 });
|
|
636
|
+
}
|
|
637
|
+
const { pr_number, pull } = await resolve_pull(branch_name);
|
|
638
|
+
const [fields, review_decision] = await Promise.all([
|
|
639
|
+
build_checks_fields(pull),
|
|
640
|
+
pr_get_review_decision(pr_number)
|
|
641
|
+
]);
|
|
642
|
+
return JSON.stringify({ ...fields, reviewDecision: review_decision });
|
|
643
|
+
}
|
|
644
|
+
var git_gh_pr_snapshot = {
|
|
645
|
+
pr_get_state_snapshot,
|
|
646
|
+
pr_get_checks_snapshot,
|
|
647
|
+
pr_get_review_decision,
|
|
648
|
+
pr_read_review_decision
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
// scripts/gh/git-gh-pr.ts
|
|
652
|
+
var HTML_URL_FILTER = ".html_url";
|
|
653
|
+
var PUT_METHOD = "PUT";
|
|
654
|
+
var PATCH_METHOD = "PATCH";
|
|
655
|
+
var MERGE_COMMIT_METHOD = "merge";
|
|
656
|
+
var MERGE_REQUEST_TIMEOUT_MS = 18e4;
|
|
657
|
+
var MERGE_UNCONFIRMED_MESSAGE = "gh api could not read the pull request back after the merge request failed";
|
|
658
|
+
var MERGE_READ_BACK_ATTEMPTS = 3;
|
|
659
|
+
var MERGE_READ_BACK_INTERVAL_MS = 1e3;
|
|
660
|
+
var MERGE_IN_PROGRESS_MESSAGE = "Merge already in progress";
|
|
661
|
+
var MERGE_IN_PROGRESS_ATTEMPTS = 30;
|
|
662
|
+
var MERGE_IN_PROGRESS_INTERVAL_MS = 2e3;
|
|
663
|
+
var HEAD_MOVED_STATUS = 409;
|
|
664
|
+
var PR_NUMBER_PATTERN = /\/pull\/([1-9]\d*)$/u;
|
|
665
|
+
async function add_pr_classification(number, label) {
|
|
666
|
+
const write = await git_gh_issue_write.issue_apply_label(number, label);
|
|
667
|
+
if (!write.is_applied) throw new Error(write.reason);
|
|
668
|
+
}
|
|
669
|
+
async function pr_get_classification(branch_name) {
|
|
670
|
+
const number = await require_pr_number(branch_name);
|
|
671
|
+
const labels = await git_gh_issue_write.read_label_names(String(number));
|
|
672
|
+
if (labels === void 0) throw new Error(`Unreadable labels on branch ${branch_name}`);
|
|
673
|
+
const names = labels.map((name) => name.toLowerCase());
|
|
674
|
+
const selected = names.filter((name) => pr_classification.is_classification(name));
|
|
675
|
+
if (selected.length === 0) return void 0;
|
|
676
|
+
const error = pr_classification.classification_error(names, "human");
|
|
677
|
+
if (error !== void 0) throw new Error(error);
|
|
678
|
+
return selected[0];
|
|
679
|
+
}
|
|
680
|
+
async function pr_ensure_classification(branch_name, label) {
|
|
681
|
+
if (await pr_get_classification(branch_name) !== void 0) return;
|
|
682
|
+
const number = await require_pr_number(branch_name);
|
|
683
|
+
await add_pr_classification(String(number), label);
|
|
684
|
+
}
|
|
685
|
+
async function post_pull_request(title, body) {
|
|
686
|
+
const base = await git_command.get_default_branch();
|
|
687
|
+
const head = await git_command.branch();
|
|
688
|
+
forget_pr_numbers();
|
|
689
|
+
try {
|
|
690
|
+
return await git_gh_exec.exec_gh_api({
|
|
691
|
+
path: git_gh_api_path.pulls_api_path(),
|
|
692
|
+
body: JSON.stringify({ title, body, head, base }),
|
|
693
|
+
jq_filter: HTML_URL_FILTER
|
|
694
|
+
});
|
|
695
|
+
} catch (error) {
|
|
696
|
+
return git_gh_helpers.handle_pr_create_error(error);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
async function pr_create(title, body, label) {
|
|
700
|
+
const classification_error = pr_classification.classification_error([label], "human");
|
|
701
|
+
if (classification_error !== void 0) throw new Error(classification_error);
|
|
702
|
+
const url = await post_pull_request(title, body);
|
|
703
|
+
const number = PR_NUMBER_PATTERN.exec(url)?.[1];
|
|
704
|
+
if (number === void 0) throw new Error(`Could not identify the created pull request: ${url}`);
|
|
705
|
+
await add_pr_classification(number, label);
|
|
706
|
+
return url;
|
|
707
|
+
}
|
|
708
|
+
async function pr_comment(branch_name, body) {
|
|
709
|
+
const pr_number = await require_pr_number(branch_name);
|
|
710
|
+
return await git_gh_issue_write.issue_comment(String(pr_number), body);
|
|
711
|
+
}
|
|
712
|
+
async function pr_update_body(branch_name, body) {
|
|
713
|
+
const pr_number = await require_pr_number(branch_name);
|
|
714
|
+
forget_pr_numbers();
|
|
715
|
+
await git_gh_exec.exec_gh_api({
|
|
716
|
+
path: git_gh_api_path.pull_api_path(String(pr_number)),
|
|
717
|
+
method: PATCH_METHOD,
|
|
718
|
+
body: JSON.stringify({ body })
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
async function put_merge(pr_number, head_sha) {
|
|
722
|
+
forget_pr_numbers();
|
|
723
|
+
await git_gh_exec.exec_gh_api({
|
|
724
|
+
path: git_gh_api_path.pull_merge_api_path(String(pr_number)),
|
|
725
|
+
method: PUT_METHOD,
|
|
726
|
+
body: JSON.stringify({ merge_method: MERGE_COMMIT_METHOD, sha: head_sha }),
|
|
727
|
+
timeout_ms: MERGE_REQUEST_TIMEOUT_MS,
|
|
728
|
+
should_retry: false
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
function is_head_moved(error) {
|
|
732
|
+
return gh_failure.failure_of(error)?.status === HEAD_MOVED_STATUS;
|
|
733
|
+
}
|
|
734
|
+
async function read_merge_state(branch_name, pr_number) {
|
|
735
|
+
try {
|
|
736
|
+
return git_gh_pr_rest.is_merged(await read_pull_or_listed(branch_name, pr_number, read_pull));
|
|
737
|
+
} catch (error) {
|
|
738
|
+
console.warn(`Could not read the pull request back: ${String(error)}`);
|
|
739
|
+
return void 0;
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
function is_merge_in_progress(error) {
|
|
743
|
+
return error instanceof Error && error.message.includes(MERGE_IN_PROGRESS_MESSAGE);
|
|
744
|
+
}
|
|
745
|
+
async function has_in_progress_merge_landed(branch_name, pr_number) {
|
|
746
|
+
return await poll.poll_until(
|
|
747
|
+
async () => await read_merge_state(branch_name, pr_number) === true,
|
|
748
|
+
{ attempts: MERGE_IN_PROGRESS_ATTEMPTS, interval_ms: MERGE_IN_PROGRESS_INTERVAL_MS }
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
async function has_merge_landed(branch_name, pr_number, merge_error) {
|
|
752
|
+
if (is_merge_in_progress(merge_error)) {
|
|
753
|
+
return await has_in_progress_merge_landed(branch_name, pr_number);
|
|
754
|
+
}
|
|
755
|
+
const is_merged = await poll.poll_for(
|
|
756
|
+
async () => await read_merge_state(branch_name, pr_number),
|
|
757
|
+
{ attempts: MERGE_READ_BACK_ATTEMPTS, interval_ms: MERGE_READ_BACK_INTERVAL_MS }
|
|
758
|
+
);
|
|
759
|
+
if (is_merged !== void 0) return is_merged;
|
|
760
|
+
throw new Error(MERGE_UNCONFIRMED_MESSAGE, { cause: merge_error });
|
|
761
|
+
}
|
|
762
|
+
async function merge_with_confirmation(branch_name, pr_number, head_sha) {
|
|
763
|
+
try {
|
|
764
|
+
await put_merge(pr_number, head_sha);
|
|
765
|
+
} catch (error) {
|
|
766
|
+
if (!await has_merge_landed(branch_name, pr_number, error)) throw error;
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
async function pr_merge(branch_name, head_sha) {
|
|
770
|
+
const pr_number = await require_pr_number(branch_name);
|
|
771
|
+
await gh_retry.with_retry(async () => {
|
|
772
|
+
await merge_with_confirmation(branch_name, pr_number, head_sha);
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
var git_gh_pr = {
|
|
776
|
+
...git_gh_pr_read,
|
|
777
|
+
...git_gh_pr_snapshot,
|
|
778
|
+
pr_create,
|
|
779
|
+
pr_get_classification,
|
|
780
|
+
pr_ensure_classification,
|
|
781
|
+
pr_comment,
|
|
782
|
+
pr_merge,
|
|
783
|
+
pr_update_body,
|
|
784
|
+
is_head_moved
|
|
785
|
+
};
|
|
786
|
+
|
|
787
|
+
// scripts/gh/git-gh-pr-auto-merge.ts
|
|
788
|
+
var OPEN_PULLS_QUERY = `${git_gh_api_path.FULL_PAGE_QUERY}&state=open`;
|
|
789
|
+
var MISSING_NODE_ID_MESSAGE = "gh api answered a pull request without a node_id";
|
|
790
|
+
var ENABLE_AUTO_MERGE_MUTATION = "mutation($id: ID!, $head: GitObjectID!) { enablePullRequestAutoMerge(input: { pullRequestId: $id, mergeMethod: MERGE, expectedHeadOid: $head }) { clientMutationId } }";
|
|
791
|
+
async function read_branch_pull(branch_name) {
|
|
792
|
+
return await read_pull_or_listed(branch_name, await require_pr_number(branch_name), read_pull);
|
|
793
|
+
}
|
|
794
|
+
async function pr_enable_auto_merge(branch_name, head_sha) {
|
|
795
|
+
const pull = await read_branch_pull(branch_name);
|
|
796
|
+
if (pull.node_id === void 0) throw new Error(MISSING_NODE_ID_MESSAGE);
|
|
797
|
+
await git_gh_exec.exec_gh_api({
|
|
798
|
+
path: GRAPHQL_PATH,
|
|
799
|
+
body: JSON.stringify({
|
|
800
|
+
query: ENABLE_AUTO_MERGE_MUTATION,
|
|
801
|
+
variables: { id: pull.node_id, head: head_sha }
|
|
802
|
+
})
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
async function pr_is_merged(branch_name) {
|
|
806
|
+
try {
|
|
807
|
+
return git_gh_pr_rest.is_merged(await read_branch_pull(branch_name));
|
|
808
|
+
} catch (error) {
|
|
809
|
+
error_text.trace_swallowed("git_gh_pr_auto_merge.pr_is_merged", error);
|
|
810
|
+
return false;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
function head_reference_of(pull) {
|
|
814
|
+
return pull.head?.ref ?? "";
|
|
815
|
+
}
|
|
816
|
+
function has_head_prefix(pull, prefix) {
|
|
817
|
+
return git_gh_pr_rest.is_same_repository_head(pull) && head_reference_of(pull).startsWith(prefix);
|
|
818
|
+
}
|
|
819
|
+
function to_open_pull(pull) {
|
|
820
|
+
return {
|
|
821
|
+
number: pull.number,
|
|
822
|
+
head_ref: head_reference_of(pull),
|
|
823
|
+
has_auto_merge: pull.auto_merge !== null && pull.auto_merge !== void 0
|
|
824
|
+
};
|
|
825
|
+
}
|
|
826
|
+
async function pr_list_open_with_head_prefix(prefix) {
|
|
827
|
+
const json = await git_gh_exec.exec_gh_api({
|
|
828
|
+
path: `${git_gh_api_path.pulls_api_path()}${OPEN_PULLS_QUERY}`,
|
|
829
|
+
should_paginate: true
|
|
830
|
+
});
|
|
831
|
+
return git_gh_pr_rest.parse_rest_pulls(json).filter((pull) => has_head_prefix(pull, prefix)).map((pull) => to_open_pull(pull));
|
|
832
|
+
}
|
|
833
|
+
var git_gh_pr_auto_merge = {
|
|
834
|
+
pr_enable_auto_merge,
|
|
835
|
+
pr_is_merged,
|
|
836
|
+
pr_list_open_with_head_prefix
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
// scripts/gh/git-pr-checks-gate.ts
|
|
840
|
+
var MERGE_STATE_UNKNOWN = "UNKNOWN";
|
|
841
|
+
function probe_paths(branch_name) {
|
|
842
|
+
const reference = encodeURIComponent(branch_name);
|
|
843
|
+
return [
|
|
844
|
+
`${git_gh_api_path.commit_check_runs_api_path(reference)}${FULL_PAGE_QUERY}`,
|
|
845
|
+
git_gh_api_path.commit_status_api_path(reference)
|
|
846
|
+
];
|
|
847
|
+
}
|
|
848
|
+
function next_etag(read2, previous) {
|
|
849
|
+
if (read2.kind === "unchanged") return previous;
|
|
850
|
+
return read2.kind === "changed" ? read2.etag : void 0;
|
|
851
|
+
}
|
|
852
|
+
async function probe_head(branch_name, etags) {
|
|
853
|
+
const reads = await Promise.all(
|
|
854
|
+
probe_paths(branch_name).map(async (path) => ({
|
|
855
|
+
path,
|
|
856
|
+
read: await git_gh_conditional.read_conditional(path, etags.get(path))
|
|
857
|
+
}))
|
|
858
|
+
);
|
|
859
|
+
return {
|
|
860
|
+
is_unchanged: reads.every(({ read: read2 }) => read2.kind === "unchanged"),
|
|
861
|
+
etags: new Map(reads.map(({ path, read: read2 }) => [path, next_etag(read2, etags.get(path))]))
|
|
862
|
+
};
|
|
863
|
+
}
|
|
864
|
+
function is_merge_state_known(snapshot) {
|
|
865
|
+
const status = snapshot.merge_state_status;
|
|
866
|
+
return status !== void 0 && status.toUpperCase() !== MERGE_STATE_UNKNOWN;
|
|
867
|
+
}
|
|
868
|
+
function is_ci_running(snapshot) {
|
|
869
|
+
return snapshot.rollup.some((check) => check.status === CHECK_STATUS_PENDING);
|
|
870
|
+
}
|
|
871
|
+
function can_reuse(snapshot, should_read) {
|
|
872
|
+
return is_ci_running(snapshot) && is_merge_state_known(snapshot) && !should_read(snapshot);
|
|
873
|
+
}
|
|
874
|
+
function reusable(last, should_read) {
|
|
875
|
+
return last !== void 0 && can_reuse(last, should_read) ? last : void 0;
|
|
876
|
+
}
|
|
877
|
+
function gate_fetcher(inner) {
|
|
878
|
+
const state = { last: void 0, etags: /* @__PURE__ */ new Map() };
|
|
879
|
+
return async function fetch_gated(branch_name, should_read_review_decision) {
|
|
880
|
+
const probe = await probe_head(branch_name, state.etags);
|
|
881
|
+
const reused = probe.is_unchanged ? reusable(state.last, should_read_review_decision) : void 0;
|
|
882
|
+
if (reused !== void 0) return reused;
|
|
883
|
+
const snapshot = await inner(branch_name, should_read_review_decision);
|
|
884
|
+
Object.assign(state, { last: snapshot, etags: probe.etags });
|
|
885
|
+
return snapshot;
|
|
886
|
+
};
|
|
887
|
+
}
|
|
888
|
+
var git_pr_checks_gate = { gate_fetcher };
|
|
889
|
+
|
|
890
|
+
// scripts/gh/git-pr-checks.ts
|
|
891
|
+
var SECONDS_TO_MS = 1e3;
|
|
892
|
+
var CHECK_WAIT_INTERVAL_MS = 2e4;
|
|
893
|
+
var DEFAULT_TIMEOUT_SECONDS = 1920;
|
|
894
|
+
function compute_max_attempts(timeout_seconds, interval_ms) {
|
|
895
|
+
return Math.ceil(timeout_seconds / (interval_ms / SECONDS_TO_MS)) + 1;
|
|
896
|
+
}
|
|
897
|
+
var DEFAULT_MAX_ATTEMPTS = compute_max_attempts(DEFAULT_TIMEOUT_SECONDS, CHECK_WAIT_INTERVAL_MS);
|
|
898
|
+
function get_configured_max_attempts() {
|
|
899
|
+
const environment_seconds = Number(process.env["JOSH_CI_TIMEOUT_SECONDS"]);
|
|
900
|
+
return Number.isFinite(environment_seconds) && environment_seconds > 0 ? compute_max_attempts(environment_seconds, CHECK_WAIT_INTERVAL_MS) : DEFAULT_MAX_ATTEMPTS;
|
|
901
|
+
}
|
|
902
|
+
var CHECK_MAX_ATTEMPTS = get_configured_max_attempts();
|
|
903
|
+
var DEFAULT_STABLE_READS = 2;
|
|
904
|
+
var WATCH_CONFIRMED_STABLE_READS = 1;
|
|
905
|
+
var MAX_CONSECUTIVE_READ_FAILURES = 3;
|
|
906
|
+
var PR_CHECKS_TIMEOUT_MESSAGE = "Timed out while waiting for PR checks to complete.";
|
|
907
|
+
function is_pr_checks_timeout(error) {
|
|
908
|
+
return error instanceof Error && error.message === PR_CHECKS_TIMEOUT_MESSAGE;
|
|
909
|
+
}
|
|
910
|
+
function should_always_read_review_decision() {
|
|
911
|
+
return true;
|
|
912
|
+
}
|
|
913
|
+
var MERGE_GATE_EVALUATOR = {
|
|
914
|
+
evaluate: evaluate_pr_state,
|
|
915
|
+
describe: describe_pr_failure,
|
|
916
|
+
should_read_review_decision: is_review_decision_decisive
|
|
917
|
+
};
|
|
918
|
+
function advance_stable_count(previous, state) {
|
|
919
|
+
return state === "success" ? previous + 1 : 0;
|
|
920
|
+
}
|
|
921
|
+
function failure_error(message, snapshot) {
|
|
922
|
+
if (is_merge_conflict(snapshot.merge_state_status)) return new PrConflictError(message);
|
|
923
|
+
return missing_context_error(message, snapshot) ?? new Error(message);
|
|
924
|
+
}
|
|
925
|
+
function classify_poll_result(input) {
|
|
926
|
+
const state = input.evaluator.evaluate(input.snapshot);
|
|
927
|
+
if (state === "failure") {
|
|
928
|
+
throw failure_error(input.evaluator.describe(input.snapshot), input.snapshot);
|
|
929
|
+
}
|
|
930
|
+
const next_stable_count = advance_stable_count(input.stable_count, state);
|
|
931
|
+
return {
|
|
932
|
+
is_done: next_stable_count >= input.required_stable_reads,
|
|
933
|
+
next_stable_count
|
|
934
|
+
};
|
|
935
|
+
}
|
|
936
|
+
async function read_pr_state(input, evaluator) {
|
|
937
|
+
try {
|
|
938
|
+
const snapshot = await input.options.fetcher(
|
|
939
|
+
input.options.branch_name,
|
|
940
|
+
evaluator.should_read_review_decision ?? should_always_read_review_decision
|
|
941
|
+
);
|
|
942
|
+
return { kind: "read", snapshot };
|
|
943
|
+
} catch (error) {
|
|
944
|
+
return { kind: "unreadable", cause: error };
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
function retry_after_unreadable(input, cause) {
|
|
948
|
+
const next_failure_count = input.failure_count + 1;
|
|
949
|
+
if (next_failure_count >= MAX_CONSECUTIVE_READ_FAILURES) throw cause;
|
|
950
|
+
console.warn(
|
|
951
|
+
`Could not read the PR state (${String(next_failure_count)}/${String(MAX_CONSECUTIVE_READ_FAILURES)}); asking again on the next poll: ${String(cause)}`
|
|
952
|
+
);
|
|
953
|
+
return { next_stable_count: 0, next_failure_count, read_failure: cause };
|
|
954
|
+
}
|
|
955
|
+
function timeout_error(last_snapshot) {
|
|
956
|
+
const cause = last_snapshot && blocked_cause(last_snapshot, REQUIRED_CHECKS);
|
|
957
|
+
return cause === void 0 ? new Error(PR_CHECKS_TIMEOUT_MESSAGE) : new Error(PR_CHECKS_TIMEOUT_MESSAGE, { cause });
|
|
958
|
+
}
|
|
959
|
+
function to_exhaustion_error(carried) {
|
|
960
|
+
return carried.read_failure ?? timeout_error(carried.last_snapshot);
|
|
961
|
+
}
|
|
962
|
+
async function attempt_pr_success_poll(input) {
|
|
963
|
+
const evaluator = input.options.evaluator ?? MERGE_GATE_EVALUATOR;
|
|
964
|
+
const read2 = await read_pr_state(input, evaluator);
|
|
965
|
+
if (read2.kind === "unreadable") return retry_after_unreadable(input, read2.cause);
|
|
966
|
+
const classification = classify_poll_result({
|
|
967
|
+
snapshot: read2.snapshot,
|
|
968
|
+
stable_count: input.stable_count,
|
|
969
|
+
required_stable_reads: input.options.required_stable_reads,
|
|
970
|
+
evaluator
|
|
971
|
+
});
|
|
972
|
+
if (classification.is_done) {
|
|
973
|
+
return { snapshot: read2.snapshot, next_stable_count: 0, next_failure_count: 0 };
|
|
974
|
+
}
|
|
975
|
+
return {
|
|
976
|
+
next_stable_count: classification.next_stable_count,
|
|
977
|
+
next_failure_count: 0,
|
|
978
|
+
last_snapshot: read2.snapshot
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
function pr_poll_options(options, progress) {
|
|
982
|
+
const cadence = { attempts: options.max_attempts, interval_ms: options.interval_ms };
|
|
983
|
+
if (options.backoff === void 0) return cadence;
|
|
984
|
+
function seen() {
|
|
985
|
+
return JSON.stringify({ last: progress.carried.last_snapshot });
|
|
986
|
+
}
|
|
987
|
+
return { ...cadence, backoff: { schedule: options.backoff, seen } };
|
|
988
|
+
}
|
|
989
|
+
async function wait_for_pr_success(options) {
|
|
990
|
+
const progress = {
|
|
991
|
+
carried: { next_stable_count: 0, next_failure_count: 0 }
|
|
992
|
+
};
|
|
993
|
+
let attempt = 0;
|
|
994
|
+
const snapshot = await poll.poll_for(
|
|
995
|
+
async () => {
|
|
996
|
+
attempt += 1;
|
|
997
|
+
console.info(`Checking PR status\u2026 (read ${String(attempt)})`);
|
|
998
|
+
await options.before_poll?.();
|
|
999
|
+
const carried = await attempt_pr_success_poll({
|
|
1000
|
+
options,
|
|
1001
|
+
stable_count: progress.carried.next_stable_count,
|
|
1002
|
+
failure_count: progress.carried.next_failure_count
|
|
1003
|
+
});
|
|
1004
|
+
Object.assign(progress, { carried });
|
|
1005
|
+
return carried.snapshot;
|
|
1006
|
+
},
|
|
1007
|
+
pr_poll_options(options, progress)
|
|
1008
|
+
);
|
|
1009
|
+
if (snapshot !== void 0) return snapshot;
|
|
1010
|
+
throw to_exhaustion_error(progress.carried);
|
|
1011
|
+
}
|
|
1012
|
+
async function default_fetch_pr_state(branch_name, should_read_review_decision = should_always_read_review_decision) {
|
|
1013
|
+
const checks = await git_gh_pr_snapshot.pr_get_checks_snapshot(branch_name);
|
|
1014
|
+
const snapshot = parse_pr_state_snapshot(checks.snapshot_json);
|
|
1015
|
+
if (!should_read_review_decision(snapshot)) return snapshot;
|
|
1016
|
+
const decision = await git_gh_pr_snapshot.pr_read_review_decision(checks);
|
|
1017
|
+
return { ...snapshot, review_decision: read_string(decision) };
|
|
1018
|
+
}
|
|
1019
|
+
function observed_fetcher(observe) {
|
|
1020
|
+
const fetch_gated = git_pr_checks_gate.gate_fetcher(default_fetch_pr_state);
|
|
1021
|
+
if (observe === void 0) return fetch_gated;
|
|
1022
|
+
return async function fetch_observed(branch_name, should_read_review_decision) {
|
|
1023
|
+
const snapshot = await fetch_gated(branch_name, should_read_review_decision);
|
|
1024
|
+
await observe(snapshot);
|
|
1025
|
+
return snapshot;
|
|
1026
|
+
};
|
|
1027
|
+
}
|
|
1028
|
+
async function wait_for_pr_success_default(branch_name, required_stable_reads = DEFAULT_STABLE_READS, before_poll, observe) {
|
|
1029
|
+
return await wait_for_pr_success({
|
|
1030
|
+
branch_name,
|
|
1031
|
+
fetcher: observed_fetcher(observe),
|
|
1032
|
+
interval_ms: CHECK_WAIT_INTERVAL_MS,
|
|
1033
|
+
max_attempts: CHECK_MAX_ATTEMPTS,
|
|
1034
|
+
backoff: PR_POLL_SCHEDULES.checks_gated,
|
|
1035
|
+
required_stable_reads,
|
|
1036
|
+
before_poll
|
|
1037
|
+
});
|
|
1038
|
+
}
|
|
1039
|
+
function to_merge_progress(snapshot) {
|
|
1040
|
+
if (snapshot.is_merged === true) return "merged";
|
|
1041
|
+
return is_auto_merge_blocked(snapshot) ? "failed" : "waiting";
|
|
1042
|
+
}
|
|
1043
|
+
async function read_merge_progress(branch_name) {
|
|
1044
|
+
try {
|
|
1045
|
+
return to_merge_progress(await default_fetch_pr_state(branch_name));
|
|
1046
|
+
} catch {
|
|
1047
|
+
return await git_gh_pr_auto_merge.pr_is_merged(branch_name) ? "merged" : "waiting";
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
async function wait_for_pr_merged(branch_name) {
|
|
1051
|
+
let progress = "waiting";
|
|
1052
|
+
await poll.poll_until(
|
|
1053
|
+
async () => {
|
|
1054
|
+
progress = await read_merge_progress(branch_name);
|
|
1055
|
+
return progress !== "waiting";
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
attempts: CHECK_MAX_ATTEMPTS,
|
|
1059
|
+
interval_ms: CHECK_WAIT_INTERVAL_MS,
|
|
1060
|
+
backoff: { schedule: PR_POLL_SCHEDULES.merge }
|
|
1061
|
+
}
|
|
1062
|
+
);
|
|
1063
|
+
return progress;
|
|
1064
|
+
}
|
|
1065
|
+
var git_pr_checks = {
|
|
1066
|
+
read_merge_progress,
|
|
1067
|
+
wait_for_pr_merged,
|
|
1068
|
+
wait_for_pr_success: wait_for_pr_success_default
|
|
1069
|
+
};
|
|
1070
|
+
|
|
1071
|
+
// scripts/gh/git-pr-checks-watch.ts
|
|
1072
|
+
var PR_CHECKS_WATCH_TIMEOUT_MS = 12e4;
|
|
1073
|
+
var WATCH_TIMED_OUT_NOTE = "\u23F1\uFE0F pr checks --watch timed out.";
|
|
1074
|
+
var NO_CHECKS_MESSAGE = "gh api reported no checks on the branch";
|
|
1075
|
+
var CHECKS_FAILED_MESSAGE = "gh api reported a failing check on the branch";
|
|
1076
|
+
function is_awaited_check(check) {
|
|
1077
|
+
return !is_coderabbit_check(check.name) || is_required_check(check.name);
|
|
1078
|
+
}
|
|
1079
|
+
function evaluate_awaited_settled(snapshot) {
|
|
1080
|
+
const awaited = snapshot.rollup.filter((check) => is_awaited_check(check));
|
|
1081
|
+
const considered = awaited.length === 0 ? snapshot.rollup : awaited;
|
|
1082
|
+
if (considered.length === 0 || considered.some((check) => check.status === CHECK_STATUS_PENDING)) {
|
|
1083
|
+
return "pending";
|
|
1084
|
+
}
|
|
1085
|
+
return snapshot.rollup.some((check) => check.status === CHECK_STATUS_FAIL) ? "failure" : "success";
|
|
1086
|
+
}
|
|
1087
|
+
function evaluate_checks_settled(snapshot) {
|
|
1088
|
+
if (collect_blocking_failures(snapshot).length > 0) return "failure";
|
|
1089
|
+
return evaluate_awaited_settled(snapshot);
|
|
1090
|
+
}
|
|
1091
|
+
function describe_checks_failure(snapshot) {
|
|
1092
|
+
const failed = snapshot.rollup.filter((check) => check.status === CHECK_STATUS_FAIL);
|
|
1093
|
+
return `${CHECKS_FAILED_MESSAGE}: ${failed.map((check) => check.name).join(", ")}`;
|
|
1094
|
+
}
|
|
1095
|
+
function should_never_read_review_decision() {
|
|
1096
|
+
return false;
|
|
1097
|
+
}
|
|
1098
|
+
var CHECKS_SETTLED_EVALUATOR = {
|
|
1099
|
+
evaluate: evaluate_checks_settled,
|
|
1100
|
+
describe: describe_checks_failure,
|
|
1101
|
+
should_read_review_decision: should_never_read_review_decision
|
|
1102
|
+
};
|
|
1103
|
+
async function watch_until_settled(branch_name, observe) {
|
|
1104
|
+
await wait_for_pr_success({
|
|
1105
|
+
branch_name,
|
|
1106
|
+
fetcher: observed_fetcher(observe),
|
|
1107
|
+
interval_ms: CHECK_WAIT_INTERVAL_MS,
|
|
1108
|
+
max_attempts: compute_max_attempts(
|
|
1109
|
+
PR_CHECKS_WATCH_TIMEOUT_MS / SECONDS_TO_MS,
|
|
1110
|
+
CHECK_WAIT_INTERVAL_MS
|
|
1111
|
+
),
|
|
1112
|
+
backoff: PR_POLL_SCHEDULES.checks_gated,
|
|
1113
|
+
required_stable_reads: DEFAULT_STABLE_READS,
|
|
1114
|
+
evaluator: CHECKS_SETTLED_EVALUATOR
|
|
1115
|
+
});
|
|
1116
|
+
}
|
|
1117
|
+
async function fail_when_no_checks(branch_name) {
|
|
1118
|
+
const snapshot = await default_fetch_pr_state(branch_name, should_never_read_review_decision);
|
|
1119
|
+
if (snapshot.rollup.length === 0) throw new Error(NO_CHECKS_MESSAGE);
|
|
1120
|
+
}
|
|
1121
|
+
async function pr_checks_watch(branch_name, observe) {
|
|
1122
|
+
try {
|
|
1123
|
+
await watch_until_settled(branch_name, observe);
|
|
1124
|
+
return { timed_out: false };
|
|
1125
|
+
} catch (error) {
|
|
1126
|
+
if (!is_pr_checks_timeout(error)) throw error;
|
|
1127
|
+
await fail_when_no_checks(branch_name);
|
|
1128
|
+
console.info(WATCH_TIMED_OUT_NOTE);
|
|
1129
|
+
return { timed_out: true };
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
var git_pr_checks_watch = { pr_checks_watch };
|
|
1133
|
+
|
|
1134
|
+
// scripts/gh/git-gh-command.ts
|
|
1135
|
+
var git_gh_command = {
|
|
1136
|
+
...git_gh_pr,
|
|
1137
|
+
...git_gh_pr_auto_merge,
|
|
1138
|
+
pr_checks_watch: git_pr_checks_watch.pr_checks_watch,
|
|
1139
|
+
...git_gh_issue,
|
|
1140
|
+
...git_gh_repo
|
|
1141
|
+
};
|
|
1142
|
+
|
|
1143
|
+
export {
|
|
1144
|
+
SUMMARY_FIELDS,
|
|
1145
|
+
git_gh_issue,
|
|
1146
|
+
git_gh_pr_snapshot,
|
|
1147
|
+
DEFAULT_STABLE_READS,
|
|
1148
|
+
WATCH_CONFIRMED_STABLE_READS,
|
|
1149
|
+
PR_CHECKS_TIMEOUT_MESSAGE,
|
|
1150
|
+
git_pr_checks,
|
|
1151
|
+
NO_CHECKS_MESSAGE,
|
|
1152
|
+
git_gh_command
|
|
1153
|
+
};
|