@keystrokehq/platform 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{awk2-LA3USKJP-CKefzQCd.mjs → awk2-LA3USKJP-C4BD4eVg.mjs} +2 -2
- package/dist/{awk2-LA3USKJP-CKefzQCd.mjs.map → awk2-LA3USKJP-C4BD4eVg.mjs.map} +1 -1
- package/dist/{awk2-LA3USKJP-BNV-PUu0.cjs → awk2-LA3USKJP-Ddh1vPYe.cjs} +2 -2
- package/dist/{awk2-LA3USKJP-BNV-PUu0.cjs.map → awk2-LA3USKJP-Ddh1vPYe.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-Ca8wsOx8.cjs → base64-C2AIWVNC-BaiY8WTm.cjs} +2 -2
- package/dist/{base64-C2AIWVNC-Ca8wsOx8.cjs.map → base64-C2AIWVNC-BaiY8WTm.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-Bw6COidZ.mjs → base64-C2AIWVNC-ChQw62cb.mjs} +2 -2
- package/dist/{base64-C2AIWVNC-Bw6COidZ.mjs.map → base64-C2AIWVNC-ChQw62cb.mjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-DafyaX5Y.cjs → bash-YZ33HQZQ-CSOYNHWg.cjs} +2 -2
- package/dist/{bash-YZ33HQZQ-DafyaX5Y.cjs.map → bash-YZ33HQZQ-CSOYNHWg.cjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-DcfJU6Ux.mjs → bash-YZ33HQZQ-Y0B3uk-_.mjs} +2 -2
- package/dist/{bash-YZ33HQZQ-DcfJU6Ux.mjs.map → bash-YZ33HQZQ-Y0B3uk-_.mjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-CoIsiESf.cjs → cat-TSFMZVYS-DA84HtAp.cjs} +3 -3
- package/dist/{cat-TSFMZVYS-CoIsiESf.cjs.map → cat-TSFMZVYS-DA84HtAp.cjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-CH5_fwTr.mjs → cat-TSFMZVYS-xDkdXP7N.mjs} +3 -3
- package/dist/{cat-TSFMZVYS-CH5_fwTr.mjs.map → cat-TSFMZVYS-xDkdXP7N.mjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-B8_eAK5q.cjs → chunk-5H5SCKJM-CH5cUv3d.cjs} +2 -2
- package/dist/{chunk-5H5SCKJM-B8_eAK5q.cjs.map → chunk-5H5SCKJM-CH5cUv3d.cjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-7YDw0nlX.mjs → chunk-5H5SCKJM-CS7KORUE.mjs} +2 -2
- package/dist/{chunk-5H5SCKJM-7YDw0nlX.mjs.map → chunk-5H5SCKJM-CS7KORUE.mjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-j91QPdH4.cjs → chunk-AQ6FYS2X-BHfS6zKK.cjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-j91QPdH4.cjs.map → chunk-AQ6FYS2X-BHfS6zKK.cjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-BC0cOnb9.mjs → chunk-AQ6FYS2X-CmF-1vT3.mjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-BC0cOnb9.mjs.map → chunk-AQ6FYS2X-CmF-1vT3.mjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-TM0eBc-8.cjs → chunk-CHFEPBH4-BeM01F0F.cjs} +2 -2
- package/dist/{chunk-CHFEPBH4-TM0eBc-8.cjs.map → chunk-CHFEPBH4-BeM01F0F.cjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-5WV6pMBA.mjs → chunk-CHFEPBH4-C7eTbJVK.mjs} +2 -2
- package/dist/{chunk-CHFEPBH4-5WV6pMBA.mjs.map → chunk-CHFEPBH4-C7eTbJVK.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-BGEWfN_e.mjs → chunk-EBAPSGAO-BZyQwwNU.mjs} +2 -2
- package/dist/{chunk-EBAPSGAO-BGEWfN_e.mjs.map → chunk-EBAPSGAO-BZyQwwNU.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-X4NT2DxA.cjs → chunk-EBAPSGAO-fp1lOUs3.cjs} +2 -2
- package/dist/{chunk-EBAPSGAO-X4NT2DxA.cjs.map → chunk-EBAPSGAO-fp1lOUs3.cjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-BPVzbmRh.cjs → chunk-LEKBROJD-CC4SPOIA.cjs} +2 -2
- package/dist/{chunk-LEKBROJD-BPVzbmRh.cjs.map → chunk-LEKBROJD-CC4SPOIA.cjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-DTQWQf0a.mjs → chunk-LEKBROJD-DgEXP_ty.mjs} +2 -2
- package/dist/{chunk-LEKBROJD-DTQWQf0a.mjs.map → chunk-LEKBROJD-DgEXP_ty.mjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-qbL_T5Uh.cjs → chunk-VPADYNBD-CuU1_5VT.cjs} +2 -2
- package/dist/{chunk-VPADYNBD-qbL_T5Uh.cjs.map → chunk-VPADYNBD-CuU1_5VT.cjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-DTef7dIx.mjs → chunk-VPADYNBD-DypZmvfB.mjs} +2 -2
- package/dist/{chunk-VPADYNBD-DTef7dIx.mjs.map → chunk-VPADYNBD-DypZmvfB.mjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-DS2ZbXdJ.mjs → chunk-YCLFEX4T-B5a3ihBC.mjs} +2 -2
- package/dist/{chunk-YCLFEX4T-DS2ZbXdJ.mjs.map → chunk-YCLFEX4T-B5a3ihBC.mjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-B5mxliVb.cjs → chunk-YCLFEX4T-D4AWfbT8.cjs} +2 -2
- package/dist/{chunk-YCLFEX4T-B5mxliVb.cjs.map → chunk-YCLFEX4T-D4AWfbT8.cjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-DxJuuCZO.mjs → column-XT6UFXNQ-B3nI2VCJ.mjs} +2 -2
- package/dist/{column-XT6UFXNQ-DxJuuCZO.mjs.map → column-XT6UFXNQ-B3nI2VCJ.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-CjqSbReY.cjs → column-XT6UFXNQ-D-31htgy.cjs} +2 -2
- package/dist/{column-XT6UFXNQ-CjqSbReY.cjs.map → column-XT6UFXNQ-D-31htgy.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-Ct7AXc22.cjs → comm-VV2LDX2J-CSfuzlYr.cjs} +2 -2
- package/dist/{comm-VV2LDX2J-Ct7AXc22.cjs.map → comm-VV2LDX2J-CSfuzlYr.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-CRUrgndw.mjs → comm-VV2LDX2J-DpNYwHST.mjs} +2 -2
- package/dist/{comm-VV2LDX2J-CRUrgndw.mjs.map → comm-VV2LDX2J-DpNYwHST.mjs.map} +1 -1
- package/dist/{config-CH-0zvAi.d.cts → config-Ck1BY0Ga.d.mts} +28 -6
- package/dist/{config-CJZBcsy6.d.mts → config-PWJeAlTn.d.cts} +26 -8
- package/dist/config.cjs +2 -3
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +1 -2
- package/dist/config.d.mts +1 -2
- package/dist/config.mjs +1 -2
- package/dist/config.mjs.map +1 -1
- package/dist/{cp-BISAAS7A-BEWIC1ep.mjs → cp-BISAAS7A-BHfTBk1S.mjs} +2 -2
- package/dist/{cp-BISAAS7A-BEWIC1ep.mjs.map → cp-BISAAS7A-BHfTBk1S.mjs.map} +1 -1
- package/dist/{cp-BISAAS7A-BTlFdjse.cjs → cp-BISAAS7A-CPlXYVs4.cjs} +2 -2
- package/dist/{cp-BISAAS7A-BTlFdjse.cjs.map → cp-BISAAS7A-CPlXYVs4.cjs.map} +1 -1
- package/dist/{cut-OKARJCCV-Cq3QNcN-.mjs → cut-OKARJCCV-CgfLOcVz.mjs} +3 -3
- package/dist/{cut-OKARJCCV-Cq3QNcN-.mjs.map → cut-OKARJCCV-CgfLOcVz.mjs.map} +1 -1
- package/dist/{cut-OKARJCCV-LemaM014.cjs → cut-OKARJCCV-Ci0PtEgB.cjs} +3 -3
- package/dist/{cut-OKARJCCV-LemaM014.cjs.map → cut-OKARJCCV-Ci0PtEgB.cjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-dQTRnWAk.mjs → diff-MWJFIG7X-CJdAnnog.mjs} +2 -2
- package/dist/{diff-MWJFIG7X-dQTRnWAk.mjs.map → diff-MWJFIG7X-CJdAnnog.mjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-CM3vdBmY.cjs → diff-MWJFIG7X-F82OACp-.cjs} +2 -2
- package/dist/{diff-MWJFIG7X-CM3vdBmY.cjs.map → diff-MWJFIG7X-F82OACp-.cjs.map} +1 -1
- package/dist/{dist-dELW1gaR.mjs → dist-B1hOOWjl.mjs} +273 -74
- package/dist/dist-B1hOOWjl.mjs.map +1 -0
- package/dist/{dist-COpoWBp6.cjs → dist-DvjFaP47.cjs} +283 -131
- package/dist/dist-DvjFaP47.cjs.map +1 -0
- package/dist/{du-572XNP42-3RIhvC5P.cjs → du-572XNP42-BnHmg4U2.cjs} +2 -2
- package/dist/{du-572XNP42-3RIhvC5P.cjs.map → du-572XNP42-BnHmg4U2.cjs.map} +1 -1
- package/dist/{du-572XNP42-CyPYCo2M.mjs → du-572XNP42-D6bH6wn1.mjs} +2 -2
- package/dist/{du-572XNP42-CyPYCo2M.mjs.map → du-572XNP42-D6bH6wn1.mjs.map} +1 -1
- package/dist/{env-36M5BO7M-D_8C_5X5.cjs → env-36M5BO7M-BxusWRsf.cjs} +2 -2
- package/dist/{env-36M5BO7M-D_8C_5X5.cjs.map → env-36M5BO7M-BxusWRsf.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-Ds8s_D_j.mjs → env-36M5BO7M-a702Fh7w.mjs} +2 -2
- package/dist/{env-36M5BO7M-Ds8s_D_j.mjs.map → env-36M5BO7M-a702Fh7w.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-3UquG3Wf.mjs → expand-JSPG6VOP-BbtpP_uq.mjs} +2 -2
- package/dist/{expand-JSPG6VOP-3UquG3Wf.mjs.map → expand-JSPG6VOP-BbtpP_uq.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-BDy27RvB.cjs → expand-JSPG6VOP-DjHywCfM.cjs} +2 -2
- package/dist/{expand-JSPG6VOP-BDy27RvB.cjs.map → expand-JSPG6VOP-DjHywCfM.cjs.map} +1 -1
- package/dist/{expr-5JAACS4X-B-xIQg5e.mjs → expr-5JAACS4X-Cp_dIjlS.mjs} +2 -2
- package/dist/{expr-5JAACS4X-B-xIQg5e.mjs.map → expr-5JAACS4X-Cp_dIjlS.mjs.map} +1 -1
- package/dist/{expr-5JAACS4X-z-ugAUQD.cjs → expr-5JAACS4X-Df3xFZ4w.cjs} +2 -2
- package/dist/{expr-5JAACS4X-z-ugAUQD.cjs.map → expr-5JAACS4X-Df3xFZ4w.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-D6LkPRVn.cjs → find-INTH3OLC-B5hj2iWq.cjs} +3 -3
- package/dist/{find-INTH3OLC-D6LkPRVn.cjs.map → find-INTH3OLC-B5hj2iWq.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-C0oDj6Aa.mjs → find-INTH3OLC-DorC8D7k.mjs} +3 -3
- package/dist/{find-INTH3OLC-C0oDj6Aa.mjs.map → find-INTH3OLC-DorC8D7k.mjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-BNAAhi3M.mjs → fold-4TQNYMSW-DOzlyQla.mjs} +2 -2
- package/dist/{fold-4TQNYMSW-BNAAhi3M.mjs.map → fold-4TQNYMSW-DOzlyQla.mjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-C4KhiKXo.cjs → fold-4TQNYMSW-DU7ysgn3.cjs} +2 -2
- package/dist/{fold-4TQNYMSW-C4KhiKXo.cjs.map → fold-4TQNYMSW-DU7ysgn3.cjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-T3Pk0g-u.mjs → grep-V3LQVMRQ-C7va-nQQ.mjs} +4 -4
- package/dist/{grep-V3LQVMRQ-T3Pk0g-u.mjs.map → grep-V3LQVMRQ-C7va-nQQ.mjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-Ds_E1Mcg.cjs → grep-V3LQVMRQ-CnT0y0-P.cjs} +4 -4
- package/dist/{grep-V3LQVMRQ-Ds_E1Mcg.cjs.map → grep-V3LQVMRQ-CnT0y0-P.cjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-CQEhgQhi.mjs → gzip-O5ASJAFY-D25F69KM.mjs} +2 -2
- package/dist/{gzip-O5ASJAFY-CQEhgQhi.mjs.map → gzip-O5ASJAFY-D25F69KM.mjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-MdBB0FQ4.cjs → gzip-O5ASJAFY-Dwnbh7Hd.cjs} +2 -2
- package/dist/{gzip-O5ASJAFY-MdBB0FQ4.cjs.map → gzip-O5ASJAFY-Dwnbh7Hd.cjs.map} +1 -1
- package/dist/{head-442HYESI-_I53Pnb1.cjs → head-442HYESI-Dh7Qcjzs.cjs} +2 -2
- package/dist/{head-442HYESI-_I53Pnb1.cjs.map → head-442HYESI-Dh7Qcjzs.cjs.map} +1 -1
- package/dist/{head-442HYESI-C9ip0oZ6.mjs → head-442HYESI-W6FegHpm.mjs} +2 -2
- package/dist/{head-442HYESI-C9ip0oZ6.mjs.map → head-442HYESI-W6FegHpm.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-7klk39e-.mjs → help-HZ6M2CKN-B2mT_z-L.mjs} +2 -2
- package/dist/{help-HZ6M2CKN-7klk39e-.mjs.map → help-HZ6M2CKN-B2mT_z-L.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-C_gwqv6N.cjs → help-HZ6M2CKN-pRM3zbwR.cjs} +2 -2
- package/dist/{help-HZ6M2CKN-C_gwqv6N.cjs.map → help-HZ6M2CKN-pRM3zbwR.cjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-CxCkv6Mj.cjs → html-to-markdown-JW4MSQZO-CD4oQKoL.cjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-CxCkv6Mj.cjs.map → html-to-markdown-JW4MSQZO-CD4oQKoL.cjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-DAeOlJb4.mjs → html-to-markdown-JW4MSQZO-VzjAEp3C.mjs} +2 -2
- package/dist/{html-to-markdown-JW4MSQZO-DAeOlJb4.mjs.map → html-to-markdown-JW4MSQZO-VzjAEp3C.mjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-C1FTmc74.mjs → join-TBRGI3LQ-CC2R6oH8.mjs} +2 -2
- package/dist/{join-TBRGI3LQ-C1FTmc74.mjs.map → join-TBRGI3LQ-CC2R6oH8.mjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-C-dsbt1O.cjs → join-TBRGI3LQ-DR2e5mf6.cjs} +2 -2
- package/dist/{join-TBRGI3LQ-C-dsbt1O.cjs.map → join-TBRGI3LQ-DR2e5mf6.cjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-DwRPL82B.cjs → jq-4XLYLOS5-CKdOTiVR.cjs} +4 -4
- package/dist/{jq-4XLYLOS5-DwRPL82B.cjs.map → jq-4XLYLOS5-CKdOTiVR.cjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-f2AdWe3I.mjs → jq-4XLYLOS5-QOU61AvR.mjs} +4 -4
- package/dist/{jq-4XLYLOS5-f2AdWe3I.mjs.map → jq-4XLYLOS5-QOU61AvR.mjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-C-U_T49T.cjs → js-exec-N5KEZBH7-8xgWmlL7.cjs} +4 -4
- package/dist/{js-exec-N5KEZBH7-C-U_T49T.cjs.map → js-exec-N5KEZBH7-8xgWmlL7.cjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-J0fE5u49.mjs → js-exec-N5KEZBH7-CrHAJDpT.mjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-J0fE5u49.mjs.map → js-exec-N5KEZBH7-CrHAJDpT.mjs.map} +1 -1
- package/dist/{lib-DE8ataza.cjs → lib-DLRZ2u6t.cjs} +2 -2
- package/dist/{lib-DE8ataza.cjs.map → lib-DLRZ2u6t.cjs.map} +1 -1
- package/dist/{lib-xIAY37Rj.mjs → lib-DecFXHrv.mjs} +2 -2
- package/dist/{lib-xIAY37Rj.mjs.map → lib-DecFXHrv.mjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-lLnmqTxq.cjs → ln-4LGSXXGD-DxTw2TAq.cjs} +2 -2
- package/dist/{ln-4LGSXXGD-lLnmqTxq.cjs.map → ln-4LGSXXGD-DxTw2TAq.cjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-BgxP6RU_.mjs → ln-4LGSXXGD-Or1qYweN.mjs} +2 -2
- package/dist/{ln-4LGSXXGD-BgxP6RU_.mjs.map → ln-4LGSXXGD-Or1qYweN.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-C8j4Tvbv.mjs → ls-ZJGQER7M-BnKqqleV.mjs} +2 -2
- package/dist/{ls-ZJGQER7M-C8j4Tvbv.mjs.map → ls-ZJGQER7M-BnKqqleV.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-BYVAD1YO.cjs → ls-ZJGQER7M-CynOwieQ.cjs} +2 -2
- package/dist/{ls-ZJGQER7M-BYVAD1YO.cjs.map → ls-ZJGQER7M-CynOwieQ.cjs.map} +1 -1
- package/dist/{lzma-C-qU8rCo.cjs → lzma-YuGttxCP.cjs} +2 -2
- package/dist/{lzma-C-qU8rCo.cjs.map → lzma-YuGttxCP.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-BXWbsDvm.cjs → md5sum-SPU24VSG-8_h79vAu.cjs} +3 -3
- package/dist/{md5sum-SPU24VSG-BXWbsDvm.cjs.map → md5sum-SPU24VSG-8_h79vAu.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-BVd8_jGG.mjs → md5sum-SPU24VSG-BusAHdrK.mjs} +3 -3
- package/dist/{md5sum-SPU24VSG-BVd8_jGG.mjs.map → md5sum-SPU24VSG-BusAHdrK.mjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-Jxa36lH-.mjs → mkdir-MEPGZOB6-BnYYgVxv.mjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-Jxa36lH-.mjs.map → mkdir-MEPGZOB6-BnYYgVxv.mjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-BY2rSz4n.cjs → mkdir-MEPGZOB6-Z0WHNFtR.cjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-BY2rSz4n.cjs.map → mkdir-MEPGZOB6-Z0WHNFtR.cjs.map} +1 -1
- package/dist/{mv-W5BIQ646-C6iMhYnr.mjs → mv-W5BIQ646-CDQ60965.mjs} +2 -2
- package/dist/{mv-W5BIQ646-C6iMhYnr.mjs.map → mv-W5BIQ646-CDQ60965.mjs.map} +1 -1
- package/dist/{mv-W5BIQ646-DmAtW345.cjs → mv-W5BIQ646-tAPnueJb.cjs} +2 -2
- package/dist/{mv-W5BIQ646-DmAtW345.cjs.map → mv-W5BIQ646-tAPnueJb.cjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-DqGjVldy.cjs → nl-WSDW7I4O-BfBF-iiF.cjs} +2 -2
- package/dist/{nl-WSDW7I4O-DqGjVldy.cjs.map → nl-WSDW7I4O-BfBF-iiF.cjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-BTmNrRjW.mjs → nl-WSDW7I4O-C8m5GQ1G.mjs} +2 -2
- package/dist/{nl-WSDW7I4O-BTmNrRjW.mjs.map → nl-WSDW7I4O-C8m5GQ1G.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP-BNpft7pj.cjs → od-WOKFDJTP-CHXPdcv9.cjs} +2 -2
- package/dist/{od-WOKFDJTP-BNpft7pj.cjs.map → od-WOKFDJTP-CHXPdcv9.cjs.map} +1 -1
- package/dist/{od-WOKFDJTP-nBx_t02N.mjs → od-WOKFDJTP-KIq-UMwl.mjs} +2 -2
- package/dist/{od-WOKFDJTP-nBx_t02N.mjs.map → od-WOKFDJTP-KIq-UMwl.mjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-C-0O4u2q.cjs → paste-7JC6S4DX-Bs8ByIXb.cjs} +2 -2
- package/dist/{paste-7JC6S4DX-C-0O4u2q.cjs.map → paste-7JC6S4DX-Bs8ByIXb.cjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-KVzg2jll.mjs → paste-7JC6S4DX-u6xdoWS3.mjs} +2 -2
- package/dist/{paste-7JC6S4DX-KVzg2jll.mjs.map → paste-7JC6S4DX-u6xdoWS3.mjs.map} +1 -1
- package/dist/platform-database.cjs +13 -3
- package/dist/platform-database.d.cts +1 -1
- package/dist/platform-database.d.mts +1 -1
- package/dist/platform-database.mjs +1 -1
- package/dist/{printf-TWGXF445-RWHVX5FV.cjs → printf-TWGXF445-B0tOxQT6.cjs} +3 -3
- package/dist/{printf-TWGXF445-RWHVX5FV.cjs.map → printf-TWGXF445-B0tOxQT6.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-Dj6F3iWo.mjs → printf-TWGXF445-CtvDPfv-.mjs} +2 -2
- package/dist/{printf-TWGXF445-Dj6F3iWo.mjs.map → printf-TWGXF445-CtvDPfv-.mjs.map} +1 -1
- package/dist/{python3-POMOR4OA-CBslj-gJ.mjs → python3-POMOR4OA-CYRVTFwe.mjs} +3 -3
- package/dist/{python3-POMOR4OA-CBslj-gJ.mjs.map → python3-POMOR4OA-CYRVTFwe.mjs.map} +1 -1
- package/dist/{python3-POMOR4OA-BuqCCpBS.cjs → python3-POMOR4OA-DYjQ3ccZ.cjs} +4 -4
- package/dist/{python3-POMOR4OA-BuqCCpBS.cjs.map → python3-POMOR4OA-DYjQ3ccZ.cjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-Dcpld4RG.mjs → rev-5EHFX4EJ-C41ieMgj.mjs} +2 -2
- package/dist/{rev-5EHFX4EJ-Dcpld4RG.mjs.map → rev-5EHFX4EJ-C41ieMgj.mjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-gMcdZInq.cjs → rev-5EHFX4EJ-Cgya-Fo0.cjs} +2 -2
- package/dist/{rev-5EHFX4EJ-gMcdZInq.cjs.map → rev-5EHFX4EJ-Cgya-Fo0.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-CfvW0egS.cjs → rg-S4FXYXWB-ByK2CLxu.cjs} +3 -3
- package/dist/{rg-S4FXYXWB-CfvW0egS.cjs.map → rg-S4FXYXWB-ByK2CLxu.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-CCi5yOZW.mjs → rg-S4FXYXWB-DixtanJa.mjs} +3 -3
- package/dist/{rg-S4FXYXWB-CCi5yOZW.mjs.map → rg-S4FXYXWB-DixtanJa.mjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-bPTxcRcX.cjs → rm-SSGETQVQ-BSLrKStW.cjs} +2 -2
- package/dist/{rm-SSGETQVQ-bPTxcRcX.cjs.map → rm-SSGETQVQ-BSLrKStW.cjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-DOU8kqH1.mjs → rm-SSGETQVQ-CkwXZzCb.mjs} +2 -2
- package/dist/{rm-SSGETQVQ-DOU8kqH1.mjs.map → rm-SSGETQVQ-CkwXZzCb.mjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-BTIoCXcX.mjs → rmdir-OC4ZLPYA-DmK6bDKx.mjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-BTIoCXcX.mjs.map → rmdir-OC4ZLPYA-DmK6bDKx.mjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-BuPVwHWE.cjs → rmdir-OC4ZLPYA-DrF3bZoQ.cjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-BuPVwHWE.cjs.map → rmdir-OC4ZLPYA-DrF3bZoQ.cjs.map} +1 -1
- package/dist/run.cjs +1 -1
- package/dist/run.mjs +1 -1
- package/dist/{sed-S5UIK574-CedHHKip.cjs → sed-S5UIK574-B3Klx8N4.cjs} +2 -2
- package/dist/{sed-S5UIK574-CedHHKip.cjs.map → sed-S5UIK574-B3Klx8N4.cjs.map} +1 -1
- package/dist/{sed-S5UIK574-Z6_JbTpH.mjs → sed-S5UIK574-tnYwSWkL.mjs} +2 -2
- package/dist/{sed-S5UIK574-Z6_JbTpH.mjs.map → sed-S5UIK574-tnYwSWkL.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-DE6FG5_u.mjs → sha1sum-2PTOAFR6-BP6dQ8V1.mjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-DE6FG5_u.mjs.map → sha1sum-2PTOAFR6-BP6dQ8V1.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-CkkcLEco.cjs → sha1sum-2PTOAFR6-Bl7iC2ql.cjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-CkkcLEco.cjs.map → sha1sum-2PTOAFR6-Bl7iC2ql.cjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-C6E752Cf.mjs → sha256sum-NS7D3IXX-BJzrJC0M.mjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-C6E752Cf.mjs.map → sha256sum-NS7D3IXX-BJzrJC0M.mjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-Czd21v8R.cjs → sha256sum-NS7D3IXX-DdD-z8yU.cjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-Czd21v8R.cjs.map → sha256sum-NS7D3IXX-DdD-z8yU.cjs.map} +1 -1
- package/dist/{sleep-X22JJINO-7H7IWY2o.mjs → sleep-X22JJINO-D3SDAJt4.mjs} +2 -2
- package/dist/{sleep-X22JJINO-7H7IWY2o.mjs.map → sleep-X22JJINO-D3SDAJt4.mjs.map} +1 -1
- package/dist/{sleep-X22JJINO-Dx_bFfIX.cjs → sleep-X22JJINO-UJvessts.cjs} +2 -2
- package/dist/{sleep-X22JJINO-Dx_bFfIX.cjs.map → sleep-X22JJINO-UJvessts.cjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-BFOkdC51.mjs → sort-SW2YEO5B-CFc2Uu_A.mjs} +3 -3
- package/dist/{sort-SW2YEO5B-BFOkdC51.mjs.map → sort-SW2YEO5B-CFc2Uu_A.mjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-CNvaPgBI.cjs → sort-SW2YEO5B-DIDExLis.cjs} +3 -3
- package/dist/{sort-SW2YEO5B-CNvaPgBI.cjs.map → sort-SW2YEO5B-DIDExLis.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-nt0tLTli.cjs → split-4KKZZXXE-CSVvRIzD.cjs} +2 -2
- package/dist/{split-4KKZZXXE-nt0tLTli.cjs.map → split-4KKZZXXE-CSVvRIzD.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-DtBxVEO8.mjs → split-4KKZZXXE-DMjoEV89.mjs} +2 -2
- package/dist/{split-4KKZZXXE-DtBxVEO8.mjs.map → split-4KKZZXXE-DMjoEV89.mjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-BGLep8e5.mjs → sqlite3-CGOEFJAO-BXYj3z3Q.mjs} +2 -2
- package/dist/{sqlite3-CGOEFJAO-BGLep8e5.mjs.map → sqlite3-CGOEFJAO-BXYj3z3Q.mjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-BWLd6W0g.cjs → sqlite3-CGOEFJAO-DTNqDMXu.cjs} +4 -4
- package/dist/{sqlite3-CGOEFJAO-BWLd6W0g.cjs.map → sqlite3-CGOEFJAO-DTNqDMXu.cjs.map} +1 -1
- package/dist/{start-BQ0b7Zex.cjs → start-Cm1hxyF_.cjs} +3224 -234
- package/dist/start-Cm1hxyF_.cjs.map +1 -0
- package/dist/{start-jG7mVE-h.mjs → start-DmsuxtBI.mjs} +3081 -91
- package/dist/start-DmsuxtBI.mjs.map +1 -0
- package/dist/start.cjs +1 -1
- package/dist/start.d.cts +1 -1
- package/dist/start.d.mts +1 -1
- package/dist/start.mjs +1 -1
- package/dist/{strings-6WDHLGMX-CGaZuwJ8.mjs → strings-6WDHLGMX-Cs9B6z8x.mjs} +2 -2
- package/dist/{strings-6WDHLGMX-CGaZuwJ8.mjs.map → strings-6WDHLGMX-Cs9B6z8x.mjs.map} +1 -1
- package/dist/{strings-6WDHLGMX-CHWp5DnU.cjs → strings-6WDHLGMX-D2bfJpyh.cjs} +2 -2
- package/dist/{strings-6WDHLGMX-CHWp5DnU.cjs.map → strings-6WDHLGMX-D2bfJpyh.cjs.map} +1 -1
- package/dist/{tac-2STMMJYW-DJvRhvlJ.cjs → tac-2STMMJYW-D0fFvjly.cjs} +2 -2
- package/dist/{tac-2STMMJYW-DJvRhvlJ.cjs.map → tac-2STMMJYW-D0fFvjly.cjs.map} +1 -1
- package/dist/{tac-2STMMJYW-D0B5neHF.mjs → tac-2STMMJYW-ceGFflzJ.mjs} +2 -2
- package/dist/{tac-2STMMJYW-D0B5neHF.mjs.map → tac-2STMMJYW-ceGFflzJ.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-CBXSleY_.mjs → tail-R4PCA2C4-BopvFWyi.mjs} +2 -2
- package/dist/{tail-R4PCA2C4-CBXSleY_.mjs.map → tail-R4PCA2C4-BopvFWyi.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-CtnCdzuO.cjs → tail-R4PCA2C4-CLtu5GPs.cjs} +2 -2
- package/dist/{tail-R4PCA2C4-CtnCdzuO.cjs.map → tail-R4PCA2C4-CLtu5GPs.cjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-Btz1HNi9.cjs → tar-STHHZTZ6-Bxk0yG7D.cjs} +5 -5
- package/dist/{tar-STHHZTZ6-Btz1HNi9.cjs.map → tar-STHHZTZ6-Bxk0yG7D.cjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-3cydfi4Z.mjs → tar-STHHZTZ6-QbV1N_D9.mjs} +3 -3
- package/dist/{tar-STHHZTZ6-3cydfi4Z.mjs.map → tar-STHHZTZ6-QbV1N_D9.mjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-DJYybbg7.cjs → tee-YUZ2FKCJ-BbxSWxw6.cjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-DJYybbg7.cjs.map → tee-YUZ2FKCJ-BbxSWxw6.cjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-CtrtrXSY.mjs → tee-YUZ2FKCJ-DiFGWp4G.mjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-CtrtrXSY.mjs.map → tee-YUZ2FKCJ-DiFGWp4G.mjs.map} +1 -1
- package/dist/{time-D4LNBSWX-DNNPSFOx.cjs → time-D4LNBSWX-BQSWzFeK.cjs} +2 -2
- package/dist/{time-D4LNBSWX-DNNPSFOx.cjs.map → time-D4LNBSWX-BQSWzFeK.cjs.map} +1 -1
- package/dist/{time-D4LNBSWX-BU6J60I4.mjs → time-D4LNBSWX-CTjUJUms.mjs} +2 -2
- package/dist/{time-D4LNBSWX-BU6J60I4.mjs.map → time-D4LNBSWX-CTjUJUms.mjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-HSD3vHsz.mjs → timeout-YDCRSLPQ-DC-fdp1t.mjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-HSD3vHsz.mjs.map → timeout-YDCRSLPQ-DC-fdp1t.mjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-C2SC5vB7.cjs → timeout-YDCRSLPQ-DEPvQ6Ih.cjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-C2SC5vB7.cjs.map → timeout-YDCRSLPQ-DEPvQ6Ih.cjs.map} +1 -1
- package/dist/{touch-UA33VN3N-sh2TXNDe.mjs → touch-UA33VN3N-BMhGO9VC.mjs} +2 -2
- package/dist/{touch-UA33VN3N-sh2TXNDe.mjs.map → touch-UA33VN3N-BMhGO9VC.mjs.map} +1 -1
- package/dist/{touch-UA33VN3N-DazOwQQS.cjs → touch-UA33VN3N-DIda6f8u.cjs} +2 -2
- package/dist/{touch-UA33VN3N-DazOwQQS.cjs.map → touch-UA33VN3N-DIda6f8u.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-CrF6131T.cjs → tr-36LHWFRQ-COkRmY_6.cjs} +2 -2
- package/dist/{tr-36LHWFRQ-CrF6131T.cjs.map → tr-36LHWFRQ-COkRmY_6.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-D_2pGQp9.mjs → tr-36LHWFRQ-DjY4IsPF.mjs} +2 -2
- package/dist/{tr-36LHWFRQ-D_2pGQp9.mjs.map → tr-36LHWFRQ-DjY4IsPF.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-BIC19isL.mjs → tree-YLD52CNT-N-vPBfJO.mjs} +2 -2
- package/dist/{tree-YLD52CNT-BIC19isL.mjs.map → tree-YLD52CNT-N-vPBfJO.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-u4cOkoBM.cjs → tree-YLD52CNT-kZ9vPZ-R.cjs} +2 -2
- package/dist/{tree-YLD52CNT-u4cOkoBM.cjs.map → tree-YLD52CNT-kZ9vPZ-R.cjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-C5t4tamX.mjs → unexpand-CADSA4VO-Byi4s0o8.mjs} +2 -2
- package/dist/{unexpand-CADSA4VO-C5t4tamX.mjs.map → unexpand-CADSA4VO-Byi4s0o8.mjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-BwtCgpf8.cjs → unexpand-CADSA4VO-DekKk-hg.cjs} +2 -2
- package/dist/{unexpand-CADSA4VO-BwtCgpf8.cjs.map → unexpand-CADSA4VO-DekKk-hg.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-D1uH-xXs.cjs → uniq-XSIZR6PB-BhdgA9iI.cjs} +3 -3
- package/dist/{uniq-XSIZR6PB-D1uH-xXs.cjs.map → uniq-XSIZR6PB-BhdgA9iI.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-BPhswb-D.mjs → uniq-XSIZR6PB-D0HICyAj.mjs} +3 -3
- package/dist/{uniq-XSIZR6PB-BPhswb-D.mjs.map → uniq-XSIZR6PB-D0HICyAj.mjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-Dha3d9oq.cjs → wc-LF7NU4LA-Ci3_hJug.cjs} +3 -3
- package/dist/{wc-LF7NU4LA-Dha3d9oq.cjs.map → wc-LF7NU4LA-Ci3_hJug.cjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-HonUXgc3.mjs → wc-LF7NU4LA-CnEel3wT.mjs} +3 -3
- package/dist/{wc-LF7NU4LA-HonUXgc3.mjs.map → wc-LF7NU4LA-CnEel3wT.mjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-DKE1_HEE.mjs → xan-Y6WF3IRG-BEGK5ruS.mjs} +6 -6
- package/dist/{xan-Y6WF3IRG-DKE1_HEE.mjs.map → xan-Y6WF3IRG-BEGK5ruS.mjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-DF8LgdcK.cjs → xan-Y6WF3IRG-EnrntEIM.cjs} +6 -6
- package/dist/{xan-Y6WF3IRG-DF8LgdcK.cjs.map → xan-Y6WF3IRG-EnrntEIM.cjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-CBWjF4AF.mjs → xan-view-HDVKHFC2-CvEDnphU.mjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-CBWjF4AF.mjs.map → xan-view-HDVKHFC2-CvEDnphU.mjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-BTj5UUmy.cjs → xan-view-HDVKHFC2-c1gcVO0A.cjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-BTj5UUmy.cjs.map → xan-view-HDVKHFC2-c1gcVO0A.cjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-w6s3TO73.mjs → xargs-MGZPH7AX-BvI6LK8I.mjs} +2 -2
- package/dist/{xargs-MGZPH7AX-w6s3TO73.mjs.map → xargs-MGZPH7AX-BvI6LK8I.mjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-BX6HS5mB.cjs → xargs-MGZPH7AX-DNyBXxK4.cjs} +2 -2
- package/dist/{xargs-MGZPH7AX-BX6HS5mB.cjs.map → xargs-MGZPH7AX-DNyBXxK4.cjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-CqoPq62R.cjs → yq-4QJW3EQG-9kH_HlxF.cjs} +3 -3
- package/dist/{yq-4QJW3EQG-CqoPq62R.cjs.map → yq-4QJW3EQG-9kH_HlxF.cjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-DgunUMhp.mjs → yq-4QJW3EQG-CYt1C3ZB.mjs} +3 -3
- package/dist/{yq-4QJW3EQG-DgunUMhp.mjs.map → yq-4QJW3EQG-CYt1C3ZB.mjs.map} +1 -1
- package/package.json +1 -1
- package/dist/dist-BPaInPOA.cjs +0 -287
- package/dist/dist-BPaInPOA.cjs.map +0 -1
- package/dist/dist-COpoWBp6.cjs.map +0 -1
- package/dist/dist-CW17n9gj.cjs +0 -11507
- package/dist/dist-CW17n9gj.cjs.map +0 -1
- package/dist/dist-DkMgDyky.mjs +0 -274
- package/dist/dist-DkMgDyky.mjs.map +0 -1
- package/dist/dist-a3xv8a0D.mjs +0 -10904
- package/dist/dist-a3xv8a0D.mjs.map +0 -1
- package/dist/dist-dELW1gaR.mjs.map +0 -1
- package/dist/index-BwAU1YGx.d.mts +0 -37
- package/dist/index-Ceq3LoQV.d.cts +0 -35
- package/dist/index-Cf2z5TA-.d.cts +0 -807
- package/dist/index-UhcpOLvB.d.mts +0 -809
- package/dist/start-BQ0b7Zex.cjs.map +0 -1
- package/dist/start-jG7mVE-h.mjs.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Docker from "dockerode";
|
|
1
2
|
import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
2
3
|
import { join } from "node:path";
|
|
3
4
|
import { spawnSync } from "node:child_process";
|
|
@@ -5,6 +6,276 @@ import { tmpdir } from "node:os";
|
|
|
5
6
|
import { z } from "zod";
|
|
6
7
|
import { CreateBucketCommand, DeleteBucketCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutBucketAclCommand, PutBucketPolicyCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
7
8
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
9
|
+
//#region ../../packages/hosting/dist/index.mjs
|
|
10
|
+
const PROJECT_SERVER_PORT = 3e3;
|
|
11
|
+
const PROJECT_SERVER_ROOT = "/app";
|
|
12
|
+
const PROJECT_SERVER_FRAMEWORK_NODE_MODULES = `/opt/keystroke/node_modules`;
|
|
13
|
+
const PROJECT_SERVER_HEALTH = {
|
|
14
|
+
path: "/health",
|
|
15
|
+
port: PROJECT_SERVER_PORT
|
|
16
|
+
};
|
|
17
|
+
const RUNTIME_ENV_KEYS = [
|
|
18
|
+
"BETTER_AUTH_SECRET",
|
|
19
|
+
"PUBLIC_SERVER_URL",
|
|
20
|
+
"PUBLIC_WEB_URL",
|
|
21
|
+
"POSTGRES_SSL",
|
|
22
|
+
"KEYSTROKE_SCHEDULER_MODULE",
|
|
23
|
+
"UPSTASH_REDIS_URL",
|
|
24
|
+
"REDIS_URL",
|
|
25
|
+
"KEYSTROKE_QUEUE_PREFIX"
|
|
26
|
+
];
|
|
27
|
+
/** Provider and gateway env forwarded from the platform into project servers. */
|
|
28
|
+
const PROVIDER_ENV_KEYS = [
|
|
29
|
+
"ANTHROPIC_API_KEY",
|
|
30
|
+
"OPENAI_API_KEY",
|
|
31
|
+
"AI_GATEWAY_API_KEY",
|
|
32
|
+
"AI_GATEWAY_BASE_URL"
|
|
33
|
+
];
|
|
34
|
+
/** Shared dev token when `PLATFORM_WORKER_TOKEN` is unset (non-production only). */
|
|
35
|
+
const DEV_PLATFORM_WORKER_TOKEN = "dev-platform-worker-token";
|
|
36
|
+
/** Per-project postgres env injected into every project server container/machine. */
|
|
37
|
+
function projectDatabaseRuntimeEnv(database) {
|
|
38
|
+
return {
|
|
39
|
+
POSTGRES_HOST: rewriteLoopbackHost(database.host),
|
|
40
|
+
POSTGRES_PORT: String(database.port),
|
|
41
|
+
POSTGRES_DB: database.database,
|
|
42
|
+
POSTGRES_USER: database.user,
|
|
43
|
+
POSTGRES_PASSWORD: database.password,
|
|
44
|
+
DATABASE_SEARCH_PATH: database.searchPath
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Builds the launch spec for a single project server. `artifactStorageKey` is the
|
|
49
|
+
* object key for that deploy's built `dist` tarball in the org bucket — there is
|
|
50
|
+
* no base image, so it is required.
|
|
51
|
+
*/
|
|
52
|
+
function resolveRuntimeLaunch(options, artifactStorageKey, database, extraEnv) {
|
|
53
|
+
if (!artifactStorageKey) throw new Error("Cannot start a project server without an artifact storage key");
|
|
54
|
+
const env = options.env ?? process.env;
|
|
55
|
+
return {
|
|
56
|
+
image: resolveProjectServerImage(env, options.image),
|
|
57
|
+
env: buildRuntimeEnv(env, artifactStorageKey, database, extraEnv),
|
|
58
|
+
port: PROJECT_SERVER_PORT,
|
|
59
|
+
health: PROJECT_SERVER_HEALTH
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Env vars passed into the project server container/machine. */
|
|
63
|
+
function buildRuntimeEnv(source, artifactStorageKey, database, extraEnv) {
|
|
64
|
+
const entries = new Map([
|
|
65
|
+
["PORT", String(PROJECT_SERVER_PORT)],
|
|
66
|
+
["KEYSTROKE_ROOT", PROJECT_SERVER_ROOT],
|
|
67
|
+
["KEYSTROKE_RUNTIME_NODE_MODULES", PROJECT_SERVER_FRAMEWORK_NODE_MODULES],
|
|
68
|
+
["ARTIFACT_STORAGE_KEY", artifactStorageKey],
|
|
69
|
+
["PROJECT_ID", database.projectId],
|
|
70
|
+
["ORGANIZATION_ID", database.organizationId],
|
|
71
|
+
["TENANT_ID", database.organizationId]
|
|
72
|
+
]);
|
|
73
|
+
for (const key of RUNTIME_ENV_KEYS) {
|
|
74
|
+
const value = source[key]?.trim();
|
|
75
|
+
if (!value) {
|
|
76
|
+
if (key === "POSTGRES_SSL") throw new Error("POSTGRES_SSL is required");
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
entries.set(key, value);
|
|
80
|
+
}
|
|
81
|
+
if (!extraEnv) for (const key of PROVIDER_ENV_KEYS) {
|
|
82
|
+
const value = source[key]?.trim();
|
|
83
|
+
if (value) entries.set(key, value);
|
|
84
|
+
}
|
|
85
|
+
const worker = resolveWorkerRuntimeConfig(source);
|
|
86
|
+
entries.set("PLATFORM_URL", worker.platformUrl);
|
|
87
|
+
entries.set("WORKER_INTERNAL_TOKEN", worker.workerToken);
|
|
88
|
+
for (const [key, value] of Object.entries(projectDatabaseRuntimeEnv(database))) entries.set(key, value);
|
|
89
|
+
if (extraEnv) for (const [key, value] of Object.entries(extraEnv)) entries.set(key, value);
|
|
90
|
+
return Object.fromEntries(entries);
|
|
91
|
+
}
|
|
92
|
+
function resolvePlatformWorkerToken(source = process.env) {
|
|
93
|
+
const explicit = source.PLATFORM_WORKER_TOKEN?.trim() ?? source.WORKER_INTERNAL_TOKEN?.trim();
|
|
94
|
+
if (explicit) return explicit;
|
|
95
|
+
if (source.NODE_ENV === "production") return;
|
|
96
|
+
return DEV_PLATFORM_WORKER_TOKEN;
|
|
97
|
+
}
|
|
98
|
+
/** Platform API URL reachable from a project-server container. */
|
|
99
|
+
const DEV_PLATFORM_URL = "http://localhost:3002";
|
|
100
|
+
function resolveWorkerPlatformUrl(source = process.env) {
|
|
101
|
+
const raw = source.PLATFORM_URL?.trim() ?? source.PUBLIC_PLATFORM_URL?.trim() ?? (source.NODE_ENV === "production" ? void 0 : DEV_PLATFORM_URL);
|
|
102
|
+
if (!raw) return;
|
|
103
|
+
return rewriteLoopbackUrl(raw);
|
|
104
|
+
}
|
|
105
|
+
/** Rewrite loopback hosts so containers can reach Postgres and other host services. */
|
|
106
|
+
function rewriteLoopbackHost(host) {
|
|
107
|
+
if (host === "localhost" || host === "127.0.0.1") return "host.docker.internal";
|
|
108
|
+
return host;
|
|
109
|
+
}
|
|
110
|
+
function rewriteLoopbackUrl(url) {
|
|
111
|
+
try {
|
|
112
|
+
const parsed = new URL(url);
|
|
113
|
+
parsed.hostname = rewriteLoopbackHost(parsed.hostname);
|
|
114
|
+
return parsed.toString().replace(/\/$/, "");
|
|
115
|
+
} catch {
|
|
116
|
+
return url;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** dockerode expects `KEY=value` strings. */
|
|
120
|
+
function formatDockerEnv(env) {
|
|
121
|
+
return Object.entries(env).map(([key, value]) => `${key}=${value}`);
|
|
122
|
+
}
|
|
123
|
+
function resolveProjectServerImage(env = process.env, override) {
|
|
124
|
+
return override ?? env.PROJECT_DOCKER_IMAGE ?? env.TENANT_DOCKER_IMAGE ?? "keystroke/project-server:local";
|
|
125
|
+
}
|
|
126
|
+
var WorkerRuntimeConfigError = class extends Error {
|
|
127
|
+
missing;
|
|
128
|
+
constructor(missing) {
|
|
129
|
+
super(`Worker runtime config incomplete (missing: ${missing.join(", ")}). In production set PLATFORM_WORKER_TOKEN and PUBLIC_PLATFORM_URL (or PLATFORM_URL).`);
|
|
130
|
+
this.name = "WorkerRuntimeConfigError";
|
|
131
|
+
this.missing = missing;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
/** Fail fast when the platform cannot start worker-mode project servers. */
|
|
135
|
+
function resolveWorkerRuntimeConfig(source = process.env) {
|
|
136
|
+
const platformUrl = resolveWorkerPlatformUrl(source);
|
|
137
|
+
const workerToken = resolvePlatformWorkerToken(source);
|
|
138
|
+
const missing = [];
|
|
139
|
+
if (!platformUrl) missing.push("PUBLIC_PLATFORM_URL or PLATFORM_URL");
|
|
140
|
+
if (!workerToken) missing.push("PLATFORM_WORKER_TOKEN");
|
|
141
|
+
if (missing.length > 0) throw new WorkerRuntimeConfigError(missing);
|
|
142
|
+
return {
|
|
143
|
+
platformUrl,
|
|
144
|
+
workerToken
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
const DEFAULT_TIMEOUT_MS = 12e4;
|
|
148
|
+
const DEFAULT_INTERVAL_MS = 500;
|
|
149
|
+
async function waitForHealth(baseUrl, options = {}) {
|
|
150
|
+
const fetchImpl = options.fetchImpl ?? fetch;
|
|
151
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
152
|
+
const intervalMs = options.intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
153
|
+
const deadline = Date.now() + timeoutMs;
|
|
154
|
+
const url = new URL(PROJECT_SERVER_HEALTH.path, baseUrl);
|
|
155
|
+
while (Date.now() < deadline) {
|
|
156
|
+
try {
|
|
157
|
+
if ((await fetchImpl(url, { signal: AbortSignal.timeout(2e3) })).ok) return;
|
|
158
|
+
} catch {}
|
|
159
|
+
await sleep(intervalMs);
|
|
160
|
+
}
|
|
161
|
+
throw new Error(`Project server health check timed out after ${timeoutMs}ms (${url})`);
|
|
162
|
+
}
|
|
163
|
+
function sleep(ms) {
|
|
164
|
+
return new Promise((resolve) => {
|
|
165
|
+
setTimeout(resolve, ms);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
const MINIO_DOCKER_NETWORK = process.env.MINIO_DOCKER_NETWORK ?? "keystroke";
|
|
169
|
+
function createDockerRuntime(options = {}) {
|
|
170
|
+
const docker = options.docker ?? new Docker();
|
|
171
|
+
return { async start(input) {
|
|
172
|
+
const launch = resolveRuntimeLaunch(options, input.artifactStorageKey, input.database, input.env);
|
|
173
|
+
await ensureImage(docker, launch.image);
|
|
174
|
+
await removeExistingContainer(docker, input.projectId);
|
|
175
|
+
const container = await docker.createContainer({
|
|
176
|
+
Image: launch.image,
|
|
177
|
+
name: containerName(input.projectId),
|
|
178
|
+
Labels: {
|
|
179
|
+
"keystroke.project.id": input.projectId,
|
|
180
|
+
"keystroke.project.name": input.name
|
|
181
|
+
},
|
|
182
|
+
ExposedPorts: { [`${launch.port}/tcp`]: {} },
|
|
183
|
+
HostConfig: {
|
|
184
|
+
ExtraHosts: ["host.docker.internal:host-gateway"],
|
|
185
|
+
PortBindings: { [`${launch.port}/tcp`]: [{ HostPort: "0" }] }
|
|
186
|
+
},
|
|
187
|
+
NetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },
|
|
188
|
+
Env: formatDockerEnv(launch.env)
|
|
189
|
+
});
|
|
190
|
+
await container.start();
|
|
191
|
+
const inspect = await container.inspect();
|
|
192
|
+
const binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];
|
|
193
|
+
if (!binding?.HostPort) throw new Error("Failed to resolve project container host port");
|
|
194
|
+
const baseUrl = `http://127.0.0.1:${binding.HostPort}`;
|
|
195
|
+
await waitForHealth(baseUrl, {
|
|
196
|
+
fetchImpl: options.fetchImpl,
|
|
197
|
+
timeoutMs: options.healthTimeoutMs
|
|
198
|
+
});
|
|
199
|
+
return {
|
|
200
|
+
runtimeId: inspect.Id,
|
|
201
|
+
baseUrl
|
|
202
|
+
};
|
|
203
|
+
} };
|
|
204
|
+
}
|
|
205
|
+
function containerName(projectId) {
|
|
206
|
+
return `keystroke-project-${projectId}`;
|
|
207
|
+
}
|
|
208
|
+
async function removeExistingContainer(docker, projectId) {
|
|
209
|
+
try {
|
|
210
|
+
const existing = docker.getContainer(containerName(projectId));
|
|
211
|
+
await existing.stop({ t: 5 }).catch(() => void 0);
|
|
212
|
+
await existing.remove({ force: true });
|
|
213
|
+
} catch {}
|
|
214
|
+
}
|
|
215
|
+
async function ensureImage(docker, image) {
|
|
216
|
+
try {
|
|
217
|
+
await docker.getImage(image).inspect();
|
|
218
|
+
return;
|
|
219
|
+
} catch {}
|
|
220
|
+
await new Promise((resolvePromise, reject) => {
|
|
221
|
+
docker.pull(image, (error, stream) => {
|
|
222
|
+
if (error) {
|
|
223
|
+
reject(error);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (!stream) {
|
|
227
|
+
reject(/* @__PURE__ */ new Error(`Failed to pull image ${image}`));
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
docker.modem.followProgress(stream, (progressError) => {
|
|
231
|
+
if (progressError) {
|
|
232
|
+
reject(progressError);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
resolvePromise();
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
function dockerPlugin(options = {}) {
|
|
241
|
+
const env = options.env ?? process.env;
|
|
242
|
+
return {
|
|
243
|
+
name: "docker",
|
|
244
|
+
workerRuntime: resolveWorkerRuntimeConfig(env),
|
|
245
|
+
createRuntime: () => createDockerRuntime({
|
|
246
|
+
...options,
|
|
247
|
+
env
|
|
248
|
+
})
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/** Local Docker hosting — default for platform and dev. */
|
|
252
|
+
function defaultHostingPlugin(options = {}) {
|
|
253
|
+
return dockerPlugin(options);
|
|
254
|
+
}
|
|
255
|
+
async function pingProject(baseUrl, options = {}) {
|
|
256
|
+
const timeoutMs = options.timeoutMs ?? 15e3;
|
|
257
|
+
const headers = options.plugin?.pingRequestHeaders?.(options.runtimeId ?? null) ?? {};
|
|
258
|
+
try {
|
|
259
|
+
return (await (options.fetchImpl ?? fetch)(new URL(PROJECT_SERVER_HEALTH.path, baseUrl), {
|
|
260
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
261
|
+
headers
|
|
262
|
+
})).ok;
|
|
263
|
+
} catch {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function canPingProjectTarget(target, plugin) {
|
|
268
|
+
if (plugin?.canPingTarget) return plugin.canPingTarget(target);
|
|
269
|
+
return !!target.baseUrl;
|
|
270
|
+
}
|
|
271
|
+
async function pingProjectTarget(target, options = {}) {
|
|
272
|
+
if (!canPingProjectTarget(target, options.plugin)) return false;
|
|
273
|
+
return pingProject(target.baseUrl, {
|
|
274
|
+
...options,
|
|
275
|
+
runtimeId: target.runtimeId
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
//#endregion
|
|
8
279
|
//#region ../../packages/shared/dist/index.mjs
|
|
9
280
|
const ACTIVE_ORG_HEADER = "x-keystroke-org-id";
|
|
10
281
|
/** Auth, session, and account-entry URL segments. */
|
|
@@ -560,27 +831,8 @@ const OrganizationSlugSchema = z.string().trim().toLowerCase().min(2, "Slug must
|
|
|
560
831
|
* fail to load.
|
|
561
832
|
*/
|
|
562
833
|
const ClaimableOrganizationSlugSchema = OrganizationSlugSchema.refine((slug) => !RESERVED_ORGANIZATION_SLUGS.has(slug), "This slug is reserved");
|
|
563
|
-
const ORGANIZATION_NAME_APOSTROPHE_PATTERN = /[''\u2018\u2019]/g;
|
|
564
|
-
/** Normalize a display name into slug-shaped text (may be empty or too short to claim). */
|
|
565
|
-
function normalizeOrganizationNameToSlugBase(name) {
|
|
566
|
-
return name.trim().toLowerCase().replace(ORGANIZATION_NAME_APOSTROPHE_PATTERN, "").replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
567
|
-
}
|
|
568
|
-
/** Derive a URL slug from a display name (not guaranteed unique). */
|
|
569
|
-
function slugifyOrganizationName(name) {
|
|
570
|
-
const base = normalizeOrganizationNameToSlugBase(name);
|
|
571
|
-
if (!base) return "org";
|
|
572
|
-
const parsed = OrganizationSlugSchema.safeParse(base);
|
|
573
|
-
return parsed.success ? parsed.data : "org";
|
|
574
|
-
}
|
|
575
834
|
/** Same format as organization slugs — org-scoped, no global reserved list. */
|
|
576
835
|
const ProjectSlugSchema = OrganizationSlugSchema;
|
|
577
|
-
/** Derive a URL slug from a project display name (not guaranteed unique within the org). */
|
|
578
|
-
function slugifyProjectName(name) {
|
|
579
|
-
const base = normalizeOrganizationNameToSlugBase(name);
|
|
580
|
-
if (!base) return "project";
|
|
581
|
-
const parsed = ProjectSlugSchema.safeParse(base);
|
|
582
|
-
return parsed.success ? parsed.data : "project";
|
|
583
|
-
}
|
|
584
836
|
/** TCP port to bind for a local server, derived from a public URL. */
|
|
585
837
|
function listenPortFromUrl(url, fallback) {
|
|
586
838
|
const parsed = new URL(url);
|
|
@@ -1125,8 +1377,6 @@ function isCredentialInput(value) {
|
|
|
1125
1377
|
return typeof candidate.key === "string" && CredentialAuthKindSchema.safeParse(candidate.kind).success && candidate.schema instanceof z.ZodType;
|
|
1126
1378
|
}
|
|
1127
1379
|
const credentialInputSchema = z.custom((value) => isCredentialInput(value), "must be a credential requirement");
|
|
1128
|
-
/** Canonical copy for slug collision errors (API + UI). */
|
|
1129
|
-
const ORGANIZATION_SLUG_TAKEN_MESSAGE = "That slug is already taken.";
|
|
1130
1380
|
const PROJECT_SLUG_TAKEN_MESSAGE = "That slug is already taken.";
|
|
1131
1381
|
const OrganizationSlugErrorCodeSchema = z.enum([
|
|
1132
1382
|
"slug_taken",
|
|
@@ -2168,44 +2418,6 @@ const PresignOrgLogoResponseSchema = z.object({
|
|
|
2168
2418
|
uploadUrl: z.url(),
|
|
2169
2419
|
storageKey: z.string().min(1)
|
|
2170
2420
|
});
|
|
2171
|
-
const DEFAULT_ORGANIZATION_SIDEBAR_BRANDING = {
|
|
2172
|
-
customLogoEnabled: false,
|
|
2173
|
-
customLogoExplicitlyDisabled: false,
|
|
2174
|
-
logoLightUrl: null,
|
|
2175
|
-
logoDarkUrl: null,
|
|
2176
|
-
logoHeightPx: 20
|
|
2177
|
-
};
|
|
2178
|
-
function normalizeLogoUrl(value) {
|
|
2179
|
-
if (typeof value !== "string") return null;
|
|
2180
|
-
try {
|
|
2181
|
-
const url = new URL(value);
|
|
2182
|
-
if (url.protocol !== "http:" && url.protocol !== "https:") return null;
|
|
2183
|
-
return url.toString();
|
|
2184
|
-
} catch {
|
|
2185
|
-
return null;
|
|
2186
|
-
}
|
|
2187
|
-
}
|
|
2188
|
-
function normalizeCustomLogoEnabled(value, branding) {
|
|
2189
|
-
const hasCustomLogo = Boolean(normalizeLogoUrl(branding.logoLightUrl) || normalizeLogoUrl(branding.logoDarkUrl));
|
|
2190
|
-
if (branding.customLogoExplicitlyDisabled === true) return false;
|
|
2191
|
-
if (typeof value === "boolean") return value || hasCustomLogo;
|
|
2192
|
-
return hasCustomLogo;
|
|
2193
|
-
}
|
|
2194
|
-
function normalizeLogoHeightPx(value) {
|
|
2195
|
-
if (typeof value !== "number" || !Number.isFinite(value)) return DEFAULT_ORGANIZATION_SIDEBAR_BRANDING.logoHeightPx;
|
|
2196
|
-
return Math.min(32, Math.max(14, Math.round(value)));
|
|
2197
|
-
}
|
|
2198
|
-
function normalizeOrganizationSidebarBranding(value) {
|
|
2199
|
-
if (!value || typeof value !== "object") return DEFAULT_ORGANIZATION_SIDEBAR_BRANDING;
|
|
2200
|
-
const branding = value;
|
|
2201
|
-
return OrganizationSidebarBrandingSchema.parse({
|
|
2202
|
-
customLogoEnabled: normalizeCustomLogoEnabled(branding.customLogoEnabled, branding),
|
|
2203
|
-
customLogoExplicitlyDisabled: branding.customLogoExplicitlyDisabled === true,
|
|
2204
|
-
logoLightUrl: normalizeLogoUrl(branding.logoLightUrl),
|
|
2205
|
-
logoDarkUrl: normalizeLogoUrl(branding.logoDarkUrl),
|
|
2206
|
-
logoHeightPx: normalizeLogoHeightPx(branding.logoHeightPx)
|
|
2207
|
-
});
|
|
2208
|
-
}
|
|
2209
2421
|
const ProjectArtifactStatusSchema = z.enum(["pending", "ready"]);
|
|
2210
2422
|
const isoDateTime$1 = z.string().datetime();
|
|
2211
2423
|
const ProjectArtifactSchema = z.object({
|
|
@@ -2505,19 +2717,6 @@ function storageAdminConfigFromEnv(env = process.env) {
|
|
|
2505
2717
|
forcePathStyle: env.STORAGE_FORCE_PATH_STYLE === void 0 ? true : env.STORAGE_FORCE_PATH_STYLE === "true"
|
|
2506
2718
|
};
|
|
2507
2719
|
}
|
|
2508
|
-
/** Endpoint for presigned URLs fetched inside project-server containers (e.g. `http://minio:9000`). */
|
|
2509
|
-
function containerPresignEndpointFromEnv(hostEndpoint, env = process.env) {
|
|
2510
|
-
const override = readEnv$1(env, "STORAGE_CONTAINER_ENDPOINT");
|
|
2511
|
-
if (override) return override;
|
|
2512
|
-
try {
|
|
2513
|
-
const url = new URL(hostEndpoint);
|
|
2514
|
-
if (url.hostname === "localhost" || url.hostname === "127.0.0.1") {
|
|
2515
|
-
const port = url.port || (url.protocol === "https:" ? "443" : "9000");
|
|
2516
|
-
return `${url.protocol}//minio:${port}`;
|
|
2517
|
-
}
|
|
2518
|
-
} catch {}
|
|
2519
|
-
return hostEndpoint;
|
|
2520
|
-
}
|
|
2521
2720
|
const DEFAULT_PRESIGN_TTL_SECONDS = 900;
|
|
2522
2721
|
function createStorage(config) {
|
|
2523
2722
|
const client = new S3Client(toClientConfig(config));
|
|
@@ -2840,6 +3039,6 @@ function minioStoragePlugin(options = {}) {
|
|
|
2840
3039
|
};
|
|
2841
3040
|
}
|
|
2842
3041
|
//#endregion
|
|
2843
|
-
export {
|
|
3042
|
+
export { ListProjectMembersResponseSchema as $, mapProjectDeployment as $t, CreateProjectArtifactResponseSchema as A, UpdateOrganizationMemberResponseSchema as At, HistoryRunListResponseSchema as B, UserPreferencesPatchSchema as Bt, CompleteProjectArtifactResponseSchema as C, SlugAvailabilityQuerySchema as Ct, CreateCredentialsResponseSchema as D, SubmitTeamRequestResponseSchema as Dt, CreateCredentialsRequestSchema as E, SubmitTeamRequestRequestSchema as Et, ErrorResponseSchema as F, UpdateProjectSettingsRequestSchema as Ft, ListApiKeysResponseSchema as G, buildCredentialInstanceLabel as Gt, InviteOrganizationMembersResponseSchema as H, WorkflowSummaryDetailResponseSchema as Ht, GetCredentialResponseSchema as I, UploadProjectSourceManifestRequestSchema as It, ListOrganizationInvitationsResponseSchema as J, listenPortFromPublicUrl as Jt, ListAppsResponseSchema as K, credentialInputSchema as Kt, HistoryRunCancelResponseSchema as L, UploadProjectSourceResponseSchema as Lt, CreateProjectResponseSchema as M, UpdateProjectMemberRequestSchema as Mt, DeclineOrganizationInvitationResponseSchema as N, UpdateProjectMemberResponseSchema as Nt, CreateOrganizationRequestSchema as O, UpdateCredentialRequestSchema as Ot, DownloadActiveProjectArtifactResponseSchema as P, UpdateProjectRequestSchema as Pt, ListProjectFilesResponseSchema as Q, mapProjectArtifact as Qt, HistoryRunDetailResponseSchema as R, UserAvatarPatchSchema as Rt, AgentSummarySchema as S, SkillSummarySchema as St, CreateApiKeyResponseSchema as T, StoredProjectSourceManifestSchema as Tt, InviteProjectMembersRequestSchema as U, WorkflowSummaryListResponseSchema as Ut, InviteOrganizationMembersRequestSchema as V, UserPreferencesSchema as Vt, InviteProjectMembersResponseSchema as W, WorkflowSummarySchema as Wt, ListOrganizationsResponseSchema as X, mapOrganizationMember as Xt, ListOrganizationMembersResponseSchema as Y, mapOrganizationInvitation as Yt, ListProjectDeploymentsResponseSchema as Z, mapProject as Zt, ACTIVE_ORG_HEADER as _, ProjectSourceResourcesSchema as _t, isKeystrokeAssetsAvatarPublicUrl as a, organizationInvitationAcceptPath as an, PROJECT_SLUG_TAKEN_MESSAGE as at, AgentSummaryDetailResponseSchema as b, SkillSummaryDetailResponseSchema as bt, isUserAvatarStorageKey as c, projectFileId as cn, PresignProjectSourceRequestSchema as ct, minioStoragePlugin as d, defaultHostingPlugin as dn, PresignUserAvatarResponseSchema as dt, mapProjectMember as en, ListProjectMetricsResponseSchema as et, orgLogoStorageKey as f, pingProjectTarget as fn, ProjectReachabilityResponseSchema as ft, userAvatarStorageKey as g, ProjectSlugAvailabilityResponseSchema as gt, publicKeystrokeAssetsObjectUrl as h, ProjectSlugAvailabilityQuerySchema as ht, extractRouteManifestFromArtifact as i, normalizeUserPreferences as in, PLATFORM_RESOURCE_UNSUPPORTED_TEXT as it, CreateProjectRequestSchema as j, UpdateOrganizationRequestSchema as jt, CreateOrganizationResponseSchema as k, UpdateOrganizationMemberRequestSchema as kt, keystrokeAssetsAvatarKeyFromPublicUrl as l, resolveUniqueCredentialInstanceLabel as ln, PresignProjectSourceResponseSchema as lt, projectSourceBlobKey as m, ProjectSettingsResponseSchema as mt, createAssetsStorageClient as n, mapUserOrganization as nn, OrganizationSidebarBrandingPatchSchema as nt, isKeystrokeAssetsOrgLogoPublicUrl as o, organizationSlugErrorCodeFromMessage as on, PresignOrgLogoRequestSchema as ot, projectArtifactKey as p, ProjectResponseSchema as pt, ListCredentialsResponseSchema as q, displayCredentialAppName as qt, ensureKeystrokeAssetsBucket as r, mergeUserPreferences as rn, OrganizationSidebarBrandingSchema as rt, isOrgLogoStorageKey as s, parseStoredRouteManifest as sn, PresignOrgLogoResponseSchema as st, RouteManifestNotFoundError as t, mapProjectSettings as tn, ListProjectsResponseSchema as tt, keystrokeAssetsOrgLogoKeyFromPublicUrl as u, validationErrorResponse as un, PresignUserAvatarRequestSchema as ut, AcceptOrganizationInvitationResponseSchema as v, RecentResourceListResponseSchema as vt, CreateApiKeyRequestSchema as w, SlugAvailabilityResponseSchema as wt, AgentSummaryListResponseSchema as x, SkillSummaryListResponseSchema as xt, ActiveOrganizationResponseSchema as y, RecentResourceSchema as yt, HistoryRunListQuerySchema as z, UserAvatarSchema as zt };
|
|
2844
3043
|
|
|
2845
|
-
//# sourceMappingURL=dist-
|
|
3044
|
+
//# sourceMappingURL=dist-B1hOOWjl.mjs.map
|