@runcofactor/cli 0.52.0 → 0.53.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/README.md +2 -0
- package/dist/{account-3ZG24MOE.js → account-MRZ54P5P.js} +5 -5
- package/dist/{alert-5G7PTAX2.js → alert-XBHELHEI.js} +8 -8
- package/dist/{api-catalog-IBYAFKKQ.js → api-catalog-GWYRX53L.js} +5 -5
- package/dist/{api-key-UXC44BDR.js → api-key-FH6JN447.js} +5 -5
- package/dist/{attachment-T6IRFQW3.js → attachment-J7GRVT5F.js} +5 -5
- package/dist/{auth-SHOCJE6Z.js → auth-VZZQXRDR.js} +3 -3
- package/dist/{benchmark-NJ2U6VTC.js → benchmark-A3SNDARF.js} +5 -5
- package/dist/{blackcat-RQJVFGXQ.js → blackcat-UM6TBQBN.js} +3 -3
- package/dist/{chunk-DHAGRM2F.js → chunk-33U56YGD.js} +14 -5
- package/dist/{chunk-DHAGRM2F.js.map → chunk-33U56YGD.js.map} +1 -1
- package/dist/{chunk-M752EUK3.js → chunk-3JU4UYYN.js} +5 -5
- package/dist/{chunk-G6BCST3G.js → chunk-3ZOUNCA5.js} +7 -7
- package/dist/{chunk-76Z6E7XX.js → chunk-4UZN6TVT.js} +74 -131
- package/dist/chunk-4UZN6TVT.js.map +1 -0
- package/dist/{chunk-ABT3BLRC.js → chunk-5TKXHS3X.js} +3 -3
- package/dist/{chunk-QCYSONXI.js → chunk-CRYHWO4M.js} +2 -2
- package/dist/{chunk-QTYUM4ZB.js → chunk-EJ3ZPH5U.js} +23 -187
- package/dist/chunk-EJ3ZPH5U.js.map +1 -0
- package/dist/{chunk-I5RHTCPY.js → chunk-EL6KJ4PO.js} +4 -4
- package/dist/{chunk-ZL4O6C42.js → chunk-HXBK3AGD.js} +2 -2
- package/dist/{chunk-PRERH4DN.js → chunk-I2SOHQ2C.js} +3 -3
- package/dist/{chunk-CYSPCGO6.js → chunk-JEHHEMUL.js} +5 -5
- package/dist/{chunk-LIEADTEF.js → chunk-LJFVRJCA.js} +2 -2
- package/dist/{chunk-UEJ2HTKU.js → chunk-MJVUMVLO.js} +19 -1
- package/dist/chunk-MJVUMVLO.js.map +1 -0
- package/dist/chunk-N55RKCGR.js +24 -0
- package/dist/chunk-N55RKCGR.js.map +1 -0
- package/dist/{chunk-PHNH3CEU.js → chunk-O4Z44BR7.js} +5 -5
- package/dist/{chunk-QA37WVF6.js → chunk-OQFCZERZ.js} +6 -6
- package/dist/{chunk-EUVB6Y3C.js → chunk-P7L5KELH.js} +8 -8
- package/dist/chunk-P7L5KELH.js.map +1 -0
- package/dist/{chunk-Z3MDQSZG.js → chunk-PJFFGQSB.js} +2 -2
- package/dist/{chunk-IY3ZK46I.js → chunk-QOVJUSSL.js} +2 -2
- package/dist/{chunk-RPJMQBB5.js → chunk-QXU4G4YN.js} +3 -3
- package/dist/{chunk-SZSTJIYU.js → chunk-RRSUKARV.js} +4 -4
- package/dist/{chunk-775FI436.js → chunk-RVD6J6IZ.js} +2 -2
- package/dist/{chunk-5UUIBY6E.js → chunk-TAVBFLCR.js} +3 -3
- package/dist/{chunk-ROX7N3RK.js → chunk-V7HB5LAU.js} +10 -7
- package/dist/chunk-V7HB5LAU.js.map +1 -0
- package/dist/{chunk-LL6TSQWV.js → chunk-VKZOHJCE.js} +3 -3
- package/dist/chunk-VKZOHJCE.js.map +1 -0
- package/dist/{chunk-3HI6QC4V.js → chunk-WRBU6TX7.js} +2 -2
- package/dist/{proofs-TXJGAP5F.js → chunk-X7SUSIY3.js} +118 -20
- package/dist/chunk-X7SUSIY3.js.map +1 -0
- package/dist/{chunk-BF3IPGMP.js → chunk-XSSZMG65.js} +4 -4
- package/dist/{credential-TWSWV64F.js → credential-4RFRU6OH.js} +5 -5
- package/dist/{credential-template-XO5D5AI3.js → credential-template-36PFUTBN.js} +5 -5
- package/dist/{digest-SLEFOLPV.js → digest-THMKFMP7.js} +8 -8
- package/dist/{docs-IDC4V4WQ.js → docs-ZGM53L67.js} +5 -5
- package/dist/{doctor-SDAYEA6C.js → doctor-Z2XBGBM3.js} +3 -3
- package/dist/{environment-VBUIBQ6O.js → environment-5YVZXBN7.js} +7 -7
- package/dist/eval-SO5TPD37.js +1177 -0
- package/dist/eval-SO5TPD37.js.map +1 -0
- package/dist/{exploration-IREIR5PO.js → exploration-GZ4WUJJH.js} +5 -5
- package/dist/{exploratory-test-4Q7BMEFT.js → exploratory-test-Y7P4ZDLD.js} +5 -5
- package/dist/{external-run-S7LULKPT.js → external-run-IJGGZOGI.js} +7 -7
- package/dist/{feature-flag-IASHTUGU.js → feature-flag-UH6Z7774.js} +5 -5
- package/dist/{flow-IBEZFZTU.js → flow-MRWAQYZZ.js} +5 -5
- package/dist/{github-HAEZRULP.js → github-VDJU3PU3.js} +6 -6
- package/dist/index.js +101 -82
- package/dist/index.js.map +1 -1
- package/dist/{init-LT2TZMQY.js → init-CROSTPA6.js} +5 -5
- package/dist/{install-RTEYH6TK.js → install-ECR7OLAY.js} +5 -5
- package/dist/{issues-5GE277R2.js → issues-K5TL2S4Z.js} +7 -7
- package/dist/{knobs-AMIWGYUZ.js → knobs-OKQFBQLK.js} +5 -5
- package/dist/{landing-3VLVVQL5.js → landing-XANIBPVM.js} +7 -7
- package/dist/{list-GDJR6UY6.js → list-64GX47Q4.js} +5 -5
- package/dist/{local-4R6GVW7U.js → local-QMQY2ZUX.js} +7 -7
- package/dist/{login-IXVAWTLO.js → login-I7UQ3GTM.js} +5 -5
- package/dist/{mcp-BM2MJWX4.js → mcp-XZV63DX5.js} +11 -11
- package/dist/{mcp-BM2MJWX4.js.map → mcp-XZV63DX5.js.map} +1 -1
- package/dist/{metrics-SSIP5CEB.js → metrics-KBTQ3KGZ.js} +5 -5
- package/dist/{monitor-ESZYHXT2.js → monitor-UGWY43IU.js} +5 -5
- package/dist/perf-CCHWHCSR.js +961 -0
- package/dist/perf-CCHWHCSR.js.map +1 -0
- package/dist/{product-VCGUV5TH.js → product-KLG2ZTHC.js} +5 -5
- package/dist/{product-map-AXKZNQDM.js → product-map-AMEZ76EQ.js} +5 -5
- package/dist/{prompts-FVPSON2N.js → prompts-ZVQNGL7X.js} +5 -5
- package/dist/proofs-QCNSQAPX.js +20 -0
- package/dist/{property-XEPCC7KQ.js → property-PJDQFHAL.js} +6 -6
- package/dist/{psql-JKF3OYYJ.js → psql-AURAN27C.js} +5 -5
- package/dist/{record-REQ37S54.js → record-SYWBTUOB.js} +6 -6
- package/dist/{redis-WGHT2GJB.js → redis-2H752SKO.js} +5 -5
- package/dist/{release-SNDIVIA6.js → release-OSIYUXSC.js} +5 -5
- package/dist/{runbook-XFJG2LFC.js → runbook-7LVHF6KV.js} +5 -5
- package/dist/{sandbox-DYCKLCMY.js → sandbox-TJQPMRGS.js} +18 -30
- package/dist/sandbox-TJQPMRGS.js.map +1 -0
- package/dist/{scenarios-PVHCKP55.js → scenarios-P2ABU4HK.js} +5 -5
- package/dist/{schedule-DGC7CX23.js → schedule-XLS56NP5.js} +8 -8
- package/dist/{session-ERGUFDDI.js → session-ACSFC3UB.js} +8 -8
- package/dist/{skill-6QO2E3TB.js → skill-F7I5P6AI.js} +43 -28
- package/dist/{skill-6QO2E3TB.js.map → skill-F7I5P6AI.js.map} +1 -1
- package/dist/{slack-WE7THLLH.js → slack-ZEK4GRND.js} +6 -6
- package/dist/{spec-SEOY7N3L.js → spec-XPIRRSV6.js} +5 -5
- package/dist/{src-CCK3TKBX.js → src-N7ZCYCXU.js} +4 -4
- package/dist/{src-AEWV5HYH.js → src-XSBBMVGW.js} +3 -3
- package/dist/{start-EPGLHTND.js → start-DKWLOQI6.js} +5 -5
- package/dist/{status-DTE2GXM2.js → status-K7KH5DI3.js} +5 -5
- package/dist/{tag-GIFEWGBL.js → tag-2Y3OMQQC.js} +6 -6
- package/dist/{task-VLJCHSFB.js → task-4PIOC4QV.js} +6 -6
- package/dist/{teams-J2OOJBL4.js → teams-KUM56BE2.js} +83 -47
- package/dist/teams-KUM56BE2.js.map +1 -0
- package/dist/{test-suite-CTACGIAZ.js → test-suite-SW25YGJV.js} +138 -96
- package/dist/test-suite-SW25YGJV.js.map +1 -0
- package/dist/{trace-RWQDYL4K.js → trace-QPXHYBLA.js} +7 -7
- package/dist/{triage-6UAXLCGU.js → triage-EZABRZZM.js} +6 -6
- package/dist/trigger-7C7KX5KH.js +137 -0
- package/dist/trigger-7C7KX5KH.js.map +1 -0
- package/dist/{update-check-QRREAM3N.js → update-check-E3X7UIY6.js} +3 -3
- package/dist/{upgrade-5Y655TQ6.js → upgrade-EJGTMW44.js} +4 -4
- package/dist/{usage-KCXFY46V.js → usage-GZCQDULF.js} +7 -7
- package/dist/{utilities-SUON2KZK.js → utilities-RIITD53A.js} +6 -6
- package/dist/{visual-GJZVJC32.js → visual-FH67OKS2.js} +5 -5
- package/dist/{workflow-R5QAXWBX.js → workflow-34YJZ2QQ.js} +38 -86
- package/dist/workflow-34YJZ2QQ.js.map +1 -0
- package/dist/{workflow-cache-PFBTWLGM.js → workflow-cache-YQ3BGJIG.js} +17 -17
- package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js → workflow-cache-convergence-resolve-SPLBRSNK.js} +5 -5
- package/dist/{workflow-debug-RACNWWOL.js → workflow-debug-HZB7TJGK.js} +10 -10
- package/dist/workflow-debug-HZB7TJGK.js.map +1 -0
- package/dist/{workflow-feedback-RJIQ5R3R.js → workflow-feedback-6UOTIWIQ.js} +5 -5
- package/dist/{workflow-fork-LINDCYJ3.js → workflow-fork-IDYHAHCX.js} +5 -5
- package/dist/workflow-promotion-U6WYFY5U.js +62 -0
- package/dist/workflow-promotion-U6WYFY5U.js.map +1 -0
- package/dist/{workflow-proposals-E4EXKAGM.js → workflow-proposals-MMVNIQT3.js} +5 -5
- package/dist/{workflow-revisions-5M6APN6R.js → workflow-revisions-BPUOLCZB.js} +5 -5
- package/dist/{workflow-status-7KL73WS2.js → workflow-status-RA3IEMEW.js} +5 -5
- package/package.json +3 -2
- package/dist/chat-target-IZ7YLLU3.js +0 -502
- package/dist/chat-target-IZ7YLLU3.js.map +0 -1
- package/dist/chunk-76Z6E7XX.js.map +0 -1
- package/dist/chunk-EUVB6Y3C.js.map +0 -1
- package/dist/chunk-LL6TSQWV.js.map +0 -1
- package/dist/chunk-QTYUM4ZB.js.map +0 -1
- package/dist/chunk-ROX7N3RK.js.map +0 -1
- package/dist/chunk-UEJ2HTKU.js.map +0 -1
- package/dist/proofs-TXJGAP5F.js.map +0 -1
- package/dist/sandbox-DYCKLCMY.js.map +0 -1
- package/dist/teams-J2OOJBL4.js.map +0 -1
- package/dist/test-suite-CTACGIAZ.js.map +0 -1
- package/dist/workflow-R5QAXWBX.js.map +0 -1
- /package/dist/{account-3ZG24MOE.js.map → account-MRZ54P5P.js.map} +0 -0
- /package/dist/{alert-5G7PTAX2.js.map → alert-XBHELHEI.js.map} +0 -0
- /package/dist/{api-catalog-IBYAFKKQ.js.map → api-catalog-GWYRX53L.js.map} +0 -0
- /package/dist/{api-key-UXC44BDR.js.map → api-key-FH6JN447.js.map} +0 -0
- /package/dist/{attachment-T6IRFQW3.js.map → attachment-J7GRVT5F.js.map} +0 -0
- /package/dist/{auth-SHOCJE6Z.js.map → auth-VZZQXRDR.js.map} +0 -0
- /package/dist/{benchmark-NJ2U6VTC.js.map → benchmark-A3SNDARF.js.map} +0 -0
- /package/dist/{blackcat-RQJVFGXQ.js.map → blackcat-UM6TBQBN.js.map} +0 -0
- /package/dist/{chunk-M752EUK3.js.map → chunk-3JU4UYYN.js.map} +0 -0
- /package/dist/{chunk-G6BCST3G.js.map → chunk-3ZOUNCA5.js.map} +0 -0
- /package/dist/{chunk-ABT3BLRC.js.map → chunk-5TKXHS3X.js.map} +0 -0
- /package/dist/{chunk-QCYSONXI.js.map → chunk-CRYHWO4M.js.map} +0 -0
- /package/dist/{chunk-I5RHTCPY.js.map → chunk-EL6KJ4PO.js.map} +0 -0
- /package/dist/{chunk-ZL4O6C42.js.map → chunk-HXBK3AGD.js.map} +0 -0
- /package/dist/{chunk-PRERH4DN.js.map → chunk-I2SOHQ2C.js.map} +0 -0
- /package/dist/{chunk-CYSPCGO6.js.map → chunk-JEHHEMUL.js.map} +0 -0
- /package/dist/{chunk-LIEADTEF.js.map → chunk-LJFVRJCA.js.map} +0 -0
- /package/dist/{chunk-PHNH3CEU.js.map → chunk-O4Z44BR7.js.map} +0 -0
- /package/dist/{chunk-QA37WVF6.js.map → chunk-OQFCZERZ.js.map} +0 -0
- /package/dist/{chunk-Z3MDQSZG.js.map → chunk-PJFFGQSB.js.map} +0 -0
- /package/dist/{chunk-IY3ZK46I.js.map → chunk-QOVJUSSL.js.map} +0 -0
- /package/dist/{chunk-RPJMQBB5.js.map → chunk-QXU4G4YN.js.map} +0 -0
- /package/dist/{chunk-SZSTJIYU.js.map → chunk-RRSUKARV.js.map} +0 -0
- /package/dist/{chunk-775FI436.js.map → chunk-RVD6J6IZ.js.map} +0 -0
- /package/dist/{chunk-5UUIBY6E.js.map → chunk-TAVBFLCR.js.map} +0 -0
- /package/dist/{chunk-3HI6QC4V.js.map → chunk-WRBU6TX7.js.map} +0 -0
- /package/dist/{chunk-BF3IPGMP.js.map → chunk-XSSZMG65.js.map} +0 -0
- /package/dist/{credential-TWSWV64F.js.map → credential-4RFRU6OH.js.map} +0 -0
- /package/dist/{credential-template-XO5D5AI3.js.map → credential-template-36PFUTBN.js.map} +0 -0
- /package/dist/{digest-SLEFOLPV.js.map → digest-THMKFMP7.js.map} +0 -0
- /package/dist/{docs-IDC4V4WQ.js.map → docs-ZGM53L67.js.map} +0 -0
- /package/dist/{doctor-SDAYEA6C.js.map → doctor-Z2XBGBM3.js.map} +0 -0
- /package/dist/{environment-VBUIBQ6O.js.map → environment-5YVZXBN7.js.map} +0 -0
- /package/dist/{exploration-IREIR5PO.js.map → exploration-GZ4WUJJH.js.map} +0 -0
- /package/dist/{exploratory-test-4Q7BMEFT.js.map → exploratory-test-Y7P4ZDLD.js.map} +0 -0
- /package/dist/{external-run-S7LULKPT.js.map → external-run-IJGGZOGI.js.map} +0 -0
- /package/dist/{feature-flag-IASHTUGU.js.map → feature-flag-UH6Z7774.js.map} +0 -0
- /package/dist/{flow-IBEZFZTU.js.map → flow-MRWAQYZZ.js.map} +0 -0
- /package/dist/{github-HAEZRULP.js.map → github-VDJU3PU3.js.map} +0 -0
- /package/dist/{init-LT2TZMQY.js.map → init-CROSTPA6.js.map} +0 -0
- /package/dist/{install-RTEYH6TK.js.map → install-ECR7OLAY.js.map} +0 -0
- /package/dist/{issues-5GE277R2.js.map → issues-K5TL2S4Z.js.map} +0 -0
- /package/dist/{knobs-AMIWGYUZ.js.map → knobs-OKQFBQLK.js.map} +0 -0
- /package/dist/{landing-3VLVVQL5.js.map → landing-XANIBPVM.js.map} +0 -0
- /package/dist/{list-GDJR6UY6.js.map → list-64GX47Q4.js.map} +0 -0
- /package/dist/{local-4R6GVW7U.js.map → local-QMQY2ZUX.js.map} +0 -0
- /package/dist/{login-IXVAWTLO.js.map → login-I7UQ3GTM.js.map} +0 -0
- /package/dist/{metrics-SSIP5CEB.js.map → metrics-KBTQ3KGZ.js.map} +0 -0
- /package/dist/{monitor-ESZYHXT2.js.map → monitor-UGWY43IU.js.map} +0 -0
- /package/dist/{product-VCGUV5TH.js.map → product-KLG2ZTHC.js.map} +0 -0
- /package/dist/{product-map-AXKZNQDM.js.map → product-map-AMEZ76EQ.js.map} +0 -0
- /package/dist/{prompts-FVPSON2N.js.map → prompts-ZVQNGL7X.js.map} +0 -0
- /package/dist/{src-AEWV5HYH.js.map → proofs-QCNSQAPX.js.map} +0 -0
- /package/dist/{property-XEPCC7KQ.js.map → property-PJDQFHAL.js.map} +0 -0
- /package/dist/{psql-JKF3OYYJ.js.map → psql-AURAN27C.js.map} +0 -0
- /package/dist/{record-REQ37S54.js.map → record-SYWBTUOB.js.map} +0 -0
- /package/dist/{redis-WGHT2GJB.js.map → redis-2H752SKO.js.map} +0 -0
- /package/dist/{release-SNDIVIA6.js.map → release-OSIYUXSC.js.map} +0 -0
- /package/dist/{runbook-XFJG2LFC.js.map → runbook-7LVHF6KV.js.map} +0 -0
- /package/dist/{scenarios-PVHCKP55.js.map → scenarios-P2ABU4HK.js.map} +0 -0
- /package/dist/{schedule-DGC7CX23.js.map → schedule-XLS56NP5.js.map} +0 -0
- /package/dist/{session-ERGUFDDI.js.map → session-ACSFC3UB.js.map} +0 -0
- /package/dist/{slack-WE7THLLH.js.map → slack-ZEK4GRND.js.map} +0 -0
- /package/dist/{spec-SEOY7N3L.js.map → spec-XPIRRSV6.js.map} +0 -0
- /package/dist/{src-CCK3TKBX.js.map → src-N7ZCYCXU.js.map} +0 -0
- /package/dist/{tag-GIFEWGBL.js.map → src-XSBBMVGW.js.map} +0 -0
- /package/dist/{start-EPGLHTND.js.map → start-DKWLOQI6.js.map} +0 -0
- /package/dist/{status-DTE2GXM2.js.map → status-K7KH5DI3.js.map} +0 -0
- /package/dist/{trace-RWQDYL4K.js.map → tag-2Y3OMQQC.js.map} +0 -0
- /package/dist/{task-VLJCHSFB.js.map → task-4PIOC4QV.js.map} +0 -0
- /package/dist/{triage-6UAXLCGU.js.map → trace-QPXHYBLA.js.map} +0 -0
- /package/dist/{update-check-QRREAM3N.js.map → triage-EZABRZZM.js.map} +0 -0
- /package/dist/{upgrade-5Y655TQ6.js.map → update-check-E3X7UIY6.js.map} +0 -0
- /package/dist/{utilities-SUON2KZK.js.map → upgrade-EJGTMW44.js.map} +0 -0
- /package/dist/{usage-KCXFY46V.js.map → usage-GZCQDULF.js.map} +0 -0
- /package/dist/{workflow-debug-RACNWWOL.js.map → utilities-RIITD53A.js.map} +0 -0
- /package/dist/{visual-GJZVJC32.js.map → visual-FH67OKS2.js.map} +0 -0
- /package/dist/{workflow-cache-PFBTWLGM.js.map → workflow-cache-YQ3BGJIG.js.map} +0 -0
- /package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js.map → workflow-cache-convergence-resolve-SPLBRSNK.js.map} +0 -0
- /package/dist/{workflow-feedback-RJIQ5R3R.js.map → workflow-feedback-6UOTIWIQ.js.map} +0 -0
- /package/dist/{workflow-fork-LINDCYJ3.js.map → workflow-fork-IDYHAHCX.js.map} +0 -0
- /package/dist/{workflow-proposals-E4EXKAGM.js.map → workflow-proposals-MMVNIQT3.js.map} +0 -0
- /package/dist/{workflow-revisions-5M6APN6R.js.map → workflow-revisions-BPUOLCZB.js.map} +0 -0
- /package/dist/{workflow-status-7KL73WS2.js.map → workflow-status-RA3IEMEW.js.map} +0 -0
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import { createRequire as __cr } from "module"; import { fileURLToPath as __fup } from "url"; import { dirname as __dn } from "path"; const require = __cr(import.meta.url); const __filename = __fup(import.meta.url); const __dirname = __dn(__filename);
|
|
2
2
|
import {
|
|
3
3
|
resolveApplicationId
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-775FI436.js";
|
|
4
|
+
} from "./chunk-JEHHEMUL.js";
|
|
6
5
|
import {
|
|
7
6
|
apiRequest,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
getArgValues,
|
|
8
|
+
getGuideSectionArg,
|
|
9
|
+
readStdin,
|
|
10
|
+
readTextOrFile
|
|
11
|
+
} from "./chunk-VKZOHJCE.js";
|
|
11
12
|
import {
|
|
12
13
|
formatProofBlock
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4UZN6TVT.js";
|
|
14
15
|
import {
|
|
15
16
|
getArgValue,
|
|
16
17
|
hasFlag,
|
|
17
18
|
resolveConfig
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-WRBU6TX7.js";
|
|
19
20
|
import {
|
|
21
|
+
PROOFS_GUIDE_SECTIONS,
|
|
22
|
+
printGuide,
|
|
20
23
|
writeRawOutput
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-TOWZAG3I.js";
|
|
24
|
+
} from "./chunk-MJVUMVLO.js";
|
|
23
25
|
|
|
24
26
|
// src/proofs.ts
|
|
25
27
|
import process from "process";
|
|
@@ -29,12 +31,18 @@ var CONNECTION_FLAGS = /* @__PURE__ */ new Set(["--api-url", "--token", "--org",
|
|
|
29
31
|
var HELP = [
|
|
30
32
|
"Usage: cofactor proofs <sub-command>",
|
|
31
33
|
"",
|
|
34
|
+
" guide [--json] Print the offline guide to proving a change with tests (no login needed)",
|
|
32
35
|
" block <wf_\u2026> <wrun_\u2026> [<wf_\u2026> <wrun_\u2026> \u2026] Check each test and the run of it you made, and print the proofs block for the pull request description",
|
|
33
36
|
' block --none "<reason>" The block for a pull request no test can prove: say why, and what would make a test possible',
|
|
34
37
|
" status --application <app>|--repo <owner/repo> --pr <n> [--json] Proofs attached to the pull request",
|
|
35
|
-
" attach --pr <n> --application <app> --criterion <n> --test <wf_\u2026> --run <wrun_\u2026> --asserted <text> [--text <text> --detail <text>] [--node <id>] [--sha <sha> --tree <tree>]",
|
|
38
|
+
" attach --pr <n> --application <app> --criterion <n> (--test <wf_\u2026> --run <wrun_\u2026> | --perf-run <prun_\u2026>) --asserted <text> [--text <text> --detail <text>] [--node <id> --base <sha>] [--sha <sha> --tree <tree>]",
|
|
39
|
+
" Perf evidence must be completed, faster or no-change, and on --sha; a slower run is refused. Attach a newer run and detach stale evidence.",
|
|
40
|
+
" A test with any visual_checkpoint node is a UI test; attach runs it at the PR base and shows checkpoint diffs.",
|
|
41
|
+
" An approved test that is not a fork is cited as an existing test: its run proves it still works, and it is never promoted.",
|
|
42
|
+
" attach --pr <n> --application <app> --criterion <n> --manual --notes <text|@file> [--artifact <https-url>]... [--text <text> --detail <text>] [--sha <sha>]",
|
|
43
|
+
" Only when Cofactor cannot prove the criterion: say what you did and why. Passes the check, marked manual; never promotes anything.",
|
|
36
44
|
" render --pr <n> Print the pull request proof block",
|
|
37
|
-
" detach --pr <n> --criterion <n>
|
|
45
|
+
" detach --pr <n> --criterion <n> [--test <wf_\u2026>|--perf-run <prun_\u2026>|--manual] Remove a criterion or one evidence item",
|
|
38
46
|
" check --pr <n> --sha <sha> [--body-file <path>|--body -] Evaluate the pull request proofs"
|
|
39
47
|
].join("\n");
|
|
40
48
|
async function runProofs(argv) {
|
|
@@ -43,6 +51,10 @@ async function runProofs(argv) {
|
|
|
43
51
|
console.log(HELP);
|
|
44
52
|
return;
|
|
45
53
|
}
|
|
54
|
+
if (subCommand === "guide") {
|
|
55
|
+
printGuide(PROOFS_GUIDE_SECTIONS, getGuideSectionArg(rest), hasFlag(rest, "--json"));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
46
58
|
const none = getArgValue(rest, "--none");
|
|
47
59
|
if (subCommand === "block" && hasFlag(rest, "--none")) {
|
|
48
60
|
if (rest.some((arg, i) => !arg.startsWith("-") && rest[i - 1] !== "--none" && !CONNECTION_FLAGS.has(rest[i - 1] ?? ""))) {
|
|
@@ -159,19 +171,34 @@ async function handleStatus(argv, apiUrl, token) {
|
|
|
159
171
|
writeRawOutput(proof.verdict.summaryMarkdown);
|
|
160
172
|
}
|
|
161
173
|
async function handleAttach(argv, apiUrl, token) {
|
|
174
|
+
if (hasFlag(argv, "--manual")) return handleAttachManual(argv, apiUrl, token);
|
|
162
175
|
const pr = requiredNumber(argv, "--pr");
|
|
163
176
|
const criterion = requiredNumber(argv, "--criterion");
|
|
164
177
|
const application = getArgValue(argv, "--application");
|
|
165
178
|
const test = getArgValue(argv, "--test");
|
|
166
179
|
const run = getArgValue(argv, "--run");
|
|
180
|
+
const perfRun = getArgValue(argv, "--perf-run");
|
|
167
181
|
const asserted = getArgValue(argv, "--asserted");
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
182
|
+
const subjectCount = Number(test !== void 0 || run !== void 0) + Number(perfRun !== void 0);
|
|
183
|
+
if (["--test", "--run", "--perf-run"].some((flag) => flagCount(argv, flag) > 1))
|
|
184
|
+
usageError("Pass each evidence subject flag at most once.");
|
|
185
|
+
if (hasFlag(argv, "--test") && !test || hasFlag(argv, "--run") && !run || hasFlag(argv, "--perf-run") && !perfRun)
|
|
186
|
+
usageError("--test, --run and --perf-run each require a value.");
|
|
187
|
+
if (!application || !asserted || subjectCount !== 1 || test === void 0 !== (run === void 0))
|
|
188
|
+
usageError("Usage: cofactor proofs attach --pr <n> --application <app> --criterion <n> (--test <wf_\u2026> --run <wrun_\u2026> | --perf-run <prun_\u2026>) --asserted <text> [--text <text> --detail <text>]");
|
|
189
|
+
if (hasFlag(argv, "--perf-run") && (hasFlag(argv, "--node") || hasFlag(argv, "--tree") || hasFlag(argv, "--base")))
|
|
190
|
+
usageError("--node, --tree and --base can only be used with --test.");
|
|
171
191
|
const applicationId = await resolveApplicationId(argv, apiUrl, token);
|
|
172
192
|
const repo = resolveRepo(argv);
|
|
173
|
-
const {
|
|
174
|
-
|
|
193
|
+
const body = { repo, application: applicationId, pr, criterion, asserted };
|
|
194
|
+
if (perfRun !== void 0) {
|
|
195
|
+
body.sha = resolveCleanCheckoutSha(argv);
|
|
196
|
+
body.perfRun = perfRun;
|
|
197
|
+
} else {
|
|
198
|
+
const { sha, tree } = resolveCheckoutCommit(argv);
|
|
199
|
+
const base = getArgValue(argv, "--base") ?? resolveDefaultBaseCommit();
|
|
200
|
+
Object.assign(body, { test, run, sha, tree, ...base ? { base } : {} });
|
|
201
|
+
}
|
|
175
202
|
const text = getArgValue(argv, "--text");
|
|
176
203
|
const detail = getArgValue(argv, "--detail");
|
|
177
204
|
const node = getArgValue(argv, "--node");
|
|
@@ -188,6 +215,45 @@ async function handleAttach(argv, apiUrl, token) {
|
|
|
188
215
|
if (!res.ok || !res.data) return fail(res.error ?? "could not attach proof evidence");
|
|
189
216
|
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
190
217
|
}
|
|
218
|
+
var MANUAL_USAGE = "Usage: cofactor proofs attach --pr <n> --application <app> --criterion <n> --manual --notes <text|@file> [--artifact <https-url>]... [--text <text> --detail <text>]";
|
|
219
|
+
async function handleAttachManual(argv, apiUrl, token) {
|
|
220
|
+
const conflicting = ["--test", "--run", "--perf-run", "--asserted", "--node", "--tree", "--base"].filter((flag) => hasFlag(argv, flag));
|
|
221
|
+
if (conflicting.length > 0)
|
|
222
|
+
usageError(`--manual takes --notes instead of a test, run or asserted line; remove ${conflicting.join(", ")}.`);
|
|
223
|
+
const pr = requiredNumber(argv, "--pr");
|
|
224
|
+
const criterion = requiredNumber(argv, "--criterion");
|
|
225
|
+
const application = getArgValue(argv, "--application");
|
|
226
|
+
const notesValue = getArgValue(argv, "--notes");
|
|
227
|
+
if (!application || !notesValue) usageError(`--manual requires --application and --notes.
|
|
228
|
+
${MANUAL_USAGE}`);
|
|
229
|
+
const notes = readTextOrFile(notesValue).trim();
|
|
230
|
+
if (!notes) usageError("--manual requires non-empty --notes: what you did, and why Cofactor could not prove it.");
|
|
231
|
+
const artifacts = hasFlag(argv, "--artifact") ? getArgValues(argv, "--artifact") : [];
|
|
232
|
+
const applicationId = await resolveApplicationId(argv, apiUrl, token);
|
|
233
|
+
const body = {
|
|
234
|
+
repo: resolveRepo(argv),
|
|
235
|
+
application: applicationId,
|
|
236
|
+
pr,
|
|
237
|
+
criterion,
|
|
238
|
+
manual: true,
|
|
239
|
+
notes,
|
|
240
|
+
artifacts,
|
|
241
|
+
sha: resolveCleanCheckoutSha(argv)
|
|
242
|
+
};
|
|
243
|
+
const text = getArgValue(argv, "--text");
|
|
244
|
+
const detail = getArgValue(argv, "--detail");
|
|
245
|
+
if (text !== void 0) body.text = text;
|
|
246
|
+
if (detail !== void 0) body.detail = detail;
|
|
247
|
+
const res = await apiRequest(
|
|
248
|
+
apiUrl,
|
|
249
|
+
token,
|
|
250
|
+
"POST",
|
|
251
|
+
"/proofs/attach",
|
|
252
|
+
body
|
|
253
|
+
);
|
|
254
|
+
if (!res.ok || !res.data) return fail(res.error ?? "could not attach manual evidence");
|
|
255
|
+
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
256
|
+
}
|
|
191
257
|
async function handleRender(argv, apiUrl, token) {
|
|
192
258
|
const pr = requiredNumber(argv, "--pr");
|
|
193
259
|
const repo = resolveRepo(argv);
|
|
@@ -205,12 +271,21 @@ async function handleDetach(argv, apiUrl, token) {
|
|
|
205
271
|
const pr = requiredNumber(argv, "--pr");
|
|
206
272
|
const criterion = requiredNumber(argv, "--criterion");
|
|
207
273
|
const repo = resolveRepo(argv);
|
|
274
|
+
const test = getArgValue(argv, "--test");
|
|
275
|
+
const perfRun = getArgValue(argv, "--perf-run");
|
|
276
|
+
const manual = hasFlag(argv, "--manual");
|
|
277
|
+
if (flagCount(argv, "--test") > 1 || flagCount(argv, "--perf-run") > 1)
|
|
278
|
+
usageError("Pass each evidence subject flag at most once.");
|
|
279
|
+
if (Number(test !== void 0) + Number(perfRun !== void 0) + Number(manual) > 1)
|
|
280
|
+
usageError("Pass at most one of --test, --perf-run and --manual.");
|
|
281
|
+
if (hasFlag(argv, "--test") && !test || hasFlag(argv, "--perf-run") && !perfRun)
|
|
282
|
+
usageError("--test and --perf-run each require a value.");
|
|
208
283
|
const res = await apiRequest(
|
|
209
284
|
apiUrl,
|
|
210
285
|
token,
|
|
211
286
|
"POST",
|
|
212
287
|
"/proofs/detach",
|
|
213
|
-
{ repo, pr, criterion }
|
|
288
|
+
{ repo, pr, criterion, ...test ? { test } : {}, ...perfRun ? { perfRun } : {}, ...manual ? { manual: true } : {} }
|
|
214
289
|
);
|
|
215
290
|
if (!res.ok || !res.data) return fail(res.error ?? "could not detach proof criterion");
|
|
216
291
|
writeRawOutput(JSON.stringify(res.data, null, 2));
|
|
@@ -300,6 +375,25 @@ function resolveCheckoutCommit(argv) {
|
|
|
300
375
|
const tree = explicitTree ?? gitRevision("HEAD^{tree}");
|
|
301
376
|
return { sha, tree };
|
|
302
377
|
}
|
|
378
|
+
function resolveCleanCheckoutSha(argv) {
|
|
379
|
+
if (gitOutput(["status", "--porcelain"])) return fail("the working tree is dirty; commit and push, sync, and run again");
|
|
380
|
+
return getArgValue(argv, "--sha") ?? gitRevision("HEAD");
|
|
381
|
+
}
|
|
382
|
+
function resolveDefaultBaseCommit() {
|
|
383
|
+
try {
|
|
384
|
+
const defaultRef = execFileSync("git", ["symbolic-ref", "refs/remotes/origin/HEAD"], {
|
|
385
|
+
encoding: "utf8",
|
|
386
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
387
|
+
}).trim();
|
|
388
|
+
return execFileSync("git", ["merge-base", "HEAD", defaultRef], {
|
|
389
|
+
encoding: "utf8",
|
|
390
|
+
stdio: ["ignore", "pipe", "ignore"]
|
|
391
|
+
}).trim() || void 0;
|
|
392
|
+
} catch {
|
|
393
|
+
process.stderr.write("Could not resolve the default base commit; the server will resolve the current base.\n");
|
|
394
|
+
return void 0;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
303
397
|
function gitOutput(args) {
|
|
304
398
|
try {
|
|
305
399
|
return execFileSync("git", args, { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
@@ -320,6 +414,9 @@ function requiredNumber(argv, flag) {
|
|
|
320
414
|
if (!Number.isSafeInteger(parsed) || parsed < 1) usageError(`${flag} must be a positive integer.`);
|
|
321
415
|
return parsed;
|
|
322
416
|
}
|
|
417
|
+
function flagCount(argv, flag) {
|
|
418
|
+
return argv.filter((arg) => arg === flag).length;
|
|
419
|
+
}
|
|
323
420
|
function usageError(message) {
|
|
324
421
|
console.error(`Error: ${message}`);
|
|
325
422
|
process.exit(1);
|
|
@@ -328,9 +425,10 @@ function fail(message) {
|
|
|
328
425
|
console.error(`Error: ${message}`);
|
|
329
426
|
process.exit(1);
|
|
330
427
|
}
|
|
428
|
+
|
|
331
429
|
export {
|
|
332
|
-
|
|
430
|
+
runProofs,
|
|
333
431
|
resolveRepo,
|
|
334
|
-
|
|
432
|
+
parseRepository
|
|
335
433
|
};
|
|
336
|
-
//# sourceMappingURL=
|
|
434
|
+
//# sourceMappingURL=chunk-X7SUSIY3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/proofs.ts"],"sourcesContent":["/**\n * `cofactor proofs`: the Cofactor tests a pull request lists as proving it.\n *\n * - `block <wf…> | --none \"<reason>\"` validates the tests (a new draft, or a\n * fork of an approved test) and prints the block to paste into the pull\n * request description, so nobody hand-formats one.\n * - `status --application <app> --pr <n>` shows what the pull request lists.\n *\n * Backed by `/proofs/*` in `apps/api/src/proofs/routes.ts`.\n *\n * @module proofs\n */\n\nimport process from 'node:process';\nimport { execFileSync } from 'node:child_process';\nimport { appendFile, readFile } from 'node:fs/promises';\nimport { formatProofBlock, type ClassifiedProof, type EvaluatedProof, type ProofVerdict } from '@chatsdet/types';\nimport { PROOFS_GUIDE_SECTIONS, printGuide } from '@chatsdet/content';\nimport { getArgValue, hasFlag, resolveConfig } from './auth.js';\nimport { apiRequest, getArgValues, getGuideSectionArg, readStdin, readTextOrFile } from './cli-helpers.js';\nimport { writeRawOutput } from './brand.js';\nimport { resolveApplicationId } from './environment.js';\n\ntype ApiResult<T> = { ok: boolean; error?: string; data?: T };\ntype ProofStatusView = {\n proof: { headSha: string };\n verdict: ProofVerdict;\n};\n\n/** Flags `resolveConfig` reads, whose values are not positional. */\nconst CONNECTION_FLAGS = new Set(['--api-url', '--token', '--org', '--env']);\n\nconst HELP = [\n 'Usage: cofactor proofs <sub-command>',\n '',\n ' guide [--json] Print the offline guide to proving a change with tests (no login needed)',\n ' block <wf_…> <wrun_…> [<wf_…> <wrun_…> …] Check each test and the run of it you made, and print the proofs block for the pull request description',\n ' block --none \"<reason>\" The block for a pull request no test can prove: say why, and what would make a test possible',\n ' status --application <app>|--repo <owner/repo> --pr <n> [--json] Proofs attached to the pull request',\n ' attach --pr <n> --application <app> --criterion <n> (--test <wf_…> --run <wrun_…> | --perf-run <prun_…>) --asserted <text> [--text <text> --detail <text>] [--node <id> --base <sha>] [--sha <sha> --tree <tree>]',\n ' Perf evidence must be completed, faster or no-change, and on --sha; a slower run is refused. Attach a newer run and detach stale evidence.',\n ' A test with any visual_checkpoint node is a UI test; attach runs it at the PR base and shows checkpoint diffs.',\n ' An approved test that is not a fork is cited as an existing test: its run proves it still works, and it is never promoted.',\n ' attach --pr <n> --application <app> --criterion <n> --manual --notes <text|@file> [--artifact <https-url>]... [--text <text> --detail <text>] [--sha <sha>]',\n ' Only when Cofactor cannot prove the criterion: say what you did and why. Passes the check, marked manual; never promotes anything.',\n ' render --pr <n> Print the pull request proof block',\n ' detach --pr <n> --criterion <n> [--test <wf_…>|--perf-run <prun_…>|--manual] Remove a criterion or one evidence item',\n ' check --pr <n> --sha <sha> [--body-file <path>|--body -] Evaluate the pull request proofs',\n].join('\\n');\n\nexport async function runProofs(argv: string[]): Promise<void> {\n const [subCommand, ...rest] = argv;\n if (!subCommand || subCommand === 'help' || hasFlag(argv, '--help', '-h')) {\n console.log(HELP);\n return;\n }\n if (subCommand === 'guide') {\n printGuide(PROOFS_GUIDE_SECTIONS, getGuideSectionArg(rest), hasFlag(rest, '--json'));\n return;\n }\n const none = getArgValue(rest, '--none');\n // `block --none` needs no server: the reason is the block.\n if (subCommand === 'block' && hasFlag(rest, '--none')) {\n if (rest.some((arg, i) => !arg.startsWith('-') && rest[i - 1] !== '--none' && !CONNECTION_FLAGS.has(rest[i - 1] ?? ''))) {\n console.error('Error: --none is for a pull request no test can prove; list tests or give --none, not both (quote a reason that has several words).');\n process.exit(1);\n }\n if (!none?.trim()) {\n console.error('Error: --none takes a reason: say why no test is possible, and what would make one possible.');\n process.exit(1);\n }\n writeRawOutput(formatProofBlock({ kind: 'none', reason: none.trim() }));\n return;\n }\n if (subCommand === 'block' && (positional(rest).length === 0 || positional(rest).length % 2 !== 0)) {\n console.error('Error: list each test (wf_…) with the run of it that passed (wrun_…), or pass --none \"<reason>\".');\n process.exit(1);\n }\n const { apiUrl, token } = await resolveConfig(argv);\n switch (subCommand) {\n case 'block':\n return handleBlock(rest, apiUrl, token);\n case 'status':\n return handleStatus(rest, apiUrl, token);\n case 'attach':\n return handleAttach(rest, apiUrl, token);\n case 'render':\n return handleRender(rest, apiUrl, token);\n case 'detach':\n return handleDetach(rest, apiUrl, token);\n case 'check':\n return handleCheck(rest, apiUrl, token);\n default:\n console.error(`Unknown proofs sub-command: ${subCommand}\\n\\n${HELP}`);\n process.exit(1);\n }\n}\n\n/** The words that are not flags or flag values: test ids, each followed by its run id. */\nconst positional = (argv: string[]) => argv.filter((arg, i) => !arg.startsWith('-') && !CONNECTION_FLAGS.has(argv[i - 1] ?? ''));\n\nconst describe = (proof: ClassifiedProof) =>\n 'refusal' in proof\n ? `refused: ${proof.message}`\n : proof.kind === 'fork'\n ? `fork of ${proof.originName}`\n : 'new';\n\nasync function handleBlock(argv: string[], apiUrl: string, token: string): Promise<void> {\n const ids = positional(argv);\n const tests = Array.from({ length: ids.length / 2 }, (_, i) => ({ workflowId: ids[2 * i]!, runId: ids[2 * i + 1]! }));\n const res = await apiRequest<ApiResult<{ items: EvaluatedProof[] }>>(apiUrl, token, 'POST', '/proofs/classify', { tests });\n if (!res.ok || !res.data) {\n console.error(`Error: ${res.error ?? 'could not check the tests'}`);\n process.exit(1);\n }\n const listed: { workflowId: string; runId: string; description: string }[] = [];\n let bad = false;\n for (const { test, proof, runProblem } of res.data.items) {\n const problem = 'refusal' in proof ? describe(proof) : runProblem;\n if (problem) {\n bad = true;\n console.error(`${test.workflowId} ${problem}`);\n } else if (!('refusal' in proof)) {\n listed.push({ workflowId: test.workflowId, runId: test.runId ?? '', description: `${proof.name} (${describe(proof)})` });\n }\n }\n if (bad) process.exit(1);\n writeRawOutput(formatProofBlock({ kind: 'workflows', tests: listed }));\n}\n\nasync function handleStatus(argv: string[], apiUrl: string, token: string): Promise<void> {\n const pr = getArgValue(argv, '--pr');\n if (!pr) {\n console.error('Usage: cofactor proofs status --application <app>|--repo <owner/repo> --pr <number> [--json]');\n process.exit(1);\n }\n if (getArgValue(argv, '--application')) {\n const application = await resolveApplicationId(argv, apiUrl, token);\n const query = new URLSearchParams({ application, pr });\n const legacy = await apiRequest<ApiResult<{ prNumber: number; items: ClassifiedProof[] }>>(\n apiUrl,\n token,\n 'GET',\n `/proofs/status?${query}`\n );\n if (!legacy.ok || !legacy.data) return fail(legacy.error ?? 'could not read the pull request proofs');\n if (hasFlag(argv, '--json')) {\n writeRawOutput(JSON.stringify(legacy.data, null, 2));\n return;\n }\n const { items } = legacy.data;\n if (items.length === 0) {\n console.log(`#${pr} lists no tests.`);\n return;\n }\n console.log(`#${pr} lists ${items.length} test${items.length === 1 ? '' : 's'}:`);\n for (const proof of items) console.log(` ${proof.id} ${proof.name ?? ''} ${describe(proof)}`);\n return;\n }\n const repo = resolveRepo(argv);\n const query = new URLSearchParams({ repo, pr });\n const res = await apiRequest<ApiResult<{ proof: ProofStatusView | null }>>(\n apiUrl,\n token,\n 'GET',\n `/proofs/status?${query}`\n );\n if (!res.ok || !res.data) {\n console.error(`Error: ${res.error ?? 'could not read the pull request proofs'}`);\n process.exit(1);\n }\n if (hasFlag(argv, '--json')) {\n writeRawOutput(JSON.stringify(res.data, null, 2));\n return;\n }\n const proof = res.data.proof;\n if (!proof) {\n console.log(`#${pr} has no attached proof criteria.`);\n return;\n }\n console.log(`#${pr} proof status at ${proof.proof.headSha}:`);\n writeRawOutput(proof.verdict.summaryMarkdown);\n}\n\nasync function handleAttach(argv: string[], apiUrl: string, token: string): Promise<void> {\n if (hasFlag(argv, '--manual')) return handleAttachManual(argv, apiUrl, token);\n const pr = requiredNumber(argv, '--pr');\n const criterion = requiredNumber(argv, '--criterion');\n const application = getArgValue(argv, '--application');\n const test = getArgValue(argv, '--test');\n const run = getArgValue(argv, '--run');\n const perfRun = getArgValue(argv, '--perf-run');\n const asserted = getArgValue(argv, '--asserted');\n const subjectCount = Number(test !== undefined || run !== undefined) + Number(perfRun !== undefined);\n if (['--test', '--run', '--perf-run'].some((flag) => flagCount(argv, flag) > 1))\n usageError('Pass each evidence subject flag at most once.');\n if ((hasFlag(argv, '--test') && !test) || (hasFlag(argv, '--run') && !run) || (hasFlag(argv, '--perf-run') && !perfRun))\n usageError('--test, --run and --perf-run each require a value.');\n if (!application || !asserted || subjectCount !== 1 || (test === undefined) !== (run === undefined))\n usageError('Usage: cofactor proofs attach --pr <n> --application <app> --criterion <n> (--test <wf_…> --run <wrun_…> | --perf-run <prun_…>) --asserted <text> [--text <text> --detail <text>]');\n if (hasFlag(argv, '--perf-run') && (hasFlag(argv, '--node') || hasFlag(argv, '--tree') || hasFlag(argv, '--base')))\n usageError('--node, --tree and --base can only be used with --test.');\n const applicationId = await resolveApplicationId(argv, apiUrl, token);\n const repo = resolveRepo(argv);\n const body: Record<string, unknown> = { repo, application: applicationId, pr, criterion, asserted };\n if (perfRun !== undefined) {\n body.sha = resolveCleanCheckoutSha(argv);\n body.perfRun = perfRun;\n } else {\n const { sha, tree } = resolveCheckoutCommit(argv);\n const base = getArgValue(argv, '--base') ?? resolveDefaultBaseCommit();\n Object.assign(body, { test, run, sha, tree, ...(base ? { base } : {}) });\n }\n const text = getArgValue(argv, '--text');\n const detail = getArgValue(argv, '--detail');\n const node = getArgValue(argv, '--node');\n if (text !== undefined) body.text = text;\n if (detail !== undefined) body.detail = detail;\n if (node !== undefined) body.node = node;\n const res = await apiRequest<ApiResult<{ proofId: string; criterion: unknown; evidence: unknown }>>(\n apiUrl,\n token,\n 'POST',\n '/proofs/attach',\n body\n );\n if (!res.ok || !res.data) return fail(res.error ?? 'could not attach proof evidence');\n writeRawOutput(JSON.stringify(res.data, null, 2));\n}\n\nconst MANUAL_USAGE =\n 'Usage: cofactor proofs attach --pr <n> --application <app> --criterion <n> --manual --notes <text|@file> [--artifact <https-url>]... [--text <text> --detail <text>]';\n\n/** M23: the agent's own account of a criterion Cofactor could not prove. */\nasync function handleAttachManual(argv: string[], apiUrl: string, token: string): Promise<void> {\n const conflicting = ['--test', '--run', '--perf-run', '--asserted', '--node', '--tree', '--base'].filter((flag) => hasFlag(argv, flag));\n if (conflicting.length > 0)\n usageError(`--manual takes --notes instead of a test, run or asserted line; remove ${conflicting.join(', ')}.`);\n const pr = requiredNumber(argv, '--pr');\n const criterion = requiredNumber(argv, '--criterion');\n const application = getArgValue(argv, '--application');\n const notesValue = getArgValue(argv, '--notes');\n if (!application || !notesValue) usageError(`--manual requires --application and --notes.\\n${MANUAL_USAGE}`);\n const notes = readTextOrFile(notesValue).trim();\n if (!notes) usageError('--manual requires non-empty --notes: what you did, and why Cofactor could not prove it.');\n const artifacts = hasFlag(argv, '--artifact') ? getArgValues(argv, '--artifact') : [];\n const applicationId = await resolveApplicationId(argv, apiUrl, token);\n const body: Record<string, unknown> = {\n repo: resolveRepo(argv),\n application: applicationId,\n pr,\n criterion,\n manual: true,\n notes,\n artifacts,\n sha: resolveCleanCheckoutSha(argv),\n };\n const text = getArgValue(argv, '--text');\n const detail = getArgValue(argv, '--detail');\n if (text !== undefined) body.text = text;\n if (detail !== undefined) body.detail = detail;\n const res = await apiRequest<ApiResult<{ proofId: string; criterion: unknown; evidence: unknown }>>(\n apiUrl,\n token,\n 'POST',\n '/proofs/attach',\n body\n );\n if (!res.ok || !res.data) return fail(res.error ?? 'could not attach manual evidence');\n writeRawOutput(JSON.stringify(res.data, null, 2));\n}\n\nasync function handleRender(argv: string[], apiUrl: string, token: string): Promise<void> {\n const pr = requiredNumber(argv, '--pr');\n const repo = resolveRepo(argv);\n const query = new URLSearchParams({ repo, pr: String(pr) });\n const res = await apiRequest<ApiResult<{ body: string }>>(\n apiUrl,\n token,\n 'GET',\n `/proofs/render?${query}`\n );\n if (!res.ok || !res.data) return fail(res.error ?? 'could not render pull request proofs');\n writeRawOutput(res.data.body);\n}\n\nasync function handleDetach(argv: string[], apiUrl: string, token: string): Promise<void> {\n const pr = requiredNumber(argv, '--pr');\n const criterion = requiredNumber(argv, '--criterion');\n const repo = resolveRepo(argv);\n const test = getArgValue(argv, '--test');\n const perfRun = getArgValue(argv, '--perf-run');\n const manual = hasFlag(argv, '--manual');\n if (flagCount(argv, '--test') > 1 || flagCount(argv, '--perf-run') > 1)\n usageError('Pass each evidence subject flag at most once.');\n if (Number(test !== undefined) + Number(perfRun !== undefined) + Number(manual) > 1)\n usageError('Pass at most one of --test, --perf-run and --manual.');\n if ((hasFlag(argv, '--test') && !test) || (hasFlag(argv, '--perf-run') && !perfRun))\n usageError('--test and --perf-run each require a value.');\n const res = await apiRequest<ApiResult<{ deleted: true }>>(\n apiUrl,\n token,\n 'POST',\n '/proofs/detach',\n { repo, pr, criterion, ...(test ? { test } : {}), ...(perfRun ? { perfRun } : {}), ...(manual ? { manual: true } : {}) }\n );\n if (!res.ok || !res.data) return fail(res.error ?? 'could not detach proof criterion');\n writeRawOutput(JSON.stringify(res.data, null, 2));\n}\n\nasync function handleCheck(argv: string[], apiUrl: string, token: string): Promise<void> {\n const pr = requiredNumber(argv, '--pr');\n const sha = getArgValue(argv, '--sha');\n if (!sha) usageError('Usage: cofactor proofs check --pr <n> --sha <sha> [--body-file <path>|--body -]');\n const repo = resolveRepo(argv);\n const bodyInput = getArgValue(argv, '--body');\n const bodyFile = getArgValue(argv, '--body-file');\n if (bodyInput !== undefined && (bodyInput !== '-' || bodyFile !== undefined)) {\n usageError('Use --body - for stdin or --body-file <path>.');\n }\n if (bodyInput === undefined && bodyFile === undefined) {\n usageError('Pass the pull request body with --body - or --body-file <path>.');\n }\n let body: string;\n try {\n body = bodyInput === '-' ? await readStdin() : await readFile(bodyFile!, 'utf8');\n } catch (error) {\n return fail(`could not read pull request body: ${error instanceof Error ? error.message : String(error)}`);\n }\n const res = await apiRequest<ApiResult<ProofVerdict | null>>(\n apiUrl,\n token,\n 'POST',\n '/proofs/check',\n { repo, pr, sha, body }\n );\n if (!res.ok) return fail(res.error ?? 'could not check pull request proofs');\n const verdict = res.data;\n if (!verdict) return;\n if (verdict.summaryMarkdown) {\n writeRawOutput(verdict.summaryMarkdown);\n const summaryFile = process.env.GITHUB_STEP_SUMMARY;\n if (summaryFile) {\n try {\n await appendFile(summaryFile, `${verdict.summaryMarkdown}\\n`, 'utf8');\n } catch (error) {\n return fail(`could not append GitHub step summary: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n }\n if (verdict.conclusion === 'failure') process.exit(1);\n}\n\n/** Resolve an explicit repo, Actions context, or the checkout's origin remote. */\nexport function resolveRepo(argv: string[]): string {\n const explicit = getArgValue(argv, '--repo');\n const candidate = explicit ?? process.env.GITHUB_REPOSITORY ?? originRepository();\n const repo = parseRepository(candidate);\n if (!repo) usageError('Could not determine a GitHub repository. Pass --repo <owner/repo> or set GITHUB_REPOSITORY.');\n return repo;\n}\n\nexport function parseRepository(value: string): string | null {\n const normalized = value.trim();\n const bare = normalized.match(/^([^/\\s:]+)\\/([^/\\s:]+?)(?:\\.git)?$/i);\n if (bare) return `${bare[1]}/${bare[2]}`.toLowerCase();\n const scp = normalized.match(/^git@github\\.com:([^/\\s:]+)\\/([^/\\s:]+?)(?:\\.git)?$/i);\n if (scp) return `${scp[1]}/${scp[2]}`.toLowerCase();\n try {\n const url = new URL(normalized);\n if (!['http:', 'https:', 'ssh:'].includes(url.protocol) || url.hostname.toLowerCase() !== 'github.com') return null;\n const path = url.pathname.match(/^\\/([^/\\s]+)\\/([^/\\s]+?)(?:\\.git)?\\/?$/i);\n return path ? `${path[1]}/${path[2]}`.toLowerCase() : null;\n } catch {\n return null;\n }\n}\n\nfunction originRepository(): string {\n try {\n return execFileSync('git', ['remote', 'get-url', 'origin'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();\n } catch {\n return '';\n }\n}\n\nfunction resolveCheckoutCommit(argv: string[]): { sha: string; tree: string } {\n const explicitSha = getArgValue(argv, '--sha');\n const explicitTree = getArgValue(argv, '--tree');\n if (explicitSha !== undefined && explicitTree !== undefined) {\n return { sha: explicitSha, tree: explicitTree };\n }\n if (gitOutput(['status', '--porcelain'])) {\n return fail('the working tree is dirty; commit and push, sync, and run again');\n }\n const sha = explicitSha ?? gitRevision('HEAD');\n const tree = explicitTree ?? gitRevision('HEAD^{tree}');\n return { sha, tree };\n}\n\nfunction resolveCleanCheckoutSha(argv: string[]): string {\n if (gitOutput(['status', '--porcelain'])) return fail('the working tree is dirty; commit and push, sync, and run again');\n return getArgValue(argv, '--sha') ?? gitRevision('HEAD');\n}\n\nfunction resolveDefaultBaseCommit(): string | undefined {\n try {\n const defaultRef = execFileSync('git', ['symbolic-ref', 'refs/remotes/origin/HEAD'], {\n encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],\n }).trim();\n return execFileSync('git', ['merge-base', 'HEAD', defaultRef], {\n encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],\n }).trim() || undefined;\n } catch {\n // The server resolves its current base when the CLI cannot compute a merge base.\n process.stderr.write('Could not resolve the default base commit; the server will resolve the current base.\\n');\n return undefined;\n }\n}\n\nfunction gitOutput(args: string[]): string {\n try {\n return execFileSync('git', args, { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();\n } catch {\n return fail('could not inspect the working tree; run this command from a git checkout');\n }\n}\n\nfunction gitRevision(revision: string): string {\n try {\n return execFileSync('git', ['rev-parse', revision], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();\n } catch {\n return fail(`could not resolve ${revision}; run this command from a git checkout`);\n }\n}\n\nfunction requiredNumber(argv: string[], flag: string): number {\n const value = getArgValue(argv, flag);\n const parsed = value ? Number(value) : Number.NaN;\n if (!Number.isSafeInteger(parsed) || parsed < 1) usageError(`${flag} must be a positive integer.`);\n return parsed;\n}\n\nfunction flagCount(argv: string[], flag: string): number {\n return argv.filter((arg) => arg === flag).length;\n}\n\nfunction usageError(message: string): never {\n console.error(`Error: ${message}`);\n process.exit(1);\n}\n\nfunction fail(message: string): never {\n console.error(`Error: ${message}`);\n process.exit(1);\n}\n"],"mappings":"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","names":["query","proof"]}
|
|
@@ -2,15 +2,15 @@ import { createRequire as __cr } from "module"; import { fileURLToPath as __fup
|
|
|
2
2
|
import {
|
|
3
3
|
apiRequest,
|
|
4
4
|
readStdin
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VKZOHJCE.js";
|
|
6
6
|
import {
|
|
7
7
|
getArgValue,
|
|
8
8
|
hasFlag,
|
|
9
9
|
resolveConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WRBU6TX7.js";
|
|
11
11
|
import {
|
|
12
12
|
writeRawOutput
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MJVUMVLO.js";
|
|
14
14
|
|
|
15
15
|
// src/utilities.ts
|
|
16
16
|
import fs from "fs/promises";
|
|
@@ -434,4 +434,4 @@ export {
|
|
|
434
434
|
parseDurationSeconds,
|
|
435
435
|
runUtilities
|
|
436
436
|
};
|
|
437
|
-
//# sourceMappingURL=chunk-
|
|
437
|
+
//# sourceMappingURL=chunk-XSSZMG65.js.map
|
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
fetchProperties,
|
|
7
7
|
findCredential,
|
|
8
8
|
getApplicationArg
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VKZOHJCE.js";
|
|
10
10
|
import "./chunk-S3Q7MDCS.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4UZN6TVT.js";
|
|
12
12
|
import {
|
|
13
13
|
apiFetch,
|
|
14
14
|
exitOnFailure,
|
|
15
15
|
getArgValue,
|
|
16
16
|
hasFlag,
|
|
17
17
|
resolveConfig
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-WRBU6TX7.js";
|
|
19
19
|
import {
|
|
20
20
|
writeRawOutput
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MJVUMVLO.js";
|
|
22
22
|
import "./chunk-TOWZAG3I.js";
|
|
23
23
|
|
|
24
24
|
// src/credential.ts
|
|
@@ -490,4 +490,4 @@ async function runCredential(argv) {
|
|
|
490
490
|
export {
|
|
491
491
|
runCredential
|
|
492
492
|
};
|
|
493
|
-
//# sourceMappingURL=credential-
|
|
493
|
+
//# sourceMappingURL=credential-4RFRU6OH.js.map
|
|
@@ -4,17 +4,17 @@ import {
|
|
|
4
4
|
fetchProperties,
|
|
5
5
|
getApplicationArg,
|
|
6
6
|
getPositionalArg
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VKZOHJCE.js";
|
|
8
8
|
import "./chunk-S3Q7MDCS.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-4UZN6TVT.js";
|
|
10
10
|
import {
|
|
11
11
|
getArgValue,
|
|
12
12
|
hasFlag,
|
|
13
13
|
resolveConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WRBU6TX7.js";
|
|
15
15
|
import {
|
|
16
16
|
writeRawOutput
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MJVUMVLO.js";
|
|
18
18
|
import "./chunk-TOWZAG3I.js";
|
|
19
19
|
|
|
20
20
|
// src/credential-template.ts
|
|
@@ -418,4 +418,4 @@ async function runCredentialTemplate(argv) {
|
|
|
418
418
|
export {
|
|
419
419
|
runCredentialTemplate
|
|
420
420
|
};
|
|
421
|
-
//# sourceMappingURL=credential-template-
|
|
421
|
+
//# sourceMappingURL=credential-template-36PFUTBN.js.map
|
|
@@ -5,25 +5,25 @@ import {
|
|
|
5
5
|
formatSlackChannel,
|
|
6
6
|
loadSlackChannels,
|
|
7
7
|
resolveSlackChannelIds
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-OQFCZERZ.js";
|
|
9
|
+
import "./chunk-LJFVRJCA.js";
|
|
10
|
+
import "./chunk-EJ3ZPH5U.js";
|
|
11
11
|
import "./chunk-DEK6B6LX.js";
|
|
12
12
|
import {
|
|
13
13
|
apiRequest,
|
|
14
14
|
getPositionalArgs
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VKZOHJCE.js";
|
|
16
16
|
import "./chunk-S3Q7MDCS.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-4UZN6TVT.js";
|
|
18
18
|
import {
|
|
19
19
|
GLOBAL_VALUE_FLAGS,
|
|
20
20
|
getArgValue,
|
|
21
21
|
hasFlag,
|
|
22
22
|
resolveConfig
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WRBU6TX7.js";
|
|
24
24
|
import {
|
|
25
25
|
writeRawOutput
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MJVUMVLO.js";
|
|
27
27
|
import "./chunk-TOWZAG3I.js";
|
|
28
28
|
|
|
29
29
|
// src/digest.ts
|
|
@@ -303,4 +303,4 @@ export {
|
|
|
303
303
|
formatDigest,
|
|
304
304
|
runDigest
|
|
305
305
|
};
|
|
306
|
-
//# sourceMappingURL=digest-
|
|
306
|
+
//# sourceMappingURL=digest-THMKFMP7.js.map
|
|
@@ -2,20 +2,20 @@ import { createRequire as __cr } from "module"; import { fileURLToPath as __fup
|
|
|
2
2
|
import {
|
|
3
3
|
apiRequest,
|
|
4
4
|
getPositionalArgs
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VKZOHJCE.js";
|
|
6
6
|
import {
|
|
7
7
|
getSubDir
|
|
8
8
|
} from "./chunk-S3Q7MDCS.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-4UZN6TVT.js";
|
|
10
10
|
import {
|
|
11
11
|
GLOBAL_VALUE_FLAGS,
|
|
12
12
|
getArgValue,
|
|
13
13
|
hasFlag,
|
|
14
14
|
resolveConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WRBU6TX7.js";
|
|
16
16
|
import {
|
|
17
17
|
writeRawOutput
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-MJVUMVLO.js";
|
|
19
19
|
import "./chunk-TOWZAG3I.js";
|
|
20
20
|
|
|
21
21
|
// src/docs.ts
|
|
@@ -451,4 +451,4 @@ async function runDocs(argv) {
|
|
|
451
451
|
export {
|
|
452
452
|
runDocs
|
|
453
453
|
};
|
|
454
|
-
//# sourceMappingURL=docs-
|
|
454
|
+
//# sourceMappingURL=docs-ZGM53L67.js.map
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
printNoSessionForOrg,
|
|
13
13
|
readAllProfiles,
|
|
14
14
|
readStoredAuth
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WRBU6TX7.js";
|
|
16
16
|
import {
|
|
17
17
|
readBrandEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-MJVUMVLO.js";
|
|
19
19
|
import "./chunk-TOWZAG3I.js";
|
|
20
20
|
|
|
21
21
|
// src/doctor.ts
|
|
@@ -154,4 +154,4 @@ async function runAuthDoctor(argv) {
|
|
|
154
154
|
export {
|
|
155
155
|
runAuthDoctor
|
|
156
156
|
};
|
|
157
|
-
//# sourceMappingURL=doctor-
|
|
157
|
+
//# sourceMappingURL=doctor-Z2XBGBM3.js.map
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
resolveOrCreateSandboxApplication,
|
|
9
9
|
runEnvironment,
|
|
10
10
|
stdinAssignment
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-JEHHEMUL.js";
|
|
12
|
+
import "./chunk-RVD6J6IZ.js";
|
|
13
|
+
import "./chunk-VKZOHJCE.js";
|
|
14
14
|
import "./chunk-S3Q7MDCS.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-4UZN6TVT.js";
|
|
16
|
+
import "./chunk-WRBU6TX7.js";
|
|
17
|
+
import "./chunk-MJVUMVLO.js";
|
|
18
18
|
import "./chunk-TOWZAG3I.js";
|
|
19
19
|
export {
|
|
20
20
|
fetchEnvironments,
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
runEnvironment,
|
|
27
27
|
stdinAssignment
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=environment-
|
|
29
|
+
//# sourceMappingURL=environment-5YVZXBN7.js.map
|