@keystrokehq/platform 0.1.147 → 0.1.148
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-Bdfmgc0u.mjs → awk2-LA3USKJP-CWLn5lpw.mjs} +2 -2
- package/dist/{awk2-LA3USKJP-Bdfmgc0u.mjs.map → awk2-LA3USKJP-CWLn5lpw.mjs.map} +1 -1
- package/dist/{awk2-LA3USKJP-BApncyBq.cjs → awk2-LA3USKJP-DURU8Wkp.cjs} +2 -2
- package/dist/{awk2-LA3USKJP-BApncyBq.cjs.map → awk2-LA3USKJP-DURU8Wkp.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-cIsrnNwV.mjs → base64-C2AIWVNC-BqSh0KzV.mjs} +2 -2
- package/dist/{base64-C2AIWVNC-cIsrnNwV.mjs.map → base64-C2AIWVNC-BqSh0KzV.mjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-zZDxDOtz.cjs → base64-C2AIWVNC-CM9MEO7s.cjs} +2 -2
- package/dist/{base64-C2AIWVNC-zZDxDOtz.cjs.map → base64-C2AIWVNC-CM9MEO7s.cjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-BEMy98_y.cjs → bash-YZ33HQZQ-CBrxEwyS.cjs} +2 -2
- package/dist/{bash-YZ33HQZQ-BEMy98_y.cjs.map → bash-YZ33HQZQ-CBrxEwyS.cjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-OQOsjx4z.mjs → bash-YZ33HQZQ-Cm7B9Dwy.mjs} +2 -2
- package/dist/{bash-YZ33HQZQ-OQOsjx4z.mjs.map → bash-YZ33HQZQ-Cm7B9Dwy.mjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-D8z73uJc.cjs → cat-TSFMZVYS-CNhzzrtQ.cjs} +3 -3
- package/dist/{cat-TSFMZVYS-D8z73uJc.cjs.map → cat-TSFMZVYS-CNhzzrtQ.cjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-CCCr_tPX.mjs → cat-TSFMZVYS-D7Q7EGv-.mjs} +3 -3
- package/dist/{cat-TSFMZVYS-CCCr_tPX.mjs.map → cat-TSFMZVYS-D7Q7EGv-.mjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-8CScWHi7.cjs → chunk-5H5SCKJM-BcPceEgO.cjs} +2 -2
- package/dist/{chunk-5H5SCKJM-8CScWHi7.cjs.map → chunk-5H5SCKJM-BcPceEgO.cjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-BVh-p5dF.mjs → chunk-5H5SCKJM-D46l1Sbb.mjs} +2 -2
- package/dist/{chunk-5H5SCKJM-BVh-p5dF.mjs.map → chunk-5H5SCKJM-D46l1Sbb.mjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-DkCJ32tZ.cjs → chunk-AQ6FYS2X-Bew6O2uZ.cjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-DkCJ32tZ.cjs.map → chunk-AQ6FYS2X-Bew6O2uZ.cjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-DZCYUfOR.mjs → chunk-AQ6FYS2X-DvLaW9GT.mjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-DZCYUfOR.mjs.map → chunk-AQ6FYS2X-DvLaW9GT.mjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-BUINQTOC.cjs → chunk-CHFEPBH4-BBobWKRj.cjs} +2 -2
- package/dist/{chunk-CHFEPBH4-BUINQTOC.cjs.map → chunk-CHFEPBH4-BBobWKRj.cjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-DRsQxrMn.mjs → chunk-CHFEPBH4-D4sWGR2D.mjs} +2 -2
- package/dist/{chunk-CHFEPBH4-DRsQxrMn.mjs.map → chunk-CHFEPBH4-D4sWGR2D.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-COKIsQbZ.mjs → chunk-EBAPSGAO-BXNGSl67.mjs} +2 -2
- package/dist/{chunk-EBAPSGAO-COKIsQbZ.mjs.map → chunk-EBAPSGAO-BXNGSl67.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-plR5fFBv.cjs → chunk-EBAPSGAO-DNh-jlQf.cjs} +2 -2
- package/dist/{chunk-EBAPSGAO-plR5fFBv.cjs.map → chunk-EBAPSGAO-DNh-jlQf.cjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-2kAIFPCU.cjs → chunk-LEKBROJD-DFBsIemC.cjs} +2 -2
- package/dist/{chunk-LEKBROJD-2kAIFPCU.cjs.map → chunk-LEKBROJD-DFBsIemC.cjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-BSJleLPa.mjs → chunk-LEKBROJD-slWumJKF.mjs} +2 -2
- package/dist/{chunk-LEKBROJD-BSJleLPa.mjs.map → chunk-LEKBROJD-slWumJKF.mjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-BtXMmXx1.mjs → chunk-VPADYNBD-D-DKFBlP.mjs} +2 -2
- package/dist/{chunk-VPADYNBD-BtXMmXx1.mjs.map → chunk-VPADYNBD-D-DKFBlP.mjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-Caj0l4uv.cjs → chunk-VPADYNBD-lDrwFZy3.cjs} +2 -2
- package/dist/{chunk-VPADYNBD-Caj0l4uv.cjs.map → chunk-VPADYNBD-lDrwFZy3.cjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-Dup_LlUm.cjs → chunk-YCLFEX4T-eL4FMfQk.cjs} +2 -2
- package/dist/{chunk-YCLFEX4T-Dup_LlUm.cjs.map → chunk-YCLFEX4T-eL4FMfQk.cjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-BsekSINU.mjs → chunk-YCLFEX4T-qEM38SsS.mjs} +2 -2
- package/dist/{chunk-YCLFEX4T-BsekSINU.mjs.map → chunk-YCLFEX4T-qEM38SsS.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-C6uU4zNL.mjs → column-XT6UFXNQ-B6Ee7MjU.mjs} +2 -2
- package/dist/{column-XT6UFXNQ-C6uU4zNL.mjs.map → column-XT6UFXNQ-B6Ee7MjU.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-BsGqXCT_.cjs → column-XT6UFXNQ-BXfi6cKs.cjs} +2 -2
- package/dist/{column-XT6UFXNQ-BsGqXCT_.cjs.map → column-XT6UFXNQ-BXfi6cKs.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-BmJhvNnj.mjs → comm-VV2LDX2J-BpxqjzME.mjs} +2 -2
- package/dist/{comm-VV2LDX2J-BmJhvNnj.mjs.map → comm-VV2LDX2J-BpxqjzME.mjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-JOjGZt7b.cjs → comm-VV2LDX2J-ROVZQ5Yp.cjs} +2 -2
- package/dist/{comm-VV2LDX2J-JOjGZt7b.cjs.map → comm-VV2LDX2J-ROVZQ5Yp.cjs.map} +1 -1
- package/dist/{config-C6cH3hkY.d.cts → config-5iRrZjyK.d.cts} +334 -4
- package/dist/{config-fUE8OVTA.cjs → config-6EMCmxRX.cjs} +3 -3
- package/dist/config-6EMCmxRX.cjs.map +1 -0
- package/dist/{config-DAIUglcc.mjs → config-BUnYziJI.mjs} +3 -3
- package/dist/config-BUnYziJI.mjs.map +1 -0
- package/dist/{config-DI6uiwr9.d.mts → config-dgsHSqKF.d.mts} +334 -4
- package/dist/config.cjs +2 -2
- package/dist/config.d.cts +2 -2
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +2 -2
- package/dist/{cp-BISAAS7A-C0m4MzAo.cjs → cp-BISAAS7A-SLYPct-c.cjs} +2 -2
- package/dist/{cp-BISAAS7A-C0m4MzAo.cjs.map → cp-BISAAS7A-SLYPct-c.cjs.map} +1 -1
- package/dist/{cp-BISAAS7A-BqV_MANe.mjs → cp-BISAAS7A-tGkSCf99.mjs} +2 -2
- package/dist/{cp-BISAAS7A-BqV_MANe.mjs.map → cp-BISAAS7A-tGkSCf99.mjs.map} +1 -1
- package/dist/{cut-OKARJCCV-qaPwXeWi.mjs → cut-OKARJCCV-DS1R1EOW.mjs} +3 -3
- package/dist/{cut-OKARJCCV-qaPwXeWi.mjs.map → cut-OKARJCCV-DS1R1EOW.mjs.map} +1 -1
- package/dist/{cut-OKARJCCV-ilaU3B5w.cjs → cut-OKARJCCV-WR3VIOBE.cjs} +3 -3
- package/dist/{cut-OKARJCCV-ilaU3B5w.cjs.map → cut-OKARJCCV-WR3VIOBE.cjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-Cate-TvL.cjs → diff-MWJFIG7X-C0ld41sJ.cjs} +2 -2
- package/dist/{diff-MWJFIG7X-Cate-TvL.cjs.map → diff-MWJFIG7X-C0ld41sJ.cjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-D3VN3S0f.mjs → diff-MWJFIG7X-OiyFwKoF.mjs} +2 -2
- package/dist/{diff-MWJFIG7X-D3VN3S0f.mjs.map → diff-MWJFIG7X-OiyFwKoF.mjs.map} +1 -1
- package/dist/{dist-BIKIpPhu.mjs → dist-DH4cGe05.mjs} +2 -2
- package/dist/{dist-BIKIpPhu.mjs.map → dist-DH4cGe05.mjs.map} +1 -1
- package/dist/{dist-dqKnzRlA.cjs → dist-DWmnC5I9.cjs} +2 -2
- package/dist/{dist-dqKnzRlA.cjs.map → dist-DWmnC5I9.cjs.map} +1 -1
- package/dist/{du-572XNP42-BKBhmoCb.mjs → du-572XNP42-CslXtf09.mjs} +2 -2
- package/dist/{du-572XNP42-BKBhmoCb.mjs.map → du-572XNP42-CslXtf09.mjs.map} +1 -1
- package/dist/{du-572XNP42-C27Lgq0a.cjs → du-572XNP42-DtiEY5E6.cjs} +2 -2
- package/dist/{du-572XNP42-C27Lgq0a.cjs.map → du-572XNP42-DtiEY5E6.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-DhVMVLUR.cjs → env-36M5BO7M-DZOmdywc.cjs} +2 -2
- package/dist/{env-36M5BO7M-DhVMVLUR.cjs.map → env-36M5BO7M-DZOmdywc.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-Bs_t1j98.mjs → env-36M5BO7M-qCkjYF--.mjs} +2 -2
- package/dist/{env-36M5BO7M-Bs_t1j98.mjs.map → env-36M5BO7M-qCkjYF--.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-DY9azf5x.cjs → expand-JSPG6VOP-DLtxgy0P.cjs} +2 -2
- package/dist/{expand-JSPG6VOP-DY9azf5x.cjs.map → expand-JSPG6VOP-DLtxgy0P.cjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-BfQHeAts.mjs → expand-JSPG6VOP-DXdIqoXf.mjs} +2 -2
- package/dist/{expand-JSPG6VOP-BfQHeAts.mjs.map → expand-JSPG6VOP-DXdIqoXf.mjs.map} +1 -1
- package/dist/{expr-5JAACS4X-Df_2BSxW.cjs → expr-5JAACS4X-CXKGGsG8.cjs} +2 -2
- package/dist/{expr-5JAACS4X-Df_2BSxW.cjs.map → expr-5JAACS4X-CXKGGsG8.cjs.map} +1 -1
- package/dist/{expr-5JAACS4X-C7Q9qdxK.mjs → expr-5JAACS4X-NooUODvD.mjs} +2 -2
- package/dist/{expr-5JAACS4X-C7Q9qdxK.mjs.map → expr-5JAACS4X-NooUODvD.mjs.map} +1 -1
- package/dist/{find-INTH3OLC-Cuhx3Buh.cjs → find-INTH3OLC-Bie6g_yk.cjs} +3 -3
- package/dist/{find-INTH3OLC-Cuhx3Buh.cjs.map → find-INTH3OLC-Bie6g_yk.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-D1jCTVev.mjs → find-INTH3OLC-CHI6wwcv.mjs} +3 -3
- package/dist/{find-INTH3OLC-D1jCTVev.mjs.map → find-INTH3OLC-CHI6wwcv.mjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-C-r9wMhz.mjs → fold-4TQNYMSW-CsAQYLbp.mjs} +2 -2
- package/dist/{fold-4TQNYMSW-C-r9wMhz.mjs.map → fold-4TQNYMSW-CsAQYLbp.mjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-Bp7lnutR.cjs → fold-4TQNYMSW-J4YpWltH.cjs} +2 -2
- package/dist/{fold-4TQNYMSW-Bp7lnutR.cjs.map → fold-4TQNYMSW-J4YpWltH.cjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-BaL4MNm5.cjs → grep-V3LQVMRQ-DnWd9o8k.cjs} +4 -4
- package/dist/{grep-V3LQVMRQ-BaL4MNm5.cjs.map → grep-V3LQVMRQ-DnWd9o8k.cjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-BbJvjSpG.mjs → grep-V3LQVMRQ-Yhnhp0aT.mjs} +4 -4
- package/dist/{grep-V3LQVMRQ-BbJvjSpG.mjs.map → grep-V3LQVMRQ-Yhnhp0aT.mjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-BB1Ht64L.mjs → gzip-O5ASJAFY-C5C_freg.mjs} +2 -2
- package/dist/{gzip-O5ASJAFY-BB1Ht64L.mjs.map → gzip-O5ASJAFY-C5C_freg.mjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-dBX-J1F9.cjs → gzip-O5ASJAFY-DKwx-j5v.cjs} +2 -2
- package/dist/{gzip-O5ASJAFY-dBX-J1F9.cjs.map → gzip-O5ASJAFY-DKwx-j5v.cjs.map} +1 -1
- package/dist/{head-442HYESI-CyixDGxx.cjs → head-442HYESI-BoO4nvML.cjs} +2 -2
- package/dist/{head-442HYESI-CyixDGxx.cjs.map → head-442HYESI-BoO4nvML.cjs.map} +1 -1
- package/dist/{head-442HYESI-BxDXiRvU.mjs → head-442HYESI-Cmtn5JgI.mjs} +2 -2
- package/dist/{head-442HYESI-BxDXiRvU.mjs.map → head-442HYESI-Cmtn5JgI.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-meYbxwKe.mjs → help-HZ6M2CKN-CTy_anGb.mjs} +2 -2
- package/dist/{help-HZ6M2CKN-meYbxwKe.mjs.map → help-HZ6M2CKN-CTy_anGb.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-CBbwwTzd.cjs → help-HZ6M2CKN-Cbte3oru.cjs} +2 -2
- package/dist/{help-HZ6M2CKN-CBbwwTzd.cjs.map → help-HZ6M2CKN-Cbte3oru.cjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-CcDUURT_.mjs → html-to-markdown-JW4MSQZO-299byWnc.mjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-CcDUURT_.mjs.map → html-to-markdown-JW4MSQZO-299byWnc.mjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-C3t3MM2-.cjs → html-to-markdown-JW4MSQZO-CkmzkxTG.cjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-C3t3MM2-.cjs.map → html-to-markdown-JW4MSQZO-CkmzkxTG.cjs.map} +1 -1
- package/dist/internal.cjs +2 -2
- package/dist/internal.d.cts +2 -2
- package/dist/internal.d.mts +2 -2
- package/dist/internal.mjs +2 -2
- package/dist/{join-TBRGI3LQ-DlMFBx1B.cjs → join-TBRGI3LQ-Bq06-RcK.cjs} +2 -2
- package/dist/{join-TBRGI3LQ-DlMFBx1B.cjs.map → join-TBRGI3LQ-Bq06-RcK.cjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-DhIHVx-D.mjs → join-TBRGI3LQ-CnYg-aU6.mjs} +2 -2
- package/dist/{join-TBRGI3LQ-DhIHVx-D.mjs.map → join-TBRGI3LQ-CnYg-aU6.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-1ZXfyQ-t.mjs → jq-4XLYLOS5-CZN9HHep.mjs} +4 -4
- package/dist/{jq-4XLYLOS5-1ZXfyQ-t.mjs.map → jq-4XLYLOS5-CZN9HHep.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-R_kJ4_hz.cjs → jq-4XLYLOS5-DTb2xFlq.cjs} +4 -4
- package/dist/{jq-4XLYLOS5-R_kJ4_hz.cjs.map → jq-4XLYLOS5-DTb2xFlq.cjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-DFulxpOb.mjs → js-exec-N5KEZBH7-BUHtul4o.mjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-DFulxpOb.mjs.map → js-exec-N5KEZBH7-BUHtul4o.mjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-DarQVOZh.cjs → js-exec-N5KEZBH7-rXv3W3_B.cjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-DarQVOZh.cjs.map → js-exec-N5KEZBH7-rXv3W3_B.cjs.map} +1 -1
- package/dist/{lib-DJRjljDi.mjs → lib-CX_1eXiO.mjs} +2 -2
- package/dist/{lib-DJRjljDi.mjs.map → lib-CX_1eXiO.mjs.map} +1 -1
- package/dist/{lib-ZZYpIIeE.cjs → lib-DXbtufvp.cjs} +2 -2
- package/dist/{lib-ZZYpIIeE.cjs.map → lib-DXbtufvp.cjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-BDLG2o_K.cjs → ln-4LGSXXGD-3hxf-Mzv.cjs} +2 -2
- package/dist/{ln-4LGSXXGD-BDLG2o_K.cjs.map → ln-4LGSXXGD-3hxf-Mzv.cjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-D903m8qg.mjs → ln-4LGSXXGD-D3CHZ27f.mjs} +2 -2
- package/dist/{ln-4LGSXXGD-D903m8qg.mjs.map → ln-4LGSXXGD-D3CHZ27f.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-Dkmv0R8V.mjs → ls-ZJGQER7M-BikOZ5dE.mjs} +2 -2
- package/dist/{ls-ZJGQER7M-Dkmv0R8V.mjs.map → ls-ZJGQER7M-BikOZ5dE.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-CliV7W6Y.cjs → ls-ZJGQER7M-oYXh3no8.cjs} +2 -2
- package/dist/{ls-ZJGQER7M-CliV7W6Y.cjs.map → ls-ZJGQER7M-oYXh3no8.cjs.map} +1 -1
- package/dist/{lzma-Bu2TqWO8.cjs → lzma-CWWTnXz9.cjs} +2 -2
- package/dist/{lzma-Bu2TqWO8.cjs.map → lzma-CWWTnXz9.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-DCn4Anah.cjs → md5sum-SPU24VSG-B-Q95S2L.cjs} +3 -3
- package/dist/{md5sum-SPU24VSG-DCn4Anah.cjs.map → md5sum-SPU24VSG-B-Q95S2L.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-B4KhLQRr.mjs → md5sum-SPU24VSG-BZ8T0s0d.mjs} +3 -3
- package/dist/{md5sum-SPU24VSG-B4KhLQRr.mjs.map → md5sum-SPU24VSG-BZ8T0s0d.mjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-R5c4T_LZ.cjs → mkdir-MEPGZOB6-CHlXP_UV.cjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-R5c4T_LZ.cjs.map → mkdir-MEPGZOB6-CHlXP_UV.cjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-CnLQJsUt.mjs → mkdir-MEPGZOB6-COgoB_eW.mjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-CnLQJsUt.mjs.map → mkdir-MEPGZOB6-COgoB_eW.mjs.map} +1 -1
- package/dist/{mv-W5BIQ646-BOKY4VrF.cjs → mv-W5BIQ646-CqRcfs2Q.cjs} +2 -2
- package/dist/{mv-W5BIQ646-BOKY4VrF.cjs.map → mv-W5BIQ646-CqRcfs2Q.cjs.map} +1 -1
- package/dist/{mv-W5BIQ646-Ca0nzr_C.mjs → mv-W5BIQ646-D1wp5mHO.mjs} +2 -2
- package/dist/{mv-W5BIQ646-Ca0nzr_C.mjs.map → mv-W5BIQ646-D1wp5mHO.mjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-BnmsTwim.cjs → nl-WSDW7I4O-CmqPuqVW.cjs} +2 -2
- package/dist/{nl-WSDW7I4O-BnmsTwim.cjs.map → nl-WSDW7I4O-CmqPuqVW.cjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-Z8F4EV6H.mjs → nl-WSDW7I4O-NCkIYhNa.mjs} +2 -2
- package/dist/{nl-WSDW7I4O-Z8F4EV6H.mjs.map → nl-WSDW7I4O-NCkIYhNa.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP-BXOK7sK9.mjs → od-WOKFDJTP-CEZP0ac9.mjs} +2 -2
- package/dist/{od-WOKFDJTP-BXOK7sK9.mjs.map → od-WOKFDJTP-CEZP0ac9.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP-XhCKGIUJ.cjs → od-WOKFDJTP-FZnm2Cu1.cjs} +2 -2
- package/dist/{od-WOKFDJTP-XhCKGIUJ.cjs.map → od-WOKFDJTP-FZnm2Cu1.cjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-CKVgH6nB.mjs → paste-7JC6S4DX-CkoIbaQf.mjs} +2 -2
- package/dist/{paste-7JC6S4DX-CKVgH6nB.mjs.map → paste-7JC6S4DX-CkoIbaQf.mjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-BEhz0lRq.cjs → paste-7JC6S4DX-D7RAHCW2.cjs} +2 -2
- package/dist/{paste-7JC6S4DX-BEhz0lRq.cjs.map → paste-7JC6S4DX-D7RAHCW2.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-3mqDNxCJ.cjs → printf-TWGXF445-Csp_mOLP.cjs} +3 -3
- package/dist/{printf-TWGXF445-3mqDNxCJ.cjs.map → printf-TWGXF445-Csp_mOLP.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-DfDggg_6.mjs → printf-TWGXF445-Dudh8pNT.mjs} +3 -3
- package/dist/{printf-TWGXF445-DfDggg_6.mjs.map → printf-TWGXF445-Dudh8pNT.mjs.map} +1 -1
- package/dist/{project-draft-notifier--S1bLicx.cjs → project-draft-notifier-CHPg2j-8.cjs} +27 -3
- package/dist/project-draft-notifier-CHPg2j-8.cjs.map +1 -0
- package/dist/{project-draft-notifier-IV-0I5b0.mjs → project-draft-notifier-CQH0Sf3F.mjs} +22 -4
- package/dist/project-draft-notifier-CQH0Sf3F.mjs.map +1 -0
- package/dist/{python3-POMOR4OA-BGj_s-m5.mjs → python3-POMOR4OA-C0WwGQ_L.mjs} +3 -3
- package/dist/{python3-POMOR4OA-BGj_s-m5.mjs.map → python3-POMOR4OA-C0WwGQ_L.mjs.map} +1 -1
- package/dist/{python3-POMOR4OA-CaW-k-eL.cjs → python3-POMOR4OA-Ddnnochv.cjs} +3 -3
- package/dist/{python3-POMOR4OA-CaW-k-eL.cjs.map → python3-POMOR4OA-Ddnnochv.cjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-CZHBTnDG.cjs → rev-5EHFX4EJ-Cx0PQDxf.cjs} +2 -2
- package/dist/{rev-5EHFX4EJ-CZHBTnDG.cjs.map → rev-5EHFX4EJ-Cx0PQDxf.cjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-D-ibiLnI.mjs → rev-5EHFX4EJ-dloN_X22.mjs} +2 -2
- package/dist/{rev-5EHFX4EJ-D-ibiLnI.mjs.map → rev-5EHFX4EJ-dloN_X22.mjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-1F6ziRHS.cjs → rg-S4FXYXWB-CAAZ_PR4.cjs} +3 -3
- package/dist/{rg-S4FXYXWB-1F6ziRHS.cjs.map → rg-S4FXYXWB-CAAZ_PR4.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-CXP6pDbv.mjs → rg-S4FXYXWB-DrC9dN-a.mjs} +3 -3
- package/dist/{rg-S4FXYXWB-CXP6pDbv.mjs.map → rg-S4FXYXWB-DrC9dN-a.mjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-BwqC7bCC.mjs → rm-SSGETQVQ-CNINPiUO.mjs} +2 -2
- package/dist/{rm-SSGETQVQ-BwqC7bCC.mjs.map → rm-SSGETQVQ-CNINPiUO.mjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-BYKmY_-m.cjs → rm-SSGETQVQ-Dn9TZdkS.cjs} +2 -2
- package/dist/{rm-SSGETQVQ-BYKmY_-m.cjs.map → rm-SSGETQVQ-Dn9TZdkS.cjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-BBgw-6pC.mjs → rmdir-OC4ZLPYA-BD1zwTlp.mjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-BBgw-6pC.mjs.map → rmdir-OC4ZLPYA-BD1zwTlp.mjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-QB4_xifp.cjs → rmdir-OC4ZLPYA-iSpo59WD.cjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-QB4_xifp.cjs.map → rmdir-OC4ZLPYA-iSpo59WD.cjs.map} +1 -1
- package/dist/run.cjs +4 -4
- package/dist/run.mjs +4 -4
- package/dist/{sed-S5UIK574-xaCNGypJ.cjs → sed-S5UIK574-C-uwiHAm.cjs} +2 -2
- package/dist/{sed-S5UIK574-xaCNGypJ.cjs.map → sed-S5UIK574-C-uwiHAm.cjs.map} +1 -1
- package/dist/{sed-S5UIK574-7DhR58Zm.mjs → sed-S5UIK574-ClTc0m4q.mjs} +2 -2
- package/dist/{sed-S5UIK574-7DhR58Zm.mjs.map → sed-S5UIK574-ClTc0m4q.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-BtqrcbrP.mjs → sha1sum-2PTOAFR6-DbwstiDR.mjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-BtqrcbrP.mjs.map → sha1sum-2PTOAFR6-DbwstiDR.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-CQdaPMvB.cjs → sha1sum-2PTOAFR6-DuIpAtfC.cjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-CQdaPMvB.cjs.map → sha1sum-2PTOAFR6-DuIpAtfC.cjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-DbTBqoAx.mjs → sha256sum-NS7D3IXX-CVlsZZ--.mjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-DbTBqoAx.mjs.map → sha256sum-NS7D3IXX-CVlsZZ--.mjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-DIjHxjx4.cjs → sha256sum-NS7D3IXX-GnsJcrLW.cjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-DIjHxjx4.cjs.map → sha256sum-NS7D3IXX-GnsJcrLW.cjs.map} +1 -1
- package/dist/{sleep-X22JJINO-_OafNle4.mjs → sleep-X22JJINO-C-g2ZO6x.mjs} +2 -2
- package/dist/{sleep-X22JJINO-_OafNle4.mjs.map → sleep-X22JJINO-C-g2ZO6x.mjs.map} +1 -1
- package/dist/{sleep-X22JJINO-Ce3B98oS.cjs → sleep-X22JJINO-RqQk0qpz.cjs} +2 -2
- package/dist/{sleep-X22JJINO-Ce3B98oS.cjs.map → sleep-X22JJINO-RqQk0qpz.cjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-B7Ur1ZcG.mjs → sort-SW2YEO5B-BbhU_QUF.mjs} +3 -3
- package/dist/{sort-SW2YEO5B-B7Ur1ZcG.mjs.map → sort-SW2YEO5B-BbhU_QUF.mjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-Bp07z0aH.cjs → sort-SW2YEO5B-BkIlQlJ8.cjs} +3 -3
- package/dist/{sort-SW2YEO5B-Bp07z0aH.cjs.map → sort-SW2YEO5B-BkIlQlJ8.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-_ZWjc02C.cjs → split-4KKZZXXE-C8wRXZ0i.cjs} +2 -2
- package/dist/{split-4KKZZXXE-_ZWjc02C.cjs.map → split-4KKZZXXE-C8wRXZ0i.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-B59vZ2kd.mjs → split-4KKZZXXE-DjfU-C4m.mjs} +2 -2
- package/dist/{split-4KKZZXXE-B59vZ2kd.mjs.map → split-4KKZZXXE-DjfU-C4m.mjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-Cp1J6H5O.mjs → sqlite3-CGOEFJAO-BZCi739i.mjs} +3 -3
- package/dist/{sqlite3-CGOEFJAO-Cp1J6H5O.mjs.map → sqlite3-CGOEFJAO-BZCi739i.mjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-hpJXGgO0.cjs → sqlite3-CGOEFJAO-TN9M_MlF.cjs} +3 -3
- package/dist/{sqlite3-CGOEFJAO-hpJXGgO0.cjs.map → sqlite3-CGOEFJAO-TN9M_MlF.cjs.map} +1 -1
- package/dist/{start-BRUA3xO7.mjs → start-C8x6aRq5.mjs} +197 -174
- package/dist/start-C8x6aRq5.mjs.map +1 -0
- package/dist/{start-DZxJ9CMX.cjs → start-QsTFiRdr.cjs} +197 -174
- package/dist/start-QsTFiRdr.cjs.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-BuimP0UM.cjs → strings-6WDHLGMX-B-zIE1x8.cjs} +2 -2
- package/dist/{strings-6WDHLGMX-BuimP0UM.cjs.map → strings-6WDHLGMX-B-zIE1x8.cjs.map} +1 -1
- package/dist/{strings-6WDHLGMX-CDTBMSHy.mjs → strings-6WDHLGMX-n_UsURPm.mjs} +2 -2
- package/dist/{strings-6WDHLGMX-CDTBMSHy.mjs.map → strings-6WDHLGMX-n_UsURPm.mjs.map} +1 -1
- package/dist/{tac-2STMMJYW-DnowMt3c.cjs → tac-2STMMJYW-BHgj3IRa.cjs} +2 -2
- package/dist/{tac-2STMMJYW-DnowMt3c.cjs.map → tac-2STMMJYW-BHgj3IRa.cjs.map} +1 -1
- package/dist/{tac-2STMMJYW-Dpa06FoX.mjs → tac-2STMMJYW-D05zd67S.mjs} +2 -2
- package/dist/{tac-2STMMJYW-Dpa06FoX.mjs.map → tac-2STMMJYW-D05zd67S.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-sqhvIobF.mjs → tail-R4PCA2C4-D0aqeb75.mjs} +2 -2
- package/dist/{tail-R4PCA2C4-sqhvIobF.mjs.map → tail-R4PCA2C4-D0aqeb75.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-BD6ghi2P.cjs → tail-R4PCA2C4-DDSuegLd.cjs} +2 -2
- package/dist/{tail-R4PCA2C4-BD6ghi2P.cjs.map → tail-R4PCA2C4-DDSuegLd.cjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-Cq884xsD.mjs → tar-STHHZTZ6-CtQ_mq1W.mjs} +4 -4
- package/dist/{tar-STHHZTZ6-Cq884xsD.mjs.map → tar-STHHZTZ6-CtQ_mq1W.mjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-CAQ5fTe5.cjs → tar-STHHZTZ6-I8LVU8Q-.cjs} +5 -5
- package/dist/{tar-STHHZTZ6-CAQ5fTe5.cjs.map → tar-STHHZTZ6-I8LVU8Q-.cjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-bh9I2go-.mjs → tee-YUZ2FKCJ-BHNLPUXQ.mjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-bh9I2go-.mjs.map → tee-YUZ2FKCJ-BHNLPUXQ.mjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-D7cS6NNc.cjs → tee-YUZ2FKCJ-CTmzzgRO.cjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-D7cS6NNc.cjs.map → tee-YUZ2FKCJ-CTmzzgRO.cjs.map} +1 -1
- package/dist/{time-D4LNBSWX-B5D4gMkC.cjs → time-D4LNBSWX-B0Zi4F-7.cjs} +2 -2
- package/dist/{time-D4LNBSWX-B5D4gMkC.cjs.map → time-D4LNBSWX-B0Zi4F-7.cjs.map} +1 -1
- package/dist/{time-D4LNBSWX-B0IdVsm4.mjs → time-D4LNBSWX-DIaO5ubV.mjs} +2 -2
- package/dist/{time-D4LNBSWX-B0IdVsm4.mjs.map → time-D4LNBSWX-DIaO5ubV.mjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-Bz67A8ID.cjs → timeout-YDCRSLPQ-HEAIafpm.cjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-Bz67A8ID.cjs.map → timeout-YDCRSLPQ-HEAIafpm.cjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-DPGV7vUh.mjs → timeout-YDCRSLPQ-LmDEh1WO.mjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-DPGV7vUh.mjs.map → timeout-YDCRSLPQ-LmDEh1WO.mjs.map} +1 -1
- package/dist/{touch-UA33VN3N-BDy4Yo9Y.cjs → touch-UA33VN3N-Bwyf7DmM.cjs} +2 -2
- package/dist/{touch-UA33VN3N-BDy4Yo9Y.cjs.map → touch-UA33VN3N-Bwyf7DmM.cjs.map} +1 -1
- package/dist/{touch-UA33VN3N-Ct3SAQ08.mjs → touch-UA33VN3N-Y2h82VKj.mjs} +2 -2
- package/dist/{touch-UA33VN3N-Ct3SAQ08.mjs.map → touch-UA33VN3N-Y2h82VKj.mjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-BPZQPTDs.cjs → tr-36LHWFRQ-2cOvY9UY.cjs} +2 -2
- package/dist/{tr-36LHWFRQ-BPZQPTDs.cjs.map → tr-36LHWFRQ-2cOvY9UY.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-B1pLP8yk.mjs → tr-36LHWFRQ-D9BYyccN.mjs} +2 -2
- package/dist/{tr-36LHWFRQ-B1pLP8yk.mjs.map → tr-36LHWFRQ-D9BYyccN.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-DX7CLGzi.cjs → tree-YLD52CNT-C7eB6jtS.cjs} +2 -2
- package/dist/{tree-YLD52CNT-DX7CLGzi.cjs.map → tree-YLD52CNT-C7eB6jtS.cjs.map} +1 -1
- package/dist/{tree-YLD52CNT-CjGj9lct.mjs → tree-YLD52CNT-CtLvqcZk.mjs} +2 -2
- package/dist/{tree-YLD52CNT-CjGj9lct.mjs.map → tree-YLD52CNT-CtLvqcZk.mjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-B1kZoJRG.cjs → unexpand-CADSA4VO-3PrXj8K0.cjs} +2 -2
- package/dist/{unexpand-CADSA4VO-B1kZoJRG.cjs.map → unexpand-CADSA4VO-3PrXj8K0.cjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-D5ERZLjk.mjs → unexpand-CADSA4VO-XSgCS4GP.mjs} +2 -2
- package/dist/{unexpand-CADSA4VO-D5ERZLjk.mjs.map → unexpand-CADSA4VO-XSgCS4GP.mjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-BxieUBn1.cjs → uniq-XSIZR6PB-BBl2nMiI.cjs} +3 -3
- package/dist/{uniq-XSIZR6PB-BxieUBn1.cjs.map → uniq-XSIZR6PB-BBl2nMiI.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-gQz2sv1S.mjs → uniq-XSIZR6PB-pc7uEyzG.mjs} +3 -3
- package/dist/{uniq-XSIZR6PB-gQz2sv1S.mjs.map → uniq-XSIZR6PB-pc7uEyzG.mjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-BW89VNEV.cjs → wc-LF7NU4LA-BHtg8Aw1.cjs} +3 -3
- package/dist/{wc-LF7NU4LA-BW89VNEV.cjs.map → wc-LF7NU4LA-BHtg8Aw1.cjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-DV_QfkzW.mjs → wc-LF7NU4LA-C83IRbLC.mjs} +3 -3
- package/dist/{wc-LF7NU4LA-DV_QfkzW.mjs.map → wc-LF7NU4LA-C83IRbLC.mjs.map} +1 -1
- package/dist/{with-project-scope-DZ4FmBD0.cjs → with-project-scope-9ADPLP55.cjs} +2 -2
- package/dist/{with-project-scope-DZ4FmBD0.cjs.map → with-project-scope-9ADPLP55.cjs.map} +1 -1
- package/dist/{with-project-scope-M7_dsWGP.mjs → with-project-scope-BUcWJ6pf.mjs} +2 -2
- package/dist/{with-project-scope-M7_dsWGP.mjs.map → with-project-scope-BUcWJ6pf.mjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-DE4ViTiv.mjs → xan-Y6WF3IRG-i7dz8gaI.mjs} +6 -6
- package/dist/{xan-Y6WF3IRG-DE4ViTiv.mjs.map → xan-Y6WF3IRG-i7dz8gaI.mjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-COX-2Ei2.cjs → xan-Y6WF3IRG-kTcNmq6v.cjs} +6 -6
- package/dist/{xan-Y6WF3IRG-COX-2Ei2.cjs.map → xan-Y6WF3IRG-kTcNmq6v.cjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-Bl7QFGDz.cjs → xan-view-HDVKHFC2-BJmUxmfA.cjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-Bl7QFGDz.cjs.map → xan-view-HDVKHFC2-BJmUxmfA.cjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-Qzyw1L2R.mjs → xan-view-HDVKHFC2-CrNxy8pw.mjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-Qzyw1L2R.mjs.map → xan-view-HDVKHFC2-CrNxy8pw.mjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-DO-DX5DN.cjs → xargs-MGZPH7AX-DvRkmGVA.cjs} +2 -2
- package/dist/{xargs-MGZPH7AX-DO-DX5DN.cjs.map → xargs-MGZPH7AX-DvRkmGVA.cjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-Cfb2vS15.mjs → xargs-MGZPH7AX-fgNjljUp.mjs} +2 -2
- package/dist/{xargs-MGZPH7AX-Cfb2vS15.mjs.map → xargs-MGZPH7AX-fgNjljUp.mjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-Beapk7yc.mjs → yq-4QJW3EQG--WRizWHk.mjs} +3 -3
- package/dist/{yq-4QJW3EQG-Beapk7yc.mjs.map → yq-4QJW3EQG--WRizWHk.mjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-C509_4iC.cjs → yq-4QJW3EQG-Co8Ft2CX.cjs} +3 -3
- package/dist/{yq-4QJW3EQG-C509_4iC.cjs.map → yq-4QJW3EQG-Co8Ft2CX.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/config-DAIUglcc.mjs.map +0 -1
- package/dist/config-fUE8OVTA.cjs.map +0 -1
- package/dist/project-draft-notifier--S1bLicx.cjs.map +0 -1
- package/dist/project-draft-notifier-IV-0I5b0.mjs.map +0 -1
- package/dist/start-BRUA3xO7.mjs.map +0 -1
- package/dist/start-DZxJ9CMX.cjs.map +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-DAIUglcc.mjs","names":[],"sources":["../../../packages/hosting/dist/docker.mjs","../src/config.ts"],"sourcesContent":["import { a as formatDockerEnv, c as resolveRuntimeLaunch, h as resolveWorkerRuntimeConfig, t as waitForHealth } from \"./wait-for-health-CgCfteR7.mjs\";\nimport { mkdir } from \"node:fs/promises\";\n//#region src/docker/create-docker-runtime.ts\nconst MINIO_DOCKER_NETWORK = process.env.MINIO_DOCKER_NETWORK ?? \"keystroke\";\nasync function resolveDocker(options) {\n\tif (options.docker) return options.docker;\n\tconst { default: DockerCtor } = await import(\"dockerode\");\n\treturn new DockerCtor();\n}\nfunction createDockerRuntime(options = {}) {\n\treturn {\n\t\tasync start(input) {\n\t\t\tif (input.projects.length === 0) throw new Error(\"Docker org runtime requires at least one project deploy\");\n\t\t\tconst docker = await resolveDocker(options);\n\t\t\tlet launch = resolveRuntimeLaunch(options, input.projects.map((project) => ({\n\t\t\t\tprojectId: project.projectId,\n\t\t\t\tartifactStorageKey: project.artifactStorageKey,\n\t\t\t\tartifactId: project.artifactId,\n\t\t\t\tartifactVersion: project.artifactVersion\n\t\t\t})), input.database, input.env);\n\t\t\tif (options.workspacesMount) {\n\t\t\t\tconst { hostPath, containerPath } = options.workspacesMount;\n\t\t\t\tawait mkdir(hostPath, { recursive: true });\n\t\t\t\tlaunch = {\n\t\t\t\t\t...launch,\n\t\t\t\t\tenv: {\n\t\t\t\t\t\t...launch.env,\n\t\t\t\t\t\tKEYSTROKE_WORKSPACES_ROOT: containerPath\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\tawait ensureImage(docker, launch.image);\n\t\t\tawait removeExistingContainer(docker, input.organizationId);\n\t\t\tconst binds = [...options.workspacesMount ? [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] : [], ...options.extraBinds ?? []];\n\t\t\tconst container = await docker.createContainer({\n\t\t\t\tImage: launch.image,\n\t\t\t\tname: containerName(input.organizationId),\n\t\t\t\tLabels: {\n\t\t\t\t\t\"keystroke.organization.id\": input.organizationId,\n\t\t\t\t\t\"keystroke.project.ids\": input.projects.map((project) => project.projectId).join(\",\")\n\t\t\t\t},\n\t\t\t\tExposedPorts: { [`${launch.port}/tcp`]: {} },\n\t\t\t\tHostConfig: {\n\t\t\t\t\tExtraHosts: [\"host.docker.internal:host-gateway\"],\n\t\t\t\t\tPortBindings: { [`${launch.port}/tcp`]: [{ HostPort: \"0\" }] },\n\t\t\t\t\t...binds.length > 0 ? { Binds: binds } : {}\n\t\t\t\t},\n\t\t\t\tNetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },\n\t\t\t\tEnv: formatDockerEnv(launch.env)\n\t\t\t});\n\t\t\tawait container.start();\n\t\t\tconst inspect = await container.inspect();\n\t\t\tconst binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];\n\t\t\tif (!binding?.HostPort) throw new Error(\"Failed to resolve org container host port\");\n\t\t\tconst baseUrl = `http://127.0.0.1:${binding.HostPort}`;\n\t\t\tawait waitForHealth(baseUrl, {\n\t\t\t\tfetchImpl: options.fetchImpl,\n\t\t\t\ttimeoutMs: options.healthTimeoutMs\n\t\t\t});\n\t\t\treturn {\n\t\t\t\truntimeId: inspect.Id,\n\t\t\t\tbaseUrl\n\t\t\t};\n\t\t},\n\t\tasync destroy(input) {\n\t\t\ttry {\n\t\t\t\tawait (await resolveDocker(options)).getContainer(input.runtimeId).remove({ force: true });\n\t\t\t} catch {}\n\t\t},\n\t\tasync sleep(input) {\n\t\t\tconst container = (await resolveDocker(options)).getContainer(input.runtimeId);\n\t\t\tconst inspect = await container.inspect().catch(() => null);\n\t\t\tif (!inspect) return;\n\t\t\tif (inspect.State.Running) await container.stop({ t: 10 });\n\t\t},\n\t\tasync wake(input) {\n\t\t\tconst container = (await resolveDocker(options)).getContainer(input.runtimeId);\n\t\t\tif (!(await container.inspect()).State.Running) await container.start();\n\t\t\tconst refreshed = await container.inspect();\n\t\t\tconst ports = refreshed.NetworkSettings.Ports ?? {};\n\t\t\tconst binding = Object.values(ports).flat().find((entry) => entry?.HostPort)?.HostPort;\n\t\t\tif (!binding) throw new Error(`Failed to resolve host port for container ${input.runtimeId}`);\n\t\t\tconst baseUrl = `http://127.0.0.1:${binding}`;\n\t\t\tawait waitForHealth(baseUrl, {\n\t\t\t\tfetchImpl: options.fetchImpl,\n\t\t\t\ttimeoutMs: options.healthTimeoutMs\n\t\t\t});\n\t\t\treturn {\n\t\t\t\truntimeId: refreshed.Id,\n\t\t\t\tbaseUrl\n\t\t\t};\n\t\t}\n\t};\n}\nfunction containerName(organizationId) {\n\treturn `keystroke-org-${organizationId}`;\n}\nasync function removeExistingContainer(docker, organizationId) {\n\ttry {\n\t\tconst existing = docker.getContainer(containerName(organizationId));\n\t\tawait existing.stop({ t: 5 }).catch(() => void 0);\n\t\tawait existing.remove({ force: true });\n\t} catch {}\n}\nasync function ensureImage(docker, image) {\n\ttry {\n\t\tawait docker.getImage(image).inspect();\n\t\treturn;\n\t} catch {}\n\tawait new Promise((resolvePromise, reject) => {\n\t\tdocker.pull(image, (error, stream) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!stream) {\n\t\t\t\treject(/* @__PURE__ */ new Error(`Failed to pull image ${image}`));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdocker.modem.followProgress(stream, (progressError) => {\n\t\t\t\tif (progressError) {\n\t\t\t\t\treject(progressError);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolvePromise();\n\t\t\t});\n\t\t});\n\t});\n}\n//#endregion\n//#region src/docker/plugin.ts\nfunction dockerPlugin(options = {}) {\n\tconst env = options.env ?? process.env;\n\treturn {\n\t\tname: \"docker\",\n\t\tworkerRuntime: resolveWorkerRuntimeConfig(env),\n\t\tcreateRuntime: () => createDockerRuntime({\n\t\t\t...options,\n\t\t\tenv\n\t\t})\n\t};\n}\n//#endregion\n//#region src/default-plugin.ts\n/** Local Docker hosting — default for platform and dev. */\nfunction defaultHostingPlugin(options = {}) {\n\treturn dockerPlugin(options);\n}\n//#endregion\nexport { defaultHostingPlugin, dockerPlugin };\n\n//# sourceMappingURL=docker.mjs.map","import type { HostingPlugin } from \"@keystrokehq/hosting\";\nimport { defaultHostingPlugin } from \"@keystrokehq/hosting/docker\";\nimport {\n defaultSchedulerPlugin,\n type JobPayload,\n type SchedulerPlugin,\n} from \"@keystrokehq/scheduler\";\nimport { minioStoragePlugin, type StoragePlugin } from \"@keystrokehq/storage\";\nimport type { ProjectGitProviderPlugin } from \"@keystrokehq/project-git\";\n\nimport type { OrgRateLimit } from \"@keystrokehq/shared\";\n\nimport type { LlmProxyPlugin } from \"./llm-proxy-plugin\";\nimport type { McpProviderPlugin } from \"@keystrokehq/http\";\nimport {\n createInProcessProjectDraftNotifier,\n type ProjectDraftNotifier,\n} from \"./services/project-draft-notifier\";\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 { ProjectGitProviderPlugin } from \"@keystrokehq/project-git\";\n\nexport type { ProjectDraftNotifier } from \"./services/project-draft-notifier\";\nexport {\n createInProcessProjectDraftNotifier,\n publishDraftUpdateBestEffort,\n} from \"./services/project-draft-notifier\";\n\n/**\n * Run-scoped disposable Sprite draft command runner. Cloud injects an\n * implementation backed by `@keystroke-cloud/sprites`; OSS omits it.\n * MCP and platform-agent call this later — public platform never imports cloud.\n */\nexport type DraftCommandRunnerPlugin = {\n run(input: {\n remote: { url: string; username: string; password: string };\n commitSha: string;\n command: string;\n /**\n * Optional working directory relative to the disposable checkout root.\n * Traversal outside the checkout is rejected by the runner.\n */\n cwd?: string;\n /**\n * Extra env for the caller command only (after credentials are stripped).\n * Must not be used to restore Git remotes or askpass secrets — the runner\n * always clears credential channels around the command.\n */\n env?: Record<string, string>;\n timeoutMs?: number;\n maxOutputBytes?: number;\n signal?: AbortSignal;\n spriteName?: string;\n commitDiff?: (diff: Uint8Array) => Promise<{ commitSha: string }>;\n }): Promise<{\n spriteName: string;\n exitCode: number;\n output: string;\n truncated: boolean;\n diff: Uint8Array;\n commitSha?: string;\n }>;\n};\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 /**\n * Managed project Git provider. Omit for standalone/local mode without Keystroke-managed repos.\n */\n projectGit?: ProjectGitProviderPlugin;\n /**\n * Disposable Sprite draft command runner. Omit when Sprites are unavailable\n * (OSS / local without `SPRITES_TOKEN`).\n */\n draftCommandRunner?: DraftCommandRunnerPlugin;\n /**\n * Transient draft tip fan-out for SSE. Defaults to an in-process notifier\n * (OSS / single replica). Cloud injects a Redis-backed implementation when\n * Redis is available so multi-replica platforms share updates.\n */\n draftNotifier?: ProjectDraftNotifier;\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 * Handler for `image-rollout` jobs on the platform queue (cloud Fly fleet).\n * Unset (standalone default) means such jobs are ignored.\n */\n imageRolloutJobHandler?: (payload: JobPayload) => Promise<void>;\n /**\n * Cloud-only platform-agent (Build tab) plugin: mounts organization routes and\n * handles `platform-agent` jobs on the shared platform queue.\n */\n platformAgent?: {\n mountOrgRoutes: (\n orgScoped: import(\"hono\").Hono<{\n Variables: import(\"@keystrokehq/http/auth\").OrganizationVariables;\n }>,\n ) => void;\n handleJob: (payload: JobPayload) => Promise<void>;\n onCancel?: (runId: string) => void;\n };\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 draftNotifier: config.draftNotifier ?? createInProcessProjectDraftNotifier(),\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-fUE8OVTA.cjs","names":["resolveRuntimeLaunch","formatDockerEnv","waitForHealth","resolveWorkerRuntimeConfig","minioStoragePlugin","defaultSchedulerPlugin","createInProcessProjectDraftNotifier"],"sources":["../../../packages/hosting/dist/docker.mjs","../src/config.ts"],"sourcesContent":["import { a as formatDockerEnv, c as resolveRuntimeLaunch, h as resolveWorkerRuntimeConfig, t as waitForHealth } from \"./wait-for-health-CgCfteR7.mjs\";\nimport { mkdir } from \"node:fs/promises\";\n//#region src/docker/create-docker-runtime.ts\nconst MINIO_DOCKER_NETWORK = process.env.MINIO_DOCKER_NETWORK ?? \"keystroke\";\nasync function resolveDocker(options) {\n\tif (options.docker) return options.docker;\n\tconst { default: DockerCtor } = await import(\"dockerode\");\n\treturn new DockerCtor();\n}\nfunction createDockerRuntime(options = {}) {\n\treturn {\n\t\tasync start(input) {\n\t\t\tif (input.projects.length === 0) throw new Error(\"Docker org runtime requires at least one project deploy\");\n\t\t\tconst docker = await resolveDocker(options);\n\t\t\tlet launch = resolveRuntimeLaunch(options, input.projects.map((project) => ({\n\t\t\t\tprojectId: project.projectId,\n\t\t\t\tartifactStorageKey: project.artifactStorageKey,\n\t\t\t\tartifactId: project.artifactId,\n\t\t\t\tartifactVersion: project.artifactVersion\n\t\t\t})), input.database, input.env);\n\t\t\tif (options.workspacesMount) {\n\t\t\t\tconst { hostPath, containerPath } = options.workspacesMount;\n\t\t\t\tawait mkdir(hostPath, { recursive: true });\n\t\t\t\tlaunch = {\n\t\t\t\t\t...launch,\n\t\t\t\t\tenv: {\n\t\t\t\t\t\t...launch.env,\n\t\t\t\t\t\tKEYSTROKE_WORKSPACES_ROOT: containerPath\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t\tawait ensureImage(docker, launch.image);\n\t\t\tawait removeExistingContainer(docker, input.organizationId);\n\t\t\tconst binds = [...options.workspacesMount ? [`${options.workspacesMount.hostPath}:${options.workspacesMount.containerPath}`] : [], ...options.extraBinds ?? []];\n\t\t\tconst container = await docker.createContainer({\n\t\t\t\tImage: launch.image,\n\t\t\t\tname: containerName(input.organizationId),\n\t\t\t\tLabels: {\n\t\t\t\t\t\"keystroke.organization.id\": input.organizationId,\n\t\t\t\t\t\"keystroke.project.ids\": input.projects.map((project) => project.projectId).join(\",\")\n\t\t\t\t},\n\t\t\t\tExposedPorts: { [`${launch.port}/tcp`]: {} },\n\t\t\t\tHostConfig: {\n\t\t\t\t\tExtraHosts: [\"host.docker.internal:host-gateway\"],\n\t\t\t\t\tPortBindings: { [`${launch.port}/tcp`]: [{ HostPort: \"0\" }] },\n\t\t\t\t\t...binds.length > 0 ? { Binds: binds } : {}\n\t\t\t\t},\n\t\t\t\tNetworkingConfig: { EndpointsConfig: { [MINIO_DOCKER_NETWORK]: {} } },\n\t\t\t\tEnv: formatDockerEnv(launch.env)\n\t\t\t});\n\t\t\tawait container.start();\n\t\t\tconst inspect = await container.inspect();\n\t\t\tconst binding = inspect.NetworkSettings.Ports?.[`${launch.port}/tcp`]?.[0];\n\t\t\tif (!binding?.HostPort) throw new Error(\"Failed to resolve org container host port\");\n\t\t\tconst baseUrl = `http://127.0.0.1:${binding.HostPort}`;\n\t\t\tawait waitForHealth(baseUrl, {\n\t\t\t\tfetchImpl: options.fetchImpl,\n\t\t\t\ttimeoutMs: options.healthTimeoutMs\n\t\t\t});\n\t\t\treturn {\n\t\t\t\truntimeId: inspect.Id,\n\t\t\t\tbaseUrl\n\t\t\t};\n\t\t},\n\t\tasync destroy(input) {\n\t\t\ttry {\n\t\t\t\tawait (await resolveDocker(options)).getContainer(input.runtimeId).remove({ force: true });\n\t\t\t} catch {}\n\t\t},\n\t\tasync sleep(input) {\n\t\t\tconst container = (await resolveDocker(options)).getContainer(input.runtimeId);\n\t\t\tconst inspect = await container.inspect().catch(() => null);\n\t\t\tif (!inspect) return;\n\t\t\tif (inspect.State.Running) await container.stop({ t: 10 });\n\t\t},\n\t\tasync wake(input) {\n\t\t\tconst container = (await resolveDocker(options)).getContainer(input.runtimeId);\n\t\t\tif (!(await container.inspect()).State.Running) await container.start();\n\t\t\tconst refreshed = await container.inspect();\n\t\t\tconst ports = refreshed.NetworkSettings.Ports ?? {};\n\t\t\tconst binding = Object.values(ports).flat().find((entry) => entry?.HostPort)?.HostPort;\n\t\t\tif (!binding) throw new Error(`Failed to resolve host port for container ${input.runtimeId}`);\n\t\t\tconst baseUrl = `http://127.0.0.1:${binding}`;\n\t\t\tawait waitForHealth(baseUrl, {\n\t\t\t\tfetchImpl: options.fetchImpl,\n\t\t\t\ttimeoutMs: options.healthTimeoutMs\n\t\t\t});\n\t\t\treturn {\n\t\t\t\truntimeId: refreshed.Id,\n\t\t\t\tbaseUrl\n\t\t\t};\n\t\t}\n\t};\n}\nfunction containerName(organizationId) {\n\treturn `keystroke-org-${organizationId}`;\n}\nasync function removeExistingContainer(docker, organizationId) {\n\ttry {\n\t\tconst existing = docker.getContainer(containerName(organizationId));\n\t\tawait existing.stop({ t: 5 }).catch(() => void 0);\n\t\tawait existing.remove({ force: true });\n\t} catch {}\n}\nasync function ensureImage(docker, image) {\n\ttry {\n\t\tawait docker.getImage(image).inspect();\n\t\treturn;\n\t} catch {}\n\tawait new Promise((resolvePromise, reject) => {\n\t\tdocker.pull(image, (error, stream) => {\n\t\t\tif (error) {\n\t\t\t\treject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!stream) {\n\t\t\t\treject(/* @__PURE__ */ new Error(`Failed to pull image ${image}`));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdocker.modem.followProgress(stream, (progressError) => {\n\t\t\t\tif (progressError) {\n\t\t\t\t\treject(progressError);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresolvePromise();\n\t\t\t});\n\t\t});\n\t});\n}\n//#endregion\n//#region src/docker/plugin.ts\nfunction dockerPlugin(options = {}) {\n\tconst env = options.env ?? process.env;\n\treturn {\n\t\tname: \"docker\",\n\t\tworkerRuntime: resolveWorkerRuntimeConfig(env),\n\t\tcreateRuntime: () => createDockerRuntime({\n\t\t\t...options,\n\t\t\tenv\n\t\t})\n\t};\n}\n//#endregion\n//#region src/default-plugin.ts\n/** Local Docker hosting — default for platform and dev. */\nfunction defaultHostingPlugin(options = {}) {\n\treturn dockerPlugin(options);\n}\n//#endregion\nexport { defaultHostingPlugin, dockerPlugin };\n\n//# sourceMappingURL=docker.mjs.map","import type { HostingPlugin } from \"@keystrokehq/hosting\";\nimport { defaultHostingPlugin } from \"@keystrokehq/hosting/docker\";\nimport {\n defaultSchedulerPlugin,\n type JobPayload,\n type SchedulerPlugin,\n} from \"@keystrokehq/scheduler\";\nimport { minioStoragePlugin, type StoragePlugin } from \"@keystrokehq/storage\";\nimport type { ProjectGitProviderPlugin } from \"@keystrokehq/project-git\";\n\nimport type { OrgRateLimit } from \"@keystrokehq/shared\";\n\nimport type { LlmProxyPlugin } from \"./llm-proxy-plugin\";\nimport type { McpProviderPlugin } from \"@keystrokehq/http\";\nimport {\n createInProcessProjectDraftNotifier,\n type ProjectDraftNotifier,\n} from \"./services/project-draft-notifier\";\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 { ProjectGitProviderPlugin } from \"@keystrokehq/project-git\";\n\nexport type { ProjectDraftNotifier } from \"./services/project-draft-notifier\";\nexport {\n createInProcessProjectDraftNotifier,\n publishDraftUpdateBestEffort,\n} from \"./services/project-draft-notifier\";\n\n/**\n * Run-scoped disposable Sprite draft command runner. Cloud injects an\n * implementation backed by `@keystroke-cloud/sprites`; OSS omits it.\n * MCP and platform-agent call this later — public platform never imports cloud.\n */\nexport type DraftCommandRunnerPlugin = {\n run(input: {\n remote: { url: string; username: string; password: string };\n commitSha: string;\n command: string;\n /**\n * Optional working directory relative to the disposable checkout root.\n * Traversal outside the checkout is rejected by the runner.\n */\n cwd?: string;\n /**\n * Extra env for the caller command only (after credentials are stripped).\n * Must not be used to restore Git remotes or askpass secrets — the runner\n * always clears credential channels around the command.\n */\n env?: Record<string, string>;\n timeoutMs?: number;\n maxOutputBytes?: number;\n signal?: AbortSignal;\n spriteName?: string;\n commitDiff?: (diff: Uint8Array) => Promise<{ commitSha: string }>;\n }): Promise<{\n spriteName: string;\n exitCode: number;\n output: string;\n truncated: boolean;\n diff: Uint8Array;\n commitSha?: string;\n }>;\n};\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 /**\n * Managed project Git provider. Omit for standalone/local mode without Keystroke-managed repos.\n */\n projectGit?: ProjectGitProviderPlugin;\n /**\n * Disposable Sprite draft command runner. Omit when Sprites are unavailable\n * (OSS / local without `SPRITES_TOKEN`).\n */\n draftCommandRunner?: DraftCommandRunnerPlugin;\n /**\n * Transient draft tip fan-out for SSE. Defaults to an in-process notifier\n * (OSS / single replica). Cloud injects a Redis-backed implementation when\n * Redis is available so multi-replica platforms share updates.\n */\n draftNotifier?: ProjectDraftNotifier;\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 * Handler for `image-rollout` jobs on the platform queue (cloud Fly fleet).\n * Unset (standalone default) means such jobs are ignored.\n */\n imageRolloutJobHandler?: (payload: JobPayload) => Promise<void>;\n /**\n * Cloud-only platform-agent (Build tab) plugin: mounts organization routes and\n * handles `platform-agent` jobs on the shared platform queue.\n */\n platformAgent?: {\n mountOrgRoutes: (\n orgScoped: import(\"hono\").Hono<{\n Variables: import(\"@keystrokehq/http/auth\").OrganizationVariables;\n }>,\n ) => void;\n handleJob: (payload: JobPayload) => Promise<void>;\n onCancel?: (runId: string) => void;\n };\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 draftNotifier: config.draftNotifier ?? createInProcessProjectDraftNotifier(),\n };\n}\n"],"mappings":"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"}
|