@keystrokehq/platform 0.0.0-staging-20260714181321

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 (437) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +63 -0
  3. package/dist/alias-RTYYYW3D-CGfkaHCa.mjs +97 -0
  4. package/dist/alias-RTYYYW3D-CGfkaHCa.mjs.map +1 -0
  5. package/dist/alias-RTYYYW3D-eAP6l98p.cjs +98 -0
  6. package/dist/alias-RTYYYW3D-eAP6l98p.cjs.map +1 -0
  7. package/dist/awk2-LA3USKJP-pKmGobcZ.cjs +2732 -0
  8. package/dist/awk2-LA3USKJP-pKmGobcZ.cjs.map +1 -0
  9. package/dist/awk2-LA3USKJP-pnoNftT8.mjs +2732 -0
  10. package/dist/awk2-LA3USKJP-pnoNftT8.mjs.map +1 -0
  11. package/dist/base64-C2AIWVNC-CrtpD1na.cjs +122 -0
  12. package/dist/base64-C2AIWVNC-CrtpD1na.cjs.map +1 -0
  13. package/dist/base64-C2AIWVNC-CyAyrmOE.mjs +122 -0
  14. package/dist/base64-C2AIWVNC-CyAyrmOE.mjs.map +1 -0
  15. package/dist/basename-UB3CIYNI--0bze3Ml.cjs +52 -0
  16. package/dist/basename-UB3CIYNI--0bze3Ml.cjs.map +1 -0
  17. package/dist/basename-UB3CIYNI-DUyGGC_4.mjs +52 -0
  18. package/dist/basename-UB3CIYNI-DUyGGC_4.mjs.map +1 -0
  19. package/dist/bash-YZ33HQZQ-Bft3qmnm.mjs +116 -0
  20. package/dist/bash-YZ33HQZQ-Bft3qmnm.mjs.map +1 -0
  21. package/dist/bash-YZ33HQZQ-DLA5dK37.cjs +117 -0
  22. package/dist/bash-YZ33HQZQ-DLA5dK37.cjs.map +1 -0
  23. package/dist/cat-TSFMZVYS-BaKHr4U0.cjs +61 -0
  24. package/dist/cat-TSFMZVYS-BaKHr4U0.cjs.map +1 -0
  25. package/dist/cat-TSFMZVYS-CblTQ5QR.mjs +61 -0
  26. package/dist/cat-TSFMZVYS-CblTQ5QR.mjs.map +1 -0
  27. package/dist/chmod-TFEPA42X-Cmt6YbbQ.cjs +124 -0
  28. package/dist/chmod-TFEPA42X-Cmt6YbbQ.cjs.map +1 -0
  29. package/dist/chmod-TFEPA42X-DKe_HF9R.mjs +124 -0
  30. package/dist/chmod-TFEPA42X-DKe_HF9R.mjs.map +1 -0
  31. package/dist/chunk-27JIFWUR-C_jDOm1q.mjs +99 -0
  32. package/dist/chunk-27JIFWUR-C_jDOm1q.mjs.map +1 -0
  33. package/dist/chunk-27JIFWUR-CyXQ6J5p.cjs +115 -0
  34. package/dist/chunk-27JIFWUR-CyXQ6J5p.cjs.map +1 -0
  35. package/dist/chunk-4I3HOE5Z-BYotzP2w.mjs +718 -0
  36. package/dist/chunk-4I3HOE5Z-BYotzP2w.mjs.map +1 -0
  37. package/dist/chunk-4I3HOE5Z-CGJlGU0s.cjs +722 -0
  38. package/dist/chunk-4I3HOE5Z-CGJlGU0s.cjs.map +1 -0
  39. package/dist/chunk-4WKZNNJK-CuElmTiB.cjs +114 -0
  40. package/dist/chunk-4WKZNNJK-CuElmTiB.cjs.map +1 -0
  41. package/dist/chunk-4WKZNNJK-x25SBHbd.mjs +68 -0
  42. package/dist/chunk-4WKZNNJK-x25SBHbd.mjs.map +1 -0
  43. package/dist/chunk-5H5SCKJM-J5-RMqlK.cjs +611 -0
  44. package/dist/chunk-5H5SCKJM-J5-RMqlK.cjs.map +1 -0
  45. package/dist/chunk-5H5SCKJM-gg7VwICJ.mjs +601 -0
  46. package/dist/chunk-5H5SCKJM-gg7VwICJ.mjs.map +1 -0
  47. package/dist/chunk-AQ6FYS2X-BTQ2ZWeh.cjs +40 -0
  48. package/dist/chunk-AQ6FYS2X-BTQ2ZWeh.cjs.map +1 -0
  49. package/dist/chunk-AQ6FYS2X-CrZWHyzD.mjs +36 -0
  50. package/dist/chunk-AQ6FYS2X-CrZWHyzD.mjs.map +1 -0
  51. package/dist/chunk-BZUGFHVS-7RRM7Jpb.cjs +67 -0
  52. package/dist/chunk-BZUGFHVS-7RRM7Jpb.cjs.map +1 -0
  53. package/dist/chunk-BZUGFHVS-B2NchobP.mjs +33 -0
  54. package/dist/chunk-BZUGFHVS-B2NchobP.mjs.map +1 -0
  55. package/dist/chunk-CHFEPBH4-CINsrE8W.mjs +593 -0
  56. package/dist/chunk-CHFEPBH4-CINsrE8W.mjs.map +1 -0
  57. package/dist/chunk-CHFEPBH4-CPiu5G3a.cjs +609 -0
  58. package/dist/chunk-CHFEPBH4-CPiu5G3a.cjs.map +1 -0
  59. package/dist/chunk-EBAPSGAO-C93v3qzT.mjs +246 -0
  60. package/dist/chunk-EBAPSGAO-C93v3qzT.mjs.map +1 -0
  61. package/dist/chunk-EBAPSGAO-DZoiCbGH.cjs +250 -0
  62. package/dist/chunk-EBAPSGAO-DZoiCbGH.cjs.map +1 -0
  63. package/dist/chunk-LEKBROJD-BuX8Z517.mjs +3109 -0
  64. package/dist/chunk-LEKBROJD-BuX8Z517.mjs.map +1 -0
  65. package/dist/chunk-LEKBROJD-hm07oWvp.cjs +3119 -0
  66. package/dist/chunk-LEKBROJD-hm07oWvp.cjs.map +1 -0
  67. package/dist/chunk-QAYAQNCG-B1r1SmqS.mjs +62 -0
  68. package/dist/chunk-QAYAQNCG-B1r1SmqS.mjs.map +1 -0
  69. package/dist/chunk-QAYAQNCG-ROQh1hrZ.cjs +78 -0
  70. package/dist/chunk-QAYAQNCG-ROQh1hrZ.cjs.map +1 -0
  71. package/dist/chunk-QIQMJJZ4-Cm4e9-4O.cjs +96 -0
  72. package/dist/chunk-QIQMJJZ4-Cm4e9-4O.cjs.map +1 -0
  73. package/dist/chunk-QIQMJJZ4-Dn8UfvJ9.mjs +92 -0
  74. package/dist/chunk-QIQMJJZ4-Dn8UfvJ9.mjs.map +1 -0
  75. package/dist/chunk-SO6R3ZKN-DIoHJ9o1.mjs +139 -0
  76. package/dist/chunk-SO6R3ZKN-DIoHJ9o1.mjs.map +1 -0
  77. package/dist/chunk-SO6R3ZKN-DYeOBPNJ.cjs +161 -0
  78. package/dist/chunk-SO6R3ZKN-DYeOBPNJ.cjs.map +1 -0
  79. package/dist/chunk-SX2HC7SO-BrE3qB0x.mjs +19 -0
  80. package/dist/chunk-SX2HC7SO-BrE3qB0x.mjs.map +1 -0
  81. package/dist/chunk-SX2HC7SO-CN1P7tXw.cjs +23 -0
  82. package/dist/chunk-SX2HC7SO-CN1P7tXw.cjs.map +1 -0
  83. package/dist/chunk-TDD4NFYE-CyVGcZCt.cjs +24 -0
  84. package/dist/chunk-TDD4NFYE-CyVGcZCt.cjs.map +1 -0
  85. package/dist/chunk-TDD4NFYE-Djy1ztDY.mjs +20 -0
  86. package/dist/chunk-TDD4NFYE-Djy1ztDY.mjs.map +1 -0
  87. package/dist/chunk-TN7HHBQW-B8PYcKz5.mjs +1136 -0
  88. package/dist/chunk-TN7HHBQW-B8PYcKz5.mjs.map +1 -0
  89. package/dist/chunk-TN7HHBQW-D_SK6w5n.cjs +1146 -0
  90. package/dist/chunk-TN7HHBQW-D_SK6w5n.cjs.map +1 -0
  91. package/dist/chunk-VPADYNBD-BwKY-5Xk.mjs +121 -0
  92. package/dist/chunk-VPADYNBD-BwKY-5Xk.mjs.map +1 -0
  93. package/dist/chunk-VPADYNBD-ZJpUxqq9.cjs +167 -0
  94. package/dist/chunk-VPADYNBD-ZJpUxqq9.cjs.map +1 -0
  95. package/dist/chunk-YCLFEX4T-BmQTDw1Y.cjs +86 -0
  96. package/dist/chunk-YCLFEX4T-BmQTDw1Y.cjs.map +1 -0
  97. package/dist/chunk-YCLFEX4T-DvGVdefs.mjs +76 -0
  98. package/dist/chunk-YCLFEX4T-DvGVdefs.mjs.map +1 -0
  99. package/dist/clear-HKGFEOF6-B9FqQA-D.cjs +27 -0
  100. package/dist/clear-HKGFEOF6-B9FqQA-D.cjs.map +1 -0
  101. package/dist/clear-HKGFEOF6-CVmdHYje.mjs +27 -0
  102. package/dist/clear-HKGFEOF6-CVmdHYje.mjs.map +1 -0
  103. package/dist/column-XT6UFXNQ-CEthufNl.mjs +142 -0
  104. package/dist/column-XT6UFXNQ-CEthufNl.mjs.map +1 -0
  105. package/dist/column-XT6UFXNQ-tddqJ9Kg.cjs +142 -0
  106. package/dist/column-XT6UFXNQ-tddqJ9Kg.cjs.map +1 -0
  107. package/dist/comm-VV2LDX2J-BpdAYzr_.mjs +86 -0
  108. package/dist/comm-VV2LDX2J-BpdAYzr_.mjs.map +1 -0
  109. package/dist/comm-VV2LDX2J-D8M6JDGH.cjs +86 -0
  110. package/dist/comm-VV2LDX2J-D8M6JDGH.cjs.map +1 -0
  111. package/dist/config-BO2sTtYA.d.mts +324 -0
  112. package/dist/config-DahIeWeM.d.cts +322 -0
  113. package/dist/config.cjs +16 -0
  114. package/dist/config.cjs.map +1 -0
  115. package/dist/config.d.cts +2 -0
  116. package/dist/config.d.mts +2 -0
  117. package/dist/config.mjs +15 -0
  118. package/dist/config.mjs.map +1 -0
  119. package/dist/cp-BISAAS7A-BO2reDJf.cjs +105 -0
  120. package/dist/cp-BISAAS7A-BO2reDJf.cjs.map +1 -0
  121. package/dist/cp-BISAAS7A-Bgk2QUcq.mjs +105 -0
  122. package/dist/cp-BISAAS7A-Bgk2QUcq.mjs.map +1 -0
  123. package/dist/cut-OKARJCCV-DPm1czVO.mjs +117 -0
  124. package/dist/cut-OKARJCCV-DPm1czVO.mjs.map +1 -0
  125. package/dist/cut-OKARJCCV-DaBpPPf8.cjs +117 -0
  126. package/dist/cut-OKARJCCV-DaBpPPf8.cjs.map +1 -0
  127. package/dist/date-UUUPW43J-DPhwuguC.cjs +187 -0
  128. package/dist/date-UUUPW43J-DPhwuguC.cjs.map +1 -0
  129. package/dist/date-UUUPW43J-_wNZ6va_.mjs +187 -0
  130. package/dist/date-UUUPW43J-_wNZ6va_.mjs.map +1 -0
  131. package/dist/diff-MWJFIG7X-DZWE4by5.mjs +754 -0
  132. package/dist/diff-MWJFIG7X-DZWE4by5.mjs.map +1 -0
  133. package/dist/diff-MWJFIG7X-sW58v-In.cjs +754 -0
  134. package/dist/diff-MWJFIG7X-sW58v-In.cjs.map +1 -0
  135. package/dist/dirname-MPHRFUTI-B9pAFfgt.cjs +42 -0
  136. package/dist/dirname-MPHRFUTI-B9pAFfgt.cjs.map +1 -0
  137. package/dist/dirname-MPHRFUTI-BH9xdo7B.mjs +42 -0
  138. package/dist/dirname-MPHRFUTI-BH9xdo7B.mjs.map +1 -0
  139. package/dist/dist-B_VrBT_r.mjs +37377 -0
  140. package/dist/dist-B_VrBT_r.mjs.map +1 -0
  141. package/dist/dist-BdxWQmKK.mjs +8067 -0
  142. package/dist/dist-BdxWQmKK.mjs.map +1 -0
  143. package/dist/dist-DCAFVLts.cjs +38596 -0
  144. package/dist/dist-DCAFVLts.cjs.map +1 -0
  145. package/dist/dist-QIg3f1DP.cjs +8132 -0
  146. package/dist/dist-QIg3f1DP.cjs.map +1 -0
  147. package/dist/du-572XNP42-CRWdTyWl.mjs +175 -0
  148. package/dist/du-572XNP42-CRWdTyWl.mjs.map +1 -0
  149. package/dist/du-572XNP42-CqHbkS7A.cjs +175 -0
  150. package/dist/du-572XNP42-CqHbkS7A.cjs.map +1 -0
  151. package/dist/echo-NDWZZHPO-BUogPcJ_.mjs +136 -0
  152. package/dist/echo-NDWZZHPO-BUogPcJ_.mjs.map +1 -0
  153. package/dist/echo-NDWZZHPO-Cv_eCCli.cjs +136 -0
  154. package/dist/echo-NDWZZHPO-Cv_eCCli.cjs.map +1 -0
  155. package/dist/env-36M5BO7M-B3hY6c1d.mjs +117 -0
  156. package/dist/env-36M5BO7M-B3hY6c1d.mjs.map +1 -0
  157. package/dist/env-36M5BO7M-BJX6pRHi.cjs +118 -0
  158. package/dist/env-36M5BO7M-BJX6pRHi.cjs.map +1 -0
  159. package/dist/expand-JSPG6VOP-C4ZcygSl.mjs +144 -0
  160. package/dist/expand-JSPG6VOP-C4ZcygSl.mjs.map +1 -0
  161. package/dist/expand-JSPG6VOP-Dd-2L8yn.cjs +144 -0
  162. package/dist/expand-JSPG6VOP-Dd-2L8yn.cjs.map +1 -0
  163. package/dist/expr-5JAACS4X-Cxs0wDb3.mjs +151 -0
  164. package/dist/expr-5JAACS4X-Cxs0wDb3.mjs.map +1 -0
  165. package/dist/expr-5JAACS4X-DmKCLgI8.cjs +151 -0
  166. package/dist/expr-5JAACS4X-DmKCLgI8.cjs.map +1 -0
  167. package/dist/file-IPZJC3FQ-DeyikL2y.mjs +4200 -0
  168. package/dist/file-IPZJC3FQ-DeyikL2y.mjs.map +1 -0
  169. package/dist/file-IPZJC3FQ-M9Q0fqTe.cjs +4200 -0
  170. package/dist/file-IPZJC3FQ-M9Q0fqTe.cjs.map +1 -0
  171. package/dist/find-INTH3OLC-BR7ZZKkF.mjs +1330 -0
  172. package/dist/find-INTH3OLC-BR7ZZKkF.mjs.map +1 -0
  173. package/dist/find-INTH3OLC-C2Uc7scj.cjs +1330 -0
  174. package/dist/find-INTH3OLC-C2Uc7scj.cjs.map +1 -0
  175. package/dist/fold-4TQNYMSW-BQ9ukqex.cjs +137 -0
  176. package/dist/fold-4TQNYMSW-BQ9ukqex.cjs.map +1 -0
  177. package/dist/fold-4TQNYMSW-DsDovqTl.mjs +137 -0
  178. package/dist/fold-4TQNYMSW-DsDovqTl.mjs.map +1 -0
  179. package/dist/grep-V3LQVMRQ-BsgT3xzo.mjs +333 -0
  180. package/dist/grep-V3LQVMRQ-BsgT3xzo.mjs.map +1 -0
  181. package/dist/grep-V3LQVMRQ-ChT5D1RX.cjs +335 -0
  182. package/dist/grep-V3LQVMRQ-ChT5D1RX.cjs.map +1 -0
  183. package/dist/gzip-O5ASJAFY-ClxvbIo6.mjs +591 -0
  184. package/dist/gzip-O5ASJAFY-ClxvbIo6.mjs.map +1 -0
  185. package/dist/gzip-O5ASJAFY-DJOwjcpB.cjs +593 -0
  186. package/dist/gzip-O5ASJAFY-DJOwjcpB.cjs.map +1 -0
  187. package/dist/head-442HYESI-B1LlP95a.mjs +35 -0
  188. package/dist/head-442HYESI-B1LlP95a.mjs.map +1 -0
  189. package/dist/head-442HYESI-CL9VIqkb.cjs +35 -0
  190. package/dist/head-442HYESI-CL9VIqkb.cjs.map +1 -0
  191. package/dist/help-HZ6M2CKN-BjVXFW-f.mjs +122 -0
  192. package/dist/help-HZ6M2CKN-BjVXFW-f.mjs.map +1 -0
  193. package/dist/help-HZ6M2CKN-CzUrqQB7.cjs +122 -0
  194. package/dist/help-HZ6M2CKN-CzUrqQB7.cjs.map +1 -0
  195. package/dist/history-WYYKSLSZ-6NEj5e3f.mjs +47 -0
  196. package/dist/history-WYYKSLSZ-6NEj5e3f.mjs.map +1 -0
  197. package/dist/history-WYYKSLSZ-DfPcvaAY.cjs +47 -0
  198. package/dist/history-WYYKSLSZ-DfPcvaAY.cjs.map +1 -0
  199. package/dist/hostname-C4HQXXUP-B86my_ii.mjs +23 -0
  200. package/dist/hostname-C4HQXXUP-B86my_ii.mjs.map +1 -0
  201. package/dist/hostname-C4HQXXUP-CC1LpY9-.cjs +23 -0
  202. package/dist/hostname-C4HQXXUP-CC1LpY9-.cjs.map +1 -0
  203. package/dist/html-to-markdown-JW4MSQZO-BKOSSsyy.mjs +15889 -0
  204. package/dist/html-to-markdown-JW4MSQZO-BKOSSsyy.mjs.map +1 -0
  205. package/dist/html-to-markdown-JW4MSQZO-TyAsgBnO.cjs +15892 -0
  206. package/dist/html-to-markdown-JW4MSQZO-TyAsgBnO.cjs.map +1 -0
  207. package/dist/internal.cjs +5 -0
  208. package/dist/internal.d.cts +22 -0
  209. package/dist/internal.d.mts +22 -0
  210. package/dist/internal.mjs +2 -0
  211. package/dist/join-TBRGI3LQ-CwgUaVoR.mjs +197 -0
  212. package/dist/join-TBRGI3LQ-CwgUaVoR.mjs.map +1 -0
  213. package/dist/join-TBRGI3LQ-JKyApOii.cjs +197 -0
  214. package/dist/join-TBRGI3LQ-JKyApOii.cjs.map +1 -0
  215. package/dist/jq-4XLYLOS5-D6TJiRje.cjs +250 -0
  216. package/dist/jq-4XLYLOS5-D6TJiRje.cjs.map +1 -0
  217. package/dist/jq-4XLYLOS5-ZisFFv1P.mjs +250 -0
  218. package/dist/jq-4XLYLOS5-ZisFFv1P.mjs.map +1 -0
  219. package/dist/js-exec-N5KEZBH7-BDEPJLK5.cjs +326 -0
  220. package/dist/js-exec-N5KEZBH7-BDEPJLK5.cjs.map +1 -0
  221. package/dist/js-exec-N5KEZBH7-Dp6FRM8y.mjs +325 -0
  222. package/dist/js-exec-N5KEZBH7-Dp6FRM8y.mjs.map +1 -0
  223. package/dist/lib-Cecx0Mdv.cjs +47 -0
  224. package/dist/lib-Cecx0Mdv.cjs.map +1 -0
  225. package/dist/lib-Dsemc_Ik.mjs +44 -0
  226. package/dist/lib-Dsemc_Ik.mjs.map +1 -0
  227. package/dist/llm-proxy.cjs +32 -0
  228. package/dist/llm-proxy.d.cts +2 -0
  229. package/dist/llm-proxy.d.mts +2 -0
  230. package/dist/llm-proxy.mjs +2 -0
  231. package/dist/ln-4LGSXXGD-DCt-08KM.cjs +100 -0
  232. package/dist/ln-4LGSXXGD-DCt-08KM.cjs.map +1 -0
  233. package/dist/ln-4LGSXXGD-DbVtAqnH.mjs +100 -0
  234. package/dist/ln-4LGSXXGD-DbVtAqnH.mjs.map +1 -0
  235. package/dist/ls-ZJGQER7M-BQuAedIy.cjs +1890 -0
  236. package/dist/ls-ZJGQER7M-BQuAedIy.cjs.map +1 -0
  237. package/dist/ls-ZJGQER7M-PRXSwGZZ.mjs +1890 -0
  238. package/dist/ls-ZJGQER7M-PRXSwGZZ.mjs.map +1 -0
  239. package/dist/lzma-BE4gwH-8.cjs +1204 -0
  240. package/dist/lzma-BE4gwH-8.cjs.map +1 -0
  241. package/dist/lzma-CmLEdvxC.mjs +1134 -0
  242. package/dist/lzma-CmLEdvxC.mjs.map +1 -0
  243. package/dist/md5sum-SPU24VSG-CmmvMGPa.mjs +15 -0
  244. package/dist/md5sum-SPU24VSG-CmmvMGPa.mjs.map +1 -0
  245. package/dist/md5sum-SPU24VSG-xbLQd_LU.cjs +15 -0
  246. package/dist/md5sum-SPU24VSG-xbLQd_LU.cjs.map +1 -0
  247. package/dist/mkdir-MEPGZOB6-DB938M04.mjs +56 -0
  248. package/dist/mkdir-MEPGZOB6-DB938M04.mjs.map +1 -0
  249. package/dist/mkdir-MEPGZOB6-IHvBvQTL.cjs +56 -0
  250. package/dist/mkdir-MEPGZOB6-IHvBvQTL.cjs.map +1 -0
  251. package/dist/mv-W5BIQ646-B2XVmdN4.mjs +92 -0
  252. package/dist/mv-W5BIQ646-B2XVmdN4.mjs.map +1 -0
  253. package/dist/mv-W5BIQ646-CFwaJ3Xx.cjs +92 -0
  254. package/dist/mv-W5BIQ646-CFwaJ3Xx.cjs.map +1 -0
  255. package/dist/nl-WSDW7I4O-CRYsCXB7.mjs +207 -0
  256. package/dist/nl-WSDW7I4O-CRYsCXB7.mjs.map +1 -0
  257. package/dist/nl-WSDW7I4O-FzZXRAwD.cjs +207 -0
  258. package/dist/nl-WSDW7I4O-FzZXRAwD.cjs.map +1 -0
  259. package/dist/od-WOKFDJTP-DVBJw76D.mjs +72 -0
  260. package/dist/od-WOKFDJTP-DVBJw76D.mjs.map +1 -0
  261. package/dist/od-WOKFDJTP-M80nAztL.cjs +72 -0
  262. package/dist/od-WOKFDJTP-M80nAztL.cjs.map +1 -0
  263. package/dist/paste-7JC6S4DX-DOPeey0W.cjs +112 -0
  264. package/dist/paste-7JC6S4DX-DOPeey0W.cjs.map +1 -0
  265. package/dist/paste-7JC6S4DX-q6d7adhi.mjs +112 -0
  266. package/dist/paste-7JC6S4DX-q6d7adhi.mjs.map +1 -0
  267. package/dist/platform-database.cjs +98 -0
  268. package/dist/platform-database.d.cts +2 -0
  269. package/dist/platform-database.d.mts +2 -0
  270. package/dist/platform-database.mjs +2 -0
  271. package/dist/printf-TWGXF445-BOz88v_H.mjs +878 -0
  272. package/dist/printf-TWGXF445-BOz88v_H.mjs.map +1 -0
  273. package/dist/printf-TWGXF445-BXve-Eiv.cjs +878 -0
  274. package/dist/printf-TWGXF445-BXve-Eiv.cjs.map +1 -0
  275. package/dist/pwd-WE6EN5AV-CbA4e7ec.mjs +33 -0
  276. package/dist/pwd-WE6EN5AV-CbA4e7ec.mjs.map +1 -0
  277. package/dist/pwd-WE6EN5AV-DfqwHtSS.cjs +33 -0
  278. package/dist/pwd-WE6EN5AV-DfqwHtSS.cjs.map +1 -0
  279. package/dist/python3-POMOR4OA-DRta50Gp.mjs +290 -0
  280. package/dist/python3-POMOR4OA-DRta50Gp.mjs.map +1 -0
  281. package/dist/python3-POMOR4OA-__fmhnV2.cjs +291 -0
  282. package/dist/python3-POMOR4OA-__fmhnV2.cjs.map +1 -0
  283. package/dist/readlink-OPJF4DL5-C7a7cTci.cjs +75 -0
  284. package/dist/readlink-OPJF4DL5-C7a7cTci.cjs.map +1 -0
  285. package/dist/readlink-OPJF4DL5-Zf7h1M1z.mjs +75 -0
  286. package/dist/readlink-OPJF4DL5-Zf7h1M1z.mjs.map +1 -0
  287. package/dist/rev-5EHFX4EJ-CFFAX-eL.cjs +65 -0
  288. package/dist/rev-5EHFX4EJ-CFFAX-eL.cjs.map +1 -0
  289. package/dist/rev-5EHFX4EJ-DP28Z2tI.mjs +65 -0
  290. package/dist/rev-5EHFX4EJ-DP28Z2tI.mjs.map +1 -0
  291. package/dist/rg-S4FXYXWB-Bawo1fot.mjs +1536 -0
  292. package/dist/rg-S4FXYXWB-Bawo1fot.mjs.map +1 -0
  293. package/dist/rg-S4FXYXWB-DrdwsBhO.cjs +1536 -0
  294. package/dist/rg-S4FXYXWB-DrdwsBhO.cjs.map +1 -0
  295. package/dist/rm-SSGETQVQ-BaWdfV2i.cjs +79 -0
  296. package/dist/rm-SSGETQVQ-BaWdfV2i.cjs.map +1 -0
  297. package/dist/rm-SSGETQVQ-C6EQ5XnR.mjs +79 -0
  298. package/dist/rm-SSGETQVQ-C6EQ5XnR.mjs.map +1 -0
  299. package/dist/rmdir-OC4ZLPYA-COg4QKnN.mjs +131 -0
  300. package/dist/rmdir-OC4ZLPYA-COg4QKnN.mjs.map +1 -0
  301. package/dist/rmdir-OC4ZLPYA-DK3A8POR.cjs +131 -0
  302. package/dist/rmdir-OC4ZLPYA-DK3A8POR.cjs.map +1 -0
  303. package/dist/run.cjs +13 -0
  304. package/dist/run.cjs.map +1 -0
  305. package/dist/run.d.cts +1 -0
  306. package/dist/run.d.mts +1 -0
  307. package/dist/run.mjs +14 -0
  308. package/dist/run.mjs.map +1 -0
  309. package/dist/sed-S5UIK574-CQ1AnR3r.cjs +1717 -0
  310. package/dist/sed-S5UIK574-CQ1AnR3r.cjs.map +1 -0
  311. package/dist/sed-S5UIK574-P4wu0pe1.mjs +1717 -0
  312. package/dist/sed-S5UIK574-P4wu0pe1.mjs.map +1 -0
  313. package/dist/seq-M5EC7Q57-BlpnRLkX.mjs +84 -0
  314. package/dist/seq-M5EC7Q57-BlpnRLkX.mjs.map +1 -0
  315. package/dist/seq-M5EC7Q57-CObcFJ6w.cjs +84 -0
  316. package/dist/seq-M5EC7Q57-CObcFJ6w.cjs.map +1 -0
  317. package/dist/sha1sum-2PTOAFR6-BPLIR6an.cjs +15 -0
  318. package/dist/sha1sum-2PTOAFR6-BPLIR6an.cjs.map +1 -0
  319. package/dist/sha1sum-2PTOAFR6-jNQ-uyUw.mjs +15 -0
  320. package/dist/sha1sum-2PTOAFR6-jNQ-uyUw.mjs.map +1 -0
  321. package/dist/sha256sum-NS7D3IXX-Bvq-KnSV.cjs +15 -0
  322. package/dist/sha256sum-NS7D3IXX-Bvq-KnSV.cjs.map +1 -0
  323. package/dist/sha256sum-NS7D3IXX-DebIy64D.mjs +15 -0
  324. package/dist/sha256sum-NS7D3IXX-DebIy64D.mjs.map +1 -0
  325. package/dist/sleep-X22JJINO-BZNoBeaB.mjs +66 -0
  326. package/dist/sleep-X22JJINO-BZNoBeaB.mjs.map +1 -0
  327. package/dist/sleep-X22JJINO-DP1z72-Q.cjs +66 -0
  328. package/dist/sleep-X22JJINO-DP1z72-Q.cjs.map +1 -0
  329. package/dist/sort-SW2YEO5B-BWZaGhuw.cjs +318 -0
  330. package/dist/sort-SW2YEO5B-BWZaGhuw.cjs.map +1 -0
  331. package/dist/sort-SW2YEO5B-DewIJ9_h.mjs +318 -0
  332. package/dist/sort-SW2YEO5B-DewIJ9_h.mjs.map +1 -0
  333. package/dist/split-4KKZZXXE-Bhr_rhRz.cjs +247 -0
  334. package/dist/split-4KKZZXXE-Bhr_rhRz.cjs.map +1 -0
  335. package/dist/split-4KKZZXXE-ciJXyT15.mjs +247 -0
  336. package/dist/split-4KKZZXXE-ciJXyT15.mjs.map +1 -0
  337. package/dist/sqlite3-CGOEFJAO-CdyK5NF3.cjs +2877 -0
  338. package/dist/sqlite3-CGOEFJAO-CdyK5NF3.cjs.map +1 -0
  339. package/dist/sqlite3-CGOEFJAO-K8u_Ru5X.mjs +2875 -0
  340. package/dist/sqlite3-CGOEFJAO-K8u_Ru5X.mjs.map +1 -0
  341. package/dist/start-DCnxLHI5.mjs +30918 -0
  342. package/dist/start-DCnxLHI5.mjs.map +1 -0
  343. package/dist/start-y3y8zgSv.cjs +31051 -0
  344. package/dist/start-y3y8zgSv.cjs.map +1 -0
  345. package/dist/start.cjs +3 -0
  346. package/dist/start.d.cts +28 -0
  347. package/dist/start.d.mts +28 -0
  348. package/dist/start.mjs +2 -0
  349. package/dist/stat-CD34IZ4P-BL8u_Aqm.mjs +64 -0
  350. package/dist/stat-CD34IZ4P-BL8u_Aqm.mjs.map +1 -0
  351. package/dist/stat-CD34IZ4P-BSu3fjXb.cjs +64 -0
  352. package/dist/stat-CD34IZ4P-BSu3fjXb.cjs.map +1 -0
  353. package/dist/strings-6WDHLGMX-Xt8Gbe8-.cjs +178 -0
  354. package/dist/strings-6WDHLGMX-Xt8Gbe8-.cjs.map +1 -0
  355. package/dist/strings-6WDHLGMX-lZect78u.mjs +178 -0
  356. package/dist/strings-6WDHLGMX-lZect78u.mjs.map +1 -0
  357. package/dist/tac-2STMMJYW-6DSfXKEM.cjs +52 -0
  358. package/dist/tac-2STMMJYW-6DSfXKEM.cjs.map +1 -0
  359. package/dist/tac-2STMMJYW-CYopDu0z.mjs +52 -0
  360. package/dist/tac-2STMMJYW-CYopDu0z.mjs.map +1 -0
  361. package/dist/tail-R4PCA2C4-05tRE3pO.mjs +36 -0
  362. package/dist/tail-R4PCA2C4-05tRE3pO.mjs.map +1 -0
  363. package/dist/tail-R4PCA2C4-B8zVnbJv.cjs +36 -0
  364. package/dist/tail-R4PCA2C4-B8zVnbJv.cjs.map +1 -0
  365. package/dist/tar-STHHZTZ6-BF9uOAeY.cjs +2839 -0
  366. package/dist/tar-STHHZTZ6-BF9uOAeY.cjs.map +1 -0
  367. package/dist/tar-STHHZTZ6-BGc4fGMj.mjs +2836 -0
  368. package/dist/tar-STHHZTZ6-BGc4fGMj.mjs.map +1 -0
  369. package/dist/tee-YUZ2FKCJ-CZGSWOLF.mjs +45 -0
  370. package/dist/tee-YUZ2FKCJ-CZGSWOLF.mjs.map +1 -0
  371. package/dist/tee-YUZ2FKCJ-DXc_xwaw.cjs +45 -0
  372. package/dist/tee-YUZ2FKCJ-DXc_xwaw.cjs.map +1 -0
  373. package/dist/time-D4LNBSWX-C5yYBJS0.mjs +107 -0
  374. package/dist/time-D4LNBSWX-C5yYBJS0.mjs.map +1 -0
  375. package/dist/time-D4LNBSWX-CQI3pEaI.cjs +107 -0
  376. package/dist/time-D4LNBSWX-CQI3pEaI.cjs.map +1 -0
  377. package/dist/timeout-YDCRSLPQ-C57Y8ySP.cjs +110 -0
  378. package/dist/timeout-YDCRSLPQ-C57Y8ySP.cjs.map +1 -0
  379. package/dist/timeout-YDCRSLPQ-CsT6X_C0.mjs +110 -0
  380. package/dist/timeout-YDCRSLPQ-CsT6X_C0.mjs.map +1 -0
  381. package/dist/touch-UA33VN3N-Cyx5v5-2.cjs +103 -0
  382. package/dist/touch-UA33VN3N-Cyx5v5-2.cjs.map +1 -0
  383. package/dist/touch-UA33VN3N-DYslBCYn.mjs +103 -0
  384. package/dist/touch-UA33VN3N-DYslBCYn.mjs.map +1 -0
  385. package/dist/tr-36LHWFRQ-C57tK13M.mjs +165 -0
  386. package/dist/tr-36LHWFRQ-C57tK13M.mjs.map +1 -0
  387. package/dist/tr-36LHWFRQ-CJ7ZK1Cv.cjs +165 -0
  388. package/dist/tr-36LHWFRQ-CJ7ZK1Cv.cjs.map +1 -0
  389. package/dist/tree-YLD52CNT-C01jI2xZ.mjs +185 -0
  390. package/dist/tree-YLD52CNT-C01jI2xZ.mjs.map +1 -0
  391. package/dist/tree-YLD52CNT-C0new1hw.cjs +185 -0
  392. package/dist/tree-YLD52CNT-C0new1hw.cjs.map +1 -0
  393. package/dist/true-FHQXJXBE-CIHy9LuF.mjs +30 -0
  394. package/dist/true-FHQXJXBE-CIHy9LuF.mjs.map +1 -0
  395. package/dist/true-FHQXJXBE-CROnM_dr.cjs +31 -0
  396. package/dist/true-FHQXJXBE-CROnM_dr.cjs.map +1 -0
  397. package/dist/unexpand-CADSA4VO-DgiJnv3D.mjs +154 -0
  398. package/dist/unexpand-CADSA4VO-DgiJnv3D.mjs.map +1 -0
  399. package/dist/unexpand-CADSA4VO-KAVxaOsW.cjs +154 -0
  400. package/dist/unexpand-CADSA4VO-KAVxaOsW.cjs.map +1 -0
  401. package/dist/uniq-XSIZR6PB-C05c3Clm.mjs +90 -0
  402. package/dist/uniq-XSIZR6PB-C05c3Clm.mjs.map +1 -0
  403. package/dist/uniq-XSIZR6PB-a2hQnbkY.cjs +90 -0
  404. package/dist/uniq-XSIZR6PB-a2hQnbkY.cjs.map +1 -0
  405. package/dist/wc-LF7NU4LA-D_LGPXUP.mjs +109 -0
  406. package/dist/wc-LF7NU4LA-D_LGPXUP.mjs.map +1 -0
  407. package/dist/wc-LF7NU4LA-UNORxUJr.cjs +109 -0
  408. package/dist/wc-LF7NU4LA-UNORxUJr.cjs.map +1 -0
  409. package/dist/which-XEM24D5D-4seJsWKQ.cjs +61 -0
  410. package/dist/which-XEM24D5D-4seJsWKQ.cjs.map +1 -0
  411. package/dist/which-XEM24D5D-BmDHO2AT.mjs +61 -0
  412. package/dist/which-XEM24D5D-BmDHO2AT.mjs.map +1 -0
  413. package/dist/whoami-XMTX52VE-CA-yJTvn.cjs +23 -0
  414. package/dist/whoami-XMTX52VE-CA-yJTvn.cjs.map +1 -0
  415. package/dist/whoami-XMTX52VE-DW_4VMpE.mjs +23 -0
  416. package/dist/whoami-XMTX52VE-DW_4VMpE.mjs.map +1 -0
  417. package/dist/with-project-scope-7t3SHNwz.mjs +56 -0
  418. package/dist/with-project-scope-7t3SHNwz.mjs.map +1 -0
  419. package/dist/with-project-scope-Drmz2h2Z.cjs +79 -0
  420. package/dist/with-project-scope-Drmz2h2Z.cjs.map +1 -0
  421. package/dist/xan-Y6WF3IRG-B_ysBBaD.mjs +2826 -0
  422. package/dist/xan-Y6WF3IRG-B_ysBBaD.mjs.map +1 -0
  423. package/dist/xan-Y6WF3IRG-DvYlOlaJ.cjs +2826 -0
  424. package/dist/xan-Y6WF3IRG-DvYlOlaJ.cjs.map +1 -0
  425. package/dist/xan-view-HDVKHFC2-Bv8_W4eE.mjs +11 -0
  426. package/dist/xan-view-HDVKHFC2-Bv8_W4eE.mjs.map +1 -0
  427. package/dist/xan-view-HDVKHFC2-ClhOnUAS.cjs +10 -0
  428. package/dist/xan-view-HDVKHFC2-ClhOnUAS.cjs.map +1 -0
  429. package/dist/xargs-MGZPH7AX-BvvOKhXS.cjs +110 -0
  430. package/dist/xargs-MGZPH7AX-BvvOKhXS.cjs.map +1 -0
  431. package/dist/xargs-MGZPH7AX-la_JFVst.mjs +110 -0
  432. package/dist/xargs-MGZPH7AX-la_JFVst.mjs.map +1 -0
  433. package/dist/yq-4QJW3EQG-Bq2dt3bL.mjs +8604 -0
  434. package/dist/yq-4QJW3EQG-Bq2dt3bL.mjs.map +1 -0
  435. package/dist/yq-4QJW3EQG-WlQHm2uv.cjs +8604 -0
  436. package/dist/yq-4QJW3EQG-WlQHm2uv.cjs.map +1 -0
  437. package/package.json +78 -0
@@ -0,0 +1,324 @@
1
+ import Docker from "dockerode";
2
+ import { ZodError, z } from "zod";
3
+ import { McpProviderPlugin, McpProviderPlugin as McpProviderPlugin$1 } from "@keystrokehq/http";
4
+ import { Context } from "hono";
5
+
6
+ //#region ../../packages/hosting/dist/index.d.mts
7
+ //#endregion
8
+ //#region src/runtime.d.ts
9
+ type ProjectRuntimeDatabase = {
10
+ host: string;
11
+ port: number;
12
+ database: string;
13
+ user: string;
14
+ password: string;
15
+ searchPath: string;
16
+ organizationId: string; /** @deprecated Per-project workers only — org workers omit this. */
17
+ projectId?: string;
18
+ };
19
+ type OrgProjectDeploy = {
20
+ projectId: string;
21
+ name: string;
22
+ artifactId: string;
23
+ artifactStorageKey: string;
24
+ };
25
+ type ProjectRuntimeHosting = {
26
+ appName: string;
27
+ };
28
+ type ProjectRuntimeInput = {
29
+ organizationId: string;
30
+ projects: OrgProjectDeploy[];
31
+ database: ProjectRuntimeDatabase;
32
+ hosting?: ProjectRuntimeHosting; /** Extra env merged into the project server launch spec (e.g. from an llmProxy plugin). */
33
+ env?: Record<string, string>; /** Previous runtime to retire after a successful cutover. */
34
+ previousRuntimeId?: string | null;
35
+ };
36
+ /** Builds base64 `KEYSTROKE_ORG_ARTIFACTS` payload for org worker containers. */
37
+ type ProjectRuntimeDestroyInput = {
38
+ runtimeId: string;
39
+ hosting?: ProjectRuntimeHosting;
40
+ };
41
+ type ProjectRuntimeReconcileInput = {
42
+ organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
43
+ keepRuntimeId: string;
44
+ hosting?: ProjectRuntimeHosting;
45
+ };
46
+ type ProjectRuntimeResult = {
47
+ runtimeId: string;
48
+ baseUrl: string;
49
+ };
50
+ type ProjectRuntime = {
51
+ start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
52
+ destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
53
+ /**
54
+ * Sweep away every runtime for this org except `keepRuntimeId`, retrying
55
+ * transient failures instead of giving up after one attempt. This catches
56
+ * orphans that a single {@link destroy} call missed (e.g. a previous deploy's
57
+ * destroy failed silently), not just the one runtime recorded as "previous."
58
+ */
59
+ reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
60
+ };
61
+ type ProjectPingTarget = {
62
+ baseUrl: string | null;
63
+ runtimeId: string | null;
64
+ }; //#endregion
65
+ //#region src/worker-runtime-config.d.ts
66
+ /** Resolved platform ↔ project-server worker auth contract. */
67
+ type WorkerRuntimeConfig = {
68
+ /** Platform API base URL reachable from the project-server runtime. */platformUrl: string; /** Bearer token for platform `/internal` routes. */
69
+ workerToken: string;
70
+ };
71
+ //#endregion
72
+ //#region src/plugin.d.ts
73
+ type HostingOptions = {
74
+ image?: string;
75
+ env?: NodeJS.ProcessEnv;
76
+ fetchImpl?: typeof fetch;
77
+ healthTimeoutMs?: number;
78
+ };
79
+ type OrganizationHostingInput = {
80
+ organizationId: string;
81
+ name: string;
82
+ };
83
+ type OrganizationHostingResult = {
84
+ appName: string;
85
+ };
86
+ type HostingPlugin = {
87
+ name: string; /** Validated at plugin creation — shared by platform internal routes and project-server containers. */
88
+ workerRuntime: WorkerRuntimeConfig;
89
+ createRuntime(): ProjectRuntime;
90
+ provisionOrganization?(input: OrganizationHostingInput): Promise<OrganizationHostingResult>;
91
+ deprovisionOrganization?(result: OrganizationHostingResult): Promise<void>;
92
+ canPingTarget?(target: ProjectPingTarget): target is {
93
+ baseUrl: string;
94
+ runtimeId: string | null;
95
+ };
96
+ pingRequestHeaders?(runtimeId: string | null): Record<string, string>;
97
+ }; //#endregion
98
+ //#region src/docker/create-docker-runtime.d.ts
99
+ //#endregion
100
+ //#region ../../packages/scheduler/dist/contract-GpxHe4g6.d.mts
101
+ //#region src/types.d.ts
102
+ type JobKind = "workflow" | "agent" | "trigger" | "trigger-overview" | "workflow-canvas-annotations" | "workflow-overview" | "runtime" | "maintenance";
103
+ type JobTrigger = "api" | "cron" | "webhook" | "poll" | "retry" | "prompt";
104
+ /**
105
+ * Identifies a run that dispatched this job as a child. The parent metadata
106
+ * survives the queue boundary so the child can resume its parent at a terminal
107
+ * outcome without treating the child as a separately-billable dispatch.
108
+ */
109
+ type JobParent = {
110
+ kind: "workflow" | "agent";
111
+ runId: string;
112
+ targetId: string;
113
+ correlationId?: string;
114
+ };
115
+ type JobPayload = {
116
+ kind: JobKind;
117
+ targetId: string;
118
+ runId: string;
119
+ trigger: JobTrigger;
120
+ payload: unknown;
121
+ attempt: number;
122
+ maxAttempts: number; /** True when this delivery is the final retry attempt. */
123
+ exhaustedRetries?: boolean;
124
+ scheduledAt: Date;
125
+ jobId: string; /** Project scope for org-wide worker queues. */
126
+ projectId?: string; /** Parent run that dispatched this child job, when applicable. */
127
+ parent?: JobParent; /** Optional W3C trace context carrier (sibling of user payload). */
128
+ traceContext?: Record<string, string>;
129
+ };
130
+ type EnqueueInput = {
131
+ kind: JobKind;
132
+ targetId: string;
133
+ runId: string;
134
+ trigger: JobTrigger;
135
+ payload?: unknown;
136
+ scheduledAt?: Date;
137
+ attempt?: number;
138
+ maxAttempts?: number; /** Dedupe key — pg-boss singletonKey / BullMQ jobId. */
139
+ dedupeKey?: string; /** Project scope for org-wide worker queues. */
140
+ projectId?: string; /** Parent run that dispatched this child job, when applicable. */
141
+ parent?: JobParent; /** Optional W3C trace context carrier (sibling of user payload). */
142
+ traceContext?: Record<string, string>;
143
+ };
144
+ type JobHandler = (job: JobPayload) => Promise<void>;
145
+ type CancelHandler = (runId: string) => void | Promise<void>;
146
+ type StopFn = () => Promise<void> | void;
147
+ type WorkerOptions = {
148
+ workerId?: string;
149
+ pollIntervalMs?: number;
150
+ leaseSweepIntervalMs?: number;
151
+ };
152
+ type JobQueue = {
153
+ enqueue(input: EnqueueInput): Promise<string>;
154
+ startWorker(handler: JobHandler, options?: WorkerOptions): Promise<StopFn>;
155
+ /**
156
+ * Temporarily lends a worker slot to a child while an agent job waits on it.
157
+ * Backends without a hard concurrency cap may omit it.
158
+ */
159
+ withLentSlot?<T>(fn: () => Promise<T>): Promise<T>;
160
+ publishCancel(runId: string): Promise<void>;
161
+ subscribeCancel(handler: CancelHandler): Promise<StopFn>;
162
+ };
163
+ //#endregion
164
+ //#region src/contract.d.ts
165
+ /**
166
+ * Inlined to keep the contract database-free — structurally identical to
167
+ * `@keystrokehq/database`'s `DatabaseDialect`. Importing it from the database
168
+ * package would re-introduce the dependency `./contract` exists to avoid.
169
+ */
170
+ type DatabaseDialect = "postgres" | "sqlite";
171
+ type SchedulerScope = "platform" | "project" | "organization";
172
+ type SchedulerPluginContext = {
173
+ scope: SchedulerScope;
174
+ url?: string;
175
+ dialect?: DatabaseDialect;
176
+ projectId?: string;
177
+ organizationId?: string;
178
+ };
179
+ type TriggerScheduleSpec = {
180
+ triggerSlug: string;
181
+ kind: "cron" | "poll";
182
+ schedule: string; /** IANA timezone for schedule wall-clock fields. When omitted, UTC. */
183
+ timezone?: string; /** Project scope for org-wide worker queues. */
184
+ projectId?: string;
185
+ };
186
+ type TriggerScheduleSyncOptions = {
187
+ schedules: TriggerScheduleSpec[];
188
+ scheduleOverrides?: {
189
+ global?: string;
190
+ byTrigger?: Record<string, string>;
191
+ };
192
+ };
193
+ type TriggerSchedulerStartOptions = {
194
+ pollIntervalMs?: number;
195
+ batchSize?: number; /** When `organization`, claims due schedules across all projects in the org schema. */
196
+ scope?: "project" | "organization";
197
+ };
198
+ type TriggerScheduler = {
199
+ sync(options: TriggerScheduleSyncOptions): Promise<void>;
200
+ start(options?: TriggerSchedulerStartOptions): Promise<StopFn>; /** Register or refresh one trigger schedule in the firing backend. */
201
+ upsert?(spec: TriggerScheduleSpec, overrides?: TriggerScheduleSyncOptions["scheduleOverrides"]): Promise<void>;
202
+ remove?(triggerSlug: string, projectId?: string): Promise<void>;
203
+ fireDue?(asOf?: Date): Promise<number>;
204
+ };
205
+ type SchedulerPlugin = {
206
+ name: string;
207
+ createJobQueue(ctx: SchedulerPluginContext): Promise<JobQueue>;
208
+ createTriggerScheduler?(ctx: SchedulerPluginContext, queue: JobQueue): Promise<TriggerScheduler>;
209
+ };
210
+ //#endregion
211
+ //#region ../../packages/shared/dist/index.d.mts
212
+ //#endregion
213
+ //#region src/types/org-rate-limit.d.ts
214
+ /** Scope for per-org API rate limits (separate token buckets). */
215
+ type OrgRateLimitScope = "api" | "mcp";
216
+ type OrgRateLimitResult = {
217
+ allowed: true;
218
+ } | {
219
+ allowed: false;
220
+ retryAfterSeconds: number;
221
+ };
222
+ /**
223
+ * Cloud-only rate limit check injected into the HTTP layer. Unset (standalone) =
224
+ * no rate limiting.
225
+ */
226
+ type OrgRateLimit = (scope: OrgRateLimitScope, organizationId: string) => Promise<OrgRateLimitResult>; //#endregion
227
+ //#region src/types/credential-runtime.d.ts
228
+ //#endregion
229
+ //#region ../../packages/storage/dist/index.d.mts
230
+ //#endregion
231
+ //#region src/provision/plugin.d.ts
232
+ type OrganizationStorageInput = {
233
+ organizationId: string;
234
+ name: string;
235
+ };
236
+ type OrganizationStorageResult = {
237
+ bucket: string;
238
+ endpoint: string;
239
+ accessKeyId: string;
240
+ secretAccessKey: string;
241
+ region?: string;
242
+ forcePathStyle?: boolean;
243
+ };
244
+ type StoragePlugin = {
245
+ provisionOrganization(input: OrganizationStorageInput): Promise<OrganizationStorageResult>;
246
+ deprovisionOrganization(result: OrganizationStorageResult): Promise<void>;
247
+ }; //#endregion
248
+ //#region src/provision/names.d.ts
249
+ /** Deterministic bucket segment; keeps short test ids readable, hashes UUID-length ids. */
250
+ //#endregion
251
+ //#region src/llm-proxy-plugin.d.ts
252
+ type LlmProxyHandlerContext = {
253
+ organizationId: string;
254
+ projectId: string;
255
+ pathSuffix: string;
256
+ };
257
+ type LlmProxyWorkerEnvContext = {
258
+ platformUrl: string; /** Per-org worker token for the org being launched. */
259
+ workerToken: string;
260
+ };
261
+ /** Optional platform plugin for managed LLM gateway proxying (e.g. Vercel AI Gateway on cloud). */
262
+ type LlmProxyPlugin = {
263
+ name: string; /** Runs inside org/project DB scope behind worker-token auth. */
264
+ handler(c: Context, ctx: LlmProxyHandlerContext): Promise<Response>; /** Extra env injected into worker project servers. */
265
+ workerEnv(ctx: LlmProxyWorkerEnvContext): Record<string, string>;
266
+ };
267
+ //#endregion
268
+ //#region src/config.d.ts
269
+ type PlatformWorkerEnvContext = {
270
+ platformUrl: string; /** Per-org worker token for the org being launched. */
271
+ workerToken: string;
272
+ };
273
+ type PlatformConfigInput = {
274
+ /** Defaults to Docker via {@link defaultHostingPlugin}. */hosting?: HostingPlugin;
275
+ /**
276
+ * Per-org object storage. Defaults to {@link minioStoragePlugin} (S3 API against local MinIO).
277
+ * MinIO is the dev default, not AWS S3 — same `@aws-sdk/client-s3` client works for any S3-compatible
278
+ * backend; hosted platform swaps in a cloud plugin (e.g. Tigris).
279
+ */
280
+ storage?: StoragePlugin;
281
+ /**
282
+ * Managed LLM gateway proxy. Omit for BYO provider keys or a direct gateway URL on the platform env.
283
+ */
284
+ llmProxy?: LlmProxyPlugin; /** Managed universal MCP plugin. Omit when self-hosting without a provider. */
285
+ mcp?: McpProviderPlugin; /** Queue backend for platform runtime routes. Defaults to pg-boss (Postgres) or DB polling (SQLite). */
286
+ scheduler?: SchedulerPlugin; /** Extra env merged into project worker containers at deploy (cloud hosting plugins). */
287
+ workerEnv?: (ctx: PlatformWorkerEnvContext) => Record<string, string>;
288
+ /**
289
+ * Handler for `maintenance` jobs on the platform queue (cloud injects the
290
+ * billing daily pass). Unset (standalone default) means such jobs — which
291
+ * only cloud schedules — are ignored.
292
+ */
293
+ maintenanceHandler?: (payload: JobPayload) => Promise<void>;
294
+ /**
295
+ * Pre-enqueue credit check for interactive agent prompts / workflow runs
296
+ * (cloud injects the billing wallet check). Unset = never blocked.
297
+ */
298
+ promptCreditGate?: (organizationId: string) => Promise<{
299
+ allow: true;
300
+ } | {
301
+ allow: false;
302
+ reason: string;
303
+ }>;
304
+ /**
305
+ * Max-projects check for `POST /projects` (cloud injects plan quota).
306
+ * Unset = unlimited (standalone / OSS).
307
+ */
308
+ projectQuotaGate?: (organizationId: string) => Promise<{
309
+ allow: true;
310
+ } | {
311
+ allow: false;
312
+ reason: string;
313
+ }>; /** Per-org API/MCP rate limits (cloud injects Redis token bucket). Unset = unlimited. */
314
+ orgRateLimit?: OrgRateLimit;
315
+ };
316
+ type PlatformConfig = PlatformConfigInput & {
317
+ hosting: HostingPlugin;
318
+ storage: StoragePlugin;
319
+ scheduler: SchedulerPlugin;
320
+ };
321
+ declare function definePlatformConfig(config?: PlatformConfigInput): PlatformConfig;
322
+ //#endregion
323
+ export { definePlatformConfig as a, LlmProxyWorkerEnvContext as c, StoragePlugin as d, HostingOptions as f, OrganizationHostingResult as h, PlatformWorkerEnvContext as i, OrganizationStorageInput as l, OrganizationHostingInput as m, PlatformConfig as n, LlmProxyHandlerContext as o, HostingPlugin as p, PlatformConfigInput as r, LlmProxyPlugin as s, McpProviderPlugin$1 as t, OrganizationStorageResult as u };
324
+ //# sourceMappingURL=config-BO2sTtYA.d.mts.map
@@ -0,0 +1,322 @@
1
+ import { Context } from "hono";
2
+ import { McpProviderPlugin, McpProviderPlugin as McpProviderPlugin$1 } from "@keystrokehq/http";
3
+
4
+ //#region ../../packages/hosting/dist/index.d.mts
5
+ //#endregion
6
+ //#region src/runtime.d.ts
7
+ type ProjectRuntimeDatabase = {
8
+ host: string;
9
+ port: number;
10
+ database: string;
11
+ user: string;
12
+ password: string;
13
+ searchPath: string;
14
+ organizationId: string; /** @deprecated Per-project workers only — org workers omit this. */
15
+ projectId?: string;
16
+ };
17
+ type OrgProjectDeploy = {
18
+ projectId: string;
19
+ name: string;
20
+ artifactId: string;
21
+ artifactStorageKey: string;
22
+ };
23
+ type ProjectRuntimeHosting = {
24
+ appName: string;
25
+ };
26
+ type ProjectRuntimeInput = {
27
+ organizationId: string;
28
+ projects: OrgProjectDeploy[];
29
+ database: ProjectRuntimeDatabase;
30
+ hosting?: ProjectRuntimeHosting; /** Extra env merged into the project server launch spec (e.g. from an llmProxy plugin). */
31
+ env?: Record<string, string>; /** Previous runtime to retire after a successful cutover. */
32
+ previousRuntimeId?: string | null;
33
+ };
34
+ /** Builds base64 `KEYSTROKE_ORG_ARTIFACTS` payload for org worker containers. */
35
+ type ProjectRuntimeDestroyInput = {
36
+ runtimeId: string;
37
+ hosting?: ProjectRuntimeHosting;
38
+ };
39
+ type ProjectRuntimeReconcileInput = {
40
+ organizationId: string; /** The runtime to keep — every other runtime belonging to this org should be destroyed. */
41
+ keepRuntimeId: string;
42
+ hosting?: ProjectRuntimeHosting;
43
+ };
44
+ type ProjectRuntimeResult = {
45
+ runtimeId: string;
46
+ baseUrl: string;
47
+ };
48
+ type ProjectRuntime = {
49
+ start(input: ProjectRuntimeInput): Promise<ProjectRuntimeResult>;
50
+ destroy?(input: ProjectRuntimeDestroyInput): Promise<void>;
51
+ /**
52
+ * Sweep away every runtime for this org except `keepRuntimeId`, retrying
53
+ * transient failures instead of giving up after one attempt. This catches
54
+ * orphans that a single {@link destroy} call missed (e.g. a previous deploy's
55
+ * destroy failed silently), not just the one runtime recorded as "previous."
56
+ */
57
+ reconcile?(input: ProjectRuntimeReconcileInput): Promise<void>;
58
+ };
59
+ type ProjectPingTarget = {
60
+ baseUrl: string | null;
61
+ runtimeId: string | null;
62
+ }; //#endregion
63
+ //#region src/worker-runtime-config.d.ts
64
+ /** Resolved platform ↔ project-server worker auth contract. */
65
+ type WorkerRuntimeConfig = {
66
+ /** Platform API base URL reachable from the project-server runtime. */platformUrl: string; /** Bearer token for platform `/internal` routes. */
67
+ workerToken: string;
68
+ };
69
+ //#endregion
70
+ //#region src/plugin.d.ts
71
+ type HostingOptions = {
72
+ image?: string;
73
+ env?: NodeJS.ProcessEnv;
74
+ fetchImpl?: typeof fetch;
75
+ healthTimeoutMs?: number;
76
+ };
77
+ type OrganizationHostingInput = {
78
+ organizationId: string;
79
+ name: string;
80
+ };
81
+ type OrganizationHostingResult = {
82
+ appName: string;
83
+ };
84
+ type HostingPlugin = {
85
+ name: string; /** Validated at plugin creation — shared by platform internal routes and project-server containers. */
86
+ workerRuntime: WorkerRuntimeConfig;
87
+ createRuntime(): ProjectRuntime;
88
+ provisionOrganization?(input: OrganizationHostingInput): Promise<OrganizationHostingResult>;
89
+ deprovisionOrganization?(result: OrganizationHostingResult): Promise<void>;
90
+ canPingTarget?(target: ProjectPingTarget): target is {
91
+ baseUrl: string;
92
+ runtimeId: string | null;
93
+ };
94
+ pingRequestHeaders?(runtimeId: string | null): Record<string, string>;
95
+ }; //#endregion
96
+ //#region src/docker/create-docker-runtime.d.ts
97
+ //#endregion
98
+ //#region ../../packages/scheduler/dist/contract-GpxHe4g6.d.mts
99
+ //#region src/types.d.ts
100
+ type JobKind = "workflow" | "agent" | "trigger" | "trigger-overview" | "workflow-canvas-annotations" | "workflow-overview" | "runtime" | "maintenance";
101
+ type JobTrigger = "api" | "cron" | "webhook" | "poll" | "retry" | "prompt";
102
+ /**
103
+ * Identifies a run that dispatched this job as a child. The parent metadata
104
+ * survives the queue boundary so the child can resume its parent at a terminal
105
+ * outcome without treating the child as a separately-billable dispatch.
106
+ */
107
+ type JobParent = {
108
+ kind: "workflow" | "agent";
109
+ runId: string;
110
+ targetId: string;
111
+ correlationId?: string;
112
+ };
113
+ type JobPayload = {
114
+ kind: JobKind;
115
+ targetId: string;
116
+ runId: string;
117
+ trigger: JobTrigger;
118
+ payload: unknown;
119
+ attempt: number;
120
+ maxAttempts: number; /** True when this delivery is the final retry attempt. */
121
+ exhaustedRetries?: boolean;
122
+ scheduledAt: Date;
123
+ jobId: string; /** Project scope for org-wide worker queues. */
124
+ projectId?: string; /** Parent run that dispatched this child job, when applicable. */
125
+ parent?: JobParent; /** Optional W3C trace context carrier (sibling of user payload). */
126
+ traceContext?: Record<string, string>;
127
+ };
128
+ type EnqueueInput = {
129
+ kind: JobKind;
130
+ targetId: string;
131
+ runId: string;
132
+ trigger: JobTrigger;
133
+ payload?: unknown;
134
+ scheduledAt?: Date;
135
+ attempt?: number;
136
+ maxAttempts?: number; /** Dedupe key — pg-boss singletonKey / BullMQ jobId. */
137
+ dedupeKey?: string; /** Project scope for org-wide worker queues. */
138
+ projectId?: string; /** Parent run that dispatched this child job, when applicable. */
139
+ parent?: JobParent; /** Optional W3C trace context carrier (sibling of user payload). */
140
+ traceContext?: Record<string, string>;
141
+ };
142
+ type JobHandler = (job: JobPayload) => Promise<void>;
143
+ type CancelHandler = (runId: string) => void | Promise<void>;
144
+ type StopFn = () => Promise<void> | void;
145
+ type WorkerOptions = {
146
+ workerId?: string;
147
+ pollIntervalMs?: number;
148
+ leaseSweepIntervalMs?: number;
149
+ };
150
+ type JobQueue = {
151
+ enqueue(input: EnqueueInput): Promise<string>;
152
+ startWorker(handler: JobHandler, options?: WorkerOptions): Promise<StopFn>;
153
+ /**
154
+ * Temporarily lends a worker slot to a child while an agent job waits on it.
155
+ * Backends without a hard concurrency cap may omit it.
156
+ */
157
+ withLentSlot?<T>(fn: () => Promise<T>): Promise<T>;
158
+ publishCancel(runId: string): Promise<void>;
159
+ subscribeCancel(handler: CancelHandler): Promise<StopFn>;
160
+ };
161
+ //#endregion
162
+ //#region src/contract.d.ts
163
+ /**
164
+ * Inlined to keep the contract database-free — structurally identical to
165
+ * `@keystrokehq/database`'s `DatabaseDialect`. Importing it from the database
166
+ * package would re-introduce the dependency `./contract` exists to avoid.
167
+ */
168
+ type DatabaseDialect = "postgres" | "sqlite";
169
+ type SchedulerScope = "platform" | "project" | "organization";
170
+ type SchedulerPluginContext = {
171
+ scope: SchedulerScope;
172
+ url?: string;
173
+ dialect?: DatabaseDialect;
174
+ projectId?: string;
175
+ organizationId?: string;
176
+ };
177
+ type TriggerScheduleSpec = {
178
+ triggerSlug: string;
179
+ kind: "cron" | "poll";
180
+ schedule: string; /** IANA timezone for schedule wall-clock fields. When omitted, UTC. */
181
+ timezone?: string; /** Project scope for org-wide worker queues. */
182
+ projectId?: string;
183
+ };
184
+ type TriggerScheduleSyncOptions = {
185
+ schedules: TriggerScheduleSpec[];
186
+ scheduleOverrides?: {
187
+ global?: string;
188
+ byTrigger?: Record<string, string>;
189
+ };
190
+ };
191
+ type TriggerSchedulerStartOptions = {
192
+ pollIntervalMs?: number;
193
+ batchSize?: number; /** When `organization`, claims due schedules across all projects in the org schema. */
194
+ scope?: "project" | "organization";
195
+ };
196
+ type TriggerScheduler = {
197
+ sync(options: TriggerScheduleSyncOptions): Promise<void>;
198
+ start(options?: TriggerSchedulerStartOptions): Promise<StopFn>; /** Register or refresh one trigger schedule in the firing backend. */
199
+ upsert?(spec: TriggerScheduleSpec, overrides?: TriggerScheduleSyncOptions["scheduleOverrides"]): Promise<void>;
200
+ remove?(triggerSlug: string, projectId?: string): Promise<void>;
201
+ fireDue?(asOf?: Date): Promise<number>;
202
+ };
203
+ type SchedulerPlugin = {
204
+ name: string;
205
+ createJobQueue(ctx: SchedulerPluginContext): Promise<JobQueue>;
206
+ createTriggerScheduler?(ctx: SchedulerPluginContext, queue: JobQueue): Promise<TriggerScheduler>;
207
+ };
208
+ //#endregion
209
+ //#region ../../packages/shared/dist/index.d.mts
210
+ //#endregion
211
+ //#region src/types/org-rate-limit.d.ts
212
+ /** Scope for per-org API rate limits (separate token buckets). */
213
+ type OrgRateLimitScope = "api" | "mcp";
214
+ type OrgRateLimitResult = {
215
+ allowed: true;
216
+ } | {
217
+ allowed: false;
218
+ retryAfterSeconds: number;
219
+ };
220
+ /**
221
+ * Cloud-only rate limit check injected into the HTTP layer. Unset (standalone) =
222
+ * no rate limiting.
223
+ */
224
+ type OrgRateLimit = (scope: OrgRateLimitScope, organizationId: string) => Promise<OrgRateLimitResult>; //#endregion
225
+ //#region src/types/credential-runtime.d.ts
226
+ //#endregion
227
+ //#region ../../packages/storage/dist/index.d.mts
228
+ //#endregion
229
+ //#region src/provision/plugin.d.ts
230
+ type OrganizationStorageInput = {
231
+ organizationId: string;
232
+ name: string;
233
+ };
234
+ type OrganizationStorageResult = {
235
+ bucket: string;
236
+ endpoint: string;
237
+ accessKeyId: string;
238
+ secretAccessKey: string;
239
+ region?: string;
240
+ forcePathStyle?: boolean;
241
+ };
242
+ type StoragePlugin = {
243
+ provisionOrganization(input: OrganizationStorageInput): Promise<OrganizationStorageResult>;
244
+ deprovisionOrganization(result: OrganizationStorageResult): Promise<void>;
245
+ }; //#endregion
246
+ //#region src/provision/names.d.ts
247
+ /** Deterministic bucket segment; keeps short test ids readable, hashes UUID-length ids. */
248
+ //#endregion
249
+ //#region src/llm-proxy-plugin.d.ts
250
+ type LlmProxyHandlerContext = {
251
+ organizationId: string;
252
+ projectId: string;
253
+ pathSuffix: string;
254
+ };
255
+ type LlmProxyWorkerEnvContext = {
256
+ platformUrl: string; /** Per-org worker token for the org being launched. */
257
+ workerToken: string;
258
+ };
259
+ /** Optional platform plugin for managed LLM gateway proxying (e.g. Vercel AI Gateway on cloud). */
260
+ type LlmProxyPlugin = {
261
+ name: string; /** Runs inside org/project DB scope behind worker-token auth. */
262
+ handler(c: Context, ctx: LlmProxyHandlerContext): Promise<Response>; /** Extra env injected into worker project servers. */
263
+ workerEnv(ctx: LlmProxyWorkerEnvContext): Record<string, string>;
264
+ };
265
+ //#endregion
266
+ //#region src/config.d.ts
267
+ type PlatformWorkerEnvContext = {
268
+ platformUrl: string; /** Per-org worker token for the org being launched. */
269
+ workerToken: string;
270
+ };
271
+ type PlatformConfigInput = {
272
+ /** Defaults to Docker via {@link defaultHostingPlugin}. */hosting?: HostingPlugin;
273
+ /**
274
+ * Per-org object storage. Defaults to {@link minioStoragePlugin} (S3 API against local MinIO).
275
+ * MinIO is the dev default, not AWS S3 — same `@aws-sdk/client-s3` client works for any S3-compatible
276
+ * backend; hosted platform swaps in a cloud plugin (e.g. Tigris).
277
+ */
278
+ storage?: StoragePlugin;
279
+ /**
280
+ * Managed LLM gateway proxy. Omit for BYO provider keys or a direct gateway URL on the platform env.
281
+ */
282
+ llmProxy?: LlmProxyPlugin; /** Managed universal MCP plugin. Omit when self-hosting without a provider. */
283
+ mcp?: McpProviderPlugin; /** Queue backend for platform runtime routes. Defaults to pg-boss (Postgres) or DB polling (SQLite). */
284
+ scheduler?: SchedulerPlugin; /** Extra env merged into project worker containers at deploy (cloud hosting plugins). */
285
+ workerEnv?: (ctx: PlatformWorkerEnvContext) => Record<string, string>;
286
+ /**
287
+ * Handler for `maintenance` jobs on the platform queue (cloud injects the
288
+ * billing daily pass). Unset (standalone default) means such jobs — which
289
+ * only cloud schedules — are ignored.
290
+ */
291
+ maintenanceHandler?: (payload: JobPayload) => Promise<void>;
292
+ /**
293
+ * Pre-enqueue credit check for interactive agent prompts / workflow runs
294
+ * (cloud injects the billing wallet check). Unset = never blocked.
295
+ */
296
+ promptCreditGate?: (organizationId: string) => Promise<{
297
+ allow: true;
298
+ } | {
299
+ allow: false;
300
+ reason: string;
301
+ }>;
302
+ /**
303
+ * Max-projects check for `POST /projects` (cloud injects plan quota).
304
+ * Unset = unlimited (standalone / OSS).
305
+ */
306
+ projectQuotaGate?: (organizationId: string) => Promise<{
307
+ allow: true;
308
+ } | {
309
+ allow: false;
310
+ reason: string;
311
+ }>; /** Per-org API/MCP rate limits (cloud injects Redis token bucket). Unset = unlimited. */
312
+ orgRateLimit?: OrgRateLimit;
313
+ };
314
+ type PlatformConfig = PlatformConfigInput & {
315
+ hosting: HostingPlugin;
316
+ storage: StoragePlugin;
317
+ scheduler: SchedulerPlugin;
318
+ };
319
+ declare function definePlatformConfig(config?: PlatformConfigInput): PlatformConfig;
320
+ //#endregion
321
+ export { definePlatformConfig as a, LlmProxyWorkerEnvContext as c, StoragePlugin as d, HostingOptions as f, OrganizationHostingResult as h, PlatformWorkerEnvContext as i, OrganizationStorageInput as l, OrganizationHostingInput as m, PlatformConfig as n, LlmProxyHandlerContext as o, HostingPlugin as p, PlatformConfigInput as r, LlmProxyPlugin as s, McpProviderPlugin$1 as t, OrganizationStorageResult as u };
322
+ //# sourceMappingURL=config-DahIeWeM.d.cts.map
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_dist = require("./dist-QIg3f1DP.cjs");
3
+ const require_dist$1 = require("./dist-DCAFVLts.cjs");
4
+ //#region src/config.ts
5
+ function definePlatformConfig(config = {}) {
6
+ return {
7
+ ...config,
8
+ hosting: config.hosting ?? require_dist.defaultHostingPlugin(),
9
+ storage: config.storage ?? require_dist$1.minioStoragePlugin(),
10
+ scheduler: config.scheduler ?? require_dist$1.defaultSchedulerPlugin()
11
+ };
12
+ }
13
+ //#endregion
14
+ exports.definePlatformConfig = definePlatformConfig;
15
+
16
+ //# sourceMappingURL=config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.cjs","names":["defaultHostingPlugin","minioStoragePlugin","defaultSchedulerPlugin"],"sources":["../src/config.ts"],"sourcesContent":["import { defaultHostingPlugin, type HostingPlugin } from \"@keystrokehq/hosting\";\nimport {\n defaultSchedulerPlugin,\n type JobPayload,\n type SchedulerPlugin,\n} from \"@keystrokehq/scheduler\";\nimport { minioStoragePlugin, type StoragePlugin } from \"@keystrokehq/storage\";\n\nimport type { OrgRateLimit } from \"@keystrokehq/shared\";\n\nimport type { LlmProxyPlugin } from \"./llm-proxy-plugin\";\nimport type { McpProviderPlugin } from \"@keystrokehq/http\";\n\nexport type {\n HostingOptions,\n HostingPlugin,\n OrganizationHostingInput,\n OrganizationHostingResult,\n} from \"@keystrokehq/hosting\";\n\nexport type {\n OrganizationStorageInput,\n OrganizationStorageResult,\n StoragePlugin,\n} from \"@keystrokehq/storage\";\n\nexport type {\n LlmProxyHandlerContext,\n LlmProxyPlugin,\n LlmProxyWorkerEnvContext,\n} from \"./llm-proxy-plugin\";\n\nexport type { McpProviderPlugin } from \"@keystrokehq/http\";\n\nexport type PlatformWorkerEnvContext = {\n platformUrl: string;\n /** Per-org worker token for the org being launched. */\n workerToken: string;\n};\n\nexport type PlatformConfigInput = {\n /** Defaults to Docker via {@link defaultHostingPlugin}. */\n hosting?: HostingPlugin;\n /**\n * Per-org object storage. Defaults to {@link minioStoragePlugin} (S3 API against local MinIO).\n * MinIO is the dev default, not AWS S3 — same `@aws-sdk/client-s3` client works for any S3-compatible\n * backend; hosted platform swaps in a cloud plugin (e.g. Tigris).\n */\n storage?: StoragePlugin;\n /**\n * Managed LLM gateway proxy. Omit for BYO provider keys or a direct gateway URL on the platform env.\n */\n llmProxy?: LlmProxyPlugin;\n /** Managed universal MCP plugin. Omit when self-hosting without a provider. */\n mcp?: McpProviderPlugin;\n /** Queue backend for platform runtime routes. Defaults to pg-boss (Postgres) or DB polling (SQLite). */\n scheduler?: SchedulerPlugin;\n /** Extra env merged into project worker containers at deploy (cloud hosting plugins). */\n workerEnv?: (ctx: PlatformWorkerEnvContext) => Record<string, string>;\n /**\n * Handler for `maintenance` jobs on the platform queue (cloud injects the\n * billing daily pass). Unset (standalone default) means such jobs — which\n * only cloud schedules — are ignored.\n */\n maintenanceHandler?: (payload: JobPayload) => Promise<void>;\n /**\n * Pre-enqueue credit check for interactive agent prompts / workflow runs\n * (cloud injects the billing wallet check). Unset = never blocked.\n */\n promptCreditGate?: (\n organizationId: string,\n ) => Promise<{ allow: true } | { allow: false; reason: string }>;\n /**\n * Max-projects check for `POST /projects` (cloud injects plan quota).\n * Unset = unlimited (standalone / OSS).\n */\n projectQuotaGate?: (\n organizationId: string,\n ) => Promise<{ allow: true } | { allow: false; reason: string }>;\n /** Per-org API/MCP rate limits (cloud injects Redis token bucket). Unset = unlimited. */\n orgRateLimit?: OrgRateLimit;\n};\n\nexport type PlatformConfig = PlatformConfigInput & {\n hosting: HostingPlugin;\n storage: StoragePlugin;\n scheduler: SchedulerPlugin;\n};\n\nexport function definePlatformConfig(config: PlatformConfigInput = {}): PlatformConfig {\n return {\n ...config,\n hosting: config.hosting ?? defaultHostingPlugin(),\n storage: config.storage ?? minioStoragePlugin(),\n scheduler: config.scheduler ?? defaultSchedulerPlugin(),\n };\n}\n"],"mappings":";;;;AAyFA,SAAgB,qBAAqB,SAA8B,CAAC,GAAmB;CACrF,OAAO;EACL,GAAG;EACH,SAAS,OAAO,WAAWA,aAAAA,qBAAqB;EAChD,SAAS,OAAO,WAAWC,eAAAA,mBAAmB;EAC9C,WAAW,OAAO,aAAaC,eAAAA,uBAAuB;CACxD;AACF"}
@@ -0,0 +1,2 @@
1
+ import { a as definePlatformConfig, c as LlmProxyWorkerEnvContext, d as StoragePlugin, f as HostingOptions, h as OrganizationHostingResult, i as PlatformWorkerEnvContext, l as OrganizationStorageInput, m as OrganizationHostingInput, n as PlatformConfig, o as LlmProxyHandlerContext, p as HostingPlugin, r as PlatformConfigInput, s as LlmProxyPlugin, t as McpProviderPlugin, u as OrganizationStorageResult } from "./config-DahIeWeM.cjs";
2
+ export { type HostingOptions, type HostingPlugin, type LlmProxyHandlerContext, type LlmProxyPlugin, type LlmProxyWorkerEnvContext, type McpProviderPlugin, type OrganizationHostingInput, type OrganizationHostingResult, type OrganizationStorageInput, type OrganizationStorageResult, PlatformConfig, PlatformConfigInput, PlatformWorkerEnvContext, type StoragePlugin, definePlatformConfig };
@@ -0,0 +1,2 @@
1
+ import { a as definePlatformConfig, c as LlmProxyWorkerEnvContext, d as StoragePlugin, f as HostingOptions, h as OrganizationHostingResult, i as PlatformWorkerEnvContext, l as OrganizationStorageInput, m as OrganizationHostingInput, n as PlatformConfig, o as LlmProxyHandlerContext, p as HostingPlugin, r as PlatformConfigInput, s as LlmProxyPlugin, t as McpProviderPlugin, u as OrganizationStorageResult } from "./config-BO2sTtYA.mjs";
2
+ export { type HostingOptions, type HostingPlugin, type LlmProxyHandlerContext, type LlmProxyPlugin, type LlmProxyWorkerEnvContext, type McpProviderPlugin, type OrganizationHostingInput, type OrganizationHostingResult, type OrganizationStorageInput, type OrganizationStorageResult, PlatformConfig, PlatformConfigInput, PlatformWorkerEnvContext, type StoragePlugin, definePlatformConfig };