decocms 4.329.1 → 4.329.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-glTagKnn.js → AlertCircle-B_1bwOez.js} +1 -1
- package/dist/client/assets/{AreaChart-U7aGDAcR.js → AreaChart-CxY2iUbX.js} +1 -1
- package/dist/client/assets/{ArrowLeft-D3GFMfBi.js → ArrowLeft-BjExvx0V.js} +1 -1
- package/dist/client/assets/{ArrowUp-B7KxewK2.js → ArrowUp-DgVT42kZ.js} +1 -1
- package/dist/client/assets/{Check-BkGdJKSE.js → Check-BmP0GDvn.js} +1 -1
- package/dist/client/assets/{CheckCircle-CphNcOq6.js → CheckCircle-CeGWrtMp.js} +1 -1
- package/dist/client/assets/{ChevronRight-DldrqT_5.js → ChevronRight-CNXUEnI5.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-BkGHSJFm.js → ChevronSelectorVertical-BpxuGhOG.js} +1 -1
- package/dist/client/assets/{ChevronUp-fc1U9Ia7.js → ChevronUp-xfjXJ2sT.js} +1 -1
- package/dist/client/assets/{Copy01-Bgs4Qu4I.js → Copy01-LcV42o-X.js} +1 -1
- package/dist/client/assets/{CreditCard01-zMRzLvdG.js → CreditCard01-D3g2E8yg.js} +1 -1
- package/dist/client/assets/{DotsVertical-DVS5jGYn.js → DotsVertical-BhgzOJWF.js} +1 -1
- package/dist/client/assets/{Download01-Bh_wFZGF.js → Download01-C0UjxGyP.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-Qmy0570t.js → ErrorBarContext-DTKrWFlx.js} +1 -1
- package/dist/client/assets/{Eye-CkqwKuDn.js → Eye-C3r9wtre.js} +1 -1
- package/dist/client/assets/{GitBranch01-CBvrqVgH.js → GitBranch01-DT4AbL-m.js} +1 -1
- package/dist/client/assets/{Globe01-Cgjujgie.js → Globe01-BYv9cftf.js} +1 -1
- package/dist/client/assets/{HardDrive-BnWTu1c8.js → HardDrive-CgsFhwaQ.js} +1 -1
- package/dist/client/assets/{Image01-BlgHok8c.js → Image01-GxWtLpiI.js} +1 -1
- package/dist/client/assets/{Key01-Cjrz8YCe.js → Key01-C57Lez_q.js} +1 -1
- package/dist/client/assets/{Link01-B831bX1S.js → Link01-EBlmMRZH.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BwL4MRbw.js → LinkExternal01-DHh1KWUs.js} +1 -1
- package/dist/client/assets/{Monitor01-DqiGTsqJ.js → Monitor01-Bnd-_HOM.js} +1 -1
- package/dist/client/assets/{Package-oDI7QzRv.js → Package-ClC-jxvu.js} +1 -1
- package/dist/client/assets/{Palette-CLEY0-M8.js → Palette-BptcDBZA.js} +1 -1
- package/dist/client/assets/{Play-BeJRFaGI.js → Play-Bf6Clcfo.js} +1 -1
- package/dist/client/assets/{Plus-CKVw1bnc.js → Plus-DiEyY1MZ.js} +1 -1
- package/dist/client/assets/{SearchMd-BpLi-D08.js → SearchMd-BHekLPNH.js} +1 -1
- package/dist/client/assets/{Sector-mQR4Ets_.js → Sector-BP06-zu3.js} +1 -1
- package/dist/client/assets/{Settings02-DM7IaDwr.js → Settings02-B6haVyjm.js} +1 -1
- package/dist/client/assets/{Share07-BUqvxgUi.js → Share07-BMtuKCEW.js} +1 -1
- package/dist/client/assets/{Shield01-BhnBTI-m.js → Shield01-BNPD8ohV.js} +1 -1
- package/dist/client/assets/{Stars01-BcN6cAUG.js → Stars01-BGfTKNXr.js} +1 -1
- package/dist/client/assets/{Sun-C69M4-p0.js → Sun-C0UUghdd.js} +1 -1
- package/dist/client/assets/{Tool01-CFaN6H7u.js → Tool01-yoc-dG2k.js} +1 -1
- package/dist/client/assets/{Tool02-CojvwMIx.js → Tool02-B6CDeSio.js} +1 -1
- package/dist/client/assets/{Trash01-B3CBFwQu.js → Trash01-jVgJ4fGm.js} +1 -1
- package/dist/client/assets/{TrendUp01-DFzG5dv4.js → TrendUp01-C4D9k0-P.js} +1 -1
- package/dist/client/assets/{Upload01-4OH0nHlo.js → Upload01-DZZoXNq4.js} +1 -1
- package/dist/client/assets/{User01-BC-DBefx.js → User01-BfsxZ17b.js} +1 -1
- package/dist/client/assets/{UserSquare-C6AqPITK.js → UserSquare-D50MJT5y.js} +1 -1
- package/dist/client/assets/{Users01-CYxsovzS.js → Users01-DpM48CGG.js} +1 -1
- package/dist/client/assets/{Users03-DLDUqBHf.js → Users03-CIxXVNij.js} +1 -1
- package/dist/client/assets/{XCircle-DsBDZDDG.js → XCircle-CGhaHWix.js} +1 -1
- package/dist/client/assets/{XClose-CjvkH3S8.js → XClose-B-5LFTLX.js} +1 -1
- package/dist/client/assets/{Zap-B-_4m1wg.js → Zap-ChFDF4ng.js} +1 -1
- package/dist/client/assets/{ZoomOut-PyUsaMfH.js → ZoomOut-CY6Sh2Fl.js} +1 -1
- package/dist/client/assets/{access-gate-EAQsEsVC.js → access-gate-BAjtlg6r.js} +1 -1
- package/dist/client/assets/{agent-icon-B7TYykkr.js → agent-icon-BVAqzTse.js} +1 -1
- package/dist/client/assets/{agents-list-B-k9nJxo.js → agents-list-ClLmApbx.js} +1 -1
- package/dist/client/assets/{ai-providers-DHsQh-cH.js → ai-providers-CIsXi9IW.js} +1 -1
- package/dist/client/assets/{alert-DnLB_O9h.js → alert-DsVjZo62.js} +1 -1
- package/dist/client/assets/{alert-dialog-DHahvYoS.js → alert-dialog-B7BPLPwk.js} +1 -1
- package/dist/client/assets/{analytics-tab-Cg1Uf91d.js → analytics-tab-D4NGGIf8.js} +1 -1
- package/dist/client/assets/api-keys-BxOjbpem.js +1 -0
- package/dist/client/assets/{api-keys-CCwkxaNi.js → api-keys-DzCMi9Yp.js} +1 -1
- package/dist/client/assets/{app-editor-B6sIJYV8.js → app-editor-CmLu7M_9.js} +1 -1
- package/dist/client/assets/{auth-DZ7suyaW.js → auth-DSeksT1d.js} +1 -1
- package/dist/client/assets/{auth-catchall-rTppL3aN.js → auth-catchall-DYCMQmyd.js} +1 -1
- package/dist/client/assets/{auth-entry-OexzlA7E.js → auth-entry-C5_Vfv9J.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BcnzAhG2.js → auth-split-layout-BtYmRkYL.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-X6dHyEra.js → authenticate-and-persist-oauth-DvyQQzuy.js} +1 -1
- package/dist/client/assets/{automation-list-row-BmhzO0Gc.js → automation-list-row-BlgZvE4S.js} +1 -1
- package/dist/client/assets/{automation-runs-B1-CwSL7.js → automation-runs-CKCntpAP.js} +1 -1
- package/dist/client/assets/automations-CVf5lVeq.js +1 -0
- package/dist/client/assets/{avatar-NShmjW8N.js → avatar-2bUzCm0h.js} +1 -1
- package/dist/client/assets/{badge-CnnV1Ji7.js → badge-CvFiYVx2.js} +1 -1
- package/dist/client/assets/{block-document-CJRwurkC.js → block-document-Dx24Y5u4.js} +1 -1
- package/dist/client/assets/{breadcrumb-BNZo3TmX.js → breadcrumb-BVIqnGKs.js} +1 -1
- package/dist/client/assets/{buckets-BCwZL4En.js → buckets-DicvI4cK.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-CUoNCchc.js → bulk-category-panel-CgXreOf9.js} +1 -1
- package/dist/client/assets/{capability-load-error-862E3fES.js → capability-load-error-CuZhrMXL.js} +1 -1
- package/dist/client/assets/{cards-Ca28ZIFm.js → cards-BQKYAaKA.js} +1 -1
- package/dist/client/assets/{category-editor-H8I5sfyi.js → category-editor-3o-Hv1HI.js} +1 -1
- package/dist/client/assets/{cdn-tab-tON2b9fd.js → cdn-tab-BHefx8Ex.js} +1 -1
- package/dist/client/assets/{chart-DNoBmMC9.js → chart-cUhkAL1G.js} +1 -1
- package/dist/client/assets/{chat-context-DuFN4EeO.js → chat-context-xWb098gj.js} +1 -1
- package/dist/client/assets/{checkbox-Dm0ArtDP.js → checkbox-CoCRtkFw.js} +1 -1
- package/dist/client/assets/{choose-editor-BqlCYbQg.js → choose-editor-BuBIsIXz.js} +1 -1
- package/dist/client/assets/{cli-auth-success-B8E981Cy.js → cli-auth-success-BKYN6nOE.js} +1 -1
- package/dist/client/assets/{client-icons-DCtEf6LD.js → client-icons-rl1L1bR8.js} +1 -1
- package/dist/client/assets/{collection-detail-DGLdi7va.js → collection-detail-CCycwWOj.js} +1 -1
- package/dist/client/assets/{collection-display-button-Rc7ctvU2.js → collection-display-button-DXjHMVgB.js} +1 -1
- package/dist/client/assets/{collection-search-Dl7mFyG3.js → collection-search-BtpPnHgt.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-C9Tn92xK.js → collection-table-wrapper-g7HZKvPh.js} +1 -1
- package/dist/client/assets/{collection-tabs-DjiJAB6y.js → collection-tabs-DXXidg_g.js} +1 -1
- package/dist/client/assets/{command-DzuuFKPg.js → command-BwEtvqmz.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-DtNdSY6_.js → commerce-onboarding-CMZ4VqOe.js} +1 -1
- package/dist/client/assets/{connect-BkHLKUe0.js → connect-BNp45oxd.js} +1 -1
- package/dist/client/assets/{connect-layout-TUA0Pf0L.js → connect-layout-Dcn3JiSG.js} +1 -1
- package/dist/client/assets/{connection-BCj3V21T.js → connection-B7psEj97.js} +1 -1
- package/dist/client/assets/{connection-card-C8twukKV.js → connection-card-DmTfQY0Z.js} +1 -1
- package/dist/client/assets/{connection-detail-bHwZkydF.js → connection-detail-C_CI7Eq_.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-a2liYWOG.js → connection-form-helpers-Bisy7nah.js} +1 -1
- package/dist/client/assets/{connections-DALEMPKM.js → connections-Dc5vYbiK.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-XLD1VOzz.js → create-organization-dialog-jyb5Hqvo.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-DS_lNrti.js → decopilot-sse-pool-8OMuGjSu.js} +1 -1
- package/dist/client/assets/{dialog-uJAshKHm.js → dialog-C9MkeCLW.js} +1 -1
- package/dist/client/assets/{domain-settings-C1C2u89d.js → domain-settings-xgmBYF6d.js} +1 -1
- package/dist/client/assets/{download-app-dialog-DUZmkw6s.js → download-app-dialog-DoJFTyCS.js} +1 -1
- package/dist/client/assets/{drawer-BxLMQKrQ.js → drawer-DDx_r4uI.js} +1 -1
- package/dist/client/assets/{dropdown-menu-D4Trqrfg.js → dropdown-menu-Cmn8nT21.js} +1 -1
- package/dist/client/assets/{e2e-tab-PpTwVvCy.js → e2e-tab-CofrEmHd.js} +1 -1
- package/dist/client/assets/{editor-CSTGuz_W.js → editor-BgxyaCx1.js} +1 -1
- package/dist/client/assets/{empty-state-DsEdSn9I.js → empty-state-BzrUSZJH.js} +1 -1
- package/dist/client/assets/{empty-state-DQ2juxQ-.js → empty-state-DgYUOiXi.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BG1m52JH.js → extract-connection-data-Ta5CfWdX.js} +1 -1
- package/dist/client/assets/{file-explorer-Ci2oBBz4.js → file-explorer-my9Ey5gp.js} +1 -1
- package/dist/client/assets/{file-type-icon-D76m9e9r.js → file-type-icon-9SiPScqt.js} +1 -1
- package/dist/client/assets/{folder-icon-DFD_wmIj.js → folder-icon-BYpDtu9r.js} +1 -1
- package/dist/client/assets/{form--mQmddL0.js → form-DQRYyHuE.js} +1 -1
- package/dist/client/assets/{general-DNQXb-Gl.js → general-BiyU04cf.js} +1 -1
- package/dist/client/assets/{github-repo-picker-DE7Pjo4O.js → github-repo-picker-jjkr6gM_.js} +1 -1
- package/dist/client/assets/{hooks-hDI0cnVE.js → hooks-Cbo6FV71.js} +1 -1
- package/dist/client/assets/{hosting-tab-Dm9W-MD0.js → hosting-tab-BsX_gWvo.js} +1 -1
- package/dist/client/assets/{index-B6TuqJzq.js → index-2KFtIyPv.js} +1 -1
- package/dist/client/assets/{index-CXP_jLrf.js → index-5gf5YDcB.js} +1 -1
- package/dist/client/assets/{index-BNIJkTs4.js → index-BaV56Hgf.js} +1 -1
- package/dist/client/assets/{index-CsP49IEW.js → index-BhIEf0YW.js} +36 -36
- package/dist/client/assets/{index-Jix3MGlr.js → index-Bk9nLl13.js} +1 -1
- package/dist/client/assets/{index-qvpq0R0S.js → index-BpVGJw8l.js} +1 -1
- package/dist/client/assets/{index-Bg6k01CD.js → index-DLcFGlgD.js} +1 -1
- package/dist/client/assets/{index-Dg3MDkI1.js → index-DjGKlDpc.js} +2 -2
- package/dist/client/assets/{index-DzBORLlH.js → index-Mhox33WS.js} +1 -1
- package/dist/client/assets/{index-BqXOlHvm.js → index-pjDOZ5YX.js} +1 -1
- package/dist/client/assets/{index-redirect-fBeQCmcx.js → index-redirect-B1BOKmdt.js} +1 -1
- package/dist/client/assets/{infra-billing-BEd-Z5HJ.js → infra-billing-C9VaHH74.js} +1 -1
- package/dist/client/assets/{input-Cd4ivG-h.js → input-wd-O5AQ7.js} +1 -1
- package/dist/client/assets/{integration-icon-Coxc3tMG.js → integration-icon-MYNRHpB-.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-DnkoSNVH.js → invite-member-dialog-Cb6lFc9U.js} +1 -1
- package/dist/client/assets/{label-igQY4yJP.js → label-DNcrpS3C.js} +1 -1
- package/dist/client/assets/{layout-CLt7SzNs.js → layout-BEM6tPG1.js} +1 -1
- package/dist/client/assets/{login-Caa3zeY3.js → login-BSt01fYl.js} +1 -1
- package/dist/client/assets/{markdown-l8IKDOgx.js → markdown-1HpDfl48.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DBFGEu2L.js → mcp-oauth-C6B-bjEy.js} +1 -1
- package/dist/client/assets/{members-DeQivpnT.js → members-DRSBNGx_.js} +1 -1
- package/dist/client/assets/{monaco-editor-DxoB_WYn.js → monaco-editor-q9GZqpdG.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CWTiKwAh.js → monitoring-stats-row-DLyCVKva.js} +1 -1
- package/dist/client/assets/{multi-select-XYS9AW25.js → multi-select-CFuJRMVa.js} +1 -1
- package/dist/client/assets/{oauth-callback-DzR8lBgk.js → oauth-callback-CFW0QFWH.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-XP1TmLTG.js → oauth-callback-ai-provider-BuikBThI.js} +1 -1
- package/dist/client/assets/{onboarding-BVrWJYuW.js → onboarding-BKUV8oZu.js} +1 -1
- package/dist/client/assets/org-layout-428-HISQ.js +1 -0
- package/dist/client/assets/{organization-choice-CnQ7QVFa.js → organization-choice-Dbl5MksN.js} +1 -1
- package/dist/client/assets/{orgs-BVWqqZUS.js → orgs-C0--1SUX.js} +1 -1
- package/dist/client/assets/{page-seo-form-_XIXm9WO.js → page-seo-form-Iusc4dPm.js} +1 -1
- package/dist/client/assets/{popover-BBnlDYWg.js → popover-Bz4u0as0.js} +1 -1
- package/dist/client/assets/{post-calendar-C3cSxEJk.js → post-calendar-DUPmrQG0.js} +1 -1
- package/dist/client/assets/{post-editor-CR1o0BtB.js → post-editor-jhLQgMRM.js} +1 -1
- package/dist/client/assets/{primitives-CF2d7rym.js → primitives-DMgGeEfu.js} +1 -1
- package/dist/client/assets/{profile-By-xkVuU.js → profile-BO2Mz7sb.js} +1 -1
- package/dist/client/assets/{project-app-view-Bpm75GRM.js → project-app-view-DwBS62sZ.js} +1 -1
- package/dist/client/assets/{project-icon-CWP_8qk4.js → project-icon-B-AwUdvh.js} +1 -1
- package/dist/client/assets/{prompts-7b5JRLSr.js → prompts-DV7pN-FS.js} +1 -1
- package/dist/client/assets/record-editor-DZeep4ET.js +1 -0
- package/dist/client/assets/{redirect-editor-CJV99pdK.js → redirect-editor-C7hGM4lQ.js} +1 -1
- package/dist/client/assets/registry-DXli8D0x.js +2 -0
- package/dist/client/assets/{registry-layout-DpapqlO0.js → registry-layout-CzoCdmsR.js} +1 -1
- package/dist/client/assets/{reports-BcokFfCl.js → reports-DYLkD6Dm.js} +1 -1
- package/dist/client/assets/{require-capability-Bq6f109r.js → require-capability-BLOwhWCj.js} +1 -1
- package/dist/client/assets/{required-auth-layout-Bh5tcCa4.js → required-auth-layout-B3AAI2XB.js} +1 -1
- package/dist/client/assets/{reset-password-B2H4sN7h.js → reset-password-BeVMvjdU.js} +1 -1
- package/dist/client/assets/{review-settings-CqCF1K3f.js → review-settings-Cg2MRufY.js} +1 -1
- package/dist/client/assets/{roles-DgOByvtV.js → roles-BiFvg0Qy.js} +1 -1
- package/dist/client/assets/{schema-B7XR7qK3.js → schema-D4FcgO9F.js} +1 -1
- package/dist/client/assets/{scroll-area-BZBy1fGK.js → scroll-area-BPYhikGx.js} +1 -1
- package/dist/client/assets/{search-input-DCJwgAly.js → search-input-DMnK-NPB.js} +1 -1
- package/dist/client/assets/{secrets-C64mIDuu.js → secrets-B6BaGjxv.js} +1 -1
- package/dist/client/assets/{sections-editor-DxSNcAl5.js → sections-editor-CmR9GU6k.js} +1 -1
- package/dist/client/assets/{select-Dd7AR-Pc.js → select-9uMZ0JuU.js} +1 -1
- package/dist/client/assets/{select-model-BAZxHTFZ.js → select-model-DQhM2Ar1.js} +1 -1
- package/dist/client/assets/{self-tool-result-DIvytlXf.js → self-tool-result-D9twr-TH.js} +1 -1
- package/dist/client/assets/{seo-editor-CjLev9oJ.js → seo-editor-CJx6il94.js} +1 -1
- package/dist/client/assets/settings-layout-DRV9zQn7.js +1 -0
- package/dist/client/assets/{settings-sidebar-CaQ34vO3.js → settings-sidebar-Cyg-XKsj.js} +1 -1
- package/dist/client/assets/{shell-controls-B7n5NO-R.js → shell-controls-Bv0fBNdH.js} +1 -1
- package/dist/client/assets/{shell-layout-Es2gcPgj.js → shell-layout---e9WdOL.js} +1 -1
- package/dist/client/assets/{skill-preview-B-cVW8Ti.js → skill-preview-CQYKB_27.js} +1 -1
- package/dist/client/assets/{skills-DrFlL9xT.js → skills-BaZab3oz.js} +1 -1
- package/dist/client/assets/{sso-Be5oZv1I.js → sso-B6yfDwAs.js} +1 -1
- package/dist/client/assets/{store-C6LsJkgI.js → store-7yKkTFSQ.js} +1 -1
- package/dist/client/assets/store-registry-DJ7tHYY4.js +2 -0
- package/dist/client/assets/{switch-CM6VOqN2.js → switch-9AlGcAky.js} +1 -1
- package/dist/client/assets/{synced-repos-BY1cf0F3.js → synced-repos-DFMyqW_b.js} +1 -1
- package/dist/client/assets/{table-DEasb1oj.js → table-CT63GHWc.js} +1 -1
- package/dist/client/assets/{tabs-Bq1EfIB0.js → tabs-CTSf8Cbz.js} +1 -1
- package/dist/client/assets/{task-board-CFWERcPX.js → task-board-BIak1E3v.js} +1 -1
- package/dist/client/assets/{task-route-CcwyXkS8.js → task-route-CrxQp2Eb.js} +1 -1
- package/dist/client/assets/{tasks-C207PYtx.js → tasks-BRTXgOTF.js} +1 -1
- package/dist/client/assets/{textarea-DZn9bcqF.js → textarea-BPPpFkS7.js} +1 -1
- package/dist/client/assets/{toggle-group-YLq58Nhp.js → toggle-group-Djr9teJe.js} +1 -1
- package/dist/client/assets/{toolbar-CG7UaDiu.js → toolbar-DwOwcSY_.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-DOV4tAPT.js → toolbar-icon-button-DLOAX-UT.js} +1 -1
- package/dist/client/assets/{track-D5AT2HY9.js → track-BYurtGbZ.js} +1 -1
- package/dist/client/assets/{types-D5cSIo5A.js → types-Bx3gHThq.js} +1 -1
- package/dist/client/assets/{use-ai-providers-C4KvUz4Q.js → use-ai-providers-Cw0K6TIk.js} +1 -1
- package/dist/client/assets/{use-automations-CLTrDbBR.js → use-automations-DIaz55Fi.js} +1 -1
- package/dist/client/assets/{use-autosave-CF-pnZV7.js → use-autosave-Dwf53x3t.js} +1 -1
- package/dist/client/assets/{use-connection-BP7A4Wgv.js → use-connection-ChhNbk9M.js} +1 -1
- package/dist/client/assets/{use-copy-BeEwIY4h.js → use-copy-D7-xsCp4.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-DtiD_sLJ.js → use-create-virtual-mcp-DUUBAraH.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-bUkHJSPB.js → use-debounced-autosave-B-u5R3yy.js} +1 -1
- package/dist/client/assets/{use-debounced-value-5HRghJeG.js → use-debounced-value-Dv61_1Jd.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CprSnZyJ.js → use-decopilot-events-rltJCsXB.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DkYC2cpV.js → use-delete-connection-CPGh_oYO.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DZc0DplR.js → use-deployment-admin-DR4qWEyy.js} +1 -1
- package/dist/client/assets/{use-destination-route-ZIZLPtGf.js → use-destination-route-DeG1VNie.js} +1 -1
- package/dist/client/assets/{use-file-configs-gP4J68v3.js → use-file-configs-5cG2k75J.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BXSZ15e5.js → use-infinite-scroll-BuWiD3LM.js} +1 -1
- package/dist/client/assets/{use-join-requests-Bxo8Zfup.js → use-join-requests-C8CIUv51.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-B5s_Nuiq.js → use-mcp-auth-status-KH3_aj7J.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DOpmujvp.js → use-mcp-client-Co1Whr4B.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-BTYEgxzc.js → use-mcp-prompts-Dp5vD0OR.js} +1 -1
- package/dist/client/assets/{use-members-Hm5MJ_kb.js → use-members-BLCC6OcQ.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-j5VE0Q04.js → use-navigate-to-agent-C2LAOCet.js} +3 -3
- package/dist/client/assets/{use-org-auth-client-BR76EYdr.js → use-org-auth-client-Dbwoi3Jr.js} +1 -1
- package/dist/client/assets/{use-org-sso-CqE2pmEN.js → use-org-sso-SxJRk-2L.js} +1 -1
- package/dist/client/assets/{use-organization-roles-CW1fkF2L.js → use-organization-roles-C-uZzGUJ.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BtWG9tgs.js → use-organization-settings-BCG7WYXv.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-CDaKzjBp.js → use-panel-navigate-CrFXFTDL.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BnQ35ezt.js → use-registry-connections-340wegZj.js} +1 -1
- package/dist/client/assets/{use-secrets-S6gOwFAK.js → use-secrets-C1YeU41p.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-B6ddh5nu.js → use-section-preview-base-CW_kpp0-.js} +1 -1
- package/dist/client/assets/{use-status-sounds-DCoeV7as.js → use-status-sounds-BuH2UnfF.js} +1 -1
- package/dist/client/assets/{use-tags-Bux2oT93.js → use-tags-CaXsZm3v.js} +1 -1
- package/dist/client/assets/{use-view-mode-CtXnIo7C.js → use-view-mode-xqNzfTBB.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-Cu0Tg71h.js → use-virtual-mcp-AIb-B8yK.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DbIFSpRo.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-ESs36XTk.js +1 -0
- package/dist/client/assets/{users-CjA9sMgm.js → users-CWOt6Jd4.js} +1 -1
- package/dist/client/assets/{variant-calendar-DrdKAza6.js → variant-calendar-DgVO4w0k.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CB__tVCM.js → view-mode-toggle-BOXOYJpA.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +1 -1
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/api-keys-CCZ-S6_6.js +0 -1
- package/dist/client/assets/automations-DTylj-IF.js +0 -1
- package/dist/client/assets/org-layout-30NUnemc.js +0 -1
- package/dist/client/assets/record-editor-D9p-OWj2.js +0 -1
- package/dist/client/assets/registry-D5coVGUU.js +0 -2
- package/dist/client/assets/settings-layout-fDv9J5GW.js +0 -1
- package/dist/client/assets/store-registry-D9inFs_t.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BaNnDXl3.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CL_Ty1NE.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -2980,7 +2980,7 @@ Respond with ONLY a JSON object of this shape, and nothing else:
|
|
|
2980
2980
|
${G.join(`
|
|
2981
2981
|
`)}`:Y}function jB6($){let Z=new Set;for(let Q of $)for(let X of Q.split(`
|
|
2982
2982
|
`)){let Y=X.trim();if(/^Co-authored-by:\s/i.test(Y))Z.add(Y)}return[...Z]}var kd$=200,FB6=12,UB6,BB6=300,YQ1=3;var GQ1=D(()=>{Zw();gT0();UB6={aheadBy:0,behindBy:0,files:[]}});function PB6($){if(!$||$.includes(".."))return!1;return zB6.test($)}function Sd$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!PB6(Z))return null;let{__resolveType:Q,...X}=$;return{resolveType:Z,payload:X}}function Cd$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var zB6;var _d$=D(()=>{zB6=/^[\w./@-]+$/});function _s($,Z){let Q=$?.githubRepo;if(!Q?.owner||!Q?.name)return null;if(!Q.connectionId)return Q;if(!Z.includes(Q.connectionId))return null;return Q}async function vd$($,Z,Q,X){if(!X.connectionId)throw new fv("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new fv(H9);await uO({ctx:$,connectionId:X.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let U=H instanceof Error?H.message:H9;throw new fv(U)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await xK(X.connectionId,X.owner,X.name,$.db,$.vault).catch((H)=>{let{code:U,message:N}=C9$(H instanceof Error?H.message:String(H));throw U?new fv(N):H}),K=Gl($),F=await Z.proxyDaemonRequest(Q,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!F.ok){let H=await hO(F,AB6).catch(()=>F.statusText);throw Error(`Failed to refresh sandbox git credentials (${F.status}): ${H}`)}}var AB6=10485760,fv;var JQ1=D(()=>{FJ();MT0();Pn();ni0();ty();fv=class fv extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function RB6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!TB6.test(Z))throw Error(`Invalid branch name: ${$}`)}function bv($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(qB6)])}async function kB6($,Z){let Q=$.var.studioContext,X=WJ(Z.branch),Y=$.req.query("thread")??X,G=Y&&Y===X?Z.branchThread:Y?await Q.storage.threads.get(Y).catch(()=>null):null,J=G?.virtual_mcp_id===Z.virtualMcpId?G:null,W=_C(J?.metadata?.runtime);if(W)return W;let K=OD0(Z.virtualMcpMetadata),F=K==="cms"?await u71(Q,{claimName:Z.claimName}):"alive",H=K==="cms"&&F!=="alive"?"cms":"sandbox",U=!!J&&(F==="gone"||F==="alive"&&K==="cms");if(U&&J)rn(Q,J.id,H);if(K==="cms")console.log("sandbox proxy: no runtime stamp",{route:$.req.path,method:$.req.method,reason:J?"unstamped":"threadless",liveness:F,resolved:H,stamped:U});return H}async function VB6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await FX($.var.studioContext)}catch{return null}}function xv($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}async function Hl($){let{virtualMcpMetadata:Z,connectionIds:Q}=$.get("vmClaim"),X=$.var.studioContext,Y=_s(Z,Q);if(!Y)throw new d4(404,"AUTH","repo","Project has no GitHub repository");let G=n(X);return kT0(X,G.id,Y)}function WQ1($,Z){if(Z instanceof SA0)return $.json({error:Z.message},429,{...R5,...Z.retryAfterMs===null?{}:{"Retry-After":String(Math.ceil(Z.retryAfterMs/1000))}});if(Z instanceof d4){let X=Z.status===404?404:Z.status===409||Z.status===422?409:502;return $.json({error:Z.message},X,R5)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},502,R5)}async function xd$($,Z,Q){let X;try{X=await fetch(Z,Q)}catch{return $.json({error:"Preview unreachable"},502)}let Y;try{Y=await X.text()}catch{return $.json({error:"Preview unreachable"},502)}return new Response(Y,{status:X.status,headers:{"content-type":X.headers.get("content-type")??"application/json"}})}async function yd$($){try{let Z=await Hl($),Q=await hT0(Z,$.get("vmClaim").branch);return $.json(Q,200,R5)}catch(Z){return WQ1($,Z)}}function vs($,Z){let X=(cT0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=X.catch(()=>{});return cT0.set($,Y),Y.finally(()=>{if(cT0.get($)===Y)cT0.delete($)}),X}async function eZ($,Z,Q){if(!Q?.runner&&$.get("vmClaim").runtime==="cms")return $.json({error:"sandbox not found: this session is sandbox-less"},404,R5);let X=Q?.runner??xv($);if(X instanceof Response)return X;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=Q?.method??"POST",K=null,F=new Headers;if(Q?.jsonBody!==void 0)K=Q.jsonBody,F.set("content-type","application/json");else if(Q?.forwardJsonBody)K=await $.req.text(),F.set("content-type","application/json");let H=Q?.signal,U={method:W,headers:F,body:K,...H?{signal:H}:{}},N=async()=>{let B=await X.proxyDaemonRequest(Y,Z,U);if(Q?.map404to410&&B.status===404){try{await B.body?.cancel()}catch{}if(await X.adoptLiveClaim({userId:G,projectRef:J},Y))B=await X.proxyDaemonRequest(Y,Z,U);if(B.status===404){try{await B.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...R5}})}}let O=await B.text(),w=Q?.redactRepoDir?SB6(O):O,L=B.headers.get("content-type")??"application/json";return new Response(w,{status:B.status,headers:{"content-type":L,...R5}})};try{if(H){let B=N();return B.catch(()=>{}),await Promise.race([B,new Promise((w,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await N()}catch(B){let O=B instanceof Error?B.message:String(B);return $.json({error:`Daemon unreachable: ${O}`},502)}}function SB6($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function dT0($,Z,Q,X="GET",Y){let G=await $.proxyDaemonRequest(Z,Q,{method:X,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim(Y,Z))G=await $.proxyDaemonRequest(Z,Q,{method:X,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok){let W=`Daemon error (${G.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function CB6($){return gd$.includes($)}var TB6,fd$=524288,IB6=65536,qB6=1e4,bd$=2000,MB6,cT0,R5,gd$,hd$=()=>{let $=new J1;$.use("/:virtualMcpId/:branch/*",MB6),$.post("/:virtualMcpId/:branch/write",(Q)=>eZ(Q,"/_sandbox/write",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/unlink",(Q)=>eZ(Q,"/_sandbox/unlink",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/mkdir",(Q)=>eZ(Q,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/rename",(Q)=>eZ(Q,"/_sandbox/rename",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/read",(Q)=>eZ(Q,"/_sandbox/read",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/glob",(Q)=>eZ(Q,"/_sandbox/glob",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/grep",(Q)=>eZ(Q,"/_sandbox/grep",{forwardJsonBody:!0,signal:bv(Q)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Q)=>{let X=Q.req.param("script");if(!X)return Q.json({error:"missing script name"},400);return eZ(Q,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Q)=>{let X=Q.req.param("script");if(!X)return Q.json({error:"missing script name"},400);return eZ(Q,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Q)=>eZ(Q,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDir:!0})),$.put("/:virtualMcpId/:branch/config",(Q)=>eZ(Q,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Q)=>{let X=Q.req.param("step");if(!X||!CB6(X))return Q.json({error:`step must be one of: ${gd$.join(", ")}`},400);let Y=Q.get("vmClaim"),G=await u71(Q.var.studioContext,{claimName:Y.claimName})==="gone"?null:await VB6(Q);if(!G)return Q.json({error:"sandbox not found: nothing is running at this ref"},404,R5);if(X==="start"){let J=n(Q.var.studioContext),W=py(Y.virtualMcpMetadata);try{await v70({ctx:Q.var.studioContext,runner:G,handle:Y.claimName,orgId:J.id,userId:Y.callerUserId,entries:W})}catch(K){let F=K instanceof Error?K.message:String(K);return Q.json({error:`Failed to push env to daemon: ${F}`},502)}}return eZ(Q,`/_sandbox/setup/${X}`,{signal:Q.req.raw.signal,map404to410:!0,runner:G})}),$.get("/:virtualMcpId/:branch/events",(Q)=>{let X=Q.get("vmClaim");if(!X.runner)return QN(Q,async(Y)=>{await Y.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return hc$(Q,{ctx:Q.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return yd$(Q);return Z(Q)});let Z=(Q)=>eZ(Q,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(bd$)])});return $.post("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return yd$(Q);return eZ(Q,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(bd$)])})}),$.post("/:virtualMcpId/:branch/git/diff",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")try{let Y=await Q.req.json().catch(()=>({})),G=await Hl(Q),J=await uT0(G,X.branch,Y.base);return Q.json(J,200,R5)}catch(Y){return WQ1(Q,Y)}return eZ(Q,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})}),$.post("/:virtualMcpId/:branch/git/publish",async(Q)=>{if(Q.get("vmClaim").runtime==="cms")return Q.json({ok:!0},200,R5);let X=xv(Q);if(X instanceof Response)return X;let{claimName:Y,virtualMcpMetadata:G,connectionIds:J}=Q.get("vmClaim"),W=Q.var.studioContext;return vs(Y,async()=>{try{await l71(W,X,Y);let K=_s(G,J);if(K)await vd$(W,X,Y,K)}catch(K){if(K instanceof fv)return Q.json({error:K.message},403,R5);let F=K instanceof Error?K.message:String(K);return Q.json({error:F},502,R5)}return eZ(Q,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")return vs(X.claimName,async()=>{let Y=await Q.req.json().catch(()=>({})),G=Array.isArray(Y.filepaths)?Y.filepaths.filter((J)=>typeof J==="string"):[];if(G.length===0)return Q.json({error:"filepaths is required"},400,R5);try{let J=await Hl(Q);return await Vd$(J,X.branch,G),Q.json({ok:!0},200,R5)}catch(J){let W=J instanceof d4&&J.status===409?409:502,K=J instanceof Error?J.message:String(J);return Q.json({error:K},W,R5)}});return vs(X.claimName,()=>eZ(Q,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Q)=>{let X=Q.get("vmClaim");if(X.runtime==="cms")return vs(X.claimName,async()=>{try{let W=await Q.req.json().catch(()=>({})),K=await Hl(Q),F=W.base??await K.getDefaultBranch();return await lT0(K,X.branch,F),Q.json({ok:!0},200,R5)}catch(W){return WQ1(Q,W)}});let Y=xv(Q);if(Y instanceof Response)return Y;let{claimName:G}=Q.get("vmClaim"),J=Q.var.studioContext;return vs(G,async()=>{try{await l71(J,Y,G)}catch(W){let K=W instanceof Error?W.message:String(W);return Q.json({error:K},502,R5)}return eZ(Q,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",a5({maxSize:fd$,onError:(Q)=>Q.json({error:"Payload too large"},413,R5)}),async(Q)=>{let X=Q.get("vmClaim"),Y=null;if(X.runtime!=="cms"){let F=xv(Q);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=X,K=Q.var.studioContext;try{let F=await Q.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=m71(H)&&N?[H,U]:Y?await Promise.all([dT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),dT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([hT0(L,X.branch),uT0(L,X.branch)])})(),w=await mc$(K,B,O);return Q.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return Q.json({error:H},502,R5)}}),$.post("/:virtualMcpId/:branch/git/judge-review",a5({maxSize:fd$,onError:(Q)=>Q.json({error:"Payload too large"},413,R5)}),async(Q)=>{let X=Q.get("vmClaim"),Y=null;if(X.runtime!=="cms"){let F=xv(Q);if(F instanceof Response)return F;Y=F}let{claimName:G,userId:J,projectRef:W}=X,K=Q.var.studioContext;try{let F=await Q.req.json().catch(()=>({})),H=F.status,U=F.diff,N=U!=null&&typeof U.diffs==="object"&&U.diffs!==null,[B,O]=m71(H)&&N?[H,U]:Y?await Promise.all([dT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),dT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([hT0(L,X.branch),uT0(L,X.branch)])})(),w=await pc$(K,B,O,typeof F.language==="string"?F.language:void 0);return Q.json(w,200,R5)}catch(F){let H=F instanceof Error?F.message:String(F);if(H==="SANDBOX_GONE")return Q.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,R5);return Q.json({error:H},502,R5)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Q)=>{let X=xv(Q);if(X instanceof Response)return X;let{claimName:Y}=Q.get("vmClaim"),G=Q.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return Q.json({error:"Path not allowed"},403);let J;try{J=await X.getPreviewUrl(Y)}catch{return Q.json({error:"Preview not available"},502)}if(!J)return Q.json({error:"Preview not available"},502);let W=J.replace(/\/+$/,"");return xd$(Q,`${W}${G}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",a5({maxSize:IB6,onError:(Q)=>Q.json({error:"Payload too large"},413)}),async(Q)=>{let X=xv(Q);if(X instanceof Response)return X;let{claimName:Y}=Q.get("vmClaim"),G;try{G=await X.getPreviewUrl(Y)}catch{return Q.json({error:"Preview not available"},502)}if(!G)return Q.json({error:"Preview not available"},502);let J;try{J=await Q.req.json()}catch{return Q.json({error:"Invalid JSON body"},400)}if(!J||typeof J!=="object"||Array.isArray(J))return Q.json({error:"Invalid JSON body"},400);let W=Sd$(J);if(!W)return Q.json({error:"Invalid or missing __resolveType"},400);let K=Cd$(G,W.resolveType);return xd$(Q,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$};var ud$=D(()=>{d$();VF();Yl();h71();Dn();xc$();n3();Ug();yc$();s3();gc$();uc$();mi0();jn();n71();nc$();o71();Zw();GQ1();_d$();JQ1();TB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;MB6=qT0(async($,Z)=>{let Q=$.var.studioContext;try{t(Q)}catch{return $.json({error:"Unauthorized"},401)}let X=t0(Q);if(!X)return $.json({error:"Unauthorized"},401);let Y;try{Y=n(Q)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{RB6(J)}catch(w){let L=w instanceof Error?w.message:String(w);return $.json({error:L},400)}let W=await Q.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=Bn({orgId:Y.id,virtualMcpId:G,branch:J}),F=await gi0(Q,J),H=hi0(F,X),U=bc$({userId:H,projectRef:K}),N=W.metadata??null,B=await kB6($,{claimName:U,branch:J,virtualMcpId:G,sandboxUserId:H,virtualMcpMetadata:N,branchThread:F});if(B==="cms")return $.set("vmClaim",{claimName:U,callerUserId:X,runner:null,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z();let O;try{O=await FX(Q)}catch{O=null}if(!O)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:U,callerUserId:X,runner:O,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:N,connectionIds:W.connections?.map((w)=>w.connection_id)??[],runtime:B}),Z()});cT0=new Map;R5={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};gd$=["clone","install","start"]});function ld$($,Z,Q){let X=KQ1.get($);if(!X)X={pending:null,running:!1},KQ1.set($,X);if(!X.pending)X.pending={set:new Map,del:new Set,deps:Z,resolvers:[],rejecters:[]};let Y=X.pending;Y.deps=Z;for(let[J,W]of Object.entries(Q.set??{}))Y.set.set(J,W),Y.del.delete(J);for(let J of Q.delete??[])Y.del.add(J),Y.set.delete(J);let G=new Promise((J,W)=>{Y.resolvers.push(J),Y.rejecters.push(W)});if(!X.running)vB6($,X);return G}async function vB6($,Z){Z.running=!0;try{while(Z.pending){let Q=Z.pending;Z.pending=null;try{let X=await fB6(Q);for(let Y of Q.resolvers)Y(X)}catch(X){for(let Y of Q.rejecters)Y(X)}}}finally{if(Z.running=!1,!Z.pending)KQ1.delete($)}}async function fB6($){let{client:Z,branch:Q,packagePath:X}=$.deps;for(let Y=0;;Y++){let G=await Fl(Z,Q),J=await Z.getCommitTreeSha(G),W=await Z.getDecofileTree(J,X),K=QQ1(W,X),F=[],H=new Map(K.map((O)=>[O.path,{stem:O.stem,sha:O.sha}]));for(let[O,w]of $.set){let L=XQ1(K,O),E=`${JSON.stringify(w,null,2)}
|
|
2983
|
-
`,j=await Z.createBlob(E);await Id$(Z.owner,Z.repo,j,E);let z=L[0]??`${yT0(X)}/${a71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of XQ1(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=X?`${X}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=ks(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:Q,packagePath:X,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:bB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=_B6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function bB6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},Q=[];if($.set.size>0)Q.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)Q.push(`delete ${Z([...$.del])}`);let X=`chore(decofile): ${Q.join("; ")}`;return ki0(X,$.deps.coAuthor)}var _B6=3,KQ1;var cd$=D(()=>{k70();ST0();a8();Zw();gT0();KQ1=new Map});import{createHmac as dd$,randomBytes as xB6,timingSafeEqual as yB6}from"crypto";function md$(){if(mT0)return mT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return mT0=$?Buffer.from($):xB6(32),mT0}function FQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+gB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=dd$("sha256",md$()).update(X).digest("base64url");return`${X}.${Y}`}function id$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(dd$("sha256",md$()).update(X).digest("base64url"));if(Y.length!==G.length||!yB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(X,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var gB6=21600000,mT0=null;var pd$=D(()=>{D$()});import{z as Ul}from"zod";function uB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&hB6.test($)}function ad$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function fs($){let Z=$.get("decofileScope");return kT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function bs($,Z){if(Z instanceof d4){let X=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},X)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},500)}function sd$(){let $=new J1;return $.use("/:virtualMcpId/:branch",rd$),$.use("/:virtualMcpId/:branch/*",rd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await qd$(X,Q.branch,Q.packagePath,{createBranchIfMissing:!!Q.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!Q.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=FQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ad$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return bs(Z,X)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let Q=Z.get("decofileScope"),X=Q.packagePath?`${Q.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await fs(Z),G=await Y.getFileTextAtRef(Q.branch,X);if(G===null){let J=await Y.getDefaultBranch();if(J!==Q.branch)G=await Y.getFileTextAtRef(J,X)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return bs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",cB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=dB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{VT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(r71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await fs(Z),W=await ld$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=FQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ad$(Z)})}catch(J){return bs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${Q.branch}`;try{let J;try{J=await X.mergeBranch(Y,Q.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await lT0(X,Q.branch,Y),J=await X.mergeBranch(Y,Q.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await X.findOpenPullRequest(Y,Q.branch)??await X.createPullRequest({base:Y,head:Q.branch,title:`Publish ${Q.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(X){return bs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([X.compare(Y,Q.branch),X.getBranchHead(Q.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(X){return bs(Z,X)}}),$}var hB6,nd$=500,td$=1048576,od$=1024,lB6=8388608,cB6,dB6,rd$;var ed$=D(()=>{Nt0();ST0();d$();VF();h71();MT0();JQ1();o71();cd$();pd$();GQ1();Zw();gT0();hB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;cB6=a5({maxSize:lB6,onError:($)=>$.json({error:"Payload too large"},413)}),dB6=Ul.object({set:Ul.record(Ul.string(),Ul.unknown()).optional(),delete:Ul.array(Ul.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=nd$,{message:`Patch cannot touch more than ${nd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=td$),{message:`Each block must be at most ${td$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=od$),{message:`Each block key must be at most ${od$} characters`}),rd$=qT0(async($,Z)=>{let Q=$.var.studioContext,X=Q.organization;if(!X)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!uB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=Q.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!id$(B,{organizationId:X.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await Q.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==X.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!BD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=_s(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:X.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var $m$=($)=>{let Z=new J1;if(Z.use("*",Av),Z.route("/",uA0()),Z.route("/",wh$()),Z.route("/",Ac$()),Z.route("/",jc$()),Z.route("/",TT0()),Z.route("/tools",Vc$()),Z.route("/",qc$()),Z.route("/",sl$({kvStorage:$.kvStorage})),Z.route("/",rl$()),Z.route("/fs",Nc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",hd$()),Z.route("/decofile",sd$()),Z.route("/",wc$()),Z.route("/deco-sites",cA0()),Z.route("/hosting",Gh$()),Z.route("/monitor",Nh$()),Z.route("/sso",fA0()),Z.route("/",RT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",$h$()),$.mountDevAssets)Z.route("/dev-assets",pA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Tx$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",Oc$()),Z.route("/mcp",dL0()),Z.route("/mcp/self",AT0()),Z.route("/mcp",pL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Zm$=D(()=>{d$();kA0();Zh$();FZ1();Jh$();Bh$();nA0();$s();YZ1();al$();el$();Bc$();Zo();s91();nL0();_71();Dc$();Lc$();zc$();Tc$();Mc$();f71();Sc$();b71();mL0();ud$();ed$()});function mB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var iB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Qm$=()=>{let $=new J1;return $.use("*",iB6),$.get("/",async(Z)=>{let Q=V0(),X=Q.decoSupabaseUrl,Y=Q.decoSupabaseServiceKey;if(!X||!Y)return Z.json({apps:[]});try{let G=await PY(X,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:mB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Xm$=D(()=>{d$();D$();yP0()});import{z as q1}from"zod";function bF($,Z="invalid_request_error",Q=null,X=null){return{error:{message:$,type:Z,param:Q,code:X}}}function ZO6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),X=$.substring(Z+1);if(!Q||!X)return null;return{credentialId:Q,modelId:X}}function QO6($,Z,Q){try{return JSON.parse($)}catch{throw new Jm$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function XO6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let X of Q.tool_calls)Z[X.id]=X.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:QO6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let X=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:X,output:{type:"text",value:Q.content}}]}}})}function YO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?eY(Q.function.parameters):eY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function GO6($){if(!$)return;return{openai:{response_format:$}}}function JO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Ym$($,Z,Q,X,Y,G){let J={model:$,messages:Z,tools:Q,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function Gm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var pB6=256,nB6,tB6,oB6,rB6,aB6,sB6,eB6,$O6,Jm$,Wm$,Km$;var Fm$=D(()=>{g4();d$();Yl();fU();nB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),tB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),oB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(tB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),rB6=q1.object({type:q1.literal("text")}),aB6=q1.object({type:q1.literal("json_object")}),sB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),eB6=q1.union([rB6,aB6,sB6]),$O6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(oB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(nB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:eB6.optional(),user:q1.string().optional()});Jm$=class Jm$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Wm$=new J1;Wm$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(bF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),Y=$O6.safeParse(X);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=ZO6(G.model);if(!J)return $.json(bF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>EL(j.providerId));if(!E)return $.json(bF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=XO6(G.messages),N=G.tools?YO6(G.tools):void 0,B=GO6(G.response_format),O=JO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Ym$(H,U,N,G,B,$.req.raw.signal);try{let j=fO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=pB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:Gm$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Ym$(H,U,N,G,B,$.req.raw.signal),E=await _O(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:Gm$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(X){let Y=X;if(Y.name==="AbortError")return $.json(bF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bF(Y.message,"server_error"),500)}});Km$=Wm$});function WO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Hm$(){let $=new J1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),X=t0(Q);if(!X)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!sQ(G))return Z.json({error:"Invalid site slug"},400);let J=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",X).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await Q.storage.virtualMcps.list(F.id);for(let U of H){if(ee1(U)!==G)continue;if(!WO6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var Um$=D(()=>{d$();cH()});var Bm$;var Nm$=D(()=>{Bm$={name:"decocms",version:"4.329.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function HO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??FO6}}var Om$,FO6="https://ph.studio.decocms.com",Dm$;var wm$=D(()=>{d$();W90();G_();u5();D$();u91();Nm$();Om$=new J1;Om$.get("/",($)=>{let Z={version:Bm$.version,theme:Dp1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:l_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:Gg$(),posthog:HO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ds()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Dm$=Om$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function HQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function Em$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function Lm$($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let X=Q.slice(0,Z-1),Y=X.lastIndexOf(" ");return`${(Y>Z*0.6?X.slice(0,Y):X).trimEnd()}\u2026`}function jm$($){let{brand:Z,domain:Q,score:X,verdict:Y}=$,G=typeof X==="number"?`${Z} commerce report \u2014 ${Math.round(X)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?Lm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):Lm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var yv,UO6,NO6,BO6,OO6,zm$;var Pm$=D(()=>{yv=l0.enum(["good","bad","neutral"]),UO6=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((Q)=>Q!==null&&typeof Q!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:yv.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),NO6=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(UO6)),BO6={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},OO6=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:yv.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:yv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:yv.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:yv.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(NO6).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:yv.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:yv.optional()})).min(1)})]),zm$=l0.object({...BO6,template:OO6})});function iT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=zm$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),X=Q.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:X},slides:Q},drops:Z}}var UQ1=D(()=>{Pm$()});import{join as Am$}from"path";async function wO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(DO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=iT0(Q);if(!X.slides.length)return null;let Y=X.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:X.meta.brand?.trim()||HQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function RG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function LO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||HQ1(Q),Y=Em$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=jm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${RG(W)}</title>`,`<meta name="description" content="${RG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${RG(W)}" />`,`<meta property="og:description" content="${RG(K)}" />`,`<meta property="og:url" content="${RG(J)}" />`,`<meta property="og:image" content="${RG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${RG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${RG(W)}" />`,`<meta name="twitter:description" content="${RG(K)}" />`,`<meta name="twitter:image" content="${RG(F)}" />`,`<meta name="twitter:image:alt" content="${RG(H)}" />`,`<link rel="canonical" href="${RG(J)}" />`,`<link rel="icon" href="${RG(Y)}" sizes="any" />`].join(`
|
|
2983
|
+
`,j=await Z.createBlob(E);await Id$(Z.owner,Z.repo,j,E);let z=L[0]??`${yT0(X)}/${a71(O)}.json`;F.push({path:z,mode:"100644",type:"blob",sha:j});let P=z.slice(z.lastIndexOf("/")+1,-5);H.set(z,{stem:P,sha:j,content:E});for(let A of L.slice(1))F.push({path:A,mode:"100644",type:"blob",sha:null}),H.delete(A)}for(let O of $.del)for(let w of XQ1(K,O))F.push({path:w,mode:"100644",type:"blob",sha:null}),H.delete(w);if(F.length===0)return G;let U=X?`${X}/.deco/blocks.gen.json`:".deco/blocks.gen.json";if(W.some((O)=>O.type==="blob"&&O.path===U)){let O=await Promise.all([...H.values()].map(async(j)=>({stem:j.stem,content:j.content??await Z.getBlobText(j.sha)}))),{decofile:w,skipped:L}=ks(O);if(L.length>0)console.warn("decofile gen: dropped blocks that were not valid JSON",{repo:`${Z.owner}/${Z.repo}`,branch:Q,packagePath:X,blocks:L.map((j)=>j.key)});let E=await Z.createBlob(w);F.push({path:U,mode:"100644",type:"blob",sha:E})}let N=await Z.createTree(J,F),B=await Z.createCommit({message:bB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=_B6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function bB6($){let Z=(Y)=>{let G=Y.slice(0,3).join(", ");return Y.length>3?`${G} (+${Y.length-3} more)`:G},Q=[];if($.set.size>0)Q.push(`update ${Z([...$.set.keys()])}`);if($.del.size>0)Q.push(`delete ${Z([...$.del])}`);let X=`chore(decofile): ${Q.join("; ")}`;return ki0(X,$.deps.coAuthor)}var _B6=3,KQ1;var cd$=D(()=>{k70();ST0();a8();Zw();gT0();KQ1=new Map});import{createHmac as dd$,randomBytes as xB6,timingSafeEqual as yB6}from"crypto";function md$(){if(mT0)return mT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return mT0=$?Buffer.from($):xB6(32),mT0}function FQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+gB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=dd$("sha256",md$()).update(X).digest("base64url");return`${X}.${Y}`}function id$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(dd$("sha256",md$()).update(X).digest("base64url"));if(Y.length!==G.length||!yB6(Y,G))return!1;let J;try{J=JSON.parse(Buffer.from(X,"base64url").toString())}catch{return!1}let W=Math.floor((Z.nowMs??Date.now())/1000);return J.o===Z.organizationId&&J.m===Z.virtualMcpId&&J.b===Z.branch&&typeof J.e==="number"&&J.e>=W}var gB6=21600000,mT0=null;var pd$=D(()=>{D$()});import{z as Ul}from"zod";function uB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&hB6.test($)}function ad$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function fs($){let Z=$.get("decofileScope");return kT0($.var.studioContext,Z.organizationId,Z.githubRepo)}function bs($,Z){if(Z instanceof d4){let X=Z.status===404?404:Z.status===409?409:Z.status===422?409:502;return $.json({error:Z.message},X)}let Q=Z instanceof Error?Z.message:String(Z);return $.json({error:Q},500)}function sd$(){let $=new J1;return $.use("/:virtualMcpId/:branch",rd$),$.use("/:virtualMcpId/:branch/*",rd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await qd$(X,Q.branch,Q.packagePath,{createBranchIfMissing:!!Q.userId}),G={ETag:`"${Y.sha}"`,"Cache-Control":"no-store","Access-Control-Allow-Origin":"*"};if(Z.req.header("if-none-match")===`"${Y.sha}"`)return Z.body(null,304,G);if(!Q.userId)return Z.body(Y.decofile,200,{...G,"content-type":"application/json"});let J=FQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ad$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return bs(Z,X)}}),$.get("/:virtualMcpId/:branch/meta",async(Z)=>{let Q=Z.get("decofileScope"),X=Q.packagePath?`${Q.packagePath}/.deco/meta.gen.json`:".deco/meta.gen.json";try{let Y=await fs(Z),G=await Y.getFileTextAtRef(Q.branch,X);if(G===null){let J=await Y.getDefaultBranch();if(J!==Q.branch)G=await Y.getFileTextAtRef(J,X)}if(G===null)return Z.json({error:"meta.gen.json not committed"},404);return Z.body(G,200,{"content-type":"application/json","Cache-Control":"no-store","Access-Control-Allow-Origin":"*"})}catch(Y){return bs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",cB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=dB6.safeParse(await Z.req.json().catch(()=>null));if(!Y.success)return Z.json({error:"Invalid body",details:Y.error.issues},400);let G=Y.data;for(let J of[...Object.keys(G.set??{}),...G.delete??[]])try{VT0(J)}catch(W){let K=W instanceof Error?W.message:String(W);return Z.json({error:K},400)}for(let[J,W]of Object.entries(G.set??{})){if(typeof W!=="object"||W===null||Array.isArray(W))return Z.json({error:`Block "${J}" must be a JSON object`},400);if(r71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await fs(Z),W=await ld$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=FQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ad$(Z)})}catch(J){return bs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({error:"Branch is already the default branch"},400);let G=`chore(decofile): publish ${Q.branch}`;try{let J;try{J=await X.mergeBranch(Y,Q.branch,G)}catch(W){if(!(W instanceof d4&&W.status===409))throw W;await lT0(X,Q.branch,Y),J=await X.mergeBranch(Y,Q.branch,G)}return J?Z.json({result:"merged",sha:J}):Z.json({result:"up-to-date"})}catch(J){if(J instanceof d4&&J.status===409)return Z.json({error:"merge-conflict"},409);if(J instanceof d4&&J.status===405){let K=await X.findOpenPullRequest(Y,Q.branch)??await X.createPullRequest({base:Y,head:Q.branch,title:`Publish ${Q.branch}`});return Z.json({result:"pull-request",number:K.number,url:K.html_url})}throw J}}catch(X){return bs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await fs(Z),Y=await X.getDefaultBranch();if(Y===Q.branch)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});try{let[{aheadBy:G,behindBy:J},W]=await Promise.all([X.compare(Y,Q.branch),X.getBranchHead(Q.branch)]);return Z.json({baseBranch:Y,aheadBy:G,behindBy:J,lastCommitAt:W.committedAt})}catch(G){if(G instanceof d4&&G.status===404)return Z.json({baseBranch:Y,aheadBy:0,behindBy:0,lastCommitAt:null});throw G}}catch(X){return bs(Z,X)}}),$}var hB6,nd$=500,td$=1048576,od$=1024,lB6=8388608,cB6,dB6,rd$;var ed$=D(()=>{Nt0();ST0();d$();VF();h71();MT0();JQ1();o71();cd$();pd$();GQ1();Zw();gT0();hB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;cB6=a5({maxSize:lB6,onError:($)=>$.json({error:"Payload too large"},413)}),dB6=Ul.object({set:Ul.record(Ul.string(),Ul.unknown()).optional(),delete:Ul.array(Ul.string()).optional()}).refine(($)=>Object.keys($.set??{}).length>0||($.delete?.length??0)>0,{message:"Patch must set or delete at least one block"}).refine(($)=>Object.keys($.set??{}).length+($.delete?.length??0)<=nd$,{message:`Patch cannot touch more than ${nd$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=td$),{message:`Each block must be at most ${td$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=od$),{message:`Each block key must be at most ${od$} characters`}),rd$=qT0(async($,Z)=>{let Q=$.var.studioContext,X=Q.organization;if(!X)return $.json({error:"Organization scope required"},500);let Y=$.req.param("virtualMcpId"),G=$.req.param("branch");if(!Y||!G)return $.json({error:"virtualMcpId and branch are required"},400);if(!uB6(G))return $.json({error:`Invalid branch name: ${G}`},400);let J=Q.auth?.user?.id??null;if(!J){let B=$.req.query("token");if(!($.req.method==="GET"&&!$.req.path.match(/\/(publish|status)$/)))return $.json({error:"Unauthorized"},401);if(!B||!id$(B,{organizationId:X.id,virtualMcpId:Y,branch:G}))return $.json({error:"Unauthorized"},401)}let W=await Q.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==X.id)return $.json({error:"Virtual MCP not found"},404);let K=W.metadata??null;if(!BD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=_s(K,H);if(!U)return $.json({error:"Project has no GitHub repository"},404);let N=K?.runtime;return $.set("decofileScope",{organizationId:X.id,virtualMcpId:Y,branch:G,packagePath:N?.path?.replace(/^\/+|\/+$/g,"")||null,githubRepo:U,userId:J}),Z()})});var $m$=($)=>{let Z=new J1;if(Z.use("*",Av),Z.route("/",uA0()),Z.route("/",wh$()),Z.route("/",Ac$()),Z.route("/",jc$()),Z.route("/",TT0()),Z.route("/tools",Vc$()),Z.route("/",qc$()),Z.route("/",sl$({kvStorage:$.kvStorage})),Z.route("/",rl$()),Z.route("/fs",Nc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",hd$()),Z.route("/decofile",sd$()),Z.route("/",wc$()),Z.route("/deco-sites",cA0()),Z.route("/hosting",Gh$()),Z.route("/monitor",Nh$()),Z.route("/sso",fA0()),Z.route("/",RT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",$h$()),$.mountDevAssets)Z.route("/dev-assets",pA0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",Tx$()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",Oc$()),Z.route("/mcp",dL0()),Z.route("/mcp/self",AT0()),Z.route("/mcp",pL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Zm$=D(()=>{d$();kA0();Zh$();FZ1();Jh$();Bh$();nA0();$s();YZ1();al$();el$();Bc$();Zo();s91();nL0();_71();Dc$();Lc$();zc$();Tc$();Mc$();f71();Sc$();b71();mL0();ud$();ed$()});function mB6($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}var iB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Qm$=()=>{let $=new J1;return $.use("*",iB6),$.get("/",async(Z)=>{let Q=V0(),X=Q.decoSupabaseUrl,Y=Q.decoSupabaseServiceKey;if(!X||!Y)return Z.json({apps:[]});try{let G=await PY(X,Y,"apps?select=name,title,description,logo,category,vendors(alias,url)");return Z.json({apps:mB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Xm$=D(()=>{d$();D$();yP0()});import{z as q1}from"zod";function bF($,Z="invalid_request_error",Q=null,X=null){return{error:{message:$,type:Z,param:Q,code:X}}}function ZO6($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let Q=$.substring(0,Z),X=$.substring(Z+1);if(!Q||!X)return null;return{credentialId:Q,modelId:X}}function QO6($,Z,Q){try{return JSON.parse($)}catch{throw new Jm$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function XO6($){let Z={};for(let Q of $)if(Q.role==="assistant"&&Q.tool_calls)for(let X of Q.tool_calls)Z[X.id]=X.function.name;return $.map((Q)=>{switch(Q.role){case"system":return{role:"system",content:Q.content};case"user":if(typeof Q.content==="string")return{role:"user",content:Q.content};return{role:"user",content:Q.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(Q.tool_calls&&Q.tool_calls.length>0)return{role:"assistant",content:Q.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:QO6(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:Q.content??""};case"tool":let X=Z[Q.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:Q.tool_call_id,toolName:X,output:{type:"text",value:Q.content}}]}}})}function YO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?eY(Q.function.parameters):eY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function GO6($){if(!$)return;return{openai:{response_format:$}}}function JO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Ym$($,Z,Q,X,Y,G){let J={model:$,messages:Z,tools:Q,temperature:X.temperature,maxTokens:X.max_tokens,topP:X.top_p,frequencyPenalty:X.frequency_penalty,presencePenalty:X.presence_penalty,stopSequences:X.stop?Array.isArray(X.stop)?X.stop:[X.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function Gm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var pB6=256,nB6,tB6,oB6,rB6,aB6,sB6,eB6,$O6,Jm$,Wm$,Km$;var Fm$=D(()=>{g4();d$();Yl();fU();nB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),tB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),oB6=q1.discriminatedUnion("role",[q1.object({role:q1.literal("system"),content:q1.string(),name:q1.string().optional()}),q1.object({role:q1.literal("user"),content:q1.union([q1.string(),q1.array(q1.union([q1.object({type:q1.literal("text"),text:q1.string()}),q1.object({type:q1.literal("image_url"),image_url:q1.object({url:q1.string(),detail:q1.string().optional()})})]))]),name:q1.string().optional()}),q1.object({role:q1.literal("assistant"),content:q1.string().nullable().optional(),name:q1.string().optional(),tool_calls:q1.array(tB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),rB6=q1.object({type:q1.literal("text")}),aB6=q1.object({type:q1.literal("json_object")}),sB6=q1.object({type:q1.literal("json_schema"),json_schema:q1.object({name:q1.string(),description:q1.string().optional(),schema:q1.record(q1.string(),q1.unknown()),strict:q1.boolean().optional()})}),eB6=q1.union([rB6,aB6,sB6]),$O6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(oB6),stream:q1.boolean().optional().default(!1),temperature:q1.number().min(0).max(2).optional(),max_tokens:q1.number().positive().optional(),top_p:q1.number().min(0).max(1).optional(),frequency_penalty:q1.number().min(-2).max(2).optional(),presence_penalty:q1.number().min(-2).max(2).optional(),stop:q1.union([q1.string(),q1.array(q1.string())]).optional(),tools:q1.array(nB6).optional(),tool_choice:q1.union([q1.literal("auto"),q1.literal("none"),q1.literal("required"),q1.object({type:q1.literal("function"),function:q1.object({name:q1.string()})})]).optional(),response_format:eB6.optional(),user:q1.string().optional()});Jm$=class Jm$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Wm$=new J1;Wm$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),Q=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bF("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bF("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==Q)return $.json(bF("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let X=await $.req.json(),Y=$O6.safeParse(X);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bF(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=ZO6(G.model);if(!J)return $.json(bF("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((j)=>EL(j.providerId));if(!E)return $.json(bF("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let F;try{F=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bF(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=F.aiSdk.languageModel(K),U=XO6(G.messages),N=G.tools?YO6(G.tools):void 0,B=GO6(G.response_format),O=JO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Ym$(H,U,N,G,B,$.req.raw.signal);try{let j=fO(E),z=!1,P=0,A="",I=async()=>{if(A.length===0)return;let k=A;A="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(A+=k.text,A.length>=pB6)await I()}else if(k.type==="tool-call"){await I();let M=P++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await I(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:w,model:G.model,choices:[{index:0,delta:{},finish_reason:Gm$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await I(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Ym$(H,U,N,G,B,$.req.raw.signal),E=await _O(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:w,model:G.model,choices:[{index:0,message:j,finish_reason:Gm$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(X){let Y=X;if(Y.name==="AbortError")return $.json(bF("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bF(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bF(Y.message,"server_error"),500)}});Km$=Wm$});function WO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Hm$(){let $=new J1;return $.use("*",async(Z,Q)=>{await Q(),Z.header("Cache-Control","private, no-store"),Z.header("Vary","Cookie")}),$.get("/",async(Z)=>{let Q=Z.get("studioContext"),X=t0(Q);if(!X)return Z.json({error:"Authentication required"},401);let G=(Z.req.query("site")??"").trim().toLowerCase();if(!sQ(G))return Z.json({error:"Invalid site slug"},400);let J=await Q.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.slug as slug","organization.name as name","organization.metadata as metadata"]).where("member.userId","=",X).execute(),W=[];for(let F of J){if(!F.slug||m9(F))continue;let H=await Q.storage.virtualMcps.list(F.id);for(let U of H){if(ee1(U)!==G)continue;if(!WO6(U.metadata))continue;W.push({orgSlug:F.slug,orgName:F.name??F.slug,project:{id:U.id,title:U.title,icon:U.icon??null}})}}let K={matches:W};return Z.json(K)}),$}var Um$=D(()=>{d$();cH()});var Bm$;var Nm$=D(()=>{Bm$={name:"decocms",version:"4.329.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function HO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??FO6}}var Om$,FO6="https://ph.studio.decocms.com",Dm$;var wm$=D(()=>{d$();W90();G_();u5();D$();u91();Nm$();Om$=new J1;Om$.get("/",($)=>{let Z={version:Bm$.version,theme:Dp1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:l_1()},...V0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!V0().firecrawlApiKey,hostingEnabled:!!V0().controlplaneRestUrl&&!!V0().controlplaneServiceToken,hostingControlPlaneGa:V0().hostingControlPlaneGa,monitorEnabled:!!V0().clickhouseAnalyticsUrl&&!!V0().clickhouseAnalyticsPassword,monitorGa:V0().monitorGa,auth:Gg$(),posthog:HO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ds()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Dm$=Om$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function HQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function Em$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function Lm$($,Z){let Q=$.trim();if(Q.length<=Z)return Q;let X=Q.slice(0,Z-1),Y=X.lastIndexOf(" ");return`${(Y>Z*0.6?X.slice(0,Y):X).trimEnd()}\u2026`}function jm$($){let{brand:Z,domain:Q,score:X,verdict:Y}=$,G=typeof X==="number"?`${Z} commerce report \u2014 ${Math.round(X)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?Lm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):Lm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var yv,UO6,NO6,BO6,OO6,zm$;var Pm$=D(()=>{yv=l0.enum(["good","bad","neutral"]),UO6=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((Q)=>Q!==null&&typeof Q!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:yv.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),NO6=l0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},l0.array(UO6)),BO6={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},OO6=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:yv.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:yv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:yv.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:yv.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array(NO6).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:yv.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:yv.optional()})).min(1)})]),zm$=l0.object({...BO6,template:OO6})});function iT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=zm$.safeParse(Y.props);if(G.success)return G.data;let J=G.error.issues[0];return Z.push({section_type:Y.section_type,position:Y.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((Y)=>Y!==null),X=Q.filter((Y)=>Y.template.template!=="cover"&&Y.template.template!=="cta").map((Y)=>({key:Y.key,title:Y.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:X},slides:Q},drops:Z}}var UQ1=D(()=>{Pm$()});import{join as Am$}from"path";async function wO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(DO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=iT0(Q);if(!X.slides.length)return null;let Y=X.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:X.meta.brand?.trim()||HQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function RG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function LO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||HQ1(Q),Y=Em$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=jm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${RG(W)}</title>`,`<meta name="description" content="${RG(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${RG(W)}" />`,`<meta property="og:description" content="${RG(K)}" />`,`<meta property="og:url" content="${RG(J)}" />`,`<meta property="og:image" content="${RG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${RG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${RG(W)}" />`,`<meta name="twitter:description" content="${RG(K)}" />`,`<meta name="twitter:image" content="${RG(F)}" />`,`<meta name="twitter:image:alt" content="${RG(H)}" />`,`<link rel="canonical" href="${RG(J)}" />`,`<link rel="icon" href="${RG(Y)}" sizes="any" />`].join(`
|
|
2984
2984
|
`)}function EO6($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
|
|
2985
2985
|
</head>`)}function Tm$($){let Z=new J1;return Z.get("/:domain/og.png",async(Q)=>{let X=Nl(Q.req.param("domain")),Y=async()=>{let G=$?Bun.file(Am$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return Q.notFound();return Q.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent(X)}/og.png`,{signal:AbortSignal.timeout(jO6)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return Q.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(Q)=>{let X=Q.req.param("domain"),Y=$?Am$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return Q.notFound();let J=await G.text();try{let W=await wO6(Nl(X)),K=LO6(X,W);return Q.html(EO6(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return Q.html(J)}}),Z}var DO6=2500,jO6=1e4;var Rm$=D(()=>{d$();UQ1();TE();D$()});function xs($,Z){return fetch(`${LK({})}${$}`,Z)}async function zO6($,Z,Q){let X=new URLSearchParams;if(Z)X.set("pw",Z);if(Q)X.set("lang",Q);let Y=X.toString()?`?${X.toString()}`:"",G=await xs(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=iT0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var PO6,YN,Im$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},qm$;var Mm$=D(()=>{d$();oY();TE();UQ1();PO6=new Set(["complete","errored","terminated","unknown"]),YN=new J1;YN.use("*",async($,Z)=>{let Q=await $8.api.getSession({headers:$.req.raw.headers});$.set("reportUser",Q?.user?.id?{email:Q.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});YN.use("/link-token/*",Im$);YN.use("/suggest",Im$);YN.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let Q=$.get("reportUser"),X=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await zO6(Z,X,Y);if($.header("Cache-Control","private, no-store"),Q||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});YN.post("/run",async($)=>{let Z=$.get("reportUser"),Q;try{Q=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let X=typeof Q.domain==="string"?Q.domain.trim():"";if(!X)return $.json({error:"domain is required"},400);let Y=Z?.email,G=typeof Q.distinctId==="string"&&Q.distinctId.trim()&&Q.distinctId.length<=200?Q.distinctId.trim():void 0;try{let J=await xs("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${AE({})}`},body:JSON.stringify({url:X,...Y?{email:Y}:{},distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});YN.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let Q=await xs(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${AE({})}`}});if(!Q.ok)return $.json({error:`status HTTP ${Q.status}`},502);let Y=(await Q.json()).status??"unknown",G={done:PO6.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});YN.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let Q=await xs(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(Q.status===404)return $.json(null);if(!Q.ok)return $.json({error:`link token HTTP ${Q.status}`},502);return $.json(await Q.json())}catch{return $.json({error:"link token resolve failed"},502)}});YN.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let Q=await xs(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!Q.ok)return $.json({suggestions:[]});let X=await Q.json();return $.json({suggestions:Array.isArray(X.suggestions)?X.suggestions:[]})}catch{return $.json({suggestions:[]})}});qm$=YN});import{createHmac as AO6,timingSafeEqual as TO6}from"crypto";function Vm$($,Z,Q,X=Date.now()){if(!Z||!Q)return!1;let Y,G=[];for(let F of Z.split(",")){let H=F.indexOf("=");if(H<=0)continue;let U=F.slice(0,H).trim(),N=F.slice(H+1).trim();if(U==="t")Y=N;else if(U==="v1")G.push(N)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(X/1000-J)>RO6)return!1;let W=AO6("sha256",Q).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((F)=>{let H=Buffer.from(F,"hex");return K.length===H.length&&TO6(K,H)})}function Sm$($){let Z;try{Z=JSON.parse($)}catch{return null}let Q=mJ(Z),X=mJ(mJ(Q?.data)?.object);if(!Q||typeof Q.type!=="string"||!X)return null;return{id:xF(Q.id),type:Q.type,created:typeof Q.created==="number"?Q.created:void 0,livemode:typeof Q.livemode==="boolean"?Q.livemode:void 0,data:{object:X}}}function Cm$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function xF($){return typeof $==="string"?$:void 0}function mJ($){return typeof $==="object"&&$!==null?$:void 0}function pT0($){return typeof $==="number"?new Date($*1000):null}function OQ1($){return xF($)??xF(mJ($)?.id)}function IO6($){return OQ1($.subscription)??xF(mJ(mJ($.parent)?.subscription_details)?.subscription)}function qO6($){let Z=pT0($.current_period_end);if(Z)return Z;let Q=mJ($.items)?.data;if(!Array.isArray(Q))return null;let X=0;for(let Y of Q){let G=mJ(Y)?.current_period_end;if(typeof G==="number"&&G>X)X=G}return X>0?new Date(X*1000):null}function NQ1($,Z){let Q=pT0($.created);return!!Q&&!!Z.lastStripeEventAt&&Q<Z.lastStripeEventAt}function BQ1($,Z){let Q=pT0($.created);if(!Q)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>Q?void 0:Q}async function MO6($,Z){let Q=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let X=xF(mJ(Q.metadata)?.orgId);if(!X)return{handled:!1,reason:"no orgId"};if(xF(mJ(Q.metadata)?.kind)==="topup"){if(Q.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(xF(Q.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=xF(Q.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:X}),{handled:!1,reason:"topup session without id"};let W=Number(mJ(Q.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:X,creditCents:mJ(Q.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:X,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(Q.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(xF(Q.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(X);if(!Y)return{handled:!1,reason:"unknown org"};let G=OQ1(Q.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:X,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(NQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(X,{stripeCustomerId:OQ1(Q.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:BQ1(Z,Y)}),{handled:!0,organizationId:X}}case"customer.subscription.updated":case"customer.subscription.deleted":{let X=xF(Q.id);if(!X)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(X);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&NQ1(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":Cm$(Q.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:qO6(Q),...G&&{stripeSubscriptionId:null},lastStripeEventAt:BQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let X=IO6(Q);if(!X)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(X);if(!Y)return{handled:!1,reason:"unknown subscription"};if(NQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:pT0(Q.period_end),lastStripeEventAt:BQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function kO6($,Z){if(!Z.handled||$.livemode===!1)return null;let Q=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:Cm$(Q.status),...typeof Q.cancel_at_period_end==="boolean"?{cancel_at_period_end:Q.cancel_at_period_end}:{}}};case"invoice.paid":if(Q.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function km$($,Z){let Q=kO6($,Z);if(!Q)return;mY({event:Q.name,organizationId:Q.organizationId,...$.id?{uuid:Tt1(`stripe:${$.id}:${Q.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:Q.properties})}async function _m$($){let Z=new BK(B8().db),Q=await MO6(Z,$);if(!(Q.handled&&Q.topUp))km$($,Q);if(Q.handled&&Q.topUp)await oj$({organizationId:Q.organizationId,amountCents:Q.topUp.creditCents,referenceId:Q.topUp.referenceId}),km$($,Q);if(!Q.handled&&Q.orphanSubscriptionId)try{await $1$(Q.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:Q.orphanSubscriptionId,eventId:$.id})}catch(X){if(!(X instanceof rY&&(X.status===400||X.status===404)))throw X}return Q}var RO6=300;var vm$=D(()=>{aG();v4();u50();bE();P11()});var VO6=1048576,DQ1;var fm$=D(()=>{d$();VF();D$();vm$();DQ1=new J1;DQ1.post("/webhook",a5({maxSize:VO6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=V0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let Q=await $.req.text();if(!Vm$(Q,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=Sm$(Q);if(!Y)return $.json({error:"invalid payload"},400);let G=await _m$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as SO6}from"crypto";function _O6($,Z,Q){if(!Z?.startsWith("sha256="))return!1;let X=new Bun.CryptoHasher("sha256",Q).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==X.length)return!1;return SO6(Buffer.from(Y),Buffer.from(X))}var CO6=5242880,wQ1;var bm$=D(()=>{d$();VF();s3();wQ1=new J1;wQ1.post("/webhook",a5({maxSize:CO6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let Q=await $.req.text();if(!_O6(Q,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let X;try{X=JSON.parse(Q)}catch{return $.json({error:"invalid payload"},400)}let Y=X.ref,G=X.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await Ht0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function xm$($){let Z=new pU($.db,new hQ($.encryptionKey)),Q=new J1;return Q.get("/attachments/:token",async(X)=>{let Y=nK$(X.req.param("token"));if(!Y)return X.json({error:"Invalid or expired link"},404);let G=await Z.getByOrg(Y.organizationId);if(!G)return X.json({error:"Jira is not connected"},404);let W=await new WG(G.siteUrl,G.email,G.apiToken).downloadAttachment(Y.attachmentId);if(!W.ok||!W.body)return X.json({error:"Jira refused the download"},502);let K=new Headers;for(let F of["content-type","content-length","content-disposition"]){let H=W.headers.get(F);if(H)K.set(F,H)}return K.set("cache-control","no-store"),new Response(W.body,{status:200,headers:K})}),Q}var ym$=D(()=>{d$();tN();Wo0();dC()});function gm$($){if(typeof $!=="object"||$===null)return null;let Z=$;if(Z.webhookEvent!=="jira:issue_updated")return null;let Q=Z.issue?.id,X=Z.issue?.key,Y=Z.changelog?.id;if(typeof Q!=="string"&&typeof Q!=="number"||typeof X!=="string"||typeof Y!=="string"&&typeof Y!=="number")return null;let G=Z.changelog?.items?.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")return null;return{issueId:String(Q),issueKey:X,toStatus:G.toString,changelogId:String(Y)}}function hm$($,Z,Q){let X=[];for(let Y of Z){if(new Date(Y.created).getTime()<Q.getTime())continue;let G=Y.items.find((J)=>J.field==="status");if(!G||typeof G.toString!=="string")continue;X.push({issueId:$.id,issueKey:$.key,toStatus:G.toString,changelogId:Y.id})}return X.sort((Y,G)=>Number(Y.changelogId)-Number(G.changelogId))}function bO6($){return`Jira ${$.key}: ${$.summary}`}async function nT0($,Z,Q){if(!Z.enabled)return"disabled";let X=Z.organizationId,Y=await $.storage.jiraIntegrations.getAutomation(X,Q.toStatus);if(!Y)return"no_rule";let G=new WG(Z.siteUrl,Z.email,Z.apiToken),J=await Jw0(G,Z.siteUrl,Q.issueId),W=await xO6($,Z,Q,J);if(!await $.storage.jiraIntegrations.claimTrigger(X,Q.issueId,Q.changelogId))return"duplicate";let F=await $.storage.taskBoard.update(W.id,X,{assigneeId:m$,assignedBy:Z.createdBy},Z.createdBy);try{await XW($,F,{instruction:Y.prompt??vO6,source:{kind:"jira",issueKey:J.key,title:bO6(J),body:`${Ww0(J)}
|
|
2986
2986
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as o,j as r}from"./index-Dg3MDkI1.js";import{O as m}from"./api-keys-CCwkxaNi.js";import{R as p}from"./require-capability-Bq6f109r.js";import"./AlertCircle-glTagKnn.js";import"./Copy01-Bgs4Qu4I.js";import"./Key01-Cjrz8YCe.js";import"./Plus-CKVw1bnc.js";import"./Trash01-B3CBFwQu.js";import"./alert-dialog-DHahvYoS.js";import"./dialog-uJAshKHm.js";import"./input-Cd4ivG-h.js";import"./label-igQY4yJP.js";import"./use-mcp-client-DOpmujvp.js";import"./constants-DNuUCxmW.js";import"./auth-DZ7suyaW.js";import"./access-gate-EAQsEsVC.js";import"./capability-load-error-862E3fES.js";function A(){const t=o.c(1);let i;return t[0]===Symbol.for("react.memo_cache_sentinel")?(i=r.jsx(p,{capability:"api-keys:manage",area:"api-keys",children:r.jsx(m,{})}),t[0]=i):i=t[0],i}export{A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as B,j as o,b as $,W as D,d as M,r as q,P as d,B as V,o as R}from"./index-Dg3MDkI1.js";import{s as W}from"./Plus-CKVw1bnc.js";import{i as S}from"./Zap-B-_4m1wg.js";import{S as F}from"./search-input-DCJwgAly.js";import{E as T}from"./empty-state-DQ2juxQ-.js";import{c as G}from"./use-automations-CLTrDbBR.js";import{u as H}from"./use-navigate-to-agent-j5VE0Q04.js";import{A as J}from"./automation-list-row-BmhzO0Gc.js";import{h as K}from"./constants-DNuUCxmW.js";import{a as O}from"./use-virtual-mcp-Cu0Tg71h.js";import{R as Q}from"./require-capability-Bq6f109r.js";import"./SearchMd-BpLi-D08.js";import"./use-mcp-client-DOpmujvp.js";import"./auth-DZ7suyaW.js";import"./use-destination-route-ZIZLPtGf.js";import"./hooks-hDI0cnVE.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-DS_lNrti.js";import"./task-board-CFWERcPX.js";import"./schema-B7XR7qK3.js";import"./chat-context-DuFN4EeO.js";import"./use-panel-navigate-CDaKzjBp.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-C4KvUz4Q.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-CprSnZyJ.js";import"./use-organization-settings-BtWG9tgs.js";import"./github-repo-COLY3wWI.js";import"./alert-dialog-DHahvYoS.js";import"./dropdown-menu-D4Trqrfg.js";import"./Check-BkGdJKSE.js";import"./ChevronRight-DldrqT_5.js";import"./DotsVertical-DVS5jGYn.js";import"./agent-icon-B7TYykkr.js";import"./AlertCircle-glTagKnn.js";import"./Tool01-CFaN6H7u.js";import"./ArrowUp-B7KxewK2.js";import"./ArrowLeft-D3GFMfBi.js";import"./Tool02-CojvwMIx.js";import"./XCircle-DsBDZDDG.js";import"./TrendUp01-DFzG5dv4.js";import"./ZoomOut-PyUsaMfH.js";import"./Users03-DLDUqBHf.js";import"./CheckCircle-CphNcOq6.js";import"./ChevronUp-fc1U9Ia7.js";import"./ChevronSelectorVertical-BkGHSJFm.js";import"./UserSquare-C6AqPITK.js";import"./Copy01-Bgs4Qu4I.js";import"./CreditCard01-zMRzLvdG.js";import"./Download01-Bh_wFZGF.js";import"./Settings02-DM7IaDwr.js";import"./Eye-CkqwKuDn.js";import"./Share07-BUqvxgUi.js";import"./GitBranch01-CBvrqVgH.js";import"./Globe01-Cgjujgie.js";import"./XClose-CjvkH3S8.js";import"./HardDrive-BnWTu1c8.js";import"./Image01-BlgHok8c.js";import"./Key01-Cjrz8YCe.js";import"./Link01-B831bX1S.js";import"./LinkExternal01-BwL4MRbw.js";import"./Monitor01-DqiGTsqJ.js";import"./Sun-C69M4-p0.js";import"./Package-oDI7QzRv.js";import"./Palette-CLEY0-M8.js";import"./Play-BeJRFaGI.js";import"./Shield01-BhnBTI-m.js";import"./Stars01-BcN6cAUG.js";import"./Trash01-B3CBFwQu.js";import"./Upload01-4OH0nHlo.js";import"./User01-BC-DBefx.js";import"./Users01-CYxsovzS.js";import"./access-gate-EAQsEsVC.js";import"./capability-load-error-862E3fES.js";function U(){const t=B.c(20),i=$(),{org:l}=D(),{data:C}=G(void 0),g=C===void 0?[]:C,k=O(),P=H(),f=M(),[x,E]=q.useState(""),h=x.toLowerCase(),A=new Map(k.map(X)),b=g.filter(e=>{if(!h||e.name.toLowerCase().includes(h))return!0;if(e.virtual_mcp_id){const p=A.get(e.virtual_mcp_id);if(p&&p.title.toLowerCase().includes(h))return!0}return!1}),z=(e,p)=>{const N=p&&A.has(p)?p:K(l.id);R("automations_list_row_clicked",{automation_id:e,agent_id:N,source:"settings_automations"}),P(N,{panel:`automation:${e}`})};let c;t[0]!==f||t[1]!==l.slug?(c=()=>{R("automations_empty_state_browse_agents_clicked"),f({to:"/$org/settings/agents",params:{org:l.slug}})},t[0]=f,t[1]=l.slug,t[2]=c):c=t[2];const L=c,j=d,v=d,w=d;let s;t[3]!==i?(s=i("settings.automations.pageTitle"),t[3]=i,t[4]=s):s=t[4];let r;t[5]!==s?(r=o.jsx(d.Title,{children:s}),t[5]=s,t[6]=r):r=t[6];const _=g.length>0&&o.jsx(F,{value:x,onChange:E,placeholder:i("settings.automations.searchPlaceholder"),className:"w-full md:w-[375px]"});let m;t[7]!==r||t[8]!==_?(m=o.jsxs("div",{className:"flex flex-col gap-6",children:[r,_]}),t[7]=r,t[8]=_,t[9]=m):m=t[9];const y=g.length===0?o.jsx("div",{className:"flex items-center justify-center py-20",children:o.jsx(T,{image:o.jsx(S,{size:48,className:"text-muted-foreground"}),title:i("settings.automations.emptyTitle"),description:i("settings.automations.emptyDescription"),actions:o.jsxs(V,{size:"sm",onClick:L,children:[o.jsx(W,{size:14}),i("settings.automations.browseAgentsButton")]})})}):b.length===0?o.jsx("div",{className:"flex items-center justify-center py-20",children:o.jsx(T,{image:o.jsx(S,{size:48,className:"text-muted-foreground"}),title:i("settings.automations.noResultsTitle"),description:i("settings.automations.noResultsDescription",{search:x})})}):o.jsx("div",{className:"mt-6 rounded-xl border border-border overflow-hidden",children:b.map(e=>o.jsx(J,{automation:e,showAgent:!0,onClick:()=>z(e.id,e.virtual_mcp_id)},e.id))});let n;t[10]!==w.Body||t[11]!==m||t[12]!==y?(n=o.jsxs(w.Body,{children:[m,y]}),t[10]=w.Body,t[11]=m,t[12]=y,t[13]=n):n=t[13];let a;t[14]!==v.Content||t[15]!==n?(a=o.jsx(v.Content,{children:n}),t[14]=v.Content,t[15]=n,t[16]=a):a=t[16];let u;return t[17]!==j||t[18]!==a?(u=o.jsx(j,{children:a}),t[17]=j,t[18]=a,t[19]=u):u=t[19],u}function X(t){return[t.id,t]}function wo(){const t=B.c(1);let i;return t[0]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx(Q,{capability:"automations:manage",area:"automations",children:o.jsx(U,{})}),t[0]=i):i=t[0],i}export{wo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as w,b as z,G as g,j as a,H as _,r as j,I as D,J as I,M as O,O as L,R as A,U as M}from"./index-Dg3MDkI1.js";import{S as T}from"./index-CXP_jLrf.js";import{u as H}from"./settings-sidebar-CaQ34vO3.js";import"./task-route-CcwyXkS8.js";import"./hooks-hDI0cnVE.js";import"./use-destination-route-ZIZLPtGf.js";import"./constants-DNuUCxmW.js";import"./use-mcp-client-DOpmujvp.js";import"./auth-DZ7suyaW.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-DS_lNrti.js";import"./task-board-CFWERcPX.js";import"./schema-B7XR7qK3.js";import"./ChevronUp-fc1U9Ia7.js";import"./agent-icon-B7TYykkr.js";import"./AlertCircle-glTagKnn.js";import"./Tool01-CFaN6H7u.js";import"./ArrowUp-B7KxewK2.js";import"./ArrowLeft-D3GFMfBi.js";import"./Tool02-CojvwMIx.js";import"./XCircle-DsBDZDDG.js";import"./TrendUp01-DFzG5dv4.js";import"./ZoomOut-PyUsaMfH.js";import"./Users03-DLDUqBHf.js";import"./CheckCircle-CphNcOq6.js";import"./Check-BkGdJKSE.js";import"./ChevronRight-DldrqT_5.js";import"./ChevronSelectorVertical-BkGHSJFm.js";import"./DotsVertical-DVS5jGYn.js";import"./UserSquare-C6AqPITK.js";import"./Copy01-Bgs4Qu4I.js";import"./CreditCard01-zMRzLvdG.js";import"./Download01-Bh_wFZGF.js";import"./Settings02-DM7IaDwr.js";import"./Eye-CkqwKuDn.js";import"./Share07-BUqvxgUi.js";import"./GitBranch01-CBvrqVgH.js";import"./Globe01-Cgjujgie.js";import"./XClose-CjvkH3S8.js";import"./HardDrive-BnWTu1c8.js";import"./Image01-BlgHok8c.js";import"./Key01-Cjrz8YCe.js";import"./Link01-B831bX1S.js";import"./LinkExternal01-BwL4MRbw.js";import"./Monitor01-DqiGTsqJ.js";import"./Sun-C69M4-p0.js";import"./Package-oDI7QzRv.js";import"./Palette-CLEY0-M8.js";import"./Play-BeJRFaGI.js";import"./Plus-CKVw1bnc.js";import"./SearchMd-BpLi-D08.js";import"./Shield01-BhnBTI-m.js";import"./Stars01-BcN6cAUG.js";import"./Trash01-B3CBFwQu.js";import"./Upload01-4OH0nHlo.js";import"./User01-BC-DBefx.js";import"./Users01-CYxsovzS.js";import"./Zap-B-_4m1wg.js";import"./use-virtual-mcp-Cu0Tg71h.js";import"./github-repo-COLY3wWI.js";import"./use-navigate-to-agent-j5VE0Q04.js";import"./chat-context-DuFN4EeO.js";import"./use-panel-navigate-CDaKzjBp.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-C4KvUz4Q.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-CprSnZyJ.js";import"./use-organization-settings-BtWG9tgs.js";import"./toolbar-icon-button-DOV4tAPT.js";import"./popover-BBnlDYWg.js";import"./drawer-BxLMQKrQ.js";import"./github-repo-picker-DE7Pjo4O.js";import"./dialog-uJAshKHm.js";import"./collection-search-Dl7mFyG3.js";import"./use-debounced-value-5HRghJeG.js";import"./use-connection-BP7A4Wgv.js";import"./authenticate-and-persist-oauth-X6dHyEra.js";import"./mcp-oauth-DBFGEu2L.js";import"./extract-connection-data-BG1m52JH.js";import"./metadata-dUsYcpuu.js";import"./connection-BCj3V21T.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./project-icon-CWP_8qk4.js";import"./shell-layout-Es2gcPgj.js";import"./avatar-NShmjW8N.js";import"./download-app-dialog-DUZmkw6s.js";import"./command-DzuuFKPg.js";import"./index-qvpq0R0S.js";import"./required-auth-layout-Bh5tcCa4.js";import"./use-org-sso-CqE2pmEN.js";import"./connection-card-C8twukKV.js";import"./use-registry-connections-BnQ35ezt.js";import"./useInfiniteQuery-BaNnDXl3.js";import"./use-infinite-scroll-BXSZ15e5.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./integration-icon-Coxc3tMG.js";import"./form--mQmddL0.js";import"./label-igQY4yJP.js";import"./input-Cd4ivG-h.js";import"./select-Dd7AR-Pc.js";import"./textarea-DZn9bcqF.js";import"./connection-form-helpers-a2liYWOG.js";import"./collection-tabs-DjiJAB6y.js";import"./badge-CnnV1Ji7.js";import"./useSuspenseInfiniteQuery-CL_Ty1NE.js";import"./use-file-configs-gP4J68v3.js";import"./site-slug-uya6Wp4-.js";import"./dropdown-menu-D4Trqrfg.js";import"./get-initials-D-f_fDFw.js";import"./use-deployment-admin-DZc0DplR.js";import"./invite-member-dialog-DnkoSNVH.js";import"./use-org-auth-client-BR76EYdr.js";import"./use-organization-roles-CW1fkF2L.js";import"./scroll-area-BZBy1fGK.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./create-organization-dialog-XLD1VOzz.js";import"./alert-dialog-DHahvYoS.js";import"./use-join-requests-Bxo8Zfup.js";function N(t){const e=w.c(11),{onPointerDown:o,onDoubleClick:l}=t,i=z(),{isMobile:b}=g(),c=H();if(b||c)return null;let s;e[0]!==i?(s=i("sidebar.sidebarResizeHandle.ariaLabel"),e[0]=i,e[1]=s):s=e[1];let r;e[2]!==i?(r=i("sidebar.sidebarResizeHandle.title"),e[2]=i,e[3]=r):r=e[3];let p,m;e[4]===Symbol.for("react.memo_cache_sentinel")?(p={left:"var(--sidebar-width)"},m=a.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-colors duration-150 group-hover/resize:bg-border group-active/resize:bg-border"}),e[4]=p,e[5]=m):(p=e[4],m=e[5]);let n;return e[6]!==l||e[7]!==o||e[8]!==s||e[9]!==r?(n=a.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":s,title:r,onPointerDown:o,onDoubleClick:l,className:"group/resize absolute top-0 z-20 h-full w-2 -translate-x-1/2 cursor-col-resize",style:p,children:m}),e[6]=l,e[7]=o,e[8]=s,e[9]=r,e[10]=n):n=e[10],n}const v=240,W=400,C="sidebar.width";function S(t){return Math.max(v,Math.min(W,t))}function X(){const t=w.c(11),[e,o]=_(C,$),l=j.useRef(null);let i;t[0]!==o||t[1]!==e?(i=m=>{m.preventDefault();const n=m.clientX,d=S(e),f=l.current??(typeof document<"u"?document.querySelector('[data-slot="sidebar-wrapper"]'):null),u=f?Array.from(f.querySelectorAll('[data-slot="sidebar"], [data-slot="sidebar-container"]')):[];for(const y of u)y.style.transition="none";const h=y=>{const x=S(d+(y.clientX-n));f?.style.setProperty("--sidebar-width",`${x}px`)},R=y=>{const x=S(d+(y.clientX-n));o(x);for(const E of u)E.style.transition="";window.removeEventListener("pointermove",h),window.removeEventListener("pointerup",R),document.body.style.userSelect="",document.body.style.cursor=""};document.body.style.userSelect="none",document.body.style.cursor="col-resize",window.addEventListener("pointermove",h),window.addEventListener("pointerup",R)},t[0]=o,t[1]=e,t[2]=i):i=t[2];const b=i;let c;t[3]!==o?(c=()=>{o(v)},t[3]=o,t[4]=c):c=t[4];const s=c;let r;t[5]!==e?(r=S(e),t[5]=e,t[6]=r):r=t[6];let p;return t[7]!==b||t[8]!==s||t[9]!==r?(p={width:r,wrapperRef:l,onStartResize:b,resetWidth:s},t[7]=b,t[8]=s,t[9]=r,t[10]=p):p=t[10],p}function $(t){return typeof t=="number"?S(t):v}const P="3.125rem";function rr(){const t=w.c(16),e=D();let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o=I.sidebarOpen(),t[0]=o):o=t[0];const[l,i]=_(o,!0),{width:b,wrapperRef:c,onStartResize:s,resetWidth:r}=X(),p=`${b}px`;let m;t[1]!==p?(m={"--sidebar-width":p,"--sidebar-width-icon":P},t[1]=p,t[2]=m):m=t[2];const n=m;let d;t[3]!==e||t[4]!==s||t[5]!==r?(d=!e&&a.jsxs(a.Fragment,{children:[a.jsx(T,{}),a.jsx(N,{onPointerDown:s,onDoubleClick:r})]}),t[3]=e,t[4]=s,t[5]=r,t[6]=d):d=t[6];let f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=a.jsx(O,{className:"flex flex-col min-h-0",style:{background:"transparent",containerType:"inline-size"},children:a.jsx(L,{})}),t[7]=f):f=t[7];let u;t[8]!==n||t[9]!==d||t[10]!==c?(u=a.jsx("div",{className:"app-shell-root flex flex-col h-dvh overflow-hidden",children:a.jsxs(A,{ref:c,className:"flex-1 bg-sidebar relative min-h-0",style:n,children:[d,f]})}),t[8]=n,t[9]=d,t[10]=c,t[11]=u):u=t[11];let h;return t[12]!==i||t[13]!==l||t[14]!==u?(h=a.jsx(M,{open:l,onOpenChange:i,children:u}),t[12]=i,t[13]=l,t[14]=u,t[15]=h):h=t[15],h}export{rr as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as B,b as L,j as r}from"./index-Dg3MDkI1.js";import{I as A}from"./input-Cd4ivG-h.js";import{L as F}from"./label-igQY4yJP.js";import{S as R,a as z,b as J,c as O,d as V}from"./select-Dd7AR-Pc.js";import{T as D}from"./textarea-DZn9bcqF.js";import{e as M,w as $,j as q,y as G,J as H}from"./index-CsP49IEW.js";import{s as P}from"./primitives-CF2d7rym.js";import{u as Q}from"./use-autosave-CF-pnZV7.js";import"./Check-BkGdJKSE.js";import"./ChevronUp-fc1U9Ia7.js";import"./ArrowUp-B7KxewK2.js";import"./chat-context-DuFN4EeO.js";import"./use-panel-navigate-CDaKzjBp.js";import"./use-destination-route-ZIZLPtGf.js";import"./hooks-hDI0cnVE.js";import"./constants-DNuUCxmW.js";import"./use-mcp-client-DOpmujvp.js";import"./auth-DZ7suyaW.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-DS_lNrti.js";import"./task-board-CFWERcPX.js";import"./schema-B7XR7qK3.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-virtual-mcp-Cu0Tg71h.js";import"./use-ai-providers-C4KvUz4Q.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-CprSnZyJ.js";import"./use-organization-settings-BtWG9tgs.js";import"./automation-runs-B1-CwSL7.js";import"./agent-icon-B7TYykkr.js";import"./AlertCircle-glTagKnn.js";import"./Tool01-CFaN6H7u.js";import"./ArrowLeft-D3GFMfBi.js";import"./Tool02-CojvwMIx.js";import"./XCircle-DsBDZDDG.js";import"./TrendUp01-DFzG5dv4.js";import"./ZoomOut-PyUsaMfH.js";import"./Users03-DLDUqBHf.js";import"./CheckCircle-CphNcOq6.js";import"./ChevronRight-DldrqT_5.js";import"./ChevronSelectorVertical-BkGHSJFm.js";import"./DotsVertical-DVS5jGYn.js";import"./UserSquare-C6AqPITK.js";import"./Copy01-Bgs4Qu4I.js";import"./CreditCard01-zMRzLvdG.js";import"./Download01-Bh_wFZGF.js";import"./Settings02-DM7IaDwr.js";import"./Eye-CkqwKuDn.js";import"./Share07-BUqvxgUi.js";import"./GitBranch01-CBvrqVgH.js";import"./Globe01-Cgjujgie.js";import"./XClose-CjvkH3S8.js";import"./HardDrive-BnWTu1c8.js";import"./Image01-BlgHok8c.js";import"./Key01-Cjrz8YCe.js";import"./Link01-B831bX1S.js";import"./LinkExternal01-BwL4MRbw.js";import"./Monitor01-DqiGTsqJ.js";import"./Sun-C69M4-p0.js";import"./Package-oDI7QzRv.js";import"./Palette-CLEY0-M8.js";import"./Play-BeJRFaGI.js";import"./Plus-CKVw1bnc.js";import"./SearchMd-BpLi-D08.js";import"./Shield01-BhnBTI-m.js";import"./Stars01-BcN6cAUG.js";import"./Trash01-B3CBFwQu.js";import"./Upload01-4OH0nHlo.js";import"./User01-BC-DBefx.js";import"./Users01-CYxsovzS.js";import"./Zap-B-_4m1wg.js";import"./useInfiniteQuery-BaNnDXl3.js";import"./use-infinite-scroll-BXSZ15e5.js";import"./use-connection-BP7A4Wgv.js";import"./table-DEasb1oj.js";import"./empty-state-DQ2juxQ-.js";import"./use-members-Hm5MJ_kb.js";import"./use-org-auth-client-BR76EYdr.js";import"./use-automations-CLTrDbBR.js";import"./useSuspenseInfiniteQuery-CL_Ty1NE.js";import"./avatar-NShmjW8N.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-BeEwIY4h.js";import"./markdown-l8IKDOgx.js";import"./dialog-uJAshKHm.js";import"./monaco-editor-DxoB_WYn.js";import"./editor-CSTGuz_W.js";import"./types-D5cSIo5A.js";import"./shell-layout-Es2gcPgj.js";import"./download-app-dialog-DUZmkw6s.js";import"./project-icon-CWP_8qk4.js";import"./github-repo-COLY3wWI.js";import"./command-DzuuFKPg.js";import"./index-qvpq0R0S.js";import"./required-auth-layout-Bh5tcCa4.js";import"./use-org-sso-CqE2pmEN.js";import"./integration-icon-Coxc3tMG.js";import"./use-navigate-to-agent-j5VE0Q04.js";import"./use-mcp-prompts-BTYEgxzc.js";import"./form--mQmddL0.js";import"./file-type-icon-D76m9e9r.js";import"./drawer-BxLMQKrQ.js";import"./collection-search-Dl7mFyG3.js";import"./tabs-Bq1EfIB0.js";import"./toggle-group-YLq58Nhp.js";import"./task-route-CcwyXkS8.js";import"./toolbar-icon-button-DOV4tAPT.js";import"./popover-BBnlDYWg.js";import"./github-repo-picker-DE7Pjo4O.js";import"./use-debounced-value-5HRghJeG.js";import"./authenticate-and-persist-oauth-X6dHyEra.js";import"./mcp-oauth-DBFGEu2L.js";import"./extract-connection-data-BG1m52JH.js";import"./metadata-dUsYcpuu.js";import"./connection-BCj3V21T.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./connection-card-C8twukKV.js";import"./use-registry-connections-BnQ35ezt.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./connection-form-helpers-a2liYWOG.js";import"./collection-tabs-DjiJAB6y.js";import"./badge-CnnV1Ji7.js";import"./use-file-configs-gP4J68v3.js";import"./site-slug-uya6Wp4-.js";import"./dropdown-menu-D4Trqrfg.js";import"./get-initials-D-f_fDFw.js";import"./select-model-BAZxHTFZ.js";import"./checkbox-Dm0ArtDP.js";import"./ai-providers-logos-DD3qZ33J.js";import"./folder-icon-DFD_wmIj.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-DCoeV7as.js";import"./toolbar-CG7UaDiu.js";import"./skill-preview-B-cVW8Ti.js";import"./pt-BR-CLy76QW2.js";import"./alert-dialog-DHahvYoS.js";import"./use-debounced-autosave-bUkHJSPB.js";import"./scroll-area-BZBy1fGK.js";import"./search-input-DCJwgAly.js";import"./use-mcp-auth-status-B5s_Nuiq.js";import"./switch-CM6VOqN2.js";import"./use-secrets-S6gOwFAK.js";import"./client-icons-DCtEf6LD.js";import"./connect-layout-TUA0Pf0L.js";import"./self-tool-result-DIvytlXf.js";import"./track-D5AT2HY9.js";import"./use-tags-Bux2oT93.js";import"./breadcrumb-BNZo3TmX.js";import"./safe-image-url-D5z803Ot.js";import"./automation-list-row-BmhzO0Gc.js";import"./site-error--i37Vnuw.js";import"./cards-Ca28ZIFm.js";const U={authors:[{key:"name",labelKey:"sandbox.recordEditor.fieldName",widget:"text"},{key:"type",labelKey:"sandbox.recordEditor.fieldType",widget:"select",options:[{value:"Person",labelKey:"sandbox.recordEditor.optionPerson"},{value:"Organization",labelKey:"sandbox.recordEditor.optionOrganization"}]},{key:"email",labelKey:"sandbox.recordEditor.fieldEmail",widget:"text",placeholderKey:"sandbox.recordEditor.placeholderEmail"},{key:"jobTitle",labelKey:"sandbox.recordEditor.fieldJobTitle",widget:"text"},{key:"company",labelKey:"sandbox.recordEditor.fieldCompany",widget:"text"},{key:"avatar",labelKey:"sandbox.recordEditor.fieldAvatar",widget:"image"}]},W={authors:"sandbox.recordEditor.titleAuthor"};function Gr(I){const t=B.c(39),{orgSlug:E,virtualMcpId:K,branch:w,kind:a,blockKey:b,block:f}=I,i=L();let h;t[0]!==w||t[1]!==E||t[2]!==K?(h={orgSlug:E,virtualMcpId:K,branch:w},t[0]=w,t[1]=E,t[2]=K,t[3]=h):h=t[3];const p=M(h);let g;t[4]!==f||t[5]!==a?(g=$(f,a),t[4]=f,t[5]=a,t[6]=g):g=t[6];const C=g;let k;t[7]!==b||t[8]!==a||t[9]!==p?(k=l=>{p.mutate({blockKey:b,data:G(b,a,l)})},t[7]=b,t[8]=a,t[9]=p,t[10]=k):k=t[10];const[e,S]=Q(C,k);let v;t[11]!==e||t[12]!==S?(v=(l,o)=>S({...e,[l]:o}),t[11]=e,t[12]=S,t[13]=v):v=t[13];const s=v,N=W[a];let n;t[14]!==i||t[15]!==N?(n=i(N),t[14]=i,t[15]=N,t[16]=n):n=t[16];let c;t[17]!==n?(c=r.jsx("span",{className:"text-sm font-medium",children:n}),t[17]=n,t[18]=c):c=t[18];let d;t[19]!==p.isError||t[20]!==p.isPending?(d=r.jsx(q,{isPending:p.isPending,isError:p.isError}),t[19]=p.isError,t[20]=p.isPending,t[21]=d):d=t[21];let y;t[22]!==c||t[23]!==d?(y=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[c,d]}),t[22]=c,t[23]=d,t[24]=y):y=t[24];const T=U[a];let x;if(t[25]!==e||t[26]!==s||t[27]!==i||t[28]!==T){let l;t[30]!==e||t[31]!==s||t[32]!==i?(l=o=>r.jsx("div",{className:"space-y-2",children:o.widget==="image"?r.jsx(H,{schema:{type:"string",format:"image-uri",title:i(o.labelKey)},value:e[o.key],onChange:m=>s(o.key,m),path:o.key,label:i(o.labelKey)}):o.widget==="select"?r.jsxs(r.Fragment,{children:[r.jsx(F,{htmlFor:o.key,children:i(o.labelKey)}),r.jsxs(R,{value:P(e[o.key])||o.options?.[0]?.value,onValueChange:m=>s(o.key,m),children:[r.jsx(z,{id:o.key,className:"h-10 w-full",children:r.jsx(J,{placeholder:i(o.labelKey)})}),r.jsx(O,{children:(o.options??[]).map(m=>r.jsx(V,{value:m.value,children:i(m.labelKey)},m.value))})]})]}):r.jsxs(r.Fragment,{children:[r.jsx(F,{htmlFor:o.key,children:i(o.labelKey)}),o.widget==="textarea"?r.jsx(D,{id:o.key,value:P(e[o.key]),onChange:m=>s(o.key,m.target.value),rows:3}):r.jsx(A,{id:o.key,value:P(e[o.key]),placeholder:o.placeholderKey?i(o.placeholderKey):void 0,onChange:m=>s(o.key,m.target.value),className:"h-10"})]})},o.key),t[30]=e,t[31]=s,t[32]=i,t[33]=l):l=t[33],x=T.map(l),t[25]=e,t[26]=s,t[27]=i,t[28]=T,t[29]=x}else x=t[29];let u;t[34]!==x?(u=r.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto px-6 py-6",children:r.jsx("div",{className:"mx-auto max-w-xl space-y-6",children:x})}),t[34]=x,t[35]=u):u=t[35];let j;return t[36]!==u||t[37]!==y?(j=r.jsxs("div",{className:"flex h-full flex-col",children:[y,u]}),t[36]=u,t[37]=y,t[38]=j):j=t[38],j}export{Gr as RecordEditor};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-DpapqlO0.js","assets/index-Dg3MDkI1.js","assets/index-DN9-7YC2.css","assets/Tool02-CojvwMIx.js","assets/CheckCircle-CphNcOq6.js","assets/Settings02-DM7IaDwr.js","assets/use-mcp-client-DOpmujvp.js","assets/constants-DNuUCxmW.js","assets/auth-DZ7suyaW.js","assets/useInfiniteQuery-BaNnDXl3.js","assets/use-infinite-scroll-BXSZ15e5.js","assets/badge-CnnV1Ji7.js","assets/input-Cd4ivG-h.js","assets/dropdown-menu-D4Trqrfg.js","assets/Check-BkGdJKSE.js","assets/ChevronRight-DldrqT_5.js","assets/DotsVertical-DVS5jGYn.js","assets/table-DEasb1oj.js","assets/toggle-group-YLq58Nhp.js","assets/use-view-mode-CtXnIo7C.js","assets/Globe01-Cgjujgie.js","assets/SearchMd-BpLi-D08.js","assets/dialog-uJAshKHm.js","assets/AlertCircle-glTagKnn.js","assets/Download01-Bh_wFZGF.js","assets/Upload01-4OH0nHlo.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-DHahvYoS.js","assets/Trash01-B3CBFwQu.js","assets/label-igQY4yJP.js","assets/select-Dd7AR-Pc.js","assets/ChevronUp-fc1U9Ia7.js","assets/switch-CM6VOqN2.js","assets/textarea-DZn9bcqF.js","assets/ArrowLeft-D3GFMfBi.js","assets/XCircle-DsBDZDDG.js","assets/Link01-B831bX1S.js","assets/safe-image-url-D5z803Ot.js","assets/checkbox-Dm0ArtDP.js","assets/Eye-CkqwKuDn.js","assets/LinkExternal01-BwL4MRbw.js","assets/use-copy-BeEwIY4h.js","assets/Copy01-Bgs4Qu4I.js","assets/Key01-Cjrz8YCe.js","assets/Plus-CKVw1bnc.js","assets/mcp-oauth-DBFGEu2L.js","assets/Play-BeJRFaGI.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as i,j as e,r as s,h as a,bl as o}from"./index-Dg3MDkI1.js";import{R as l}from"./require-capability-Bq6f109r.js";import"./access-gate-EAQsEsVC.js";import"./capability-load-error-862E3fES.js";const n=s.lazy(()=>o(()=>import("./registry-layout-DpapqlO0.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46])));function u(){const r=i.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(l,{capability:"registry:manage",area:"the registry",children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{className:"size-5 text-muted-foreground"})}),children:e.jsx(n,{})})}),r[0]=t):t=r[0],t}export{u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as n,I as a,j as o,W as c,l as d,Y as f,bW as x,O as h}from"./index-Dg3MDkI1.js";import{h as u}from"./settings-sidebar-CaQ34vO3.js";import{T as p}from"./toolbar-CG7UaDiu.js";import{S as j,M as b}from"./shell-controls-B7n5NO-R.js";import{u as S}from"./use-status-sounds-DCoeV7as.js";import"./ChevronUp-fc1U9Ia7.js";import"./ChevronRight-DldrqT_5.js";import"./TrendUp01-DFzG5dv4.js";import"./toolbar-icon-button-DOV4tAPT.js";import"./Check-BkGdJKSE.js";import"./ChevronSelectorVertical-BkGHSJFm.js";import"./Plus-CKVw1bnc.js";import"./command-DzuuFKPg.js";import"./index-qvpq0R0S.js";import"./dialog-uJAshKHm.js";import"./SearchMd-BpLi-D08.js";import"./popover-BBnlDYWg.js";import"./agent-icon-B7TYykkr.js";import"./AlertCircle-glTagKnn.js";import"./Tool01-CFaN6H7u.js";import"./ArrowUp-B7KxewK2.js";import"./ArrowLeft-D3GFMfBi.js";import"./Tool02-CojvwMIx.js";import"./XCircle-DsBDZDDG.js";import"./ZoomOut-PyUsaMfH.js";import"./Users03-DLDUqBHf.js";import"./CheckCircle-CphNcOq6.js";import"./DotsVertical-DVS5jGYn.js";import"./UserSquare-C6AqPITK.js";import"./Copy01-Bgs4Qu4I.js";import"./CreditCard01-zMRzLvdG.js";import"./Download01-Bh_wFZGF.js";import"./Settings02-DM7IaDwr.js";import"./Eye-CkqwKuDn.js";import"./Share07-BUqvxgUi.js";import"./GitBranch01-CBvrqVgH.js";import"./Globe01-Cgjujgie.js";import"./XClose-CjvkH3S8.js";import"./HardDrive-BnWTu1c8.js";import"./Image01-BlgHok8c.js";import"./Key01-Cjrz8YCe.js";import"./Link01-B831bX1S.js";import"./LinkExternal01-BwL4MRbw.js";import"./Monitor01-DqiGTsqJ.js";import"./Sun-C69M4-p0.js";import"./Package-oDI7QzRv.js";import"./Palette-CLEY0-M8.js";import"./Play-BeJRFaGI.js";import"./Shield01-BhnBTI-m.js";import"./Stars01-BcN6cAUG.js";import"./Trash01-B3CBFwQu.js";import"./Upload01-4OH0nHlo.js";import"./User01-BC-DBefx.js";import"./Users01-CYxsovzS.js";import"./Zap-B-_4m1wg.js";import"./project-icon-CWP_8qk4.js";import"./constants-DNuUCxmW.js";import"./use-virtual-mcp-Cu0Tg71h.js";import"./use-mcp-client-DOpmujvp.js";import"./auth-DZ7suyaW.js";import"./github-repo-COLY3wWI.js";import"./create-organization-dialog-XLD1VOzz.js";import"./alert-dialog-DHahvYoS.js";import"./form--mQmddL0.js";import"./label-igQY4yJP.js";import"./input-Cd4ivG-h.js";import"./use-destination-route-ZIZLPtGf.js";import"./use-join-requests-Bxo8Zfup.js";import"./question-004-sINsf4GQ.js";import"./use-decopilot-events-CprSnZyJ.js";import"./decopilot-sse-pool-DS_lNrti.js";import"./task-board-CFWERcPX.js";import"./schema-B7XR7qK3.js";import"./backoff-CrEUbyZT.js";function g(){const t=n.c(3),r=a(),{org:l}=c();S(l.slug);let e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=o.jsx(f,{children:o.jsx("div",{className:"flex flex-1 items-center overflow-hidden rounded-[inherit]",children:o.jsx(x,{value:"p-0",children:o.jsx("div",{className:"flex-1 min-w-0 overflow-hidden h-full",children:o.jsx(h,{})})})})}),t[0]=e):e=t[0];const m=e;if(r){let s;return t[1]===Symbol.for("react.memo_cache_sentinel")?(s=o.jsx("div",{className:"flex flex-col flex-1 bg-background min-h-0 overflow-hidden",children:m}),t[1]=s):s=t[1],s}let i;return t[2]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex-1 min-h-0 p-1.5",children:o.jsx("div",{className:d("flex flex-col h-full min-h-0 bg-background overflow-hidden","card-shadow","rounded-[0.75rem]"),children:m})}),t[2]=i):i=t[2],i}function zt(){const t=n.c(10),r=a();let l;t[0]!==r?(l=r&&o.jsxs(p.Header,{children:[o.jsx(p.LeftColumn,{children:o.jsx(j,{})}),o.jsx(p.CenterSlot,{}),o.jsx(p.RightColumn,{children:o.jsx("span",{})})]}),t[0]=r,t[1]=l):l=t[1];let e;t[2]===Symbol.for("react.memo_cache_sentinel")?(e=o.jsx(g,{}),t[2]=e):e=t[2];let m;t[3]!==l?(m=o.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[l,e]}),t[3]=l,t[4]=m):m=t[4];let i;t[5]!==r?(i=r&&o.jsx(b,{renderSidebar:v}),t[5]=r,t[6]=i):i=t[6];let s;return t[7]!==m||t[8]!==i?(s=o.jsxs(p.Provider,{children:[m,i]}),t[7]=m,t[8]=i,t[9]=s):s=t[9],s}function v(t){const{onClose:r}=t;return o.jsx(u,{onClose:r})}export{zt as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-DpapqlO0.js","assets/index-Dg3MDkI1.js","assets/index-DN9-7YC2.css","assets/Tool02-CojvwMIx.js","assets/CheckCircle-CphNcOq6.js","assets/Settings02-DM7IaDwr.js","assets/use-mcp-client-DOpmujvp.js","assets/constants-DNuUCxmW.js","assets/auth-DZ7suyaW.js","assets/useInfiniteQuery-BaNnDXl3.js","assets/use-infinite-scroll-BXSZ15e5.js","assets/badge-CnnV1Ji7.js","assets/input-Cd4ivG-h.js","assets/dropdown-menu-D4Trqrfg.js","assets/Check-BkGdJKSE.js","assets/ChevronRight-DldrqT_5.js","assets/DotsVertical-DVS5jGYn.js","assets/table-DEasb1oj.js","assets/toggle-group-YLq58Nhp.js","assets/use-view-mode-CtXnIo7C.js","assets/Globe01-Cgjujgie.js","assets/SearchMd-BpLi-D08.js","assets/dialog-uJAshKHm.js","assets/AlertCircle-glTagKnn.js","assets/Download01-Bh_wFZGF.js","assets/Upload01-4OH0nHlo.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-DHahvYoS.js","assets/Trash01-B3CBFwQu.js","assets/label-igQY4yJP.js","assets/select-Dd7AR-Pc.js","assets/ChevronUp-fc1U9Ia7.js","assets/switch-CM6VOqN2.js","assets/textarea-DZn9bcqF.js","assets/ArrowLeft-D3GFMfBi.js","assets/XCircle-DsBDZDDG.js","assets/Link01-B831bX1S.js","assets/safe-image-url-D5z803Ot.js","assets/checkbox-Dm0ArtDP.js","assets/Eye-CkqwKuDn.js","assets/LinkExternal01-BwL4MRbw.js","assets/use-copy-BeEwIY4h.js","assets/Copy01-Bgs4Qu4I.js","assets/Key01-Cjrz8YCe.js","assets/Plus-CKVw1bnc.js","assets/mcp-oauth-DBFGEu2L.js","assets/Play-BeJRFaGI.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as n,d as c,f as m,j as t,h as f,r as l,bl as p}from"./index-Dg3MDkI1.js";import{R as u}from"./require-capability-Bq6f109r.js";import"./access-gate-EAQsEsVC.js";import"./capability-load-error-862E3fES.js";const g=l.lazy(()=>p(()=>import("./registry-layout-DpapqlO0.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46])));function h(){const e=n.c(5),i=c();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=m(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(f,{className:"size-5 text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{h as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u}from"./use-infinite-scroll-BXSZ15e5.js";import{ff as f}from"./index-Dg3MDkI1.js";function s(e,r){return f(e,u,r)}export{s as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as s}from"./use-infinite-scroll-BXSZ15e5.js";import{ff as u,bT as n}from"./index-Dg3MDkI1.js";function f(r,e){return u({...r,enabled:!0,suspense:!0,throwOnError:n},s,e)}export{f as u};
|