@keystrokehq/cli 0.1.3 → 0.1.5

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 (237) hide show
  1. package/dist/alias-RTYYYW3D-CLFgrowj.mjs +98 -0
  2. package/dist/alias-RTYYYW3D-CLFgrowj.mjs.map +1 -0
  3. package/dist/awk2-LA3USKJP-BbsfXVlR.mjs +2737 -0
  4. package/dist/awk2-LA3USKJP-BbsfXVlR.mjs.map +1 -0
  5. package/dist/base64-C2AIWVNC-C0WIgu5V.mjs +123 -0
  6. package/dist/base64-C2AIWVNC-C0WIgu5V.mjs.map +1 -0
  7. package/dist/basename-UB3CIYNI-BgNN3bGm.mjs +53 -0
  8. package/dist/basename-UB3CIYNI-BgNN3bGm.mjs.map +1 -0
  9. package/dist/bash-YZ33HQZQ-N6YyKtUH.mjs +118 -0
  10. package/dist/bash-YZ33HQZQ-N6YyKtUH.mjs.map +1 -0
  11. package/dist/cat-TSFMZVYS-Dz3-oHsV.mjs +63 -0
  12. package/dist/cat-TSFMZVYS-Dz3-oHsV.mjs.map +1 -0
  13. package/dist/chmod-TFEPA42X-YF02QJUv.mjs +125 -0
  14. package/dist/chmod-TFEPA42X-YF02QJUv.mjs.map +1 -0
  15. package/dist/chunk-27JIFWUR-B6ZjjMMI.mjs +100 -0
  16. package/dist/chunk-27JIFWUR-B6ZjjMMI.mjs.map +1 -0
  17. package/dist/chunk-4I3HOE5Z-BixWWVkW.mjs +719 -0
  18. package/dist/chunk-4I3HOE5Z-BixWWVkW.mjs.map +1 -0
  19. package/dist/chunk-4RUAZWKT-D60fyWAB.mjs +22543 -0
  20. package/dist/chunk-4RUAZWKT-D60fyWAB.mjs.map +1 -0
  21. package/dist/chunk-4WKZNNJK-CiwxAWRf.mjs +69 -0
  22. package/dist/chunk-4WKZNNJK-CiwxAWRf.mjs.map +1 -0
  23. package/dist/chunk-5H5SCKJM-BvfXlL01.mjs +606 -0
  24. package/dist/chunk-5H5SCKJM-BvfXlL01.mjs.map +1 -0
  25. package/dist/chunk-AQ6FYS2X-CkVetjym.mjs +37 -0
  26. package/dist/chunk-AQ6FYS2X-CkVetjym.mjs.map +1 -0
  27. package/dist/chunk-BZUGFHVS-CPWRFwK8.mjs +34 -0
  28. package/dist/chunk-BZUGFHVS-CPWRFwK8.mjs.map +1 -0
  29. package/dist/chunk-CHFEPBH4-BUdgjFtD.mjs +594 -0
  30. package/dist/chunk-CHFEPBH4-BUdgjFtD.mjs.map +1 -0
  31. package/dist/chunk-DLL7UR66-BUYgzxnR.mjs +14 -0
  32. package/dist/chunk-DLL7UR66-BUYgzxnR.mjs.map +1 -0
  33. package/dist/chunk-DiodbrVj.mjs +27 -0
  34. package/dist/chunk-EBAPSGAO-Ctfslw2R.mjs +247 -0
  35. package/dist/chunk-EBAPSGAO-Ctfslw2R.mjs.map +1 -0
  36. package/dist/chunk-FOCWZZDE-BIntqBh2.mjs +19 -0
  37. package/dist/chunk-FOCWZZDE-BIntqBh2.mjs.map +1 -0
  38. package/dist/chunk-HBVMHTO5-CJyD-QZX.mjs +10 -0
  39. package/dist/chunk-HBVMHTO5-CJyD-QZX.mjs.map +1 -0
  40. package/dist/chunk-L2UW7DWF-B3tEHhPF.mjs +14 -0
  41. package/dist/chunk-L2UW7DWF-B3tEHhPF.mjs.map +1 -0
  42. package/dist/chunk-L64BMZUV-CyR7RKok.mjs +30 -0
  43. package/dist/chunk-L64BMZUV-CyR7RKok.mjs.map +1 -0
  44. package/dist/chunk-LEKBROJD-CJMrAyu9.mjs +3113 -0
  45. package/dist/chunk-LEKBROJD-CJMrAyu9.mjs.map +1 -0
  46. package/dist/chunk-NRSASXYY-CuWyREpD.mjs +41 -0
  47. package/dist/chunk-NRSASXYY-CuWyREpD.mjs.map +1 -0
  48. package/dist/chunk-QAYAQNCG-Bl0Kbd53.mjs +63 -0
  49. package/dist/chunk-QAYAQNCG-Bl0Kbd53.mjs.map +1 -0
  50. package/dist/chunk-QIQMJJZ4-BwKdslXs.mjs +93 -0
  51. package/dist/chunk-QIQMJJZ4-BwKdslXs.mjs.map +1 -0
  52. package/dist/chunk-SAI2SPQQ-CVRoDNs9.mjs +26 -0
  53. package/dist/chunk-SAI2SPQQ-CVRoDNs9.mjs.map +1 -0
  54. package/dist/chunk-SO6R3ZKN-tTw_RMDX.mjs +140 -0
  55. package/dist/chunk-SO6R3ZKN-tTw_RMDX.mjs.map +1 -0
  56. package/dist/chunk-STHBFACM-lyj-j2a-.mjs +8 -0
  57. package/dist/chunk-STHBFACM-lyj-j2a-.mjs.map +1 -0
  58. package/dist/chunk-SX2HC7SO-Cc4Hpis1.mjs +20 -0
  59. package/dist/chunk-SX2HC7SO-Cc4Hpis1.mjs.map +1 -0
  60. package/dist/chunk-TDD4NFYE-wsWW75MX.mjs +21 -0
  61. package/dist/chunk-TDD4NFYE-wsWW75MX.mjs.map +1 -0
  62. package/dist/chunk-TN7HHBQW-CSB_R-XD.mjs +1137 -0
  63. package/dist/chunk-TN7HHBQW-CSB_R-XD.mjs.map +1 -0
  64. package/dist/chunk-VPADYNBD-BKlA28GJ.mjs +122 -0
  65. package/dist/chunk-VPADYNBD-BKlA28GJ.mjs.map +1 -0
  66. package/dist/chunk-W5DWRFSU-lCyWk0ph.mjs +11 -0
  67. package/dist/chunk-W5DWRFSU-lCyWk0ph.mjs.map +1 -0
  68. package/dist/chunk-WNH3HOQA-BCZUOjCJ.mjs +34 -0
  69. package/dist/chunk-WNH3HOQA-BCZUOjCJ.mjs.map +1 -0
  70. package/dist/chunk-XRFHFXFP-BGxzVZgK.mjs +16 -0
  71. package/dist/chunk-XRFHFXFP-BGxzVZgK.mjs.map +1 -0
  72. package/dist/chunk-YCLFEX4T-COc1AThz.mjs +77 -0
  73. package/dist/chunk-YCLFEX4T-COc1AThz.mjs.map +1 -0
  74. package/dist/clear-HKGFEOF6-CekN2x-O.mjs +28 -0
  75. package/dist/clear-HKGFEOF6-CekN2x-O.mjs.map +1 -0
  76. package/dist/column-XT6UFXNQ-DHENV9D2.mjs +143 -0
  77. package/dist/column-XT6UFXNQ-DHENV9D2.mjs.map +1 -0
  78. package/dist/comm-VV2LDX2J-ppxDJFkY.mjs +87 -0
  79. package/dist/comm-VV2LDX2J-ppxDJFkY.mjs.map +1 -0
  80. package/dist/cp-BISAAS7A-CMWayU4n.mjs +106 -0
  81. package/dist/cp-BISAAS7A-CMWayU4n.mjs.map +1 -0
  82. package/dist/cut-OKARJCCV-Bt8b58eI.mjs +119 -0
  83. package/dist/cut-OKARJCCV-Bt8b58eI.mjs.map +1 -0
  84. package/dist/date-UUUPW43J-B7T5OTZZ.mjs +188 -0
  85. package/dist/date-UUUPW43J-B7T5OTZZ.mjs.map +1 -0
  86. package/dist/diff-MWJFIG7X-DhnPc_5r.mjs +755 -0
  87. package/dist/diff-MWJFIG7X-DhnPc_5r.mjs.map +1 -0
  88. package/dist/dirname-MPHRFUTI-Dkb3S4OX.mjs +43 -0
  89. package/dist/dirname-MPHRFUTI-Dkb3S4OX.mjs.map +1 -0
  90. package/dist/{dist-DWcRd4Se.mjs → dist-B9XaHV_2.mjs} +26 -73
  91. package/dist/dist-B9XaHV_2.mjs.map +1 -0
  92. package/dist/{dist-DjfxlOWX.mjs → dist-C3YClLXV.mjs} +285 -226
  93. package/dist/{dist-DjfxlOWX.mjs.map → dist-C3YClLXV.mjs.map} +1 -1
  94. package/dist/dist-D_-88U7y.mjs +1887 -0
  95. package/dist/dist-D_-88U7y.mjs.map +1 -0
  96. package/dist/dist-iKd6nzBK.mjs +3 -0
  97. package/dist/du-572XNP42-ClP4jXB1.mjs +176 -0
  98. package/dist/du-572XNP42-ClP4jXB1.mjs.map +1 -0
  99. package/dist/echo-NDWZZHPO-CCp_-MxA.mjs +137 -0
  100. package/dist/echo-NDWZZHPO-CCp_-MxA.mjs.map +1 -0
  101. package/dist/env-36M5BO7M-CsP_aiWr.mjs +119 -0
  102. package/dist/env-36M5BO7M-CsP_aiWr.mjs.map +1 -0
  103. package/dist/expand-JSPG6VOP-B-YUvYpu.mjs +145 -0
  104. package/dist/expand-JSPG6VOP-B-YUvYpu.mjs.map +1 -0
  105. package/dist/expr-5JAACS4X-1TBq84gG.mjs +153 -0
  106. package/dist/expr-5JAACS4X-1TBq84gG.mjs.map +1 -0
  107. package/dist/file-IPZJC3FQ-DcZNOWyY.mjs +4201 -0
  108. package/dist/file-IPZJC3FQ-DcZNOWyY.mjs.map +1 -0
  109. package/dist/find-INTH3OLC-6p47KeeT.mjs +1332 -0
  110. package/dist/find-INTH3OLC-6p47KeeT.mjs.map +1 -0
  111. package/dist/fold-4TQNYMSW-C54bHzLd.mjs +138 -0
  112. package/dist/fold-4TQNYMSW-C54bHzLd.mjs.map +1 -0
  113. package/dist/grep-V3LQVMRQ-D99Bq7Kj.mjs +335 -0
  114. package/dist/grep-V3LQVMRQ-D99Bq7Kj.mjs.map +1 -0
  115. package/dist/gzip-O5ASJAFY-CZDRROqP.mjs +592 -0
  116. package/dist/gzip-O5ASJAFY-CZDRROqP.mjs.map +1 -0
  117. package/dist/head-442HYESI-D96RMdki.mjs +36 -0
  118. package/dist/head-442HYESI-D96RMdki.mjs.map +1 -0
  119. package/dist/help-HZ6M2CKN--DK8mY2L.mjs +123 -0
  120. package/dist/help-HZ6M2CKN--DK8mY2L.mjs.map +1 -0
  121. package/dist/history-WYYKSLSZ-ACNQVupn.mjs +48 -0
  122. package/dist/history-WYYKSLSZ-ACNQVupn.mjs.map +1 -0
  123. package/dist/hostname-C4HQXXUP-CXVVFkUK.mjs +24 -0
  124. package/dist/hostname-C4HQXXUP-CXVVFkUK.mjs.map +1 -0
  125. package/dist/html-to-markdown-JW4MSQZO-DQOxFIvF.mjs +15890 -0
  126. package/dist/html-to-markdown-JW4MSQZO-DQOxFIvF.mjs.map +1 -0
  127. package/dist/index.mjs +431 -161
  128. package/dist/index.mjs.map +1 -1
  129. package/dist/join-TBRGI3LQ-B8I9tkJ5.mjs +198 -0
  130. package/dist/join-TBRGI3LQ-B8I9tkJ5.mjs.map +1 -0
  131. package/dist/jq-4XLYLOS5-wFZYfsfJ.mjs +257 -0
  132. package/dist/jq-4XLYLOS5-wFZYfsfJ.mjs.map +1 -0
  133. package/dist/js-exec-N5KEZBH7-CgtG-I6s.mjs +333 -0
  134. package/dist/js-exec-N5KEZBH7-CgtG-I6s.mjs.map +1 -0
  135. package/dist/lib-D4GpdNNK.mjs +45 -0
  136. package/dist/lib-D4GpdNNK.mjs.map +1 -0
  137. package/dist/ln-4LGSXXGD-Dg0R9i5G.mjs +101 -0
  138. package/dist/ln-4LGSXXGD-Dg0R9i5G.mjs.map +1 -0
  139. package/dist/ls-ZJGQER7M-DLDSfI4x.mjs +1891 -0
  140. package/dist/ls-ZJGQER7M-DLDSfI4x.mjs.map +1 -0
  141. package/dist/lzma-CTMDi254.mjs +1135 -0
  142. package/dist/lzma-CTMDi254.mjs.map +1 -0
  143. package/dist/{maybe-auto-update-Ou7H6dXT.mjs → maybe-auto-update-DHt-mVf1.mjs} +2 -2
  144. package/dist/{maybe-auto-update-Ou7H6dXT.mjs.map → maybe-auto-update-DHt-mVf1.mjs.map} +1 -1
  145. package/dist/md5sum-SPU24VSG-DQc8sqXO.mjs +16 -0
  146. package/dist/md5sum-SPU24VSG-DQc8sqXO.mjs.map +1 -0
  147. package/dist/mkdir-MEPGZOB6-BjUKzhdL.mjs +58 -0
  148. package/dist/mkdir-MEPGZOB6-BjUKzhdL.mjs.map +1 -0
  149. package/dist/mv-W5BIQ646-CdSIyY-U.mjs +93 -0
  150. package/dist/mv-W5BIQ646-CdSIyY-U.mjs.map +1 -0
  151. package/dist/nl-WSDW7I4O-DmtCnyKU.mjs +208 -0
  152. package/dist/nl-WSDW7I4O-DmtCnyKU.mjs.map +1 -0
  153. package/dist/od-WOKFDJTP-DZ2nxQNJ.mjs +73 -0
  154. package/dist/od-WOKFDJTP-DZ2nxQNJ.mjs.map +1 -0
  155. package/dist/paste-7JC6S4DX-CtmM5Qy8.mjs +113 -0
  156. package/dist/paste-7JC6S4DX-CtmM5Qy8.mjs.map +1 -0
  157. package/dist/printf-TWGXF445-B7cTysaa.mjs +880 -0
  158. package/dist/printf-TWGXF445-B7cTysaa.mjs.map +1 -0
  159. package/dist/pwd-WE6EN5AV-CO8o2WQS.mjs +34 -0
  160. package/dist/pwd-WE6EN5AV-CO8o2WQS.mjs.map +1 -0
  161. package/dist/python3-POMOR4OA-CKy80mpF.mjs +299 -0
  162. package/dist/python3-POMOR4OA-CKy80mpF.mjs.map +1 -0
  163. package/dist/readlink-OPJF4DL5-Rc1Mz_Xx.mjs +76 -0
  164. package/dist/readlink-OPJF4DL5-Rc1Mz_Xx.mjs.map +1 -0
  165. package/dist/rev-5EHFX4EJ-3dd9vwHW.mjs +66 -0
  166. package/dist/rev-5EHFX4EJ-3dd9vwHW.mjs.map +1 -0
  167. package/dist/rg-S4FXYXWB-BbXVo6JX.mjs +1539 -0
  168. package/dist/rg-S4FXYXWB-BbXVo6JX.mjs.map +1 -0
  169. package/dist/rm-SSGETQVQ-Ch53Rmrr.mjs +81 -0
  170. package/dist/rm-SSGETQVQ-Ch53Rmrr.mjs.map +1 -0
  171. package/dist/rmdir-OC4ZLPYA-D3QCHlIB.mjs +132 -0
  172. package/dist/rmdir-OC4ZLPYA-D3QCHlIB.mjs.map +1 -0
  173. package/dist/sed-S5UIK574-DE1KeTk3.mjs +1722 -0
  174. package/dist/sed-S5UIK574-DE1KeTk3.mjs.map +1 -0
  175. package/dist/seq-M5EC7Q57-BHfGjQvK.mjs +85 -0
  176. package/dist/seq-M5EC7Q57-BHfGjQvK.mjs.map +1 -0
  177. package/dist/sha1sum-2PTOAFR6-DNjSNcYK.mjs +16 -0
  178. package/dist/sha1sum-2PTOAFR6-DNjSNcYK.mjs.map +1 -0
  179. package/dist/sha256sum-NS7D3IXX-BMaCKkT5.mjs +16 -0
  180. package/dist/sha256sum-NS7D3IXX-BMaCKkT5.mjs.map +1 -0
  181. package/dist/sleep-X22JJINO-Do5hEQQW.mjs +67 -0
  182. package/dist/sleep-X22JJINO-Do5hEQQW.mjs.map +1 -0
  183. package/dist/sort-SW2YEO5B-B7j1zw8k.mjs +320 -0
  184. package/dist/sort-SW2YEO5B-B7j1zw8k.mjs.map +1 -0
  185. package/dist/split-4KKZZXXE-h8GD4HP4.mjs +248 -0
  186. package/dist/split-4KKZZXXE-h8GD4HP4.mjs.map +1 -0
  187. package/dist/sqlite3-CGOEFJAO-DvzzghDg.mjs +2879 -0
  188. package/dist/sqlite3-CGOEFJAO-DvzzghDg.mjs.map +1 -0
  189. package/dist/stat-CD34IZ4P-B5ZOJh4J.mjs +65 -0
  190. package/dist/stat-CD34IZ4P-B5ZOJh4J.mjs.map +1 -0
  191. package/dist/strings-6WDHLGMX-DdiEdoL-.mjs +179 -0
  192. package/dist/strings-6WDHLGMX-DdiEdoL-.mjs.map +1 -0
  193. package/dist/tac-2STMMJYW-DPyeWM9R.mjs +53 -0
  194. package/dist/tac-2STMMJYW-DPyeWM9R.mjs.map +1 -0
  195. package/dist/tail-R4PCA2C4-CUfroNeu.mjs +37 -0
  196. package/dist/tail-R4PCA2C4-CUfroNeu.mjs.map +1 -0
  197. package/dist/tar-STHHZTZ6-DRf60e-G.mjs +2838 -0
  198. package/dist/tar-STHHZTZ6-DRf60e-G.mjs.map +1 -0
  199. package/dist/tee-YUZ2FKCJ-po_dfyc_.mjs +46 -0
  200. package/dist/tee-YUZ2FKCJ-po_dfyc_.mjs.map +1 -0
  201. package/dist/time-D4LNBSWX-DVWhAldK.mjs +112 -0
  202. package/dist/time-D4LNBSWX-DVWhAldK.mjs.map +1 -0
  203. package/dist/timeout-YDCRSLPQ-B_yntmXU.mjs +113 -0
  204. package/dist/timeout-YDCRSLPQ-B_yntmXU.mjs.map +1 -0
  205. package/dist/touch-UA33VN3N-oW1SBT1r.mjs +104 -0
  206. package/dist/touch-UA33VN3N-oW1SBT1r.mjs.map +1 -0
  207. package/dist/tr-36LHWFRQ-CTq3z6wq.mjs +167 -0
  208. package/dist/tr-36LHWFRQ-CTq3z6wq.mjs.map +1 -0
  209. package/dist/tree-YLD52CNT-CIozNsLQ.mjs +186 -0
  210. package/dist/tree-YLD52CNT-CIozNsLQ.mjs.map +1 -0
  211. package/dist/true-FHQXJXBE-DsJOznSp.mjs +31 -0
  212. package/dist/true-FHQXJXBE-DsJOznSp.mjs.map +1 -0
  213. package/dist/unexpand-CADSA4VO-Cq9DTcUg.mjs +155 -0
  214. package/dist/unexpand-CADSA4VO-Cq9DTcUg.mjs.map +1 -0
  215. package/dist/uniq-XSIZR6PB-D5lt-IXF.mjs +92 -0
  216. package/dist/uniq-XSIZR6PB-D5lt-IXF.mjs.map +1 -0
  217. package/dist/{version-n-JpPeUF.mjs → version-BOm_5ar9.mjs} +2 -2
  218. package/dist/{version-n-JpPeUF.mjs.map → version-BOm_5ar9.mjs.map} +1 -1
  219. package/dist/wc-LF7NU4LA-BFPabrwD.mjs +111 -0
  220. package/dist/wc-LF7NU4LA-BFPabrwD.mjs.map +1 -0
  221. package/dist/which-XEM24D5D-2LvlkpUo.mjs +62 -0
  222. package/dist/which-XEM24D5D-2LvlkpUo.mjs.map +1 -0
  223. package/dist/whoami-XMTX52VE-24Kwqrk6.mjs +24 -0
  224. package/dist/whoami-XMTX52VE-24Kwqrk6.mjs.map +1 -0
  225. package/dist/xan-Y6WF3IRG-DjKO96Pj.mjs +2832 -0
  226. package/dist/xan-Y6WF3IRG-DjKO96Pj.mjs.map +1 -0
  227. package/dist/xan-view-HDVKHFC2-DhDNVE_V.mjs +12 -0
  228. package/dist/xan-view-HDVKHFC2-DhDNVE_V.mjs.map +1 -0
  229. package/dist/xargs-MGZPH7AX-D2bIgrdg.mjs +112 -0
  230. package/dist/xargs-MGZPH7AX-D2bIgrdg.mjs.map +1 -0
  231. package/dist/yq-4QJW3EQG-XhB3aACo.mjs +8610 -0
  232. package/dist/yq-4QJW3EQG-XhB3aACo.mjs.map +1 -0
  233. package/package.json +1 -1
  234. package/dist/dist-DWcRd4Se.mjs.map +0 -1
  235. package/dist/dist-DitNZUHA.mjs +0 -3
  236. package/dist/dist-vwoMCz6d.mjs +0 -775
  237. package/dist/dist-vwoMCz6d.mjs.map +0 -1
@@ -5231,8 +5231,126 @@ const OrganizationSlugSchema = string().trim().toLowerCase().min(2, "Slug must b
5231
5231
  * fail to load.
5232
5232
  */
5233
5233
  const ClaimableOrganizationSlugSchema = OrganizationSlugSchema.refine((slug) => !RESERVED_ORGANIZATION_SLUGS.has(slug), "This slug is reserved");
5234
+ const ORGANIZATION_NAME_APOSTROPHE_PATTERN = /[''\u2018\u2019]/g;
5235
+ /** Normalize a display name into slug-shaped text (may be empty or too short to claim). */
5236
+ function normalizeOrganizationNameToSlugBase(name) {
5237
+ return name.trim().toLowerCase().replace(ORGANIZATION_NAME_APOSTROPHE_PATTERN, "").replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
5238
+ }
5234
5239
  /** Same format as organization slugs — org-scoped, no global reserved list. */
5235
5240
  const ProjectSlugSchema = OrganizationSlugSchema;
5241
+ /** Derive a URL slug from a project display name (not guaranteed unique within the org). */
5242
+ function slugifyProjectName(name) {
5243
+ const base = normalizeOrganizationNameToSlugBase(name);
5244
+ if (!base) return "project";
5245
+ const parsed = ProjectSlugSchema.safeParse(base);
5246
+ return parsed.success ? parsed.data : "project";
5247
+ }
5248
+ const OrganizationSlugErrorCodeSchema = _enum([
5249
+ "slug_taken",
5250
+ "slug_reserved",
5251
+ "slug_invalid"
5252
+ ]);
5253
+ const SlugAvailabilityReasonSchema = _enum([
5254
+ "taken",
5255
+ "reserved",
5256
+ "invalid"
5257
+ ]);
5258
+ const SlugAvailabilityResponseSchema = object({
5259
+ slug: string(),
5260
+ available: boolean(),
5261
+ reason: SlugAvailabilityReasonSchema.optional(),
5262
+ suggestion: OrganizationSlugSchema.optional()
5263
+ });
5264
+ object({
5265
+ slug: string().trim().min(1),
5266
+ excludeOrganizationId: string().min(1).optional()
5267
+ });
5268
+ const ProjectSlugAvailabilityReasonSchema = _enum(["taken", "invalid"]);
5269
+ const ProjectSlugAvailabilityResponseSchema = object({
5270
+ slug: string(),
5271
+ available: boolean(),
5272
+ reason: ProjectSlugAvailabilityReasonSchema.optional(),
5273
+ suggestion: ProjectSlugSchema.optional()
5274
+ });
5275
+ object({
5276
+ slug: string().trim().min(1),
5277
+ excludeProjectId: string().min(1).optional()
5278
+ });
5279
+ const ProjectStatusSchema = _enum([
5280
+ "inactive",
5281
+ "starting",
5282
+ "active",
5283
+ "failed"
5284
+ ]);
5285
+ const OrganizationUserRoleSchema = _enum([
5286
+ "owner",
5287
+ "admin",
5288
+ "builder"
5289
+ ]);
5290
+ const isoDateTime$5 = string().datetime();
5291
+ const OrganizationSchema = object({
5292
+ id: string(),
5293
+ name: string(),
5294
+ slug: OrganizationSlugSchema,
5295
+ createdAt: isoDateTime$5,
5296
+ updatedAt: isoDateTime$5
5297
+ });
5298
+ const ProjectSchema = object({
5299
+ id: string(),
5300
+ organizationId: string(),
5301
+ name: string(),
5302
+ slug: ProjectSlugSchema,
5303
+ description: string().nullable(),
5304
+ status: ProjectStatusSchema,
5305
+ baseUrl: string().nullable(),
5306
+ runtimeId: string().nullable(),
5307
+ lastError: string().nullable(),
5308
+ createdAt: isoDateTime$5,
5309
+ updatedAt: isoDateTime$5
5310
+ });
5311
+ const UserOrganizationSchema = object({
5312
+ organization: OrganizationSchema,
5313
+ role: OrganizationUserRoleSchema
5314
+ });
5315
+ const ActiveOrganizationResponseSchema = UserOrganizationSchema.nullable();
5316
+ const ListOrganizationsResponseSchema = array(UserOrganizationSchema);
5317
+ const CreateOrganizationRequestSchema = object({
5318
+ name: string().trim().min(1),
5319
+ /** Format-only at the wire boundary; reserved-name checks run in platform-database. */
5320
+ slug: OrganizationSlugSchema.optional()
5321
+ });
5322
+ const UpdateOrganizationRequestSchema = object({
5323
+ name: string().trim().min(1).optional(),
5324
+ slug: ClaimableOrganizationSlugSchema.optional()
5325
+ }).refine((data) => data.name !== void 0 || data.slug !== void 0, { message: "At least one field is required" });
5326
+ const CreateOrganizationResponseSchema = UserOrganizationSchema;
5327
+ const ListProjectsResponseSchema = array(ProjectSchema);
5328
+ const ProjectListMetricsSchema = object({
5329
+ agentCount: number$1(),
5330
+ workflowCount: number$1(),
5331
+ skillCount: number$1(),
5332
+ credentialCount: number$1(),
5333
+ lastDeploymentAt: isoDateTime$5.nullable()
5334
+ });
5335
+ const ListProjectMetricsResponseSchema = record(string(), ProjectListMetricsSchema);
5336
+ const CreateProjectRequestSchema = object({
5337
+ name: string().trim().min(1),
5338
+ description: string().trim().min(1).optional()
5339
+ });
5340
+ const UpdateProjectRequestSchema = object({
5341
+ name: string().trim().min(1).optional(),
5342
+ description: string().trim().optional(),
5343
+ slug: ProjectSlugSchema.optional()
5344
+ }).refine((data) => data.name !== void 0 || data.description !== void 0 || data.slug !== void 0, { message: "At least one field is required" });
5345
+ const CreateProjectResponseSchema = ProjectSchema;
5346
+ const ProjectResponseSchema = ProjectSchema;
5347
+ const ProjectReachabilityResponseSchema = object({ reachable: boolean() });
5348
+ /** Org-custom app slug segment (the part after `{orgSlug}/`). Same format as project slugs. */
5349
+ const AppSlugSchema = ProjectSlugSchema;
5350
+ /** Derive a slug segment from a display name (not guaranteed unique). */
5351
+ function slugifyAppName(name) {
5352
+ return slugifyProjectName(name);
5353
+ }
5236
5354
  /** Browser→platform request budget (ping + small platform overhead). */
5237
5355
  const PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS = 17e3;
5238
5356
  /** Normalize a public origin URL (no trailing slash). */
@@ -5270,137 +5388,62 @@ const StoredRouteManifestSkillSchema = object({
5270
5388
  description: string().optional(),
5271
5389
  moduleFile: string()
5272
5390
  });
5273
- const serializedRouteManifestEntrySchema = discriminatedUnion("kind", [
5274
- object({
5275
- kind: literal("health"),
5276
- method: literal("GET"),
5277
- path: literal("/health")
5278
- }),
5391
+ const attachmentSchemasSchema = record(string(), object({
5392
+ requestSchema: record(string(), unknown()),
5393
+ filterSchema: record(string(), unknown()).optional()
5394
+ }));
5395
+ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
5396
+ object({ kind: literal("health") }),
5279
5397
  object({
5280
5398
  kind: literal("agent"),
5281
- method: literal("POST"),
5282
- path: string(),
5283
- agentSlug: string(),
5399
+ slug: string(),
5284
5400
  moduleFile: string(),
5285
5401
  name: string().optional(),
5286
5402
  description: string().optional(),
5287
5403
  model: string(),
5288
5404
  systemPrompt: string(),
5289
5405
  toolCount: number$1().int().nonnegative(),
5290
- credentialCount: number$1().int().nonnegative(),
5291
- requestSchema: record(string(), unknown()),
5292
- responseSchema: record(string(), unknown())
5293
- }),
5294
- object({
5295
- kind: literal("agent-sessions-list"),
5296
- method: literal("GET"),
5297
- path: string(),
5298
- agentSlug: string(),
5299
- moduleFile: string()
5300
- }),
5301
- object({
5302
- kind: literal("agent-session-detail"),
5303
- method: literal("GET"),
5304
- path: string(),
5305
- agentSlug: string(),
5306
- moduleFile: string()
5406
+ credentialCount: number$1().int().nonnegative()
5307
5407
  }),
5308
5408
  object({
5309
5409
  kind: literal("workflow"),
5310
- method: literal("POST"),
5311
- path: string(),
5312
- workflowSlug: string(),
5313
- workflowName: string().optional(),
5410
+ slug: string(),
5411
+ name: string().optional(),
5314
5412
  description: string().optional(),
5315
5413
  subscribable: boolean(),
5316
5414
  moduleFile: string(),
5317
- requestSchema: record(string(), unknown()),
5318
- responseSchema: record(string(), unknown())
5319
- }),
5320
- object({
5321
- kind: literal("workflow-runs-list"),
5322
- method: literal("GET"),
5323
- path: string(),
5324
- workflowSlug: string(),
5325
- workflowName: string().optional(),
5326
- moduleFile: string()
5327
- }),
5328
- object({
5329
- kind: literal("workflow-run-detail"),
5330
- method: literal("GET"),
5331
- path: string(),
5332
- workflowSlug: string(),
5333
- workflowName: string().optional(),
5334
- moduleFile: string()
5415
+ requestSchema: record(string(), unknown())
5335
5416
  }),
5336
5417
  object({
5337
5418
  kind: literal("trigger-webhook"),
5338
- method: literal("POST"),
5339
- path: string(),
5419
+ endpoint: string(),
5340
5420
  attachmentIds: array(string()),
5341
5421
  moduleFile: string(),
5342
- requestSchema: record(string(), unknown()),
5343
- attachmentSchemas: record(string(), object({
5344
- requestSchema: record(string(), unknown()),
5345
- filterSchema: record(string(), unknown()).optional()
5346
- })),
5347
- responseSchema: record(string(), unknown())
5422
+ attachmentSchemas: attachmentSchemasSchema
5348
5423
  }),
5349
5424
  object({
5350
5425
  kind: literal("trigger-poll"),
5351
- method: literal("POST"),
5352
- path: string(),
5353
5426
  attachmentId: string(),
5354
5427
  moduleFile: string(),
5355
- schedule: string(),
5356
- responseSchema: record(string(), unknown())
5428
+ schedule: string()
5357
5429
  }),
5358
5430
  object({
5359
5431
  kind: literal("trigger-poll-group"),
5360
- method: literal("POST"),
5361
- path: string(),
5362
5432
  pollId: string(),
5363
5433
  attachmentIds: array(string()),
5364
5434
  moduleFile: string(),
5365
- schedule: string(),
5366
- responseSchema: record(string(), unknown())
5367
- }),
5368
- object({
5369
- kind: literal("trigger-runs-list"),
5370
- method: literal("GET"),
5371
- path: string(),
5372
- attachmentId: string(),
5373
- moduleFile: string()
5374
- }),
5375
- object({
5376
- kind: literal("trigger-run-detail"),
5377
- method: literal("GET"),
5378
- path: string(),
5379
- attachmentId: string(),
5380
- moduleFile: string()
5435
+ schedule: string()
5381
5436
  }),
5382
5437
  object({
5383
5438
  kind: literal("cron-schedule"),
5384
5439
  attachmentId: string(),
5385
5440
  moduleFile: string(),
5386
5441
  schedule: string()
5387
- }),
5388
- object({
5389
- kind: literal("plugin"),
5390
- method: _enum([
5391
- "GET",
5392
- "POST",
5393
- "PUT",
5394
- "PATCH",
5395
- "DELETE"
5396
- ]),
5397
- path: string(),
5398
- plugin: string()
5399
5442
  })
5400
5443
  ]);
5401
5444
  const StoredRouteManifestSchema = object({
5402
- version: literal(1),
5403
- entries: array(serializedRouteManifestEntrySchema),
5445
+ version: literal(2),
5446
+ entries: array(storedRouteManifestEntryV2Schema),
5404
5447
  skills: array(StoredRouteManifestSkillSchema).default([]),
5405
5448
  integrations: array(string()).optional()
5406
5449
  });
@@ -5513,15 +5556,15 @@ const ChannelDirectoryEntrySchema = object({
5513
5556
  memberCount: number$1().int().nonnegative().optional(),
5514
5557
  isArchived: boolean().optional()
5515
5558
  });
5516
- const ChannelConnectionListResponseSchema = object({ connections: array(ChannelConnectionSchema) });
5517
- const ChannelDirectoryListResponseSchema = object({ channels: array(ChannelDirectoryEntrySchema) });
5559
+ const ChannelConnectionListResponseSchema = array(ChannelConnectionSchema);
5560
+ const ChannelDirectoryListResponseSchema = array(ChannelDirectoryEntrySchema);
5518
5561
  object({ teamName: string().min(1).optional() });
5519
- const ChannelAccountListResponseSchema = object({ accounts: array(object({
5562
+ const ChannelAccountListResponseSchema = array(object({
5520
5563
  id: string().min(1),
5521
5564
  platform: ChannelPlatformKeySchema,
5522
5565
  label: string().min(1),
5523
5566
  connectedAt: string()
5524
- })) });
5567
+ }));
5525
5568
  const NewChannelBindingInputSchema = object({
5526
5569
  channelId: string().min(1),
5527
5570
  channelName: string().min(1),
@@ -5538,6 +5581,14 @@ const UpdateChannelBindingBodySchema = object({ patch: object({
5538
5581
  mode: ChannelListenModeSchema.optional(),
5539
5582
  subscribeOnMention: boolean().optional()
5540
5583
  }) });
5584
+ /** Metadata for one vault field on a custom api_key app. */
5585
+ const AppCredentialFieldSchema = object({
5586
+ label: string().trim().min(1).optional(),
5587
+ secret: boolean().optional(),
5588
+ optional: boolean().optional()
5589
+ });
5590
+ /** Credential template keyed by vault field name. */
5591
+ const AppCredentialFieldsSchema = record(string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/), AppCredentialFieldSchema).refine((fields) => Object.keys(fields).length > 0, { message: "At least one credential field is required" }).refine((fields) => Object.values(fields).some((field) => field.optional !== true), { message: "At least one credential field must be required" });
5541
5592
  /** A single OAuth scope an app can request, with human copy for connect UI. */
5542
5593
  const OAuthScopeOptionSchema = object({
5543
5594
  name: string().min(1),
@@ -5565,6 +5616,37 @@ object({
5565
5616
  authKind: AppAuthKindSchema,
5566
5617
  oauthScopes: array(OAuthScopeOptionSchema)
5567
5618
  }).extend({ source: AppSourceSchema });
5619
+ const customAppNameSchema = string().trim().min(1, "Name is required");
5620
+ const AppSlugAvailabilityReasonSchema = ProjectSlugAvailabilityReasonSchema;
5621
+ const AppSlugAvailabilityResponseSchema = object({
5622
+ slug: string(),
5623
+ available: boolean(),
5624
+ reason: AppSlugAvailabilityReasonSchema.optional(),
5625
+ suggestion: AppSlugSchema.optional()
5626
+ });
5627
+ object({ slug: string().trim().min(1) });
5628
+ /** Request body for creating an org custom api_key app. */
5629
+ const CreateCustomAppRequestSchema = object({
5630
+ name: customAppNameSchema,
5631
+ slug: AppSlugSchema,
5632
+ description: string().trim().min(1),
5633
+ fields: AppCredentialFieldsSchema
5634
+ });
5635
+ /** Full custom app detail returned by GET (includes credential template for sync). */
5636
+ const CustomAppDetailSchema = object({
5637
+ id: string().min(1),
5638
+ slug: string().min(1),
5639
+ name: string().min(1),
5640
+ description: string().min(1),
5641
+ category: string().min(1),
5642
+ authKind: literal("api_key"),
5643
+ source: literal("custom"),
5644
+ credentialFields: AppCredentialFieldsSchema,
5645
+ createdAt: string().min(1),
5646
+ updatedAt: string().min(1)
5647
+ });
5648
+ const CreateCustomAppResponseSchema = CustomAppDetailSchema;
5649
+ const GetCustomAppResponseSchema = CustomAppDetailSchema;
5568
5650
  object({
5569
5651
  id: string().min(1),
5570
5652
  organizationId: string().min(1).nullable(),
@@ -5576,10 +5658,11 @@ object({
5576
5658
  authKind: AppAuthKindSchema,
5577
5659
  oauthScopes: array(OAuthScopeOptionSchema),
5578
5660
  source: AppSourceSchema,
5661
+ credentialFields: AppCredentialFieldsSchema.optional(),
5579
5662
  createdAt: string().min(1),
5580
5663
  updatedAt: string().min(1)
5581
5664
  });
5582
- const ListAppsResponseSchema = object({ apps: array(object({
5665
+ const ListAppsResponseSchema = array(object({
5583
5666
  id: string().min(1),
5584
5667
  name: string().min(1),
5585
5668
  description: string().min(1),
@@ -5588,9 +5671,69 @@ const ListAppsResponseSchema = object({ apps: array(object({
5588
5671
  logo: string().url().nullable().optional(),
5589
5672
  authKind: AppAuthKindSchema,
5590
5673
  oauthScopes: array(OAuthScopeOptionSchema),
5674
+ /** Where app metadata and execution are sourced (e.g. composio, custom). */
5675
+ source: AppSourceSchema,
5676
+ /** Custom api_key apps — vault field template for connect UI and sync. */
5677
+ credentialFields: AppCredentialFieldsSchema.optional(),
5591
5678
  /** When present, the app supports agent gateway bindings (external channels). */
5592
5679
  gateway: AppGatewaySchema.optional()
5593
- })) });
5680
+ }));
5681
+ const CatalogAppsPageSchema = object({
5682
+ items: array(object({
5683
+ name: string(),
5684
+ description: string(),
5685
+ package: string()
5686
+ })),
5687
+ nextCursor: string().optional()
5688
+ });
5689
+ const CatalogAppDetailSchema = object({
5690
+ name: string(),
5691
+ description: string(),
5692
+ package: string(),
5693
+ version: string().optional()
5694
+ });
5695
+ const CatalogActionSummarySchema = object({
5696
+ slug: string(),
5697
+ name: string(),
5698
+ description: string().optional()
5699
+ });
5700
+ const CatalogActionsPageSchema = object({
5701
+ toolkit: string().optional(),
5702
+ items: array(CatalogActionSummarySchema),
5703
+ nextCursor: string().optional()
5704
+ });
5705
+ const CatalogActionDetailSchema = object({
5706
+ slug: string(),
5707
+ name: string(),
5708
+ description: string().optional(),
5709
+ inputParameters: record(string(), unknown()).optional(),
5710
+ outputParameters: record(string(), unknown()).optional(),
5711
+ version: string().optional()
5712
+ });
5713
+ const CatalogAppsPageResponseSchema = CatalogAppsPageSchema;
5714
+ const CatalogAppDetailResponseSchema = CatalogAppDetailSchema;
5715
+ const CatalogActionsPageResponseSchema = CatalogActionsPageSchema;
5716
+ const CatalogActionDetailResponseSchema = CatalogActionDetailSchema;
5717
+ const ORG_SLUG_SEPARATOR = "/";
5718
+ /** Parse a stored app slug into official vs org-custom parts. */
5719
+ function parseAppSlug(slug) {
5720
+ const trimmed = slug.trim();
5721
+ if (!trimmed) throw new Error("parseAppSlug requires a non-empty slug");
5722
+ const separatorIndex = trimmed.indexOf(ORG_SLUG_SEPARATOR);
5723
+ if (separatorIndex === -1) return {
5724
+ kind: "official",
5725
+ slug: trimmed
5726
+ };
5727
+ const orgSlug = trimmed.slice(0, separatorIndex);
5728
+ const name = trimmed.slice(separatorIndex + 1);
5729
+ if (!orgSlug || !name || trimmed.indexOf(ORG_SLUG_SEPARATOR, separatorIndex + 1) !== -1) throw new Error(`Invalid org app slug: ${slug}`);
5730
+ return {
5731
+ kind: "org",
5732
+ orgSlug,
5733
+ name,
5734
+ slug: trimmed
5735
+ };
5736
+ }
5594
5737
  /** How a credential instance is stored (`credential_instances.auth_kind`). */
5595
5738
  const CredentialAuthKindSchema = _enum([
5596
5739
  "api_key",
@@ -5662,7 +5805,9 @@ function addMissingCredentialTargetIssue(ctx, path = ["projects"]) {
5662
5805
  const CredentialTargetsFieldsSchema = object({
5663
5806
  projects: array(string().min(1)).default([]),
5664
5807
  createOrganizationCredential: boolean().default(false),
5665
- createUserProvidedCredential: boolean().default(false)
5808
+ createUserProvidedCredential: boolean().default(false),
5809
+ /** Display label for created credential instances (apps table / detail page). */
5810
+ label: string().trim().min(1).optional()
5666
5811
  });
5667
5812
  /** Input for starting an OAuth connection (connect dialog / CLI connect). */
5668
5813
  const StartOAuthConnectionInputSchema = CredentialTargetsFieldsSchema.extend({
@@ -5675,6 +5820,25 @@ const StartOAuthConnectionResultSchema = object({
5675
5820
  status: _enum(["connected", "redirecting"]),
5676
5821
  authorizeUrl: string().url().nullable()
5677
5822
  });
5823
+ /** Input for starting a Composio/keystroke connection (connect dialog). */
5824
+ const StartKeystrokeConnectionInputSchema = object({
5825
+ app: string().trim().min(1),
5826
+ scopeType: AppCredentialScopeSchema,
5827
+ projectSlug: string().trim().min(1).optional(),
5828
+ label: string().trim().min(1).optional()
5829
+ }).superRefine((input, ctx) => {
5830
+ if (input.scopeType === "project" && !input.projectSlug?.trim()) ctx.addIssue({
5831
+ code: "custom",
5832
+ message: "projectSlug is required for project scope",
5833
+ path: ["projectSlug"]
5834
+ });
5835
+ });
5836
+ /** Result of starting a Composio/keystroke connection. */
5837
+ const StartKeystrokeConnectionResultSchema = object({
5838
+ status: _enum(["redirecting"]),
5839
+ authorizeUrl: string().url(),
5840
+ connectionId: string()
5841
+ });
5678
5842
  /** Request body for `POST /api/credentials` (manual api-key fan-out). */
5679
5843
  const CreateCredentialsRequestSchema = CredentialTargetsFieldsSchema.extend({
5680
5844
  appId: string().min(1),
@@ -5700,9 +5864,9 @@ const UpdateCredentialRequestSchema = object({
5700
5864
  isDefault: boolean().optional(),
5701
5865
  value: credentialSecretValueSchema.optional()
5702
5866
  }).refine((input) => input.label !== void 0 || input.isDefault !== void 0 || input.value !== void 0, { message: "At least one field is required" });
5703
- const ListCredentialsResponseSchema = object({ credentials: array(AppCredentialSummarySchema) });
5704
- const GetCredentialResponseSchema = object({ credential: AppCredentialSummarySchema });
5705
- const CreateCredentialsResponseSchema = object({ credentials: array(AppCredentialSummarySchema) });
5867
+ const ListCredentialsResponseSchema = array(AppCredentialSummarySchema);
5868
+ const GetCredentialResponseSchema = AppCredentialSummarySchema;
5869
+ const CreateCredentialsResponseSchema = array(AppCredentialSummarySchema);
5706
5870
  const McpConnectionStatusSchema = _enum([
5707
5871
  "INITIATED",
5708
5872
  "ACTIVE",
@@ -5711,13 +5875,13 @@ const McpConnectionStatusSchema = _enum([
5711
5875
  "INACTIVE",
5712
5876
  "REVOKED"
5713
5877
  ]);
5714
- object({ apps: array(object({
5878
+ object({
5715
5879
  slug: string(),
5716
5880
  name: string(),
5717
5881
  connected: boolean(),
5718
5882
  connectionId: string().optional(),
5719
5883
  status: McpConnectionStatusSchema.optional()
5720
- })) });
5884
+ });
5721
5885
  object({
5722
5886
  connectionId: string(),
5723
5887
  entityId: string(),
@@ -5727,11 +5891,6 @@ object({
5727
5891
  app: string().trim().min(1),
5728
5892
  tool: string().trim().min(1),
5729
5893
  arguments: record(string(), unknown()).default({}),
5730
- /**
5731
- * Resolved credential instance to execute against. When set, the platform executes that exact
5732
- * connection (scoped to the caller's org); when omitted it resolves the app's instance by scope.
5733
- */
5734
- instanceId: string().trim().min(1).optional(),
5735
5894
  /** Pinned provider toolkit version, sourced from the app definition; forwarded to the provider. */
5736
5895
  version: string().trim().min(1)
5737
5896
  });
@@ -5759,106 +5918,6 @@ function toCredentialRequirement(item) {
5759
5918
  ...item.tokenField !== void 0 ? { tokenField: item.tokenField } : {}
5760
5919
  };
5761
5920
  }
5762
- const OrganizationSlugErrorCodeSchema = _enum([
5763
- "slug_taken",
5764
- "slug_reserved",
5765
- "slug_invalid"
5766
- ]);
5767
- const SlugAvailabilityReasonSchema = _enum([
5768
- "taken",
5769
- "reserved",
5770
- "invalid"
5771
- ]);
5772
- const SlugAvailabilityResponseSchema = object({
5773
- slug: string(),
5774
- available: boolean(),
5775
- reason: SlugAvailabilityReasonSchema.optional(),
5776
- suggestion: OrganizationSlugSchema.optional()
5777
- });
5778
- object({
5779
- slug: string().trim().min(1),
5780
- excludeOrganizationId: string().min(1).optional()
5781
- });
5782
- const ProjectSlugAvailabilityReasonSchema = _enum(["taken", "invalid"]);
5783
- const ProjectSlugAvailabilityResponseSchema = object({
5784
- slug: string(),
5785
- available: boolean(),
5786
- reason: ProjectSlugAvailabilityReasonSchema.optional(),
5787
- suggestion: ProjectSlugSchema.optional()
5788
- });
5789
- object({
5790
- slug: string().trim().min(1),
5791
- excludeProjectId: string().min(1).optional()
5792
- });
5793
- const ProjectStatusSchema = _enum([
5794
- "inactive",
5795
- "starting",
5796
- "active",
5797
- "failed"
5798
- ]);
5799
- const OrganizationUserRoleSchema = _enum([
5800
- "owner",
5801
- "admin",
5802
- "builder"
5803
- ]);
5804
- const isoDateTime$5 = string().datetime();
5805
- const OrganizationSchema = object({
5806
- id: string(),
5807
- name: string(),
5808
- slug: OrganizationSlugSchema,
5809
- createdAt: isoDateTime$5,
5810
- updatedAt: isoDateTime$5
5811
- });
5812
- const ProjectSchema = object({
5813
- id: string(),
5814
- organizationId: string(),
5815
- name: string(),
5816
- slug: ProjectSlugSchema,
5817
- description: string().nullable(),
5818
- status: ProjectStatusSchema,
5819
- baseUrl: string().nullable(),
5820
- runtimeId: string().nullable(),
5821
- lastError: string().nullable(),
5822
- createdAt: isoDateTime$5,
5823
- updatedAt: isoDateTime$5
5824
- });
5825
- const UserOrganizationSchema = object({
5826
- organization: OrganizationSchema,
5827
- role: OrganizationUserRoleSchema
5828
- });
5829
- const ActiveOrganizationResponseSchema = object({ organization: UserOrganizationSchema.nullable() });
5830
- const ListOrganizationsResponseSchema = object({ organizations: array(UserOrganizationSchema) });
5831
- const CreateOrganizationRequestSchema = object({
5832
- name: string().trim().min(1),
5833
- /** Format-only at the wire boundary; reserved-name checks run in platform-database. */
5834
- slug: OrganizationSlugSchema.optional()
5835
- });
5836
- const UpdateOrganizationRequestSchema = object({
5837
- name: string().trim().min(1).optional(),
5838
- slug: ClaimableOrganizationSlugSchema.optional()
5839
- }).refine((data) => data.name !== void 0 || data.slug !== void 0, { message: "At least one field is required" });
5840
- const CreateOrganizationResponseSchema = object({ organization: UserOrganizationSchema });
5841
- const ListProjectsResponseSchema = object({ projects: array(ProjectSchema) });
5842
- const ProjectListMetricsSchema = object({
5843
- agentCount: number$1(),
5844
- workflowCount: number$1(),
5845
- skillCount: number$1(),
5846
- credentialCount: number$1(),
5847
- lastDeploymentAt: isoDateTime$5.nullable()
5848
- });
5849
- const ListProjectMetricsResponseSchema = object({ metrics: record(string(), ProjectListMetricsSchema) });
5850
- const CreateProjectRequestSchema = object({
5851
- name: string().trim().min(1),
5852
- description: string().trim().min(1).optional()
5853
- });
5854
- const UpdateProjectRequestSchema = object({
5855
- name: string().trim().min(1).optional(),
5856
- description: string().trim().optional(),
5857
- slug: ProjectSlugSchema.optional()
5858
- }).refine((data) => data.name !== void 0 || data.description !== void 0 || data.slug !== void 0, { message: "At least one field is required" });
5859
- const CreateProjectResponseSchema = object({ project: ProjectSchema });
5860
- const ProjectResponseSchema = object({ project: ProjectSchema });
5861
- const ProjectReachabilityResponseSchema = object({ reachable: boolean() });
5862
5921
  const ValidationErrorDetailSchema = object({
5863
5922
  path: string(),
5864
5923
  message: string()
@@ -6499,7 +6558,7 @@ const OrganizationMemberSchema = object({
6499
6558
  joinedAt: isoDateTime$4.optional(),
6500
6559
  lastActiveAt: isoDateTime$4.nullable().optional()
6501
6560
  });
6502
- const ListOrganizationMembersResponseSchema = object({ members: array(OrganizationMemberSchema) });
6561
+ const ListOrganizationMembersResponseSchema = array(OrganizationMemberSchema);
6503
6562
  const InviteOrganizationMembersRequestSchema = object({
6504
6563
  emails: array(string().trim().email()).min(1),
6505
6564
  role: InvitableOrganizationMemberRoleSchema
@@ -6510,22 +6569,22 @@ const InviteOrganizationMemberResultStatusSchema = _enum([
6510
6569
  "pending",
6511
6570
  "invalid"
6512
6571
  ]);
6513
- const InviteOrganizationMembersResponseSchema = object({ results: array(object({
6572
+ const InviteOrganizationMembersResponseSchema = array(object({
6514
6573
  email: string(),
6515
6574
  status: InviteOrganizationMemberResultStatusSchema,
6516
6575
  invitationId: string().optional()
6517
- })) });
6576
+ }));
6518
6577
  const UpdateOrganizationMemberRequestSchema = object({ role: InvitableOrganizationMemberRoleSchema });
6519
- const UpdateOrganizationMemberResponseSchema = object({ member: OrganizationMemberSchema });
6520
- const ListOrganizationInvitationsResponseSchema = object({ invitations: array(object({
6578
+ const UpdateOrganizationMemberResponseSchema = OrganizationMemberSchema;
6579
+ const ListOrganizationInvitationsResponseSchema = array(object({
6521
6580
  id: string(),
6522
6581
  organizationName: string(),
6523
6582
  organizationSlug: OrganizationSlugSchema,
6524
6583
  invitedByName: string().optional(),
6525
6584
  invitedByEmail: string().email().optional(),
6526
6585
  role: OrganizationMemberRoleSchema
6527
- })) });
6528
- const AcceptOrganizationInvitationResponseSchema = object({ organization: UserOrganizationSchema });
6586
+ }));
6587
+ const AcceptOrganizationInvitationResponseSchema = UserOrganizationSchema;
6529
6588
  const DeclineOrganizationInvitationResponseSchema = object({ success: literal(true) });
6530
6589
  const isoDateTime$3 = string().datetime();
6531
6590
  const ApiKeyCreatorSchema = object({
@@ -6544,7 +6603,7 @@ const ApiKeySummarySchema = object({
6544
6603
  createdBy: ApiKeyCreatorSchema,
6545
6604
  isCreatedByCurrentUser: boolean()
6546
6605
  });
6547
- const ListApiKeysResponseSchema = object({ apiKeys: array(ApiKeySummarySchema) });
6606
+ const ListApiKeysResponseSchema = array(ApiKeySummarySchema);
6548
6607
  const CreateApiKeyRequestSchema = object({ name: string().trim().min(1).max(128) });
6549
6608
  const CreateApiKeyResponseSchema = ApiKeySummarySchema.extend({ secret: string() });
6550
6609
  const ProjectUserRoleSchema = _enum(["admin", "builder"]);
@@ -6562,7 +6621,7 @@ const ProjectMemberSchema = object({
6562
6621
  createdAt: isoDateTime$2,
6563
6622
  isCurrentUser: boolean().optional()
6564
6623
  });
6565
- const ListProjectMembersResponseSchema = object({ members: array(ProjectMemberSchema) });
6624
+ const ListProjectMembersResponseSchema = array(ProjectMemberSchema);
6566
6625
  const InviteProjectMembersRequestSchema = object({
6567
6626
  emails: array(string().trim().email()).min(1),
6568
6627
  role: ProjectUserRoleSchema
@@ -6573,12 +6632,12 @@ const InviteProjectMemberResultStatusSchema = _enum([
6573
6632
  "not_org_member",
6574
6633
  "invalid"
6575
6634
  ]);
6576
- const InviteProjectMembersResponseSchema = object({ results: array(object({
6635
+ const InviteProjectMembersResponseSchema = array(object({
6577
6636
  email: string(),
6578
6637
  status: InviteProjectMemberResultStatusSchema
6579
- })) });
6638
+ }));
6580
6639
  const UpdateProjectMemberRequestSchema = object({ role: ProjectUserRoleSchema });
6581
- const UpdateProjectMemberResponseSchema = object({ member: ProjectMemberSchema });
6640
+ const UpdateProjectMemberResponseSchema = ProjectMemberSchema;
6582
6641
  const ProjectSettingsSchema = object({
6583
6642
  description: string(),
6584
6643
  defaultRole: ProjectUserRoleSchema,
@@ -6589,7 +6648,7 @@ const UpdateProjectSettingsRequestSchema = object({
6589
6648
  defaultRole: ProjectUserRoleSchema.optional(),
6590
6649
  invitePermission: ProjectInvitePermissionSchema.optional()
6591
6650
  }).refine((data) => data.description !== void 0 || data.defaultRole !== void 0 || data.invitePermission !== void 0, { message: "At least one field is required" });
6592
- const ProjectSettingsResponseSchema = object({ settings: ProjectSettingsSchema });
6651
+ const ProjectSettingsResponseSchema = ProjectSettingsSchema;
6593
6652
  /** Custom avatar override; null means fall back to OAuth `users.image`. */
6594
6653
  const UserAvatarSchema = object({ url: url().nullable() });
6595
6654
  const UserAvatarPatchSchema = object({
@@ -6701,7 +6760,7 @@ const DownloadActiveProjectArtifactResponseSchema = object({
6701
6760
  downloadUrl: string().url(),
6702
6761
  expiresInSeconds: number$1().int().positive()
6703
6762
  });
6704
- const ListProjectDeploymentsResponseSchema = object({ deployments: array(object({
6763
+ const ListProjectDeploymentsResponseSchema = array(object({
6705
6764
  id: string(),
6706
6765
  projectId: string(),
6707
6766
  version: number$1().int().positive(),
@@ -6710,7 +6769,7 @@ const ListProjectDeploymentsResponseSchema = object({ deployments: array(object(
6710
6769
  deployedByAvatarUrl: string().optional(),
6711
6770
  createdAt: isoDateTime$1,
6712
6771
  active: boolean()
6713
- })) });
6772
+ }));
6714
6773
  const optionalCount = number$1().int().nonnegative().nullable().optional();
6715
6774
  const optionalTimestamp = string().nullable().optional();
6716
6775
  const AgentSummarySchema = object({
@@ -6837,6 +6896,6 @@ object({
6837
6896
  generatedAt: isoDateTime
6838
6897
  });
6839
6898
  //#endregion
6840
- export { ListProjectsResponseSchema as $, normalizeCredentialList as $t, DownloadActiveProjectArtifactResponseSchema as A, TriggerRunListResponseSchema as At, InviteOrganizationMembersResponseSchema as B, UpdateProjectSettingsRequestSchema as Bt, CreateOrganizationResponseSchema as C, StartOAuthConnectionInputSchema as Ct, CredentialInstanceListResponseSchema as D, TriggerDetailResponseSchema as Dt, CreateProjectResponseSchema as E, SubmitTeamRequestRequestSchema as Et, HistoryRunCancelResponseSchema as F, UpdateOrganizationMemberResponseSchema as Ft, ListCredentialsResponseSchema as G, UserAvatarSchema as Gt, InviteProjectMembersResponseSchema as H, UploadProjectSourceResponseSchema as Ht, HistoryRunDetailResponseSchema as I, UpdateOrganizationRequestSchema as It, ListOrganizationsResponseSchema as J, WorkflowRunDetailResponseSchema as Jt, ListOrganizationInvitationsResponseSchema as K, UserPreferencesPatchSchema as Kt, HistoryRunListQuerySchema as L, UpdateProjectMemberRequestSchema as Lt, GatewayAttachmentRecordSchema as M, UpdateCredentialInstanceBodySchema as Mt, GetCredentialResponseSchema as N, UpdateCredentialRequestSchema as Nt, CredentialInstanceRecordSchema as O, TriggerListResponseSchema as Ot, HealthResponseSchema as P, UpdateOrganizationMemberRequestSchema as Pt, ListProjectMetricsResponseSchema as Q, listenPortFromPublicUrl as Qt, HistoryRunListResponseSchema as R, UpdateProjectMemberResponseSchema as Rt, CreateOrganizationRequestSchema as S, SlugAvailabilityResponseSchema as St, CreateProjectRequestSchema as T, StoredRouteManifestSchema as Tt, ListApiKeysResponseSchema as U, UpsertGatewayAttachmentBodySchema as Ut, InviteProjectMembersRequestSchema as V, UploadProjectSourceManifestRequestSchema as Vt, ListAppsResponseSchema as W, UserAvatarPatchSchema as Wt, ListProjectFilesResponseSchema as X, WorkflowSummaryDetailResponseSchema as Xt, ListProjectDeploymentsResponseSchema as Y, WorkflowRunListResponseSchema as Yt, ListProjectMembersResponseSchema as Z, WorkflowSummaryListResponseSchema as Zt, CreateApiKeyRequestSchema as _, QueuedRunResponseSchema as _t, AgentSessionListResponseSchema as a, custom as an, PresignOrgLogoResponseSchema as at, CreateCredentialsRequestSchema as b, SkillSummaryDetailResponseSchema as bt, BindChannelBodySchema as c, object as cn, PresignUserAvatarRequestSchema as ct, ChannelConnectionSchema as d, toJSONSchema as dn, ProjectResponseSchema as dt, originFromPublicUrl as en, OrganizationSidebarBrandingPatchSchema as et, ChannelDirectoryListResponseSchema as f, ProjectSettingsResponseSchema as ft, ConnectProvidersResponseSchema as g, QueuedAgentPromptResponseSchema as gt, ConnectAuthorizeUrlResponseSchema as h, PromptResponseSchema as ht, AgentSessionDetailResponseSchema as i, array as in, PresignOrgLogoRequestSchema as it, ErrorResponseSchema as j, UpdateChannelBindingBodySchema as jt, DeclineOrganizationInvitationResponseSchema as k, TriggerRunDetailResponseSchema as kt, ChannelAccountListResponseSchema as l, string as ln, PresignUserAvatarResponseSchema as lt, CompleteProjectArtifactResponseSchema as m, PromptInputSchema as mt, AcceptOrganizationInvitationResponseSchema as n, ZodType as nn, PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS as nt, AgentSummaryDetailResponseSchema as o, discriminatedUnion as on, PresignProjectSourceRequestSchema as ot, ChannelPlatformSchema as p, ProjectSlugAvailabilityResponseSchema as pt, ListOrganizationMembersResponseSchema as q, UserPreferencesSchema as qt, ActiveOrganizationResponseSchema as r, _function as rn, PollRunResponseSchema as rt, AgentSummaryListResponseSchema as s, literal as sn, PresignProjectSourceResponseSchema as st, ACTIVE_ORG_HEADER as t, parseErrorResponse as tn, OrganizationSidebarBrandingSchema as tt, ChannelConnectionListResponseSchema as u, union as un, ProjectReachabilityResponseSchema as ut, CreateApiKeyResponseSchema as v, ROUTE_MANIFEST_REL_PATH as vt, CreateProjectArtifactResponseSchema as w, StartOAuthConnectionResultSchema as wt, CreateCredentialsResponseSchema as x, SkillSummaryListResponseSchema as xt, CreateCredentialInstanceBodySchema as y, RecentResourceListResponseSchema as yt, InviteOrganizationMembersRequestSchema as z, UpdateProjectRequestSchema as zt };
6899
+ export { ListCredentialsResponseSchema as $, UpsertGatewayAttachmentBodySchema as $t, CreateOrganizationResponseSchema as A, SlugAvailabilityResponseSchema as At, GetCredentialResponseSchema as B, TriggerRunListResponseSchema as Bt, CreateApiKeyResponseSchema as C, toJSONSchema as Cn, PromptResponseSchema as Ct, CreateCustomAppRequestSchema as D, RecentResourceListResponseSchema as Dt, CreateCredentialsResponseSchema as E, ROUTE_MANIFEST_REL_PATH as Et, CredentialInstanceRecordSchema as F, StoredRouteManifestSchema as Ft, HistoryRunListQuerySchema as G, UpdateOrganizationMemberResponseSchema as Gt, HealthResponseSchema as H, UpdateCredentialInstanceBodySchema as Ht, DeclineOrganizationInvitationResponseSchema as I, SubmitTeamRequestRequestSchema as It, InviteOrganizationMembersResponseSchema as J, UpdateProjectMemberResponseSchema as Jt, HistoryRunListResponseSchema as K, UpdateOrganizationRequestSchema as Kt, DownloadActiveProjectArtifactResponseSchema as L, TriggerDetailResponseSchema as Lt, CreateProjectRequestSchema as M, StartKeystrokeConnectionResultSchema as Mt, CreateProjectResponseSchema as N, StartOAuthConnectionInputSchema as Nt, CreateCustomAppResponseSchema as O, SkillSummaryDetailResponseSchema as Ot, CredentialInstanceListResponseSchema as P, StartOAuthConnectionResultSchema as Pt, ListAppsResponseSchema as Q, UploadProjectSourceResponseSchema as Qt, ErrorResponseSchema as R, TriggerListResponseSchema as Rt, CreateApiKeyRequestSchema as S, union as Sn, PromptInputSchema as St, CreateCredentialsRequestSchema as T, QueuedRunResponseSchema as Tt, HistoryRunCancelResponseSchema as U, UpdateCredentialRequestSchema as Ut, GetCustomAppResponseSchema as V, UpdateChannelBindingBodySchema as Vt, HistoryRunDetailResponseSchema as W, UpdateOrganizationMemberRequestSchema as Wt, InviteProjectMembersResponseSchema as X, UpdateProjectSettingsRequestSchema as Xt, InviteProjectMembersRequestSchema as Y, UpdateProjectRequestSchema as Yt, ListApiKeysResponseSchema as Z, UploadProjectSourceManifestRequestSchema as Zt, ChannelDirectoryListResponseSchema as _, custom as _n, PresignUserAvatarResponseSchema as _t, AgentSessionListResponseSchema as a, WorkflowRunListResponseSchema as an, ListProjectMembersResponseSchema as at, ConnectAuthorizeUrlResponseSchema as b, object as bn, ProjectSettingsResponseSchema as bt, AppSlugAvailabilityResponseSchema as c, listenPortFromPublicUrl as cn, OrganizationSidebarBrandingPatchSchema as ct, CatalogActionsPageResponseSchema as d, parseAppSlug as dn, PollRunResponseSchema as dt, UserAvatarPatchSchema as en, ListOrganizationInvitationsResponseSchema as et, CatalogAppDetailResponseSchema as f, parseErrorResponse as fn, PresignOrgLogoRequestSchema as ft, ChannelConnectionSchema as g, array as gn, PresignUserAvatarRequestSchema as gt, ChannelConnectionListResponseSchema as h, _function as hn, PresignProjectSourceResponseSchema as ht, AgentSessionDetailResponseSchema as i, WorkflowRunDetailResponseSchema as in, ListProjectFilesResponseSchema as it, CreateProjectArtifactResponseSchema as j, StartKeystrokeConnectionInputSchema as jt, CreateOrganizationRequestSchema as k, SkillSummaryListResponseSchema as kt, BindChannelBodySchema as l, normalizeCredentialList as ln, OrganizationSidebarBrandingSchema as lt, ChannelAccountListResponseSchema as m, ZodType as mn, PresignProjectSourceRequestSchema as mt, AcceptOrganizationInvitationResponseSchema as n, UserPreferencesPatchSchema as nn, ListOrganizationsResponseSchema as nt, AgentSummaryDetailResponseSchema as o, WorkflowSummaryDetailResponseSchema as on, ListProjectMetricsResponseSchema as ot, CatalogAppsPageResponseSchema as p, slugifyAppName as pn, PresignOrgLogoResponseSchema as pt, InviteOrganizationMembersRequestSchema as q, UpdateProjectMemberRequestSchema as qt, ActiveOrganizationResponseSchema as r, UserPreferencesSchema as rn, ListProjectDeploymentsResponseSchema as rt, AgentSummaryListResponseSchema as s, WorkflowSummaryListResponseSchema as sn, ListProjectsResponseSchema as st, ACTIVE_ORG_HEADER as t, UserAvatarSchema as tn, ListOrganizationMembersResponseSchema as tt, CatalogActionDetailResponseSchema as u, originFromPublicUrl as un, PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS as ut, ChannelPlatformSchema as v, discriminatedUnion as vn, ProjectReachabilityResponseSchema as vt, CreateCredentialInstanceBodySchema as w, QueuedAgentPromptResponseSchema as wt, ConnectProvidersResponseSchema as x, string as xn, ProjectSlugAvailabilityResponseSchema as xt, CompleteProjectArtifactResponseSchema as y, literal as yn, ProjectResponseSchema as yt, GatewayAttachmentRecordSchema as z, TriggerRunDetailResponseSchema as zt };
6841
6900
 
6842
- //# sourceMappingURL=dist-DjfxlOWX.mjs.map
6901
+ //# sourceMappingURL=dist-C3YClLXV.mjs.map