@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,22 +1,25 @@
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
  loadTeamsChannels
4
- } from "./chunk-LIEADTEF.js";
4
+ } from "./chunk-LJFVRJCA.js";
5
5
  import {
6
6
  openUrl
7
- } from "./chunk-ABT3BLRC.js";
7
+ } from "./chunk-5TKXHS3X.js";
8
8
  import {
9
- apiRequest
10
- } from "./chunk-LL6TSQWV.js";
9
+ apiRequest,
10
+ requireOrgAdmin
11
+ } from "./chunk-VKZOHJCE.js";
11
12
  import "./chunk-S3Q7MDCS.js";
12
- import "./chunk-76Z6E7XX.js";
13
+ import "./chunk-4UZN6TVT.js";
13
14
  import {
15
+ decodeJwtPayload,
14
16
  hasFlag,
15
- resolveConfig
16
- } from "./chunk-3HI6QC4V.js";
17
+ resolveConfig,
18
+ resolveOrgAppUrl
19
+ } from "./chunk-WRBU6TX7.js";
17
20
  import {
18
21
  writeRawOutput
19
- } from "./chunk-UEJ2HTKU.js";
22
+ } from "./chunk-MJVUMVLO.js";
20
23
  import "./chunk-TOWZAG3I.js";
21
24
 
22
25
  // src/teams.ts
@@ -26,13 +29,13 @@ function isTenantId(value) {
26
29
  return TENANT_ID_RE.test(value);
27
30
  }
28
31
  var yesNo = (value) => value ? "yes" : "no";
29
- function formatStatus(connection) {
32
+ function formatStatus(connection2) {
30
33
  return [
31
34
  "Microsoft Teams",
32
- ` Tenant: ${connection.tenantId ?? "not bound"}`,
33
- ` App in catalog: ${yesNo(connection.isInCatalog)}`,
34
- ` Teams enabled: ${yesNo(connection.isFlagEnabled)}`,
35
- ` Installed in: ${connection.installCount} channel${connection.installCount === 1 ? "" : "s"}`
35
+ ` Tenant: ${connection2.tenantId ?? "not bound"}`,
36
+ ` App in catalog: ${yesNo(connection2.isInCatalog)}`,
37
+ ` Teams enabled: ${yesNo(connection2.isFlagEnabled)}`,
38
+ ` Installed in: ${connection2.installCount} channel${connection2.installCount === 1 ? "" : "s"}`
36
39
  ].join("\n");
37
40
  }
38
41
  function formatChannels(channels) {
@@ -49,7 +52,7 @@ function printHelp() {
49
52
  "Usage:",
50
53
  " cofactor teams status [--json] Tenant, catalog, enabled flag, installed channels",
51
54
  " cofactor teams channels [--json] Channels the app is installed in, with their references",
52
- " cofactor teams install [--no-open] Open the Microsoft consent page (binds the tenant and publishes the app); --no-open prints the link",
55
+ " cofactor teams install [--no-open] Open Settings \u2192 Microsoft Teams in your browser (signing in first if needed), which starts the Microsoft consent (binds the tenant and publishes the app), and wait for it; organization admins only",
53
56
  " cofactor teams bind <tenant-id> Bind a Microsoft tenant without publishing the app (the id comes first)",
54
57
  " cofactor teams disconnect --yes Disconnect the organization (clears binding, catalog link, channels)",
55
58
  "",
@@ -61,13 +64,9 @@ function fail(message) {
61
64
  console.error(`Error: ${message}`);
62
65
  process.exit(1);
63
66
  }
67
+ var connection = (apiUrl, token) => apiRequest(apiUrl, token, "GET", "/integrations/teams/connection");
64
68
  async function teamsStatus(argv, apiUrl, token) {
65
- const result = await apiRequest(
66
- apiUrl,
67
- token,
68
- "GET",
69
- "/integrations/teams/connection"
70
- );
69
+ const result = await connection(apiUrl, token);
71
70
  if (!result.ok) fail(result.error ?? "failed to read the Teams connection");
72
71
  if (hasFlag(argv, "--json")) return writeRawOutput(JSON.stringify(result, null, 2));
73
72
  console.log(formatStatus(result));
@@ -77,34 +76,69 @@ async function teamsChannels(argv, apiUrl, token) {
77
76
  if (hasFlag(argv, "--json")) return writeRawOutput(JSON.stringify(channels, null, 2));
78
77
  console.log(formatChannels(channels));
79
78
  }
80
- async function teamsInstall(argv, apiUrl, token) {
81
- let response;
82
- try {
83
- response = await fetch(`${apiUrl}/integrations/teams/install`, {
84
- headers: { Authorization: `Bearer ${token}`, "User-Agent": "Cofactor-CLI" },
85
- redirect: "manual",
86
- signal: AbortSignal.timeout(3e4)
87
- });
88
- } catch (err) {
89
- return fail(`could not reach ${apiUrl}: ${String(err.message ?? err)}`);
79
+ var CONNECT_TIMEOUT_MS = 10 * 60 * 1e3;
80
+ var POLL_INTERVAL_MS = 3e3;
81
+ var REMIND_AFTER_MS = 60 * 1e3;
82
+ var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
83
+ function teamsConnectUrl(appUrl, orgId) {
84
+ const query = new URLSearchParams({ cofactor_org_id: orgId, connect: "teams" });
85
+ return `${appUrl}/settings/teams?${query.toString()}`;
86
+ }
87
+ async function teamsInstall(argv, apiUrl, token, appSubdomain) {
88
+ const orgId = decodeJwtPayload(token)?.org_id;
89
+ if (typeof orgId !== "string") {
90
+ return fail('this command needs a signed-in session with an organization. Run "cofactor login" and try again.');
90
91
  }
91
- if (response.status === 401 || response.status === 403) {
92
- return fail(`not authorized to install Teams (HTTP ${response.status}). Run "cofactor login" for this organization and try again.`);
92
+ await requireOrgAdmin(apiUrl, token, "teams", "install");
93
+ const current = await connection(apiUrl, token);
94
+ if (!current.ok) return fail(current.error ?? "failed to read the Teams connection");
95
+ if (current.isInCatalog) {
96
+ console.log("Microsoft Teams is already installed for this organization (to republish the manifest, press Re-run install on Settings \u2192 Microsoft Teams).");
97
+ console.log(formatStatus(current));
98
+ return;
93
99
  }
94
- const location = response.headers.get("location");
95
- if (response.status < 300 || response.status >= 400 || !location) {
96
- const body = await response.text().catch(() => "");
97
- return fail(`install did not return a consent link (HTTP ${response.status}) ${body.slice(0, 200)}`.trim());
100
+ if (!current.isFlagEnabled) {
101
+ return fail(
102
+ 'Microsoft Teams is not enabled for this organization yet, so the Settings page will not start the install. Ask support to enable it, then run "cofactor teams install" again.'
103
+ );
98
104
  }
99
- if (hasFlag(argv, "--no-open") || !process.stdout.isTTY) {
100
- console.log(location);
101
- return;
105
+ const link = teamsConnectUrl(resolveOrgAppUrl(apiUrl, appSubdomain), orgId);
106
+ console.log(
107
+ `Open this link to install Microsoft Teams (press Install in Teams on the page if it does not send you to Microsoft):
108
+ ${link}`
109
+ );
110
+ if (!process.stdout.isTTY) return;
111
+ let launcherFailed = false;
112
+ if (!hasFlag(argv, "--no-open")) {
113
+ openUrl(link, () => {
114
+ launcherFailed = true;
115
+ });
116
+ }
117
+ console.log("Waiting for you to approve the Microsoft consent in the browser...");
118
+ const startedAt = Date.now();
119
+ const deadline = startedAt + CONNECT_TIMEOUT_MS;
120
+ let reminded = false;
121
+ while (Date.now() < deadline) {
122
+ await sleep(POLL_INTERVAL_MS);
123
+ if (launcherFailed) {
124
+ return fail('could not open a browser. Open the link above manually, then run "cofactor teams status" to check the install.');
125
+ }
126
+ const status = await connection(apiUrl, token);
127
+ if (status.ok && status.isInCatalog) {
128
+ console.log("Installed Microsoft Teams.");
129
+ console.log(formatStatus(status));
130
+ return;
131
+ }
132
+ if (!reminded && Date.now() - startedAt > REMIND_AFTER_MS) {
133
+ reminded = true;
134
+ console.log(
135
+ "Still waiting. Sign in to Cofactor in that browser as a member of this organization if it asks, then press Install in Teams on the Settings page if it does not send you to Microsoft."
136
+ );
137
+ }
102
138
  }
103
- openUrl(
104
- location,
105
- () => console.error('Could not open a browser. Run "cofactor teams install --no-open" to print the link.')
139
+ return fail(
140
+ 'timed out waiting for the install. Approve it in a browser signed in to Cofactor as a member of this organization (the page shows any error Microsoft reported), then run "cofactor teams install" again.'
106
141
  );
107
- console.log("Opening the Microsoft consent page. Approve it in the browser, then run: cofactor teams status");
108
142
  }
109
143
  async function teamsBind(argv, apiUrl, token) {
110
144
  const tenantId = argv[0];
@@ -140,14 +174,14 @@ async function runTeams(argv) {
140
174
  printHelp();
141
175
  return;
142
176
  }
143
- const { apiUrl, token } = await resolveConfig(rest);
177
+ const { apiUrl, token, appSubdomain } = await resolveConfig(rest);
144
178
  switch (sub) {
145
179
  case "status":
146
180
  return teamsStatus(rest, apiUrl, token);
147
181
  case "channels":
148
182
  return teamsChannels(rest, apiUrl, token);
149
183
  case "install":
150
- return teamsInstall(rest, apiUrl, token);
184
+ return teamsInstall(rest, apiUrl, token, appSubdomain);
151
185
  case "bind":
152
186
  return teamsBind(rest, apiUrl, token);
153
187
  case "disconnect":
@@ -162,6 +196,8 @@ export {
162
196
  formatChannels,
163
197
  formatStatus,
164
198
  isTenantId,
165
- runTeams
199
+ runTeams,
200
+ teamsConnectUrl,
201
+ teamsInstall
166
202
  };
167
- //# sourceMappingURL=teams-J2OOJBL4.js.map
203
+ //# sourceMappingURL=teams-KUM56BE2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/teams.ts"],"sourcesContent":["/**\n * CLI Teams\n *\n * Manage the organization's Microsoft Teams connection from the terminal, over\n * the same routes the Settings → Microsoft Teams page uses (CAP-CLI-001..003;\n * the connection itself is CAP-IAU-006). `install` hands the Microsoft consent\n * step to the browser (via the Settings page); everything else is a plain API call.\n */\n\nimport process from 'node:process';\nimport { resolveConfig, resolveOrgAppUrl, hasFlag } from './auth.js';\nimport { writeRawOutput } from './brand.js';\nimport { apiRequest, requireOrgAdmin } from './cli-helpers.js';\nimport { decodeJwtPayload } from './jwt.js';\nimport { openUrl } from './login.js';\nimport type { TeamsChannel } from '@chatsdet/mcp-tools';\nimport { loadTeamsChannels } from './teams-channels.js';\n\nexport interface TeamsConnection {\n tenantId: string | null;\n isInCatalog: boolean;\n isFlagEnabled: boolean;\n installCount: number;\n}\n\nconst TENANT_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/** A Microsoft tenant id is a GUID; reject anything else before calling the service. */\nexport function isTenantId(value: string): boolean {\n return TENANT_ID_RE.test(value);\n}\n\nconst yesNo = (value: boolean): string => (value ? 'yes' : 'no');\n\nexport function formatStatus(connection: TeamsConnection): string {\n return [\n 'Microsoft Teams',\n ` Tenant: ${connection.tenantId ?? 'not bound'}`,\n ` App in catalog: ${yesNo(connection.isInCatalog)}`,\n ` Teams enabled: ${yesNo(connection.isFlagEnabled)}`,\n ` Installed in: ${connection.installCount} channel${connection.installCount === 1 ? '' : 's'}`,\n ].join('\\n');\n}\n\nexport function formatChannels(channels: TeamsChannel[]): string {\n if (channels.length === 0) {\n return 'No channels. Add the Cofactor app to a Teams channel (and make sure Teams is enabled for this organization).';\n }\n return channels\n .map((channel) => ` ${channel.parentName ? `${channel.parentName} › ` : ''}${channel.name} ${channel.channelRef}`)\n .join('\\n');\n}\n\nfunction printHelp(): void {\n console.log(\n [\n \"Manage the organization's Microsoft Teams connection.\",\n '',\n 'Usage:',\n ' cofactor teams status [--json] Tenant, catalog, enabled flag, installed channels',\n ' cofactor teams channels [--json] Channels the app is installed in, with their references',\n ' cofactor teams install [--no-open] Open Settings → Microsoft Teams in your browser (signing in first if needed), which starts the Microsoft consent (binds the tenant and publishes the app), and wait for it; organization admins only',\n ' cofactor teams bind <tenant-id> Bind a Microsoft tenant without publishing the app (the id comes first)',\n ' cofactor teams disconnect --yes Disconnect the organization (clears binding, catalog link, channels)',\n '',\n 'All commands accept --org <name> and --env <prod|dev|local>.',\n ].join('\\n')\n );\n}\n\nfunction fail(message: string): never {\n console.error(`Error: ${message}`);\n process.exit(1);\n}\n\nconst connection = (apiUrl: string, token: string) =>\n apiRequest<{ ok: boolean; error?: string } & TeamsConnection>(apiUrl, token, 'GET', '/integrations/teams/connection');\n\nasync function teamsStatus(argv: string[], apiUrl: string, token: string): Promise<void> {\n const result = await connection(apiUrl, token);\n if (!result.ok) fail(result.error ?? 'failed to read the Teams connection');\n if (hasFlag(argv, '--json')) return writeRawOutput(JSON.stringify(result, null, 2));\n console.log(formatStatus(result));\n}\n\nasync function teamsChannels(argv: string[], apiUrl: string, token: string): Promise<void> {\n const channels = await loadTeamsChannels(apiUrl, token);\n if (hasFlag(argv, '--json')) return writeRawOutput(JSON.stringify(channels, null, 2));\n console.log(formatChannels(channels));\n}\n\nconst CONNECT_TIMEOUT_MS = 10 * 60 * 1000;\nconst POLL_INTERVAL_MS = 3000;\nconst REMIND_AFTER_MS = 60 * 1000;\n\nconst sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\n/**\n * The browser link: Settings → Microsoft Teams in `orgId` (the web app switches the\n * browser session to it from `cofactor_org_id`), with `connect=teams` asking the\n * page to start the Microsoft consent. `appUrl` is the org's own app host when it\n * has one ({@link resolveOrgAppUrl}).\n */\nexport function teamsConnectUrl(appUrl: string, orgId: string): string {\n const query = new URLSearchParams({ cofactor_org_id: orgId, connect: 'teams' });\n return `${appUrl}/settings/teams?${query.toString()}`;\n}\n\n/**\n * Like `cofactor slack connect`, the human step happens in the browser: the CLI opens\n * Settings → Microsoft Teams on the org's own app host, where a signed-out browser\n * gets the login form in place and comes back to the same URL, and the page starts\n * the Microsoft consent. The CLI polls the connection until the app is in the catalog.\n */\nexport async function teamsInstall(\n argv: string[],\n apiUrl: string,\n token: string,\n appSubdomain: string | null | undefined\n): Promise<void> {\n const orgId = decodeJwtPayload(token)?.org_id;\n if (typeof orgId !== 'string') {\n return fail('this command needs a signed-in session with an organization. Run \"cofactor login\" and try again.');\n }\n await requireOrgAdmin(apiUrl, token, 'teams', 'install');\n\n const current = await connection(apiUrl, token);\n if (!current.ok) return fail(current.error ?? 'failed to read the Teams connection');\n if (current.isInCatalog) {\n console.log('Microsoft Teams is already installed for this organization (to republish the manifest, press Re-run install on Settings → Microsoft Teams).');\n console.log(formatStatus(current));\n return;\n }\n\n if (!current.isFlagEnabled) {\n return fail(\n 'Microsoft Teams is not enabled for this organization yet, so the Settings page will not start the install. Ask support to enable it, then run \"cofactor teams install\" again.'\n );\n }\n\n const link = teamsConnectUrl(resolveOrgAppUrl(apiUrl, appSubdomain), orgId);\n console.log(\n `Open this link to install Microsoft Teams (press Install in Teams on the page if it does not send you to Microsoft):\\n${link}`\n );\n // No terminal (a script, CI, a headless box): print the link and return. Waiting needs a person at a\n // browser; without this a headless run hung polling for ten minutes (bot review on PR 5353).\n if (!process.stdout.isTTY) return;\n // `openUrl` reports a missing launcher (headless Linux, no xdg-open) on a later tick; the loop checks it\n // after its first sleep, so it never polls for a browser that cannot open.\n let launcherFailed = false;\n if (!hasFlag(argv, '--no-open')) {\n openUrl(link, () => {\n launcherFailed = true;\n });\n }\n console.log('Waiting for you to approve the Microsoft consent in the browser...');\n\n const startedAt = Date.now();\n const deadline = startedAt + CONNECT_TIMEOUT_MS;\n let reminded = false;\n while (Date.now() < deadline) {\n await sleep(POLL_INTERVAL_MS);\n if (launcherFailed) {\n return fail('could not open a browser. Open the link above manually, then run \"cofactor teams status\" to check the install.');\n }\n const status = await connection(apiUrl, token);\n if (status.ok && status.isInCatalog) {\n console.log('Installed Microsoft Teams.');\n console.log(formatStatus(status));\n return;\n }\n if (!reminded && Date.now() - startedAt > REMIND_AFTER_MS) {\n reminded = true;\n console.log(\n 'Still waiting. Sign in to Cofactor in that browser as a member of this organization if it asks, then press Install in Teams on the Settings page if it does not send you to Microsoft.'\n );\n }\n }\n return fail(\n 'timed out waiting for the install. Approve it in a browser signed in to Cofactor as a member of this organization (the page shows any error Microsoft reported), then run \"cofactor teams install\" again.'\n );\n}\n\nasync function teamsBind(argv: string[], apiUrl: string, token: string): Promise<void> {\n // `argv` still carries --org/--env and their values, so the id must be the first token.\n const tenantId = argv[0];\n if (!tenantId || tenantId.startsWith('-')) fail('missing tenant id (it must come first). Usage: cofactor teams bind <tenant-id> [--org <name>] [--env <env>]');\n if (!isTenantId(tenantId)) fail(`\"${tenantId}\" is not a Microsoft tenant id (expected a GUID like ea0aaad4-730f-4f9d-8e58-9d3cc3f4643a)`);\n const result = await apiRequest<{ ok: boolean; error?: string; tenantId?: string }>(\n apiUrl,\n token,\n 'PUT',\n '/integrations/teams/connection',\n { tenantId }\n );\n if (!result.ok) fail(result.error ?? 'failed to bind the tenant');\n console.log(`Bound tenant ${result.tenantId ?? tenantId}. The app is not published to its catalog; use \"cofactor teams install\" for that.`);\n}\n\nasync function teamsDisconnect(argv: string[], apiUrl: string, token: string): Promise<void> {\n if (!hasFlag(argv, '--yes')) {\n console.error('Nothing changed. Disconnecting clears the tenant binding, the catalog link, the stored channels and buffered messages. Re-run with --yes to confirm.');\n process.exit(1);\n }\n const result = await apiRequest<{ ok: boolean; error?: string }>(\n apiUrl,\n token,\n 'DELETE',\n '/integrations/teams/connection'\n );\n if (!result.ok) fail(result.error ?? 'failed to disconnect');\n console.log('Disconnected Microsoft Teams. Run \"cofactor teams status\" to confirm.');\n}\n\nexport async function runTeams(argv: string[]): Promise<void> {\n const [sub, ...rest] = argv;\n\n if (!sub || sub === 'help' || hasFlag(argv, '--help', '-h')) {\n printHelp();\n return;\n }\n\n const { apiUrl, token, appSubdomain } = await resolveConfig(rest);\n\n switch (sub) {\n case 'status':\n return teamsStatus(rest, apiUrl, token);\n case 'channels':\n return teamsChannels(rest, apiUrl, token);\n case 'install':\n return teamsInstall(rest, apiUrl, token, appSubdomain);\n case 'bind':\n return teamsBind(rest, apiUrl, token);\n case 'disconnect':\n return teamsDisconnect(rest, apiUrl, token);\n default:\n console.error(`Unknown teams subcommand: ${sub}`);\n printHelp();\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["connection"]}