@devmotion/cli 0.6.3 → 0.7.0
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/index.js +4 -5
- package/mcp/mcp-stdio.mjs +377 -156
- package/package.json +1 -1
- package/studio/client/_app/immutable/assets/0.Lv_sH-a4.css +1 -0
- package/studio/client/_app/immutable/assets/0.Lv_sH-a4.css.br +0 -0
- package/studio/client/_app/immutable/assets/0.Lv_sH-a4.css.gz +0 -0
- package/studio/client/_app/immutable/assets/editor.BN5lBQZg.css +1 -0
- package/studio/client/_app/immutable/assets/editor.BN5lBQZg.css.br +0 -0
- package/studio/client/_app/immutable/assets/editor.BN5lBQZg.css.gz +0 -0
- package/studio/client/_app/immutable/chunks/0jm3sjlg.js +1 -0
- package/studio/client/_app/immutable/chunks/0jm3sjlg.js.br +2 -0
- package/studio/client/_app/immutable/chunks/0jm3sjlg.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/5L1qzVZj.js +1 -0
- package/studio/client/_app/immutable/chunks/5L1qzVZj.js.br +0 -0
- package/studio/client/_app/immutable/chunks/5L1qzVZj.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/8kx1slbN.js +1 -0
- package/studio/client/_app/immutable/chunks/8kx1slbN.js.br +0 -0
- package/studio/client/_app/immutable/chunks/8kx1slbN.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/8vtb60R1.js +1 -0
- package/studio/client/_app/immutable/chunks/8vtb60R1.js.br +0 -0
- package/studio/client/_app/immutable/chunks/8vtb60R1.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/B1Kon8VR.js +1 -0
- package/studio/client/_app/immutable/chunks/B1Kon8VR.js.br +0 -0
- package/studio/client/_app/immutable/chunks/B1Kon8VR.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/B4dMvZH-.js +1 -0
- package/studio/client/_app/immutable/chunks/B4dMvZH-.js.br +0 -0
- package/studio/client/_app/immutable/chunks/B4dMvZH-.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/B7fQzRev.js +1 -0
- package/studio/client/_app/immutable/chunks/B7fQzRev.js.br +0 -0
- package/studio/client/_app/immutable/chunks/B7fQzRev.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BAYadMNA.js +1 -0
- package/studio/client/_app/immutable/chunks/BAYadMNA.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BAYadMNA.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BMGFIROs.js +1 -0
- package/studio/client/_app/immutable/chunks/BMGFIROs.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BMGFIROs.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BYo4Jpme.js +16 -0
- package/studio/client/_app/immutable/chunks/BYo4Jpme.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BYo4Jpme.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BeTUgF4S.js +1 -0
- package/studio/client/_app/immutable/chunks/BeTUgF4S.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BeTUgF4S.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BidNKR6p.js +5 -0
- package/studio/client/_app/immutable/chunks/BidNKR6p.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BidNKR6p.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BujAtXXM.js +1 -0
- package/studio/client/_app/immutable/chunks/BujAtXXM.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BujAtXXM.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BvpaRDa_.js +1 -0
- package/studio/client/_app/immutable/chunks/BvpaRDa_.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BvpaRDa_.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C4dDhPtf.js +1 -0
- package/studio/client/_app/immutable/chunks/C4dDhPtf.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C4dDhPtf.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C9qsOfWE.js +1 -0
- package/studio/client/_app/immutable/chunks/C9qsOfWE.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C9qsOfWE.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CNNzQrlb.js +1 -0
- package/studio/client/_app/immutable/chunks/CNNzQrlb.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CNNzQrlb.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CP2t8wzc.js +1 -0
- package/studio/client/_app/immutable/chunks/CP2t8wzc.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CP2t8wzc.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Ccg49IMO.js +96 -0
- package/studio/client/_app/immutable/chunks/Ccg49IMO.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Ccg49IMO.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CidmzZr_.js +99 -0
- package/studio/client/_app/immutable/chunks/CidmzZr_.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CidmzZr_.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CmzRa5tW.js +1 -0
- package/studio/client/_app/immutable/chunks/CmzRa5tW.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CmzRa5tW.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Cu3vhtIm.js +1 -0
- package/studio/client/_app/immutable/chunks/Cu3vhtIm.js.br +3 -0
- package/studio/client/_app/immutable/chunks/Cu3vhtIm.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/D1jFvxj0.js +1 -0
- package/studio/client/_app/immutable/chunks/D1jFvxj0.js.br +0 -0
- package/studio/client/_app/immutable/chunks/D1jFvxj0.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DGsO816A.js +1 -0
- package/studio/client/_app/immutable/chunks/DGsO816A.js.br +1 -0
- package/studio/client/_app/immutable/chunks/DGsO816A.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DKZDxza2.js +1 -0
- package/studio/client/_app/immutable/chunks/DKZDxza2.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DKZDxza2.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DWycBSvS.js +1 -0
- package/studio/client/_app/immutable/chunks/DWycBSvS.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DWycBSvS.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DaYfM_aT.js +512 -0
- package/studio/client/_app/immutable/chunks/DaYfM_aT.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DaYfM_aT.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Dgdpq5VR.js +1 -0
- package/studio/client/_app/immutable/chunks/Dgdpq5VR.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Dgdpq5VR.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DlBik49G.js +1 -0
- package/studio/client/_app/immutable/chunks/DlBik49G.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DlBik49G.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DnZvuu1V.js +1 -0
- package/studio/client/_app/immutable/chunks/DnZvuu1V.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DnZvuu1V.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Dru5mrF1.js +1 -0
- package/studio/client/_app/immutable/chunks/Dru5mrF1.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Dru5mrF1.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DtOmmgoM.js +4 -0
- package/studio/client/_app/immutable/chunks/DtOmmgoM.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DtOmmgoM.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DvcCXeL2.js +1 -0
- package/studio/client/_app/immutable/chunks/DvcCXeL2.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DvcCXeL2.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DvvYiUNt.js +4 -0
- package/studio/client/_app/immutable/chunks/DvvYiUNt.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DvvYiUNt.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DzAxJut6.js +1 -0
- package/studio/client/_app/immutable/chunks/DzAxJut6.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DzAxJut6.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/FKE3oSoF.js +2 -0
- package/studio/client/_app/immutable/chunks/FKE3oSoF.js.br +0 -0
- package/studio/client/_app/immutable/chunks/FKE3oSoF.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/GL0yz1Mp.js +1 -0
- package/studio/client/_app/immutable/chunks/GL0yz1Mp.js.br +0 -0
- package/studio/client/_app/immutable/chunks/GL0yz1Mp.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/IIGX7hY5.js +1 -0
- package/studio/client/_app/immutable/chunks/IIGX7hY5.js.br +0 -0
- package/studio/client/_app/immutable/chunks/IIGX7hY5.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/KMhWafV2.js +1 -0
- package/studio/client/_app/immutable/chunks/KMhWafV2.js.br +0 -0
- package/studio/client/_app/immutable/chunks/KMhWafV2.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/R0PS9H7p.js +1 -0
- package/studio/client/_app/immutable/chunks/R0PS9H7p.js.br +0 -0
- package/studio/client/_app/immutable/chunks/R0PS9H7p.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/YwFQw-CS.js +730 -0
- package/studio/client/_app/immutable/chunks/YwFQw-CS.js.br +0 -0
- package/studio/client/_app/immutable/chunks/YwFQw-CS.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js +2 -0
- package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/a4b4Uis3.js +1 -0
- package/studio/client/_app/immutable/chunks/a4b4Uis3.js.br +0 -0
- package/studio/client/_app/immutable/chunks/a4b4Uis3.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/bGtUFIGQ.js +1 -0
- package/studio/client/_app/immutable/chunks/bGtUFIGQ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/bGtUFIGQ.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/nTtOQUuo.js +1 -0
- package/studio/client/_app/immutable/chunks/nTtOQUuo.js.br +0 -0
- package/studio/client/_app/immutable/chunks/nTtOQUuo.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/pT1u3Hqy.js +1 -0
- package/studio/client/_app/immutable/chunks/pT1u3Hqy.js.br +0 -0
- package/studio/client/_app/immutable/chunks/pT1u3Hqy.js.gz +0 -0
- package/studio/client/_app/immutable/entry/app.BlMsBed_.js +2 -0
- package/studio/client/_app/immutable/entry/app.BlMsBed_.js.br +0 -0
- package/studio/client/_app/immutable/entry/app.BlMsBed_.js.gz +0 -0
- package/studio/client/_app/immutable/entry/start.Br1JKkZD.js +1 -0
- package/studio/client/_app/immutable/entry/start.Br1JKkZD.js.br +0 -0
- package/studio/client/_app/immutable/entry/start.Br1JKkZD.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js +2 -0
- package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js.br +0 -0
- package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js +1 -0
- package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js.br +0 -0
- package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js +1 -0
- package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js.br +0 -0
- package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js +1 -0
- package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js.br +0 -0
- package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js +2 -0
- package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js.br +0 -0
- package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js +1 -0
- package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js.br +0 -0
- package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js +1 -0
- package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js.br +0 -0
- package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/15.DTOUruaa.js +1 -0
- package/studio/client/_app/immutable/nodes/15.DTOUruaa.js.br +0 -0
- package/studio/client/_app/immutable/nodes/15.DTOUruaa.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/16.4YmSrppF.js +8 -0
- package/studio/client/_app/immutable/nodes/16.4YmSrppF.js.br +0 -0
- package/studio/client/_app/immutable/nodes/16.4YmSrppF.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js +1 -0
- package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js.br +0 -0
- package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/18.DilqYUUv.js +1 -0
- package/studio/client/_app/immutable/nodes/18.DilqYUUv.js.br +0 -0
- package/studio/client/_app/immutable/nodes/18.DilqYUUv.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js +1 -0
- package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js.br +0 -0
- package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js +45 -0
- package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js.br +0 -0
- package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/21.C7plrZc8.js +16 -0
- package/studio/client/_app/immutable/nodes/21.C7plrZc8.js.br +0 -0
- package/studio/client/_app/immutable/nodes/21.C7plrZc8.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/28.BwKSpFi_.js +8 -0
- package/studio/client/_app/immutable/nodes/28.BwKSpFi_.js.br +0 -0
- package/studio/client/_app/immutable/nodes/28.BwKSpFi_.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/3._qhjdqhg.js +1 -0
- package/studio/client/_app/immutable/nodes/3._qhjdqhg.js.br +0 -0
- package/studio/client/_app/immutable/nodes/3._qhjdqhg.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/30.DA7Me2YV.js +26 -0
- package/studio/client/_app/immutable/nodes/30.DA7Me2YV.js.br +0 -0
- package/studio/client/_app/immutable/nodes/30.DA7Me2YV.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js +1 -0
- package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js.br +0 -0
- package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/39.DrGfz0RO.js +88 -0
- package/studio/client/_app/immutable/nodes/39.DrGfz0RO.js.br +0 -0
- package/studio/client/_app/immutable/nodes/39.DrGfz0RO.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js +1 -0
- package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js.br +0 -0
- package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js +1 -0
- package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js.br +0 -0
- package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/42.D205SuZX.js +1 -0
- package/studio/client/_app/immutable/nodes/42.D205SuZX.js.br +0 -0
- package/studio/client/_app/immutable/nodes/42.D205SuZX.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/43.Bg1auisF.js +1 -0
- package/studio/client/_app/immutable/nodes/43.Bg1auisF.js.br +0 -0
- package/studio/client/_app/immutable/nodes/43.Bg1auisF.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/44.CPLxW4El.js +1 -0
- package/studio/client/_app/immutable/nodes/44.CPLxW4El.js.br +0 -0
- package/studio/client/_app/immutable/nodes/44.CPLxW4El.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/45.DSssrLbd.js +2 -0
- package/studio/client/_app/immutable/nodes/45.DSssrLbd.js.br +0 -0
- package/studio/client/_app/immutable/nodes/45.DSssrLbd.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js +1 -0
- package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js.br +0 -0
- package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js +1 -0
- package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js.br +0 -0
- package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js +1 -0
- package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js.br +0 -0
- package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js +7 -0
- package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js.br +0 -0
- package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js +1 -0
- package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js.br +0 -0
- package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js +1 -0
- package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js.br +0 -0
- package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js +1 -0
- package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js.br +0 -0
- package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js +1 -0
- package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js.br +0 -0
- package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js.gz +0 -0
- package/studio/client/_app/version.json +1 -1
- package/studio/client/_app/version.json.br +0 -0
- package/studio/client/_app/version.json.gz +0 -0
- package/studio/prerendered/docs/api/errors.html +38 -38
- package/studio/prerendered/docs/api/errors.html.br +0 -0
- package/studio/prerendered/docs/api/errors.html.gz +0 -0
- package/studio/prerendered/docs/api/projects.html +38 -38
- package/studio/prerendered/docs/api/projects.html.br +0 -0
- package/studio/prerendered/docs/api/projects.html.gz +0 -0
- package/studio/prerendered/docs/api/renders.html +38 -38
- package/studio/prerendered/docs/api/renders.html.br +0 -0
- package/studio/prerendered/docs/api/renders.html.gz +0 -0
- package/studio/prerendered/docs/api/templates.html +38 -38
- package/studio/prerendered/docs/api/templates.html.br +0 -0
- package/studio/prerendered/docs/api/templates.html.gz +0 -0
- package/studio/prerendered/docs/api/webhooks.html +38 -38
- package/studio/prerendered/docs/api/webhooks.html.br +0 -0
- package/studio/prerendered/docs/api/webhooks.html.gz +0 -0
- package/studio/prerendered/docs/api.html +38 -38
- package/studio/prerendered/docs/api.html.br +0 -0
- package/studio/prerendered/docs/api.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/autogen.html +40 -40
- package/studio/prerendered/docs/mcp/integrations/autogen.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/autogen.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/crewai.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/crewai.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/crewai.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/dify.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/dify.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/dify.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/flowise.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/flowise.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/flowise.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/langchain.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/langchain.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/langchain.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/llamaindex.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/llamaindex.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/llamaindex.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/make.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/make.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/make.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations/n8n.html +38 -38
- package/studio/prerendered/docs/mcp/integrations/n8n.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations/n8n.html.gz +0 -0
- package/studio/prerendered/docs/mcp/integrations.html +38 -38
- package/studio/prerendered/docs/mcp/integrations.html.br +0 -0
- package/studio/prerendered/docs/mcp/integrations.html.gz +0 -0
- package/studio/prerendered/docs/mcp/plans.html +40 -40
- package/studio/prerendered/docs/mcp/plans.html.br +0 -0
- package/studio/prerendered/docs/mcp/plans.html.gz +0 -0
- package/studio/prerendered/docs/mcp/reference.html +48 -47
- package/studio/prerendered/docs/mcp/reference.html.br +0 -0
- package/studio/prerendered/docs/mcp/reference.html.gz +0 -0
- package/studio/prerendered/docs/mcp/setup.html +38 -38
- package/studio/prerendered/docs/mcp/setup.html.br +0 -0
- package/studio/prerendered/docs/mcp/setup.html.gz +0 -0
- package/studio/prerendered/docs/mcp.html +40 -40
- package/studio/prerendered/docs/mcp.html.br +0 -0
- package/studio/prerendered/docs/mcp.html.gz +0 -0
- package/studio/prerendered/docs.html +37 -37
- package/studio/prerendered/docs.html.br +0 -0
- package/studio/prerendered/docs.html.gz +0 -0
- package/studio/prerendered/dub/arabic.html +36 -36
- package/studio/prerendered/dub/arabic.html.br +0 -0
- package/studio/prerendered/dub/arabic.html.gz +0 -0
- package/studio/prerendered/dub/chinese-simplified.html +36 -36
- package/studio/prerendered/dub/chinese-simplified.html.br +0 -0
- package/studio/prerendered/dub/chinese-simplified.html.gz +0 -0
- package/studio/prerendered/dub/dutch.html +36 -36
- package/studio/prerendered/dub/dutch.html.br +0 -0
- package/studio/prerendered/dub/dutch.html.gz +0 -0
- package/studio/prerendered/dub/french.html +36 -36
- package/studio/prerendered/dub/french.html.br +0 -0
- package/studio/prerendered/dub/french.html.gz +0 -0
- package/studio/prerendered/dub/german.html +36 -36
- package/studio/prerendered/dub/german.html.br +0 -0
- package/studio/prerendered/dub/german.html.gz +0 -0
- package/studio/prerendered/dub/hindi.html +36 -36
- package/studio/prerendered/dub/hindi.html.br +0 -0
- package/studio/prerendered/dub/hindi.html.gz +0 -0
- package/studio/prerendered/dub/italian.html +36 -36
- package/studio/prerendered/dub/italian.html.br +0 -0
- package/studio/prerendered/dub/italian.html.gz +0 -0
- package/studio/prerendered/dub/japanese.html +36 -36
- package/studio/prerendered/dub/japanese.html.br +0 -0
- package/studio/prerendered/dub/japanese.html.gz +0 -0
- package/studio/prerendered/dub/korean.html +36 -36
- package/studio/prerendered/dub/korean.html.br +0 -0
- package/studio/prerendered/dub/korean.html.gz +0 -0
- package/studio/prerendered/dub/polish.html +36 -36
- package/studio/prerendered/dub/polish.html.br +0 -0
- package/studio/prerendered/dub/polish.html.gz +0 -0
- package/studio/prerendered/dub/portuguese.html +36 -36
- package/studio/prerendered/dub/portuguese.html.br +0 -0
- package/studio/prerendered/dub/portuguese.html.gz +0 -0
- package/studio/prerendered/dub/spanish.html +36 -36
- package/studio/prerendered/dub/spanish.html.br +0 -0
- package/studio/prerendered/dub/spanish.html.gz +0 -0
- package/studio/prerendered/sitemap.xml +90 -90
- package/studio/prerendered/sitemap.xml.br +0 -0
- package/studio/prerendered/sitemap.xml.gz +0 -0
- package/studio/prerendered/tools/add-captions/instagram.html +36 -36
- package/studio/prerendered/tools/add-captions/instagram.html.br +0 -0
- package/studio/prerendered/tools/add-captions/instagram.html.gz +0 -0
- package/studio/prerendered/tools/add-captions/linkedin.html +36 -36
- package/studio/prerendered/tools/add-captions/linkedin.html.br +0 -0
- package/studio/prerendered/tools/add-captions/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/add-captions/tiktok.html +36 -36
- package/studio/prerendered/tools/add-captions/tiktok.html.br +0 -0
- package/studio/prerendered/tools/add-captions/tiktok.html.gz +0 -0
- package/studio/prerendered/tools/add-captions/twitter-x.html +36 -36
- package/studio/prerendered/tools/add-captions/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/add-captions/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/add-captions/youtube.html +36 -36
- package/studio/prerendered/tools/add-captions/youtube.html.br +0 -0
- package/studio/prerendered/tools/add-captions/youtube.html.gz +0 -0
- package/studio/prerendered/tools/add-captions.html +40 -40
- package/studio/prerendered/tools/add-captions.html.br +0 -0
- package/studio/prerendered/tools/add-captions.html.gz +0 -0
- package/studio/prerendered/tools/auto-cut/linkedin.html +36 -36
- package/studio/prerendered/tools/auto-cut/linkedin.html.br +0 -0
- package/studio/prerendered/tools/auto-cut/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/auto-cut/podcast.html +36 -36
- package/studio/prerendered/tools/auto-cut/podcast.html.br +0 -0
- package/studio/prerendered/tools/auto-cut/podcast.html.gz +0 -0
- package/studio/prerendered/tools/auto-cut/tiktok.html +36 -36
- package/studio/prerendered/tools/auto-cut/tiktok.html.br +0 -0
- package/studio/prerendered/tools/auto-cut/tiktok.html.gz +0 -0
- package/studio/prerendered/tools/auto-cut/youtube.html +36 -36
- package/studio/prerendered/tools/auto-cut/youtube.html.br +0 -0
- package/studio/prerendered/tools/auto-cut/youtube.html.gz +0 -0
- package/studio/prerendered/tools/auto-cut.html +40 -40
- package/studio/prerendered/tools/auto-cut.html.br +0 -0
- package/studio/prerendered/tools/auto-cut.html.gz +0 -0
- package/studio/prerendered/tools/generate-video/instagram.html +36 -36
- package/studio/prerendered/tools/generate-video/instagram.html.br +0 -0
- package/studio/prerendered/tools/generate-video/instagram.html.gz +0 -0
- package/studio/prerendered/tools/generate-video/tiktok.html +36 -36
- package/studio/prerendered/tools/generate-video/tiktok.html.br +0 -0
- package/studio/prerendered/tools/generate-video/tiktok.html.gz +0 -0
- package/studio/prerendered/tools/generate-video/twitter-x.html +36 -36
- package/studio/prerendered/tools/generate-video/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/generate-video/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/generate-video/youtube.html +36 -36
- package/studio/prerendered/tools/generate-video/youtube.html.br +0 -0
- package/studio/prerendered/tools/generate-video/youtube.html.gz +0 -0
- package/studio/prerendered/tools/generate-video.html +40 -40
- package/studio/prerendered/tools/generate-video.html.br +0 -0
- package/studio/prerendered/tools/generate-video.html.gz +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/linkedin.html +36 -36
- package/studio/prerendered/tools/laptop-3d-intro/linkedin.html.br +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/saas.html +36 -36
- package/studio/prerendered/tools/laptop-3d-intro/saas.html.br +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/saas.html.gz +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html +36 -36
- package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/youtube.html +36 -36
- package/studio/prerendered/tools/laptop-3d-intro/youtube.html.br +0 -0
- package/studio/prerendered/tools/laptop-3d-intro/youtube.html.gz +0 -0
- package/studio/prerendered/tools/laptop-3d-intro.html +40 -40
- package/studio/prerendered/tools/laptop-3d-intro.html.br +0 -0
- package/studio/prerendered/tools/laptop-3d-intro.html.gz +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/linkedin.html +36 -36
- package/studio/prerendered/tools/screen-webcam-demo/linkedin.html.br +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/saas.html +36 -36
- package/studio/prerendered/tools/screen-webcam-demo/saas.html.br +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/saas.html.gz +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html +36 -36
- package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/youtube.html +36 -36
- package/studio/prerendered/tools/screen-webcam-demo/youtube.html.br +0 -0
- package/studio/prerendered/tools/screen-webcam-demo/youtube.html.gz +0 -0
- package/studio/prerendered/tools/screen-webcam-demo.html +40 -40
- package/studio/prerendered/tools/screen-webcam-demo.html.br +0 -0
- package/studio/prerendered/tools/screen-webcam-demo.html.gz +0 -0
- package/studio/prerendered/tools/screenshot-to-social/facebook.html +36 -36
- package/studio/prerendered/tools/screenshot-to-social/facebook.html.br +0 -0
- package/studio/prerendered/tools/screenshot-to-social/facebook.html.gz +0 -0
- package/studio/prerendered/tools/screenshot-to-social/instagram.html +36 -36
- package/studio/prerendered/tools/screenshot-to-social/instagram.html.br +0 -0
- package/studio/prerendered/tools/screenshot-to-social/instagram.html.gz +0 -0
- package/studio/prerendered/tools/screenshot-to-social/linkedin.html +36 -36
- package/studio/prerendered/tools/screenshot-to-social/linkedin.html.br +0 -0
- package/studio/prerendered/tools/screenshot-to-social/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/screenshot-to-social/twitter-x.html +36 -36
- package/studio/prerendered/tools/screenshot-to-social/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/screenshot-to-social/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/screenshot-to-social.html +40 -40
- package/studio/prerendered/tools/screenshot-to-social.html.br +0 -0
- package/studio/prerendered/tools/screenshot-to-social.html.gz +0 -0
- package/studio/prerendered/tools/translate-video/instagram.html +36 -36
- package/studio/prerendered/tools/translate-video/instagram.html.br +0 -0
- package/studio/prerendered/tools/translate-video/instagram.html.gz +0 -0
- package/studio/prerendered/tools/translate-video/linkedin.html +36 -36
- package/studio/prerendered/tools/translate-video/linkedin.html.br +0 -0
- package/studio/prerendered/tools/translate-video/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/translate-video/tiktok.html +36 -36
- package/studio/prerendered/tools/translate-video/tiktok.html.br +0 -0
- package/studio/prerendered/tools/translate-video/tiktok.html.gz +0 -0
- package/studio/prerendered/tools/translate-video/youtube.html +36 -36
- package/studio/prerendered/tools/translate-video/youtube.html.br +0 -0
- package/studio/prerendered/tools/translate-video/youtube.html.gz +0 -0
- package/studio/prerendered/tools/translate-video.html +40 -40
- package/studio/prerendered/tools/translate-video.html.br +0 -0
- package/studio/prerendered/tools/translate-video.html.gz +0 -0
- package/studio/prerendered/tools/video-beautifier.html +40 -40
- package/studio/prerendered/tools/video-beautifier.html.br +0 -0
- package/studio/prerendered/tools/video-beautifier.html.gz +0 -0
- package/studio/prerendered/tools/video-to-browser/linkedin.html +36 -36
- package/studio/prerendered/tools/video-to-browser/linkedin.html.br +0 -0
- package/studio/prerendered/tools/video-to-browser/linkedin.html.gz +0 -0
- package/studio/prerendered/tools/video-to-browser/saas.html +36 -36
- package/studio/prerendered/tools/video-to-browser/saas.html.br +0 -0
- package/studio/prerendered/tools/video-to-browser/saas.html.gz +0 -0
- package/studio/prerendered/tools/video-to-browser/twitter-x.html +36 -36
- package/studio/prerendered/tools/video-to-browser/twitter-x.html.br +0 -0
- package/studio/prerendered/tools/video-to-browser/twitter-x.html.gz +0 -0
- package/studio/prerendered/tools/video-to-browser/youtube.html +36 -36
- package/studio/prerendered/tools/video-to-browser/youtube.html.br +0 -0
- package/studio/prerendered/tools/video-to-browser/youtube.html.gz +0 -0
- package/studio/prerendered/tools/video-to-browser.html +40 -40
- package/studio/prerendered/tools/video-to-browser.html.br +0 -0
- package/studio/prerendered/tools/video-to-browser.html.gz +0 -0
- package/studio/prerendered/tools/video-to-phone.html +40 -40
- package/studio/prerendered/tools/video-to-phone.html.br +0 -0
- package/studio/prerendered/tools/video-to-phone.html.gz +0 -0
- package/studio/prerendered/vs/canva.html +36 -36
- package/studio/prerendered/vs/canva.html.br +0 -0
- package/studio/prerendered/vs/canva.html.gz +0 -0
- package/studio/prerendered/vs/captions-ai.html +36 -36
- package/studio/prerendered/vs/captions-ai.html.br +0 -0
- package/studio/prerendered/vs/captions-ai.html.gz +0 -0
- package/studio/prerendered/vs/clipchamp.html +36 -36
- package/studio/prerendered/vs/clipchamp.html.br +0 -0
- package/studio/prerendered/vs/clipchamp.html.gz +0 -0
- package/studio/prerendered/vs/descript.html +36 -36
- package/studio/prerendered/vs/descript.html.br +0 -0
- package/studio/prerendered/vs/descript.html.gz +0 -0
- package/studio/prerendered/vs/kapwing.html +36 -36
- package/studio/prerendered/vs/kapwing.html.br +0 -0
- package/studio/prerendered/vs/kapwing.html.gz +0 -0
- package/studio/prerendered/vs/runway.html +36 -36
- package/studio/prerendered/vs/runway.html.br +0 -0
- package/studio/prerendered/vs/runway.html.gz +0 -0
- package/studio/prerendered/vs/submagic.html +36 -36
- package/studio/prerendered/vs/submagic.html.br +0 -0
- package/studio/prerendered/vs/submagic.html.gz +0 -0
- package/studio/prerendered/vs/veed.html +36 -36
- package/studio/prerendered/vs/veed.html.br +0 -0
- package/studio/prerendered/vs/veed.html.gz +0 -0
- package/studio/server/chunks/0-DrCbOn_U.js +32 -0
- package/studio/server/chunks/0-DrCbOn_U.js.map +1 -0
- package/studio/server/chunks/1-BHuYqaGp.js +9 -0
- package/studio/server/chunks/1-BHuYqaGp.js.map +1 -0
- package/studio/server/chunks/11-DcT9eofp.js +9 -0
- package/studio/server/chunks/11-DcT9eofp.js.map +1 -0
- package/studio/server/chunks/12-Br9qZR1c.js +9 -0
- package/studio/server/chunks/12-Br9qZR1c.js.map +1 -0
- package/studio/server/chunks/13-CXLQr4dU.js +59 -0
- package/studio/server/chunks/13-CXLQr4dU.js.map +1 -0
- package/studio/server/chunks/14-BcReNzGU.js +60 -0
- package/studio/server/chunks/14-BcReNzGU.js.map +1 -0
- package/studio/server/chunks/15-BR8pxyN_.js +9 -0
- package/studio/server/chunks/15-BR8pxyN_.js.map +1 -0
- package/studio/server/chunks/16-B-CvhSUs.js +72 -0
- package/studio/server/chunks/16-B-CvhSUs.js.map +1 -0
- package/studio/server/chunks/17-BLykPSq7.js +9 -0
- package/studio/server/chunks/17-BLykPSq7.js.map +1 -0
- package/studio/server/chunks/18-C7DjU0t5.js +9 -0
- package/studio/server/chunks/18-C7DjU0t5.js.map +1 -0
- package/studio/server/chunks/19-Cq0Qyivk.js +9 -0
- package/studio/server/chunks/19-Cq0Qyivk.js.map +1 -0
- package/studio/server/chunks/20-CRk87lvq.js +139 -0
- package/studio/server/chunks/20-CRk87lvq.js.map +1 -0
- package/studio/server/chunks/3-ChhTSXfT.js +9 -0
- package/studio/server/chunks/3-ChhTSXfT.js.map +1 -0
- package/studio/server/chunks/4-B9vyTnuL.js +9 -0
- package/studio/server/chunks/4-B9vyTnuL.js.map +1 -0
- package/studio/server/chunks/42-DOBpFqDR.js +56 -0
- package/studio/server/chunks/42-DOBpFqDR.js.map +1 -0
- package/studio/server/chunks/43-DRw-2-GS.js +9 -0
- package/studio/server/chunks/43-DRw-2-GS.js.map +1 -0
- package/studio/server/chunks/44-DLxClkX_.js +9 -0
- package/studio/server/chunks/44-DLxClkX_.js.map +1 -0
- package/studio/server/chunks/45-wVQw8tBx.js +115 -0
- package/studio/server/chunks/45-wVQw8tBx.js.map +1 -0
- package/studio/server/chunks/49-CSfj1Xtu.js +14 -0
- package/studio/server/chunks/49-CSfj1Xtu.js.map +1 -0
- package/studio/server/chunks/5-8UA2oVVT.js +9 -0
- package/studio/server/chunks/5-8UA2oVVT.js.map +1 -0
- package/studio/server/chunks/7-judL9OYr.js +215 -0
- package/studio/server/chunks/7-judL9OYr.js.map +1 -0
- package/studio/server/chunks/_error.svelte-C3N4FEB2.js +98 -0
- package/studio/server/chunks/_error.svelte-C3N4FEB2.js.map +1 -0
- package/studio/server/chunks/_error.svelte-C7sYQCnM.js +98 -0
- package/studio/server/chunks/_error.svelte-C7sYQCnM.js.map +1 -0
- package/studio/server/chunks/_layout.svelte-B7vWmRFJ.js +64 -0
- package/studio/server/chunks/_layout.svelte-B7vWmRFJ.js.map +1 -0
- package/studio/server/chunks/_layout.svelte-BIVwEY2g.js +1054 -0
- package/studio/server/chunks/_layout.svelte-BIVwEY2g.js.map +1 -0
- package/studio/server/chunks/_layout.svelte-CDrHT5wt.js +400 -0
- package/studio/server/chunks/_layout.svelte-CDrHT5wt.js.map +1 -0
- package/studio/server/chunks/_layout.svelte-DAYtUucm.js +64 -0
- package/studio/server/chunks/_layout.svelte-DAYtUucm.js.map +1 -0
- package/studio/server/chunks/_page.svelte-B1cMW63M.js +79 -0
- package/studio/server/chunks/_page.svelte-B1cMW63M.js.map +1 -0
- package/studio/server/chunks/_page.svelte-BL2j2QYJ.js +192 -0
- package/studio/server/chunks/_page.svelte-BL2j2QYJ.js.map +1 -0
- package/studio/server/chunks/_page.svelte-BiTflcHr.js +111 -0
- package/studio/server/chunks/_page.svelte-BiTflcHr.js.map +1 -0
- package/studio/server/chunks/_page.svelte-BwEzxkCN.js +418 -0
- package/studio/server/chunks/_page.svelte-BwEzxkCN.js.map +1 -0
- package/studio/server/chunks/_page.svelte-ByzdoeDB.js +11350 -0
- package/studio/server/chunks/_page.svelte-ByzdoeDB.js.map +1 -0
- package/studio/server/chunks/_page.svelte-CSU5TGt6.js +1732 -0
- package/studio/server/chunks/_page.svelte-CSU5TGt6.js.map +1 -0
- package/studio/server/chunks/_page.svelte-Ch08b7on.js +256 -0
- package/studio/server/chunks/_page.svelte-Ch08b7on.js.map +1 -0
- package/studio/server/chunks/_page.svelte-CyAzKzS1.js +506 -0
- package/studio/server/chunks/_page.svelte-CyAzKzS1.js.map +1 -0
- package/studio/server/chunks/_page.svelte-D3NFENjP.js +113 -0
- package/studio/server/chunks/_page.svelte-D3NFENjP.js.map +1 -0
- package/studio/server/chunks/_page.svelte-DoI4FMeA.js +319 -0
- package/studio/server/chunks/_page.svelte-DoI4FMeA.js.map +1 -0
- package/studio/server/chunks/_page.svelte-az4tVjJ_.js +1021 -0
- package/studio/server/chunks/_page.svelte-az4tVjJ_.js.map +1 -0
- package/studio/server/chunks/_page.svelte-czU-SjNZ.js +160 -0
- package/studio/server/chunks/_page.svelte-czU-SjNZ.js.map +1 -0
- package/studio/server/chunks/_server.ts-BMJ-08P_.js +34 -0
- package/studio/server/chunks/_server.ts-BMJ-08P_.js.map +1 -0
- package/studio/server/chunks/_server.ts-BsgeMvN0.js +722 -0
- package/studio/server/chunks/_server.ts-BsgeMvN0.js.map +1 -0
- package/studio/server/chunks/_server.ts-ByVY8xND.js +41 -0
- package/studio/server/chunks/_server.ts-ByVY8xND.js.map +1 -0
- package/studio/server/chunks/_server.ts-CA1HxfdZ.js +58 -0
- package/studio/server/chunks/_server.ts-CA1HxfdZ.js.map +1 -0
- package/studio/server/chunks/_server.ts-CBlNBm5s.js +70 -0
- package/studio/server/chunks/_server.ts-CBlNBm5s.js.map +1 -0
- package/studio/server/chunks/_server.ts-CGi39j79.js +232 -0
- package/studio/server/chunks/_server.ts-CGi39j79.js.map +1 -0
- package/studio/server/chunks/_server.ts-CLHP8Zrh.js +109 -0
- package/studio/server/chunks/_server.ts-CLHP8Zrh.js.map +1 -0
- package/studio/server/chunks/_server.ts-CNJZSPm5.js +60 -0
- package/studio/server/chunks/_server.ts-CNJZSPm5.js.map +1 -0
- package/studio/server/chunks/_server.ts-Cd1TmSSo.js +303 -0
- package/studio/server/chunks/_server.ts-Cd1TmSSo.js.map +1 -0
- package/studio/server/chunks/_server.ts-CkVDrj32.js +79 -0
- package/studio/server/chunks/_server.ts-CkVDrj32.js.map +1 -0
- package/studio/server/chunks/_server.ts-Ckj93zLL.js +49 -0
- package/studio/server/chunks/_server.ts-Ckj93zLL.js.map +1 -0
- package/studio/server/chunks/_server.ts-CriU7HwI.js +22 -0
- package/studio/server/chunks/_server.ts-CriU7HwI.js.map +1 -0
- package/studio/server/chunks/_server.ts-D1inEYb_.js +87 -0
- package/studio/server/chunks/_server.ts-D1inEYb_.js.map +1 -0
- package/studio/server/chunks/_server.ts-DA3zdbWI.js +48 -0
- package/studio/server/chunks/_server.ts-DA3zdbWI.js.map +1 -0
- package/studio/server/chunks/_server.ts-D_YUIRqi.js +87 -0
- package/studio/server/chunks/_server.ts-D_YUIRqi.js.map +1 -0
- package/studio/server/chunks/_server.ts-D_fEYx6c.js +158 -0
- package/studio/server/chunks/_server.ts-D_fEYx6c.js.map +1 -0
- package/studio/server/chunks/_server.ts-Da8qrASe.js +118 -0
- package/studio/server/chunks/_server.ts-Da8qrASe.js.map +1 -0
- package/studio/server/chunks/_server.ts-Dcr0g4Vq.js +52 -0
- package/studio/server/chunks/_server.ts-Dcr0g4Vq.js.map +1 -0
- package/studio/server/chunks/_server.ts-DnGq-qro.js +68 -0
- package/studio/server/chunks/_server.ts-DnGq-qro.js.map +1 -0
- package/studio/server/chunks/_server.ts-Do6qk473.js +56 -0
- package/studio/server/chunks/_server.ts-Do6qk473.js.map +1 -0
- package/studio/server/chunks/_server.ts-DsTz4hAe.js +96 -0
- package/studio/server/chunks/_server.ts-DsTz4hAe.js.map +1 -0
- package/studio/server/chunks/_server.ts-DxwlzaT7.js +122 -0
- package/studio/server/chunks/_server.ts-DxwlzaT7.js.map +1 -0
- package/studio/server/chunks/_server.ts-KHs6y_Wc.js +760 -0
- package/studio/server/chunks/_server.ts-KHs6y_Wc.js.map +1 -0
- package/studio/server/chunks/_server.ts-_eJk5Eiu.js +91 -0
- package/studio/server/chunks/_server.ts-_eJk5Eiu.js.map +1 -0
- package/studio/server/chunks/adapter-XtQVoo_l.js +91 -0
- package/studio/server/chunks/adapter-XtQVoo_l.js.map +1 -0
- package/studio/server/chunks/admin.remote-C-MAmmW-.js +105 -0
- package/studio/server/chunks/admin.remote-C-MAmmW-.js.map +1 -0
- package/studio/server/chunks/ai-access-Cm_VC4xc.js +299 -0
- package/studio/server/chunks/ai-access-Cm_VC4xc.js.map +1 -0
- package/studio/server/chunks/ai.remote-waQUpsLn.js +37 -0
- package/studio/server/chunks/ai.remote-waQUpsLn.js.map +1 -0
- package/studio/server/chunks/alert-dialog-description-B4VfiJRT.js +578 -0
- package/studio/server/chunks/alert-dialog-description-B4VfiJRT.js.map +1 -0
- package/studio/server/chunks/animation-sOd5R1cE.js +2912 -0
- package/studio/server/chunks/animation-sOd5R1cE.js.map +1 -0
- package/studio/server/chunks/api-Do--xZ9M.js +434 -0
- package/studio/server/chunks/api-Do--xZ9M.js.map +1 -0
- package/studio/server/chunks/api-keys-CcmgUWTH.js +117 -0
- package/studio/server/chunks/api-keys-CcmgUWTH.js.map +1 -0
- package/studio/server/chunks/api-keys.remote-JFKHDaD1.js +88 -0
- package/studio/server/chunks/api-keys.remote-JFKHDaD1.js.map +1 -0
- package/studio/server/chunks/app-header-Ck_YeZr5.js +96 -0
- package/studio/server/chunks/app-header-Ck_YeZr5.js.map +1 -0
- package/studio/server/chunks/assets.remote-CX2FvnlZ.js +113 -0
- package/studio/server/chunks/assets.remote-CX2FvnlZ.js.map +1 -0
- package/studio/server/chunks/attribute-protocol-DQ-1julf.js +151 -0
- package/studio/server/chunks/attribute-protocol-DQ-1julf.js.map +1 -0
- package/studio/server/chunks/auth-mx1dhuCn.js +22472 -0
- package/studio/server/chunks/auth-mx1dhuCn.js.map +1 -0
- package/studio/server/chunks/auth.remote-CN4se14K.js +351 -0
- package/studio/server/chunks/auth.remote-CN4se14K.js.map +1 -0
- package/studio/server/chunks/base-qepI6vHK.js +210 -0
- package/studio/server/chunks/base-qepI6vHK.js.map +1 -0
- package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-BNevlRD6.js +197 -0
- package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-BNevlRD6.js.map +1 -0
- package/studio/server/chunks/captions.remote-Pp1JQnfB.js +184 -0
- package/studio/server/chunks/captions.remote-Pp1JQnfB.js.map +1 -0
- package/studio/server/chunks/client2-DNrSxzuu.js +66 -0
- package/studio/server/chunks/client2-DNrSxzuu.js.map +1 -0
- package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D67tOo2R.js +160 -0
- package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D67tOo2R.js.map +1 -0
- package/studio/server/chunks/design-knowledge-D2NUeAAo.js +334 -0
- package/studio/server/chunks/design-knowledge-D2NUeAAo.js.map +1 -0
- package/studio/server/chunks/desktop-bootstrap-IVK9LbDz.js +67 -0
- package/studio/server/chunks/desktop-bootstrap-IVK9LbDz.js.map +1 -0
- package/studio/server/chunks/dubbing.remote-CZkC5M_a.js +153 -0
- package/studio/server/chunks/dubbing.remote-CZkC5M_a.js.map +1 -0
- package/studio/server/chunks/editor.svelte-Dd-2ZfWO.js +21027 -0
- package/studio/server/chunks/editor.svelte-Dd-2ZfWO.js.map +1 -0
- package/studio/server/chunks/env-AoZ3P0fg.js +92 -0
- package/studio/server/chunks/env-AoZ3P0fg.js.map +1 -0
- package/studio/server/chunks/extract-audio.remote-BKBT80-g.js +95 -0
- package/studio/server/chunks/extract-audio.remote-BKBT80-g.js.map +1 -0
- package/studio/server/chunks/feedback.remote-DveIB_5_.js +49 -0
- package/studio/server/chunks/feedback.remote-DveIB_5_.js.map +1 -0
- package/studio/server/chunks/find-stock-image-DDfrK_rA.js +709 -0
- package/studio/server/chunks/find-stock-image-DDfrK_rA.js.map +1 -0
- package/studio/server/chunks/fs-project-BxA38YDy.js +134 -0
- package/studio/server/chunks/fs-project-BxA38YDy.js.map +1 -0
- package/studio/server/chunks/hooks.server-DcXHGCUQ.js +309 -0
- package/studio/server/chunks/hooks.server-DcXHGCUQ.js.map +1 -0
- package/studio/server/chunks/html-parser-t3Ydy25K.js +8516 -0
- package/studio/server/chunks/html-parser-t3Ydy25K.js.map +1 -0
- package/studio/server/chunks/html-writer-D8dOWi0D.js +242 -0
- package/studio/server/chunks/html-writer-D8dOWi0D.js.map +1 -0
- package/studio/server/chunks/image-generation.remote-GIIJ69ro.js +140 -0
- package/studio/server/chunks/image-generation.remote-GIIJ69ro.js.map +1 -0
- package/studio/server/chunks/index-Bz4Ugmn7.js +4578 -0
- package/studio/server/chunks/index-Bz4Ugmn7.js.map +1 -0
- package/studio/server/chunks/index12-CP2lVQd1.js +265 -0
- package/studio/server/chunks/index12-CP2lVQd1.js.map +1 -0
- package/studio/server/chunks/index2-BvzNGjoj.js +23 -0
- package/studio/server/chunks/index2-BvzNGjoj.js.map +1 -0
- package/studio/server/chunks/index3-B3arCRqx.js +8 -0
- package/studio/server/chunks/index3-B3arCRqx.js.map +1 -0
- package/studio/server/chunks/index4-ByfR32IV.js +48 -0
- package/studio/server/chunks/index4-ByfR32IV.js.map +1 -0
- package/studio/server/chunks/index6-BwFC1GDh.js +239 -0
- package/studio/server/chunks/index6-BwFC1GDh.js.map +1 -0
- package/studio/server/chunks/index8-Dt6GB1aJ.js +44 -0
- package/studio/server/chunks/index8-Dt6GB1aJ.js.map +1 -0
- package/studio/server/chunks/layout-template-DRFNZLVI.js +1371 -0
- package/studio/server/chunks/layout-template-DRFNZLVI.js.map +1 -0
- package/studio/server/chunks/lummi-Cu3Js7rz.js +189 -0
- package/studio/server/chunks/lummi-Cu3Js7rz.js.map +1 -0
- package/studio/server/chunks/lummi.remote-BMN4XopC.js +44 -0
- package/studio/server/chunks/lummi.remote-BMN4XopC.js.map +1 -0
- package/studio/server/chunks/media-analysis-Ch1fmDUt.js +229 -0
- package/studio/server/chunks/media-analysis-Ch1fmDUt.js.map +1 -0
- package/studio/server/chunks/media-analysis.remote-yI6aCZ78.js +63 -0
- package/studio/server/chunks/media-analysis.remote-yI6aCZ78.js.map +1 -0
- package/studio/server/chunks/media-v9Bq2kuR.js +157 -0
- package/studio/server/chunks/media-v9Bq2kuR.js.map +1 -0
- package/studio/server/chunks/middleware-D0o6fOUG.js +72 -0
- package/studio/server/chunks/middleware-D0o6fOUG.js.map +1 -0
- package/studio/server/chunks/mutations-CkUdOAoa.js +551 -0
- package/studio/server/chunks/mutations-CkUdOAoa.js.map +1 -0
- package/studio/server/chunks/node-sqlite-dialect-Di8ZYXD0.js +197 -0
- package/studio/server/chunks/node-sqlite-dialect-Di8ZYXD0.js.map +1 -0
- package/studio/server/chunks/onboarding-email-BvuCl7dz.js +311 -0
- package/studio/server/chunks/onboarding-email-BvuCl7dz.js.map +1 -0
- package/studio/server/chunks/optional-services-BGRY7tmz.js +45 -0
- package/studio/server/chunks/optional-services-BGRY7tmz.js.map +1 -0
- package/studio/server/chunks/pagination-Q7FOr3rO.js +159 -0
- package/studio/server/chunks/pagination-Q7FOr3rO.js.map +1 -0
- package/studio/server/chunks/posthog-kZp2zKvY.js +11 -0
- package/studio/server/chunks/posthog-kZp2zKvY.js.map +1 -0
- package/studio/server/chunks/presets-CU-ej2J9.js +369 -0
- package/studio/server/chunks/presets-CU-ej2J9.js.map +1 -0
- package/studio/server/chunks/project-layer-yZ50OnjM.js +28 -0
- package/studio/server/chunks/project-layer-yZ50OnjM.js.map +1 -0
- package/studio/server/chunks/projects.remote-ipNnrM1d.js +297 -0
- package/studio/server/chunks/projects.remote-ipNnrM1d.js.map +1 -0
- package/studio/server/chunks/queue-init-C_8i6pyv.js +38 -0
- package/studio/server/chunks/queue-init-C_8i6pyv.js.map +1 -0
- package/studio/server/chunks/registry-z2-pQ1Jw.js +18 -0
- package/studio/server/chunks/registry-z2-pQ1Jw.js.map +1 -0
- package/studio/server/chunks/registry2-BhwPna1F.js +4851 -0
- package/studio/server/chunks/registry2-BhwPna1F.js.map +1 -0
- package/studio/server/chunks/remote-148gj0t-CLfgEUwr.js +15 -0
- package/studio/server/chunks/remote-148gj0t-CLfgEUwr.js.map +1 -0
- package/studio/server/chunks/remote-1afl6ud-BYqN02Le.js +18 -0
- package/studio/server/chunks/remote-1afl6ud-BYqN02Le.js.map +1 -0
- package/studio/server/chunks/remote-1cihryv-BxHbFmSt.js +34 -0
- package/studio/server/chunks/remote-1cihryv-BxHbFmSt.js.map +1 -0
- package/studio/server/chunks/remote-1ez0sx-DKZ6ubnB.js +34 -0
- package/studio/server/chunks/remote-1ez0sx-DKZ6ubnB.js.map +1 -0
- package/studio/server/chunks/remote-1mi3j6d-4ClkS6sd.js +21 -0
- package/studio/server/chunks/remote-1mi3j6d-4ClkS6sd.js.map +1 -0
- package/studio/server/chunks/remote-1rjk8jv-CF94t93Y.js +22 -0
- package/studio/server/chunks/remote-1rjk8jv-CF94t93Y.js.map +1 -0
- package/studio/server/chunks/remote-1web5fy-Bw0AJHlD.js +35 -0
- package/studio/server/chunks/remote-1web5fy-Bw0AJHlD.js.map +1 -0
- package/studio/server/chunks/remote-5mu9ty-DKqUPY8s.js +31 -0
- package/studio/server/chunks/remote-5mu9ty-DKqUPY8s.js.map +1 -0
- package/studio/server/chunks/remote-aelvq6-C3B2AyF6.js +26 -0
- package/studio/server/chunks/remote-aelvq6-C3B2AyF6.js.map +1 -0
- package/studio/server/chunks/remote-em2k3w-Z00J8-Q9.js +25 -0
- package/studio/server/chunks/remote-em2k3w-Z00J8-Q9.js.map +1 -0
- package/studio/server/chunks/remote-gezfls-CbSTOGmI.js +21 -0
- package/studio/server/chunks/remote-gezfls-CbSTOGmI.js.map +1 -0
- package/studio/server/chunks/remote-lv3p1w-BcKTNydX.js +15 -0
- package/studio/server/chunks/remote-lv3p1w-BcKTNydX.js.map +1 -0
- package/studio/server/chunks/remote-ssr7vi-rhkV3R21.js +33 -0
- package/studio/server/chunks/remote-ssr7vi-rhkV3R21.js.map +1 -0
- package/studio/server/chunks/remote-sy19x7-BZ5ceu8t.js +29 -0
- package/studio/server/chunks/remote-sy19x7-BZ5ceu8t.js.map +1 -0
- package/studio/server/chunks/remote-tisyb0-ChggPTNB.js +31 -0
- package/studio/server/chunks/remote-tisyb0-ChggPTNB.js.map +1 -0
- package/studio/server/chunks/remote-xj8myv-DruftVtE.js +31 -0
- package/studio/server/chunks/remote-xj8myv-DruftVtE.js.map +1 -0
- package/studio/server/chunks/remote-z7lvth-D_9BqgW_.js +23 -0
- package/studio/server/chunks/remote-z7lvth-D_9BqgW_.js.map +1 -0
- package/studio/server/chunks/remote-zjib3m-DnAqo6l6.js +24 -0
- package/studio/server/chunks/remote-zjib3m-DnAqo6l6.js.map +1 -0
- package/studio/server/chunks/render-api-DtG3ftN1.js +240 -0
- package/studio/server/chunks/render-api-DtG3ftN1.js.map +1 -0
- package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-D5bzSlf5.js +4752 -0
- package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-D5bzSlf5.js.map +1 -0
- package/studio/server/chunks/stock-image.remote-Cn_Dh7Ok.js +87 -0
- package/studio/server/chunks/stock-image.remote-Cn_Dh7Ok.js.map +1 -0
- package/studio/server/chunks/subscription-BC4gCTG6.js +138 -0
- package/studio/server/chunks/subscription-BC4gCTG6.js.map +1 -0
- package/studio/server/chunks/subscription-limits-kr9leRdz.js +114 -0
- package/studio/server/chunks/subscription-limits-kr9leRdz.js.map +1 -0
- package/studio/server/chunks/template-usage.remote-DL-DKmuu.js +53 -0
- package/studio/server/chunks/template-usage.remote-DL-DKmuu.js.map +1 -0
- package/studio/server/chunks/thumbnail-queue-D4GYcvrD.js +148 -0
- package/studio/server/chunks/thumbnail-queue-D4GYcvrD.js.map +1 -0
- package/studio/server/chunks/tooltip-provider-Y8-pmG0D.js +30 -0
- package/studio/server/chunks/tooltip-provider-Y8-pmG0D.js.map +1 -0
- package/studio/server/chunks/tooltip.svelte-CMQZQZ-r.js +658 -0
- package/studio/server/chunks/tooltip.svelte-CMQZQZ-r.js.map +1 -0
- package/studio/server/chunks/tts-voices-B9J2ZzGy.js +32 -0
- package/studio/server/chunks/tts-voices-B9J2ZzGy.js.map +1 -0
- package/studio/server/chunks/tts.remote-BERCmX-n.js +194 -0
- package/studio/server/chunks/tts.remote-BERCmX-n.js.map +1 -0
- package/studio/server/chunks/ui.svelte-DSRn4LdL.js +88 -0
- package/studio/server/chunks/ui.svelte-DSRn4LdL.js.map +1 -0
- package/studio/server/chunks/upload-service-Boi3a_IC.js +220 -0
- package/studio/server/chunks/upload-service-Boi3a_IC.js.map +1 -0
- package/studio/server/chunks/upload.remote-Bhhj6ZvH.js +131 -0
- package/studio/server/chunks/upload.remote-Bhhj6ZvH.js.map +1 -0
- package/studio/server/chunks/video-generation.remote-DkDf_BYp.js +197 -0
- package/studio/server/chunks/video-generation.remote-DkDf_BYp.js.map +1 -0
- package/studio/server/chunks/video-renderer-DJUVOoRL.js +412 -0
- package/studio/server/chunks/video-renderer-DJUVOoRL.js.map +1 -0
- package/studio/server/chunks/watermark-u8k4sZA3.js +164 -0
- package/studio/server/chunks/watermark-u8k4sZA3.js.map +1 -0
- package/studio/server/index.js +1 -1
- package/studio/server/manifest.js +64 -62
- package/studio/server/manifest.js.map +1 -1
- package/studio/client/_app/immutable/assets/0.BKuIH3jk.css +0 -1
- package/studio/client/_app/immutable/assets/0.BKuIH3jk.css.br +0 -0
- package/studio/client/_app/immutable/assets/0.BKuIH3jk.css.gz +0 -0
- package/studio/client/_app/immutable/assets/editor._QrWwLKb.css +0 -1
- package/studio/client/_app/immutable/assets/editor._QrWwLKb.css.br +0 -2
- package/studio/client/_app/immutable/assets/editor._QrWwLKb.css.gz +0 -0
- package/studio/client/_app/immutable/chunks/-w8AgfGk.js +0 -1
- package/studio/client/_app/immutable/chunks/-w8AgfGk.js.br +0 -0
- package/studio/client/_app/immutable/chunks/-w8AgfGk.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/0LXoSuAq.js +0 -1
- package/studio/client/_app/immutable/chunks/0LXoSuAq.js.br +0 -0
- package/studio/client/_app/immutable/chunks/0LXoSuAq.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/0hf0C23S.js +0 -1
- package/studio/client/_app/immutable/chunks/0hf0C23S.js.br +0 -0
- package/studio/client/_app/immutable/chunks/0hf0C23S.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/52GXB-Lx.js +0 -1
- package/studio/client/_app/immutable/chunks/52GXB-Lx.js.br +0 -0
- package/studio/client/_app/immutable/chunks/52GXB-Lx.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/B6hmyilk.js +0 -1
- package/studio/client/_app/immutable/chunks/B6hmyilk.js.br +0 -0
- package/studio/client/_app/immutable/chunks/B6hmyilk.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BAhypDJI.js +0 -1
- package/studio/client/_app/immutable/chunks/BAhypDJI.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BAhypDJI.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BSBe_oem.js +0 -16
- package/studio/client/_app/immutable/chunks/BSBe_oem.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BSBe_oem.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BSPxtRj6.js +0 -1
- package/studio/client/_app/immutable/chunks/BSPxtRj6.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BSPxtRj6.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BTkRM4Uk.js +0 -1
- package/studio/client/_app/immutable/chunks/BTkRM4Uk.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BTkRM4Uk.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BY7NfAld.js +0 -4
- package/studio/client/_app/immutable/chunks/BY7NfAld.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BY7NfAld.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BcFepoRa.js +0 -730
- package/studio/client/_app/immutable/chunks/BcFepoRa.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BcFepoRa.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/BvzaEl32.js +0 -1
- package/studio/client/_app/immutable/chunks/BvzaEl32.js.br +0 -0
- package/studio/client/_app/immutable/chunks/BvzaEl32.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Bxcr6TQy.js +0 -99
- package/studio/client/_app/immutable/chunks/Bxcr6TQy.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Bxcr6TQy.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C0K_KauH.js +0 -1
- package/studio/client/_app/immutable/chunks/C0K_KauH.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C0K_KauH.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C3zSaQMD.js +0 -1
- package/studio/client/_app/immutable/chunks/C3zSaQMD.js.br +0 -2
- package/studio/client/_app/immutable/chunks/C3zSaQMD.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C6BSxyDb.js +0 -1
- package/studio/client/_app/immutable/chunks/C6BSxyDb.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C6BSxyDb.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C8FzHBqQ.js +0 -1
- package/studio/client/_app/immutable/chunks/C8FzHBqQ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C8FzHBqQ.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CC8c0epL.js +0 -4
- package/studio/client/_app/immutable/chunks/CC8c0epL.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CC8c0epL.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CQdOmqus.js +0 -1
- package/studio/client/_app/immutable/chunks/CQdOmqus.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CQdOmqus.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C_JEyoc9.js +0 -1
- package/studio/client/_app/immutable/chunks/C_JEyoc9.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C_JEyoc9.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/C_glBBzR.js +0 -2
- package/studio/client/_app/immutable/chunks/C_glBBzR.js.br +0 -0
- package/studio/client/_app/immutable/chunks/C_glBBzR.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CazEfIaP.js +0 -1
- package/studio/client/_app/immutable/chunks/CazEfIaP.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CazEfIaP.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CiDOuEjR.js +0 -1
- package/studio/client/_app/immutable/chunks/CiDOuEjR.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CiDOuEjR.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Cnoy1Nsk.js +0 -1
- package/studio/client/_app/immutable/chunks/Cnoy1Nsk.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Cnoy1Nsk.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/CrHjC-CS.js +0 -1
- package/studio/client/_app/immutable/chunks/CrHjC-CS.js.br +0 -0
- package/studio/client/_app/immutable/chunks/CrHjC-CS.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/D-G_aVDe.js +0 -1
- package/studio/client/_app/immutable/chunks/D-G_aVDe.js.br +0 -0
- package/studio/client/_app/immutable/chunks/D-G_aVDe.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DK-xvsKr.js +0 -1
- package/studio/client/_app/immutable/chunks/DK-xvsKr.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DK-xvsKr.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DKwvwQkU.js +0 -1
- package/studio/client/_app/immutable/chunks/DKwvwQkU.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DKwvwQkU.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DRDQO7lT.js +0 -1
- package/studio/client/_app/immutable/chunks/DRDQO7lT.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DRDQO7lT.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DTcslyJn.js +0 -1
- package/studio/client/_app/immutable/chunks/DTcslyJn.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DTcslyJn.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DbaIpQMW.js +0 -512
- package/studio/client/_app/immutable/chunks/DbaIpQMW.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DbaIpQMW.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Dhskw98X.js +0 -1
- package/studio/client/_app/immutable/chunks/Dhskw98X.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Dhskw98X.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Dl3gtmRH.js +0 -1
- package/studio/client/_app/immutable/chunks/Dl3gtmRH.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Dl3gtmRH.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Du09UsT_.js +0 -1
- package/studio/client/_app/immutable/chunks/Du09UsT_.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Du09UsT_.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/Duawn2EX.js +0 -1
- package/studio/client/_app/immutable/chunks/Duawn2EX.js.br +0 -0
- package/studio/client/_app/immutable/chunks/Duawn2EX.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DxbwWMuJ.js +0 -1
- package/studio/client/_app/immutable/chunks/DxbwWMuJ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DxbwWMuJ.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/DzMyNXK1.js +0 -5
- package/studio/client/_app/immutable/chunks/DzMyNXK1.js.br +0 -0
- package/studio/client/_app/immutable/chunks/DzMyNXK1.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/K82XSOze.js +0 -1
- package/studio/client/_app/immutable/chunks/K82XSOze.js.br +0 -0
- package/studio/client/_app/immutable/chunks/K82XSOze.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/LegOngm6.js +0 -92
- package/studio/client/_app/immutable/chunks/LegOngm6.js.br +0 -0
- package/studio/client/_app/immutable/chunks/LegOngm6.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/QUVFwVNg.js +0 -1
- package/studio/client/_app/immutable/chunks/QUVFwVNg.js.br +0 -0
- package/studio/client/_app/immutable/chunks/QUVFwVNg.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/UzmbP4fJ.js +0 -1
- package/studio/client/_app/immutable/chunks/UzmbP4fJ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/UzmbP4fJ.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/WVZkyfqK.js +0 -1
- package/studio/client/_app/immutable/chunks/WVZkyfqK.js.br +0 -0
- package/studio/client/_app/immutable/chunks/WVZkyfqK.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/lmiZGmp5.js +0 -1
- package/studio/client/_app/immutable/chunks/lmiZGmp5.js.br +0 -0
- package/studio/client/_app/immutable/chunks/lmiZGmp5.js.gz +0 -0
- package/studio/client/_app/immutable/chunks/t2OI8QCJ.js +0 -2
- package/studio/client/_app/immutable/chunks/t2OI8QCJ.js.br +0 -0
- package/studio/client/_app/immutable/chunks/t2OI8QCJ.js.gz +0 -0
- package/studio/client/_app/immutable/entry/app.ZJxo7olm.js +0 -2
- package/studio/client/_app/immutable/entry/app.ZJxo7olm.js.br +0 -0
- package/studio/client/_app/immutable/entry/app.ZJxo7olm.js.gz +0 -0
- package/studio/client/_app/immutable/entry/start.8QDn_ECL.js +0 -1
- package/studio/client/_app/immutable/entry/start.8QDn_ECL.js.br +0 -0
- package/studio/client/_app/immutable/entry/start.8QDn_ECL.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/0.adNFkwFE.js +0 -2
- package/studio/client/_app/immutable/nodes/0.adNFkwFE.js.br +0 -0
- package/studio/client/_app/immutable/nodes/0.adNFkwFE.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/1.BWNv6Cb_.js +0 -1
- package/studio/client/_app/immutable/nodes/1.BWNv6Cb_.js.br +0 -0
- package/studio/client/_app/immutable/nodes/1.BWNv6Cb_.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/10.CczwW3Jo.js +0 -1
- package/studio/client/_app/immutable/nodes/10.CczwW3Jo.js.br +0 -0
- package/studio/client/_app/immutable/nodes/10.CczwW3Jo.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/11.DLp4Fbp3.js +0 -1
- package/studio/client/_app/immutable/nodes/11.DLp4Fbp3.js.br +0 -0
- package/studio/client/_app/immutable/nodes/11.DLp4Fbp3.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/12.4rh6TzEf.js +0 -2
- package/studio/client/_app/immutable/nodes/12.4rh6TzEf.js.br +0 -0
- package/studio/client/_app/immutable/nodes/12.4rh6TzEf.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/13.Dz4al1DL.js +0 -1
- package/studio/client/_app/immutable/nodes/13.Dz4al1DL.js.br +0 -0
- package/studio/client/_app/immutable/nodes/13.Dz4al1DL.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/14.Bl81Dygj.js +0 -1
- package/studio/client/_app/immutable/nodes/14.Bl81Dygj.js.br +0 -0
- package/studio/client/_app/immutable/nodes/14.Bl81Dygj.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/15.gG909oU9.js +0 -1
- package/studio/client/_app/immutable/nodes/15.gG909oU9.js.br +0 -0
- package/studio/client/_app/immutable/nodes/15.gG909oU9.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/16.7V_UKKuG.js +0 -8
- package/studio/client/_app/immutable/nodes/16.7V_UKKuG.js.br +0 -0
- package/studio/client/_app/immutable/nodes/16.7V_UKKuG.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/17.Cz647w46.js +0 -1
- package/studio/client/_app/immutable/nodes/17.Cz647w46.js.br +0 -0
- package/studio/client/_app/immutable/nodes/17.Cz647w46.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/18.BCZi6A5-.js +0 -1
- package/studio/client/_app/immutable/nodes/18.BCZi6A5-.js.br +0 -0
- package/studio/client/_app/immutable/nodes/18.BCZi6A5-.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/19.DoglPV3k.js +0 -1
- package/studio/client/_app/immutable/nodes/19.DoglPV3k.js.br +0 -0
- package/studio/client/_app/immutable/nodes/19.DoglPV3k.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/20.DGbcSpHq.js +0 -45
- package/studio/client/_app/immutable/nodes/20.DGbcSpHq.js.br +0 -0
- package/studio/client/_app/immutable/nodes/20.DGbcSpHq.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/21.CdVcKzDq.js +0 -16
- package/studio/client/_app/immutable/nodes/21.CdVcKzDq.js.br +0 -0
- package/studio/client/_app/immutable/nodes/21.CdVcKzDq.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/28.lF0IrCqU.js +0 -8
- package/studio/client/_app/immutable/nodes/28.lF0IrCqU.js.br +0 -0
- package/studio/client/_app/immutable/nodes/28.lF0IrCqU.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/3.C1mJzj4n.js +0 -1
- package/studio/client/_app/immutable/nodes/3.C1mJzj4n.js.br +0 -0
- package/studio/client/_app/immutable/nodes/3.C1mJzj4n.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/30.BvTn5fYt.js +0 -26
- package/studio/client/_app/immutable/nodes/30.BvTn5fYt.js.br +0 -0
- package/studio/client/_app/immutable/nodes/30.BvTn5fYt.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/38.CX0Z5dJm.js +0 -1
- package/studio/client/_app/immutable/nodes/38.CX0Z5dJm.js.br +0 -0
- package/studio/client/_app/immutable/nodes/38.CX0Z5dJm.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/39.CRxr2YQ6.js +0 -87
- package/studio/client/_app/immutable/nodes/39.CRxr2YQ6.js.br +0 -0
- package/studio/client/_app/immutable/nodes/39.CRxr2YQ6.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/4.YfreNTfv.js +0 -1
- package/studio/client/_app/immutable/nodes/4.YfreNTfv.js.br +0 -1
- package/studio/client/_app/immutable/nodes/4.YfreNTfv.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/41.JtyATqrM.js +0 -1
- package/studio/client/_app/immutable/nodes/41.JtyATqrM.js.br +0 -0
- package/studio/client/_app/immutable/nodes/41.JtyATqrM.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/42.XO5VZAmI.js +0 -1
- package/studio/client/_app/immutable/nodes/42.XO5VZAmI.js.br +0 -0
- package/studio/client/_app/immutable/nodes/42.XO5VZAmI.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/43.CWpVKGhz.js +0 -1
- package/studio/client/_app/immutable/nodes/43.CWpVKGhz.js.br +0 -0
- package/studio/client/_app/immutable/nodes/43.CWpVKGhz.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/44.DX64rKI7.js +0 -1
- package/studio/client/_app/immutable/nodes/44.DX64rKI7.js.br +0 -0
- package/studio/client/_app/immutable/nodes/44.DX64rKI7.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/45.mLQWUOa5.js +0 -2
- package/studio/client/_app/immutable/nodes/45.mLQWUOa5.js.br +0 -0
- package/studio/client/_app/immutable/nodes/45.mLQWUOa5.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/46.KA353oiQ.js +0 -1
- package/studio/client/_app/immutable/nodes/46.KA353oiQ.js.br +0 -0
- package/studio/client/_app/immutable/nodes/46.KA353oiQ.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/47.D3mABDjY.js +0 -1
- package/studio/client/_app/immutable/nodes/47.D3mABDjY.js.br +0 -0
- package/studio/client/_app/immutable/nodes/47.D3mABDjY.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/48.BwjQpQnt.js +0 -1
- package/studio/client/_app/immutable/nodes/48.BwjQpQnt.js.br +0 -0
- package/studio/client/_app/immutable/nodes/48.BwjQpQnt.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/49.EaoBcCzE.js +0 -7
- package/studio/client/_app/immutable/nodes/49.EaoBcCzE.js.br +0 -0
- package/studio/client/_app/immutable/nodes/49.EaoBcCzE.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/5.YfreNTfv.js +0 -1
- package/studio/client/_app/immutable/nodes/5.YfreNTfv.js.br +0 -1
- package/studio/client/_app/immutable/nodes/5.YfreNTfv.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/7.pzlwJNWY.js +0 -1
- package/studio/client/_app/immutable/nodes/7.pzlwJNWY.js.br +0 -0
- package/studio/client/_app/immutable/nodes/7.pzlwJNWY.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/8.COxVG2uL.js +0 -1
- package/studio/client/_app/immutable/nodes/8.COxVG2uL.js.br +0 -0
- package/studio/client/_app/immutable/nodes/8.COxVG2uL.js.gz +0 -0
- package/studio/client/_app/immutable/nodes/9.DEUtbL1G.js +0 -1
- package/studio/client/_app/immutable/nodes/9.DEUtbL1G.js.br +0 -0
- package/studio/client/_app/immutable/nodes/9.DEUtbL1G.js.gz +0 -0
- package/studio/server/chunks/0-oFoj6xob.js +0 -32
- package/studio/server/chunks/0-oFoj6xob.js.map +0 -1
- package/studio/server/chunks/1-BZOYuQnd.js +0 -9
- package/studio/server/chunks/1-BZOYuQnd.js.map +0 -1
- package/studio/server/chunks/11-BDyz7OWy.js +0 -9
- package/studio/server/chunks/11-BDyz7OWy.js.map +0 -1
- package/studio/server/chunks/12-DCVWOw1E.js +0 -9
- package/studio/server/chunks/12-DCVWOw1E.js.map +0 -1
- package/studio/server/chunks/13-D5eVPcWI.js +0 -59
- package/studio/server/chunks/13-D5eVPcWI.js.map +0 -1
- package/studio/server/chunks/14-DLN4rZiK.js +0 -60
- package/studio/server/chunks/14-DLN4rZiK.js.map +0 -1
- package/studio/server/chunks/15-D3vqObtU.js +0 -9
- package/studio/server/chunks/15-D3vqObtU.js.map +0 -1
- package/studio/server/chunks/16-B80xfxth.js +0 -72
- package/studio/server/chunks/16-B80xfxth.js.map +0 -1
- package/studio/server/chunks/17-BHuReO4a.js +0 -9
- package/studio/server/chunks/17-BHuReO4a.js.map +0 -1
- package/studio/server/chunks/18-wt-l6gKd.js +0 -9
- package/studio/server/chunks/18-wt-l6gKd.js.map +0 -1
- package/studio/server/chunks/19-CM1TK59H.js +0 -9
- package/studio/server/chunks/19-CM1TK59H.js.map +0 -1
- package/studio/server/chunks/20-l1HA1gZm.js +0 -138
- package/studio/server/chunks/20-l1HA1gZm.js.map +0 -1
- package/studio/server/chunks/3-CzCasqaG.js +0 -9
- package/studio/server/chunks/3-CzCasqaG.js.map +0 -1
- package/studio/server/chunks/4-CI_t25RD.js +0 -9
- package/studio/server/chunks/4-CI_t25RD.js.map +0 -1
- package/studio/server/chunks/42-P_ROr-Kz.js +0 -56
- package/studio/server/chunks/42-P_ROr-Kz.js.map +0 -1
- package/studio/server/chunks/43-DjsPMRbC.js +0 -9
- package/studio/server/chunks/43-DjsPMRbC.js.map +0 -1
- package/studio/server/chunks/44-Bja0V2qT.js +0 -9
- package/studio/server/chunks/44-Bja0V2qT.js.map +0 -1
- package/studio/server/chunks/45-ClLo6O3h.js +0 -114
- package/studio/server/chunks/45-ClLo6O3h.js.map +0 -1
- package/studio/server/chunks/49-1-oQCIAS.js +0 -14
- package/studio/server/chunks/49-1-oQCIAS.js.map +0 -1
- package/studio/server/chunks/5-rt2C_t_3.js +0 -9
- package/studio/server/chunks/5-rt2C_t_3.js.map +0 -1
- package/studio/server/chunks/7-bEHSOvc4.js +0 -215
- package/studio/server/chunks/7-bEHSOvc4.js.map +0 -1
- package/studio/server/chunks/_error.svelte-DVRBaDbx.js +0 -98
- package/studio/server/chunks/_error.svelte-DVRBaDbx.js.map +0 -1
- package/studio/server/chunks/_error.svelte-Dt8wv2eu.js +0 -98
- package/studio/server/chunks/_error.svelte-Dt8wv2eu.js.map +0 -1
- package/studio/server/chunks/_layout.svelte-55nnwb0N.js +0 -400
- package/studio/server/chunks/_layout.svelte-55nnwb0N.js.map +0 -1
- package/studio/server/chunks/_layout.svelte-BL7PMde9.js +0 -64
- package/studio/server/chunks/_layout.svelte-BL7PMde9.js.map +0 -1
- package/studio/server/chunks/_layout.svelte-BtEadWQB.js +0 -64
- package/studio/server/chunks/_layout.svelte-BtEadWQB.js.map +0 -1
- package/studio/server/chunks/_layout.svelte-CfDTUogU.js +0 -1054
- package/studio/server/chunks/_layout.svelte-CfDTUogU.js.map +0 -1
- package/studio/server/chunks/_page.svelte-B-1o9Tva.js +0 -506
- package/studio/server/chunks/_page.svelte-B-1o9Tva.js.map +0 -1
- package/studio/server/chunks/_page.svelte-B93-TmZo.js +0 -160
- package/studio/server/chunks/_page.svelte-B93-TmZo.js.map +0 -1
- package/studio/server/chunks/_page.svelte-BqwbRDzJ.js +0 -1731
- package/studio/server/chunks/_page.svelte-BqwbRDzJ.js.map +0 -1
- package/studio/server/chunks/_page.svelte-CWrqBxDM.js +0 -1021
- package/studio/server/chunks/_page.svelte-CWrqBxDM.js.map +0 -1
- package/studio/server/chunks/_page.svelte-Cg5sXfnK.js +0 -111
- package/studio/server/chunks/_page.svelte-Cg5sXfnK.js.map +0 -1
- package/studio/server/chunks/_page.svelte-CvEkB4SR.js +0 -319
- package/studio/server/chunks/_page.svelte-CvEkB4SR.js.map +0 -1
- package/studio/server/chunks/_page.svelte-D5uSaQ_6.js +0 -256
- package/studio/server/chunks/_page.svelte-D5uSaQ_6.js.map +0 -1
- package/studio/server/chunks/_page.svelte-D6XGPiAL.js +0 -79
- package/studio/server/chunks/_page.svelte-D6XGPiAL.js.map +0 -1
- package/studio/server/chunks/_page.svelte-DAyju3rn.js +0 -113
- package/studio/server/chunks/_page.svelte-DAyju3rn.js.map +0 -1
- package/studio/server/chunks/_page.svelte-Dxd9_9zA.js +0 -418
- package/studio/server/chunks/_page.svelte-Dxd9_9zA.js.map +0 -1
- package/studio/server/chunks/_page.svelte-GHdQM1UB.js +0 -191
- package/studio/server/chunks/_page.svelte-GHdQM1UB.js.map +0 -1
- package/studio/server/chunks/_page.svelte-axu5NW2S.js +0 -11053
- package/studio/server/chunks/_page.svelte-axu5NW2S.js.map +0 -1
- package/studio/server/chunks/_server.ts-5MqnJlEk.js +0 -87
- package/studio/server/chunks/_server.ts-5MqnJlEk.js.map +0 -1
- package/studio/server/chunks/_server.ts-6KoXdftM.js +0 -70
- package/studio/server/chunks/_server.ts-6KoXdftM.js.map +0 -1
- package/studio/server/chunks/_server.ts-BPbGZeLb.js +0 -718
- package/studio/server/chunks/_server.ts-BPbGZeLb.js.map +0 -1
- package/studio/server/chunks/_server.ts-BQiH-pDg.js +0 -79
- package/studio/server/chunks/_server.ts-BQiH-pDg.js.map +0 -1
- package/studio/server/chunks/_server.ts-BYd-I1tc.js +0 -41
- package/studio/server/chunks/_server.ts-BYd-I1tc.js.map +0 -1
- package/studio/server/chunks/_server.ts-BryF-BNZ.js +0 -96
- package/studio/server/chunks/_server.ts-BryF-BNZ.js.map +0 -1
- package/studio/server/chunks/_server.ts-C5J0RS2-.js +0 -117
- package/studio/server/chunks/_server.ts-C5J0RS2-.js.map +0 -1
- package/studio/server/chunks/_server.ts-CTCmDBMr.js +0 -49
- package/studio/server/chunks/_server.ts-CTCmDBMr.js.map +0 -1
- package/studio/server/chunks/_server.ts-CXM9soU9.js +0 -34
- package/studio/server/chunks/_server.ts-CXM9soU9.js.map +0 -1
- package/studio/server/chunks/_server.ts-CbZYXLYW.js +0 -56
- package/studio/server/chunks/_server.ts-CbZYXLYW.js.map +0 -1
- package/studio/server/chunks/_server.ts-CtiogpOk.js +0 -302
- package/studio/server/chunks/_server.ts-CtiogpOk.js.map +0 -1
- package/studio/server/chunks/_server.ts-D75v2LAN.js +0 -52
- package/studio/server/chunks/_server.ts-D75v2LAN.js.map +0 -1
- package/studio/server/chunks/_server.ts-DANOf9Kg.js +0 -158
- package/studio/server/chunks/_server.ts-DANOf9Kg.js.map +0 -1
- package/studio/server/chunks/_server.ts-DF0SCYmL.js +0 -48
- package/studio/server/chunks/_server.ts-DF0SCYmL.js.map +0 -1
- package/studio/server/chunks/_server.ts-DrkT4gOl.js +0 -121
- package/studio/server/chunks/_server.ts-DrkT4gOl.js.map +0 -1
- package/studio/server/chunks/_server.ts-DscCNgaG.js +0 -87
- package/studio/server/chunks/_server.ts-DscCNgaG.js.map +0 -1
- package/studio/server/chunks/_server.ts-Duz2jodQ.js +0 -22
- package/studio/server/chunks/_server.ts-Duz2jodQ.js.map +0 -1
- package/studio/server/chunks/_server.ts-K-RN8Vah.js +0 -684
- package/studio/server/chunks/_server.ts-K-RN8Vah.js.map +0 -1
- package/studio/server/chunks/_server.ts-OkHzpWAg.js +0 -68
- package/studio/server/chunks/_server.ts-OkHzpWAg.js.map +0 -1
- package/studio/server/chunks/_server.ts-T7wyJ0On.js +0 -58
- package/studio/server/chunks/_server.ts-T7wyJ0On.js.map +0 -1
- package/studio/server/chunks/_server.ts-XWBoVSBG.js +0 -232
- package/studio/server/chunks/_server.ts-XWBoVSBG.js.map +0 -1
- package/studio/server/chunks/_server.ts-liWNn8pd.js +0 -91
- package/studio/server/chunks/_server.ts-liWNn8pd.js.map +0 -1
- package/studio/server/chunks/_server.ts-wjU8lnxc.js +0 -108
- package/studio/server/chunks/_server.ts-wjU8lnxc.js.map +0 -1
- package/studio/server/chunks/_server.ts-xBWWvyW7.js +0 -60
- package/studio/server/chunks/_server.ts-xBWWvyW7.js.map +0 -1
- package/studio/server/chunks/adapter-B-i_4tnk.js +0 -91
- package/studio/server/chunks/adapter-B-i_4tnk.js.map +0 -1
- package/studio/server/chunks/admin.remote-5orFS4k1.js +0 -105
- package/studio/server/chunks/admin.remote-5orFS4k1.js.map +0 -1
- package/studio/server/chunks/ai-access-C-qFWKe-.js +0 -282
- package/studio/server/chunks/ai-access-C-qFWKe-.js.map +0 -1
- package/studio/server/chunks/ai.remote-Da4JRO59.js +0 -37
- package/studio/server/chunks/ai.remote-Da4JRO59.js.map +0 -1
- package/studio/server/chunks/alert-dialog-description-DOMGfPke.js +0 -578
- package/studio/server/chunks/alert-dialog-description-DOMGfPke.js.map +0 -1
- package/studio/server/chunks/animation-DPwINa4I.js +0 -2892
- package/studio/server/chunks/animation-DPwINa4I.js.map +0 -1
- package/studio/server/chunks/api-DkajkFtS.js +0 -434
- package/studio/server/chunks/api-DkajkFtS.js.map +0 -1
- package/studio/server/chunks/api-keys-D9bbxRhK.js +0 -117
- package/studio/server/chunks/api-keys-D9bbxRhK.js.map +0 -1
- package/studio/server/chunks/api-keys.remote-CN4CRiIA.js +0 -88
- package/studio/server/chunks/api-keys.remote-CN4CRiIA.js.map +0 -1
- package/studio/server/chunks/app-header-BfPEtjyC.js +0 -96
- package/studio/server/chunks/app-header-BfPEtjyC.js.map +0 -1
- package/studio/server/chunks/assets.remote-B8_mtYX6.js +0 -113
- package/studio/server/chunks/assets.remote-B8_mtYX6.js.map +0 -1
- package/studio/server/chunks/attribute-protocol-C_pjkekX.js +0 -151
- package/studio/server/chunks/attribute-protocol-C_pjkekX.js.map +0 -1
- package/studio/server/chunks/auth-CiWMo-Qu.js +0 -22472
- package/studio/server/chunks/auth-CiWMo-Qu.js.map +0 -1
- package/studio/server/chunks/auth.remote-C6edHyaa.js +0 -351
- package/studio/server/chunks/auth.remote-C6edHyaa.js.map +0 -1
- package/studio/server/chunks/base-Bq5n_4Fz.js +0 -210
- package/studio/server/chunks/base-Bq5n_4Fz.js.map +0 -1
- package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-CsGahR4n.js +0 -197
- package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-CsGahR4n.js.map +0 -1
- package/studio/server/chunks/captions.remote-BtVr9SZd.js +0 -184
- package/studio/server/chunks/captions.remote-BtVr9SZd.js.map +0 -1
- package/studio/server/chunks/client2-D2vZ7-eF.js +0 -66
- package/studio/server/chunks/client2-D2vZ7-eF.js.map +0 -1
- package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-ClSngqDL.js +0 -160
- package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-ClSngqDL.js.map +0 -1
- package/studio/server/chunks/desktop-bootstrap-C46aoZ6Z.js +0 -67
- package/studio/server/chunks/desktop-bootstrap-C46aoZ6Z.js.map +0 -1
- package/studio/server/chunks/dubbing.remote-DHGIYU_A.js +0 -153
- package/studio/server/chunks/dubbing.remote-DHGIYU_A.js.map +0 -1
- package/studio/server/chunks/editor.svelte-CiJvwHAm.js +0 -21024
- package/studio/server/chunks/editor.svelte-CiJvwHAm.js.map +0 -1
- package/studio/server/chunks/env-CsH9rG40.js +0 -91
- package/studio/server/chunks/env-CsH9rG40.js.map +0 -1
- package/studio/server/chunks/extract-audio.remote-D4Autpid.js +0 -95
- package/studio/server/chunks/extract-audio.remote-D4Autpid.js.map +0 -1
- package/studio/server/chunks/feedback.remote-CfdjHpdW.js +0 -49
- package/studio/server/chunks/feedback.remote-CfdjHpdW.js.map +0 -1
- package/studio/server/chunks/fs-project-BLLGFRv1.js +0 -134
- package/studio/server/chunks/fs-project-BLLGFRv1.js.map +0 -1
- package/studio/server/chunks/generate-speech-BERLu-Vk.js +0 -536
- package/studio/server/chunks/generate-speech-BERLu-Vk.js.map +0 -1
- package/studio/server/chunks/hooks.server-MEVEsSA9.js +0 -309
- package/studio/server/chunks/hooks.server-MEVEsSA9.js.map +0 -1
- package/studio/server/chunks/html-parser-LopZIqoS.js +0 -8516
- package/studio/server/chunks/html-parser-LopZIqoS.js.map +0 -1
- package/studio/server/chunks/html-writer-Ea_4f8hT.js +0 -242
- package/studio/server/chunks/html-writer-Ea_4f8hT.js.map +0 -1
- package/studio/server/chunks/index-CBGGzszt.js +0 -4578
- package/studio/server/chunks/index-CBGGzszt.js.map +0 -1
- package/studio/server/chunks/index12-C5zKPozR.js +0 -265
- package/studio/server/chunks/index12-C5zKPozR.js.map +0 -1
- package/studio/server/chunks/index2-e2qJOUJ5.js +0 -23
- package/studio/server/chunks/index2-e2qJOUJ5.js.map +0 -1
- package/studio/server/chunks/index3-akRvPp-y.js +0 -8
- package/studio/server/chunks/index3-akRvPp-y.js.map +0 -1
- package/studio/server/chunks/index4-CowumPcw.js +0 -48
- package/studio/server/chunks/index4-CowumPcw.js.map +0 -1
- package/studio/server/chunks/index6-92MPHdlt.js +0 -239
- package/studio/server/chunks/index6-92MPHdlt.js.map +0 -1
- package/studio/server/chunks/index8-zuJK-jFa.js +0 -44
- package/studio/server/chunks/index8-zuJK-jFa.js.map +0 -1
- package/studio/server/chunks/layout-template-BoNv9dF2.js +0 -1371
- package/studio/server/chunks/layout-template-BoNv9dF2.js.map +0 -1
- package/studio/server/chunks/lummi.remote-Bx8Vg0et.js +0 -215
- package/studio/server/chunks/lummi.remote-Bx8Vg0et.js.map +0 -1
- package/studio/server/chunks/media-ARIn6Aw1.js +0 -157
- package/studio/server/chunks/media-ARIn6Aw1.js.map +0 -1
- package/studio/server/chunks/media-analysis-GisyEkHY.js +0 -171
- package/studio/server/chunks/media-analysis-GisyEkHY.js.map +0 -1
- package/studio/server/chunks/media-analysis.remote-BzGY_HjI.js +0 -63
- package/studio/server/chunks/media-analysis.remote-BzGY_HjI.js.map +0 -1
- package/studio/server/chunks/middleware-CazuI_Wf.js +0 -72
- package/studio/server/chunks/middleware-CazuI_Wf.js.map +0 -1
- package/studio/server/chunks/mutation-schemas-DOtU1skD.js +0 -137
- package/studio/server/chunks/mutation-schemas-DOtU1skD.js.map +0 -1
- package/studio/server/chunks/mutations-6JWuU3s9.js +0 -503
- package/studio/server/chunks/mutations-6JWuU3s9.js.map +0 -1
- package/studio/server/chunks/node-sqlite-dialect-Q2OvDp9q.js +0 -197
- package/studio/server/chunks/node-sqlite-dialect-Q2OvDp9q.js.map +0 -1
- package/studio/server/chunks/onboarding-email-CHXOtnYq.js +0 -311
- package/studio/server/chunks/onboarding-email-CHXOtnYq.js.map +0 -1
- package/studio/server/chunks/optional-services-rI0rdA4P.js +0 -45
- package/studio/server/chunks/optional-services-rI0rdA4P.js.map +0 -1
- package/studio/server/chunks/pagination-JOJpLeOm.js +0 -159
- package/studio/server/chunks/pagination-JOJpLeOm.js.map +0 -1
- package/studio/server/chunks/posthog-DXw1m97H.js +0 -11
- package/studio/server/chunks/posthog-DXw1m97H.js.map +0 -1
- package/studio/server/chunks/presets-BKeKVq-L.js +0 -369
- package/studio/server/chunks/presets-BKeKVq-L.js.map +0 -1
- package/studio/server/chunks/project-layer-Bbz6zgRN.js +0 -28
- package/studio/server/chunks/project-layer-Bbz6zgRN.js.map +0 -1
- package/studio/server/chunks/projects.remote-Bzca0wLB.js +0 -297
- package/studio/server/chunks/projects.remote-Bzca0wLB.js.map +0 -1
- package/studio/server/chunks/queue-init-DUao6hhx.js +0 -38
- package/studio/server/chunks/queue-init-DUao6hhx.js.map +0 -1
- package/studio/server/chunks/registry-Cq-PY3D3.js +0 -16
- package/studio/server/chunks/registry-Cq-PY3D3.js.map +0 -1
- package/studio/server/chunks/registry2-BSIleFMP.js +0 -4851
- package/studio/server/chunks/registry2-BSIleFMP.js.map +0 -1
- package/studio/server/chunks/remote-148gj0t-CBE9iOwY.js +0 -14
- package/studio/server/chunks/remote-148gj0t-CBE9iOwY.js.map +0 -1
- package/studio/server/chunks/remote-1afl6ud-yFS1W6RH.js +0 -18
- package/studio/server/chunks/remote-1afl6ud-yFS1W6RH.js.map +0 -1
- package/studio/server/chunks/remote-1mi3j6d-COSwmla7.js +0 -21
- package/studio/server/chunks/remote-1mi3j6d-COSwmla7.js.map +0 -1
- package/studio/server/chunks/remote-1rjk8jv-C-ZOeAZr.js +0 -22
- package/studio/server/chunks/remote-1rjk8jv-C-ZOeAZr.js.map +0 -1
- package/studio/server/chunks/remote-1web5fy-Crw8BQuf.js +0 -30
- package/studio/server/chunks/remote-1web5fy-Crw8BQuf.js.map +0 -1
- package/studio/server/chunks/remote-5mu9ty-CiUcViXD.js +0 -31
- package/studio/server/chunks/remote-5mu9ty-CiUcViXD.js.map +0 -1
- package/studio/server/chunks/remote-aelvq6-BHLpqBRM.js +0 -26
- package/studio/server/chunks/remote-aelvq6-BHLpqBRM.js.map +0 -1
- package/studio/server/chunks/remote-em2k3w-BXLmObYN.js +0 -25
- package/studio/server/chunks/remote-em2k3w-BXLmObYN.js.map +0 -1
- package/studio/server/chunks/remote-gezfls-Cmzz6fWa.js +0 -21
- package/studio/server/chunks/remote-gezfls-Cmzz6fWa.js.map +0 -1
- package/studio/server/chunks/remote-lv3p1w-fkE1PB7N.js +0 -15
- package/studio/server/chunks/remote-lv3p1w-fkE1PB7N.js.map +0 -1
- package/studio/server/chunks/remote-ssr7vi-Cbv95MBE.js +0 -33
- package/studio/server/chunks/remote-ssr7vi-Cbv95MBE.js.map +0 -1
- package/studio/server/chunks/remote-sy19x7-BA_A5ekM.js +0 -29
- package/studio/server/chunks/remote-sy19x7-BA_A5ekM.js.map +0 -1
- package/studio/server/chunks/remote-tisyb0-CCv0922s.js +0 -31
- package/studio/server/chunks/remote-tisyb0-CCv0922s.js.map +0 -1
- package/studio/server/chunks/remote-xj8myv-CNAPSYMd.js +0 -31
- package/studio/server/chunks/remote-xj8myv-CNAPSYMd.js.map +0 -1
- package/studio/server/chunks/remote-z7lvth-Dddp33_7.js +0 -23
- package/studio/server/chunks/remote-z7lvth-Dddp33_7.js.map +0 -1
- package/studio/server/chunks/remote-zjib3m-CgmI2LZY.js +0 -24
- package/studio/server/chunks/remote-zjib3m-CgmI2LZY.js.map +0 -1
- package/studio/server/chunks/render-api-su0kZhxA.js +0 -240
- package/studio/server/chunks/render-api-su0kZhxA.js.map +0 -1
- package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-DU6E-ve4.js +0 -4752
- package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-DU6E-ve4.js.map +0 -1
- package/studio/server/chunks/subscription-CjEjoIFS.js +0 -138
- package/studio/server/chunks/subscription-CjEjoIFS.js.map +0 -1
- package/studio/server/chunks/subscription-limits-B7Q2pts9.js +0 -114
- package/studio/server/chunks/subscription-limits-B7Q2pts9.js.map +0 -1
- package/studio/server/chunks/template-usage.remote-DOFxtTHM.js +0 -53
- package/studio/server/chunks/template-usage.remote-DOFxtTHM.js.map +0 -1
- package/studio/server/chunks/thumbnail-queue-BrPRb6F7.js +0 -148
- package/studio/server/chunks/thumbnail-queue-BrPRb6F7.js.map +0 -1
- package/studio/server/chunks/tooltip-provider-BFZoIP02.js +0 -30
- package/studio/server/chunks/tooltip-provider-BFZoIP02.js.map +0 -1
- package/studio/server/chunks/tooltip.svelte-Bjv4TH3V.js +0 -658
- package/studio/server/chunks/tooltip.svelte-Bjv4TH3V.js.map +0 -1
- package/studio/server/chunks/tts.remote-yMAINgCv.js +0 -187
- package/studio/server/chunks/tts.remote-yMAINgCv.js.map +0 -1
- package/studio/server/chunks/ui.svelte-CpA5kqfc.js +0 -88
- package/studio/server/chunks/ui.svelte-CpA5kqfc.js.map +0 -1
- package/studio/server/chunks/upload-service-CC8E9Slo.js +0 -212
- package/studio/server/chunks/upload-service-CC8E9Slo.js.map +0 -1
- package/studio/server/chunks/upload.remote-RYslr_Ul.js +0 -131
- package/studio/server/chunks/upload.remote-RYslr_Ul.js.map +0 -1
- package/studio/server/chunks/video-generation.remote-CrPX-27G.js +0 -197
- package/studio/server/chunks/video-generation.remote-CrPX-27G.js.map +0 -1
- package/studio/server/chunks/video-renderer-CSVxoynk.js +0 -412
- package/studio/server/chunks/video-renderer-CSVxoynk.js.map +0 -1
- package/studio/server/chunks/watermark-R6qX4KkH.js +0 -164
- package/studio/server/chunks/watermark-R6qX4KkH.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-KHs6y_Wc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/(app)/chat/_server.ts.js"],"sourcesContent":["import { tool, ToolLoopAgent, convertToModelMessages } from \"ai\";\nimport { error, isHttpError } from \"@sveltejs/kit\";\nimport { env } from \"../../../../chunks/env.js\";\nimport { createOpenRouter } from \"@openrouter/ai-sdk-provider\";\nimport { z } from \"zod\";\nimport { p as projectDataSchema, P as ProjectSchema } from \"../../../../chunks/animation.js\";\nimport { M as MediaSegmentTypeSchema, a as analyzeAndSaveMediaAsset } from \"../../../../chunks/media-analysis.js\";\nimport { a as actionRegistry } from \"../../../../chunks/registry.js\";\nimport { U as UngroupLayersInputSchema, G as GroupLayersInputSchema, C as ConfigureProjectInputSchema, R as RemoveLayerInputSchema, a as UpsertLayerInputSchema, d as designPlaybookSection, p as presetCatalogSection, c as assetLibrarySection, e as assetProtocolSection, n as narrationWorkflowSection, v as voiceCatalogSection } from \"../../../../chunks/design-knowledge.js\";\nimport { d as dmElements, a as describeLayerAttributes } from \"../../../../chunks/attribute-protocol.js\";\nimport { c as canUserAccessAI, b as getModel, l as logAIUsage } from \"../../../../chunks/ai-access.js\";\nimport { existsSync, mkdirSync, writeFileSync } from \"fs\";\nimport { join } from \"path\";\nimport { t as trackEvent } from \"../../../../chunks/posthog.js\";\nimport { a as asset } from \"../../../../chunks/api.js\";\nimport { inArray, eq, desc } from \"drizzle-orm\";\nconst AnalyzeMediaInputSchema = z.object({\n layerId: z.string().describe(\n \"Video or audio layer ID or name to analyze. Sends media to multimodal AI for detailed scene-by-scene breakdown.\"\n ),\n context: z.string().optional().describe(\n 'Optional hint about content type (e.g., \"tech tutorial about React hooks\") to improve analysis accuracy'\n )\n});\nconst ComposeFromMediaInputSchema = z.object({\n layerId: z.string().describe(\n \"Source video/audio layer ID or name. Must have been analyzed with analyze_media first.\"\n ),\n mode: z.enum([\"keep-highlights\", \"remove-dead-space\", \"custom\"]).describe(\n \"Editing mode: keep-highlights = only highlight segments, remove-dead-space = everything except silence/filler, custom = filter by type or specify exact time ranges\"\n ),\n customSegments: z.array(\n z.object({\n sourceStart: z.number().min(0).describe(\"Start time in source media (seconds)\"),\n sourceEnd: z.number().min(0).describe(\"End time in source media (seconds)\"),\n label: z.string().optional().describe(\"Label for this segment (becomes layer name)\")\n })\n ).optional().describe('For \"custom\" mode: exact time ranges to keep from the source'),\n includeTypes: z.array(MediaSegmentTypeSchema).optional().describe(\n 'For \"custom\" mode: only keep segments of these types (e.g., [\"content\", \"highlight\"])'\n ),\n excludeTypes: z.array(MediaSegmentTypeSchema).optional().describe(\n 'For \"custom\" mode: remove segments of these types (e.g., [\"dead-space\", \"tangent\"])'\n ),\n gapBetweenSegments: z.number().min(0).max(5).default(0).describe(\"Gap between consecutive segments in the output timeline (seconds, default: 0)\")\n});\nconst RunActionInputSchema = z.object({\n layerId: z.string().optional().describe(\n \"Source layer ID or name. Required for: generate-captions, dub-audio, extract-audio, generate-speech. Omit for: generate-video.\"\n ),\n actionId: z.enum(Object.keys(actionRegistry)).describe(\n \"Action to run: \" + Object.values(actionRegistry).map((a) => `\"${a.id}\" — ${a.description}`).join(\" | \")\n ),\n params: z.record(z.string(), z.unknown()).optional().describe(\n 'Action-specific parameters. generate-captions: { language? (e.g., \"en\"), prompt? (context), position? (\"bottom\"|\"top\"|\"middle\"), mode? (\"highlight\"|\"single-word\"|\"typewriter\"|\"block\"), fontFamily?, fontSize?, fontWeight?, textColor?, bgColor?, textEffect? }. dub-audio: { targetLang (\"es\"|\"fr\"|\"de\"|\"it\"|\"pt\"|\"ru\"|\"ja\"|\"ko\"|\"zh\"|\"ar\"|\"hi\"|\"nl\"|\"pl\"|\"tr\"), sourceLang? }. extract-audio: no params needed. generate-video: { prompt (required, describe the video), duration? (4–15s, default 5), resolution? (\"480p\"|\"720p\"), generateAudio? (bool, default true) }. generate-image: { prompt (required, describe the image), aspect? (\"square\"|\"landscape\"|\"portrait\"), transparentBackground? (bool, for logos/cutouts) }. find-stock-image: { query (required, search terms), orientation? (\"square\"|\"horizontal\"|\"vertical\"), imageType? (\"photo\"|\"illustration\"|\"3d\") }. generate-speech: { text (required), voiceId (required — exact case-sensitive value from the TTS Voice Catalog), modelId? (eleven_v3|eleven_v3_turbo|eleven_multilingual_v2|eleven_turbo_v2_5|eleven_flash_v2_5), stability? (0–1), similarityBoost? (0–1) }.'\n )\n});\nconst animationTools = {\n upsert_layer: tool({\n description: `Create or modify a layer. All sizes/positions in % of project width (not pixels).\n- CREATE: omit layerId, provide layer {type, props}. Omitted props use schema defaults.\n- EDIT: pass layerId (from a previous upsert_layer/run_action response, or the layer name). Everything is a patch — provide only what changes. layer {type, props} only when changing props (type must match the target layer). Use animation.preset/keyframes to animate existing layers, including media layers added by run_action.\n\nExample — create a text title with fade-in:\n{\"name\":\"Title\",\"layer\":{\"type\":\"text\",\"props\":{\"content\":\"Hello\",\"fontSize\":4,\"color\":\"#ffffff\"}},\"transform\":{\"position\":{\"x\":0,\"y\":-20}},\"animation\":{\"preset\":{\"id\":\"fade-in\",\"startTime\":0,\"duration\":0.5}}}\n\nExample — retime an existing layer:\n{\"layerId\":\"abc123\",\"enterTime\":2,\"exitTime\":6,\"animation\":{\"preset\":{\"id\":\"fade-out\",\"startTime\":5.6,\"duration\":0.4}}}`,\n inputSchema: UpsertLayerInputSchema\n }),\n remove_layer: tool({\n description: \"Delete a layer by ID (from upsert_layer) or name.\",\n inputSchema: RemoveLayerInputSchema\n }),\n configure_project: tool({\n description: \"Set project name, dimensions (px), duration (s), or background (hex string or gradient object).\",\n inputSchema: ConfigureProjectInputSchema\n }),\n group_layers: tool({\n description: \"Group multiple layers into a folder. Transform/rotate/scale the group to affect all children together.\",\n inputSchema: GroupLayersInputSchema\n }),\n ungroup_layers: tool({\n description: \"Dissolve a group. Children become top-level; group transforms are baked into each child.\",\n inputSchema: UngroupLayersInputSchema\n }),\n run_action: tool({\n description: `Run an AI-powered media action:\n- generate-captions: Transcribe audio/video to synced captions layer. Needs layerId. Params: { language?, prompt?, position? \"bottom\"|\"top\"|\"middle\", mode? \"highlight\"|\"single-word\"|\"typewriter\"|\"block\", fontFamily?, fontSize?, fontWeight?, textColor?, bgColor?, textEffect?, textEffectColor?, textEffectSize?, transitionEffects?, transitionDuration? }\n- dub-audio: AI voice-clone dubbing into another language. Needs layerId. Params: { targetLang (required, e.g. \"es\"), sourceLang? }\n- extract-audio: Rip audio track from video. Needs layerId. No params.\n- generate-video: Seedance 2.0 text-to-video. No layerId. Params: { prompt (required), duration? 4–15s, resolution? \"480p\"|\"720p\", generateAudio? }\n- generate-image: AI text-to-image, saved as asset + image layer. No layerId. Params: { prompt (required), aspect? \"square\"|\"landscape\"|\"portrait\", transparentBackground? (logos/cutouts) }\n- find-stock-image: Search real stock photos (Lummi), import best match as asset + image layer with attribution. No layerId. Params: { query (required), orientation?, imageType? }. The response includes layersAdded[].props.src/fileKey for reuse.\n- generate-speech: ElevenLabs TTS synthesis. Needs layerId of an audio layer (create one first if needed). Params: { text (required), voiceId (required, exact case-sensitive value from the TTS Voice Catalog), modelId?, stability? 0–1, similarityBoost? 0–1 }\n\nSlow/credit-consuming actions (generate-video, generate-image, dub-audio, generate-speech) pause for user approval before running — the user sees the action and its inputs and can approve or deny.`,\n inputSchema: RunActionInputSchema,\n // Human-in-the-loop: expensive external API actions pause for user approval.\n // Flag lives on the action definition — single source for chat and any\n // future approval-aware surface.\n needsApproval: (input) => actionRegistry[input.actionId]?.requiresApproval ?? false\n }),\n compose_from_media: tool({\n description: `Split an analyzed video/audio into sequential segments. Requires analyze_media first.\n\nModes:\n- keep-highlights: only highlight segments\n- remove-dead-space: everything except silence/filler\n- custom: filter by segment type (includeTypes/excludeTypes) or exact time ranges (customSegments)\n\nSource layer is replaced by N sequential layers, each pointing to the same file with different contentOffset and timing. Add gapBetweenSegments for breathing room.`,\n inputSchema: ComposeFromMediaInputSchema\n })\n};\nfunction compactLayerPropsReference() {\n const lines = [];\n for (const entry of dmElements) {\n const { attributes } = describeLayerAttributes(entry.layerType, entry.contentProp);\n const parts = attributes.map((a) => {\n if (a.options?.length) return `${a.prop}[${a.options.join(\"|\")}]`;\n if (a.type === \"number\" && (a.min !== void 0 || a.max !== void 0)) {\n return `${a.prop}(num ${a.min ?? \"\"}…${a.max ?? \"\"})`;\n }\n return a.prop;\n });\n const content = entry.contentProp ? `${entry.contentProp}(text), ` : \"\";\n lines.push(`- ${entry.layerType}: ${content}${parts.join(\", \")}`);\n }\n return lines.join(\"\\n\");\n}\nconst fps = 30;\nconst name = \"Untitled Project\";\nconst width = 1280;\nconst height = 720;\nconst schemaVersion = 2;\nconst layers = [{ \"id\": \"random-id-1\", \"name\": \"Text\", \"type\": \"text\", \"props\": { \"color\": \"#ffffff\", \"width\": 31.25, \"content\": \"Creating\", \"fontSize\": 3.75, \"autoWidth\": true, \"textAlign\": \"center\", \"fontFamily\": \"Poppins\", \"fontWeight\": \"normal\" }, \"style\": { \"opacity\": 1 }, \"locked\": false, \"visible\": true, \"keyframes\": [{ \"id\": \"random-id-2\", \"time\": 0, \"value\": -5.27, \"property\": \"position.x\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-3\", \"time\": 0, \"value\": 0, \"property\": \"position.y\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-4\", \"time\": 0, \"value\": 0, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-5\", \"time\": 0, \"value\": 0.7, \"property\": \"scale.x\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-5\", \"time\": 0, \"value\": 0.7, \"property\": \"scale.y\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-6\", \"time\": 0, \"value\": \"Creating\", \"property\": \"props.content\", \"interpolation\": { \"family\": \"text\", \"strategy\": \"char-reveal\" } }, { \"id\": \"random-id-6\", \"time\": 0.625, \"value\": \"Creating\", \"property\": \"props.content\", \"interpolation\": { \"family\": \"text\", \"strategy\": \"word-reveal\", \"separator\": \" \" } }, { \"id\": \"random-id-7\", \"time\": 0.6278125, \"value\": 1, \"property\": \"scale.y\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-8\", \"time\": 0.6278125, \"value\": 1, \"property\": \"scale.x\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-9\", \"time\": 0.6278125, \"value\": -5.27, \"property\": \"position.x\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-10\", \"time\": 1.0278125, \"value\": 1, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-11\", \"time\": 1.1840000000000008, \"value\": -24.27, \"property\": \"position.x\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-12\", \"time\": 1.5478125, \"value\": \"Creating Motion design videos\", \"property\": \"props.content\", \"interpolation\": { \"family\": \"text\", \"strategy\": \"word-reveal\", \"separator\": \" \" } }, { \"id\": \"random-id-13\", \"time\": 1.7278125, \"value\": 1, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in\" } }, { \"id\": \"random-id-14\", \"time\": 1.7278125, \"value\": 0, \"property\": \"position.y\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }, { \"id\": \"random-id-15\", \"time\": 2.4078125000000017, \"value\": 0, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"linear\" } }, { \"id\": \"random-id-16\", \"time\": 2.4078125000000017, \"value\": 3.28, \"property\": \"position.y\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in-out\" } }], \"transform\": { \"scale\": { \"x\": 0.7, \"y\": 0.7 }, \"anchor\": \"center-left\", \"position\": { \"x\": 0, \"y\": 0, \"z\": 0 }, \"rotation\": { \"x\": 0, \"y\": 0, \"z\": 0 } } }, { \"id\": \"random-id-17\", \"name\": \"Text\", \"type\": \"text\", \"props\": { \"color\": \"#ffffff\", \"width\": 31.25, \"content\": \"is\", \"fontSize\": 3.75, \"autoWidth\": true, \"textAlign\": \"center\", \"fontFamily\": \"Poppins\", \"fontWeight\": \"normal\" }, \"style\": { \"opacity\": 1 }, \"locked\": false, \"visible\": true, \"exitTime\": 5.31, \"enterTime\": 2.4, \"keyframes\": [{ \"id\": \"random-id-18\", \"time\": 2.4378125, \"value\": 0, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-out\" } }, { \"id\": \"random-id-19\", \"time\": 2.4478125, \"value\": \"is\", \"property\": \"props.content\", \"interpolation\": { \"family\": \"text\", \"strategy\": \"char-reveal\" } }, { \"id\": \"random-id-20\", \"time\": 2.4478125, \"value\": 0, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-out\" } }, { \"id\": \"random-id-21\", \"time\": 2.8478125, \"value\": 1, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"linear\" } }, { \"id\": \"random-id-22\", \"time\": 2.9378125, \"value\": 1, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"linear\" } }, { \"id\": \"random-id-23\", \"time\": 4.7178125, \"value\": 1, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"ease-in\" } }, { \"id\": \"random-id-24\", \"time\": 4.8478125, \"value\": \"is slow & boring\", \"property\": \"props.content\", \"interpolation\": { \"family\": \"text\", \"strategy\": \"char-reveal\" } }, { \"id\": \"random-id-25\", \"time\": 5.187812500000001, \"value\": 0, \"property\": \"opacity\", \"interpolation\": { \"family\": \"continuous\", \"strategy\": \"linear\" } }], \"transform\": { \"scale\": { \"x\": 1, \"y\": 1 }, \"anchor\": \"center\", \"position\": { \"x\": 0, \"y\": 0, \"z\": 0 }, \"rotation\": { \"x\": 0, \"y\": 0, \"z\": 0 } } }];\nconst duration = 10;\nconst background = { \"type\": \"linear\", \"angle\": 110, \"stops\": [{ \"color\": \"#c4f9ff\", \"position\": 11 }, { \"color\": \"#eec5f6\", \"position\": 42 }, { \"color\": \"#edb5fe\", \"position\": 72 }, { \"color\": \"#7bb7fd\", \"position\": 100 }] };\nconst fontFamily = \"Raleway\";\nconst goodExampleRaw = {\n fps,\n name,\n width,\n height,\n schemaVersion,\n layers,\n duration,\n background,\n fontFamily\n};\nconst exampleProject = projectDataSchema.parse(goodExampleRaw);\nfunction formatTimestamp(seconds) {\n const mins = Math.floor(seconds / 60);\n const secs = Math.round(seconds % 60);\n return `${mins}:${secs.toString().padStart(2, \"0\")}`;\n}\nfunction buildMediaContextSection(mediaContexts) {\n if (mediaContexts.length === 0) return \"\";\n const lines = [\"## Media in Project\\n\"];\n for (const media of mediaContexts) {\n lines.push(`### \"${media.layerName}\" (${media.layerType})`);\n if (!media.annotation) {\n lines.push(\"Not yet analyzed. Call **analyze_media** first.\\n\");\n continue;\n }\n const ann = media.annotation;\n lines.push(\n `Duration: ${formatTimestamp(ann.duration)} | Model: ${ann.modelUsed.split(\"/\").pop()}`\n );\n lines.push(`Summary: ${ann.summary}`);\n if (ann.topics.length > 0) {\n lines.push(`Topics: ${ann.topics.join(\", \")}`);\n }\n const typeCounts = {};\n for (const seg of ann.segments) {\n typeCounts[seg.type] = (typeCounts[seg.type] || 0) + 1;\n }\n const segSummary = Object.entries(typeCounts).map(([type, count]) => `${count} ${type}`).join(\", \");\n lines.push(`Segments: ${ann.segments.length} total (${segSummary})`);\n const highlights = ann.segments.filter((s) => s.type === \"highlight\");\n if (highlights.length > 0) {\n const hlTimes = highlights.map((h) => `${formatTimestamp(h.start)}-${formatTimestamp(h.end)}: ${h.label}`).join(\"; \");\n lines.push(`Highlights: ${hlTimes}`);\n }\n if (ann.suggestedCuts.length > 0) {\n const cuts = ann.suggestedCuts.map((c) => `${formatTimestamp(c.start)}-${formatTimestamp(c.end)} (${c.reason})`).join(\"; \");\n lines.push(`Suggested cuts: ${cuts}`);\n }\n lines.push(\"Segments detail:\");\n for (const seg of ann.segments) {\n lines.push(\n ` ${formatTimestamp(seg.start)}-${formatTimestamp(seg.end)} [${seg.type}] \"${seg.label}\" (energy:${seg.energy.toFixed(1)}, relevance:${seg.relevance.toFixed(1)})`\n );\n }\n lines.push(\"\");\n }\n return lines.join(\"\\n\");\n}\nfunction buildSystemPrompt(project, mediaContexts = [], assetLibrary = [], voices = []) {\n const halfHeightPct = Math.round(project.height / 2 / project.width * 100);\n const thirdHeightPct = Math.round(project.height / 3 / project.width * 100);\n const mediaContextSection = buildMediaContextSection(mediaContexts);\n return `You are a motion-graphics designer creating polished video animations.\n\n## Workflow\n\n- **Full video request**: Plan the scene (duration, layers, layout, animations), then execute all tool calls.\n- **Spot request** (add/edit one element): Skip planning — apply best practices and fulfill the ask directly.\n\nSteps for full requests: present brief plan → execute tools → confirm.\n\n## Coordinate System (CRITICAL)\n\nCanvas: ${project.width}x${project.height}px | Duration: ${project.duration}s | FPS: ${project.fps}\n\nALL positions, sizes, font sizes, radii, and stroke widths are **% of project width** (NOT pixels).\n- (0,0) = canvas center (with default positionOrigin: center)\n- X range: -50 (left edge) to +50 (right edge)\n- Y range: -${halfHeightPct} (top) to +${halfHeightPct} (bottom)\n- width:50 = half the canvas width\n- fontSize:4 = text ~4% of canvas width (e.g., ~29px on 720px canvas)\n- All percentage values scale proportionally regardless of canvas size\n\ntransform.positionOrigin: shifts the (0,0) reference point on the canvas.\nDefault \"center\" makes (0,0) the canvas center. Use \"top-left\" to make (0,0) the top-left corner.\n\n## Tools\n\n- **upsert_layer**: Create a layer (omit layerId; layer.type+props required) or patch-edit an existing one (pass layerId; provide only what changes, layer.type must match). Supports transform/style/timing and animation.preset/keyframes — use it to animate layers created by run_action too.\n- **remove_layer**: Delete layer by ID or name\n- **configure_project**: Set name, dimensions, duration, background\n- **group_layers** / **ungroup_layers**: Manage layer groups\n- **analyze_media**: Analyze video/audio via multimodal AI → transcript, segments, highlights, dead space, editing suggestions. Results persist on asset.\n- **compose_from_media**: Build edited cut from analyzed media. Modes: keep-highlights (keep only highlights), remove-dead-space (keep everything except silence/filler), custom (filter by segment type or exact time ranges).\n- **run_action**: AI-powered operations: generate-captions (transcribe audio→captions layer), dub-audio (AI voice cloning translation), extract-audio (rip audio from video), generate-video (Seedance 2.0 text→video), generate-image (AI text→image asset+layer), find-stock-image (real stock photo→asset+layer), generate-speech (ElevenLabs TTS).\n\n### Generated / Stock Media Workflow\n1. To get missing media, call **run_action** with actionId \"generate-image\", \"generate-video\", or \"find-stock-image\".\n2. The action creates the media layer for you. Use the returned layersAdded[].id for all subsequent edits.\n3. The returned layersAdded[].props contains the real media source (for images: props.src, props.fileKey, props.fileName, attribution). Treat those props as authoritative.\n4. Some actions update an existing layer instead of adding a new one. Use returned layersUpdated[].changes as authoritative for src/fileKey/contentDuration/timing after the action completes.\n5. Do not remove and recreate generated/stock media layers just to animate or resize them. Use **upsert_layer** with the returned layer ID and props/timing/transform/style/animation.\n6. Only create a new media layer manually when you already have a real src from the Asset Library, user attachment, user-provided URL, or a tool result.\n\n### Fade / Crossfade Rules\n- enterTime/exitTime only control hard visibility. They do NOT create fades.\n- For a fade-in, add opacity keyframes 0 → 1 over the fade window.\n- For a fade-out, add opacity keyframes 1 → 0 before exitTime.\n- For a crossfade, overlap the outgoing/incoming layers AND add opacity keyframes on both layers during the overlap.\n- Do not claim a layer fades or crossfades unless you created opacity keyframes or used a fade preset.\n\n### Media Editing Workflow\n1. Call **analyze_media** on a video/audio layer to get full analysis\n2. Review results and propose an editing strategy\n3. Call **compose_from_media** to split source into sequential segments\n4. Fine-tune segments with upsert_layer/remove_layer\n\n${designPlaybookSection()}\n\n### Backgrounds — capabilities\n- Gradients: linear (angle + color stops), radial, conic — multiple stops with transparency supported\n- Set project-wide background via configure_project (backgroundColor accepts hex string or gradient object)\n- For animated/ambient backgrounds, create shape layers with their own background property\n- Interpolation by property type: position/scale/opacity/rotation → continuous with easing;\n colors → continuous (RGB); text content (props.content) → text (char/word-reveal);\n booleans/enums → discrete (step-end/step-start/step-mid)\n\n${presetCatalogSection()}\n\n## Interpolation Reference\n\n- **continuous**: Smooth numeric/color transitions. Strategies: linear, ease-in, ease-out, ease-in-out, ease-in-quad, ease-out-quad, ease-in-out-quad, ease-in-back, ease-out-back, ease-in-bounce, ease-out-bounce, ease-in-elastic, ease-out-elastic\n- **discrete**: Instant jumps. Strategies: step-end (hold old value until keyframe), step-start (jump immediately), step-mid (jump at midpoint)\n- **quantized**: Smooth animation snapped to integers (strategy: integer) or grid (strategy: snap-grid + increment)\n- **text**: Character/word reveal (char-reveal, word-reveal). ONLY for props.content on text/terminal layers.\n\n## HTML Keyframe Syntax\n\nWhen editing HTML scenes directly, use \\`data-dm-keyframe-<property>\\` with\n\\`time:value@strategy\\`. The \\`@strategy\\` suffix maps to interpolation family:\n- \\`@ease-out\\`, \\`@ease-in-out\\`, etc. → continuous\n- \\`@step-start\\`, \\`@step-end\\`, \\`@step-mid\\` → discrete\n- \\`@integer\\`, \\`@snap-grid\\` → quantized (\\`snap-grid\\` uses \\`data-dm-grid-increment\\`)\n- \\`@char-reveal\\`, \\`@word-reveal\\` → text interpolation for \\`props.content\\`\n\nExamples:\n\\`data-dm-keyframe-opacity=\"0:0@ease-out; 0.5:1@ease-out\"\\`\n\\`data-dm-keyframe-props-content=\"0:@char-reveal; 1.4:Welcome@char-reveal\"\\`\n\\`data-dm-word-separator=\" \"\\` with \\`@word-reveal\\`\n\\`data-dm-grid-increment=\"0.25\"\\` with \\`@snap-grid\\`\n\nFor polished \\`dm-text\\` character/word reveals, add fragment transition attrs:\n\\`transition-effects=\"fade,slide-up,blur\"\\`, \\`transition-duration=\"350\"\\`,\n\\`transition-easing=\"ease-in-quad\"\\`, \\`slide-distance=\"2.7\"\\`,\n\\`scale-from=\"0.5\"\\`, \\`blur-amount=\"0.78\"\\`.\n\n## Layer Props (per type)\n\nUse these exact prop names with upsert_layer. Derived from the layer\nschemas — they are authoritative. \\`[a|b]\\` = allowed enum values; \\`(num lo…hi)\\`\n= numeric range. \\`(text)\\` props are also the element's child text in HTML.\n\n${compactLayerPropsReference()}\n\n## Transform Properties\n\nposition: { x, y, z } — in % of project width\nscale: { x, y } — multiplier (1 = normal)\nrotation: { x, y, z } — radians\nanchor: pivot point for transforms (top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right)\npositionOrigin: canvas reference for (0,0) — same values as anchor. Default \"center\" = (0,0) at canvas center.\n\n## Layout Guidelines\n\nThree-zone distribution on a ${project.width}x${project.height} canvas:\n- Title zone: y ≈ -${thirdHeightPct} (upper third)\n- Content zone: y ≈ 0 (center)\n- Footer zone: y ≈ +${thirdHeightPct} (lower third)\n\n${assetLibrarySection(assetLibrary)}\n\n${assetProtocolSection(\"chat\")}\n\n${narrationWorkflowSection(\"chat\")}\n\n${voiceCatalogSection(voices)}\n\n## Rules\n\n1. Plan first, then execute (skip planning for single-element requests)\n2. Always use rich, intentional backgrounds\n3. Every property value must be a deliberate choice\n4. Plain text only — no markdown formatting in responses\n5. Suggest analyze_media if project has unanalyzed video/audio layers\n6. Use layer IDs returned by upsert_layer for subsequent edit/remove calls\n7. Follow the Asset Rules — never fabricate media URLs; ask for or generate missing assets\n\n## Reference Example\n\nBelow is a valid project showing correct structure and percentage-based values.\nNote: the example shows fontSize as % of project width, positions as %, etc.\nUse it to understand the schema shape, not as a source of literal values.\n\n${JSON.stringify(exampleProject)}\n\n${mediaContextSection}`;\n}\nconst GenerateRequestSchema = z.object({\n project: ProjectSchema,\n modelId: z.string().describe(\"Model ID to use for generation\"),\n messages: z.array(z.custom())\n});\nconst MAX_IMAGE_SIZE = 200 * 1024;\nfunction getOpenRouterClient(userId, projectId) {\n if (env.DESKTOP_MODE) {\n throw new Error(\"Not supported in desktop mode\");\n }\n const apiKey = env.OPENROUTER_API_KEY;\n if (!apiKey) {\n throw new Error(\"OPENROUTER_API_KEY is not configured\");\n }\n return createOpenRouter({\n apiKey,\n ...env.HELINE_AUTH ? {\n baseURL: \"https://openrouter.helicone.ai/api/v1\",\n headers: {\n \"Helicone-Auth\": `Bearer ${env.HELINE_AUTH}`,\n \"Helicone-User-Id\": userId,\n \"Helicone-Property-Project\": projectId ?? \"\"\n }\n } : {}\n });\n}\nfunction logAIInteraction(data) {\n try {\n const logsDir = join(process.cwd(), \"logs\", \"ai-chat\");\n if (!existsSync(logsDir)) {\n mkdirSync(logsDir, { recursive: true });\n }\n const filename = `${data.timestamp.replace(/[:.]/g, \"-\")}.json`;\n const filepath = join(logsDir, filename);\n const logData = {\n timestamp: data.timestamp,\n model: {\n id: data.modelId,\n name: data.modelName\n },\n systemPrompt: {\n length: data.systemPromptLength\n },\n messages: data.userMessages.map((msg, idx) => {\n const content = JSON.stringify(msg);\n return {\n index: idx,\n role: msg.role,\n contentPreview: content.substring(0, 200) + (content.length > 200 ? \"...\" : \"\"),\n fullMessage: msg\n };\n }),\n toolCalls: data.toolCalls?.length ? {\n count: data.toolCalls.length,\n calls: data.toolCalls\n } : void 0,\n response: data.responseMessages?.length ? {\n messageCount: data.responseMessages.length,\n messages: data.responseMessages\n } : void 0,\n usage: data.usage\n };\n writeFileSync(filepath, JSON.stringify(logData, null, 2), \"utf-8\");\n console.log(`\n${\"=\".repeat(80)}`);\n console.log(`[AI Chat] ${data.timestamp}`);\n console.log(`${\"=\".repeat(80)}`);\n console.log(`Model: ${data.modelName} (${data.modelId})`);\n console.log(`System Prompt: ${data.systemPromptLength} chars`);\n console.log(`User Messages: ${data.userMessages.length}`);\n if (data.toolCalls?.length) {\n console.log(`Tool Calls: ${data.toolCalls.length}`);\n }\n if (data.usage) {\n console.log(\n `Tokens: ${data.usage.totalTokens || \"N/A\"} (input: ${data.usage.inputTokens || \"N/A\"}, output: ${data.usage.outputTokens || \"N/A\"})`\n );\n }\n console.log(`Log file: ${filepath}`);\n console.log(`${\"=\".repeat(80)}\n`);\n } catch (err) {\n console.error(\"[AI] Failed to log interaction:\", err);\n }\n}\nfunction validateImageSizes(messages) {\n for (const message of messages) {\n if (!message.parts) continue;\n for (const part of message.parts) {\n if (\"image\" in part && typeof part.image === \"string\") {\n const base64Data = part.image.split(\",\")[1];\n if (base64Data) {\n const sizeInBytes = Math.floor(base64Data.length * 3 / 4);\n if (sizeInBytes > MAX_IMAGE_SIZE) {\n error(\n 413,\n `Image size (${Math.round(sizeInBytes / 1024)}KB) exceeds maximum allowed size (${MAX_IMAGE_SIZE / 1024}KB)`\n );\n }\n }\n }\n }\n }\n}\nfunction filterImagesFromOldMessages(messages) {\n let lastImageMessageIndex = -1;\n for (let i = messages.length - 1; i >= 0; i--) {\n if (messages[i].role === \"user\" && messages[i].parts?.some((p) => p.type === \"file\")) {\n lastImageMessageIndex = i;\n break;\n }\n }\n return messages.map((msg, idx) => {\n if (msg.role !== \"user\" || idx === lastImageMessageIndex) {\n return msg;\n }\n const hasImage = msg.parts?.some((p) => p.type === \"file\");\n if (!hasImage) return msg;\n return {\n ...msg,\n parts: msg.parts?.map(\n (part) => part.type === \"file\" ? { type: \"text\", text: \"(image removed to reduce context size)\" } : part\n )\n };\n });\n}\nasync function getMediaContexts(project, db) {\n const mediaLayers = project.layers.filter((l) => l.type === \"video\" || l.type === \"audio\");\n if (mediaLayers.length === 0) return [];\n const fileKeyMap = /* @__PURE__ */ new Map();\n for (const layer of mediaLayers) {\n const fileKey = layer.props.fileKey;\n if (fileKey && !fileKeyMap.has(fileKey)) {\n fileKeyMap.set(fileKey, { layerName: layer.name, layerType: layer.type });\n }\n }\n if (fileKeyMap.size === 0) return [];\n const fileKeys = [...fileKeyMap.keys()];\n const assets = await db.select({\n storageKey: asset.storageKey,\n annotation: asset.annotation\n }).from(asset).where(inArray(asset.storageKey, fileKeys));\n const annotationMap = /* @__PURE__ */ new Map();\n for (const a of assets) {\n annotationMap.set(a.storageKey, a.annotation);\n }\n return fileKeys.map((fileKey) => ({\n layerName: fileKeyMap.get(fileKey).layerName,\n layerType: fileKeyMap.get(fileKey).layerType,\n fileKey,\n annotation: annotationMap.get(fileKey) ?? null\n }));\n}\nasync function getAssetLibrary(userId, db, limit = 30) {\n const assets = await db.select({\n name: asset.originalName,\n mediaType: asset.mediaType,\n url: asset.url,\n storageKey: asset.storageKey,\n duration: asset.duration,\n annotation: asset.annotation\n }).from(asset).where(eq(asset.userId, userId)).orderBy(desc(asset.createdAt)).limit(limit);\n return assets.map((a) => ({\n name: a.name,\n mediaType: a.mediaType,\n url: a.url,\n fileKey: a.storageKey,\n duration: a.duration,\n summary: a.annotation?.summary ?? null\n }));\n}\nasync function getVoiceCatalog() {\n const apiKey = env.ELEVENLABS_API_KEY;\n if (!apiKey) return [];\n try {\n const { getTtsVoices } = await import(\"../../../../chunks/tts-voices.js\");\n return await getTtsVoices(apiKey);\n } catch (err) {\n console.warn(\"[AI] Failed to load TTS voices for prompt:\", err);\n return [];\n }\n}\nfunction formatDuration(seconds) {\n const mins = Math.floor(seconds / 60);\n const secs = Math.round(seconds % 60);\n return mins > 0 ? `${mins}m${secs.toString().padStart(2, \"0\")}s` : `${secs}s`;\n}\nconst POST = async ({ request, locals }) => {\n try {\n let enableCacheControl = function(messages2) {\n return messages2.map((message) => {\n if (typeof message.content !== \"string\") {\n return message;\n }\n return {\n ...message,\n providerOptions: {\n ...message.providerOptions,\n openrouter: {\n ...message.providerOptions?.openrouter,\n cacheControl: {\n type: \"ephemeral\"\n /* ttl: '1h' */\n }\n }\n }\n };\n });\n };\n if (!locals.user) {\n error(401, \"Authentication required\");\n }\n const user = locals.user;\n const accessCheck = await canUserAccessAI(user.id, locals.db);\n if (!accessCheck.allowed) {\n error(403, accessCheck.reason || \"AI access not enabled\");\n }\n const body = await request.json();\n const { project, modelId, messages } = GenerateRequestSchema.parse(body);\n validateImageSizes(messages);\n const filteredMessages = filterImagesFromOldMessages(messages);\n const openrouter = getOpenRouterClient(user.email, project.id);\n const [mediaContexts, assetLibrary, voices] = await Promise.all([\n getMediaContexts(project, locals.db),\n getAssetLibrary(user.id, locals.db),\n getVoiceCatalog()\n ]);\n const systemPrompt = buildSystemPrompt(project, mediaContexts, assetLibrary, voices);\n const model = getModel(modelId);\n console.log(`[AI] Using model: ${model.name} (${model.id})`);\n console.log(`[AI] System prompt length: ${systemPrompt.length} chars`);\n const serverTools = {\n analyze_media: tool({\n description: \"Analyze a video/audio layer with multimodal AI. Extracts transcript, scene segments, highlights, dead space, and editing suggestions. Results persist on the asset. Call before compose_from_media.\",\n inputSchema: AnalyzeMediaInputSchema,\n execute: async ({ layerId, context }) => {\n try {\n const layer = project.layers.find(\n (l) => l.id === layerId || l.name.toLowerCase() === layerId.toLowerCase()\n );\n if (!layer) {\n const available = project.layers.map((l) => `\"${l.name}\" (id: ${l.id})`).join(\", \");\n return {\n success: false,\n message: `Layer \"${layerId}\" not found. Available: ${available}`,\n error: \"Layer not found\"\n };\n }\n if (layer.type !== \"video\" && layer.type !== \"audio\") {\n return {\n success: false,\n message: `Layer \"${layer.name}\" is a ${layer.type} layer, not video/audio`,\n error: \"Not a media layer\"\n };\n }\n const fileKey = layer.props.fileKey;\n if (!fileKey) {\n return {\n success: false,\n message: `Layer \"${layer.name}\" has no media file uploaded`,\n error: \"No fileKey\"\n };\n }\n console.log(`[AI] Analyzing media: ${fileKey}`);\n const result2 = await analyzeAndSaveMediaAsset(fileKey, context, user, locals.db);\n if (!result2.success) {\n return { success: false, message: result2.error, error: result2.error };\n }\n const annotation = result2.annotation;\n const highlights = annotation.segments.filter((s) => s.type === \"highlight\");\n const deadSpace = annotation.segments.filter((s) => s.type === \"dead-space\");\n console.log(\n `[AI] Media analysis complete: ${annotation.segments.length} segments, ${annotation.suggestedCuts.length} suggested cuts`\n );\n return {\n success: true,\n message: `Analyzed ${formatDuration(annotation.duration)} of ${annotation.modelUsed.split(\"/\").pop()}. Found ${annotation.segments.length} segments (${highlights.length} highlights, ${deadSpace.length} dead space). ${annotation.suggestedCuts.length} cuts suggested.`,\n summary: annotation.summary,\n segmentCount: annotation.segments.length,\n highlightCount: highlights.length,\n deadSpaceCount: deadSpace.length,\n suggestedCutsCount: annotation.suggestedCuts.length,\n duration: annotation.duration,\n topics: annotation.topics\n };\n } catch (err) {\n console.error(\"[AI] Media analysis error:\", err);\n return {\n success: false,\n message: \"Failed to analyze media\",\n error: err instanceof Error ? err.message : \"Unknown error\"\n };\n }\n }\n })\n };\n const allTools = { ...animationTools, ...serverTools };\n const agent = new ToolLoopAgent({\n model: openrouter(model.id, {\n reasoning: {\n effort: model.effort\n }\n }),\n // Explicit output budget: without it some providers default to a few\n // thousand tokens and long steps (reasoning + several tool calls) get\n // truncated mid-tool-input, stranding the call in input-streaming.\n ...model.maxOutputTokens ? { maxOutputTokens: model.maxOutputTokens } : {},\n providerOptions: {\n openrouter: {\n only: model.providerOnly\n }\n },\n instructions: {\n role: \"system\",\n content: systemPrompt,\n providerOptions: {\n openrouter: {\n cacheControl: {\n type: \"ephemeral\"\n },\n sort: \"price\"\n }\n }\n },\n tools: allTools,\n async onFinish(event) {\n logAIInteraction({\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n modelId: model.id,\n modelName: model.name,\n systemPromptLength: systemPrompt.length,\n userMessages: messages,\n toolCalls: event.toolCalls,\n responseMessages: event.response.messages,\n requestData: event.request,\n usage: event.usage\n });\n if (event.usage) {\n await logAIUsage(\n {\n userId: user.id,\n modelId: model.id,\n promptTokens: event.usage.inputTokens || 0,\n completionTokens: event.usage.outputTokens || 0,\n metadata: {\n projectName: project.name,\n messageCount: messages.length,\n toolCallCount: event.toolCalls?.length || 0\n }\n },\n locals.db\n );\n }\n await trackEvent(user.id, \"ai_chat_message\", {\n modelId: model.id,\n modelName: model.name,\n projectId: project.id,\n messageCount: messages.length,\n toolCallCount: event.toolCalls?.length || 0,\n inputTokens: event.usage?.inputTokens || 0,\n outputTokens: event.usage?.outputTokens || 0,\n plan: user.subscriptionTier\n });\n }\n });\n const result = await agent.stream({\n messages: [\n ...enableCacheControl([...await convertToModelMessages(filteredMessages)]),\n {\n role: \"system\",\n content: JSON.stringify(project)\n }\n ]\n });\n return result.toUIMessageStreamResponse();\n } catch (err) {\n if (isHttpError(err)) {\n throw err;\n }\n console.error(\"[AI] Error generating animation:\", err);\n if (err instanceof z.ZodError) {\n error(400, `Validation error: ${err.message}`);\n }\n error(500, err instanceof Error ? err.message : \"Failed to generate animation\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { withApiAuth, apiError, apiSuccess } from './middleware-D0o6fOUG.js';
|
|
2
|
+
import { p as project } from './api-Do--xZ9M.js';
|
|
3
|
+
import { eq } from 'drizzle-orm';
|
|
4
|
+
import { g as getAction } from './registry-z2-pQ1Jw.js';
|
|
5
|
+
import { r as runRegisteredAction } from './find-stock-image-DDfrK_rA.js';
|
|
6
|
+
import { a as applyActionResultToData } from './apply-result-DUy8ya08.js';
|
|
7
|
+
import z__default from 'zod';
|
|
8
|
+
import { i as createFromSchema } from './animation-sOd5R1cE.js';
|
|
9
|
+
import './index-Dp2_pJiZ.js';
|
|
10
|
+
import 'nanoid';
|
|
11
|
+
import 'drizzle-orm/pg-core';
|
|
12
|
+
import './branding-5rLT-BvK.js';
|
|
13
|
+
import './base-qepI6vHK.js';
|
|
14
|
+
import './media-v9Bq2kuR.js';
|
|
15
|
+
|
|
16
|
+
const ActionSchema = z__default.union([
|
|
17
|
+
z__default.object({
|
|
18
|
+
layerId: z__default.string()
|
|
19
|
+
}).catchall(z__default.unknown()),
|
|
20
|
+
z__default.object({
|
|
21
|
+
layerName: z__default.string()
|
|
22
|
+
}).catchall(z__default.unknown())
|
|
23
|
+
]);
|
|
24
|
+
const POST = withApiAuth(async (event) => {
|
|
25
|
+
const { db } = event.locals;
|
|
26
|
+
const { id, actionId } = event.params;
|
|
27
|
+
if (!id || typeof id !== "string") {
|
|
28
|
+
return apiError(400, "MISSING_PROJECT_ID", 'Request must include a "id" parameter');
|
|
29
|
+
}
|
|
30
|
+
if (!actionId || typeof actionId !== "string") {
|
|
31
|
+
return apiError(400, "MISSING_ACTION_ID", 'Request must include an "actionId" parameter');
|
|
32
|
+
}
|
|
33
|
+
const action = getAction(actionId);
|
|
34
|
+
if (!action) {
|
|
35
|
+
return apiError(404, "ACTION_NOT_FOUND", `Unknown action: ${actionId}`);
|
|
36
|
+
}
|
|
37
|
+
let body;
|
|
38
|
+
try {
|
|
39
|
+
body = ActionSchema.parse(await event.request.json());
|
|
40
|
+
} catch (e) {
|
|
41
|
+
if (e instanceof z__default.ZodError) {
|
|
42
|
+
return apiError(400, "INVALID_JSON", e.message);
|
|
43
|
+
}
|
|
44
|
+
return apiError(400, "INVALID_JSON", "Request body must be valid JSON");
|
|
45
|
+
}
|
|
46
|
+
const { layerId, layerName, ...actionInput } = body;
|
|
47
|
+
const dbProject = await db.query.project.findFirst({
|
|
48
|
+
where: eq(project.id, id)
|
|
49
|
+
});
|
|
50
|
+
if (!dbProject) {
|
|
51
|
+
return apiError(404, "PROJECT_NOT_FOUND", `Project ${id} not found`);
|
|
52
|
+
}
|
|
53
|
+
if (dbProject.userId !== event.locals.user.id) {
|
|
54
|
+
return apiError(403, "ACCESS_DENIED", "You do not have access to this project");
|
|
55
|
+
}
|
|
56
|
+
const projectData = dbProject.data;
|
|
57
|
+
const sourceLayer = projectData.layers.find(
|
|
58
|
+
(l) => l.id === layerId || l.name === layerName
|
|
59
|
+
);
|
|
60
|
+
if (!sourceLayer) {
|
|
61
|
+
return apiError(404, "LAYER_NOT_FOUND", `Layer not found in project`);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const result = await runRegisteredAction({
|
|
65
|
+
action,
|
|
66
|
+
input: createFromSchema(action.inputSchema, actionInput),
|
|
67
|
+
sourceLayer,
|
|
68
|
+
project: projectData
|
|
69
|
+
});
|
|
70
|
+
applyActionResultToData(projectData, result);
|
|
71
|
+
await db.update(project).set({ data: projectData, updatedAt: /* @__PURE__ */ new Date() }).where(eq(project.id, id));
|
|
72
|
+
return apiSuccess({
|
|
73
|
+
action: actionId,
|
|
74
|
+
layers_added: result.layersToAdd?.map((l) => ({
|
|
75
|
+
id: l.layer.id,
|
|
76
|
+
name: l.layer.name,
|
|
77
|
+
type: l.layer.type
|
|
78
|
+
})) ?? [],
|
|
79
|
+
layers_updated: result.layersToUpdate?.map((u) => u.id) ?? []
|
|
80
|
+
});
|
|
81
|
+
} catch (e) {
|
|
82
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
83
|
+
if (message.includes("upgrade")) {
|
|
84
|
+
return apiError(402, "UPGRADE_REQUIRED", message);
|
|
85
|
+
}
|
|
86
|
+
return apiError(500, "ACTION_FAILED", message);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
export { POST };
|
|
91
|
+
//# sourceMappingURL=_server.ts-_eJk5Eiu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-_eJk5Eiu.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/v1/projects/_id_/actions/_actionId_/_server.ts.js"],"sourcesContent":["import { withApiAuth, apiError, apiSuccess } from \"../../../../../../../../chunks/middleware.js\";\nimport { p as project } from \"../../../../../../../../chunks/api.js\";\nimport { eq } from \"drizzle-orm\";\nimport { g as getAction } from \"../../../../../../../../chunks/registry.js\";\nimport { r as runRegisteredAction } from \"../../../../../../../../chunks/find-stock-image.js\";\nimport { a as applyActionResultToData } from \"../../../../../../../../chunks/apply-result.js\";\nimport z__default from \"zod\";\nimport { c as createFromSchema } from \"../../../../../../../../chunks/registry-data.js\";\nconst ActionSchema = z__default.union([\n z__default.object({\n layerId: z__default.string()\n }).catchall(z__default.unknown()),\n z__default.object({\n layerName: z__default.string()\n }).catchall(z__default.unknown())\n]);\nconst POST = withApiAuth(async (event) => {\n const { db } = event.locals;\n const { id, actionId } = event.params;\n if (!id || typeof id !== \"string\") {\n return apiError(400, \"MISSING_PROJECT_ID\", 'Request must include a \"id\" parameter');\n }\n if (!actionId || typeof actionId !== \"string\") {\n return apiError(400, \"MISSING_ACTION_ID\", 'Request must include an \"actionId\" parameter');\n }\n const action = getAction(actionId);\n if (!action) {\n return apiError(404, \"ACTION_NOT_FOUND\", `Unknown action: ${actionId}`);\n }\n let body;\n try {\n body = ActionSchema.parse(await event.request.json());\n } catch (e) {\n if (e instanceof z__default.ZodError) {\n return apiError(400, \"INVALID_JSON\", e.message);\n }\n return apiError(400, \"INVALID_JSON\", \"Request body must be valid JSON\");\n }\n const { layerId, layerName, ...actionInput } = body;\n const dbProject = await db.query.project.findFirst({\n where: eq(project.id, id)\n });\n if (!dbProject) {\n return apiError(404, \"PROJECT_NOT_FOUND\", `Project ${id} not found`);\n }\n if (dbProject.userId !== event.locals.user.id) {\n return apiError(403, \"ACCESS_DENIED\", \"You do not have access to this project\");\n }\n const projectData = dbProject.data;\n const sourceLayer = projectData.layers.find(\n (l) => l.id === layerId || l.name === layerName\n );\n if (!sourceLayer) {\n return apiError(404, \"LAYER_NOT_FOUND\", `Layer not found in project`);\n }\n try {\n const result = await runRegisteredAction({\n action,\n input: createFromSchema(action.inputSchema, actionInput),\n sourceLayer,\n project: projectData\n });\n applyActionResultToData(projectData, result);\n await db.update(project).set({ data: projectData, updatedAt: /* @__PURE__ */ new Date() }).where(eq(project.id, id));\n return apiSuccess({\n action: actionId,\n layers_added: result.layersToAdd?.map((l) => ({\n id: l.layer.id,\n name: l.layer.name,\n type: l.layer.type\n })) ?? [],\n layers_updated: result.layersToUpdate?.map((u) => u.id) ?? []\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n if (message.includes(\"upgrade\")) {\n return apiError(402, \"UPGRADE_REQUIRED\", message);\n }\n return apiError(500, \"ACTION_FAILED\", message);\n }\n});\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { env } from './env-AoZ3P0fg.js';
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
import { s as sanitizeFilename } from './filename-sanitizer-yQZjRxRx.js';
|
|
4
|
+
import './shared-server-hNytdPP9.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
|
|
7
|
+
let s3Upload = null;
|
|
8
|
+
let s3Delete = null;
|
|
9
|
+
let fs = null;
|
|
10
|
+
let path = null;
|
|
11
|
+
let os = null;
|
|
12
|
+
function getExtension(mimeType) {
|
|
13
|
+
const baseMimeType = mimeType.split(";")[0].trim();
|
|
14
|
+
const map = {
|
|
15
|
+
"image/jpeg": "jpg",
|
|
16
|
+
"image/png": "png",
|
|
17
|
+
"image/gif": "gif",
|
|
18
|
+
"image/webp": "webp",
|
|
19
|
+
"image/svg+xml": "svg",
|
|
20
|
+
"video/mp4": "mp4",
|
|
21
|
+
"video/webm": "webm",
|
|
22
|
+
"video/quicktime": "mov",
|
|
23
|
+
"video/x-msvideo": "avi",
|
|
24
|
+
"audio/mpeg": "mp3",
|
|
25
|
+
"audio/wav": "wav",
|
|
26
|
+
"audio/ogg": "ogg",
|
|
27
|
+
"audio/webm": "weba",
|
|
28
|
+
"audio/mp4": "m4a",
|
|
29
|
+
"audio/aac": "aac"
|
|
30
|
+
};
|
|
31
|
+
return map[baseMimeType] || "bin";
|
|
32
|
+
}
|
|
33
|
+
async function uploadToStorage(file, originalName, mimeType, mediaType, kind, userId) {
|
|
34
|
+
if (env.DESKTOP_MODE) {
|
|
35
|
+
if (!fs) {
|
|
36
|
+
const fsModule = await import('fs');
|
|
37
|
+
fs = fsModule.promises;
|
|
38
|
+
path = await import('path');
|
|
39
|
+
os = await import('os');
|
|
40
|
+
}
|
|
41
|
+
const sanitizedOriginalName = sanitizeFilename(originalName);
|
|
42
|
+
const fileId = nanoid();
|
|
43
|
+
const ext = getExtension(mimeType);
|
|
44
|
+
const prefix = `${userId || "public"}/${kind}`;
|
|
45
|
+
const key = `${prefix}/${mediaType}/${fileId}.${ext}`;
|
|
46
|
+
const appDataDir = path.join(os.homedir(), ".devmotion");
|
|
47
|
+
const filePath = path.join(appDataDir, "assets", key);
|
|
48
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
49
|
+
await fs.writeFile(filePath, file);
|
|
50
|
+
return {
|
|
51
|
+
fileId,
|
|
52
|
+
key,
|
|
53
|
+
url: `/api/desktop/assets/${encodeURIComponent(key)}`,
|
|
54
|
+
originalName: sanitizedOriginalName,
|
|
55
|
+
mimeType,
|
|
56
|
+
size: file.length,
|
|
57
|
+
mediaType
|
|
58
|
+
};
|
|
59
|
+
} else {
|
|
60
|
+
if (!s3Upload) {
|
|
61
|
+
const storageModule = await import('./index6-BwFC1GDh.js').then((n) => n.j);
|
|
62
|
+
s3Upload = storageModule.uploadFile;
|
|
63
|
+
}
|
|
64
|
+
return s3Upload(file, originalName, mimeType, mediaType, kind, userId);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function deleteFromStorage(key) {
|
|
68
|
+
if (env.DESKTOP_MODE) {
|
|
69
|
+
if (!fs) {
|
|
70
|
+
const fsModule = await import('fs');
|
|
71
|
+
fs = fsModule.promises;
|
|
72
|
+
path = await import('path');
|
|
73
|
+
os = await import('os');
|
|
74
|
+
}
|
|
75
|
+
const appDataDir = path.join(os.homedir(), ".devmotion");
|
|
76
|
+
const filePath = path.join(appDataDir, "assets", key);
|
|
77
|
+
await fs.unlink(filePath);
|
|
78
|
+
} else {
|
|
79
|
+
if (!s3Delete) {
|
|
80
|
+
const storageModule = await import('./index6-BwFC1GDh.js').then((n) => n.j);
|
|
81
|
+
s3Delete = storageModule.deleteFile;
|
|
82
|
+
}
|
|
83
|
+
await s3Delete(key);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function shouldEnforceQuota() {
|
|
87
|
+
return !env.DESKTOP_MODE;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { deleteFromStorage, shouldEnforceQuota, uploadToStorage };
|
|
91
|
+
//# sourceMappingURL=adapter-XtQVoo_l.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-XtQVoo_l.js","sources":["../../../.svelte-kit/adapter-node/chunks/adapter.js"],"sourcesContent":["import { env } from \"./env.js\";\nimport { nanoid } from \"nanoid\";\nimport { s as sanitizeFilename } from \"./filename-sanitizer.js\";\nlet s3Upload = null;\nlet s3Delete = null;\nlet fs = null;\nlet path = null;\nlet os = null;\nfunction getExtension(mimeType) {\n const baseMimeType = mimeType.split(\";\")[0].trim();\n const map = {\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/gif\": \"gif\",\n \"image/webp\": \"webp\",\n \"image/svg+xml\": \"svg\",\n \"video/mp4\": \"mp4\",\n \"video/webm\": \"webm\",\n \"video/quicktime\": \"mov\",\n \"video/x-msvideo\": \"avi\",\n \"audio/mpeg\": \"mp3\",\n \"audio/wav\": \"wav\",\n \"audio/ogg\": \"ogg\",\n \"audio/webm\": \"weba\",\n \"audio/mp4\": \"m4a\",\n \"audio/aac\": \"aac\"\n };\n return map[baseMimeType] || \"bin\";\n}\nasync function uploadToStorage(file, originalName, mimeType, mediaType, kind, userId) {\n if (env.DESKTOP_MODE) {\n if (!fs) {\n const fsModule = await import(\"fs\");\n fs = fsModule.promises;\n path = await import(\"path\");\n os = await import(\"os\");\n }\n const sanitizedOriginalName = sanitizeFilename(originalName);\n const fileId = nanoid();\n const ext = getExtension(mimeType);\n const prefix = `${userId || \"public\"}/${kind}`;\n const key = `${prefix}/${mediaType}/${fileId}.${ext}`;\n const appDataDir = path.join(os.homedir(), \".devmotion\");\n const filePath = path.join(appDataDir, \"assets\", key);\n await fs.mkdir(path.dirname(filePath), { recursive: true });\n await fs.writeFile(filePath, file);\n return {\n fileId,\n key,\n url: `/api/desktop/assets/${encodeURIComponent(key)}`,\n originalName: sanitizedOriginalName,\n mimeType,\n size: file.length,\n mediaType\n };\n } else {\n if (!s3Upload) {\n const storageModule = await import(\"./index6.js\").then((n) => n.j);\n s3Upload = storageModule.uploadFile;\n }\n return s3Upload(file, originalName, mimeType, mediaType, kind, userId);\n }\n}\nasync function deleteFromStorage(key) {\n if (env.DESKTOP_MODE) {\n if (!fs) {\n const fsModule = await import(\"fs\");\n fs = fsModule.promises;\n path = await import(\"path\");\n os = await import(\"os\");\n }\n const appDataDir = path.join(os.homedir(), \".devmotion\");\n const filePath = path.join(appDataDir, \"assets\", key);\n await fs.unlink(filePath);\n } else {\n if (!s3Delete) {\n const storageModule = await import(\"./index6.js\").then((n) => n.j);\n s3Delete = storageModule.deleteFile;\n }\n await s3Delete(key);\n }\n}\nfunction shouldEnforceQuota() {\n return !env.DESKTOP_MODE;\n}\nexport {\n deleteFromStorage,\n shouldEnforceQuota,\n uploadToStorage\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import './root-DjEsp22s.js';
|
|
2
|
+
import { g as getRequestEvent } from './event-DmhHnWT5.js';
|
|
3
|
+
import { i as init_remote_functions } from './remote-functions-C4V-TgoU.js';
|
|
4
|
+
import './index-Dp2_pJiZ.js';
|
|
5
|
+
import { q as query } from './query-D9bdUhU3.js';
|
|
6
|
+
import { c as user, p as project, b as aiUsageLog } from './api-Do--xZ9M.js';
|
|
7
|
+
import { max, eq, sql, count, and, gte, lte } from 'drizzle-orm';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { c as checkRole } from './auth.remote-CN4se14K.js';
|
|
10
|
+
|
|
11
|
+
const m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
12
|
+
__proto__: null,
|
|
13
|
+
get getAdminStats() {
|
|
14
|
+
return getAdminStats;
|
|
15
|
+
},
|
|
16
|
+
get getAllUsers() {
|
|
17
|
+
return getAllUsers;
|
|
18
|
+
}
|
|
19
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
20
|
+
const getAllUsers = query(async () => {
|
|
21
|
+
await checkRole("admin");
|
|
22
|
+
const { locals } = getRequestEvent();
|
|
23
|
+
const currentUserId = locals.user.id;
|
|
24
|
+
const rows = await locals.db.select({
|
|
25
|
+
id: user.id,
|
|
26
|
+
name: user.name,
|
|
27
|
+
email: user.email,
|
|
28
|
+
lastProjectUpdate: max(project.updatedAt).as("last_project_update")
|
|
29
|
+
}).from(user).leftJoin(project, eq(project.userId, user.id)).groupBy(user.id, user.name, user.email);
|
|
30
|
+
return rows.sort((a, b) => {
|
|
31
|
+
if (a.id === currentUserId) return -1;
|
|
32
|
+
if (b.id === currentUserId) return 1;
|
|
33
|
+
const aTime = a.lastProjectUpdate?.getTime() ?? 0;
|
|
34
|
+
const bTime = b.lastProjectUpdate?.getTime() ?? 0;
|
|
35
|
+
return bTime - aTime;
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const getAdminStats = query(
|
|
39
|
+
z.object({
|
|
40
|
+
// Accept both Date objects and coerce-able strings (datetime-local values)
|
|
41
|
+
from: z.coerce.date(),
|
|
42
|
+
to: z.coerce.date()
|
|
43
|
+
}),
|
|
44
|
+
async ({ from, to }) => {
|
|
45
|
+
await checkRole("admin");
|
|
46
|
+
const { locals } = getRequestEvent();
|
|
47
|
+
const userStats = await locals.db.select({
|
|
48
|
+
id: user.id,
|
|
49
|
+
name: user.name,
|
|
50
|
+
email: user.email,
|
|
51
|
+
createdAt: user.createdAt,
|
|
52
|
+
projectCount: sql`cast(count(distinct ${project.id}) as int)`
|
|
53
|
+
}).from(user).leftJoin(project, eq(project.userId, user.id)).groupBy(user.id, user.name, user.email, user.createdAt).orderBy(user.createdAt);
|
|
54
|
+
const modelBreakdown = await locals.db.select({
|
|
55
|
+
userId: aiUsageLog.userId,
|
|
56
|
+
modelId: aiUsageLog.modelId,
|
|
57
|
+
runs: count(aiUsageLog.id),
|
|
58
|
+
costUsd: sql`coalesce(sum(${aiUsageLog.estimatedCost}), 0)`
|
|
59
|
+
}).from(aiUsageLog).where(and(gte(aiUsageLog.createdAt, from), lte(aiUsageLog.createdAt, to))).groupBy(aiUsageLog.userId, aiUsageLog.modelId).orderBy(aiUsageLog.userId, aiUsageLog.modelId);
|
|
60
|
+
const modelsByUser = /* @__PURE__ */ new Map();
|
|
61
|
+
for (const row of modelBreakdown) {
|
|
62
|
+
if (!modelsByUser.has(row.userId)) modelsByUser.set(row.userId, []);
|
|
63
|
+
modelsByUser.get(row.userId).push(row);
|
|
64
|
+
}
|
|
65
|
+
const allProjects = await locals.db.select({
|
|
66
|
+
id: project.id,
|
|
67
|
+
name: project.name,
|
|
68
|
+
isPublic: project.isPublic,
|
|
69
|
+
userId: project.userId,
|
|
70
|
+
updatedAt: project.updatedAt,
|
|
71
|
+
views: project.views
|
|
72
|
+
}).from(project).orderBy(project.updatedAt);
|
|
73
|
+
const projectsByUser = /* @__PURE__ */ new Map();
|
|
74
|
+
for (const p of allProjects) {
|
|
75
|
+
if (!p.userId) continue;
|
|
76
|
+
if (!projectsByUser.has(p.userId)) projectsByUser.set(p.userId, []);
|
|
77
|
+
projectsByUser.get(p.userId).push(p);
|
|
78
|
+
}
|
|
79
|
+
return userStats.map((u) => {
|
|
80
|
+
const models = (modelsByUser.get(u.id) ?? []).map((m2) => ({
|
|
81
|
+
modelId: m2.modelId,
|
|
82
|
+
runs: m2.runs,
|
|
83
|
+
// USD → cents, 4 decimal places
|
|
84
|
+
costCents: Math.round(m2.costUsd * 100 * 1e4) / 1e4
|
|
85
|
+
}));
|
|
86
|
+
const totalCostCents = models.reduce((s, m2) => s + m2.costCents, 0);
|
|
87
|
+
return {
|
|
88
|
+
...u,
|
|
89
|
+
totalCostCents,
|
|
90
|
+
models,
|
|
91
|
+
projects: (projectsByUser.get(u.id) ?? []).sort(
|
|
92
|
+
(a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()
|
|
93
|
+
)
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
init_remote_functions(m, "src/lib/functions/admin.remote.ts", "zjib3m");
|
|
99
|
+
for (const [name, fn] of Object.entries(m)) {
|
|
100
|
+
fn.__.id = "zjib3m/" + name;
|
|
101
|
+
fn.__.name = name;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export { getAllUsers as a, getAdminStats as g, m };
|
|
105
|
+
//# sourceMappingURL=admin.remote-C-MAmmW-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.remote-C-MAmmW-.js","sources":["../../../.svelte-kit/adapter-node/chunks/admin.remote.js"],"sourcesContent":["import \"./url.js\";\nimport { getRequestEvent } from \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nimport \"./utils.js\";\nimport \"@sveltejs/kit\";\nimport { init_remote_functions } from \"@sveltejs/kit/internal\";\nimport { q as query } from \"./query.js\";\nimport { z as user, p as project, d as aiUsageLog } from \"./api.js\";\nimport { sql, eq, count, and, gte, lte, max } from \"drizzle-orm\";\nimport { z } from \"zod\";\nimport { c as checkRole } from \"./auth.remote.js\";\nconst m = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n get getAdminStats() {\n return getAdminStats;\n },\n get getAllUsers() {\n return getAllUsers;\n }\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst getAllUsers = query(async () => {\n await checkRole(\"admin\");\n const { locals } = getRequestEvent();\n const currentUserId = locals.user.id;\n const rows = await locals.db.select({\n id: user.id,\n name: user.name,\n email: user.email,\n lastProjectUpdate: max(project.updatedAt).as(\"last_project_update\")\n }).from(user).leftJoin(project, eq(project.userId, user.id)).groupBy(user.id, user.name, user.email);\n return rows.sort((a, b) => {\n if (a.id === currentUserId) return -1;\n if (b.id === currentUserId) return 1;\n const aTime = a.lastProjectUpdate?.getTime() ?? 0;\n const bTime = b.lastProjectUpdate?.getTime() ?? 0;\n return bTime - aTime;\n });\n});\nconst getAdminStats = query(\n z.object({\n // Accept both Date objects and coerce-able strings (datetime-local values)\n from: z.coerce.date(),\n to: z.coerce.date()\n }),\n async ({ from, to }) => {\n await checkRole(\"admin\");\n const { locals } = getRequestEvent();\n const userStats = await locals.db.select({\n id: user.id,\n name: user.name,\n email: user.email,\n createdAt: user.createdAt,\n projectCount: sql`cast(count(distinct ${project.id}) as int)`\n }).from(user).leftJoin(project, eq(project.userId, user.id)).groupBy(user.id, user.name, user.email, user.createdAt).orderBy(user.createdAt);\n const modelBreakdown = await locals.db.select({\n userId: aiUsageLog.userId,\n modelId: aiUsageLog.modelId,\n runs: count(aiUsageLog.id),\n costUsd: sql`coalesce(sum(${aiUsageLog.estimatedCost}), 0)`\n }).from(aiUsageLog).where(and(gte(aiUsageLog.createdAt, from), lte(aiUsageLog.createdAt, to))).groupBy(aiUsageLog.userId, aiUsageLog.modelId).orderBy(aiUsageLog.userId, aiUsageLog.modelId);\n const modelsByUser = /* @__PURE__ */ new Map();\n for (const row of modelBreakdown) {\n if (!modelsByUser.has(row.userId)) modelsByUser.set(row.userId, []);\n modelsByUser.get(row.userId).push(row);\n }\n const allProjects = await locals.db.select({\n id: project.id,\n name: project.name,\n isPublic: project.isPublic,\n userId: project.userId,\n updatedAt: project.updatedAt,\n views: project.views\n }).from(project).orderBy(project.updatedAt);\n const projectsByUser = /* @__PURE__ */ new Map();\n for (const p of allProjects) {\n if (!p.userId) continue;\n if (!projectsByUser.has(p.userId)) projectsByUser.set(p.userId, []);\n projectsByUser.get(p.userId).push(p);\n }\n return userStats.map((u) => {\n const models = (modelsByUser.get(u.id) ?? []).map((m2) => ({\n modelId: m2.modelId,\n runs: m2.runs,\n // USD → cents, 4 decimal places\n costCents: Math.round(m2.costUsd * 100 * 1e4) / 1e4\n }));\n const totalCostCents = models.reduce((s, m2) => s + m2.costCents, 0);\n return {\n ...u,\n totalCostCents,\n models,\n projects: (projectsByUser.get(u.id) ?? []).sort(\n (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()\n )\n };\n });\n }\n);\ninit_remote_functions(m, \"src/lib/functions/admin.remote.ts\", \"zjib3m\");\nfor (const [name, fn] of Object.entries(m)) {\n fn.__.id = \"zjib3m/\" + name;\n fn.__.name = name;\n}\nexport {\n getAllUsers as a,\n getAdminStats as g,\n m\n};\n"],"names":[],"mappings":"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"}
|