@keystrokehq/platform 0.1.25 → 0.1.26
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-6nTiL1Fx.cjs → awk2-LA3USKJP-DWN5gyAn.cjs} +2 -2
- package/dist/{awk2-LA3USKJP-6nTiL1Fx.cjs.map → awk2-LA3USKJP-DWN5gyAn.cjs.map} +1 -1
- package/dist/{awk2-LA3USKJP-DsFCxrAn.mjs → awk2-LA3USKJP-DeBBkGI5.mjs} +2 -2
- package/dist/{awk2-LA3USKJP-DsFCxrAn.mjs.map → awk2-LA3USKJP-DeBBkGI5.mjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-Jli-NZKT.cjs → base64-C2AIWVNC-Dp8sCZAt.cjs} +2 -2
- package/dist/{base64-C2AIWVNC-Jli-NZKT.cjs.map → base64-C2AIWVNC-Dp8sCZAt.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-BTfHxe6x.mjs → base64-C2AIWVNC-JuDjFqOp.mjs} +2 -2
- package/dist/{base64-C2AIWVNC-BTfHxe6x.mjs.map → base64-C2AIWVNC-JuDjFqOp.mjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-Cl3zWejT.cjs → bash-YZ33HQZQ-DVA0EDj-.cjs} +2 -2
- package/dist/{bash-YZ33HQZQ-Cl3zWejT.cjs.map → bash-YZ33HQZQ-DVA0EDj-.cjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-BvR1blQy.mjs → bash-YZ33HQZQ-rOVeZOAg.mjs} +2 -2
- package/dist/{bash-YZ33HQZQ-BvR1blQy.mjs.map → bash-YZ33HQZQ-rOVeZOAg.mjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-p5WuEnly.cjs → cat-TSFMZVYS-COvFG8Nb.cjs} +3 -3
- package/dist/{cat-TSFMZVYS-p5WuEnly.cjs.map → cat-TSFMZVYS-COvFG8Nb.cjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-BR3SDCDa.mjs → cat-TSFMZVYS-CXlrdMsd.mjs} +3 -3
- package/dist/{cat-TSFMZVYS-BR3SDCDa.mjs.map → cat-TSFMZVYS-CXlrdMsd.mjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-DnLsyMd1.cjs → chunk-5H5SCKJM-CHHdX4ki.cjs} +2 -2
- package/dist/{chunk-5H5SCKJM-DnLsyMd1.cjs.map → chunk-5H5SCKJM-CHHdX4ki.cjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-CPKgF86S.mjs → chunk-5H5SCKJM-Dkx3HLwU.mjs} +2 -2
- package/dist/{chunk-5H5SCKJM-CPKgF86S.mjs.map → chunk-5H5SCKJM-Dkx3HLwU.mjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-Dj95F41M.cjs → chunk-AQ6FYS2X-BypvbWc4.cjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-Dj95F41M.cjs.map → chunk-AQ6FYS2X-BypvbWc4.cjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-CUa1A4Pd.mjs → chunk-AQ6FYS2X-C_yeVyzo.mjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-CUa1A4Pd.mjs.map → chunk-AQ6FYS2X-C_yeVyzo.mjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-Crh-KqiZ.cjs → chunk-CHFEPBH4-B713gemY.cjs} +2 -2
- package/dist/{chunk-CHFEPBH4-Crh-KqiZ.cjs.map → chunk-CHFEPBH4-B713gemY.cjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-CnDOsQ68.mjs → chunk-CHFEPBH4-BN_FjUum.mjs} +2 -2
- package/dist/{chunk-CHFEPBH4-CnDOsQ68.mjs.map → chunk-CHFEPBH4-BN_FjUum.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-C3Qo8RVI.cjs → chunk-EBAPSGAO-C5khy_yB.cjs} +2 -2
- package/dist/{chunk-EBAPSGAO-C3Qo8RVI.cjs.map → chunk-EBAPSGAO-C5khy_yB.cjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-B60xzKy-.mjs → chunk-EBAPSGAO-CWkUWuMF.mjs} +2 -2
- package/dist/{chunk-EBAPSGAO-B60xzKy-.mjs.map → chunk-EBAPSGAO-CWkUWuMF.mjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-CzSjgGrS.mjs → chunk-LEKBROJD-DGOBGAWj.mjs} +2 -2
- package/dist/{chunk-LEKBROJD-CzSjgGrS.mjs.map → chunk-LEKBROJD-DGOBGAWj.mjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-CQrKRfn9.cjs → chunk-LEKBROJD-n0FRgkoB.cjs} +2 -2
- package/dist/{chunk-LEKBROJD-CQrKRfn9.cjs.map → chunk-LEKBROJD-n0FRgkoB.cjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-BlYPREz9.cjs → chunk-VPADYNBD-B4yWrLcA.cjs} +2 -2
- package/dist/{chunk-VPADYNBD-BlYPREz9.cjs.map → chunk-VPADYNBD-B4yWrLcA.cjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-Bu1xj_qj.mjs → chunk-VPADYNBD-Dg8PNXJd.mjs} +2 -2
- package/dist/{chunk-VPADYNBD-Bu1xj_qj.mjs.map → chunk-VPADYNBD-Dg8PNXJd.mjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-CmE-atJH.cjs → chunk-YCLFEX4T-Bnzy1Euf.cjs} +2 -2
- package/dist/{chunk-YCLFEX4T-CmE-atJH.cjs.map → chunk-YCLFEX4T-Bnzy1Euf.cjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-BMs3IOYN.mjs → chunk-YCLFEX4T-DU6t56E4.mjs} +2 -2
- package/dist/{chunk-YCLFEX4T-BMs3IOYN.mjs.map → chunk-YCLFEX4T-DU6t56E4.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-CKCd9cj4.mjs → column-XT6UFXNQ-5YutVL6D.mjs} +2 -2
- package/dist/{column-XT6UFXNQ-CKCd9cj4.mjs.map → column-XT6UFXNQ-5YutVL6D.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-C-MvTg4x.cjs → column-XT6UFXNQ-Dy7Oa0td.cjs} +2 -2
- package/dist/{column-XT6UFXNQ-C-MvTg4x.cjs.map → column-XT6UFXNQ-Dy7Oa0td.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-DIsxSu6X.cjs → comm-VV2LDX2J-CAqAa0VH.cjs} +2 -2
- package/dist/{comm-VV2LDX2J-DIsxSu6X.cjs.map → comm-VV2LDX2J-CAqAa0VH.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-Cxkv2cbu.mjs → comm-VV2LDX2J-NATbHp7x.mjs} +2 -2
- package/dist/{comm-VV2LDX2J-Cxkv2cbu.mjs.map → comm-VV2LDX2J-NATbHp7x.mjs.map} +1 -1
- package/dist/{config-4tlyrD1h.d.mts → config-Bf_tiPRV.d.mts} +3 -3
- package/dist/{config-DCMtEjGV.d.cts → config-DiHYzgnA.d.cts} +3 -3
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +1 -1
- package/dist/{cp-BISAAS7A-RoHZxKSQ.cjs → cp-BISAAS7A-CsllNNA2.cjs} +2 -2
- package/dist/{cp-BISAAS7A-RoHZxKSQ.cjs.map → cp-BISAAS7A-CsllNNA2.cjs.map} +1 -1
- package/dist/{cp-BISAAS7A-CpbLLWK0.mjs → cp-BISAAS7A-ptJev1Ed.mjs} +2 -2
- package/dist/{cp-BISAAS7A-CpbLLWK0.mjs.map → cp-BISAAS7A-ptJev1Ed.mjs.map} +1 -1
- package/dist/{cut-OKARJCCV-DV8QkVm0.cjs → cut-OKARJCCV-C3IgdttS.cjs} +3 -3
- package/dist/{cut-OKARJCCV-DV8QkVm0.cjs.map → cut-OKARJCCV-C3IgdttS.cjs.map} +1 -1
- package/dist/{cut-OKARJCCV-Co1hDP2h.mjs → cut-OKARJCCV-CAXXP7Q-.mjs} +3 -3
- package/dist/{cut-OKARJCCV-Co1hDP2h.mjs.map → cut-OKARJCCV-CAXXP7Q-.mjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-CeQncm_4.cjs → diff-MWJFIG7X-BN4jYNC5.cjs} +2 -2
- package/dist/{diff-MWJFIG7X-CeQncm_4.cjs.map → diff-MWJFIG7X-BN4jYNC5.cjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-Buur00F5.mjs → diff-MWJFIG7X-CvZCw_Zo.mjs} +2 -2
- package/dist/{diff-MWJFIG7X-Buur00F5.mjs.map → diff-MWJFIG7X-CvZCw_Zo.mjs.map} +1 -1
- package/dist/{dist-BGnpuTuc.cjs → dist-BSIIH4ft.cjs} +1431 -244
- package/dist/dist-BSIIH4ft.cjs.map +1 -0
- package/dist/{dist-DEUmH1sy.mjs → dist-Dfoa0fsU.mjs} +1361 -246
- package/dist/dist-Dfoa0fsU.mjs.map +1 -0
- package/dist/{du-572XNP42-CjV9eojc.cjs → du-572XNP42-DlYoI7xK.cjs} +2 -2
- package/dist/{du-572XNP42-CjV9eojc.cjs.map → du-572XNP42-DlYoI7xK.cjs.map} +1 -1
- package/dist/{du-572XNP42-BN--uF4D.mjs → du-572XNP42-dXgrmb6w.mjs} +2 -2
- package/dist/{du-572XNP42-BN--uF4D.mjs.map → du-572XNP42-dXgrmb6w.mjs.map} +1 -1
- package/dist/{env-36M5BO7M-DAa5KfBX.cjs → env-36M5BO7M-CiUSJDkN.cjs} +2 -2
- package/dist/{env-36M5BO7M-DAa5KfBX.cjs.map → env-36M5BO7M-CiUSJDkN.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-D69jRYN4.mjs → env-36M5BO7M-D_IGqT9p.mjs} +2 -2
- package/dist/{env-36M5BO7M-D69jRYN4.mjs.map → env-36M5BO7M-D_IGqT9p.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-COLerElO.mjs → expand-JSPG6VOP-CyEF3l9T.mjs} +2 -2
- package/dist/{expand-JSPG6VOP-COLerElO.mjs.map → expand-JSPG6VOP-CyEF3l9T.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-C6vKMQyI.cjs → expand-JSPG6VOP-DI9tAEq8.cjs} +2 -2
- package/dist/{expand-JSPG6VOP-C6vKMQyI.cjs.map → expand-JSPG6VOP-DI9tAEq8.cjs.map} +1 -1
- package/dist/{expr-5JAACS4X-Bq-liRWE.mjs → expr-5JAACS4X-BjSLGpzH.mjs} +2 -2
- package/dist/{expr-5JAACS4X-Bq-liRWE.mjs.map → expr-5JAACS4X-BjSLGpzH.mjs.map} +1 -1
- package/dist/{expr-5JAACS4X-DwNhN5_2.cjs → expr-5JAACS4X-BtODvrh-.cjs} +2 -2
- package/dist/{expr-5JAACS4X-DwNhN5_2.cjs.map → expr-5JAACS4X-BtODvrh-.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-CZJwhn7l.mjs → find-INTH3OLC-BcssH53Z.mjs} +3 -3
- package/dist/{find-INTH3OLC-CZJwhn7l.mjs.map → find-INTH3OLC-BcssH53Z.mjs.map} +1 -1
- package/dist/{find-INTH3OLC-CUamPw7X.cjs → find-INTH3OLC-CgU4UvVu.cjs} +3 -3
- package/dist/{find-INTH3OLC-CUamPw7X.cjs.map → find-INTH3OLC-CgU4UvVu.cjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-Cu6mhoq6.cjs → fold-4TQNYMSW-C-vHdcsu.cjs} +2 -2
- package/dist/{fold-4TQNYMSW-Cu6mhoq6.cjs.map → fold-4TQNYMSW-C-vHdcsu.cjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-GT1iyvMw.mjs → fold-4TQNYMSW-W2QBLbOw.mjs} +2 -2
- package/dist/{fold-4TQNYMSW-GT1iyvMw.mjs.map → fold-4TQNYMSW-W2QBLbOw.mjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-D2lsL0yl.cjs → grep-V3LQVMRQ-CFEy1H5w.cjs} +4 -4
- package/dist/{grep-V3LQVMRQ-D2lsL0yl.cjs.map → grep-V3LQVMRQ-CFEy1H5w.cjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-BZCEkiLT.mjs → grep-V3LQVMRQ-D2erCIt8.mjs} +4 -4
- package/dist/{grep-V3LQVMRQ-BZCEkiLT.mjs.map → grep-V3LQVMRQ-D2erCIt8.mjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-4WU25K8t.cjs → gzip-O5ASJAFY-BFMYd-hT.cjs} +2 -2
- package/dist/{gzip-O5ASJAFY-4WU25K8t.cjs.map → gzip-O5ASJAFY-BFMYd-hT.cjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-BRUoPm0T.mjs → gzip-O5ASJAFY-CqxUEEM2.mjs} +2 -2
- package/dist/{gzip-O5ASJAFY-BRUoPm0T.mjs.map → gzip-O5ASJAFY-CqxUEEM2.mjs.map} +1 -1
- package/dist/{head-442HYESI-BQswaDJF.mjs → head-442HYESI-BUT7-OAn.mjs} +2 -2
- package/dist/{head-442HYESI-BQswaDJF.mjs.map → head-442HYESI-BUT7-OAn.mjs.map} +1 -1
- package/dist/{head-442HYESI-CREwdwGh.cjs → head-442HYESI-Dl61xdxd.cjs} +2 -2
- package/dist/{head-442HYESI-CREwdwGh.cjs.map → head-442HYESI-Dl61xdxd.cjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-CyQGg7tY.mjs → help-HZ6M2CKN-BNhOdIlA.mjs} +2 -2
- package/dist/{help-HZ6M2CKN-CyQGg7tY.mjs.map → help-HZ6M2CKN-BNhOdIlA.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-Dm1xJuah.cjs → help-HZ6M2CKN-D58VQaUX.cjs} +2 -2
- package/dist/{help-HZ6M2CKN-Dm1xJuah.cjs.map → help-HZ6M2CKN-D58VQaUX.cjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-kxS6FqAo.cjs → html-to-markdown-JW4MSQZO-Cy2yEvwt.cjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-kxS6FqAo.cjs.map → html-to-markdown-JW4MSQZO-Cy2yEvwt.cjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-bFXHY2YJ.mjs → html-to-markdown-JW4MSQZO-D77ZtAkg.mjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-bFXHY2YJ.mjs.map → html-to-markdown-JW4MSQZO-D77ZtAkg.mjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-D4bq1eah.cjs → join-TBRGI3LQ-CGvygkdd.cjs} +2 -2
- package/dist/{join-TBRGI3LQ-D4bq1eah.cjs.map → join-TBRGI3LQ-CGvygkdd.cjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-mMKbGeyt.mjs → join-TBRGI3LQ-DX7NMuzt.mjs} +2 -2
- package/dist/{join-TBRGI3LQ-mMKbGeyt.mjs.map → join-TBRGI3LQ-DX7NMuzt.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-BtVEt-iG.mjs → jq-4XLYLOS5-C58Dd7RS.mjs} +4 -4
- package/dist/{jq-4XLYLOS5-BtVEt-iG.mjs.map → jq-4XLYLOS5-C58Dd7RS.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-1kPGLNfP.cjs → jq-4XLYLOS5-CcpoXWem.cjs} +4 -4
- package/dist/{jq-4XLYLOS5-1kPGLNfP.cjs.map → jq-4XLYLOS5-CcpoXWem.cjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-BiJgLg8R.cjs → js-exec-N5KEZBH7-BfVFKq8I.cjs} +4 -4
- package/dist/{js-exec-N5KEZBH7-BiJgLg8R.cjs.map → js-exec-N5KEZBH7-BfVFKq8I.cjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-yV-xrF3D.mjs → js-exec-N5KEZBH7-PxuNBAca.mjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-yV-xrF3D.mjs.map → js-exec-N5KEZBH7-PxuNBAca.mjs.map} +1 -1
- package/dist/{lib-B8KKXVFM.mjs → lib-C3b113o2.mjs} +2 -2
- package/dist/{lib-B8KKXVFM.mjs.map → lib-C3b113o2.mjs.map} +1 -1
- package/dist/{lib-2PzUfcog.cjs → lib-CB6hGKB-.cjs} +2 -2
- package/dist/{lib-2PzUfcog.cjs.map → lib-CB6hGKB-.cjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-Dn6vKThL.mjs → ln-4LGSXXGD-C8uxwN4w.mjs} +2 -2
- package/dist/{ln-4LGSXXGD-Dn6vKThL.mjs.map → ln-4LGSXXGD-C8uxwN4w.mjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-BzwowxRB.cjs → ln-4LGSXXGD-D1ZvU7qg.cjs} +2 -2
- package/dist/{ln-4LGSXXGD-BzwowxRB.cjs.map → ln-4LGSXXGD-D1ZvU7qg.cjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-CUJkuUh-.cjs → ls-ZJGQER7M-BIFh_LBI.cjs} +2 -2
- package/dist/{ls-ZJGQER7M-CUJkuUh-.cjs.map → ls-ZJGQER7M-BIFh_LBI.cjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-BeJZta9T.mjs → ls-ZJGQER7M-VlE8NU2n.mjs} +2 -2
- package/dist/{ls-ZJGQER7M-BeJZta9T.mjs.map → ls-ZJGQER7M-VlE8NU2n.mjs.map} +1 -1
- package/dist/{lzma--dxpHlNq.cjs → lzma-BFhxhjwM.cjs} +3 -3
- package/dist/{lzma--dxpHlNq.cjs.map → lzma-BFhxhjwM.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-CSOni4rN.mjs → md5sum-SPU24VSG-D9FkR68Z.mjs} +3 -3
- package/dist/{md5sum-SPU24VSG-CSOni4rN.mjs.map → md5sum-SPU24VSG-D9FkR68Z.mjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-CbRWoiQV.cjs → md5sum-SPU24VSG-DeBwcDpn.cjs} +3 -3
- package/dist/{md5sum-SPU24VSG-CbRWoiQV.cjs.map → md5sum-SPU24VSG-DeBwcDpn.cjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-DQZ1k-4g.cjs → mkdir-MEPGZOB6-CTaJw5WD.cjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-DQZ1k-4g.cjs.map → mkdir-MEPGZOB6-CTaJw5WD.cjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-X9vy2RCy.mjs → mkdir-MEPGZOB6-DKhEU_mo.mjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-X9vy2RCy.mjs.map → mkdir-MEPGZOB6-DKhEU_mo.mjs.map} +1 -1
- package/dist/{mv-W5BIQ646-CoEt2Xu7.cjs → mv-W5BIQ646-04XTiLIP.cjs} +2 -2
- package/dist/{mv-W5BIQ646-CoEt2Xu7.cjs.map → mv-W5BIQ646-04XTiLIP.cjs.map} +1 -1
- package/dist/{mv-W5BIQ646-D6ALdw02.mjs → mv-W5BIQ646-wEz7EErl.mjs} +2 -2
- package/dist/{mv-W5BIQ646-D6ALdw02.mjs.map → mv-W5BIQ646-wEz7EErl.mjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-DDQ244Zw.cjs → nl-WSDW7I4O-Bc1YFLf6.cjs} +2 -2
- package/dist/{nl-WSDW7I4O-DDQ244Zw.cjs.map → nl-WSDW7I4O-Bc1YFLf6.cjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-DyeXenY-.mjs → nl-WSDW7I4O-BxQfwu-N.mjs} +2 -2
- package/dist/{nl-WSDW7I4O-DyeXenY-.mjs.map → nl-WSDW7I4O-BxQfwu-N.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP--Dv5qEwr.cjs → od-WOKFDJTP-BMJoqBvk.cjs} +2 -2
- package/dist/{od-WOKFDJTP--Dv5qEwr.cjs.map → od-WOKFDJTP-BMJoqBvk.cjs.map} +1 -1
- package/dist/{od-WOKFDJTP-C4rrBoz_.mjs → od-WOKFDJTP-BMjM1Vpo.mjs} +2 -2
- package/dist/{od-WOKFDJTP-C4rrBoz_.mjs.map → od-WOKFDJTP-BMjM1Vpo.mjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-Bji1Bpv0.mjs → paste-7JC6S4DX-BNyYBkM9.mjs} +2 -2
- package/dist/{paste-7JC6S4DX-Bji1Bpv0.mjs.map → paste-7JC6S4DX-BNyYBkM9.mjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-B3VzuAt0.cjs → paste-7JC6S4DX-xeKsL7xT.cjs} +2 -2
- package/dist/{paste-7JC6S4DX-B3VzuAt0.cjs.map → paste-7JC6S4DX-xeKsL7xT.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-BTeOHCJZ.cjs → printf-TWGXF445-DYS8xu0v.cjs} +3 -3
- package/dist/{printf-TWGXF445-BTeOHCJZ.cjs.map → printf-TWGXF445-DYS8xu0v.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-BlhAZROi.mjs → printf-TWGXF445-XVD9Mxrm.mjs} +3 -3
- package/dist/{printf-TWGXF445-BlhAZROi.mjs.map → printf-TWGXF445-XVD9Mxrm.mjs.map} +1 -1
- package/dist/{python3-POMOR4OA-DG1ouNsU.cjs → python3-POMOR4OA-DYGxPjXO.cjs} +4 -4
- package/dist/{python3-POMOR4OA-DG1ouNsU.cjs.map → python3-POMOR4OA-DYGxPjXO.cjs.map} +1 -1
- package/dist/{python3-POMOR4OA-DR8mqMXh.mjs → python3-POMOR4OA-Dnqvkl59.mjs} +3 -3
- package/dist/{python3-POMOR4OA-DR8mqMXh.mjs.map → python3-POMOR4OA-Dnqvkl59.mjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-CI_VGXqm.mjs → rev-5EHFX4EJ-DhVvFoTy.mjs} +2 -2
- package/dist/{rev-5EHFX4EJ-CI_VGXqm.mjs.map → rev-5EHFX4EJ-DhVvFoTy.mjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-CTqxt9T2.cjs → rev-5EHFX4EJ-pW6JW5qN.cjs} +2 -2
- package/dist/{rev-5EHFX4EJ-CTqxt9T2.cjs.map → rev-5EHFX4EJ-pW6JW5qN.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-BxiM0Km5.cjs → rg-S4FXYXWB-C73Aq2Xr.cjs} +3 -3
- package/dist/{rg-S4FXYXWB-BxiM0Km5.cjs.map → rg-S4FXYXWB-C73Aq2Xr.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-BV530Cw5.mjs → rg-S4FXYXWB-z2oeRO1P.mjs} +3 -3
- package/dist/{rg-S4FXYXWB-BV530Cw5.mjs.map → rg-S4FXYXWB-z2oeRO1P.mjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-BZ_Vwtjq.cjs → rm-SSGETQVQ-CHrR_Tku.cjs} +2 -2
- package/dist/{rm-SSGETQVQ-BZ_Vwtjq.cjs.map → rm-SSGETQVQ-CHrR_Tku.cjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-0mxnhARQ.mjs → rm-SSGETQVQ-Jci5Ip6D.mjs} +2 -2
- package/dist/{rm-SSGETQVQ-0mxnhARQ.mjs.map → rm-SSGETQVQ-Jci5Ip6D.mjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-DSmolqBX.cjs → rmdir-OC4ZLPYA-C9GToyPE.cjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-DSmolqBX.cjs.map → rmdir-OC4ZLPYA-C9GToyPE.cjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-B91oqgzk.mjs → rmdir-OC4ZLPYA-CbUJDjKj.mjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-B91oqgzk.mjs.map → rmdir-OC4ZLPYA-CbUJDjKj.mjs.map} +1 -1
- package/dist/run.cjs +1 -1
- package/dist/run.mjs +1 -1
- package/dist/{sed-S5UIK574-CUHVLRCU.cjs → sed-S5UIK574-CKdzn0sh.cjs} +2 -2
- package/dist/{sed-S5UIK574-CUHVLRCU.cjs.map → sed-S5UIK574-CKdzn0sh.cjs.map} +1 -1
- package/dist/{sed-S5UIK574-Bn1VT3VJ.mjs → sed-S5UIK574-DMSLNP6f.mjs} +2 -2
- package/dist/{sed-S5UIK574-Bn1VT3VJ.mjs.map → sed-S5UIK574-DMSLNP6f.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-DL_UeFqk.mjs → sha1sum-2PTOAFR6-BvcG60rc.mjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-DL_UeFqk.mjs.map → sha1sum-2PTOAFR6-BvcG60rc.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-DqcsWk6l.cjs → sha1sum-2PTOAFR6-D-6ahlIg.cjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-DqcsWk6l.cjs.map → sha1sum-2PTOAFR6-D-6ahlIg.cjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-CmnB6TL1.mjs → sha256sum-NS7D3IXX-DVH9Rp51.mjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-CmnB6TL1.mjs.map → sha256sum-NS7D3IXX-DVH9Rp51.mjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-DzpZonik.cjs → sha256sum-NS7D3IXX-Drwo830V.cjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-DzpZonik.cjs.map → sha256sum-NS7D3IXX-Drwo830V.cjs.map} +1 -1
- package/dist/{sleep-X22JJINO-CbNXwoha.mjs → sleep-X22JJINO-B-F8EJ1A.mjs} +2 -2
- package/dist/{sleep-X22JJINO-CbNXwoha.mjs.map → sleep-X22JJINO-B-F8EJ1A.mjs.map} +1 -1
- package/dist/{sleep-X22JJINO-DFFy9Bw9.cjs → sleep-X22JJINO-VzGR_aAP.cjs} +2 -2
- package/dist/{sleep-X22JJINO-DFFy9Bw9.cjs.map → sleep-X22JJINO-VzGR_aAP.cjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-BYbDNrah.mjs → sort-SW2YEO5B-BlCI4ke5.mjs} +3 -3
- package/dist/{sort-SW2YEO5B-BYbDNrah.mjs.map → sort-SW2YEO5B-BlCI4ke5.mjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-gdNgTdnH.cjs → sort-SW2YEO5B-oXMaUVfX.cjs} +3 -3
- package/dist/{sort-SW2YEO5B-gdNgTdnH.cjs.map → sort-SW2YEO5B-oXMaUVfX.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-DaVNgVyU.mjs → split-4KKZZXXE-DInsLVFn.mjs} +2 -2
- package/dist/{split-4KKZZXXE-DaVNgVyU.mjs.map → split-4KKZZXXE-DInsLVFn.mjs.map} +1 -1
- package/dist/{split-4KKZZXXE-BQei9Yb7.cjs → split-4KKZZXXE-uNycTBLx.cjs} +2 -2
- package/dist/{split-4KKZZXXE-BQei9Yb7.cjs.map → split-4KKZZXXE-uNycTBLx.cjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-Did6BRU0.cjs → sqlite3-CGOEFJAO-DLGaPKmF.cjs} +4 -4
- package/dist/{sqlite3-CGOEFJAO-Did6BRU0.cjs.map → sqlite3-CGOEFJAO-DLGaPKmF.cjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-DWuK8T1P.mjs → sqlite3-CGOEFJAO-DdQnH7sK.mjs} +3 -3
- package/dist/{sqlite3-CGOEFJAO-DWuK8T1P.mjs.map → sqlite3-CGOEFJAO-DdQnH7sK.mjs.map} +1 -1
- package/dist/{start-BXs2tRMp.cjs → start-B-r5AcHg.cjs} +1109 -129
- package/dist/start-B-r5AcHg.cjs.map +1 -0
- package/dist/{start-Bkcu3Xyf.mjs → start-BopA4OXE.mjs} +1109 -129
- package/dist/start-BopA4OXE.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-DghW6u1V.mjs → strings-6WDHLGMX-CQhR5NWI.mjs} +2 -2
- package/dist/{strings-6WDHLGMX-DghW6u1V.mjs.map → strings-6WDHLGMX-CQhR5NWI.mjs.map} +1 -1
- package/dist/{strings-6WDHLGMX-BYLV5mVI.cjs → strings-6WDHLGMX-CgNUl2be.cjs} +2 -2
- package/dist/{strings-6WDHLGMX-BYLV5mVI.cjs.map → strings-6WDHLGMX-CgNUl2be.cjs.map} +1 -1
- package/dist/{tac-2STMMJYW-dyBrgE3g.mjs → tac-2STMMJYW-DPVvOOFh.mjs} +2 -2
- package/dist/{tac-2STMMJYW-dyBrgE3g.mjs.map → tac-2STMMJYW-DPVvOOFh.mjs.map} +1 -1
- package/dist/{tac-2STMMJYW-BUj2w_ls.cjs → tac-2STMMJYW-XOnEZ_Pa.cjs} +2 -2
- package/dist/{tac-2STMMJYW-BUj2w_ls.cjs.map → tac-2STMMJYW-XOnEZ_Pa.cjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-Cb1qzi12.cjs → tail-R4PCA2C4-BPlLX9IB.cjs} +2 -2
- package/dist/{tail-R4PCA2C4-Cb1qzi12.cjs.map → tail-R4PCA2C4-BPlLX9IB.cjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-BYcpWm-i.mjs → tail-R4PCA2C4-BXsd_oGy.mjs} +2 -2
- package/dist/{tail-R4PCA2C4-BYcpWm-i.mjs.map → tail-R4PCA2C4-BXsd_oGy.mjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-y56eAWkM.cjs → tar-STHHZTZ6-BSs3Wex8.cjs} +5 -5
- package/dist/{tar-STHHZTZ6-y56eAWkM.cjs.map → tar-STHHZTZ6-BSs3Wex8.cjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-FTWsSEpr.mjs → tar-STHHZTZ6-DTf5Ifnn.mjs} +4 -4
- package/dist/{tar-STHHZTZ6-FTWsSEpr.mjs.map → tar-STHHZTZ6-DTf5Ifnn.mjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-oYjZsafd.cjs → tee-YUZ2FKCJ-DgWILkVl.cjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-oYjZsafd.cjs.map → tee-YUZ2FKCJ-DgWILkVl.cjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-DArfnCcS.mjs → tee-YUZ2FKCJ-HOwDepoa.mjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-DArfnCcS.mjs.map → tee-YUZ2FKCJ-HOwDepoa.mjs.map} +1 -1
- package/dist/{time-D4LNBSWX-BTetD0sZ.cjs → time-D4LNBSWX-Czgb4a8J.cjs} +2 -2
- package/dist/{time-D4LNBSWX-BTetD0sZ.cjs.map → time-D4LNBSWX-Czgb4a8J.cjs.map} +1 -1
- package/dist/{time-D4LNBSWX-D0AgPrVU.mjs → time-D4LNBSWX-DShdsFLL.mjs} +2 -2
- package/dist/{time-D4LNBSWX-D0AgPrVU.mjs.map → time-D4LNBSWX-DShdsFLL.mjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-m0hOl9RU.mjs → timeout-YDCRSLPQ-CrDWh7NY.mjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-m0hOl9RU.mjs.map → timeout-YDCRSLPQ-CrDWh7NY.mjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-D_NEhBtI.cjs → timeout-YDCRSLPQ-fyDe4rrM.cjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-D_NEhBtI.cjs.map → timeout-YDCRSLPQ-fyDe4rrM.cjs.map} +1 -1
- package/dist/{touch-UA33VN3N-D-0iV3bm.mjs → touch-UA33VN3N-D8fHlx6X.mjs} +2 -2
- package/dist/{touch-UA33VN3N-D-0iV3bm.mjs.map → touch-UA33VN3N-D8fHlx6X.mjs.map} +1 -1
- package/dist/{touch-UA33VN3N-C3gdLoXZ.cjs → touch-UA33VN3N-QQeRWr4H.cjs} +2 -2
- package/dist/{touch-UA33VN3N-C3gdLoXZ.cjs.map → touch-UA33VN3N-QQeRWr4H.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-DgJzlhNw.cjs → tr-36LHWFRQ-BvZgWBI7.cjs} +2 -2
- package/dist/{tr-36LHWFRQ-DgJzlhNw.cjs.map → tr-36LHWFRQ-BvZgWBI7.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-DSKHB_Nc.mjs → tr-36LHWFRQ-DkmoHg-J.mjs} +2 -2
- package/dist/{tr-36LHWFRQ-DSKHB_Nc.mjs.map → tr-36LHWFRQ-DkmoHg-J.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-io_fc43x.cjs → tree-YLD52CNT-D28PbXCj.cjs} +2 -2
- package/dist/{tree-YLD52CNT-io_fc43x.cjs.map → tree-YLD52CNT-D28PbXCj.cjs.map} +1 -1
- package/dist/{tree-YLD52CNT-BWhZ09Ar.mjs → tree-YLD52CNT-xjlCOZ0t.mjs} +2 -2
- package/dist/{tree-YLD52CNT-BWhZ09Ar.mjs.map → tree-YLD52CNT-xjlCOZ0t.mjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-CAimwjsv.mjs → unexpand-CADSA4VO-Bhs2BUQ5.mjs} +2 -2
- package/dist/{unexpand-CADSA4VO-CAimwjsv.mjs.map → unexpand-CADSA4VO-Bhs2BUQ5.mjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-zLmcC151.cjs → unexpand-CADSA4VO-Ct-tDYst.cjs} +2 -2
- package/dist/{unexpand-CADSA4VO-zLmcC151.cjs.map → unexpand-CADSA4VO-Ct-tDYst.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-ZZpwZg0c.cjs → uniq-XSIZR6PB-4d0zRoTa.cjs} +3 -3
- package/dist/{uniq-XSIZR6PB-ZZpwZg0c.cjs.map → uniq-XSIZR6PB-4d0zRoTa.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-CWAKZmGl.mjs → uniq-XSIZR6PB-B5Bk1TsC.mjs} +3 -3
- package/dist/{uniq-XSIZR6PB-CWAKZmGl.mjs.map → uniq-XSIZR6PB-B5Bk1TsC.mjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-DhNBsFLd.mjs → wc-LF7NU4LA-B3_zHGUI.mjs} +3 -3
- package/dist/{wc-LF7NU4LA-DhNBsFLd.mjs.map → wc-LF7NU4LA-B3_zHGUI.mjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-C4FhC6BH.cjs → wc-LF7NU4LA-D8KKcjuc.cjs} +3 -3
- package/dist/{wc-LF7NU4LA-C4FhC6BH.cjs.map → wc-LF7NU4LA-D8KKcjuc.cjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-DN7DU1ab.mjs → xan-Y6WF3IRG-9KChSctb.mjs} +6 -6
- package/dist/{xan-Y6WF3IRG-DN7DU1ab.mjs.map → xan-Y6WF3IRG-9KChSctb.mjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-BU79SNfn.cjs → xan-Y6WF3IRG-DlMObnyI.cjs} +6 -6
- package/dist/{xan-Y6WF3IRG-BU79SNfn.cjs.map → xan-Y6WF3IRG-DlMObnyI.cjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-DqGQzO2o.mjs → xan-view-HDVKHFC2-CuXxKOL_.mjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-DqGQzO2o.mjs.map → xan-view-HDVKHFC2-CuXxKOL_.mjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-Dew1rWvx.cjs → xan-view-HDVKHFC2-D4UaWbCt.cjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-Dew1rWvx.cjs.map → xan-view-HDVKHFC2-D4UaWbCt.cjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-BH-SyQsU.mjs → xargs-MGZPH7AX-BdScic0s.mjs} +2 -2
- package/dist/{xargs-MGZPH7AX-BH-SyQsU.mjs.map → xargs-MGZPH7AX-BdScic0s.mjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-BS-zAwl9.cjs → xargs-MGZPH7AX-DY0UyJRW.cjs} +2 -2
- package/dist/{xargs-MGZPH7AX-BS-zAwl9.cjs.map → xargs-MGZPH7AX-DY0UyJRW.cjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-CY_mBr2e.mjs → yq-4QJW3EQG-BvkjygaH.mjs} +3 -3
- package/dist/{yq-4QJW3EQG-CY_mBr2e.mjs.map → yq-4QJW3EQG-BvkjygaH.mjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-B_e-AoZW.cjs → yq-4QJW3EQG-CF1OM3GO.cjs} +3 -3
- package/dist/{yq-4QJW3EQG-B_e-AoZW.cjs.map → yq-4QJW3EQG-CF1OM3GO.cjs.map} +1 -1
- package/package.json +3 -3
- package/dist/dist-BGnpuTuc.cjs.map +0 -1
- package/dist/dist-DEUmH1sy.mjs.map +0 -1
- package/dist/start-BXs2tRMp.cjs.map +0 -1
- package/dist/start-Bkcu3Xyf.mjs.map +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as CreateOrganizationRequestSchema, $n as chatAttachmentExtension, $t as ProjectReachabilityResponseSchema, A as discoverOpenApiApp, An as UploadProjectSourceManifestRequestSchema, At as ListOrganizationMembersResponseSchema, B as AgentSummaryDetailResponseSchema, Bn as WorkflowRunInputsSchema, Bt as OpenApiDiscoverResponseSchema, C as defaultSchedulerPlugin, Cn as UpdateOrganizationMemberRequestSchema, Cr as validateWorkflowRunInputValues, Ct as InviteProjectMembersResponseSchema, D as describeCredentialBinding, Dn as UpdateProjectMemberResponseSchema, Dt as ListAppsResponseSchema, E as decodeOAuthState, En as UpdateProjectMemberRequestSchema, Er as pingProjectTarget, Et as ListApiKeysResponseSchema, F as setCredentialInstanceSecret, Fn as UserPreferencesSchema, Ft as ListProjectMetricsResponseSchema, G as AppSlugAvailabilityResponseSchema, Gn as WorkspaceTriggerFileSchema, Gt as PresignChatAttachmentRequestSchema, H as AgentSummarySchema, Hn as WorkflowSummaryListResponseSchema, Ht as OrganizationSidebarBrandingSchema, I as ACTIVE_ORG_HEADER, In as WorkflowCanvasCredentialBindingsSchema, It as ListProjectsResponseSchema, J as CreateApiKeyResponseSchema, Jn as WorkspaceTriggerRunListResponseSchema, Jt as PresignOrgLogoResponseSchema, K as CompleteProjectArtifactResponseSchema, Kn as WorkspaceTriggerListResponseSchema, Kt as PresignChatAttachmentResponseSchema, L as AcceptOrganizationInvitationResponseSchema, Ln as WorkflowCanvasRunSchema, Lt as McpDiscoverRequestSchema, M as PublicHttpUrlError, Mn as UserAvatarPatchSchema, Mt as ListProjectDeploymentsResponseSchema, N as deleteCredentialInstanceSecret, Nn as UserAvatarSchema, Nt as ListProjectFilesResponseSchema, O as discoverGraphqlApp, On as UpdateProjectRequestSchema, Ot as ListCredentialsResponseSchema, P as readCredentialInstanceSecret, Pn as UserPreferencesPatchSchema, Pt as ListProjectMembersResponseSchema, Q as CreateCustomAppResponseSchema, Qn as buildCredentialInstanceLabel, Qt as PresignUserAvatarResponseSchema, R as ActiveOrganizationResponseSchema, Rn as WorkflowCanvasSchema, Rt as McpDiscoverResponseSchema, S as createJobQueue, Sn as UpdateCredentialRequestSchema, Sr as validateCredentialValueAgainstFields, St as InviteProjectMembersRequestSchema, T as completeMcpOAuthConnect, Tn as UpdateOrganizationRequestSchema, Tt as ListAgentWorkspaceFilesResponseSchema, U as AgentWorkspaceFileSummarySchema, Un as WorkflowSummarySchema, Ut as PLATFORM_RESOURCE_UNSUPPORTED_TEXT, V as AgentSummaryListResponseSchema, Vn as WorkflowSummaryDetailResponseSchema, Vt as OrganizationSidebarBrandingPatchSchema, W as AppSlugAvailabilityQuerySchema, Wn as WorkspaceTriggerDetailSchema, Wt as PROJECT_SLUG_TAKEN_MESSAGE, X as CreateCredentialsResponseSchema, Xn as agentMemoryFileId, Xt as PresignProjectSourceResponseSchema, Y as CreateCredentialsRequestSchema, Yn as WorkspaceWorkflowOverviewSchema, Yt as PresignProjectSourceRequestSchema, Z as CreateCustomAppRequestSchema, Zn as agentWorkspaceFileId, Zt as PresignUserAvatarRequestSchema, _ as orgLogoStorageKey, _n as SubmitMarketingContactResponseSchema, _r as parseAppSlug, _t as HistoryRunDetailResponseSchema, a as extractRouteManifestFromArtifact, an as PublicModelsResponseSchema, ar as mapOrganizationInvitation, at as DEFAULT_TRIGGER_OVERVIEW_MODEL, b as publicKeystrokeAssetsObjectUrl, bn as TriggerAttachmentUpdateRequestSchema, br as resolveExternalPlatformOrigin, bt as InviteOrganizationMembersRequestSchema, c as isKeystrokeAssetsOrgLogoPublicUrl, cn as SkillSummaryDetailResponseSchema, cr as mapProjectArtifact, ct as DeclineOrganizationInvitationResponseSchema, d as isStorageNotFoundError$1, dn as SlugAvailabilityQuerySchema, dr as mapProjectSettings, dt as ErrorResponseSchema, en as ProjectResponseSchema, er as deriveCredentialInstanceSlug, et as CreateOrganizationResponseSchema, f as isUserAvatarStorageKey, fn as SlugAvailabilityResponseSchema, fr as mapUserOrganization, ft as GetCredentialResponseSchema, gn as SubmitMarketingContactRequestSchema, gr as organizationSlugErrorCodeFromMessage, gt as HistoryRunCancelResponseSchema, h as loadProjectSourceFiles, hn as StoredProjectSourceManifestSchema, hr as organizationInvitationAcceptPath, ht as GraphqlDiscoverResponseSchema, i as ensureKeystrokeAssetsBucket, in as ProjectSourceResourcesSchema, ir as listenPortFromPublicUrl, it as DEFAULT_CLOUD_PLATFORM_ORIGIN, j as withCredentialAssignments, jn as UploadProjectSourceResponseSchema, jt as ListOrganizationsResponseSchema, k as discoverMcpApp, kn as UpdateProjectSettingsRequestSchema, kt as ListOrganizationInvitationsResponseSchema, l as isOrgLogoStorageKey, ln as SkillSummaryListResponseSchema, lr as mapProjectDeployment, lt as DownloadActiveProjectArtifactResponseSchema, m as keystrokeAssetsOrgLogoKeyFromPublicUrl, mn as StartMcpOAuthConnectionResultSchema, mr as normalizeUserPreferences, mt as GraphqlDiscoverRequestSchema, n as chatAttachmentStorageKey, nn as ProjectSlugAvailabilityQuerySchema, nr as isAllowedChatAttachmentMediaType, nt as CreateProjectRequestSchema, o as isChatAttachmentStorageKey, on as RecentResourceListResponseSchema, or as mapOrganizationMember, ot as DEFAULT_WORKFLOW_CANVAS_MODEL, p as keystrokeAssetsAvatarKeyFromPublicUrl, pn as StartMcpOAuthConnectionInputSchema, pr as mergeUserPreferences, pt as GetCustomAppResponseSchema, q as CreateApiKeyRequestSchema, qn as WorkspaceTriggerOverviewSchema, qt as PresignOrgLogoRequestSchema, r as createAssetsStorageClient, rn as ProjectSlugAvailabilityResponseSchema, rr as jsonSchemaToWorkflowInputSchema, rt as CreateProjectResponseSchema, s as isKeystrokeAssetsAvatarPublicUrl, sn as RecentResourceSchema, sr as mapProject, st as DEFAULT_WORKFLOW_OVERVIEW_MODEL, t as RouteManifestNotFoundError, tn as ProjectSettingsResponseSchema, tr as displayCredentialAppName, tt as CreateProjectArtifactResponseSchema, u as isStorageBucketNotFoundError, un as SkillSummarySchema, ur as mapProjectMember, ut as DownloadActiveProjectSourceResponseSchema, v as projectArtifactKey, vn as SubmitTeamRequestRequestSchema, vr as parseStoredRouteManifest, vt as HistoryRunListQuerySchema, w as beginMcpOAuthConnect, wn as UpdateOrganizationMemberResponseSchema, wr as validationErrorResponse, wt as ListAgentMemoryFilesResponseSchema, x as userAvatarStorageKey, xn as TriggerRunListQuerySchema, xr as resolveUniqueCredentialInstanceLabel, xt as InviteOrganizationMembersResponseSchema, y as projectSourceBlobKey, yn as SubmitTeamRequestResponseSchema, yr as projectFileId, yt as HistoryRunListResponseSchema, z as AgentMemoryFileSummarySchema, zn as WorkflowRunInputsPutBodySchema, zt as OpenApiDiscoverRequestSchema } from "./dist-Dfoa0fsU.mjs";
|
|
2
2
|
import "./chunk-BZUGFHVS-B2NchobP.mjs";
|
|
3
3
|
import { n as d$4, t as _$1 } from "./chunk-TN7HHBQW-B8PYcKz5.mjs";
|
|
4
4
|
import { t as withProjectScope } from "./with-project-scope-DWwbN8Qs.mjs";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
import "node:fs/promises";
|
|
7
|
-
import { buildHistoryAgentSessionDetail, buildHistoryWorkflowRunDetail, cancelAgentSession, cancelWorkflowRun, clearCredentialInstanceDefaults, deleteCredentialInstanceById, findHistoryRunCore, getProjectScopeId, getServerTenantScopeId, listActiveAgents, listActiveSkills, listActiveWorkflows, listAllCredentialInstances, listCredentialInstancesByConnectionId, listHistoryRuns, listRecentResourceActivity, listTriggersByIds, listWorkspaceTriggerRunRows, listWorkspaceTriggers, runWithProjectDatabase, runWithProjectScope, runWithTenantScope, selectActiveAgentById, selectActiveAgentsByIds, selectActiveSkillById, selectActiveSkillsByIds, selectActiveWorkflowById, selectActiveWorkflowsByIds, selectAgentBySlug, selectAgentLastRunAtByIds, selectAgentSessionById, selectCredentialInstanceById, selectCredentialInstancesForScope, selectEphemeralTriggerAttachments, selectProjectResourceCounts, selectTriggerById, selectWorkflowLastRunAtByIds, selectWorkflowRunById, setTriggerAttachmentEnabledState, setTriggerOverviewGenerating, storedTriggerSourceFromRow, touchResourceActivity, updateTriggerOverview, upsertCredentialInstance } from "@keystrokehq/database";
|
|
7
|
+
import { buildHistoryAgentSessionDetail, buildHistoryWorkflowRunDetail, cancelAgentSession, cancelWorkflowRun, clearCredentialInstanceDefaults, deleteCredentialInstanceById, findHistoryRunCore, getProjectScopeId, getServerTenantScopeId, listActiveAgents, listActiveSkills, listActiveWorkflows, listAllCredentialInstances, listCredentialInstancesByConnectionId, listHistoryRuns, listRecentResourceActivity, listReplayEvents, listTriggersByIds, listWorkspaceTriggerRunRows, listWorkspaceTriggers, runWithProjectDatabase, runWithProjectScope, runWithTenantScope, selectActiveAgentById, selectActiveAgentsByIds, selectActiveSkillById, selectActiveSkillsByIds, selectActiveWorkflowById, selectActiveWorkflowsByIds, selectAgentBySlug, selectAgentLastRunAtByIds, selectAgentSessionById, selectCredentialInstanceById, selectCredentialInstancesForScope, selectEphemeralTriggerAttachments, selectProjectResourceCounts, selectTriggerById, selectWorkflowCanvasAnnotations, selectWorkflowLastRunAtByIds, selectWorkflowOverview, selectWorkflowRunById, selectWorkflowRunForWorkflow, selectWorkflowRunInputValues, setTriggerAttachmentEnabledState, setTriggerOverviewGenerating, setWorkflowCanvasAnnotationsGenerating, setWorkflowOverviewGenerating, storedTriggerSourceFromRow, touchResourceActivity, updateTriggerOverview, updateWorkflowCanvasAnnotations, updateWorkflowOverview, updateWorkflowRunInputValues, upsertCredentialInstance } from "@keystrokehq/database";
|
|
8
8
|
import { ZodError, z } from "zod";
|
|
9
9
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
|
-
import { CannotModifyOwnerError, OrgAppSlugTakenError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrgAppSlugAvailability, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgAgentStorageClient, createOrgApp, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, hasCredentialFieldTemplate, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listAppsForOrganization, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, listWebhookApiKeys, listWebhookApiKeysForProject, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgSchedulerRuntimeEnv, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgProjectDatabaseOptions, resolveOrgRuntimeDatabase, revokeOrgPlatformApiKey, runWithOrganizationScope, runWithWorkspaceContext, selectActiveArtifactSourceManifestForProject, selectActiveProjectArtifactForProject, selectAppForOrganization, selectLastDeploymentAtByProject, selectOAuthConnectionsByIds, selectOrgPlatformApiKeyForOrganization, selectOrganizationById, selectOrganizationMembers, selectPendingInvitationsForUser, selectProjectArtifactById, selectProjectArtifactForProject, selectProjectById, selectProjectDeployments, selectProjectForOrganization, selectProjectForOrganizationBySlug, selectProjectIdsForUser, selectProjectMembers, selectProjectsByOrganizationId, selectUserById, selectUserOrganizationMembership, selectUserOrganizations, selectUserProjectMembership, selectUsersByIds, updateOrganizationActive, updateOrganizationFailed, updateOrganizationMemberRole, updateOrganizationName, updateOrganizationSidebarBranding, updateOrganizationSlug, updateProjectActive, updateProjectArtifactManifest, updateProjectArtifactSourceManifest, updateProjectForOrganization, updateProjectMemberRole, updateProjectSettings, updateUserById, verifyOrgPlatformApiKeySecret } from "@keystrokehq/platform-database";
|
|
11
|
-
import "node:crypto";
|
|
10
|
+
import { CannotModifyOwnerError, OrgAppSlugTakenError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrgAppSlugAvailability, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgAgentStorageClient, createOrgApp, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, hasCredentialFieldTemplate, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listAppsForOrganization, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, listWebhookApiKeys, listWebhookApiKeysForProject, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgSchedulerRuntimeEnv, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgProjectDatabaseOptions, resolveOrgRuntimeDatabase, revokeOrgPlatformApiKey, runWithOrganizationScope, runWithWorkspaceContext, selectActiveArtifactManifestForProject, selectActiveArtifactSourceManifestForProject, selectActiveProjectArtifactForProject, selectAppForOrganization, selectLastDeploymentAtByProject, selectOAuthConnectionsByIds, selectOrgPlatformApiKeyForOrganization, selectOrganizationById, selectOrganizationMembers, selectPendingInvitationsForUser, selectProjectArtifactById, selectProjectArtifactForProject, selectProjectById, selectProjectDeployments, selectProjectForOrganization, selectProjectForOrganizationBySlug, selectProjectIdsForUser, selectProjectMembers, selectProjectsByOrganizationId, selectUserById, selectUserOrganizationMembership, selectUserOrganizations, selectUserProjectMembership, selectUsersByIds, updateOrganizationActive, updateOrganizationFailed, updateOrganizationMemberRole, updateOrganizationName, updateOrganizationSidebarBranding, updateOrganizationSlug, updateProjectActive, updateProjectArtifactManifest, updateProjectArtifactSourceManifest, updateProjectForOrganization, updateProjectMemberRole, updateProjectSettings, updateUserById, verifyOrgPlatformApiKeySecret } from "@keystrokehq/platform-database";
|
|
11
|
+
import { createHash } from "node:crypto";
|
|
12
12
|
import "node:fs";
|
|
13
13
|
import { basename, join, normalize, relative, resolve } from "node:path";
|
|
14
14
|
import { tmpdir } from "node:os";
|
|
15
15
|
import { serve } from "@hono/node-server";
|
|
16
16
|
import { AUTH_API_PATH, createAuth, createDefaultAuthJwtVerifier, extractWebhookApiKeyFromRequest, handleAuthRequest, resolveAuthEmailFrom, resolveRequestAuth } from "@keystrokehq/auth";
|
|
17
|
-
import { buildWebhookUrl, createCredentialMaterializeHandler, extractWebhookRoutesFromManifest, seedOAuthAppsFromEnvForAllOrganizations, seedOAuthAppsFromEnvForOrganization, syncRegistryFromStoredManifest } from "@keystrokehq/runtime";
|
|
17
|
+
import { buildWebhookUrl, createCredentialMaterializeHandler, enqueueWorkflowRunByKey, extractWebhookRoutesFromManifest, seedOAuthAppsFromEnvForAllOrganizations, seedOAuthAppsFromEnvForOrganization, syncRegistryFromStoredManifest } from "@keystrokehq/runtime";
|
|
18
18
|
import "node:url";
|
|
19
|
+
import "typescript";
|
|
19
20
|
import { createApp, externalPlatformOrigin, getProjectScheduler, platformWebhookOrigin, resolveMcpEntityId } from "@keystrokehq/http";
|
|
20
21
|
import { Hono } from "hono";
|
|
21
22
|
import { Resend } from "resend";
|
|
@@ -22870,43 +22871,43 @@ var tt = [
|
|
|
22870
22871
|
},
|
|
22871
22872
|
{
|
|
22872
22873
|
name: "cat",
|
|
22873
|
-
load: async () => (await import("./cat-TSFMZVYS-
|
|
22874
|
+
load: async () => (await import("./cat-TSFMZVYS-CXlrdMsd.mjs")).catCommand
|
|
22874
22875
|
},
|
|
22875
22876
|
{
|
|
22876
22877
|
name: "printf",
|
|
22877
|
-
load: async () => (await import("./printf-TWGXF445-
|
|
22878
|
+
load: async () => (await import("./printf-TWGXF445-XVD9Mxrm.mjs")).printfCommand
|
|
22878
22879
|
},
|
|
22879
22880
|
{
|
|
22880
22881
|
name: "ls",
|
|
22881
|
-
load: async () => (await import("./ls-ZJGQER7M-
|
|
22882
|
+
load: async () => (await import("./ls-ZJGQER7M-VlE8NU2n.mjs")).lsCommand
|
|
22882
22883
|
},
|
|
22883
22884
|
{
|
|
22884
22885
|
name: "mkdir",
|
|
22885
|
-
load: async () => (await import("./mkdir-MEPGZOB6-
|
|
22886
|
+
load: async () => (await import("./mkdir-MEPGZOB6-DKhEU_mo.mjs")).mkdirCommand
|
|
22886
22887
|
},
|
|
22887
22888
|
{
|
|
22888
22889
|
name: "rmdir",
|
|
22889
|
-
load: async () => (await import("./rmdir-OC4ZLPYA-
|
|
22890
|
+
load: async () => (await import("./rmdir-OC4ZLPYA-CbUJDjKj.mjs")).rmdirCommand
|
|
22890
22891
|
},
|
|
22891
22892
|
{
|
|
22892
22893
|
name: "touch",
|
|
22893
|
-
load: async () => (await import("./touch-UA33VN3N-
|
|
22894
|
+
load: async () => (await import("./touch-UA33VN3N-D8fHlx6X.mjs")).touchCommand
|
|
22894
22895
|
},
|
|
22895
22896
|
{
|
|
22896
22897
|
name: "rm",
|
|
22897
|
-
load: async () => (await import("./rm-SSGETQVQ-
|
|
22898
|
+
load: async () => (await import("./rm-SSGETQVQ-Jci5Ip6D.mjs")).rmCommand
|
|
22898
22899
|
},
|
|
22899
22900
|
{
|
|
22900
22901
|
name: "cp",
|
|
22901
|
-
load: async () => (await import("./cp-BISAAS7A-
|
|
22902
|
+
load: async () => (await import("./cp-BISAAS7A-ptJev1Ed.mjs")).cpCommand
|
|
22902
22903
|
},
|
|
22903
22904
|
{
|
|
22904
22905
|
name: "mv",
|
|
22905
|
-
load: async () => (await import("./mv-W5BIQ646-
|
|
22906
|
+
load: async () => (await import("./mv-W5BIQ646-wEz7EErl.mjs")).mvCommand
|
|
22906
22907
|
},
|
|
22907
22908
|
{
|
|
22908
22909
|
name: "ln",
|
|
22909
|
-
load: async () => (await import("./ln-4LGSXXGD-
|
|
22910
|
+
load: async () => (await import("./ln-4LGSXXGD-C8uxwN4w.mjs")).lnCommand
|
|
22910
22911
|
},
|
|
22911
22912
|
{
|
|
22912
22913
|
name: "chmod",
|
|
@@ -22922,15 +22923,15 @@ var tt = [
|
|
|
22922
22923
|
},
|
|
22923
22924
|
{
|
|
22924
22925
|
name: "head",
|
|
22925
|
-
load: async () => (await import("./head-442HYESI-
|
|
22926
|
+
load: async () => (await import("./head-442HYESI-BUT7-OAn.mjs")).headCommand
|
|
22926
22927
|
},
|
|
22927
22928
|
{
|
|
22928
22929
|
name: "tail",
|
|
22929
|
-
load: async () => (await import("./tail-R4PCA2C4-
|
|
22930
|
+
load: async () => (await import("./tail-R4PCA2C4-BXsd_oGy.mjs")).tailCommand
|
|
22930
22931
|
},
|
|
22931
22932
|
{
|
|
22932
22933
|
name: "wc",
|
|
22933
|
-
load: async () => (await import("./wc-LF7NU4LA-
|
|
22934
|
+
load: async () => (await import("./wc-LF7NU4LA-B3_zHGUI.mjs")).wcCommand
|
|
22934
22935
|
},
|
|
22935
22936
|
{
|
|
22936
22937
|
name: "stat",
|
|
@@ -22938,95 +22939,95 @@ var tt = [
|
|
|
22938
22939
|
},
|
|
22939
22940
|
{
|
|
22940
22941
|
name: "grep",
|
|
22941
|
-
load: async () => (await import("./grep-V3LQVMRQ-
|
|
22942
|
+
load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).grepCommand
|
|
22942
22943
|
},
|
|
22943
22944
|
{
|
|
22944
22945
|
name: "fgrep",
|
|
22945
|
-
load: async () => (await import("./grep-V3LQVMRQ-
|
|
22946
|
+
load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).fgrepCommand
|
|
22946
22947
|
},
|
|
22947
22948
|
{
|
|
22948
22949
|
name: "egrep",
|
|
22949
|
-
load: async () => (await import("./grep-V3LQVMRQ-
|
|
22950
|
+
load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).egrepCommand
|
|
22950
22951
|
},
|
|
22951
22952
|
{
|
|
22952
22953
|
name: "rg",
|
|
22953
|
-
load: async () => (await import("./rg-S4FXYXWB-
|
|
22954
|
+
load: async () => (await import("./rg-S4FXYXWB-z2oeRO1P.mjs")).rgCommand
|
|
22954
22955
|
},
|
|
22955
22956
|
{
|
|
22956
22957
|
name: "sed",
|
|
22957
|
-
load: async () => (await import("./sed-S5UIK574-
|
|
22958
|
+
load: async () => (await import("./sed-S5UIK574-DMSLNP6f.mjs")).sedCommand
|
|
22958
22959
|
},
|
|
22959
22960
|
{
|
|
22960
22961
|
name: "awk",
|
|
22961
|
-
load: async () => (await import("./awk2-LA3USKJP-
|
|
22962
|
+
load: async () => (await import("./awk2-LA3USKJP-DeBBkGI5.mjs")).awkCommand2
|
|
22962
22963
|
},
|
|
22963
22964
|
{
|
|
22964
22965
|
name: "sort",
|
|
22965
|
-
load: async () => (await import("./sort-SW2YEO5B-
|
|
22966
|
+
load: async () => (await import("./sort-SW2YEO5B-BlCI4ke5.mjs")).sortCommand
|
|
22966
22967
|
},
|
|
22967
22968
|
{
|
|
22968
22969
|
name: "uniq",
|
|
22969
|
-
load: async () => (await import("./uniq-XSIZR6PB-
|
|
22970
|
+
load: async () => (await import("./uniq-XSIZR6PB-B5Bk1TsC.mjs")).uniqCommand
|
|
22970
22971
|
},
|
|
22971
22972
|
{
|
|
22972
22973
|
name: "comm",
|
|
22973
|
-
load: async () => (await import("./comm-VV2LDX2J-
|
|
22974
|
+
load: async () => (await import("./comm-VV2LDX2J-NATbHp7x.mjs")).commCommand
|
|
22974
22975
|
},
|
|
22975
22976
|
{
|
|
22976
22977
|
name: "cut",
|
|
22977
|
-
load: async () => (await import("./cut-OKARJCCV-
|
|
22978
|
+
load: async () => (await import("./cut-OKARJCCV-CAXXP7Q-.mjs")).cutCommand
|
|
22978
22979
|
},
|
|
22979
22980
|
{
|
|
22980
22981
|
name: "paste",
|
|
22981
|
-
load: async () => (await import("./paste-7JC6S4DX-
|
|
22982
|
+
load: async () => (await import("./paste-7JC6S4DX-BNyYBkM9.mjs")).pasteCommand
|
|
22982
22983
|
},
|
|
22983
22984
|
{
|
|
22984
22985
|
name: "tr",
|
|
22985
|
-
load: async () => (await import("./tr-36LHWFRQ-
|
|
22986
|
+
load: async () => (await import("./tr-36LHWFRQ-DkmoHg-J.mjs")).trCommand
|
|
22986
22987
|
},
|
|
22987
22988
|
{
|
|
22988
22989
|
name: "rev",
|
|
22989
|
-
load: async () => (await import("./rev-5EHFX4EJ-
|
|
22990
|
+
load: async () => (await import("./rev-5EHFX4EJ-DhVvFoTy.mjs")).rev
|
|
22990
22991
|
},
|
|
22991
22992
|
{
|
|
22992
22993
|
name: "nl",
|
|
22993
|
-
load: async () => (await import("./nl-WSDW7I4O-
|
|
22994
|
+
load: async () => (await import("./nl-WSDW7I4O-BxQfwu-N.mjs")).nl
|
|
22994
22995
|
},
|
|
22995
22996
|
{
|
|
22996
22997
|
name: "fold",
|
|
22997
|
-
load: async () => (await import("./fold-4TQNYMSW-
|
|
22998
|
+
load: async () => (await import("./fold-4TQNYMSW-W2QBLbOw.mjs")).fold
|
|
22998
22999
|
},
|
|
22999
23000
|
{
|
|
23000
23001
|
name: "expand",
|
|
23001
|
-
load: async () => (await import("./expand-JSPG6VOP-
|
|
23002
|
+
load: async () => (await import("./expand-JSPG6VOP-CyEF3l9T.mjs")).expand
|
|
23002
23003
|
},
|
|
23003
23004
|
{
|
|
23004
23005
|
name: "unexpand",
|
|
23005
|
-
load: async () => (await import("./unexpand-CADSA4VO-
|
|
23006
|
+
load: async () => (await import("./unexpand-CADSA4VO-Bhs2BUQ5.mjs")).unexpand
|
|
23006
23007
|
},
|
|
23007
23008
|
{
|
|
23008
23009
|
name: "strings",
|
|
23009
|
-
load: async () => (await import("./strings-6WDHLGMX-
|
|
23010
|
+
load: async () => (await import("./strings-6WDHLGMX-CQhR5NWI.mjs")).strings
|
|
23010
23011
|
},
|
|
23011
23012
|
{
|
|
23012
23013
|
name: "split",
|
|
23013
|
-
load: async () => (await import("./split-4KKZZXXE-
|
|
23014
|
+
load: async () => (await import("./split-4KKZZXXE-DInsLVFn.mjs")).split
|
|
23014
23015
|
},
|
|
23015
23016
|
{
|
|
23016
23017
|
name: "column",
|
|
23017
|
-
load: async () => (await import("./column-XT6UFXNQ-
|
|
23018
|
+
load: async () => (await import("./column-XT6UFXNQ-5YutVL6D.mjs")).column
|
|
23018
23019
|
},
|
|
23019
23020
|
{
|
|
23020
23021
|
name: "join",
|
|
23021
|
-
load: async () => (await import("./join-TBRGI3LQ-
|
|
23022
|
+
load: async () => (await import("./join-TBRGI3LQ-DX7NMuzt.mjs")).join
|
|
23022
23023
|
},
|
|
23023
23024
|
{
|
|
23024
23025
|
name: "tee",
|
|
23025
|
-
load: async () => (await import("./tee-YUZ2FKCJ-
|
|
23026
|
+
load: async () => (await import("./tee-YUZ2FKCJ-HOwDepoa.mjs")).teeCommand
|
|
23026
23027
|
},
|
|
23027
23028
|
{
|
|
23028
23029
|
name: "find",
|
|
23029
|
-
load: async () => (await import("./find-INTH3OLC-
|
|
23030
|
+
load: async () => (await import("./find-INTH3OLC-BcssH53Z.mjs")).findCommand
|
|
23030
23031
|
},
|
|
23031
23032
|
{
|
|
23032
23033
|
name: "basename",
|
|
@@ -23038,19 +23039,19 @@ var tt = [
|
|
|
23038
23039
|
},
|
|
23039
23040
|
{
|
|
23040
23041
|
name: "tree",
|
|
23041
|
-
load: async () => (await import("./tree-YLD52CNT-
|
|
23042
|
+
load: async () => (await import("./tree-YLD52CNT-xjlCOZ0t.mjs")).treeCommand
|
|
23042
23043
|
},
|
|
23043
23044
|
{
|
|
23044
23045
|
name: "du",
|
|
23045
|
-
load: async () => (await import("./du-572XNP42-
|
|
23046
|
+
load: async () => (await import("./du-572XNP42-dXgrmb6w.mjs")).duCommand
|
|
23046
23047
|
},
|
|
23047
23048
|
{
|
|
23048
23049
|
name: "env",
|
|
23049
|
-
load: async () => (await import("./env-36M5BO7M-
|
|
23050
|
+
load: async () => (await import("./env-36M5BO7M-D_IGqT9p.mjs")).envCommand
|
|
23050
23051
|
},
|
|
23051
23052
|
{
|
|
23052
23053
|
name: "printenv",
|
|
23053
|
-
load: async () => (await import("./env-36M5BO7M-
|
|
23054
|
+
load: async () => (await import("./env-36M5BO7M-D_IGqT9p.mjs")).printenvCommand
|
|
23054
23055
|
},
|
|
23055
23056
|
{
|
|
23056
23057
|
name: "alias",
|
|
@@ -23066,7 +23067,7 @@ var tt = [
|
|
|
23066
23067
|
},
|
|
23067
23068
|
{
|
|
23068
23069
|
name: "xargs",
|
|
23069
|
-
load: async () => (await import("./xargs-MGZPH7AX-
|
|
23070
|
+
load: async () => (await import("./xargs-MGZPH7AX-BdScic0s.mjs")).xargsCommand
|
|
23070
23071
|
},
|
|
23071
23072
|
{
|
|
23072
23073
|
name: "true",
|
|
@@ -23082,23 +23083,23 @@ var tt = [
|
|
|
23082
23083
|
},
|
|
23083
23084
|
{
|
|
23084
23085
|
name: "bash",
|
|
23085
|
-
load: async () => (await import("./bash-YZ33HQZQ-
|
|
23086
|
+
load: async () => (await import("./bash-YZ33HQZQ-rOVeZOAg.mjs")).bashCommand
|
|
23086
23087
|
},
|
|
23087
23088
|
{
|
|
23088
23089
|
name: "sh",
|
|
23089
|
-
load: async () => (await import("./bash-YZ33HQZQ-
|
|
23090
|
+
load: async () => (await import("./bash-YZ33HQZQ-rOVeZOAg.mjs")).shCommand
|
|
23090
23091
|
},
|
|
23091
23092
|
{
|
|
23092
23093
|
name: "jq",
|
|
23093
|
-
load: async () => (await import("./jq-4XLYLOS5-
|
|
23094
|
+
load: async () => (await import("./jq-4XLYLOS5-C58Dd7RS.mjs")).jqCommand
|
|
23094
23095
|
},
|
|
23095
23096
|
{
|
|
23096
23097
|
name: "base64",
|
|
23097
|
-
load: async () => (await import("./base64-C2AIWVNC-
|
|
23098
|
+
load: async () => (await import("./base64-C2AIWVNC-JuDjFqOp.mjs")).base64Command
|
|
23098
23099
|
},
|
|
23099
23100
|
{
|
|
23100
23101
|
name: "diff",
|
|
23101
|
-
load: async () => (await import("./diff-MWJFIG7X-
|
|
23102
|
+
load: async () => (await import("./diff-MWJFIG7X-CvZCw_Zo.mjs")).diffCommand
|
|
23102
23103
|
},
|
|
23103
23104
|
{
|
|
23104
23105
|
name: "date",
|
|
@@ -23106,15 +23107,15 @@ var tt = [
|
|
|
23106
23107
|
},
|
|
23107
23108
|
{
|
|
23108
23109
|
name: "sleep",
|
|
23109
|
-
load: async () => (await import("./sleep-X22JJINO-
|
|
23110
|
+
load: async () => (await import("./sleep-X22JJINO-B-F8EJ1A.mjs")).sleepCommand
|
|
23110
23111
|
},
|
|
23111
23112
|
{
|
|
23112
23113
|
name: "timeout",
|
|
23113
|
-
load: async () => (await import("./timeout-YDCRSLPQ-
|
|
23114
|
+
load: async () => (await import("./timeout-YDCRSLPQ-CrDWh7NY.mjs")).timeoutCommand
|
|
23114
23115
|
},
|
|
23115
23116
|
{
|
|
23116
23117
|
name: "time",
|
|
23117
|
-
load: async () => (await import("./time-D4LNBSWX-
|
|
23118
|
+
load: async () => (await import("./time-D4LNBSWX-DShdsFLL.mjs")).timeCommand
|
|
23118
23119
|
},
|
|
23119
23120
|
{
|
|
23120
23121
|
name: "seq",
|
|
@@ -23122,19 +23123,19 @@ var tt = [
|
|
|
23122
23123
|
},
|
|
23123
23124
|
{
|
|
23124
23125
|
name: "expr",
|
|
23125
|
-
load: async () => (await import("./expr-5JAACS4X-
|
|
23126
|
+
load: async () => (await import("./expr-5JAACS4X-BjSLGpzH.mjs")).exprCommand
|
|
23126
23127
|
},
|
|
23127
23128
|
{
|
|
23128
23129
|
name: "md5sum",
|
|
23129
|
-
load: async () => (await import("./md5sum-SPU24VSG-
|
|
23130
|
+
load: async () => (await import("./md5sum-SPU24VSG-D9FkR68Z.mjs")).md5sumCommand
|
|
23130
23131
|
},
|
|
23131
23132
|
{
|
|
23132
23133
|
name: "sha1sum",
|
|
23133
|
-
load: async () => (await import("./sha1sum-2PTOAFR6-
|
|
23134
|
+
load: async () => (await import("./sha1sum-2PTOAFR6-BvcG60rc.mjs")).sha1sumCommand
|
|
23134
23135
|
},
|
|
23135
23136
|
{
|
|
23136
23137
|
name: "sha256sum",
|
|
23137
|
-
load: async () => (await import("./sha256sum-NS7D3IXX-
|
|
23138
|
+
load: async () => (await import("./sha256sum-NS7D3IXX-DVH9Rp51.mjs")).sha256sumCommand
|
|
23138
23139
|
},
|
|
23139
23140
|
{
|
|
23140
23141
|
name: "file",
|
|
@@ -23142,11 +23143,11 @@ var tt = [
|
|
|
23142
23143
|
},
|
|
23143
23144
|
{
|
|
23144
23145
|
name: "html-to-markdown",
|
|
23145
|
-
load: async () => (await import("./html-to-markdown-JW4MSQZO-
|
|
23146
|
+
load: async () => (await import("./html-to-markdown-JW4MSQZO-D77ZtAkg.mjs")).htmlToMarkdownCommand
|
|
23146
23147
|
},
|
|
23147
23148
|
{
|
|
23148
23149
|
name: "help",
|
|
23149
|
-
load: async () => (await import("./help-HZ6M2CKN-
|
|
23150
|
+
load: async () => (await import("./help-HZ6M2CKN-BNhOdIlA.mjs")).helpCommand
|
|
23150
23151
|
},
|
|
23151
23152
|
{
|
|
23152
23153
|
name: "which",
|
|
@@ -23154,7 +23155,7 @@ var tt = [
|
|
|
23154
23155
|
},
|
|
23155
23156
|
{
|
|
23156
23157
|
name: "tac",
|
|
23157
|
-
load: async () => (await import("./tac-2STMMJYW-
|
|
23158
|
+
load: async () => (await import("./tac-2STMMJYW-DPVvOOFh.mjs")).tac
|
|
23158
23159
|
},
|
|
23159
23160
|
{
|
|
23160
23161
|
name: "hostname",
|
|
@@ -23166,49 +23167,49 @@ var tt = [
|
|
|
23166
23167
|
},
|
|
23167
23168
|
{
|
|
23168
23169
|
name: "od",
|
|
23169
|
-
load: async () => (await import("./od-WOKFDJTP-
|
|
23170
|
+
load: async () => (await import("./od-WOKFDJTP-BMjM1Vpo.mjs")).od
|
|
23170
23171
|
},
|
|
23171
23172
|
{
|
|
23172
23173
|
name: "gzip",
|
|
23173
|
-
load: async () => (await import("./gzip-O5ASJAFY-
|
|
23174
|
+
load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).gzipCommand
|
|
23174
23175
|
},
|
|
23175
23176
|
{
|
|
23176
23177
|
name: "gunzip",
|
|
23177
|
-
load: async () => (await import("./gzip-O5ASJAFY-
|
|
23178
|
+
load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).gunzipCommand
|
|
23178
23179
|
},
|
|
23179
23180
|
{
|
|
23180
23181
|
name: "zcat",
|
|
23181
|
-
load: async () => (await import("./gzip-O5ASJAFY-
|
|
23182
|
+
load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).zcatCommand
|
|
23182
23183
|
}
|
|
23183
23184
|
];
|
|
23184
23185
|
(typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
|
|
23185
23186
|
name: "tar",
|
|
23186
|
-
load: async () => (await import("./tar-STHHZTZ6-
|
|
23187
|
+
load: async () => (await import("./tar-STHHZTZ6-DTf5Ifnn.mjs")).tarCommand
|
|
23187
23188
|
}), tt.push({
|
|
23188
23189
|
name: "yq",
|
|
23189
|
-
load: async () => (await import("./yq-4QJW3EQG-
|
|
23190
|
+
load: async () => (await import("./yq-4QJW3EQG-BvkjygaH.mjs")).yqCommand
|
|
23190
23191
|
}), tt.push({
|
|
23191
23192
|
name: "xan",
|
|
23192
|
-
load: async () => (await import("./xan-Y6WF3IRG-
|
|
23193
|
+
load: async () => (await import("./xan-Y6WF3IRG-9KChSctb.mjs")).xanCommand
|
|
23193
23194
|
}), tt.push({
|
|
23194
23195
|
name: "sqlite3",
|
|
23195
|
-
load: async () => (await import("./sqlite3-CGOEFJAO-
|
|
23196
|
+
load: async () => (await import("./sqlite3-CGOEFJAO-DdQnH7sK.mjs")).sqlite3Command
|
|
23196
23197
|
}));
|
|
23197
23198
|
var Yt = [];
|
|
23198
23199
|
(typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
|
|
23199
23200
|
name: "python3",
|
|
23200
|
-
load: async () => (await import("./python3-POMOR4OA-
|
|
23201
|
+
load: async () => (await import("./python3-POMOR4OA-Dnqvkl59.mjs")).python3Command
|
|
23201
23202
|
}), Yt.push({
|
|
23202
23203
|
name: "python",
|
|
23203
|
-
load: async () => (await import("./python3-POMOR4OA-
|
|
23204
|
+
load: async () => (await import("./python3-POMOR4OA-Dnqvkl59.mjs")).pythonCommand
|
|
23204
23205
|
}));
|
|
23205
23206
|
var Qt = [];
|
|
23206
23207
|
(typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
|
|
23207
23208
|
name: "js-exec",
|
|
23208
|
-
load: async () => (await import("./js-exec-N5KEZBH7-
|
|
23209
|
+
load: async () => (await import("./js-exec-N5KEZBH7-PxuNBAca.mjs")).jsExecCommand
|
|
23209
23210
|
}), Qt.push({
|
|
23210
23211
|
name: "node",
|
|
23211
|
-
load: async () => (await import("./js-exec-N5KEZBH7-
|
|
23212
|
+
load: async () => (await import("./js-exec-N5KEZBH7-PxuNBAca.mjs")).nodeStubCommand
|
|
23212
23213
|
}));
|
|
23213
23214
|
new TextEncoder();
|
|
23214
23215
|
Object.freeze({
|
|
@@ -24226,11 +24227,12 @@ function normalizeLegacySlugFields(value) {
|
|
|
24226
24227
|
return next;
|
|
24227
24228
|
}
|
|
24228
24229
|
const slugField = z.string().trim().min(1);
|
|
24229
|
-
const
|
|
24230
|
+
const requiredTextField = z.string().trim().min(1);
|
|
24231
|
+
const optionalTextField = z.string().trim().min(1).optional();
|
|
24230
24232
|
const baseSourceShape = {
|
|
24231
24233
|
slug: slugField,
|
|
24232
|
-
name:
|
|
24233
|
-
description:
|
|
24234
|
+
name: requiredTextField,
|
|
24235
|
+
description: requiredTextField,
|
|
24234
24236
|
attach: z.function()
|
|
24235
24237
|
};
|
|
24236
24238
|
const webhookSourceSchema = z.object({
|
|
@@ -24848,7 +24850,7 @@ function withOrganizationProjectDatabase() {
|
|
|
24848
24850
|
}
|
|
24849
24851
|
//#endregion
|
|
24850
24852
|
//#region src/routes/account/users/me/avatar/GET.ts
|
|
24851
|
-
const handler$
|
|
24853
|
+
const handler$91 = async (c) => {
|
|
24852
24854
|
const dbUser = await selectUserById(c.get("user").id);
|
|
24853
24855
|
if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
|
|
24854
24856
|
return c.json(UserAvatarSchema.parse({ url: dbUser.image ?? null }));
|
|
@@ -24867,7 +24869,7 @@ function avatarExtensionForContentType(contentType) {
|
|
|
24867
24869
|
}
|
|
24868
24870
|
//#endregion
|
|
24869
24871
|
//#region src/routes/account/users/me/avatar/presign/POST.ts
|
|
24870
|
-
const handler$
|
|
24872
|
+
const handler$90 = async (c) => {
|
|
24871
24873
|
const parsed = PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
|
|
24872
24874
|
if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
|
|
24873
24875
|
const extension = avatarExtensionForContentType(parsed.data.contentType);
|
|
@@ -24907,7 +24909,7 @@ async function deleteStoredImageIfOwned(input) {
|
|
|
24907
24909
|
}
|
|
24908
24910
|
//#endregion
|
|
24909
24911
|
//#region src/routes/account/users/me/avatar/PATCH.ts
|
|
24910
|
-
const handler$
|
|
24912
|
+
const handler$89 = async (c) => {
|
|
24911
24913
|
const parsed = UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
|
|
24912
24914
|
if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
|
|
24913
24915
|
const user = c.get("user");
|
|
@@ -24949,14 +24951,14 @@ const handler$81 = async (c) => {
|
|
|
24949
24951
|
};
|
|
24950
24952
|
//#endregion
|
|
24951
24953
|
//#region src/routes/account/users/me/preferences/GET.ts
|
|
24952
|
-
const handler$
|
|
24954
|
+
const handler$88 = async (c) => {
|
|
24953
24955
|
const dbUser = await selectUserById(c.get("user").id);
|
|
24954
24956
|
if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
|
|
24955
24957
|
return c.json(UserPreferencesSchema.parse(normalizeUserPreferences(dbUser.preferences)));
|
|
24956
24958
|
};
|
|
24957
24959
|
//#endregion
|
|
24958
24960
|
//#region src/routes/account/users/me/preferences/PATCH.ts
|
|
24959
|
-
const handler$
|
|
24961
|
+
const handler$87 = async (c) => {
|
|
24960
24962
|
const parsed = UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
|
|
24961
24963
|
if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
|
|
24962
24964
|
const user = c.get("user");
|
|
@@ -24971,7 +24973,7 @@ const handler$79 = async (c) => {
|
|
|
24971
24973
|
};
|
|
24972
24974
|
//#endregion
|
|
24973
24975
|
//#region src/routes/account/organizations/GET.ts
|
|
24974
|
-
const handler$
|
|
24976
|
+
const handler$86 = async (c) => {
|
|
24975
24977
|
const memberships = await selectUserOrganizations(c.get("user").id);
|
|
24976
24978
|
return c.json(ListOrganizationsResponseSchema.parse(memberships.map(mapUserOrganization)));
|
|
24977
24979
|
};
|
|
@@ -25049,7 +25051,7 @@ function createOrganizationHandler(deps) {
|
|
|
25049
25051
|
}
|
|
25050
25052
|
//#endregion
|
|
25051
25053
|
//#region src/routes/account/organizations/slug-available/GET.ts
|
|
25052
|
-
const handler$
|
|
25054
|
+
const handler$85 = async (c) => {
|
|
25053
25055
|
const parsed = SlugAvailabilityQuerySchema.safeParse({
|
|
25054
25056
|
slug: c.req.query("slug"),
|
|
25055
25057
|
excludeOrganizationId: c.req.query("excludeOrganizationId")
|
|
@@ -25060,7 +25062,7 @@ const handler$77 = async (c) => {
|
|
|
25060
25062
|
};
|
|
25061
25063
|
//#endregion
|
|
25062
25064
|
//#region src/routes/account/organizations/[organizationId]/GET.ts
|
|
25063
|
-
const handler$
|
|
25065
|
+
const handler$84 = async (c) => {
|
|
25064
25066
|
const { organizationId } = c.get("organization");
|
|
25065
25067
|
const membership = await selectUserOrganizationMembership(c.get("user").id, organizationId);
|
|
25066
25068
|
if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
|
|
@@ -25068,7 +25070,7 @@ const handler$76 = async (c) => {
|
|
|
25068
25070
|
};
|
|
25069
25071
|
//#endregion
|
|
25070
25072
|
//#region src/routes/account/organizations/[organizationId]/PATCH.ts
|
|
25071
|
-
const handler$
|
|
25073
|
+
const handler$83 = async (c) => {
|
|
25072
25074
|
const organization = c.get("organization");
|
|
25073
25075
|
const body = await c.req.json().catch(() => null);
|
|
25074
25076
|
const parsed = UpdateOrganizationRequestSchema.safeParse(body);
|
|
@@ -25093,7 +25095,7 @@ const handler$75 = async (c) => {
|
|
|
25093
25095
|
};
|
|
25094
25096
|
//#endregion
|
|
25095
25097
|
//#region src/routes/account/organizations/[organizationId]/branding/GET.ts
|
|
25096
|
-
const handler$
|
|
25098
|
+
const handler$82 = async (c) => {
|
|
25097
25099
|
const { organizationId } = c.get("organization");
|
|
25098
25100
|
const organization = await selectOrganizationById(organizationId);
|
|
25099
25101
|
if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
|
|
@@ -25142,7 +25144,7 @@ async function finalizeOrgLogoVariant(input) {
|
|
|
25142
25144
|
publicUrl: finalized.publicUrl
|
|
25143
25145
|
};
|
|
25144
25146
|
}
|
|
25145
|
-
const handler$
|
|
25147
|
+
const handler$81 = async (c) => {
|
|
25146
25148
|
const parsed = OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
|
|
25147
25149
|
if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
|
|
25148
25150
|
const { organizationId } = c.get("organization");
|
|
@@ -25170,7 +25172,7 @@ const handler$73 = async (c) => {
|
|
|
25170
25172
|
};
|
|
25171
25173
|
//#endregion
|
|
25172
25174
|
//#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
|
|
25173
|
-
const handler$
|
|
25175
|
+
const handler$80 = async (c) => {
|
|
25174
25176
|
const parsed = PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
|
|
25175
25177
|
if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
|
|
25176
25178
|
const extension = avatarExtensionForContentType(parsed.data.contentType);
|
|
@@ -25271,7 +25273,7 @@ async function attachRanAsToDetail(detail, ranByUserId) {
|
|
|
25271
25273
|
}
|
|
25272
25274
|
//#endregion
|
|
25273
25275
|
//#region src/routes/account/history/GET.ts
|
|
25274
|
-
const handler$
|
|
25276
|
+
const handler$79 = async (c) => {
|
|
25275
25277
|
const organization = c.get("organization");
|
|
25276
25278
|
const ctx = accessContext(c);
|
|
25277
25279
|
const query = HistoryRunListQuerySchema.parse({
|
|
@@ -25294,7 +25296,7 @@ const handler$71 = async (c) => {
|
|
|
25294
25296
|
};
|
|
25295
25297
|
//#endregion
|
|
25296
25298
|
//#region src/routes/account/history/[runId]/GET.ts
|
|
25297
|
-
const handler$
|
|
25299
|
+
const handler$78 = async (c) => {
|
|
25298
25300
|
const runId = c.req.param("runId") ?? "";
|
|
25299
25301
|
if (!runId) return c.json(null, 404);
|
|
25300
25302
|
const core = await findHistoryRunCore(runId);
|
|
@@ -25329,11 +25331,12 @@ function formatModel(model) {
|
|
|
25329
25331
|
return model;
|
|
25330
25332
|
}
|
|
25331
25333
|
function toAgentSummary(row, options) {
|
|
25334
|
+
const name = row.name?.trim() || titleCaseKey(row.slug);
|
|
25332
25335
|
return AgentSummarySchema.parse({
|
|
25333
25336
|
id: row.id,
|
|
25334
25337
|
slug: row.slug,
|
|
25335
|
-
name
|
|
25336
|
-
description: row.description
|
|
25338
|
+
name,
|
|
25339
|
+
description: row.description?.trim() || name,
|
|
25337
25340
|
projectId: row.projectId,
|
|
25338
25341
|
updatedAt: row.updatedAt.toISOString(),
|
|
25339
25342
|
sourcePath: row.moduleFile,
|
|
@@ -25351,7 +25354,7 @@ function toAgentSummary(row, options) {
|
|
|
25351
25354
|
}
|
|
25352
25355
|
//#endregion
|
|
25353
25356
|
//#region src/routes/account/agents/GET.ts
|
|
25354
|
-
const handler$
|
|
25357
|
+
const handler$77 = async (c) => {
|
|
25355
25358
|
const filter = await resolveListProjectIds(c, listScope(c, agentListScope(accessContext(c))), c.req.query("projectId"));
|
|
25356
25359
|
if (filter === "empty") return c.json(AgentSummaryListResponseSchema.parse([]));
|
|
25357
25360
|
const rows = await listActiveAgents(filter);
|
|
@@ -25365,7 +25368,7 @@ function touchResourceActivityBestEffort(options) {
|
|
|
25365
25368
|
}
|
|
25366
25369
|
//#endregion
|
|
25367
25370
|
//#region src/routes/account/agents/[agentId]/GET.ts
|
|
25368
|
-
const handler$
|
|
25371
|
+
const handler$76 = async (c) => {
|
|
25369
25372
|
const agentId = c.req.param("agentId") ?? "";
|
|
25370
25373
|
const row = agentId ? await selectActiveAgentById(agentId) : void 0;
|
|
25371
25374
|
if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(AgentSummaryDetailResponseSchema.parse(null));
|
|
@@ -25388,7 +25391,7 @@ const handler$68 = async (c) => {
|
|
|
25388
25391
|
function relativePathsFromStorageKeys(prefix, keys) {
|
|
25389
25392
|
return keys.filter((key) => key.startsWith(prefix) && key.endsWith(".md")).map((key) => key.slice(prefix.length)).filter((path) => !path.startsWith(".") && !path.includes("/."));
|
|
25390
25393
|
}
|
|
25391
|
-
const handler$
|
|
25394
|
+
const handler$75 = async (c) => {
|
|
25392
25395
|
const agentId = c.req.param("agentId") ?? "";
|
|
25393
25396
|
const row = agentId ? await selectActiveAgentById(agentId) : void 0;
|
|
25394
25397
|
if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
|
|
@@ -25413,7 +25416,7 @@ function isStorageNotFoundError(error) {
|
|
|
25413
25416
|
const status = typeof record.$metadata === "object" && record.$metadata !== null ? record.$metadata.httpStatusCode : void 0;
|
|
25414
25417
|
return name === "NoSuchKey" || code === "NoSuchKey" || code === "NotFound" || status === 404;
|
|
25415
25418
|
}
|
|
25416
|
-
const handler$
|
|
25419
|
+
const handler$74 = async (c) => {
|
|
25417
25420
|
const agentId = c.req.param("agentId") ?? "";
|
|
25418
25421
|
const path = c.req.query("path");
|
|
25419
25422
|
if (!path) return c.json(ErrorResponseSchema.parse({ error: "File path is required" }), 400);
|
|
@@ -25467,7 +25470,7 @@ function workspaceRelativePathsFromStorageKeys(keys) {
|
|
|
25467
25470
|
}
|
|
25468
25471
|
//#endregion
|
|
25469
25472
|
//#region src/routes/account/agents/[agentId]/workspace/files/GET.ts
|
|
25470
|
-
const handler$
|
|
25473
|
+
const handler$73 = async (c) => {
|
|
25471
25474
|
const agentId = c.req.param("agentId") ?? "";
|
|
25472
25475
|
const row = agentId ? await selectActiveAgentById(agentId) : void 0;
|
|
25473
25476
|
if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
|
|
@@ -25490,7 +25493,7 @@ const handler$65 = async (c) => {
|
|
|
25490
25493
|
};
|
|
25491
25494
|
//#endregion
|
|
25492
25495
|
//#region src/routes/account/agents/[agentId]/workspace/files/content/GET.ts
|
|
25493
|
-
const handler$
|
|
25496
|
+
const handler$72 = async (c) => {
|
|
25494
25497
|
const agentId = c.req.param("agentId") ?? "";
|
|
25495
25498
|
const path = c.req.query("path");
|
|
25496
25499
|
if (!path) return c.json(ErrorResponseSchema.parse({ error: "File path is required" }), 400);
|
|
@@ -25539,15 +25542,15 @@ async function cancelHistoryRun(c, kind, cancel) {
|
|
|
25539
25542
|
}
|
|
25540
25543
|
//#endregion
|
|
25541
25544
|
//#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
|
|
25542
|
-
const handler$
|
|
25545
|
+
const handler$71 = (c) => cancelHistoryRun(c, "agent", cancelAgentSession);
|
|
25543
25546
|
//#endregion
|
|
25544
25547
|
//#region src/routes/account/resources/workflows.ts
|
|
25545
25548
|
function toWorkflowSummary(row, options) {
|
|
25546
25549
|
return WorkflowSummarySchema.parse({
|
|
25547
25550
|
id: row.id,
|
|
25548
25551
|
slug: row.slug,
|
|
25549
|
-
name: row.name
|
|
25550
|
-
description: row.description
|
|
25552
|
+
name: row.name.trim(),
|
|
25553
|
+
description: row.description.trim(),
|
|
25551
25554
|
projectId: row.projectId,
|
|
25552
25555
|
updatedAt: row.updatedAt.toISOString(),
|
|
25553
25556
|
sourcePath: row.moduleFile,
|
|
@@ -25556,7 +25559,7 @@ function toWorkflowSummary(row, options) {
|
|
|
25556
25559
|
}
|
|
25557
25560
|
//#endregion
|
|
25558
25561
|
//#region src/routes/account/workflows/GET.ts
|
|
25559
|
-
const handler$
|
|
25562
|
+
const handler$70 = async (c) => {
|
|
25560
25563
|
const filter = await resolveListProjectIds(c, listScope(c, workflowListScope(accessContext(c))), c.req.query("projectId"));
|
|
25561
25564
|
if (filter === "empty") return c.json(WorkflowSummaryListResponseSchema.parse([]));
|
|
25562
25565
|
const rows = await listActiveWorkflows(filter);
|
|
@@ -25565,7 +25568,7 @@ const handler$62 = async (c) => {
|
|
|
25565
25568
|
};
|
|
25566
25569
|
//#endregion
|
|
25567
25570
|
//#region src/routes/account/workflows/[workflowId]/GET.ts
|
|
25568
|
-
const handler$
|
|
25571
|
+
const handler$69 = async (c) => {
|
|
25569
25572
|
const workflowId = c.req.param("workflowId") ?? "";
|
|
25570
25573
|
const row = workflowId ? await selectActiveWorkflowById(workflowId) : void 0;
|
|
25571
25574
|
if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(WorkflowSummaryDetailResponseSchema.parse(null));
|
|
@@ -25579,16 +25582,985 @@ const handler$61 = async (c) => {
|
|
|
25579
25582
|
return c.json(WorkflowSummaryDetailResponseSchema.parse(toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null })));
|
|
25580
25583
|
};
|
|
25581
25584
|
//#endregion
|
|
25585
|
+
//#region src/routes/account/workflows/resolve.ts
|
|
25586
|
+
async function resolveWorkflow(c, workflowId) {
|
|
25587
|
+
const row = workflowId ? await selectActiveWorkflowById(workflowId) : void 0;
|
|
25588
|
+
if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return null;
|
|
25589
|
+
return {
|
|
25590
|
+
row,
|
|
25591
|
+
projectId: row.projectId
|
|
25592
|
+
};
|
|
25593
|
+
}
|
|
25594
|
+
/** Active deploy route-manifest entry for a workflow slug (input schema, flow graph, …). */
|
|
25595
|
+
async function loadWorkflowManifestEntry(projectId, slug) {
|
|
25596
|
+
const manifestJson = await selectActiveArtifactManifestForProject(projectId);
|
|
25597
|
+
if (!manifestJson) return null;
|
|
25598
|
+
return parseStoredRouteManifest(manifestJson).entries.find((item) => item.kind === "workflow" && item.slug === slug) ?? null;
|
|
25599
|
+
}
|
|
25600
|
+
/** The full active-deploy route manifest for a project (canvas needs the whole entry set). */
|
|
25601
|
+
async function loadActiveManifest(projectId) {
|
|
25602
|
+
const manifestJson = await selectActiveArtifactManifestForProject(projectId);
|
|
25603
|
+
if (!manifestJson) return null;
|
|
25604
|
+
return parseStoredRouteManifest(manifestJson);
|
|
25605
|
+
}
|
|
25606
|
+
//#endregion
|
|
25607
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/build-canvas.ts
|
|
25608
|
+
function indexManifest(entries) {
|
|
25609
|
+
const actions = /* @__PURE__ */ new Map();
|
|
25610
|
+
const agents = /* @__PURE__ */ new Map();
|
|
25611
|
+
const workflows = /* @__PURE__ */ new Map();
|
|
25612
|
+
for (const entry of entries) if (entry.kind === "action") actions.set(entry.slug, entry);
|
|
25613
|
+
else if (entry.kind === "agent") agents.set(entry.slug, entry);
|
|
25614
|
+
else if (entry.kind === "workflow") workflows.set(entry.slug, entry);
|
|
25615
|
+
return {
|
|
25616
|
+
actions,
|
|
25617
|
+
agents,
|
|
25618
|
+
workflows
|
|
25619
|
+
};
|
|
25620
|
+
}
|
|
25621
|
+
function fieldsFromSchema(schema) {
|
|
25622
|
+
return jsonSchemaToWorkflowInputSchema(schema ?? {}).fields;
|
|
25623
|
+
}
|
|
25624
|
+
/** A read-only inspector row showing a captured llm option as a literal value. */
|
|
25625
|
+
function llmOptionRow(key, label, value) {
|
|
25626
|
+
return {
|
|
25627
|
+
key,
|
|
25628
|
+
label,
|
|
25629
|
+
type: "string",
|
|
25630
|
+
required: false,
|
|
25631
|
+
binding: { tokens: [{
|
|
25632
|
+
kind: "text",
|
|
25633
|
+
text: value
|
|
25634
|
+
}] }
|
|
25635
|
+
};
|
|
25636
|
+
}
|
|
25637
|
+
/**
|
|
25638
|
+
* Fallback for manifests built before llm option bindings were captured: surface the
|
|
25639
|
+
* literal-only `llmOptions`. New deploys carry `data.inputBindings` on llm nodes and
|
|
25640
|
+
* use {@link llmOptionRowsFromBindings} instead.
|
|
25641
|
+
*/
|
|
25642
|
+
function llmOptionInputs(options) {
|
|
25643
|
+
if (!options) return [];
|
|
25644
|
+
const rows = [];
|
|
25645
|
+
if (options.model) rows.push(llmOptionRow("model", "Model", options.model));
|
|
25646
|
+
if (options.thinkingLevel) rows.push(llmOptionRow("thinkingLevel", "Thinking", options.thinkingLevel));
|
|
25647
|
+
if (typeof options.maxTokens === "number") rows.push(llmOptionRow("maxTokens", "Max tokens", String(options.maxTokens)));
|
|
25648
|
+
if (typeof options.temperature === "number") rows.push(llmOptionRow("temperature", "Temperature", String(options.temperature)));
|
|
25649
|
+
if (options.hasSystemPrompt) rows.push(llmOptionRow("system", "System prompt", "Configured"));
|
|
25650
|
+
if (options.hasOutputSchema) rows.push(llmOptionRow("outputSchema", "Output", "Structured"));
|
|
25651
|
+
return rows;
|
|
25652
|
+
}
|
|
25653
|
+
/** Display labels + render order for known `promptLlm` options. */
|
|
25654
|
+
const LLM_OPTION_LABELS = {
|
|
25655
|
+
model: "Model",
|
|
25656
|
+
system: "System prompt",
|
|
25657
|
+
outputSchema: "Output",
|
|
25658
|
+
maxTokens: "Max tokens",
|
|
25659
|
+
temperature: "Temperature",
|
|
25660
|
+
thinkingLevel: "Thinking"
|
|
25661
|
+
};
|
|
25662
|
+
const LLM_OPTION_ORDER = Object.keys(LLM_OPTION_LABELS);
|
|
25663
|
+
/**
|
|
25664
|
+
* Render the producer-captured llm option bindings as visible inspector rows so
|
|
25665
|
+
* model/system/output appear with the same variable/call/reference chips as action
|
|
25666
|
+
* inputs (e.g. `model: CLASSIFY_MODEL` → a variable chip resolved to its const value).
|
|
25667
|
+
*/
|
|
25668
|
+
function llmOptionRowsFromBindings(rawBindings, labelByNodeId, constants) {
|
|
25669
|
+
const rows = [];
|
|
25670
|
+
const known = new Set(LLM_OPTION_ORDER);
|
|
25671
|
+
for (const key of LLM_OPTION_ORDER) {
|
|
25672
|
+
const raw = rawBindings[key];
|
|
25673
|
+
if (!raw) continue;
|
|
25674
|
+
rows.push({
|
|
25675
|
+
key,
|
|
25676
|
+
label: LLM_OPTION_LABELS[key] ?? key,
|
|
25677
|
+
type: "string",
|
|
25678
|
+
required: false,
|
|
25679
|
+
binding: resolveBinding(raw, labelByNodeId, constants)
|
|
25680
|
+
});
|
|
25681
|
+
}
|
|
25682
|
+
for (const [key, raw] of Object.entries(rawBindings)) {
|
|
25683
|
+
if (known.has(key)) continue;
|
|
25684
|
+
rows.push({
|
|
25685
|
+
key,
|
|
25686
|
+
label: key,
|
|
25687
|
+
type: "string",
|
|
25688
|
+
required: false,
|
|
25689
|
+
additional: true,
|
|
25690
|
+
binding: resolveBinding(raw, labelByNodeId, constants)
|
|
25691
|
+
});
|
|
25692
|
+
}
|
|
25693
|
+
return rows;
|
|
25694
|
+
}
|
|
25695
|
+
/** The concrete value a binding resolves to, if it's a single literal/known-const token. */
|
|
25696
|
+
function resolvedScalar(raw, constants) {
|
|
25697
|
+
if (!raw || raw.tokens.length !== 1) return;
|
|
25698
|
+
const token = raw.tokens[0];
|
|
25699
|
+
if (token.kind === "text") return token.text;
|
|
25700
|
+
if (token.kind === "variable") {
|
|
25701
|
+
const value = constants?.[token.text];
|
|
25702
|
+
return value !== void 0 ? String(value) : void 0;
|
|
25703
|
+
}
|
|
25704
|
+
}
|
|
25705
|
+
/** Resolve a raw producer binding into the inspector binding, filling source labels + const values. */
|
|
25706
|
+
function resolveBinding(raw, labelByNodeId, constants) {
|
|
25707
|
+
return {
|
|
25708
|
+
tokens: raw.tokens.map((token) => {
|
|
25709
|
+
if (token.kind === "text") return {
|
|
25710
|
+
kind: "text",
|
|
25711
|
+
text: token.text
|
|
25712
|
+
};
|
|
25713
|
+
if (token.kind === "call") return {
|
|
25714
|
+
kind: "call",
|
|
25715
|
+
name: token.name
|
|
25716
|
+
};
|
|
25717
|
+
if (token.kind === "variable") {
|
|
25718
|
+
const value = constants?.[token.text];
|
|
25719
|
+
return {
|
|
25720
|
+
kind: "variable",
|
|
25721
|
+
text: token.text,
|
|
25722
|
+
...value !== void 0 ? { resolvedValue: String(value) } : {}
|
|
25723
|
+
};
|
|
25724
|
+
}
|
|
25725
|
+
const sourceLabel = token.sourceNodeId ? labelByNodeId.get(token.sourceNodeId) ?? token.sourceNodeId : "";
|
|
25726
|
+
return {
|
|
25727
|
+
kind: "reference",
|
|
25728
|
+
...token.sourceNodeId ? { sourceNodeId: token.sourceNodeId } : {},
|
|
25729
|
+
sourceLabel,
|
|
25730
|
+
...token.field ? { field: token.field } : {}
|
|
25731
|
+
};
|
|
25732
|
+
}),
|
|
25733
|
+
...raw.multiline ? { multiline: true } : {}
|
|
25734
|
+
};
|
|
25735
|
+
}
|
|
25736
|
+
/** Attach call-site value bindings to a step's inspector inputs (returns a new inputs list). */
|
|
25737
|
+
function inputsWithBindings(inputs, rawBindings, labelByNodeId, constants) {
|
|
25738
|
+
const matched = /* @__PURE__ */ new Set();
|
|
25739
|
+
const result = inputs.map((field) => {
|
|
25740
|
+
const raw = rawBindings[field.key];
|
|
25741
|
+
if (!raw) return field;
|
|
25742
|
+
matched.add(field.key);
|
|
25743
|
+
return {
|
|
25744
|
+
...field,
|
|
25745
|
+
binding: resolveBinding(raw, labelByNodeId, constants)
|
|
25746
|
+
};
|
|
25747
|
+
});
|
|
25748
|
+
for (const [key, raw] of Object.entries(rawBindings)) {
|
|
25749
|
+
if (matched.has(key)) continue;
|
|
25750
|
+
result.push({
|
|
25751
|
+
key,
|
|
25752
|
+
label: key,
|
|
25753
|
+
type: "string",
|
|
25754
|
+
required: false,
|
|
25755
|
+
additional: true,
|
|
25756
|
+
binding: resolveBinding(raw, labelByNodeId, constants)
|
|
25757
|
+
});
|
|
25758
|
+
}
|
|
25759
|
+
return result;
|
|
25760
|
+
}
|
|
25761
|
+
/**
|
|
25762
|
+
* Authored metadata for a single `step` node, resolved from its deploy-time `data.slug`
|
|
25763
|
+
* + `data.callKind` against the manifest. v1 omits call-site input bindings (the producer
|
|
25764
|
+
* does not capture argument expressions yet). Returns null for steps the inspector can
|
|
25765
|
+
* describe from the graph alone (wait/hook) or that can't be resolved.
|
|
25766
|
+
*/
|
|
25767
|
+
function stepMeta(node, index) {
|
|
25768
|
+
const slug = node.data.slug;
|
|
25769
|
+
const callKind = node.data.callKind;
|
|
25770
|
+
const appSlug = node.data.appSlug;
|
|
25771
|
+
if (callKind === "agent") {
|
|
25772
|
+
const agent = slug ? index.agents.get(slug) : void 0;
|
|
25773
|
+
return {
|
|
25774
|
+
kind: "agent",
|
|
25775
|
+
slug: slug ?? node.data.label,
|
|
25776
|
+
name: agent?.name ?? (node.data.label || "Agent"),
|
|
25777
|
+
description: agent?.description ?? "",
|
|
25778
|
+
...appSlug ? { appSlug } : {},
|
|
25779
|
+
inputs: [],
|
|
25780
|
+
outputs: [],
|
|
25781
|
+
...agent?.appSlugs.length ? { requiredApps: agent.appSlugs } : {},
|
|
25782
|
+
...agent?.model ? { model: agent.model } : {},
|
|
25783
|
+
...agent ? { toolCount: agent.toolCount } : {}
|
|
25784
|
+
};
|
|
25785
|
+
}
|
|
25786
|
+
if (callKind === "llm") return {
|
|
25787
|
+
kind: "llm",
|
|
25788
|
+
slug: slug ?? "llm",
|
|
25789
|
+
name: node.data.label || "LLM prompt",
|
|
25790
|
+
...node.data.llmOptions?.model ? { model: node.data.llmOptions.model } : {},
|
|
25791
|
+
inputs: node.data.inputBindings ? [] : llmOptionInputs(node.data.llmOptions),
|
|
25792
|
+
outputs: []
|
|
25793
|
+
};
|
|
25794
|
+
if (callKind === "workflow-step") {
|
|
25795
|
+
const action = slug ? index.actions.get(slug) : void 0;
|
|
25796
|
+
if (action) return {
|
|
25797
|
+
kind: "action",
|
|
25798
|
+
slug: action.slug,
|
|
25799
|
+
name: action.name,
|
|
25800
|
+
description: action.description,
|
|
25801
|
+
...appSlug ? {
|
|
25802
|
+
appSlug,
|
|
25803
|
+
requiredApps: [appSlug]
|
|
25804
|
+
} : {},
|
|
25805
|
+
inputs: fieldsFromSchema(action.inputSchema),
|
|
25806
|
+
outputs: fieldsFromSchema(action.outputSchema)
|
|
25807
|
+
};
|
|
25808
|
+
const childWorkflow = slug ? index.workflows.get(slug) : void 0;
|
|
25809
|
+
if (childWorkflow) return {
|
|
25810
|
+
kind: "workflow",
|
|
25811
|
+
slug: childWorkflow.slug,
|
|
25812
|
+
name: childWorkflow.name,
|
|
25813
|
+
description: childWorkflow.description,
|
|
25814
|
+
inputs: fieldsFromSchema(childWorkflow.requestSchema),
|
|
25815
|
+
outputs: fieldsFromSchema(childWorkflow.responseSchema)
|
|
25816
|
+
};
|
|
25817
|
+
return {
|
|
25818
|
+
kind: "action",
|
|
25819
|
+
slug: slug ?? node.data.label,
|
|
25820
|
+
name: node.data.label || slug || "Action",
|
|
25821
|
+
...appSlug ? {
|
|
25822
|
+
appSlug,
|
|
25823
|
+
requiredApps: [appSlug]
|
|
25824
|
+
} : {},
|
|
25825
|
+
inputs: [],
|
|
25826
|
+
outputs: []
|
|
25827
|
+
};
|
|
25828
|
+
}
|
|
25829
|
+
return null;
|
|
25830
|
+
}
|
|
25831
|
+
/**
|
|
25832
|
+
* Assemble the read-only `WorkflowCanvas` deterministic part: the deploy-time AST skeleton
|
|
25833
|
+
* with manifest trigger-source node(s) prepended and the authored-metadata join keyed by
|
|
25834
|
+
* node id. Pure (no I/O) so it is unit-testable; the route gathers the manifest + workspace
|
|
25835
|
+
* triggers and the LLM annotation layer separately.
|
|
25836
|
+
*/
|
|
25837
|
+
function buildWorkflowCanvas(input) {
|
|
25838
|
+
const { workflowSlug, workflowEntry, entries, triggers } = input;
|
|
25839
|
+
const flowGraph = workflowEntry.flowGraph ?? {
|
|
25840
|
+
nodes: [],
|
|
25841
|
+
edges: []
|
|
25842
|
+
};
|
|
25843
|
+
const constants = flowGraph.constants;
|
|
25844
|
+
const index = indexManifest(entries);
|
|
25845
|
+
const nodeMetadata = {};
|
|
25846
|
+
const attached = triggers.filter((trigger) => trigger.assignments.some((assignment) => assignment.kind === "workflow" && assignment.slug === workflowSlug));
|
|
25847
|
+
const triggerNodes = [];
|
|
25848
|
+
const triggerEdges = [];
|
|
25849
|
+
const workflowInputFields = fieldsFromSchema(workflowEntry.requestSchema);
|
|
25850
|
+
if (attached.length === 0) {
|
|
25851
|
+
const id = "trigger-manual";
|
|
25852
|
+
triggerNodes.push({
|
|
25853
|
+
id,
|
|
25854
|
+
nodeType: "trigger-source",
|
|
25855
|
+
data: {
|
|
25856
|
+
label: "Manual / API",
|
|
25857
|
+
triggerType: "manual"
|
|
25858
|
+
}
|
|
25859
|
+
});
|
|
25860
|
+
triggerEdges.push({
|
|
25861
|
+
id: "edge-trigger-manual",
|
|
25862
|
+
source: id,
|
|
25863
|
+
target: "entry"
|
|
25864
|
+
});
|
|
25865
|
+
nodeMetadata[id] = {
|
|
25866
|
+
kind: "trigger",
|
|
25867
|
+
slug: "manual",
|
|
25868
|
+
name: "Manual / API",
|
|
25869
|
+
inputs: [],
|
|
25870
|
+
outputs: workflowInputFields
|
|
25871
|
+
};
|
|
25872
|
+
} else attached.forEach((trigger, i) => {
|
|
25873
|
+
const id = `trigger-${trigger.slug}`;
|
|
25874
|
+
triggerNodes.push({
|
|
25875
|
+
id,
|
|
25876
|
+
nodeType: "trigger-source",
|
|
25877
|
+
data: {
|
|
25878
|
+
label: trigger.name,
|
|
25879
|
+
triggerType: trigger.type
|
|
25880
|
+
}
|
|
25881
|
+
});
|
|
25882
|
+
triggerEdges.push({
|
|
25883
|
+
id: `edge-trigger-${i}`,
|
|
25884
|
+
source: id,
|
|
25885
|
+
target: "entry"
|
|
25886
|
+
});
|
|
25887
|
+
nodeMetadata[id] = {
|
|
25888
|
+
kind: "trigger",
|
|
25889
|
+
slug: trigger.slug,
|
|
25890
|
+
name: trigger.name,
|
|
25891
|
+
description: trigger.description,
|
|
25892
|
+
inputs: [],
|
|
25893
|
+
outputs: []
|
|
25894
|
+
};
|
|
25895
|
+
});
|
|
25896
|
+
const codeBlocks = [];
|
|
25897
|
+
for (const node of flowGraph.nodes) {
|
|
25898
|
+
if (node.nodeType === "entry") {
|
|
25899
|
+
nodeMetadata[node.id] = {
|
|
25900
|
+
kind: "boundary",
|
|
25901
|
+
slug: "entry",
|
|
25902
|
+
name: "Start",
|
|
25903
|
+
inputs: workflowInputFields,
|
|
25904
|
+
outputs: workflowInputFields
|
|
25905
|
+
};
|
|
25906
|
+
continue;
|
|
25907
|
+
}
|
|
25908
|
+
if (node.nodeType === "exit") {
|
|
25909
|
+
const outputFields = fieldsFromSchema(workflowEntry.responseSchema);
|
|
25910
|
+
nodeMetadata[node.id] = {
|
|
25911
|
+
kind: "boundary",
|
|
25912
|
+
slug: "exit",
|
|
25913
|
+
name: "Output",
|
|
25914
|
+
inputs: outputFields,
|
|
25915
|
+
outputs: outputFields
|
|
25916
|
+
};
|
|
25917
|
+
continue;
|
|
25918
|
+
}
|
|
25919
|
+
if (node.nodeType === "code-block") {
|
|
25920
|
+
codeBlocks.push({
|
|
25921
|
+
nodeId: node.id,
|
|
25922
|
+
source: node.data.label
|
|
25923
|
+
});
|
|
25924
|
+
continue;
|
|
25925
|
+
}
|
|
25926
|
+
if (node.nodeType === "step") {
|
|
25927
|
+
const meta = stepMeta(node, index);
|
|
25928
|
+
if (meta) nodeMetadata[node.id] = meta;
|
|
25929
|
+
}
|
|
25930
|
+
}
|
|
25931
|
+
const labelByNodeId = /* @__PURE__ */ new Map();
|
|
25932
|
+
for (const [id, meta] of Object.entries(nodeMetadata)) labelByNodeId.set(id, meta.name);
|
|
25933
|
+
for (const node of flowGraph.nodes) if (!labelByNodeId.has(node.id)) labelByNodeId.set(node.id, node.data.label);
|
|
25934
|
+
for (const node of flowGraph.nodes) {
|
|
25935
|
+
const rawBindings = node.data.inputBindings;
|
|
25936
|
+
const meta = nodeMetadata[node.id];
|
|
25937
|
+
if (node.nodeType !== "step" || !rawBindings || !meta) continue;
|
|
25938
|
+
if (node.data.callKind === "llm") {
|
|
25939
|
+
meta.inputs = llmOptionRowsFromBindings(rawBindings, labelByNodeId, constants);
|
|
25940
|
+
if (!meta.model) {
|
|
25941
|
+
const resolvedModel = resolvedScalar(rawBindings.model, constants);
|
|
25942
|
+
if (resolvedModel) meta.model = resolvedModel;
|
|
25943
|
+
}
|
|
25944
|
+
} else meta.inputs = inputsWithBindings(meta.inputs, rawBindings, labelByNodeId, constants);
|
|
25945
|
+
}
|
|
25946
|
+
return {
|
|
25947
|
+
graph: {
|
|
25948
|
+
nodes: [...triggerNodes, ...flowGraph.nodes],
|
|
25949
|
+
edges: [...triggerEdges, ...flowGraph.edges]
|
|
25950
|
+
},
|
|
25951
|
+
nodeMetadata,
|
|
25952
|
+
codeBlocks
|
|
25953
|
+
};
|
|
25954
|
+
}
|
|
25955
|
+
//#endregion
|
|
25956
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/GET.ts
|
|
25957
|
+
/** Bumped when the annotation prompt/model changes, so cached annotations invalidate. */
|
|
25958
|
+
const ANNOTATIONS_GENERATOR_VERSION = "wf-canvas-annotations-v1";
|
|
25959
|
+
const handler$68 = async (c) => {
|
|
25960
|
+
const { organizationId } = c.get("organization");
|
|
25961
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
25962
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
25963
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
25964
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
25965
|
+
const { row, projectId } = resolved;
|
|
25966
|
+
const manifest = await loadActiveManifest(projectId);
|
|
25967
|
+
const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
|
|
25968
|
+
if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
|
|
25969
|
+
const triggers = await listWorkspaceTriggers([projectId]);
|
|
25970
|
+
const { graph, nodeMetadata, codeBlocks } = buildWorkflowCanvas({
|
|
25971
|
+
workflowSlug: row.slug,
|
|
25972
|
+
workflowEntry,
|
|
25973
|
+
entries: manifest?.entries ?? [],
|
|
25974
|
+
triggers
|
|
25975
|
+
});
|
|
25976
|
+
const model = DEFAULT_WORKFLOW_CANVAS_MODEL;
|
|
25977
|
+
const graphHash = createHash("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
|
|
25978
|
+
const hash = createHash("sha256").update(JSON.stringify({
|
|
25979
|
+
source: workflowEntry.flowGraphSourceHash ?? "",
|
|
25980
|
+
graph: graphHash,
|
|
25981
|
+
model,
|
|
25982
|
+
version: ANNOTATIONS_GENERATOR_VERSION
|
|
25983
|
+
})).digest("hex");
|
|
25984
|
+
if (codeBlocks.length === 0) return c.json(WorkflowCanvasSchema.parse({
|
|
25985
|
+
graph,
|
|
25986
|
+
nodeMetadata,
|
|
25987
|
+
annotations: {},
|
|
25988
|
+
status: "ready",
|
|
25989
|
+
hash,
|
|
25990
|
+
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
25991
|
+
model
|
|
25992
|
+
}));
|
|
25993
|
+
const cache = await runWithProjectScope(projectId, () => selectWorkflowCanvasAnnotations(workflowId));
|
|
25994
|
+
const cached = cache?.annotations ?? {};
|
|
25995
|
+
if (cache && cache.hash === hash) {
|
|
25996
|
+
if (cache.status === "ready" || cache.status === "failed") return c.json(WorkflowCanvasSchema.parse({
|
|
25997
|
+
graph,
|
|
25998
|
+
nodeMetadata,
|
|
25999
|
+
annotations: cached,
|
|
26000
|
+
status: "ready",
|
|
26001
|
+
hash,
|
|
26002
|
+
generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
|
|
26003
|
+
model: cache.model ?? model
|
|
26004
|
+
}));
|
|
26005
|
+
if (cache.status === "generating") return c.json(WorkflowCanvasSchema.parse({
|
|
26006
|
+
graph,
|
|
26007
|
+
nodeMetadata,
|
|
26008
|
+
annotations: cached,
|
|
26009
|
+
status: "generating",
|
|
26010
|
+
hash,
|
|
26011
|
+
generatedAt: null,
|
|
26012
|
+
model: cache.model ?? model
|
|
26013
|
+
}));
|
|
26014
|
+
}
|
|
26015
|
+
const organization = await selectOrganizationById(organizationId);
|
|
26016
|
+
if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
|
|
26017
|
+
await runWithProjectScope(projectId, () => setWorkflowCanvasAnnotationsGenerating(workflowId, hash));
|
|
26018
|
+
try {
|
|
26019
|
+
await (await getProjectScheduler(organization, projectId)).enqueue({
|
|
26020
|
+
kind: "workflow-canvas-annotations",
|
|
26021
|
+
targetId: workflowId,
|
|
26022
|
+
runId: crypto.randomUUID(),
|
|
26023
|
+
trigger: "api",
|
|
26024
|
+
projectId,
|
|
26025
|
+
dedupeKey: `workflow-canvas:${workflowId}:${hash}`,
|
|
26026
|
+
payload: {
|
|
26027
|
+
workflowId,
|
|
26028
|
+
projectId,
|
|
26029
|
+
hash,
|
|
26030
|
+
model,
|
|
26031
|
+
input: {
|
|
26032
|
+
workflowName: row.name.trim(),
|
|
26033
|
+
workflowDescription: row.description.trim(),
|
|
26034
|
+
codeBlocks
|
|
26035
|
+
}
|
|
26036
|
+
}
|
|
26037
|
+
});
|
|
26038
|
+
} catch {
|
|
26039
|
+
await runWithProjectScope(projectId, () => updateWorkflowCanvasAnnotations(workflowId, { status: "failed" }));
|
|
26040
|
+
return c.json(WorkflowCanvasSchema.parse({
|
|
26041
|
+
graph,
|
|
26042
|
+
nodeMetadata,
|
|
26043
|
+
annotations: {},
|
|
26044
|
+
status: "ready",
|
|
26045
|
+
hash,
|
|
26046
|
+
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
26047
|
+
model
|
|
26048
|
+
}));
|
|
26049
|
+
}
|
|
26050
|
+
return c.json(WorkflowCanvasSchema.parse({
|
|
26051
|
+
graph,
|
|
26052
|
+
nodeMetadata,
|
|
26053
|
+
annotations: {},
|
|
26054
|
+
status: "generating",
|
|
26055
|
+
hash,
|
|
26056
|
+
generatedAt: null,
|
|
26057
|
+
model
|
|
26058
|
+
}));
|
|
26059
|
+
};
|
|
26060
|
+
//#endregion
|
|
26061
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/build-credential-requirements.ts
|
|
26062
|
+
/**
|
|
26063
|
+
* Collect each step node's credential requirements by joining its `data.slug` to
|
|
26064
|
+
* the manifest action (`requirements`) or agent (`toolRequirements`, flattened
|
|
26065
|
+
* and de-duped by key). Pure: the route resolves each requirement live. Nodes
|
|
26066
|
+
* with no requirement are omitted.
|
|
26067
|
+
*/
|
|
26068
|
+
function collectStepCredentialRequirements(flowGraph, entries) {
|
|
26069
|
+
const actions = /* @__PURE__ */ new Map();
|
|
26070
|
+
const agents = /* @__PURE__ */ new Map();
|
|
26071
|
+
for (const entry of entries) if (entry.kind === "action") actions.set(entry.slug, entry);
|
|
26072
|
+
else if (entry.kind === "agent") agents.set(entry.slug, entry);
|
|
26073
|
+
const result = [];
|
|
26074
|
+
for (const node of flowGraph.nodes) {
|
|
26075
|
+
if (node.nodeType !== "step" || !node.data.slug) continue;
|
|
26076
|
+
let requirements;
|
|
26077
|
+
if (node.data.callKind === "agent") {
|
|
26078
|
+
const agent = agents.get(node.data.slug);
|
|
26079
|
+
requirements = agent?.toolRequirements ? dedupeByKey(Object.values(agent.toolRequirements).flat()) : void 0;
|
|
26080
|
+
} else requirements = actions.get(node.data.slug)?.requirements;
|
|
26081
|
+
if (requirements && requirements.length > 0) result.push({
|
|
26082
|
+
nodeId: node.id,
|
|
26083
|
+
requirements
|
|
26084
|
+
});
|
|
26085
|
+
}
|
|
26086
|
+
return result;
|
|
26087
|
+
}
|
|
26088
|
+
function dedupeByKey(requirements) {
|
|
26089
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
26090
|
+
for (const requirement of requirements) if (!byKey.has(requirement.key)) byKey.set(requirement.key, requirement);
|
|
26091
|
+
return [...byKey.values()];
|
|
26092
|
+
}
|
|
26093
|
+
//#endregion
|
|
26094
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/credentials/GET.ts
|
|
26095
|
+
function toResolvedCredential(row) {
|
|
26096
|
+
return {
|
|
26097
|
+
id: row.id,
|
|
26098
|
+
name: row.name ?? row.label ?? row.appSlug,
|
|
26099
|
+
scope: row.scopeType,
|
|
26100
|
+
appSlug: row.appSlug,
|
|
26101
|
+
isDefault: Boolean(row.isDefault),
|
|
26102
|
+
...row.scopeType === "project" && row.scopeId ? { projectId: row.scopeId } : {}
|
|
26103
|
+
};
|
|
26104
|
+
}
|
|
26105
|
+
function toBinding(key, description) {
|
|
26106
|
+
const base = {
|
|
26107
|
+
credentialKey: key,
|
|
26108
|
+
label: key,
|
|
26109
|
+
appSlug: key
|
|
26110
|
+
};
|
|
26111
|
+
if (description.policy === "unresolved") return {
|
|
26112
|
+
...base,
|
|
26113
|
+
policy: "unresolved",
|
|
26114
|
+
reason: description.reason,
|
|
26115
|
+
...description.pinnedScope ? { pinnedScope: description.pinnedScope } : {}
|
|
26116
|
+
};
|
|
26117
|
+
if (description.policy === "scope-pinned") return {
|
|
26118
|
+
...base,
|
|
26119
|
+
policy: "scope-pinned",
|
|
26120
|
+
pinnedScope: description.pinnedScope,
|
|
26121
|
+
instance: toResolvedCredential(description.row)
|
|
26122
|
+
};
|
|
26123
|
+
return {
|
|
26124
|
+
...base,
|
|
26125
|
+
policy: description.policy,
|
|
26126
|
+
instance: toResolvedCredential(description.row)
|
|
26127
|
+
};
|
|
26128
|
+
}
|
|
26129
|
+
/**
|
|
26130
|
+
* Live credential overlay: for each step node, resolve which credential instance
|
|
26131
|
+
* each of its requirements currently binds to (read-only, no decryption). Not
|
|
26132
|
+
* content-hash cached — credential state changes without a redeploy.
|
|
26133
|
+
*/
|
|
26134
|
+
const handler$67 = async (c) => {
|
|
26135
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26136
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26137
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26138
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26139
|
+
const { row, projectId } = resolved;
|
|
26140
|
+
const manifest = await loadActiveManifest(projectId);
|
|
26141
|
+
const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
|
|
26142
|
+
if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
|
|
26143
|
+
const nodeRequirements = collectStepCredentialRequirements(workflowEntry.flowGraph, manifest?.entries ?? []);
|
|
26144
|
+
const userId = c.get("user").id;
|
|
26145
|
+
const bindings = await runWithProjectScope(projectId, async () => {
|
|
26146
|
+
const context = await withCredentialAssignments({
|
|
26147
|
+
orgId: getServerTenantScopeId(),
|
|
26148
|
+
projectId: getProjectScopeId(),
|
|
26149
|
+
userId,
|
|
26150
|
+
selection: {}
|
|
26151
|
+
}, {
|
|
26152
|
+
targetType: "workflow",
|
|
26153
|
+
targetKey: row.slug
|
|
26154
|
+
});
|
|
26155
|
+
const result = {};
|
|
26156
|
+
for (const { nodeId, requirements } of nodeRequirements) {
|
|
26157
|
+
const consumerId = `step:${nodeId}`;
|
|
26158
|
+
const nodeBindings = [];
|
|
26159
|
+
for (const requirement of requirements) {
|
|
26160
|
+
const description = await describeCredentialBinding({
|
|
26161
|
+
key: requirement.key,
|
|
26162
|
+
...requirement.scope ? { scope: requirement.scope } : {},
|
|
26163
|
+
consumerId,
|
|
26164
|
+
context
|
|
26165
|
+
});
|
|
26166
|
+
nodeBindings.push(toBinding(requirement.key, description));
|
|
26167
|
+
}
|
|
26168
|
+
if (nodeBindings.length > 0) result[nodeId] = nodeBindings;
|
|
26169
|
+
}
|
|
26170
|
+
return result;
|
|
26171
|
+
});
|
|
26172
|
+
return c.json(WorkflowCanvasCredentialBindingsSchema.parse(bindings));
|
|
26173
|
+
};
|
|
26174
|
+
//#endregion
|
|
26175
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/build-run-overlay.ts
|
|
26176
|
+
const STEP_PREFIX = "step:";
|
|
26177
|
+
/**
|
|
26178
|
+
* `step:<callSiteId>#<occurrence>` → `<callSiteId>` (the canvas node id). The
|
|
26179
|
+
* build-injected call-site id IS the node id, so stripping the `step:` prefix and
|
|
26180
|
+
* the `#<occurrence>` suffix lands a run event on its graph node 1:1.
|
|
26181
|
+
*/
|
|
26182
|
+
function nodeIdFromCorrelation(correlationId) {
|
|
26183
|
+
if (!correlationId.startsWith(STEP_PREFIX)) return null;
|
|
26184
|
+
const rest = correlationId.slice(5);
|
|
26185
|
+
const hash = rest.lastIndexOf("#");
|
|
26186
|
+
return hash === -1 ? rest : rest.slice(0, hash);
|
|
26187
|
+
}
|
|
26188
|
+
function loopTotal(counts) {
|
|
26189
|
+
return counts.reduce((max, n) => n > max ? n : max, 0);
|
|
26190
|
+
}
|
|
26191
|
+
/**
|
|
26192
|
+
* Project a workflow run's durable event log onto the canvas skeleton: a per-node
|
|
26193
|
+
* `WorkflowCanvasNodeRunState` keyed by the SAME node ids as the graph. Pure (no
|
|
26194
|
+
* I/O) so it is unit-testable; the route supplies the graph, events, and status.
|
|
26195
|
+
*
|
|
26196
|
+
* Overlay policy (v1 — step-exact, structure-conservative):
|
|
26197
|
+
* - **Steps** (incl. hook/sleep): exact from replay events.
|
|
26198
|
+
* - **Decision / merge / loop-start / trigger-source**: neutral — no run state.
|
|
26199
|
+
* - **Exit nodes**: succeeded only when the graph has a single Output terminal
|
|
26200
|
+
* and the run succeeded (high confidence). Multiple outputs stay neutral until
|
|
26201
|
+
* path telemetry lands — we do not infer branch-taken paths heuristically.
|
|
26202
|
+
*
|
|
26203
|
+
* Step rules:
|
|
26204
|
+
* - `step_completed` → that node `succeeded`; repeated completions (loop body)
|
|
26205
|
+
* fold onto the one node with an `iteration` counter.
|
|
26206
|
+
* - a step that only `step_failed`/`step_retrying` (never completed) on a
|
|
26207
|
+
* non-succeeded run → `failed`.
|
|
26208
|
+
* - same-file `code-block` nodes light from their `containedCallSiteIds`.
|
|
26209
|
+
* - on a succeeded run, never-executed step/code-block/loop nodes → `skipped`
|
|
26210
|
+
* (a not-taken branch). On failed/canceled/running runs, unreached nodes are
|
|
26211
|
+
* left neutral (we can't yet distinguish not-taken from not-yet-reached).
|
|
26212
|
+
*/
|
|
26213
|
+
function buildRunOverlay(input) {
|
|
26214
|
+
const { graph, events, runStatus } = input;
|
|
26215
|
+
const succeeded = runStatus === "succeeded";
|
|
26216
|
+
const completions = /* @__PURE__ */ new Map();
|
|
26217
|
+
const retried = /* @__PURE__ */ new Set();
|
|
26218
|
+
const waiting = /* @__PURE__ */ new Set();
|
|
26219
|
+
for (const event of events) {
|
|
26220
|
+
if (!event.correlationId) continue;
|
|
26221
|
+
const nodeId = nodeIdFromCorrelation(event.correlationId);
|
|
26222
|
+
if (!nodeId) continue;
|
|
26223
|
+
if (event.type === "step_completed" || event.type === "hook_resumed" || event.type === "sleep_completed") completions.set(nodeId, (completions.get(nodeId) ?? 0) + 1);
|
|
26224
|
+
else if (event.type === "step_failed" || event.type === "step_retrying") retried.add(nodeId);
|
|
26225
|
+
else if (event.type === "hook_created" || event.type === "sleep_scheduled") waiting.add(nodeId);
|
|
26226
|
+
}
|
|
26227
|
+
const isFailed = (nodeId) => !succeeded && retried.has(nodeId) && !completions.has(nodeId);
|
|
26228
|
+
const states = {};
|
|
26229
|
+
const childrenByParent = /* @__PURE__ */ new Map();
|
|
26230
|
+
for (const node of graph.nodes) if (node.parentId) {
|
|
26231
|
+
const bucket = childrenByParent.get(node.parentId) ?? [];
|
|
26232
|
+
bucket.push(node.id);
|
|
26233
|
+
childrenByParent.set(node.parentId, bucket);
|
|
26234
|
+
}
|
|
26235
|
+
for (const node of graph.nodes) {
|
|
26236
|
+
if (node.nodeType === "entry") {
|
|
26237
|
+
states[node.id] = { status: "succeeded" };
|
|
26238
|
+
continue;
|
|
26239
|
+
}
|
|
26240
|
+
if (node.nodeType === "step") {
|
|
26241
|
+
const count = completions.get(node.id) ?? 0;
|
|
26242
|
+
if (count > 0) states[node.id] = count > 1 ? {
|
|
26243
|
+
status: "succeeded",
|
|
26244
|
+
iteration: {
|
|
26245
|
+
index: count - 1,
|
|
26246
|
+
total: count
|
|
26247
|
+
}
|
|
26248
|
+
} : { status: "succeeded" };
|
|
26249
|
+
else if (isFailed(node.id)) states[node.id] = { status: "failed" };
|
|
26250
|
+
else if (waiting.has(node.id)) states[node.id] = { status: "running" };
|
|
26251
|
+
else if (succeeded) states[node.id] = { status: "skipped" };
|
|
26252
|
+
continue;
|
|
26253
|
+
}
|
|
26254
|
+
if (node.nodeType === "code-block") {
|
|
26255
|
+
const contained = node.data.containedCallSiteIds ?? [];
|
|
26256
|
+
const ran = contained.some((id) => completions.has(id));
|
|
26257
|
+
if (contained.some((id) => isFailed(id))) states[node.id] = { status: "failed" };
|
|
26258
|
+
else if (ran) states[node.id] = { status: "succeeded" };
|
|
26259
|
+
else if (succeeded) states[node.id] = { status: "skipped" };
|
|
26260
|
+
continue;
|
|
26261
|
+
}
|
|
26262
|
+
if (node.nodeType === "loop" || node.nodeType === "parallel") {
|
|
26263
|
+
const children = childrenByParent.get(node.id) ?? [];
|
|
26264
|
+
const total = loopTotal(children.map((id) => completions.get(id) ?? 0));
|
|
26265
|
+
if (children.some((id) => isFailed(id))) states[node.id] = { status: "failed" };
|
|
26266
|
+
else if (total > 0) states[node.id] = node.nodeType === "loop" && total > 1 ? {
|
|
26267
|
+
status: "succeeded",
|
|
26268
|
+
iteration: {
|
|
26269
|
+
index: total - 1,
|
|
26270
|
+
total
|
|
26271
|
+
}
|
|
26272
|
+
} : { status: "succeeded" };
|
|
26273
|
+
else if (succeeded) states[node.id] = { status: "skipped" };
|
|
26274
|
+
continue;
|
|
26275
|
+
}
|
|
26276
|
+
}
|
|
26277
|
+
const exits = graph.nodes.filter((node) => node.nodeType === "exit");
|
|
26278
|
+
if (succeeded && exits.length === 1) states[exits[0].id] = { status: "succeeded" };
|
|
26279
|
+
return states;
|
|
26280
|
+
}
|
|
26281
|
+
//#endregion
|
|
26282
|
+
//#region src/routes/account/workflows/[workflowId]/canvas/runs/[runId]/GET.ts
|
|
26283
|
+
function toCanvasRunStatus(status) {
|
|
26284
|
+
if (status === "completed") return "succeeded";
|
|
26285
|
+
if (status === "failed") return "failed";
|
|
26286
|
+
if (status === "canceled") return "canceled";
|
|
26287
|
+
return "running";
|
|
26288
|
+
}
|
|
26289
|
+
const handler$66 = async (c) => {
|
|
26290
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26291
|
+
const runId = c.req.param("runId") ?? "";
|
|
26292
|
+
if (!workflowId.trim() || !runId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
|
|
26293
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26294
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26295
|
+
const { row, projectId } = resolved;
|
|
26296
|
+
const run = await runWithProjectScope(projectId, () => selectWorkflowRunForWorkflow(row.slug, runId));
|
|
26297
|
+
if (!run) return c.json(ErrorResponseSchema.parse({ error: "Run not found" }), 404);
|
|
26298
|
+
const manifest = await loadActiveManifest(projectId);
|
|
26299
|
+
const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
|
|
26300
|
+
if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
|
|
26301
|
+
const triggers = await listWorkspaceTriggers([projectId]);
|
|
26302
|
+
const { graph } = buildWorkflowCanvas({
|
|
26303
|
+
workflowSlug: row.slug,
|
|
26304
|
+
workflowEntry,
|
|
26305
|
+
entries: manifest?.entries ?? [],
|
|
26306
|
+
triggers
|
|
26307
|
+
});
|
|
26308
|
+
const events = await runWithProjectScope(projectId, () => listReplayEvents(runId));
|
|
26309
|
+
const runStatus = toCanvasRunStatus(run.status);
|
|
26310
|
+
const nodeStates = buildRunOverlay({
|
|
26311
|
+
graph,
|
|
26312
|
+
events,
|
|
26313
|
+
runStatus
|
|
26314
|
+
});
|
|
26315
|
+
return c.json(WorkflowCanvasRunSchema.parse({
|
|
26316
|
+
runId,
|
|
26317
|
+
status: runStatus,
|
|
26318
|
+
startedAt: (run.startedAt ?? run.triggeredAt).toISOString(),
|
|
26319
|
+
finishedAt: run.finishedAt ? run.finishedAt.toISOString() : null,
|
|
26320
|
+
nodeStates
|
|
26321
|
+
}));
|
|
26322
|
+
};
|
|
26323
|
+
//#endregion
|
|
26324
|
+
//#region src/routes/account/workflows/[workflowId]/overview/GET.ts
|
|
26325
|
+
/** Bumped when the overview prompt/model changes, so cached overviews invalidate. */
|
|
26326
|
+
const OVERVIEW_GENERATOR_VERSION = "wf-overview-v1";
|
|
26327
|
+
/**
|
|
26328
|
+
* Best-effort read of the workflow's source from the active deploy's source snapshot, resolving
|
|
26329
|
+
* path → hash via the manifest so only files that belong to the deploy are served. Returns null
|
|
26330
|
+
* for dist-only deploys / missing source so the overview still generates from the structured graph.
|
|
26331
|
+
*/
|
|
26332
|
+
async function loadWorkflowSource(organization, projectId, sourcePath) {
|
|
26333
|
+
try {
|
|
26334
|
+
const artifact = await selectActiveProjectArtifactForProject(projectId);
|
|
26335
|
+
if (!artifact?.sourceManifestJson) return null;
|
|
26336
|
+
const file = StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === sourcePath);
|
|
26337
|
+
if (!file) return null;
|
|
26338
|
+
const bytes = await createOrgStorageClient(organization).getObject(projectSourceBlobKey(projectId, file.hash));
|
|
26339
|
+
return new TextDecoder().decode(bytes);
|
|
26340
|
+
} catch {
|
|
26341
|
+
return null;
|
|
26342
|
+
}
|
|
26343
|
+
}
|
|
26344
|
+
const handler$65 = async (c) => {
|
|
26345
|
+
const { organizationId } = c.get("organization");
|
|
26346
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26347
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26348
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26349
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26350
|
+
const { row, projectId } = resolved;
|
|
26351
|
+
const manifest = await loadActiveManifest(projectId);
|
|
26352
|
+
const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
|
|
26353
|
+
if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Overview not available" }), 404);
|
|
26354
|
+
const triggers = await listWorkspaceTriggers([projectId]);
|
|
26355
|
+
const { graph, nodeMetadata } = buildWorkflowCanvas({
|
|
26356
|
+
workflowSlug: row.slug,
|
|
26357
|
+
workflowEntry,
|
|
26358
|
+
entries: manifest?.entries ?? [],
|
|
26359
|
+
triggers
|
|
26360
|
+
});
|
|
26361
|
+
const triggerLabels = graph.nodes.filter((node) => node.nodeType === "trigger-source").map((node) => node.data.label);
|
|
26362
|
+
const nodes = graph.nodes.map((node) => {
|
|
26363
|
+
const meta = nodeMetadata[node.id];
|
|
26364
|
+
const inputs = meta?.inputs.map((field) => field.key) ?? [];
|
|
26365
|
+
const outputs = meta?.outputs.map((field) => field.key) ?? [];
|
|
26366
|
+
return {
|
|
26367
|
+
nodeId: node.id,
|
|
26368
|
+
label: meta?.name ?? node.data.label,
|
|
26369
|
+
kind: meta?.kind ?? node.nodeType,
|
|
26370
|
+
...meta?.description ? { description: meta.description } : {},
|
|
26371
|
+
...meta?.appSlug ? { appSlug: meta.appSlug } : {},
|
|
26372
|
+
...inputs.length > 0 ? { inputs } : {},
|
|
26373
|
+
...outputs.length > 0 ? { outputs } : {},
|
|
26374
|
+
...meta?.model ? { model: meta.model } : {},
|
|
26375
|
+
...meta?.toolCount !== void 0 ? { toolCount: meta.toolCount } : {}
|
|
26376
|
+
};
|
|
26377
|
+
});
|
|
26378
|
+
const model = DEFAULT_WORKFLOW_OVERVIEW_MODEL;
|
|
26379
|
+
const graphHash = createHash("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
|
|
26380
|
+
const hash = createHash("sha256").update(JSON.stringify({
|
|
26381
|
+
source: workflowEntry.flowGraphSourceHash ?? "",
|
|
26382
|
+
graph: graphHash,
|
|
26383
|
+
triggers: triggerLabels,
|
|
26384
|
+
model,
|
|
26385
|
+
version: OVERVIEW_GENERATOR_VERSION
|
|
26386
|
+
})).digest("hex");
|
|
26387
|
+
const cache = await runWithProjectScope(projectId, () => selectWorkflowOverview(workflowId));
|
|
26388
|
+
const cachedPhases = cache?.phases ?? [];
|
|
26389
|
+
if (cache && cache.hash === hash) {
|
|
26390
|
+
if (cache.status === "ready" || cache.status === "failed") return c.json(WorkspaceWorkflowOverviewSchema.parse({
|
|
26391
|
+
status: "ready",
|
|
26392
|
+
summary: cache.summary ?? "",
|
|
26393
|
+
phases: cachedPhases,
|
|
26394
|
+
hash,
|
|
26395
|
+
generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
|
|
26396
|
+
model: cache.model ?? model
|
|
26397
|
+
}));
|
|
26398
|
+
if (cache.status === "generating") return c.json(WorkspaceWorkflowOverviewSchema.parse({
|
|
26399
|
+
status: "generating",
|
|
26400
|
+
summary: cache.summary ?? "",
|
|
26401
|
+
phases: [],
|
|
26402
|
+
hash,
|
|
26403
|
+
generatedAt: null,
|
|
26404
|
+
model: cache.model ?? model
|
|
26405
|
+
}));
|
|
26406
|
+
}
|
|
26407
|
+
const organization = await selectOrganizationById(organizationId);
|
|
26408
|
+
if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
|
|
26409
|
+
await runWithProjectScope(projectId, () => setWorkflowOverviewGenerating(workflowId, hash));
|
|
26410
|
+
const source = await loadWorkflowSource(organization, projectId, workflowEntry.moduleFile);
|
|
26411
|
+
try {
|
|
26412
|
+
await (await getProjectScheduler(organization, projectId)).enqueue({
|
|
26413
|
+
kind: "workflow-overview",
|
|
26414
|
+
targetId: workflowId,
|
|
26415
|
+
runId: crypto.randomUUID(),
|
|
26416
|
+
trigger: "api",
|
|
26417
|
+
projectId,
|
|
26418
|
+
dedupeKey: `workflow-overview:${workflowId}:${hash}`,
|
|
26419
|
+
payload: {
|
|
26420
|
+
workflowId,
|
|
26421
|
+
projectId,
|
|
26422
|
+
hash,
|
|
26423
|
+
model,
|
|
26424
|
+
input: {
|
|
26425
|
+
workflowName: row.name.trim(),
|
|
26426
|
+
workflowDescription: row.description.trim(),
|
|
26427
|
+
triggers: triggerLabels,
|
|
26428
|
+
nodes,
|
|
26429
|
+
source
|
|
26430
|
+
}
|
|
26431
|
+
}
|
|
26432
|
+
});
|
|
26433
|
+
} catch {
|
|
26434
|
+
await runWithProjectScope(projectId, () => updateWorkflowOverview(workflowId, { status: "failed" }));
|
|
26435
|
+
}
|
|
26436
|
+
return c.json(WorkspaceWorkflowOverviewSchema.parse({
|
|
26437
|
+
status: "generating",
|
|
26438
|
+
summary: "",
|
|
26439
|
+
phases: [],
|
|
26440
|
+
hash,
|
|
26441
|
+
generatedAt: null,
|
|
26442
|
+
model
|
|
26443
|
+
}));
|
|
26444
|
+
};
|
|
26445
|
+
//#endregion
|
|
26446
|
+
//#region src/routes/account/workflows/[workflowId]/run-inputs/GET.ts
|
|
26447
|
+
const handler$64 = async (c) => {
|
|
26448
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26449
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26450
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26451
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26452
|
+
const { row, projectId } = resolved;
|
|
26453
|
+
const schema = jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
|
|
26454
|
+
const values = await runWithProjectScope(projectId, () => selectWorkflowRunInputValues(workflowId));
|
|
26455
|
+
return c.json(WorkflowRunInputsSchema.parse({
|
|
26456
|
+
schema,
|
|
26457
|
+
values
|
|
26458
|
+
}));
|
|
26459
|
+
};
|
|
26460
|
+
//#endregion
|
|
26461
|
+
//#region src/routes/account/workflows/[workflowId]/run-inputs/PUT.ts
|
|
26462
|
+
const handler$63 = async (c) => {
|
|
26463
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26464
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26465
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26466
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26467
|
+
let body;
|
|
26468
|
+
try {
|
|
26469
|
+
body = WorkflowRunInputsPutBodySchema.parse(await c.req.json());
|
|
26470
|
+
} catch {
|
|
26471
|
+
return c.json(ErrorResponseSchema.parse({ error: "Invalid request body" }), 400);
|
|
26472
|
+
}
|
|
26473
|
+
const { row, projectId } = resolved;
|
|
26474
|
+
const schema = jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
|
|
26475
|
+
const validation = validateWorkflowRunInputValues(schema, body);
|
|
26476
|
+
if (!validation.ok) return c.json(ErrorResponseSchema.parse({ error: validation.error }), 400);
|
|
26477
|
+
await runWithProjectScope(projectId, () => updateWorkflowRunInputValues(workflowId, body));
|
|
26478
|
+
return c.json(WorkflowRunInputsSchema.parse({
|
|
26479
|
+
schema,
|
|
26480
|
+
values: body
|
|
26481
|
+
}));
|
|
26482
|
+
};
|
|
26483
|
+
//#endregion
|
|
26484
|
+
//#region src/routes/account/workflows/[workflowId]/run/POST.ts
|
|
26485
|
+
function parseRunInput(requestSchema, input) {
|
|
26486
|
+
if (typeof z.fromJSONSchema === "function") return z.fromJSONSchema(requestSchema).parse(input ?? {});
|
|
26487
|
+
return z.record(z.string(), z.unknown()).parse(input ?? {});
|
|
26488
|
+
}
|
|
26489
|
+
/**
|
|
26490
|
+
* Manually start a workflow run from the dashboard. Validates the input against
|
|
26491
|
+
* the active deploy's request schema, creates a pending run, and enqueues it on
|
|
26492
|
+
* the project's queue (drained by the project runtime worker). Returns the run id.
|
|
26493
|
+
*/
|
|
26494
|
+
const handler$62 = async (c) => {
|
|
26495
|
+
const { organizationId } = c.get("organization");
|
|
26496
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26497
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26498
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26499
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26500
|
+
const { row, projectId } = resolved;
|
|
26501
|
+
const workflowEntry = (await loadActiveManifest(projectId))?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
|
|
26502
|
+
if (!workflowEntry || workflowEntry.kind !== "workflow") return c.json(ErrorResponseSchema.parse({ error: "Workflow not deployed" }), 404);
|
|
26503
|
+
let body = {};
|
|
26504
|
+
if ((c.req.header("content-type") ?? "").includes("application/json")) try {
|
|
26505
|
+
body = await c.req.json();
|
|
26506
|
+
} catch {
|
|
26507
|
+
return c.json(ErrorResponseSchema.parse({ error: "Invalid JSON body" }), 400);
|
|
26508
|
+
}
|
|
26509
|
+
const organization = await selectOrganizationById(organizationId);
|
|
26510
|
+
if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
|
|
26511
|
+
const userId = c.get("user").id;
|
|
26512
|
+
try {
|
|
26513
|
+
const runId = await runWithProjectScope(projectId, async () => {
|
|
26514
|
+
const scheduler = await getProjectScheduler(organization, projectId);
|
|
26515
|
+
return enqueueWorkflowRunByKey({
|
|
26516
|
+
workflowKey: row.slug,
|
|
26517
|
+
input: body,
|
|
26518
|
+
jobQueue: scheduler,
|
|
26519
|
+
parseInput: (value) => parseRunInput(workflowEntry.requestSchema, value),
|
|
26520
|
+
ranByUserId: userId
|
|
26521
|
+
});
|
|
26522
|
+
});
|
|
26523
|
+
return c.json({ runId }, 202);
|
|
26524
|
+
} catch (error) {
|
|
26525
|
+
if (error instanceof ZodError) return c.json(validationErrorResponse(error, "Invalid workflow input"), 400);
|
|
26526
|
+
throw error;
|
|
26527
|
+
}
|
|
26528
|
+
};
|
|
26529
|
+
//#endregion
|
|
26530
|
+
//#region src/routes/account/workflows/[workflowId]/runs/GET.ts
|
|
26531
|
+
const handler$61 = async (c) => {
|
|
26532
|
+
const workflowId = c.req.param("workflowId") ?? "";
|
|
26533
|
+
if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
|
|
26534
|
+
const resolved = await resolveWorkflow(c, workflowId);
|
|
26535
|
+
if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
|
|
26536
|
+
const { row, projectId } = resolved;
|
|
26537
|
+
const scope = listScope(c, projectListScope(accessContext(c)));
|
|
26538
|
+
if (await resolveListProjectIds(c, scope, projectId) === "empty") return c.json(HistoryRunListResponseSchema.parse([]));
|
|
26539
|
+
const runs = await listHistoryRuns({
|
|
26540
|
+
kind: "workflow",
|
|
26541
|
+
projectIds: [projectId],
|
|
26542
|
+
workflow: {
|
|
26543
|
+
projectId,
|
|
26544
|
+
slug: row.slug
|
|
26545
|
+
}
|
|
26546
|
+
});
|
|
26547
|
+
const { organizationId } = c.get("organization");
|
|
26548
|
+
const projects = await selectProjectsByOrganizationId(organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) });
|
|
26549
|
+
const projectNameById = new Map(projects.map((project) => [project.id, project.name]));
|
|
26550
|
+
return c.json(HistoryRunListResponseSchema.parse(await enrichHistoryRuns(runs, projectNameById)));
|
|
26551
|
+
};
|
|
26552
|
+
//#endregion
|
|
25582
26553
|
//#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
|
|
25583
26554
|
const handler$60 = (c) => cancelHistoryRun(c, "workflow", cancelWorkflowRun);
|
|
25584
26555
|
//#endregion
|
|
25585
26556
|
//#region src/routes/account/resources/skills.ts
|
|
25586
26557
|
function toSkillSummary(row) {
|
|
26558
|
+
const name = row.name?.trim() || titleCaseKey(row.slug);
|
|
25587
26559
|
return SkillSummarySchema.parse({
|
|
25588
26560
|
id: row.id,
|
|
25589
26561
|
slug: row.slug,
|
|
25590
|
-
name
|
|
25591
|
-
description: row.description
|
|
26562
|
+
name,
|
|
26563
|
+
description: row.description?.trim() || name,
|
|
25592
26564
|
projectId: row.projectId,
|
|
25593
26565
|
updatedAt: row.updatedAt.toISOString(),
|
|
25594
26566
|
sourcePath: row.moduleFile
|
|
@@ -27406,22 +28378,22 @@ function mountAccountRoutes(options) {
|
|
|
27406
28378
|
const requireProjectManageMembers = authorize(projectActions.manageMembers);
|
|
27407
28379
|
const requireInvitableProjectRole = authorizePayload(InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
|
|
27408
28380
|
const requireOrgParam = requireOrganizationParam();
|
|
27409
|
-
account.get("/organizations", handler$
|
|
27410
|
-
account.get("/organizations/slug-available", handler$
|
|
28381
|
+
account.get("/organizations", handler$86);
|
|
28382
|
+
account.get("/organizations/slug-available", handler$85);
|
|
27411
28383
|
account.post("/organizations", createOrganizationHandler(options));
|
|
27412
|
-
account.get("/organizations/:organizationId", requireOrgParam, handler$
|
|
27413
|
-
account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$
|
|
27414
|
-
account.get("/organizations/:organizationId/branding", requireOrgParam, handler$
|
|
27415
|
-
account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$
|
|
27416
|
-
account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$
|
|
28384
|
+
account.get("/organizations/:organizationId", requireOrgParam, handler$84);
|
|
28385
|
+
account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$83);
|
|
28386
|
+
account.get("/organizations/:organizationId/branding", requireOrgParam, handler$82);
|
|
28387
|
+
account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$81);
|
|
28388
|
+
account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$80);
|
|
27417
28389
|
account.get("/invitations", handler$17);
|
|
27418
28390
|
account.post("/invitations/:invitationId/accept", handler$16);
|
|
27419
28391
|
account.post("/invitations/:invitationId/decline", handler$15);
|
|
27420
|
-
account.get("/users/me/avatar", handler$
|
|
27421
|
-
account.post("/users/me/avatar/presign", handler$
|
|
27422
|
-
account.patch("/users/me/avatar", handler$
|
|
27423
|
-
account.get("/users/me/preferences", handler$
|
|
27424
|
-
account.patch("/users/me/preferences", handler$
|
|
28392
|
+
account.get("/users/me/avatar", handler$91);
|
|
28393
|
+
account.post("/users/me/avatar/presign", handler$90);
|
|
28394
|
+
account.patch("/users/me/avatar", handler$89);
|
|
28395
|
+
account.get("/users/me/preferences", handler$88);
|
|
28396
|
+
account.patch("/users/me/preferences", handler$87);
|
|
27425
28397
|
const withOrgDb = withOrganizationProjectDatabase();
|
|
27426
28398
|
orgScoped.get("/apps", handler$14);
|
|
27427
28399
|
orgScoped.get("/apps/slug-available", handler$7);
|
|
@@ -27439,14 +28411,22 @@ function mountAccountRoutes(options) {
|
|
|
27439
28411
|
orgScoped.get("/api-keys", handler$5);
|
|
27440
28412
|
orgScoped.post("/api-keys", requireApiKeyCreate, handler$4);
|
|
27441
28413
|
orgScoped.delete("/api-keys/:apiKeyId", handler$3);
|
|
27442
|
-
orgScoped.get("/agents", withOrgDb, handler$
|
|
27443
|
-
orgScoped.get("/agents/:agentId", withOrgDb, handler$
|
|
27444
|
-
orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$
|
|
27445
|
-
orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$
|
|
27446
|
-
orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$
|
|
27447
|
-
orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$
|
|
27448
|
-
orgScoped.get("/workflows", withOrgDb, handler$
|
|
27449
|
-
orgScoped.get("/workflows/:workflowId", withOrgDb, handler$
|
|
28414
|
+
orgScoped.get("/agents", withOrgDb, handler$77);
|
|
28415
|
+
orgScoped.get("/agents/:agentId", withOrgDb, handler$76);
|
|
28416
|
+
orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$75);
|
|
28417
|
+
orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$74);
|
|
28418
|
+
orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$73);
|
|
28419
|
+
orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$72);
|
|
28420
|
+
orgScoped.get("/workflows", withOrgDb, handler$70);
|
|
28421
|
+
orgScoped.get("/workflows/:workflowId", withOrgDb, handler$69);
|
|
28422
|
+
orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$68);
|
|
28423
|
+
orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$67);
|
|
28424
|
+
orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$66);
|
|
28425
|
+
orgScoped.get("/workflows/:workflowId/overview", withOrgDb, handler$65);
|
|
28426
|
+
orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$61);
|
|
28427
|
+
orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$64);
|
|
28428
|
+
orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$63);
|
|
28429
|
+
orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$62);
|
|
27450
28430
|
orgScoped.get("/skills", withOrgDb, handler$59);
|
|
27451
28431
|
orgScoped.get("/skills/:skillId", withOrgDb, handler$58);
|
|
27452
28432
|
orgScoped.get("/triggers", withOrgDb, handler$57);
|
|
@@ -27456,10 +28436,10 @@ function mountAccountRoutes(options) {
|
|
|
27456
28436
|
orgScoped.get("/triggers/:triggerId/overview", withOrgDb, handler$53);
|
|
27457
28437
|
orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$52);
|
|
27458
28438
|
orgScoped.get("/recents", withOrgDb, handler$51);
|
|
27459
|
-
orgScoped.get("/history", withOrgDb, handler$
|
|
27460
|
-
orgScoped.get("/history/:runId", withOrgDb, handler$
|
|
28439
|
+
orgScoped.get("/history", withOrgDb, handler$79);
|
|
28440
|
+
orgScoped.get("/history/:runId", withOrgDb, handler$78);
|
|
27461
28441
|
orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$60);
|
|
27462
|
-
orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$
|
|
28442
|
+
orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$71);
|
|
27463
28443
|
orgScoped.get("/credentials", withOrgDb, handler$25);
|
|
27464
28444
|
orgScoped.post("/credentials", withOrgDb, handler$24);
|
|
27465
28445
|
orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$23(c, next));
|
|
@@ -27883,4 +28863,4 @@ async function startPlatformServer(platformConfig, hooks = {}) {
|
|
|
27883
28863
|
//#endregion
|
|
27884
28864
|
export { r1 as S, o as _, c as a, b$1 as b, a$1 as c, c$1 as d, r as f, e as g, u as h, n$1 as i, d$1 as l, b as m, n, p as o, r$1 as p, i as r, x as s, startPlatformServer as t, x$1 as u, r$3 as v, I1 as x, h as y };
|
|
27885
28865
|
|
|
27886
|
-
//# sourceMappingURL=start-
|
|
28866
|
+
//# sourceMappingURL=start-BopA4OXE.mjs.map
|