@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.
Files changed (225) hide show
  1. package/README.md +2 -0
  2. package/dist/{account-3ZG24MOE.js → account-MRZ54P5P.js} +5 -5
  3. package/dist/{alert-5G7PTAX2.js → alert-XBHELHEI.js} +8 -8
  4. package/dist/{api-catalog-IBYAFKKQ.js → api-catalog-GWYRX53L.js} +5 -5
  5. package/dist/{api-key-UXC44BDR.js → api-key-FH6JN447.js} +5 -5
  6. package/dist/{attachment-T6IRFQW3.js → attachment-J7GRVT5F.js} +5 -5
  7. package/dist/{auth-SHOCJE6Z.js → auth-VZZQXRDR.js} +3 -3
  8. package/dist/{benchmark-NJ2U6VTC.js → benchmark-A3SNDARF.js} +5 -5
  9. package/dist/{blackcat-RQJVFGXQ.js → blackcat-UM6TBQBN.js} +3 -3
  10. package/dist/{chunk-DHAGRM2F.js → chunk-33U56YGD.js} +14 -5
  11. package/dist/{chunk-DHAGRM2F.js.map → chunk-33U56YGD.js.map} +1 -1
  12. package/dist/{chunk-M752EUK3.js → chunk-3JU4UYYN.js} +5 -5
  13. package/dist/{chunk-G6BCST3G.js → chunk-3ZOUNCA5.js} +7 -7
  14. package/dist/{chunk-76Z6E7XX.js → chunk-4UZN6TVT.js} +74 -131
  15. package/dist/chunk-4UZN6TVT.js.map +1 -0
  16. package/dist/{chunk-ABT3BLRC.js → chunk-5TKXHS3X.js} +3 -3
  17. package/dist/{chunk-QCYSONXI.js → chunk-CRYHWO4M.js} +2 -2
  18. package/dist/{chunk-QTYUM4ZB.js → chunk-EJ3ZPH5U.js} +23 -187
  19. package/dist/chunk-EJ3ZPH5U.js.map +1 -0
  20. package/dist/{chunk-I5RHTCPY.js → chunk-EL6KJ4PO.js} +4 -4
  21. package/dist/{chunk-ZL4O6C42.js → chunk-HXBK3AGD.js} +2 -2
  22. package/dist/{chunk-PRERH4DN.js → chunk-I2SOHQ2C.js} +3 -3
  23. package/dist/{chunk-CYSPCGO6.js → chunk-JEHHEMUL.js} +5 -5
  24. package/dist/{chunk-LIEADTEF.js → chunk-LJFVRJCA.js} +2 -2
  25. package/dist/{chunk-UEJ2HTKU.js → chunk-MJVUMVLO.js} +19 -1
  26. package/dist/chunk-MJVUMVLO.js.map +1 -0
  27. package/dist/chunk-N55RKCGR.js +24 -0
  28. package/dist/chunk-N55RKCGR.js.map +1 -0
  29. package/dist/{chunk-PHNH3CEU.js → chunk-O4Z44BR7.js} +5 -5
  30. package/dist/{chunk-QA37WVF6.js → chunk-OQFCZERZ.js} +6 -6
  31. package/dist/{chunk-EUVB6Y3C.js → chunk-P7L5KELH.js} +8 -8
  32. package/dist/chunk-P7L5KELH.js.map +1 -0
  33. package/dist/{chunk-Z3MDQSZG.js → chunk-PJFFGQSB.js} +2 -2
  34. package/dist/{chunk-IY3ZK46I.js → chunk-QOVJUSSL.js} +2 -2
  35. package/dist/{chunk-RPJMQBB5.js → chunk-QXU4G4YN.js} +3 -3
  36. package/dist/{chunk-SZSTJIYU.js → chunk-RRSUKARV.js} +4 -4
  37. package/dist/{chunk-775FI436.js → chunk-RVD6J6IZ.js} +2 -2
  38. package/dist/{chunk-5UUIBY6E.js → chunk-TAVBFLCR.js} +3 -3
  39. package/dist/{chunk-ROX7N3RK.js → chunk-V7HB5LAU.js} +10 -7
  40. package/dist/chunk-V7HB5LAU.js.map +1 -0
  41. package/dist/{chunk-LL6TSQWV.js → chunk-VKZOHJCE.js} +3 -3
  42. package/dist/chunk-VKZOHJCE.js.map +1 -0
  43. package/dist/{chunk-3HI6QC4V.js → chunk-WRBU6TX7.js} +2 -2
  44. package/dist/{proofs-TXJGAP5F.js → chunk-X7SUSIY3.js} +118 -20
  45. package/dist/chunk-X7SUSIY3.js.map +1 -0
  46. package/dist/{chunk-BF3IPGMP.js → chunk-XSSZMG65.js} +4 -4
  47. package/dist/{credential-TWSWV64F.js → credential-4RFRU6OH.js} +5 -5
  48. package/dist/{credential-template-XO5D5AI3.js → credential-template-36PFUTBN.js} +5 -5
  49. package/dist/{digest-SLEFOLPV.js → digest-THMKFMP7.js} +8 -8
  50. package/dist/{docs-IDC4V4WQ.js → docs-ZGM53L67.js} +5 -5
  51. package/dist/{doctor-SDAYEA6C.js → doctor-Z2XBGBM3.js} +3 -3
  52. package/dist/{environment-VBUIBQ6O.js → environment-5YVZXBN7.js} +7 -7
  53. package/dist/eval-SO5TPD37.js +1177 -0
  54. package/dist/eval-SO5TPD37.js.map +1 -0
  55. package/dist/{exploration-IREIR5PO.js → exploration-GZ4WUJJH.js} +5 -5
  56. package/dist/{exploratory-test-4Q7BMEFT.js → exploratory-test-Y7P4ZDLD.js} +5 -5
  57. package/dist/{external-run-S7LULKPT.js → external-run-IJGGZOGI.js} +7 -7
  58. package/dist/{feature-flag-IASHTUGU.js → feature-flag-UH6Z7774.js} +5 -5
  59. package/dist/{flow-IBEZFZTU.js → flow-MRWAQYZZ.js} +5 -5
  60. package/dist/{github-HAEZRULP.js → github-VDJU3PU3.js} +6 -6
  61. package/dist/index.js +101 -82
  62. package/dist/index.js.map +1 -1
  63. package/dist/{init-LT2TZMQY.js → init-CROSTPA6.js} +5 -5
  64. package/dist/{install-RTEYH6TK.js → install-ECR7OLAY.js} +5 -5
  65. package/dist/{issues-5GE277R2.js → issues-K5TL2S4Z.js} +7 -7
  66. package/dist/{knobs-AMIWGYUZ.js → knobs-OKQFBQLK.js} +5 -5
  67. package/dist/{landing-3VLVVQL5.js → landing-XANIBPVM.js} +7 -7
  68. package/dist/{list-GDJR6UY6.js → list-64GX47Q4.js} +5 -5
  69. package/dist/{local-4R6GVW7U.js → local-QMQY2ZUX.js} +7 -7
  70. package/dist/{login-IXVAWTLO.js → login-I7UQ3GTM.js} +5 -5
  71. package/dist/{mcp-BM2MJWX4.js → mcp-XZV63DX5.js} +11 -11
  72. package/dist/{mcp-BM2MJWX4.js.map → mcp-XZV63DX5.js.map} +1 -1
  73. package/dist/{metrics-SSIP5CEB.js → metrics-KBTQ3KGZ.js} +5 -5
  74. package/dist/{monitor-ESZYHXT2.js → monitor-UGWY43IU.js} +5 -5
  75. package/dist/perf-CCHWHCSR.js +961 -0
  76. package/dist/perf-CCHWHCSR.js.map +1 -0
  77. package/dist/{product-VCGUV5TH.js → product-KLG2ZTHC.js} +5 -5
  78. package/dist/{product-map-AXKZNQDM.js → product-map-AMEZ76EQ.js} +5 -5
  79. package/dist/{prompts-FVPSON2N.js → prompts-ZVQNGL7X.js} +5 -5
  80. package/dist/proofs-QCNSQAPX.js +20 -0
  81. package/dist/{property-XEPCC7KQ.js → property-PJDQFHAL.js} +6 -6
  82. package/dist/{psql-JKF3OYYJ.js → psql-AURAN27C.js} +5 -5
  83. package/dist/{record-REQ37S54.js → record-SYWBTUOB.js} +6 -6
  84. package/dist/{redis-WGHT2GJB.js → redis-2H752SKO.js} +5 -5
  85. package/dist/{release-SNDIVIA6.js → release-OSIYUXSC.js} +5 -5
  86. package/dist/{runbook-XFJG2LFC.js → runbook-7LVHF6KV.js} +5 -5
  87. package/dist/{sandbox-DYCKLCMY.js → sandbox-TJQPMRGS.js} +18 -30
  88. package/dist/sandbox-TJQPMRGS.js.map +1 -0
  89. package/dist/{scenarios-PVHCKP55.js → scenarios-P2ABU4HK.js} +5 -5
  90. package/dist/{schedule-DGC7CX23.js → schedule-XLS56NP5.js} +8 -8
  91. package/dist/{session-ERGUFDDI.js → session-ACSFC3UB.js} +8 -8
  92. package/dist/{skill-6QO2E3TB.js → skill-F7I5P6AI.js} +43 -28
  93. package/dist/{skill-6QO2E3TB.js.map → skill-F7I5P6AI.js.map} +1 -1
  94. package/dist/{slack-WE7THLLH.js → slack-ZEK4GRND.js} +6 -6
  95. package/dist/{spec-SEOY7N3L.js → spec-XPIRRSV6.js} +5 -5
  96. package/dist/{src-CCK3TKBX.js → src-N7ZCYCXU.js} +4 -4
  97. package/dist/{src-AEWV5HYH.js → src-XSBBMVGW.js} +3 -3
  98. package/dist/{start-EPGLHTND.js → start-DKWLOQI6.js} +5 -5
  99. package/dist/{status-DTE2GXM2.js → status-K7KH5DI3.js} +5 -5
  100. package/dist/{tag-GIFEWGBL.js → tag-2Y3OMQQC.js} +6 -6
  101. package/dist/{task-VLJCHSFB.js → task-4PIOC4QV.js} +6 -6
  102. package/dist/{teams-J2OOJBL4.js → teams-KUM56BE2.js} +83 -47
  103. package/dist/teams-KUM56BE2.js.map +1 -0
  104. package/dist/{test-suite-CTACGIAZ.js → test-suite-SW25YGJV.js} +138 -96
  105. package/dist/test-suite-SW25YGJV.js.map +1 -0
  106. package/dist/{trace-RWQDYL4K.js → trace-QPXHYBLA.js} +7 -7
  107. package/dist/{triage-6UAXLCGU.js → triage-EZABRZZM.js} +6 -6
  108. package/dist/trigger-7C7KX5KH.js +137 -0
  109. package/dist/trigger-7C7KX5KH.js.map +1 -0
  110. package/dist/{update-check-QRREAM3N.js → update-check-E3X7UIY6.js} +3 -3
  111. package/dist/{upgrade-5Y655TQ6.js → upgrade-EJGTMW44.js} +4 -4
  112. package/dist/{usage-KCXFY46V.js → usage-GZCQDULF.js} +7 -7
  113. package/dist/{utilities-SUON2KZK.js → utilities-RIITD53A.js} +6 -6
  114. package/dist/{visual-GJZVJC32.js → visual-FH67OKS2.js} +5 -5
  115. package/dist/{workflow-R5QAXWBX.js → workflow-34YJZ2QQ.js} +38 -86
  116. package/dist/workflow-34YJZ2QQ.js.map +1 -0
  117. package/dist/{workflow-cache-PFBTWLGM.js → workflow-cache-YQ3BGJIG.js} +17 -17
  118. package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js → workflow-cache-convergence-resolve-SPLBRSNK.js} +5 -5
  119. package/dist/{workflow-debug-RACNWWOL.js → workflow-debug-HZB7TJGK.js} +10 -10
  120. package/dist/workflow-debug-HZB7TJGK.js.map +1 -0
  121. package/dist/{workflow-feedback-RJIQ5R3R.js → workflow-feedback-6UOTIWIQ.js} +5 -5
  122. package/dist/{workflow-fork-LINDCYJ3.js → workflow-fork-IDYHAHCX.js} +5 -5
  123. package/dist/workflow-promotion-U6WYFY5U.js +62 -0
  124. package/dist/workflow-promotion-U6WYFY5U.js.map +1 -0
  125. package/dist/{workflow-proposals-E4EXKAGM.js → workflow-proposals-MMVNIQT3.js} +5 -5
  126. package/dist/{workflow-revisions-5M6APN6R.js → workflow-revisions-BPUOLCZB.js} +5 -5
  127. package/dist/{workflow-status-7KL73WS2.js → workflow-status-RA3IEMEW.js} +5 -5
  128. package/package.json +3 -2
  129. package/dist/chat-target-IZ7YLLU3.js +0 -502
  130. package/dist/chat-target-IZ7YLLU3.js.map +0 -1
  131. package/dist/chunk-76Z6E7XX.js.map +0 -1
  132. package/dist/chunk-EUVB6Y3C.js.map +0 -1
  133. package/dist/chunk-LL6TSQWV.js.map +0 -1
  134. package/dist/chunk-QTYUM4ZB.js.map +0 -1
  135. package/dist/chunk-ROX7N3RK.js.map +0 -1
  136. package/dist/chunk-UEJ2HTKU.js.map +0 -1
  137. package/dist/proofs-TXJGAP5F.js.map +0 -1
  138. package/dist/sandbox-DYCKLCMY.js.map +0 -1
  139. package/dist/teams-J2OOJBL4.js.map +0 -1
  140. package/dist/test-suite-CTACGIAZ.js.map +0 -1
  141. package/dist/workflow-R5QAXWBX.js.map +0 -1
  142. /package/dist/{account-3ZG24MOE.js.map → account-MRZ54P5P.js.map} +0 -0
  143. /package/dist/{alert-5G7PTAX2.js.map → alert-XBHELHEI.js.map} +0 -0
  144. /package/dist/{api-catalog-IBYAFKKQ.js.map → api-catalog-GWYRX53L.js.map} +0 -0
  145. /package/dist/{api-key-UXC44BDR.js.map → api-key-FH6JN447.js.map} +0 -0
  146. /package/dist/{attachment-T6IRFQW3.js.map → attachment-J7GRVT5F.js.map} +0 -0
  147. /package/dist/{auth-SHOCJE6Z.js.map → auth-VZZQXRDR.js.map} +0 -0
  148. /package/dist/{benchmark-NJ2U6VTC.js.map → benchmark-A3SNDARF.js.map} +0 -0
  149. /package/dist/{blackcat-RQJVFGXQ.js.map → blackcat-UM6TBQBN.js.map} +0 -0
  150. /package/dist/{chunk-M752EUK3.js.map → chunk-3JU4UYYN.js.map} +0 -0
  151. /package/dist/{chunk-G6BCST3G.js.map → chunk-3ZOUNCA5.js.map} +0 -0
  152. /package/dist/{chunk-ABT3BLRC.js.map → chunk-5TKXHS3X.js.map} +0 -0
  153. /package/dist/{chunk-QCYSONXI.js.map → chunk-CRYHWO4M.js.map} +0 -0
  154. /package/dist/{chunk-I5RHTCPY.js.map → chunk-EL6KJ4PO.js.map} +0 -0
  155. /package/dist/{chunk-ZL4O6C42.js.map → chunk-HXBK3AGD.js.map} +0 -0
  156. /package/dist/{chunk-PRERH4DN.js.map → chunk-I2SOHQ2C.js.map} +0 -0
  157. /package/dist/{chunk-CYSPCGO6.js.map → chunk-JEHHEMUL.js.map} +0 -0
  158. /package/dist/{chunk-LIEADTEF.js.map → chunk-LJFVRJCA.js.map} +0 -0
  159. /package/dist/{chunk-PHNH3CEU.js.map → chunk-O4Z44BR7.js.map} +0 -0
  160. /package/dist/{chunk-QA37WVF6.js.map → chunk-OQFCZERZ.js.map} +0 -0
  161. /package/dist/{chunk-Z3MDQSZG.js.map → chunk-PJFFGQSB.js.map} +0 -0
  162. /package/dist/{chunk-IY3ZK46I.js.map → chunk-QOVJUSSL.js.map} +0 -0
  163. /package/dist/{chunk-RPJMQBB5.js.map → chunk-QXU4G4YN.js.map} +0 -0
  164. /package/dist/{chunk-SZSTJIYU.js.map → chunk-RRSUKARV.js.map} +0 -0
  165. /package/dist/{chunk-775FI436.js.map → chunk-RVD6J6IZ.js.map} +0 -0
  166. /package/dist/{chunk-5UUIBY6E.js.map → chunk-TAVBFLCR.js.map} +0 -0
  167. /package/dist/{chunk-3HI6QC4V.js.map → chunk-WRBU6TX7.js.map} +0 -0
  168. /package/dist/{chunk-BF3IPGMP.js.map → chunk-XSSZMG65.js.map} +0 -0
  169. /package/dist/{credential-TWSWV64F.js.map → credential-4RFRU6OH.js.map} +0 -0
  170. /package/dist/{credential-template-XO5D5AI3.js.map → credential-template-36PFUTBN.js.map} +0 -0
  171. /package/dist/{digest-SLEFOLPV.js.map → digest-THMKFMP7.js.map} +0 -0
  172. /package/dist/{docs-IDC4V4WQ.js.map → docs-ZGM53L67.js.map} +0 -0
  173. /package/dist/{doctor-SDAYEA6C.js.map → doctor-Z2XBGBM3.js.map} +0 -0
  174. /package/dist/{environment-VBUIBQ6O.js.map → environment-5YVZXBN7.js.map} +0 -0
  175. /package/dist/{exploration-IREIR5PO.js.map → exploration-GZ4WUJJH.js.map} +0 -0
  176. /package/dist/{exploratory-test-4Q7BMEFT.js.map → exploratory-test-Y7P4ZDLD.js.map} +0 -0
  177. /package/dist/{external-run-S7LULKPT.js.map → external-run-IJGGZOGI.js.map} +0 -0
  178. /package/dist/{feature-flag-IASHTUGU.js.map → feature-flag-UH6Z7774.js.map} +0 -0
  179. /package/dist/{flow-IBEZFZTU.js.map → flow-MRWAQYZZ.js.map} +0 -0
  180. /package/dist/{github-HAEZRULP.js.map → github-VDJU3PU3.js.map} +0 -0
  181. /package/dist/{init-LT2TZMQY.js.map → init-CROSTPA6.js.map} +0 -0
  182. /package/dist/{install-RTEYH6TK.js.map → install-ECR7OLAY.js.map} +0 -0
  183. /package/dist/{issues-5GE277R2.js.map → issues-K5TL2S4Z.js.map} +0 -0
  184. /package/dist/{knobs-AMIWGYUZ.js.map → knobs-OKQFBQLK.js.map} +0 -0
  185. /package/dist/{landing-3VLVVQL5.js.map → landing-XANIBPVM.js.map} +0 -0
  186. /package/dist/{list-GDJR6UY6.js.map → list-64GX47Q4.js.map} +0 -0
  187. /package/dist/{local-4R6GVW7U.js.map → local-QMQY2ZUX.js.map} +0 -0
  188. /package/dist/{login-IXVAWTLO.js.map → login-I7UQ3GTM.js.map} +0 -0
  189. /package/dist/{metrics-SSIP5CEB.js.map → metrics-KBTQ3KGZ.js.map} +0 -0
  190. /package/dist/{monitor-ESZYHXT2.js.map → monitor-UGWY43IU.js.map} +0 -0
  191. /package/dist/{product-VCGUV5TH.js.map → product-KLG2ZTHC.js.map} +0 -0
  192. /package/dist/{product-map-AXKZNQDM.js.map → product-map-AMEZ76EQ.js.map} +0 -0
  193. /package/dist/{prompts-FVPSON2N.js.map → prompts-ZVQNGL7X.js.map} +0 -0
  194. /package/dist/{src-AEWV5HYH.js.map → proofs-QCNSQAPX.js.map} +0 -0
  195. /package/dist/{property-XEPCC7KQ.js.map → property-PJDQFHAL.js.map} +0 -0
  196. /package/dist/{psql-JKF3OYYJ.js.map → psql-AURAN27C.js.map} +0 -0
  197. /package/dist/{record-REQ37S54.js.map → record-SYWBTUOB.js.map} +0 -0
  198. /package/dist/{redis-WGHT2GJB.js.map → redis-2H752SKO.js.map} +0 -0
  199. /package/dist/{release-SNDIVIA6.js.map → release-OSIYUXSC.js.map} +0 -0
  200. /package/dist/{runbook-XFJG2LFC.js.map → runbook-7LVHF6KV.js.map} +0 -0
  201. /package/dist/{scenarios-PVHCKP55.js.map → scenarios-P2ABU4HK.js.map} +0 -0
  202. /package/dist/{schedule-DGC7CX23.js.map → schedule-XLS56NP5.js.map} +0 -0
  203. /package/dist/{session-ERGUFDDI.js.map → session-ACSFC3UB.js.map} +0 -0
  204. /package/dist/{slack-WE7THLLH.js.map → slack-ZEK4GRND.js.map} +0 -0
  205. /package/dist/{spec-SEOY7N3L.js.map → spec-XPIRRSV6.js.map} +0 -0
  206. /package/dist/{src-CCK3TKBX.js.map → src-N7ZCYCXU.js.map} +0 -0
  207. /package/dist/{tag-GIFEWGBL.js.map → src-XSBBMVGW.js.map} +0 -0
  208. /package/dist/{start-EPGLHTND.js.map → start-DKWLOQI6.js.map} +0 -0
  209. /package/dist/{status-DTE2GXM2.js.map → status-K7KH5DI3.js.map} +0 -0
  210. /package/dist/{trace-RWQDYL4K.js.map → tag-2Y3OMQQC.js.map} +0 -0
  211. /package/dist/{task-VLJCHSFB.js.map → task-4PIOC4QV.js.map} +0 -0
  212. /package/dist/{triage-6UAXLCGU.js.map → trace-QPXHYBLA.js.map} +0 -0
  213. /package/dist/{update-check-QRREAM3N.js.map → triage-EZABRZZM.js.map} +0 -0
  214. /package/dist/{upgrade-5Y655TQ6.js.map → update-check-E3X7UIY6.js.map} +0 -0
  215. /package/dist/{utilities-SUON2KZK.js.map → upgrade-EJGTMW44.js.map} +0 -0
  216. /package/dist/{usage-KCXFY46V.js.map → usage-GZCQDULF.js.map} +0 -0
  217. /package/dist/{workflow-debug-RACNWWOL.js.map → utilities-RIITD53A.js.map} +0 -0
  218. /package/dist/{visual-GJZVJC32.js.map → visual-FH67OKS2.js.map} +0 -0
  219. /package/dist/{workflow-cache-PFBTWLGM.js.map → workflow-cache-YQ3BGJIG.js.map} +0 -0
  220. /package/dist/{workflow-cache-convergence-resolve-UZGRPC3B.js.map → workflow-cache-convergence-resolve-SPLBRSNK.js.map} +0 -0
  221. /package/dist/{workflow-feedback-RJIQ5R3R.js.map → workflow-feedback-6UOTIWIQ.js.map} +0 -0
  222. /package/dist/{workflow-fork-LINDCYJ3.js.map → workflow-fork-IDYHAHCX.js.map} +0 -0
  223. /package/dist/{workflow-proposals-E4EXKAGM.js.map → workflow-proposals-MMVNIQT3.js.map} +0 -0
  224. /package/dist/{workflow-revisions-5M6APN6R.js.map → workflow-revisions-BPUOLCZB.js.map} +0 -0
  225. /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-CYSPCGO6.js";
5
- import "./chunk-775FI436.js";
4
+ } from "./chunk-JEHHEMUL.js";
6
5
  import {
7
6
  apiRequest,
8
- readStdin
9
- } from "./chunk-LL6TSQWV.js";
10
- import "./chunk-S3Q7MDCS.js";
7
+ getArgValues,
8
+ getGuideSectionArg,
9
+ readStdin,
10
+ readTextOrFile
11
+ } from "./chunk-VKZOHJCE.js";
11
12
  import {
12
13
  formatProofBlock
13
- } from "./chunk-76Z6E7XX.js";
14
+ } from "./chunk-4UZN6TVT.js";
14
15
  import {
15
16
  getArgValue,
16
17
  hasFlag,
17
18
  resolveConfig
18
- } from "./chunk-3HI6QC4V.js";
19
+ } from "./chunk-WRBU6TX7.js";
19
20
  import {
21
+ PROOFS_GUIDE_SECTIONS,
22
+ printGuide,
20
23
  writeRawOutput
21
- } from "./chunk-UEJ2HTKU.js";
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> Remove a criterion and its evidence",
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
- if (!application || !test || !run || !asserted) {
169
- usageError("Usage: cofactor proofs attach --pr <n> --application <app> --criterion <n> --test <wf_\u2026> --run <wrun_\u2026> --asserted <text> [--text <text> --detail <text>]");
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 { sha, tree } = resolveCheckoutCommit(argv);
174
- const body = { repo, application: applicationId, pr, criterion, test, run, asserted, sha, tree };
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
- parseRepository,
430
+ runProofs,
333
431
  resolveRepo,
334
- runProofs
432
+ parseRepository
335
433
  };
336
- //# sourceMappingURL=proofs-TXJGAP5F.js.map
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-LL6TSQWV.js";
5
+ } from "./chunk-VKZOHJCE.js";
6
6
  import {
7
7
  getArgValue,
8
8
  hasFlag,
9
9
  resolveConfig
10
- } from "./chunk-3HI6QC4V.js";
10
+ } from "./chunk-WRBU6TX7.js";
11
11
  import {
12
12
  writeRawOutput
13
- } from "./chunk-UEJ2HTKU.js";
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-BF3IPGMP.js.map
437
+ //# sourceMappingURL=chunk-XSSZMG65.js.map
@@ -6,19 +6,19 @@ import {
6
6
  fetchProperties,
7
7
  findCredential,
8
8
  getApplicationArg
9
- } from "./chunk-LL6TSQWV.js";
9
+ } from "./chunk-VKZOHJCE.js";
10
10
  import "./chunk-S3Q7MDCS.js";
11
- import "./chunk-76Z6E7XX.js";
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-3HI6QC4V.js";
18
+ } from "./chunk-WRBU6TX7.js";
19
19
  import {
20
20
  writeRawOutput
21
- } from "./chunk-UEJ2HTKU.js";
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-TWSWV64F.js.map
493
+ //# sourceMappingURL=credential-4RFRU6OH.js.map
@@ -4,17 +4,17 @@ import {
4
4
  fetchProperties,
5
5
  getApplicationArg,
6
6
  getPositionalArg
7
- } from "./chunk-LL6TSQWV.js";
7
+ } from "./chunk-VKZOHJCE.js";
8
8
  import "./chunk-S3Q7MDCS.js";
9
- import "./chunk-76Z6E7XX.js";
9
+ import "./chunk-4UZN6TVT.js";
10
10
  import {
11
11
  getArgValue,
12
12
  hasFlag,
13
13
  resolveConfig
14
- } from "./chunk-3HI6QC4V.js";
14
+ } from "./chunk-WRBU6TX7.js";
15
15
  import {
16
16
  writeRawOutput
17
- } from "./chunk-UEJ2HTKU.js";
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-XO5D5AI3.js.map
421
+ //# sourceMappingURL=credential-template-36PFUTBN.js.map
@@ -5,25 +5,25 @@ import {
5
5
  formatSlackChannel,
6
6
  loadSlackChannels,
7
7
  resolveSlackChannelIds
8
- } from "./chunk-QA37WVF6.js";
9
- import "./chunk-LIEADTEF.js";
10
- import "./chunk-QTYUM4ZB.js";
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-LL6TSQWV.js";
15
+ } from "./chunk-VKZOHJCE.js";
16
16
  import "./chunk-S3Q7MDCS.js";
17
- import "./chunk-76Z6E7XX.js";
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-3HI6QC4V.js";
23
+ } from "./chunk-WRBU6TX7.js";
24
24
  import {
25
25
  writeRawOutput
26
- } from "./chunk-UEJ2HTKU.js";
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-SLEFOLPV.js.map
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-LL6TSQWV.js";
5
+ } from "./chunk-VKZOHJCE.js";
6
6
  import {
7
7
  getSubDir
8
8
  } from "./chunk-S3Q7MDCS.js";
9
- import "./chunk-76Z6E7XX.js";
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-3HI6QC4V.js";
15
+ } from "./chunk-WRBU6TX7.js";
16
16
  import {
17
17
  writeRawOutput
18
- } from "./chunk-UEJ2HTKU.js";
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-IDC4V4WQ.js.map
454
+ //# sourceMappingURL=docs-ZGM53L67.js.map
@@ -12,10 +12,10 @@ import {
12
12
  printNoSessionForOrg,
13
13
  readAllProfiles,
14
14
  readStoredAuth
15
- } from "./chunk-3HI6QC4V.js";
15
+ } from "./chunk-WRBU6TX7.js";
16
16
  import {
17
17
  readBrandEnv
18
- } from "./chunk-UEJ2HTKU.js";
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-SDAYEA6C.js.map
157
+ //# sourceMappingURL=doctor-Z2XBGBM3.js.map
@@ -8,13 +8,13 @@ import {
8
8
  resolveOrCreateSandboxApplication,
9
9
  runEnvironment,
10
10
  stdinAssignment
11
- } from "./chunk-CYSPCGO6.js";
12
- import "./chunk-775FI436.js";
13
- import "./chunk-LL6TSQWV.js";
11
+ } from "./chunk-JEHHEMUL.js";
12
+ import "./chunk-RVD6J6IZ.js";
13
+ import "./chunk-VKZOHJCE.js";
14
14
  import "./chunk-S3Q7MDCS.js";
15
- import "./chunk-76Z6E7XX.js";
16
- import "./chunk-3HI6QC4V.js";
17
- import "./chunk-UEJ2HTKU.js";
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-VBUIBQ6O.js.map
29
+ //# sourceMappingURL=environment-5YVZXBN7.js.map