decocms 4.329.7 → 4.329.8
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-B02pIqyO.js → AlertCircle-CYzgJoBY.js} +1 -1
- package/dist/client/assets/{AreaChart-DKEbxn8Y.js → AreaChart-DAY89ljM.js} +1 -1
- package/dist/client/assets/{ArrowLeft-DzuSLuVr.js → ArrowLeft-DbqXNp4F.js} +1 -1
- package/dist/client/assets/{ArrowUp-CQ6SET-t.js → ArrowUp-BoD_mzsH.js} +1 -1
- package/dist/client/assets/{Check-CnxYOeJk.js → Check-DTtdlqwY.js} +1 -1
- package/dist/client/assets/{CheckCircle-Bs1i8n8R.js → CheckCircle-COo3JoVL.js} +1 -1
- package/dist/client/assets/{ChevronRight-Bo_7PLYL.js → ChevronRight-CzHqvH7E.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-BWdGiimP.js → ChevronSelectorVertical-DyPLbF1-.js} +1 -1
- package/dist/client/assets/{ChevronUp-CDlju1TC.js → ChevronUp-DW8NdY2L.js} +1 -1
- package/dist/client/assets/{Copy01-D5Ill_kE.js → Copy01-CJm4cfCT.js} +1 -1
- package/dist/client/assets/{CreditCard01-NbxHy6Lv.js → CreditCard01-CjfdxBcA.js} +1 -1
- package/dist/client/assets/{DotsVertical-DRP3CifW.js → DotsVertical-BtJeAJ0k.js} +1 -1
- package/dist/client/assets/{Download01-DoUNzBPU.js → Download01-vFzjwQsB.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-B06vTGLd.js → ErrorBarContext-Dc6l3YK0.js} +1 -1
- package/dist/client/assets/{Eye-COu8umtC.js → Eye-B218eqe6.js} +1 -1
- package/dist/client/assets/{GitBranch01-idBGys5s.js → GitBranch01-BS5U0z6G.js} +1 -1
- package/dist/client/assets/{Globe01-CtD7u0-k.js → Globe01-cK6XwV5G.js} +1 -1
- package/dist/client/assets/{HardDrive-BVnECxVe.js → HardDrive-CuWaM4M_.js} +1 -1
- package/dist/client/assets/{Image01-Cy8ZoIiy.js → Image01-tcHGSkc1.js} +1 -1
- package/dist/client/assets/{Key01-DoBw9G0M.js → Key01-JyLu0I4O.js} +1 -1
- package/dist/client/assets/{Link01-u2EoXuNT.js → Link01-CdgOMLbc.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CBhAp9XW.js → LinkExternal01-CQuu9G7s.js} +1 -1
- package/dist/client/assets/{Monitor01-DmqpK-8S.js → Monitor01-7FxykVXR.js} +1 -1
- package/dist/client/assets/{Package-CcAuJGku.js → Package-DJDm2xPv.js} +1 -1
- package/dist/client/assets/{Palette-BOxVbiJL.js → Palette-C64d0Iko.js} +1 -1
- package/dist/client/assets/{Play-DG2731JJ.js → Play-J7yukJwM.js} +1 -1
- package/dist/client/assets/{Plus-npiI5-7X.js → Plus-CqaGj-ml.js} +1 -1
- package/dist/client/assets/{SearchMd-DM9iwGft.js → SearchMd-Bc3Mg8g_.js} +1 -1
- package/dist/client/assets/{Sector-D81Ps0-O.js → Sector-hJmrO2Op.js} +1 -1
- package/dist/client/assets/{Settings02-C0EhiTe4.js → Settings02-BOeVFu7a.js} +1 -1
- package/dist/client/assets/{Share07-Cp3sAWWN.js → Share07-8fkbsMDg.js} +1 -1
- package/dist/client/assets/{Shield01-B0ob1ipu.js → Shield01-CVfgL569.js} +1 -1
- package/dist/client/assets/{Stars01-BgKhcopx.js → Stars01-jhCTR7KB.js} +1 -1
- package/dist/client/assets/{Sun-e_DnDd3f.js → Sun-CrsI3Qul.js} +1 -1
- package/dist/client/assets/{Tool01-DpeMCocB.js → Tool01-pzhJg-K8.js} +1 -1
- package/dist/client/assets/{Tool02-DMSvrhPC.js → Tool02-BOHPr8jH.js} +1 -1
- package/dist/client/assets/{Trash01-C64jvZUr.js → Trash01-sRqUo9Qp.js} +1 -1
- package/dist/client/assets/{TrendUp01-DBKvZ-DZ.js → TrendUp01-Upn209vz.js} +1 -1
- package/dist/client/assets/{Upload01-CZcQRY37.js → Upload01-D7ygRA1o.js} +1 -1
- package/dist/client/assets/{User01-DvzdeHqd.js → User01-DGyK5bBG.js} +1 -1
- package/dist/client/assets/{UserSquare-jm1EvWHs.js → UserSquare-BTio6asa.js} +1 -1
- package/dist/client/assets/{Users01-HKHLFhfO.js → Users01-D_2eWavO.js} +1 -1
- package/dist/client/assets/{Users03-BTZsMKrW.js → Users03-DcaeZQDc.js} +1 -1
- package/dist/client/assets/{XCircle-DC63K01N.js → XCircle-CWgi5YJD.js} +1 -1
- package/dist/client/assets/{XClose-VJXgkRtY.js → XClose-RbRtPt7h.js} +1 -1
- package/dist/client/assets/{Zap-Buyt_ZmJ.js → Zap-BLJmtEf5.js} +1 -1
- package/dist/client/assets/{ZoomOut-Du-2I-dz.js → ZoomOut-DUEecXAV.js} +1 -1
- package/dist/client/assets/{access-gate-CDET83Ra.js → access-gate-BWlhuXYE.js} +1 -1
- package/dist/client/assets/{agent-icon-Cm-rraMc.js → agent-icon-DMaKG5lr.js} +1 -1
- package/dist/client/assets/{agents-list-B5SZzu6A.js → agents-list-CRt1ehIK.js} +1 -1
- package/dist/client/assets/{ai-providers-CHx-06O5.js → ai-providers-BtjXKwnq.js} +1 -1
- package/dist/client/assets/{alert-BDwew5st.js → alert-DcVkxaWg.js} +1 -1
- package/dist/client/assets/{alert-dialog-EueylpK5.js → alert-dialog-B0Wnos4x.js} +1 -1
- package/dist/client/assets/{analytics-tab-ryTT4iyx.js → analytics-tab-CG2_5LPK.js} +1 -1
- package/dist/client/assets/api-keys-3svZys7S.js +1 -0
- package/dist/client/assets/{api-keys-7J7aATeq.js → api-keys-BbHLdUSi.js} +1 -1
- package/dist/client/assets/{app-editor-Lpb2KUNV.js → app-editor-H_jf6ZSO.js} +1 -1
- package/dist/client/assets/{auth-BfPf7zhg.js → auth-DT85eno9.js} +1 -1
- package/dist/client/assets/{auth-catchall-BMHDjmYl.js → auth-catchall-BTZcD6Ld.js} +1 -1
- package/dist/client/assets/{auth-entry-CGeKty09.js → auth-entry-CmR2PPN5.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BtoAQGpk.js → auth-split-layout-BVRJV6zs.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-hh7nuAWR.js → authenticate-and-persist-oauth-DiW6CIxv.js} +1 -1
- package/dist/client/assets/{automation-list-row-B7bEWOhz.js → automation-list-row-6pOr0T1Y.js} +1 -1
- package/dist/client/assets/{automation-runs-CkSYrEGR.js → automation-runs-DIUeXIwb.js} +49 -49
- package/dist/client/assets/automations-DslAi47a.js +1 -0
- package/dist/client/assets/{avatar-DVuZ2F_T.js → avatar-DcREOm3L.js} +1 -1
- package/dist/client/assets/{badge-FcNiwbMm.js → badge-CIvTSfE9.js} +1 -1
- package/dist/client/assets/{block-document-CHDLnJJB.js → block-document-ByUVXxfb.js} +1 -1
- package/dist/client/assets/{breadcrumb-CWoWChjJ.js → breadcrumb-DxzlsCMh.js} +1 -1
- package/dist/client/assets/{buckets-C8qQEl1X.js → buckets-C-g-jUwK.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DpDJKk2S.js → bulk-category-panel-Du8CckpT.js} +1 -1
- package/dist/client/assets/{capability-load-error-DNqhm16P.js → capability-load-error-BY9CwF2C.js} +1 -1
- package/dist/client/assets/{cards-Ta4bCObM.js → cards-Cjaru-PI.js} +1 -1
- package/dist/client/assets/{category-editor-C96Lbqi0.js → category-editor-DQYrxHNB.js} +1 -1
- package/dist/client/assets/{cdn-tab-BLY6nu0I.js → cdn-tab-By_GCpOq.js} +1 -1
- package/dist/client/assets/{chart-3ItyUqrn.js → chart-BGxiKDVj.js} +1 -1
- package/dist/client/assets/{chat-context-CALwiBF_.js → chat-context-Bn5sHwf1.js} +1 -1
- package/dist/client/assets/{checkbox-BmYwx8kR.js → checkbox-Rut1nZw7.js} +1 -1
- package/dist/client/assets/{choose-editor-57QsZhYS.js → choose-editor-ND0-BV8h.js} +1 -1
- package/dist/client/assets/{cli-auth-success-mUvYAJQJ.js → cli-auth-success-DpX_C5l9.js} +1 -1
- package/dist/client/assets/{client-icons-CxvuXLIW.js → client-icons-ButLhVRb.js} +1 -1
- package/dist/client/assets/{collection-detail-DlNIkUmi.js → collection-detail-CYJs4kAG.js} +1 -1
- package/dist/client/assets/{collection-display-button-DYWols_3.js → collection-display-button-nN-lUfYD.js} +1 -1
- package/dist/client/assets/{collection-search-BvGAgDld.js → collection-search-BL14Irul.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-dVk84KQ8.js → collection-table-wrapper-CIYTBYGm.js} +1 -1
- package/dist/client/assets/{collection-tabs-Cd4Vv0EE.js → collection-tabs-DVTsrZPo.js} +1 -1
- package/dist/client/assets/{command-BYns7CwK.js → command-D5rI_pln.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-8FWzFt9V.js → commerce-onboarding-B5SaVRRE.js} +1 -1
- package/dist/client/assets/{connect-CQyw1evj.js → connect-BA3sxO4p.js} +1 -1
- package/dist/client/assets/{connect-layout-U7Ps2Adr.js → connect-layout-C5Hqqfnf.js} +1 -1
- package/dist/client/assets/{connection-CXkee5u6.js → connection-5_SGsrJ3.js} +1 -1
- package/dist/client/assets/{connection-card-CWUJLExI.js → connection-card-CEJ-3Q6u.js} +1 -1
- package/dist/client/assets/{connection-detail-BSvpvNFK.js → connection-detail-C29oiyCC.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-D7wCXBEQ.js → connection-form-helpers-DNcNmxy2.js} +1 -1
- package/dist/client/assets/{connections-CPI7uE_z.js → connections-BeNTX4my.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-DA4SxHbD.js → create-organization-dialog-D0uQn9pr.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BDzoef2l.js → decopilot-sse-pool-Czf55XZy.js} +1 -1
- package/dist/client/assets/{dialog-C9fBgi3G.js → dialog-0Gin8X8J.js} +1 -1
- package/dist/client/assets/{domain-settings-DxjLWoQG.js → domain-settings-BuPT2UUR.js} +1 -1
- package/dist/client/assets/{download-app-dialog-B6fQdqDO.js → download-app-dialog-yVzVS3rF.js} +1 -1
- package/dist/client/assets/{drawer-OLnwjI2K.js → drawer-CUXFxduO.js} +1 -1
- package/dist/client/assets/{dropdown-menu-tC5c5wq-.js → dropdown-menu-DeCqeum7.js} +1 -1
- package/dist/client/assets/{e2e-tab-CqS9P7Hc.js → e2e-tab-Cn7KUYQA.js} +1 -1
- package/dist/client/assets/{editor-BjHf7-wi.js → editor-CMBiwHdj.js} +1 -1
- package/dist/client/assets/{empty-state-S-1xJrE6.js → empty-state-BMKkn0m1.js} +1 -1
- package/dist/client/assets/{empty-state-DgedPbF9.js → empty-state-CY8_Cebe.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CDeabBWK.js → extract-connection-data-B5gRedj8.js} +1 -1
- package/dist/client/assets/{file-explorer-DJnvxauy.js → file-explorer-D_HrILPb.js} +1 -1
- package/dist/client/assets/{file-type-icon-CzKQjLvK.js → file-type-icon-DLapffwQ.js} +1 -1
- package/dist/client/assets/{folder-icon-CA44zIJR.js → folder-icon-ivTRZQTW.js} +1 -1
- package/dist/client/assets/{form-BXpGp03G.js → form-C74AeBpT.js} +1 -1
- package/dist/client/assets/{general-bt8cU3dV.js → general-aFZP0hTu.js} +1 -1
- package/dist/client/assets/{github-repo-picker-Bo27g0p4.js → github-repo-picker-BjPuSYO7.js} +1 -1
- package/dist/client/assets/{hooks-CV5SIncY.js → hooks-Bf7O-39q.js} +1 -1
- package/dist/client/assets/{hosting-tab-CsMIP4FI.js → hosting-tab-B5mhtZwB.js} +1 -1
- package/dist/client/assets/{index-0aQAAJf0.js → index-2Csvi9Ws.js} +1 -1
- package/dist/client/assets/{index-CrPwkVjC.js → index-But2h6S5.js} +1 -1
- package/dist/client/assets/{index-B0rGGILq.js → index-C2cblsfq.js} +1 -1
- package/dist/client/assets/{index-Dr2i8l8p.js → index-COScVnc4.js} +1 -1
- package/dist/client/assets/{index-BraqwIq2.js → index-D1rygici.js} +1 -1
- package/dist/client/assets/{index-BoFDLZ6p.js → index-DPHTbKBf.js} +6 -6
- package/dist/client/assets/{index-CNfEIUn0.js → index-ODKhlf52.js} +2 -2
- package/dist/client/assets/{index-CReyG0_9.js → index-oIBCiETt.js} +1 -1
- package/dist/client/assets/{index-BqzhWoLb.js → index-pC2bMkiH.js} +1 -1
- package/dist/client/assets/{index-redirect-CXMszyV9.js → index-redirect-C-DOsnBP.js} +1 -1
- package/dist/client/assets/{index-D-HXwBw8.js → index-tsFJqqt0.js} +1 -1
- package/dist/client/assets/{infra-billing-B9EzHEgn.js → infra-billing-Cf5Mc_mR.js} +1 -1
- package/dist/client/assets/{input-CxZ-2GPj.js → input-CiTQTJk4.js} +1 -1
- package/dist/client/assets/{integration-icon-BRZ0l9mu.js → integration-icon-Kez26Bfu.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-DT1qyQ4y.js → invite-member-dialog-CTgMfbpu.js} +1 -1
- package/dist/client/assets/{label-BBk0UNMj.js → label-D5NpFiWm.js} +1 -1
- package/dist/client/assets/{layout-Bzk-ee8j.js → layout-DQMqmKJS.js} +1 -1
- package/dist/client/assets/{login-Dukc_kdh.js → login-DRErB2mB.js} +1 -1
- package/dist/client/assets/{markdown-CBbWAQAJ.js → markdown-ChK7BSCx.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BTxNcy48.js → mcp-oauth-C6LUe73x.js} +1 -1
- package/dist/client/assets/{members-C8NuwGvm.js → members-DG5bct9N.js} +1 -1
- package/dist/client/assets/{monaco-editor-DazsPMf1.js → monaco-editor-DiwjqzwB.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CF0wwnO8.js → monitoring-stats-row-C5tcYCvm.js} +1 -1
- package/dist/client/assets/{multi-select-D8btj7Ad.js → multi-select-BO9dCDUw.js} +1 -1
- package/dist/client/assets/{oauth-callback-TXOLa-g7.js → oauth-callback-0MJlUH-S.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-D7uzBtqi.js → oauth-callback-ai-provider-DSefmt9u.js} +1 -1
- package/dist/client/assets/{onboarding-Dcdgez7W.js → onboarding-BLTEUpJB.js} +1 -1
- package/dist/client/assets/org-layout-BPW6S66q.js +1 -0
- package/dist/client/assets/{organization-choice-lamU-teH.js → organization-choice-dtiSw3mB.js} +1 -1
- package/dist/client/assets/{orgs-D3W0G3Lo.js → orgs-BBdc_gdn.js} +1 -1
- package/dist/client/assets/{page-seo-form-Ctlc9vTL.js → page-seo-form-CzuPQI7W.js} +1 -1
- package/dist/client/assets/{popover-CxFVXm-T.js → popover-B6ROvgSp.js} +1 -1
- package/dist/client/assets/{post-calendar-vz5_mjGB.js → post-calendar-MJw63X6E.js} +1 -1
- package/dist/client/assets/{post-editor-BIYWa81Q.js → post-editor-nRZKH-yS.js} +1 -1
- package/dist/client/assets/{primitives-wsknTEcb.js → primitives-BS0YBv3z.js} +1 -1
- package/dist/client/assets/{profile-CCYT_2sA.js → profile-Bgd1J_38.js} +1 -1
- package/dist/client/assets/{project-app-view-CLQMFT-S.js → project-app-view-BWJaeVo5.js} +1 -1
- package/dist/client/assets/{project-icon-Da5qBAn7.js → project-icon-Bvj4Gwi2.js} +1 -1
- package/dist/client/assets/{prompts-zFhQIBym.js → prompts-B9luRw0U.js} +1 -1
- package/dist/client/assets/record-editor-D6sziHec.js +1 -0
- package/dist/client/assets/{redirect-editor-Dnqqv4DM.js → redirect-editor-C1qkZok5.js} +1 -1
- package/dist/client/assets/registry-SbozeoJx.js +2 -0
- package/dist/client/assets/{registry-layout-DHuWNN39.js → registry-layout-m9ny3Ck1.js} +1 -1
- package/dist/client/assets/{reports-BtLy2yaF.js → reports-DrKm2A3y.js} +1 -1
- package/dist/client/assets/{require-capability-DYq0fdEP.js → require-capability-CJzBqa0H.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BH79UCBF.js → required-auth-layout-46OxjUc_.js} +1 -1
- package/dist/client/assets/{reset-password-CtDPHNXj.js → reset-password-BYWuu2XK.js} +1 -1
- package/dist/client/assets/{review-settings-BB2nSALo.js → review-settings-CQvsPguG.js} +1 -1
- package/dist/client/assets/{roles-CXSZQVw3.js → roles-Cj-x86Nu.js} +1 -1
- package/dist/client/assets/{schema-DO9s-3_3.js → schema-R1g-EDIW.js} +1 -1
- package/dist/client/assets/{scroll-area-Bga4xYk7.js → scroll-area-CyEB6Rif.js} +1 -1
- package/dist/client/assets/{search-input-CNFZM5Ki.js → search-input-C-9S8K7N.js} +1 -1
- package/dist/client/assets/{secrets-BUpBecaC.js → secrets-B5p1nQc3.js} +1 -1
- package/dist/client/assets/{sections-editor-laKQjgs_.js → sections-editor-D1XxplAs.js} +1 -1
- package/dist/client/assets/{select-D5c8Otgi.js → select-CCKtBWNQ.js} +1 -1
- package/dist/client/assets/{select-model-B4IX9QyY.js → select-model-BCM4tHqQ.js} +1 -1
- package/dist/client/assets/{self-tool-result-PbyB4K2F.js → self-tool-result-CB7a4d84.js} +1 -1
- package/dist/client/assets/{seo-editor-C-OX56j8.js → seo-editor-B3J5DDhZ.js} +1 -1
- package/dist/client/assets/settings-layout-By8rC2bm.js +1 -0
- package/dist/client/assets/{settings-sidebar-BedGL_Ku.js → settings-sidebar-oq61_zef.js} +1 -1
- package/dist/client/assets/{shell-controls-DT_IXnne.js → shell-controls-DQmP8qqR.js} +1 -1
- package/dist/client/assets/{shell-layout-zuPHJJxr.js → shell-layout-BS92F-1s.js} +1 -1
- package/dist/client/assets/{skill-preview-Cds7l0IB.js → skill-preview-CYNoZHVT.js} +1 -1
- package/dist/client/assets/{skills-p_SYs6Ch.js → skills-BqlqfSub.js} +1 -1
- package/dist/client/assets/{sso-JyaPp7fH.js → sso-BhHRmReI.js} +1 -1
- package/dist/client/assets/store-registry-CRB-WnCk.js +2 -0
- package/dist/client/assets/{store-Bgn_Isxj.js → store-sl44HVx4.js} +1 -1
- package/dist/client/assets/{switch-C3EYj7hN.js → switch-BSSC0yiV.js} +1 -1
- package/dist/client/assets/{synced-repos-BmK-DcLv.js → synced-repos-DlYcoUmF.js} +1 -1
- package/dist/client/assets/{table-DEic8MLd.js → table-C7uS2-l8.js} +1 -1
- package/dist/client/assets/{tabs-iA_HLM1O.js → tabs-DUurzPXg.js} +1 -1
- package/dist/client/assets/{task-board-Cw4I7XsI.js → task-board-BvGOyekg.js} +1 -1
- package/dist/client/assets/{task-route-C2MKBcLF.js → task-route-CmxVMFRO.js} +1 -1
- package/dist/client/assets/{tasks-Dt9zTeRV.js → tasks-CELgKnJC.js} +1 -1
- package/dist/client/assets/{textarea-BsDleKsG.js → textarea-BCk4dtJd.js} +1 -1
- package/dist/client/assets/{toggle-group-CTRGHvcL.js → toggle-group-DUxN50gx.js} +1 -1
- package/dist/client/assets/{toolbar-RiMn7tp7.js → toolbar-CpbKvwTx.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-BJhOiNGi.js → toolbar-icon-button-TSDDGjeV.js} +1 -1
- package/dist/client/assets/{track-DeADh2iG.js → track-CI8Z9Nn_.js} +1 -1
- package/dist/client/assets/{types-BXQK2N0O.js → types-D6t6wY6o.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DfC2UWvW.js → use-ai-providers-DId9f_Qw.js} +1 -1
- package/dist/client/assets/{use-automations-4iFK5nkE.js → use-automations-2ubkGlfv.js} +1 -1
- package/dist/client/assets/{use-autosave-B8HtQ_kf.js → use-autosave-Mr0lCg24.js} +1 -1
- package/dist/client/assets/{use-connection-DNt4swpy.js → use-connection-B9U-_dTx.js} +1 -1
- package/dist/client/assets/{use-copy-BXRFLn2M.js → use-copy-BYJ7CaVl.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-D6-1K6Y8.js → use-create-virtual-mcp-DST-jZww.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BzJT5pgf.js → use-debounced-autosave-C9AvD0on.js} +1 -1
- package/dist/client/assets/{use-debounced-value-Df4IN6g1.js → use-debounced-value-M3lA0gS1.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-jW8Ieour.js → use-decopilot-events-xXOXhSly.js} +1 -1
- package/dist/client/assets/{use-delete-connection-ByExgudV.js → use-delete-connection-DTstMy3G.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DPPYgxrx.js → use-deployment-admin-AaReR26C.js} +1 -1
- package/dist/client/assets/{use-destination-route-2_Kd2h4X.js → use-destination-route-BeQrBWgu.js} +1 -1
- package/dist/client/assets/{use-file-configs-CNLxYc3F.js → use-file-configs-C_EM4mvl.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Br6HoOld.js → use-infinite-scroll-CDUEa5S7.js} +1 -1
- package/dist/client/assets/{use-join-requests-CNFJW1O4.js → use-join-requests-BuCWhDtK.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-B8KMbW6d.js → use-mcp-auth-status-DSpPtB7I.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CgA8PWhj.js → use-mcp-client-qAu1HRUD.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CG2uZJ9H.js → use-mcp-prompts-BAjC4pC7.js} +1 -1
- package/dist/client/assets/{use-members-4CiFzvQG.js → use-members-BaNaE65J.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BhLZN4vX.js → use-navigate-to-agent-Cc5iyUAP.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-B2H7C6Ln.js → use-org-auth-client-5qGP3Zwp.js} +1 -1
- package/dist/client/assets/{use-org-sso-CYEN5nc1.js → use-org-sso-aiWQ_yZD.js} +1 -1
- package/dist/client/assets/{use-organization-roles-du03Yb4v.js → use-organization-roles-NtCfioQO.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BRf1OrEm.js → use-organization-settings-BAq06qOp.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-CypROp-b.js → use-panel-navigate-D0FLl0De.js} +1 -1
- package/dist/client/assets/{use-registry-connections-C524bvTW.js → use-registry-connections-CPuanPK4.js} +1 -1
- package/dist/client/assets/{use-secrets-DJHtvR4D.js → use-secrets-CY_AzLwb.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-DLw35Lgq.js → use-section-preview-base-C6o3t9h3.js} +1 -1
- package/dist/client/assets/{use-status-sounds-v0k0tR6A.js → use-status-sounds-YxnY0Jfq.js} +1 -1
- package/dist/client/assets/{use-tags-gMOyjsIi.js → use-tags-simcuqdM.js} +1 -1
- package/dist/client/assets/{use-view-mode-CR8Vsk8K.js → use-view-mode-R_1UfMb3.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-XPauNnS5.js → use-virtual-mcp-Dx_0SK12.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Ce5rZxD_.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-T_0Ug6bp.js +1 -0
- package/dist/client/assets/{users-D3_VWp5E.js → users-sBtDdUBj.js} +1 -1
- package/dist/client/assets/{variant-calendar-CLTs6LWA.js → variant-calendar-Dy4t2mk7.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-VRf3IsoS.js → view-mode-toggle-H9lV8AEB.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-BvHSvKut.js +0 -1
- package/dist/client/assets/automations-Dej3hvWY.js +0 -1
- package/dist/client/assets/org-layout-DGy9Vle2.js +0 -1
- package/dist/client/assets/record-editor-bcL0jXd2.js +0 -1
- package/dist/client/assets/registry-37zG_yfw.js +0 -2
- package/dist/client/assets/settings-layout-CVdat1As.js +0 -1
- package/dist/client/assets/store-registry-D9Jao96C.js +0 -2
- package/dist/client/assets/useInfiniteQuery-D4DO3KqU.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-Ccvsai-C.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1545,7 +1545,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var pn1=L(()=>{Eb()});f
|
|
|
1545
1545
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await dy`
|
|
1546
1546
|
DELETE FROM kysely_migration WHERE name = ${Q}
|
|
1547
1547
|
`.execute($)}}async function as1($){await V04($),await k04($);let Z=new os1({db:$,provider:{getMigrations:()=>Promise.resolve(fn0)}}),{error:Q,results:X}=await Z.migrateToLatest(),Y=0;if(X?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q;return Y}async function S04($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await Am0();let G=Q??c$(),J=async()=>{if(!Z&&!Q)await NO(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await as1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function C04(){let $=c$(),Z=new os1({db:$.db,provider:{getMigrations:()=>Promise.resolve(fn0)}}),{error:Q,results:X}=await Z.migrateDown();if(X?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var es1=L(()=>{ts1();Tm0();WQ()});async function c70($){let Z={...process.env},Q=v80($,Z);console.log(tE1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?Ro1(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (iZ0(),dZ0)),{outputs:G,services:J}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (Tm0(),qo1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (WQ(),lt1)),{migrateToLatest:F}=await Promise.resolve().then(() => (es1(),ss1)),U=H(G.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{}};return nn1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var bn0=L(()=>{Eb();Io1();j$()});var Xe1={};s(Xe1,{updateService:()=>Yj,subscribeCliState:()=>hn0,setTuiConsoleIntercepted:()=>l70,setServerUrl:()=>yp,setMigrationsDone:()=>bp,setDevMode:()=>v04,resetCliStateForTests:()=>_04,isTuiConsoleIntercepted:()=>m70,getCliState:()=>gn0,addLogEntry:()=>jO});function $e1(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Ze1(){return{services:$e1(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function _04(){oX=Ze1()}function fp(){for(let $ of yn0)$()}function gn0(){return oX}function hn0($){return yn0.add($),()=>yn0.delete($)}function Yj($){oX={...oX,services:oX.services.map((Z)=>Z.name===$.name?$:Z)},fp()}function bp(){oX={...oX,migrationsStatus:"done"},fp()}function yp($){oX={...oX,serverUrl:$},fp()}function jO($){let Z=[...oX.logs,$];oX={...oX,logs:Z.length>500?Z.slice(-500):Z},fp()}function v04(){oX={...oX,services:[...$e1(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},fp()}function l70($){Qe1=$}function m70(){return Qe1}var oX,yn0,Qe1=!1;var Gj=L(()=>{oX=Ze1();yn0=new Set});import{createServer as Ye1}from"net";function x04($){return new Promise((Z)=>{let Q=Ye1();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function gp($){if(await x04($))return $;let Z=await new Promise((Q,X)=>{let Y=Ye1();Y.once("error",X),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>Q(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var un0=()=>{};var ln0={};s(ln0,{startDevServer:()=>b04,pipeToLogStore:()=>cn0});import{join as f04}from"path";function cn0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let G=X.split(`
|
|
1548
|
-
`);X=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;jO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;X+=Q.decode(J,{stream:!0}),Y()}}catch{}if(X.trim()){let G=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(G)jO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function b04($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=X?await gp(Number(Y)+1):await gp(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await c70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)Yj({name:D.name,status:"ready",port:D.port});bp();let F=f04(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)cn0(N.stdout),cn0(N.stderr);yp(G),Yj({name:"Vite",status:"ready",port:Number(Y)}),Yj({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (iZ0(),dZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var mn0=L(()=>{bn0();Gj();un0()});var d70;var dn0=L(()=>{d70={name:"decocms",version:"4.329.7",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"}}});import{Box as g04,Text as Ge1}from"ink";import{jsx as h04,jsxs as Je1}from"react/jsx-runtime";function Ke1({version:$}){return Je1(g04,{flexDirection:"column",marginTop:1,children:[O70.map((Z,Q)=>h04(Ge1,{color:L70[Q],children:Z},Q)),Je1(Ge1,{dimColor:!0,children:[" v",$]})]})}var We1=L(()=>{Tp()});import{Box as Jj,Text as zO}from"ink";import{Spinner as u04}from"@inkjs/ui";import{jsx as UG,jsxs as iy}from"react/jsx-runtime";function He1({status:$}){if($==="pending")return UG(u04,{label:""});return UG(zO,{color:"green",children:"\u2713"})}function c04($){return`${$.name}: ${$.port||"...."}`}function Fe1({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return iy(Jj,{flexDirection:"column",paddingBottom:1,children:[UG(Ke1,{version:d70.version}),UG(Jj,{marginBottom:1,children:UG(zO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Jj,{children:iy(zO,{dimColor:!0,children:["Home: ",Q]})}),iy(Jj,{gap:2,children:[$.map((Y)=>iy(Jj,{gap:1,children:[UG(zO,{children:c04(Y)}),UG(He1,{status:Y.status})]},Y.name)),iy(Jj,{gap:1,children:[UG(zO,{children:"Migrations"}),UG(He1,{status:Z})]})]}),UG(Jj,{children:X?iy(zO,{children:["Open in browser: ",UG(zO,{color:"cyan",children:X})]}):UG(zO,{dimColor:!0,children:"Starting..."})})]})}var Ue1=L(()=>{dn0();We1()});import{Box as l04,Text as hp}from"ink";import{jsx as in0,jsxs as pn0}from"react/jsx-runtime";function m04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ne1({logs:$}){return in0(l04,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return in0(hp,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return pn0(hp,{children:[pn0(hp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),in0(hp,{color:m04(Z.status),children:Z.status}),pn0(hp,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var Be1=()=>{};var nn0={};s(nn0,{App:()=>p04});import{Box as d04}from"ink";import{useSyncExternalStore as i04}from"react";import{jsx as Oe1,jsxs as n04}from"react/jsx-runtime";function p04({home:$}){let Z=i04(hn0,gn0);return n04(d04,{flexDirection:"column",children:[Oe1(Fe1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Oe1(Ne1,{logs:Z.logs})]})}var tn0=L(()=>{Ue1();Be1();Gj()});var a3="thread-gate",RU="decopilot-hosted-harness",IU="decopilot-hosted-harness-sandboxed",MJ="automations",PO="background-tools",Kj="task-board-github-reads";var Le1="11";function De1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Le1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var we1=()=>{};import t04 from"pg";async function je1($,Z){let{databaseUrl:Q,lockTimeoutMs:X=o04}=$,Y=$.log??((W)=>console.log(W)),G=new t04.Client({connectionString:Q});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[Ee1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await F$(r04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[Ee1.toString()])}catch{}await G.end().catch(()=>{})}}var Ee1=8314027461559302n,o04=600000,r04=500;var ze1=L(()=>{t8()});function a04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function on0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function Pe1(){let $=a04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:on0($,"--cpu-prof-dir")??process.cwd(),name:on0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(on0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ae1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=$j();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),i70=setInterval(()=>void Z().catch(()=>{}),$),i70.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(i70)clearInterval(i70)}}var i70;var Te1=()=>{};import*as s04 from"bun:jsc";function Re1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{e04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-X;X=G+Z;let K=[];try{K=$14()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var e04,$14;var Ie1=L(()=>{({startSamplingProfiler:e04,samplingProfilerStackTraces:$14}=s04)});function qe1(){Pe1();let $=[Ae1(),xt1(),Re1()];return()=>{for(let Z of $)Z()}}var Me1=L(()=>{Bm0();Te1();Ie1()});var Wj=v((Ve1)=>{Object.defineProperty(Ve1,"__esModule",{value:!0});Ve1.RepublishHeaders=Ve1.DirectMsgHeaders=Ve1.JsHeaders=Ve1.AdvisoryKind=void 0;Ve1.isOrderedPushConsumerOptions=Z14;Ve1.isPullConsumer=Q14;Ve1.isPushConsumer=X14;Ve1.isBoundPushConsumerOptions=Y14;function Z14($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function Q14($){return $.isPullConsumer()}function X14($){return $.isPushConsumer()}function Y14($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ve1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ve1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ve1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ve1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Se1)=>{Object.defineProperty(Se1,"__esModule",{value:!0});Se1.TD=Se1.TE=Se1.Empty=void 0;Se1.encode=B14;Se1.decode=O14;Se1.Empty=new Uint8Array(0);Se1.TE=new TextEncoder;Se1.TD=new TextDecoder;function N14(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function B14(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(Se1.TE.encode($[Q]));if(Z.length===0)return Se1.Empty;if(Z.length===1)return Z[0];return N14(...Z)}function O14($){if(!$||$.length===0)return"";return Se1.TD.decode($)}});var BG=v((ve1)=>{Object.defineProperty(ve1,"__esModule",{value:!0});ve1.errors=ve1.PermissionViolationError=ve1.NoRespondersError=ve1.TimeoutError=ve1.RequestError=ve1.ProtocolError=ve1.ConnectionError=ve1.DrainingConnectionError=ve1.ClosedConnectionError=ve1.AuthorizationError=ve1.UserAuthenticationExpiredError=ve1.InvalidOperationError=ve1.InvalidArgumentError=ve1.InvalidSubjectError=void 0;class an0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ve1.InvalidSubjectError=an0;class p70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new p70(`${$} ${Z}`,Q)}}ve1.InvalidArgumentError=p70;class sn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ve1.InvalidOperationError=sn0;class n70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new n70($);return null}}ve1.UserAuthenticationExpiredError=n70;class t70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new t70($);return null}}ve1.AuthorizationError=t70;class en0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ve1.ClosedConnectionError=en0;class $t0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ve1.DrainingConnectionError=$t0;class Zt0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ve1.ConnectionError=Zt0;class Qt0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ve1.ProtocolError=Qt0;class Xt0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof o70}}ve1.RequestError=Xt0;class Yt0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ve1.TimeoutError=Yt0;class o70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ve1.NoRespondersError=o70;class r70 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(Q=G[1].toLowerCase(),X=G[2],Q==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new r70($,Q,X,Y)}}ve1.PermissionViolationError=r70;ve1.errors={AuthorizationError:t70,ClosedConnectionError:en0,ConnectionError:Zt0,DrainingConnectionError:$t0,InvalidArgumentError:p70,InvalidOperationError:sn0,InvalidSubjectError:an0,NoRespondersError:o70,PermissionViolationError:r70,ProtocolError:Qt0,RequestError:Xt0,TimeoutError:Yt0,UserAuthenticationExpiredError:n70}});var s3=v((ge1)=>{Object.defineProperty(ge1,"__esModule",{value:!0});ge1.SimpleMutex=ge1.Perf=void 0;ge1.extend=C14;ge1.render=_14;ge1.timeout=v14;ge1.delay=x14;ge1.deadline=f14;ge1.deferred=Jt0;ge1.debugDeferred=b14;ge1.shuffle=y14;ge1.collect=g14;ge1.jitter=ye1;ge1.backoff=h14;ge1.nanos=u14;ge1.millis=c14;ge1.randomToken=d14;var S14=NG(),Gt0=BG();function C14($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function _14($){return S14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function v14($,Z=!0){let Q=Z?new Gt0.TimeoutError:null,X,Y,G=new Promise((J,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Gt0.TimeoutError);else K(Q)},$)});return Object.assign(G,X)}function x14($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function f14($,Z=1000){let Q=Jt0(),X=setTimeout(()=>{Q.reject(new Gt0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function Jt0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function b14(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function y14($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function g14($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class fe1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}ge1.Perf=fe1;class be1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Jt0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ge1.SimpleMutex=be1;function ye1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function h14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return ye1(Q>Z?$[Z]:$[Q])}}}function u14($){return $*1e6}function c14($){return Math.floor($/1e6)}var l14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",qU=new Uint8Array(62);for(let $=0;$<62;$++)qU[$]=l14.charCodeAt($);var m14=218340105584896;function d14(){let $=Math.floor(Math.random()*m14),Z=$%62,Q=qU[Z];$=($-Z)/62,Z=$%62;let X=qU[Z];$=($-Z)/62,Z=$%62;let Y=qU[Z];$=($-Z)/62,Z=$%62;let G=qU[Z];$=($-Z)/62,Z=$%62;let J=qU[Z];$=($-Z)/62,Z=$%62;let K=qU[Z];$=($-Z)/62,Z=$%62;let W=qU[Z];$=($-Z)/62;let H=qU[$];return String.fromCharCode(Q,X,Y,G,J,K,W,H)}});var pe1=v((de1)=>{Object.defineProperty(de1,"__esModule",{value:!0});de1.nuid=de1.NuidImpl=void 0;var J$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",AO=62,s70=12,le1=10,ue1=33,K$4=333,ce1=s70+le1,Wt0=new Uint8Array(AO);for(let $=0;$<AO;$++)Wt0[$]=J$4.charCodeAt($);var a70=4294967296,me1=BigInt(AO)**BigInt(le1),up=Number(me1/(1n<<32n)),Kt0=Number(me1%(1n<<32n));function W$4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function H$4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else W$4($)}class Ht0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ce1),this.cbuf=new Uint8Array(s70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(up+1)),this.seqLo=Math.floor(Math.random()*a70);while($++<8&&this.seqHi===up&&this.seqLo>=Kt0);if(this.seqHi===up&&this.seqLo>=Kt0)this.seqLo=0;this.inc=Math.random()*(K$4-ue1)+ue1|0}setPre(){H$4(this.cbuf);for(let $=0;$<s70;$++)this.buf[$]=Wt0[this.cbuf[$]%AO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=ce1-1;Q>=s70;Q--){let X=Math.floor($/AO),G=($-X*AO)*a70+Z,J=Math.floor(G/AO),K=G-J*AO;this.buf[Q]=Wt0[K],$=X,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=a70)this.seqLo-=a70,this.seqHi+=1;if(this.seqHi>up||this.seqHi===up&&this.seqLo>=Kt0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}de1.NuidImpl=Ht0;de1.nuid=new Ht0});var re1=v((te1)=>{Object.defineProperty(te1,"__esModule",{value:!0});te1.nuid=te1.Nuid=void 0;var ne1=pe1();te1.Nuid=ne1.NuidImpl;te1.nuid=ne1.nuid});var $Q0=v((e70)=>{Object.defineProperty(e70,"__esModule",{value:!0});e70.nuid=e70.Nuid=void 0;var ae1=re1();Object.defineProperty(e70,"Nuid",{enumerable:!0,get:function(){return ae1.Nuid}});Object.defineProperty(e70,"nuid",{enumerable:!0,get:function(){return ae1.nuid}})});var TO=v((se1)=>{Object.defineProperty(se1,"__esModule",{value:!0});se1.DEFAULT_HOST=se1.DEFAULT_PORT=se1.Match=void 0;se1.syncIterator=L$4;se1.createInbox=D$4;var B$4=$Q0(),O$4=BG();se1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function L$4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function D$4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw O$4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${B$4.nuid.next()}`}se1.DEFAULT_PORT=4222;se1.DEFAULT_HOST="127.0.0.1"});var cp=v((Q0$)=>{Object.defineProperty(Q0$,"__esModule",{value:!0});Q0$.DataBuffer=void 0;var $0$=NG();class Z0${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return $0$.TE.encode($)}static toAscii($){return $0$.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Q0$.DataBuffer=Z0$});var Hj=v((G0$)=>{Object.defineProperty(G0$,"__esModule",{value:!0});G0$.LF=G0$.CR=G0$.CRLF=G0$.CR_LF_LEN=G0$.CR_LF=void 0;G0$.setTransportFactory=R$4;G0$.defaultPort=I$4;G0$.getUrlParseFn=q$4;G0$.newTransport=M$4;G0$.getResolveFn=V$4;G0$.protoLen=Y0$;G0$.extractProtocolMessage=k$4;var P$4=NG(),A$4=TO(),T$4=cp(),OG;function R$4($){OG=$}function I$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:A$4.DEFAULT_PORT}function q$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function M$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function V$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}G0$.CR_LF=`\r
|
|
1548
|
+
`);X=G.pop()??"";for(let J of G){let K=Bun.stripANSI(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;jO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:G,value:J}=await Z.read();if(G)break;X+=Q.decode(J,{stream:!0}),Y()}}catch{}if(X.trim()){let G=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(G)jO({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function b04($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=X?await gp(Number(Y)+1):await gp(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await c70({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let D of W)Yj({name:D.name,status:"ready",port:D.port});bp();let F=f04(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)cn0(N.stdout),cn0(N.stderr);yp(G),Yj({name:"Vite",status:"ready",port:Number(Y)}),Yj({name:"API",status:"ready",port:Number(K.port)});let O=async(D)=>{if(N.kill(D),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (iZ0(),dZ0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var mn0=L(()=>{bn0();Gj();un0()});var d70;var dn0=L(()=>{d70={name:"decocms",version:"4.329.8",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"}}});import{Box as g04,Text as Ge1}from"ink";import{jsx as h04,jsxs as Je1}from"react/jsx-runtime";function Ke1({version:$}){return Je1(g04,{flexDirection:"column",marginTop:1,children:[O70.map((Z,Q)=>h04(Ge1,{color:L70[Q],children:Z},Q)),Je1(Ge1,{dimColor:!0,children:[" v",$]})]})}var We1=L(()=>{Tp()});import{Box as Jj,Text as zO}from"ink";import{Spinner as u04}from"@inkjs/ui";import{jsx as UG,jsxs as iy}from"react/jsx-runtime";function He1({status:$}){if($==="pending")return UG(u04,{label:""});return UG(zO,{color:"green",children:"\u2713"})}function c04($){return`${$.name}: ${$.port||"...."}`}function Fe1({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return iy(Jj,{flexDirection:"column",paddingBottom:1,children:[UG(Ke1,{version:d70.version}),UG(Jj,{marginBottom:1,children:UG(zO,{dimColor:!0,children:"\u2500".repeat(80)})}),UG(Jj,{children:iy(zO,{dimColor:!0,children:["Home: ",Q]})}),iy(Jj,{gap:2,children:[$.map((Y)=>iy(Jj,{gap:1,children:[UG(zO,{children:c04(Y)}),UG(He1,{status:Y.status})]},Y.name)),iy(Jj,{gap:1,children:[UG(zO,{children:"Migrations"}),UG(He1,{status:Z})]})]}),UG(Jj,{children:X?iy(zO,{children:["Open in browser: ",UG(zO,{color:"cyan",children:X})]}):UG(zO,{dimColor:!0,children:"Starting..."})})]})}var Ue1=L(()=>{dn0();We1()});import{Box as l04,Text as hp}from"ink";import{jsx as in0,jsxs as pn0}from"react/jsx-runtime";function m04($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ne1({logs:$}){return in0(l04,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return in0(hp,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return pn0(hp,{children:[pn0(hp,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),in0(hp,{color:m04(Z.status),children:Z.status}),pn0(hp,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var Be1=()=>{};var nn0={};s(nn0,{App:()=>p04});import{Box as d04}from"ink";import{useSyncExternalStore as i04}from"react";import{jsx as Oe1,jsxs as n04}from"react/jsx-runtime";function p04({home:$}){let Z=i04(hn0,gn0);return n04(d04,{flexDirection:"column",children:[Oe1(Fe1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Oe1(Ne1,{logs:Z.logs})]})}var tn0=L(()=>{Ue1();Be1();Gj()});var a3="thread-gate",RU="decopilot-hosted-harness",IU="decopilot-hosted-harness-sandboxed",MJ="automations",PO="background-tools",Kj="task-board-github-reads";var Le1="11";function De1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Le1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var we1=()=>{};import t04 from"pg";async function je1($,Z){let{databaseUrl:Q,lockTimeoutMs:X=o04}=$,Y=$.log??((W)=>console.log(W)),G=new t04.Client({connectionString:Q});await G.connect();let J=Date.now(),K=!1;try{while(!K){if(K=(await G.query("SELECT pg_try_advisory_lock($1) AS locked",[Ee1.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-J>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await F$(r04)}let W=Date.now()-J;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await G.query("SELECT pg_advisory_unlock($1)",[Ee1.toString()])}catch{}await G.end().catch(()=>{})}}var Ee1=8314027461559302n,o04=600000,r04=500;var ze1=L(()=>{t8()});function a04(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function on0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function Pe1(){let $=a04();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:on0($,"--cpu-prof-dir")??process.cwd(),name:on0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(on0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Ae1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=$j();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),i70=setInterval(()=>void Z().catch(()=>{}),$),i70.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(i70)clearInterval(i70)}}var i70;var Te1=()=>{};import*as s04 from"bun:jsc";function Re1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{e04()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-X;X=G+Z;let K=[];try{K=$14()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var e04,$14;var Ie1=L(()=>{({startSamplingProfiler:e04,samplingProfilerStackTraces:$14}=s04)});function qe1(){Pe1();let $=[Ae1(),xt1(),Re1()];return()=>{for(let Z of $)Z()}}var Me1=L(()=>{Bm0();Te1();Ie1()});var Wj=v((Ve1)=>{Object.defineProperty(Ve1,"__esModule",{value:!0});Ve1.RepublishHeaders=Ve1.DirectMsgHeaders=Ve1.JsHeaders=Ve1.AdvisoryKind=void 0;Ve1.isOrderedPushConsumerOptions=Z14;Ve1.isPullConsumer=Q14;Ve1.isPushConsumer=X14;Ve1.isBoundPushConsumerOptions=Y14;function Z14($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function Q14($){return $.isPullConsumer()}function X14($){return $.isPushConsumer()}function Y14($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ve1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ve1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ve1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ve1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var NG=v((Se1)=>{Object.defineProperty(Se1,"__esModule",{value:!0});Se1.TD=Se1.TE=Se1.Empty=void 0;Se1.encode=B14;Se1.decode=O14;Se1.Empty=new Uint8Array(0);Se1.TE=new TextEncoder;Se1.TD=new TextDecoder;function N14(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function B14(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(Se1.TE.encode($[Q]));if(Z.length===0)return Se1.Empty;if(Z.length===1)return Z[0];return N14(...Z)}function O14($){if(!$||$.length===0)return"";return Se1.TD.decode($)}});var BG=v((ve1)=>{Object.defineProperty(ve1,"__esModule",{value:!0});ve1.errors=ve1.PermissionViolationError=ve1.NoRespondersError=ve1.TimeoutError=ve1.RequestError=ve1.ProtocolError=ve1.ConnectionError=ve1.DrainingConnectionError=ve1.ClosedConnectionError=ve1.AuthorizationError=ve1.UserAuthenticationExpiredError=ve1.InvalidOperationError=ve1.InvalidArgumentError=ve1.InvalidSubjectError=void 0;class an0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ve1.InvalidSubjectError=an0;class p70 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new p70(`${$} ${Z}`,Q)}}ve1.InvalidArgumentError=p70;class sn0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ve1.InvalidOperationError=sn0;class n70 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new n70($);return null}}ve1.UserAuthenticationExpiredError=n70;class t70 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new t70($);return null}}ve1.AuthorizationError=t70;class en0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ve1.ClosedConnectionError=en0;class $t0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ve1.DrainingConnectionError=$t0;class Zt0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ve1.ConnectionError=Zt0;class Qt0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ve1.ProtocolError=Qt0;class Xt0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof o70}}ve1.RequestError=Xt0;class Yt0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ve1.TimeoutError=Yt0;class o70 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ve1.NoRespondersError=o70;class r70 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(Q=G[1].toLowerCase(),X=G[2],Q==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new r70($,Q,X,Y)}}ve1.PermissionViolationError=r70;ve1.errors={AuthorizationError:t70,ClosedConnectionError:en0,ConnectionError:Zt0,DrainingConnectionError:$t0,InvalidArgumentError:p70,InvalidOperationError:sn0,InvalidSubjectError:an0,NoRespondersError:o70,PermissionViolationError:r70,ProtocolError:Qt0,RequestError:Xt0,TimeoutError:Yt0,UserAuthenticationExpiredError:n70}});var s3=v((ge1)=>{Object.defineProperty(ge1,"__esModule",{value:!0});ge1.SimpleMutex=ge1.Perf=void 0;ge1.extend=C14;ge1.render=_14;ge1.timeout=v14;ge1.delay=x14;ge1.deadline=f14;ge1.deferred=Jt0;ge1.debugDeferred=b14;ge1.shuffle=y14;ge1.collect=g14;ge1.jitter=ye1;ge1.backoff=h14;ge1.nanos=u14;ge1.millis=c14;ge1.randomToken=d14;var S14=NG(),Gt0=BG();function C14($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function _14($){return S14.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function v14($,Z=!0){let Q=Z?new Gt0.TimeoutError:null,X,Y,G=new Promise((J,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new Gt0.TimeoutError);else K(Q)},$)});return Object.assign(G,X)}function x14($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function f14($,Z=1000){let Q=Jt0(),X=setTimeout(()=>{Q.reject(new Gt0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function Jt0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function b14(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function y14($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function g14($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class fe1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}ge1.Perf=fe1;class be1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=Jt0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}ge1.SimpleMutex=be1;function ye1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function h14($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return ye1(Q>Z?$[Z]:$[Q])}}}function u14($){return $*1e6}function c14($){return Math.floor($/1e6)}var l14="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",qU=new Uint8Array(62);for(let $=0;$<62;$++)qU[$]=l14.charCodeAt($);var m14=218340105584896;function d14(){let $=Math.floor(Math.random()*m14),Z=$%62,Q=qU[Z];$=($-Z)/62,Z=$%62;let X=qU[Z];$=($-Z)/62,Z=$%62;let Y=qU[Z];$=($-Z)/62,Z=$%62;let G=qU[Z];$=($-Z)/62,Z=$%62;let J=qU[Z];$=($-Z)/62,Z=$%62;let K=qU[Z];$=($-Z)/62,Z=$%62;let W=qU[Z];$=($-Z)/62;let H=qU[$];return String.fromCharCode(Q,X,Y,G,J,K,W,H)}});var pe1=v((de1)=>{Object.defineProperty(de1,"__esModule",{value:!0});de1.nuid=de1.NuidImpl=void 0;var J$4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",AO=62,s70=12,le1=10,ue1=33,K$4=333,ce1=s70+le1,Wt0=new Uint8Array(AO);for(let $=0;$<AO;$++)Wt0[$]=J$4.charCodeAt($);var a70=4294967296,me1=BigInt(AO)**BigInt(le1),up=Number(me1/(1n<<32n)),Kt0=Number(me1%(1n<<32n));function W$4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function H$4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else W$4($)}class Ht0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ce1),this.cbuf=new Uint8Array(s70),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(up+1)),this.seqLo=Math.floor(Math.random()*a70);while($++<8&&this.seqHi===up&&this.seqLo>=Kt0);if(this.seqHi===up&&this.seqLo>=Kt0)this.seqLo=0;this.inc=Math.random()*(K$4-ue1)+ue1|0}setPre(){H$4(this.cbuf);for(let $=0;$<s70;$++)this.buf[$]=Wt0[this.cbuf[$]%AO]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=ce1-1;Q>=s70;Q--){let X=Math.floor($/AO),G=($-X*AO)*a70+Z,J=Math.floor(G/AO),K=G-J*AO;this.buf[Q]=Wt0[K],$=X,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=a70)this.seqLo-=a70,this.seqHi+=1;if(this.seqHi>up||this.seqHi===up&&this.seqLo>=Kt0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}de1.NuidImpl=Ht0;de1.nuid=new Ht0});var re1=v((te1)=>{Object.defineProperty(te1,"__esModule",{value:!0});te1.nuid=te1.Nuid=void 0;var ne1=pe1();te1.Nuid=ne1.NuidImpl;te1.nuid=ne1.nuid});var $Q0=v((e70)=>{Object.defineProperty(e70,"__esModule",{value:!0});e70.nuid=e70.Nuid=void 0;var ae1=re1();Object.defineProperty(e70,"Nuid",{enumerable:!0,get:function(){return ae1.Nuid}});Object.defineProperty(e70,"nuid",{enumerable:!0,get:function(){return ae1.nuid}})});var TO=v((se1)=>{Object.defineProperty(se1,"__esModule",{value:!0});se1.DEFAULT_HOST=se1.DEFAULT_PORT=se1.Match=void 0;se1.syncIterator=L$4;se1.createInbox=D$4;var B$4=$Q0(),O$4=BG();se1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function L$4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function D$4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw O$4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${B$4.nuid.next()}`}se1.DEFAULT_PORT=4222;se1.DEFAULT_HOST="127.0.0.1"});var cp=v((Q0$)=>{Object.defineProperty(Q0$,"__esModule",{value:!0});Q0$.DataBuffer=void 0;var $0$=NG();class Z0${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return $0$.TE.encode($)}static toAscii($){return $0$.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Q0$.DataBuffer=Z0$});var Hj=v((G0$)=>{Object.defineProperty(G0$,"__esModule",{value:!0});G0$.LF=G0$.CR=G0$.CRLF=G0$.CR_LF_LEN=G0$.CR_LF=void 0;G0$.setTransportFactory=R$4;G0$.defaultPort=I$4;G0$.getUrlParseFn=q$4;G0$.newTransport=M$4;G0$.getResolveFn=V$4;G0$.protoLen=Y0$;G0$.extractProtocolMessage=k$4;var P$4=NG(),A$4=TO(),T$4=cp(),OG;function R$4($){OG=$}function I$4(){return OG!==void 0&&OG.defaultPort!==void 0?OG.defaultPort:A$4.DEFAULT_PORT}function q$4(){return OG!==void 0&&OG.urlParseFn?OG.urlParseFn:void 0}function M$4(){if(!OG||typeof OG.factory!=="function")throw Error("transport fn is not set");return OG.factory()}function V$4(){return OG!==void 0&&OG.dnsResolveFn?OG.dnsResolveFn:void 0}G0$.CR_LF=`\r
|
|
1549
1549
|
`;G0$.CR_LF_LEN=G0$.CR_LF.length;G0$.CRLF=T$4.DataBuffer.fromAscii(G0$.CR_LF);G0$.CR=new Uint8Array(G0$.CRLF)[0];G0$.LF=new Uint8Array(G0$.CRLF)[1];function Y0$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===G0$.CR&&$[Q]===G0$.LF)return Q+1}return 0}function k$4($){let Z=Y0$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return P$4.TD.decode(X)}return""}});var Ot0=v((B0$)=>{Object.defineProperty(B0$,"__esModule",{value:!0});B0$.ipV4=F0$;B0$.isIP=u$4;B0$.parseIP=U0$;var lp=4,Fj=16,ZQ0=48,H0$=57,K0$=65,g$4=70,W0$=97,h$4=102,Bt0=16777215;function F0$($,Z,Q,X){let Y=new Uint8Array(Fj);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function u$4($){return U0$($)!==void 0}function U0$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return N0$($);case":":return c$4($)}return}function N0$($){let Z=new Uint8Array(lp);for(let Q=0;Q<lp;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:G}=l$4($);if(!G||X>255)return;$=$.substring(Y),Z[Q]=X}return F0$(Z[0],Z[1],Z[2],Z[3])}function c$4($){let Z=new Uint8Array(Fj),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<Fj){let{n:Y,c:G,ok:J}=m$4($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(Q<0&&X!=Fj-lp)return;if(X+lp>Fj)return;let K=N0$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=lp;break}if(Z[X]=Y>>8,Z[X+1]=Y,X+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(Q>=0)return;if(Q=X,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(X<Fj){if(Q<0)return;let Y=Fj-X;for(let G=X-1;G>=Q;G--)Z[G+Y]=Z[G];for(let G=Q+Y-1;G>=Q;G--)Z[G]=0}else if(Q>=0)return;return Z}function l$4($){let Z=0,Q=0;for(Z=0;Z<$.length&&ZQ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=H0$;Z++)if(Q=Q*10+($.charCodeAt(Z)-ZQ0),Q>=Bt0)return{n:Bt0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function m$4($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(ZQ0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=H0$)Z*=16,Z+=$.charCodeAt(Q)-ZQ0;else if(W0$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=h$4)Z*=16,Z+=$.charCodeAt(Q)-W0$+10;else if(K0$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=g$4)Z*=16,Z+=$.charCodeAt(Q)-K0$+10;else break;if(Z>=Bt0)return{n:0,c:Q,ok:!1}}if(Q===0)return{n:0,c:Q,ok:!1};return{n:Z,c:Q,ok:!0}}});var zt0=v((L0$)=>{Object.defineProperty(L0$,"__esModule",{value:!0});L0$.Servers=L0$.ServerImpl=void 0;L0$.isIPV4OrHostname=O0$;L0$.hostPort=jt0;var Lt0=Hj(),Dt0=s3(),wt0=Ot0(),n$4=TO(),t$4=BG();function O0$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Et0($){return!O0$($)}function o$4($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function jt0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=o$4($),Et0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Et0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):n$4.DEFAULT_PORT,Y=new URL(`${Q===80?"https":"http"}://${$}`);Y.port=`${Q}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:Q}}class py{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=jt0($);this.listen=Q.listen,this.hostname=Q.hostname,this.port=Q.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,wt0.isIP)(this.hostname))return[this];else{let Q=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${Q.join(",")}`);for(let X of Q){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${Et0(X)?"["+X+"]":X}`);G.port=`${this.port}`;let J=new py(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,Dt0.shuffle)(Z);return this.resolves=Z,Z}}L0$.ServerImpl=py;class QQ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw t$4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Lt0.getUrlParseFn)(),Q=new Map;for(let Y of this.servers)Q.set(Y.listen,Y);let X=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=jt0(Y),J=Q.get(G);if(J)J.gossiped=!1,X.push(J);else X.push(new py(Y))}if(this.randomize)(0,Dt0.shuffle)(X);if(this.servers=X,this.currentServer===void 0||!X.includes(this.currentServer))this.currentServer=X[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,wt0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let Q=(0,Lt0.getUrlParseFn)();$=Q?Q($):$;let X=new py($,Z);if((0,wt0.isIP)(X.hostname))X.tlsName=this.tlsName;this.servers.push(X)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return QQ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return QQ0.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let Q=[],X=[],Y=(0,Lt0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new py(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,Dt0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}L0$.Servers=QQ0});var XQ0=v((j0$)=>{Object.defineProperty(j0$,"__esModule",{value:!0});j0$.QueuedIteratorImpl=void 0;var Pt0=s3(),w0$=BG();class E0${inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,Pt0.deferred)(),this.yields=[],this.iterClosed=(0,Pt0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(Q){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new w0$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new w0$.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let X=$[Z];try{X()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let Q=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-Q:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Pt0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}j0$.QueuedIteratorImpl=E0$});var At0=v((T0$)=>{Object.defineProperty(T0$,"__esModule",{value:!0});T0$.MuxSubscription=void 0;var e$4=TO(),P0$=BG();class A0${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,e$4.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((Q)=>{Q.resolver(Z,{})}),!0;if(Z.operation==="publish"){let Q=this.all().find((X)=>{return X.requestSubject===Z.subject});if(Q)return Q.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let Q=this.getToken(Z);if(Q){let X=this.get(Q);if(X){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new P0$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new P0$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}T0$.MuxSubscription=A0$});var Tt0=v((q0$)=>{Object.defineProperty(q0$,"__esModule",{value:!0});q0$.Heartbeat=void 0;var $84=s3();class I0${ph;interval;maxOut;timer;pendings;constructor($,Z,Q){this.ph=$,this.interval=Z,this.maxOut=Q,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,$84.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}q0$.Heartbeat=I0$});var qt0=v((C0$)=>{Object.defineProperty(C0$,"__esModule",{value:!0});C0$.DenoBuffer=C0$.MAX_SIZE=C0$.AssertionError=void 0;C0$.assert=k0$;C0$.concat=S0$;C0$.append=Q84;C0$.readAll=X84;C0$.writeAll=Y84;var Z84=NG();class Rt0 extends Error{constructor($){super($);this.name="AssertionError"}}C0$.AssertionError=Rt0;function k0$($,Z="Assertion failed."){if(!$)throw new Rt0(Z)}var V0$=32768;C0$.MAX_SIZE=4294967294;function YQ0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function S0$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($,0),Q.set(Z,$.length),Q}function Q84($,Z){return S0$($,Uint8Array.of(Z))}class It0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){k0$($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=YQ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(Z84.TE.encode($))}write($){let Z=this._grow($.byteLength);return YQ0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let Q=this._tryGrowByReslice($);if(Q>=0)return Q;let X=this.capacity;if($<=Math.floor(X/2)-Z)YQ0(this._buf.subarray(this._off),this._buf);else if(X+$>C0$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,C0$.MAX_SIZE));YQ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,C0$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,Q=new Uint8Array(V0$);while(!0){let X=this.capacity-this.length<V0$,Y=X?Q:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(X)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}C0$.DenoBuffer=It0;function X84($){let Z=new It0;return Z.readFrom($),Z.bytes()}function Y84($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var kt0=v((b0$)=>{Object.defineProperty(b0$,"__esModule",{value:!0});b0$.cc=b0$.State=b0$.Parser=b0$.Kind=void 0;b0$.describe=U84;var Mt0=qt0(),Vt0=NG();b0$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function U84($){let Z,Q="";switch($.kind){case b0$.Kind.MSG:Z="MSG";break;case b0$.Kind.OK:Z="OK";break;case b0$.Kind.ERR:Z="ERR",Q=Vt0.TD.decode($.data);break;case b0$.Kind.PING:Z="PING";break;case b0$.Kind.PONG:Z="PONG";break;case b0$.Kind.INFO:Z="INFO",Q=Vt0.TD.decode($.data)}return`${Z}: ${Q}`}function v0$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var x0$=48,N84=57,ny=67108864;class f0${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=b0$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let Q=$[Z];switch(this.state){case b0$.State.OP_START:switch(Q){case b0$.cc.M:case b0$.cc.m:this.state=b0$.State.OP_M,this.hdr=-1,this.ma=v0$();break;case b0$.cc.H:case b0$.cc.h:this.state=b0$.State.OP_H,this.hdr=0,this.ma=v0$();break;case b0$.cc.P:case b0$.cc.p:this.state=b0$.State.OP_P;break;case b0$.cc.PLUS:this.state=b0$.State.OP_PLUS;break;case b0$.cc.MINUS:this.state=b0$.State.OP_MINUS;break;case b0$.cc.I:case b0$.cc.i:this.state=b0$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_H:switch(Q){case b0$.cc.M:case b0$.cc.m:this.state=b0$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_M:switch(Q){case b0$.cc.S:case b0$.cc.s:this.state=b0$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MS:switch(Q){case b0$.cc.G:case b0$.cc.g:this.state=b0$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MSG:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:this.state=b0$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MSG_SPC:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:continue;default:this.state=b0$.State.MSG_ARG,this.as=Z}break;case b0$.State.MSG_ARG:switch(Q){case b0$.cc.CR:this.drop=1;break;case b0$.cc.NL:{let X=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(X),this.drop=0,this.as=Z+1,this.state=b0$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case b0$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:b0$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=b0$.State.MSG_END}else{let X=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<X)X=Y;if(X>0)this.msgBuf.write($.subarray(Z,Z+X)),Z=Z+X-1;else this.msgBuf.writeByte(Q)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:b0$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=b0$.State.MSG_END;break;case b0$.State.MSG_END:switch(Q){case b0$.cc.NL:this.drop=0,this.as=Z+1,this.state=b0$.State.OP_START;break;default:continue}break;case b0$.State.OP_PLUS:switch(Q){case b0$.cc.O:case b0$.cc.o:this.state=b0$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PLUS_O:switch(Q){case b0$.cc.K:case b0$.cc.k:this.state=b0$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PLUS_OK:switch(Q){case b0$.cc.NL:this.dispatcher.push({kind:b0$.Kind.OK}),this.drop=0,this.state=b0$.State.OP_START;break}break;case b0$.State.OP_MINUS:switch(Q){case b0$.cc.E:case b0$.cc.e:this.state=b0$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MINUS_E:switch(Q){case b0$.cc.R:case b0$.cc.r:this.state=b0$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MINUS_ER:switch(Q){case b0$.cc.R:case b0$.cc.r:this.state=b0$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MINUS_ERR:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:this.state=b0$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_MINUS_ERR_SPC:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:continue;default:this.state=b0$.State.MINUS_ERR_ARG,this.as=Z}break;case b0$.State.MINUS_ERR_ARG:switch(Q){case b0$.cc.CR:this.drop=1;break;case b0$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:b0$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=b0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case b0$.State.OP_P:switch(Q){case b0$.cc.I:case b0$.cc.i:this.state=b0$.State.OP_PI;break;case b0$.cc.O:case b0$.cc.o:this.state=b0$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PO:switch(Q){case b0$.cc.N:case b0$.cc.n:this.state=b0$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PON:switch(Q){case b0$.cc.G:case b0$.cc.g:this.state=b0$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PONG:switch(Q){case b0$.cc.NL:this.dispatcher.push({kind:b0$.Kind.PONG}),this.drop=0,this.state=b0$.State.OP_START;break}break;case b0$.State.OP_PI:switch(Q){case b0$.cc.N:case b0$.cc.n:this.state=b0$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PIN:switch(Q){case b0$.cc.G:case b0$.cc.g:this.state=b0$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_PING:switch(Q){case b0$.cc.NL:this.dispatcher.push({kind:b0$.Kind.PING}),this.drop=0,this.state=b0$.State.OP_START;break}break;case b0$.State.OP_I:switch(Q){case b0$.cc.N:case b0$.cc.n:this.state=b0$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_IN:switch(Q){case b0$.cc.F:case b0$.cc.f:this.state=b0$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_INF:switch(Q){case b0$.cc.O:case b0$.cc.o:this.state=b0$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_INFO:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:this.state=b0$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case b0$.State.OP_INFO_SPC:switch(Q){case b0$.cc.SPACE:case b0$.cc.TAB:continue;default:this.state=b0$.State.INFO_ARG,this.as=Z}break;case b0$.State.INFO_ARG:switch(Q){case b0$.cc.CR:this.drop=1;break;case b0$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:b0$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=b0$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===b0$.State.MSG_ARG||this.state===b0$.State.MINUS_ERR_ARG||this.state===b0$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Mt0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===b0$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Mt0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,Q=new Uint8Array($+Z);if(Q.set(this.ma.subject),this.ma.reply)Q.set(this.ma.reply,$);if(this.argBuf=new Mt0.DenoBuffer(Q),this.ma.subject=Q.subarray(0,$),this.ma.reply)this.ma.reply=Q.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case b0$.cc.SPACE:case b0$.cc.TAB:case b0$.cc.CR:case b0$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],ny);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],ny);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${Vt0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case b0$.cc.SPACE:case b0$.cc.TAB:case b0$.cc.CR:case b0$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],ny),this.ma.size=this.protoParseInt(Z[3],ny);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],ny),this.ma.size=this.protoParseInt(Z[4],ny);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let Q=0;for(let X=0;X<$.length;X++){if($[X]<x0$||$[X]>N84)return-1;Q=Q*10+($[X]-x0$)}return Z!==void 0&&Q>Z?-1:Q}}b0$.Parser=f0$;b0$.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};b0$.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var KQ0=v((g0$)=>{Object.defineProperty(g0$,"__esModule",{value:!0});g0$.MsgHdrsImpl=void 0;g0$.canonicalMIMEHeaderKey=Ct0;g0$.headers=L84;var y0$=NG(),e3=TO(),JQ0=BG();function Ct0($){let F=!0,U=Array($.length);for(let N=0;N<$.length;N++){let B=$.charCodeAt(N);if(B===58||B<33||B>126)throw JQ0.InvalidArgumentError.format("header",`'${$[N]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;U[N]=B,F=B==45}return String.fromCharCode(...U)}function L84($=0,Z=""){if($===0&&Z!=="")throw JQ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw JQ0.InvalidArgumentError.format("description","is required");return new ty($,Z)}var St0="NATS/1.0";class ty{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,Q]of this.headers){let X=$.values(Z);if(Q.length!==X.length)return!1;let Y=[...Q].sort(),G=[...X].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new ty,X=y0$.TD.decode($).split(`\r
|
|
1550
1550
|
`),Y=X[0];if(Y!==St0){let G=Y.replace(St0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(X.length>=1)X.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=St0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,Q]of this.headers)for(let X=0;X<Q.length;X++)$=`${$}\r
|
|
1551
1551
|
${Z}: ${Q[X]}`;return`${$}\r
|
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 PB6($){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 Sd$=200,UB6=12,BB6,DB6=300,JQ1=3;var WQ1=D(()=>{Zw();uT0();BB6={aheadBy:0,behindBy:0,files:[]}});function TB6($){if(!$||$.includes(".."))return!1;return AB6.test($)}function _d$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!TB6(Z))return null;let{__resolveType:Q,...X}=$;return{resolveType:Z,payload:X}}function vd$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var AB6;var fd$=D(()=>{AB6=/^[\w./@-]+$/});function vs($,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 bd$($,Z,Q,X){if(!X.connectionId)throw new bv("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new bv(H9);await uO({ctx:$,connectionId:X.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let U=H instanceof Error?H.message:H9;throw new bv(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}=v9$(H instanceof Error?H.message:String(H));throw U?new bv(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,RB6).catch(()=>F.statusText);throw Error(`Failed to refresh sandbox git credentials (${F.status}): ${H}`)}}var RB6=10485760,bv;var KQ1=D(()=>{FJ();VT0();Tn();ri0();oy();bv=class bv extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function qB6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!IB6.test(Z))throw Error(`Invalid branch name: ${$}`)}function xv($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(kB6)])}async function SB6($,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=wD0(Z.virtualMcpMetadata),F=K==="cms"?await c71(Q,{claimName:Z.claimName}):"alive",H=K==="cms"&&F!=="alive"?"cms":"sandbox",U=!!J&&(F==="gone"||F==="alive"&&K==="cms");if(U&&J)sn(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 CB6($){let Z=$.get("vmClaim");if(Z.runner)return Z.runner;try{return await FX($.var.studioContext)}catch{return null}}function yv($){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=vs(Z,Q);if(!Y)throw new d4(404,"AUTH","repo","Project has no GitHub repository");let G=n(X);return ST0(X,G.id,Y)}function FQ1($,Z){if(Z instanceof _A0)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 gd$($,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 hd$($){try{let Z=await Hl($),Q=await lT0(Z,$.get("vmClaim").branch);return $.json(Q,200,R5)}catch(Z){return FQ1($,Z)}}function fs($,Z){let X=(mT0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=X.catch(()=>{});return mT0.set($,Y),Y.finally(()=>{if(mT0.get($)===Y)mT0.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??yv($);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?_B6(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 _B6($){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 iT0($,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 vB6($){return ud$.includes($)}var IB6,xd$=524288,MB6=65536,kB6=1e4,yd$=2000,VB6,mT0,R5,ud$,ld$=()=>{let $=new J1;$.use("/:virtualMcpId/:branch/*",VB6),$.post("/:virtualMcpId/:branch/write",(Q)=>eZ(Q,"/_sandbox/write",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/unlink",(Q)=>eZ(Q,"/_sandbox/unlink",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/mkdir",(Q)=>eZ(Q,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/rename",(Q)=>eZ(Q,"/_sandbox/rename",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/read",(Q)=>eZ(Q,"/_sandbox/read",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/glob",(Q)=>eZ(Q,"/_sandbox/glob",{forwardJsonBody:!0,signal:xv(Q)})),$.post("/:virtualMcpId/:branch/grep",(Q)=>eZ(Q,"/_sandbox/grep",{forwardJsonBody:!0,signal:xv(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||!vB6(X))return Q.json({error:`step must be one of: ${ud$.join(", ")}`},400);let Y=Q.get("vmClaim"),G=await c71(Q.var.studioContext,{claimName:Y.claimName})==="gone"?null:await CB6(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=ny(Y.virtualMcpMetadata);try{await b70({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 lc$(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 hd$(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(yd$)])});return $.post("/:virtualMcpId/:branch/git/status",(Q)=>{if(Q.get("vmClaim").runtime==="cms")return hd$(Q);return eZ(Q,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Q.req.raw.signal,AbortSignal.timeout(yd$)])})}),$.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 cT0(G,X.branch,Y.base);return Q.json(J,200,R5)}catch(Y){return FQ1(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=yv(Q);if(X instanceof Response)return X;let{claimName:Y,virtualMcpMetadata:G,connectionIds:J}=Q.get("vmClaim"),W=Q.var.studioContext;return fs(Y,async()=>{try{await d71(W,X,Y);let K=vs(G,J);if(K)await bd$(W,X,Y,K)}catch(K){if(K instanceof bv)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 fs(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 Cd$(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 fs(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 fs(X.claimName,async()=>{try{let W=await Q.req.json().catch(()=>({})),K=await Hl(Q),F=W.base??await K.getDefaultBranch();return await dT0(K,X.branch,F),Q.json({ok:!0},200,R5)}catch(W){return FQ1(Q,W)}});let Y=yv(Q);if(Y instanceof Response)return Y;let{claimName:G}=Q.get("vmClaim"),J=Q.var.studioContext;return fs(G,async()=>{try{await d71(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:xd$,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=yv(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]=p71(H)&&N?[H,U]:Y?await Promise.all([iT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),iT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([lT0(L,X.branch),cT0(L,X.branch)])})(),w=await pc$(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:xd$,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=yv(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]=p71(H)&&N?[H,U]:Y?await Promise.all([iT0(Y,G,"/_sandbox/git/status","GET",{userId:J,projectRef:W}),iT0(Y,G,"/_sandbox/git/diff","GET",{userId:J,projectRef:W})]):await(async()=>{let L=await Hl(Q);return Promise.all([lT0(L,X.branch),cT0(L,X.branch)])})(),w=await tc$(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=yv(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 gd$(Q,`${W}${G}`)}),$.post("/:virtualMcpId/:branch/preview-invoke",a5({maxSize:MB6,onError:(Q)=>Q.json({error:"Payload too large"},413)}),async(Q)=>{let X=yv(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=_d$(J);if(!W)return Q.json({error:"Invalid or missing __resolveType"},400);let K=vd$(G,W.resolveType);return gd$(Q,K,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(W.payload),signal:AbortSignal.timeout(30000)})}),$};var cd$=D(()=>{d$();VF();Yl();l71();Ln();gc$();n3();Ng();hc$();s3();uc$();cc$();ni0();Pn();o71();oc$();a71();Zw();WQ1();fd$();KQ1();IB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;VB6=kT0(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{qB6(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=Dn({orgId:Y.id,virtualMcpId:G,branch:J}),F=await li0(Q,J),H=ci0(F,X),U=yc$({userId:H,projectRef:K}),N=W.metadata??null,B=await SB6($,{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()});mT0=new Map;R5={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};ud$=["clone","install","start"]});function dd$($,Z,Q){let X=HQ1.get($);if(!X)X={pending:null,running:!1},HQ1.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)bB6($,X);return G}async function bB6($,Z){Z.running=!0;try{while(Z.pending){let Q=Z.pending;Z.pending=null;try{let X=await xB6(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)HQ1.delete($)}}async function xB6($){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=YQ1(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=GQ1(K,O),E=`${JSON.stringify(w,null,2)}
|
|
2983
|
-
`,j=await Z.createBlob(E);await Md$(Z.owner,Z.repo,j,E);let z=L[0]??`${hT0(X)}/${e71(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 GQ1(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}=Vs(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:yB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=fB6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function yB6($){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 Ci0(X,$.deps.coAuthor)}var fB6=3,HQ1;var md$=D(()=>{S70();_T0();a8();Zw();uT0();HQ1=new Map});import{createHmac as id$,randomBytes as gB6,timingSafeEqual as hB6}from"crypto";function pd$(){if(pT0)return pT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return pT0=$?Buffer.from($):gB6(32),pT0}function UQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+uB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=id$("sha256",pd$()).update(X).digest("base64url");return`${X}.${Y}`}function nd$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(id$("sha256",pd$()).update(X).digest("base64url"));if(Y.length!==G.length||!hB6(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 uB6=21600000,pT0=null;var td$=D(()=>{D$()});import{z as Ul}from"zod";function cB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&lB6.test($)}function ed$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function bs($){let Z=$.get("decofileScope");return ST0($.var.studioContext,Z.organizationId,Z.githubRepo)}function xs($,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 $m$(){let $=new J1;return $.use("/:virtualMcpId/:branch",sd$),$.use("/:virtualMcpId/:branch/*",sd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await kd$(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=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ed$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return xs(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 bs(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 xs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",mB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=iB6.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{CT0(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(s71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await bs(Z),W=await dd$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ed$(Z)})}catch(J){return xs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(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 dT0(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 xs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(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 xs(Z,X)}}),$}var lB6,od$=500,rd$=1048576,ad$=1024,dB6=8388608,mB6,iB6,sd$;var Zm$=D(()=>{Dt0();_T0();d$();VF();l71();VT0();KQ1();a71();md$();td$();WQ1();Zw();uT0();lB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;mB6=a5({maxSize:dB6,onError:($)=>$.json({error:"Payload too large"},413)}),iB6=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)<=od$,{message:`Patch cannot touch more than ${od$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=rd$),{message:`Each block must be at most ${rd$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=ad$),{message:`Each block key must be at most ${ad$} characters`}),sd$=kT0(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(!cB6(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||!nd$(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(!DD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=vs(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 Qm$=($)=>{let Z=new J1;if(Z.use("*",Tv),Z.route("/",cA0()),Z.route("/",Eh$()),Z.route("/",Rc$()),Z.route("/",Pc$()),Z.route("/",IT0()),Z.route("/tools",Cc$()),Z.route("/",kc$()),Z.route("/",$c$({kvStorage:$.kvStorage})),Z.route("/",sl$()),Z.route("/fs",Oc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",ld$()),Z.route("/decofile",$m$()),Z.route("/",Ec$()),Z.route("/deco-sites",mA0()),Z.route("/hosting",Wh$()),Z.route("/monitor",Oh$()),Z.route("/sso",xA0()),Z.route("/",qT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Qh$()),$.mountDevAssets)Z.route("/dev-assets",tA0({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("/",Ix$()),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",wc$()),Z.route("/mcp",iL0()),Z.route("/mcp/self",RT0()),Z.route("/mcp",tL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Xm$=D(()=>{d$();SA0();Xh$();UZ1();Kh$();Dh$();oA0();Zs();JZ1();el$();Zc$();Dc$();Qo();$Z1();oL0();f71();Lc$();jc$();Ac$();Ic$();Vc$();x71();_c$();y71();pL0();cd$();Zm$()});function pB6($){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 nB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Ym$=()=>{let $=new J1;return $.use("*",nB6),$.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:pB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Gm$=D(()=>{d$();D$();hP0()});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 XO6($){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 YO6($,Z,Q){try{return JSON.parse($)}catch{throw new Km$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function GO6($){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:YO6(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 JO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?sY(Q.function.parameters):sY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function WO6($){if(!$)return;return{openai:{response_format:$}}}function KO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Jm$($,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 Wm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var tB6=256,oB6,rB6,aB6,sB6,eB6,$O6,ZO6,QO6,Km$,Fm$,Hm$;var Um$=D(()=>{g4();d$();Yl();fU();oB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),rB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),aB6=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(rB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),sB6=q1.object({type:q1.literal("text")}),eB6=q1.object({type:q1.literal("json_object")}),$O6=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()})}),ZO6=q1.union([sB6,eB6,$O6]),QO6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(aB6),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(oB6).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:ZO6.optional(),user:q1.string().optional()});Km$=class Km$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Fm$=new J1;Fm$.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=QO6.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=XO6(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=GO6(G.messages),N=G.tools?JO6(G.tools):void 0,B=WO6(G.response_format),O=KO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Jm$(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>=tB6)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:Wm$(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=Jm$(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:Wm$(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)}});Hm$=Fm$});function FO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Nm$(){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(Q0$(U)!==G)continue;if(!FO6(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 Bm$=D(()=>{d$();cH()});var Dm$;var Om$=D(()=>{Dm$={name:"decocms",version:"4.329.7",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 NO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??UO6}}var wm$,UO6="https://ph.studio.decocms.com",Lm$;var Em$=D(()=>{d$();K90();J_();u5();D$();c91();Om$();wm$=new J1;wm$.get("/",($)=>{let Z={version:Dm$.version,theme:Ep1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:m_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:Wg$(),posthog:NO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ms()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Lm$=wm$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function NQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function zm$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function jm$($,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 Pm$($){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()?jm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):jm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var gv,BO6,OO6,DO6,wO6,Am$;var Tm$=D(()=>{gv=l0.enum(["good","bad","neutral"]),BO6=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:gv.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 $})),OO6=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(BO6)),DO6={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()},wO6=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:gv.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:gv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:gv.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:gv.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(OO6).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:gv.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:gv.optional()})).min(1)})]),Am$=l0.object({...DO6,template:wO6})});function nT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=Am$.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 BQ1=D(()=>{Tm$()});import{join as Rm$}from"path";async function EO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(LO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=nT0(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()||NQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function jO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||NQ1(Q),Y=zm$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=Pm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(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="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2983
|
+
`,j=await Z.createBlob(E);await Md$(Z.owner,Z.repo,j,E);let z=L[0]??`${hT0(X)}/${e71(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 GQ1(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}=Vs(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:yB6($),treeSha:N,parentShas:[G]});try{return await Z.updateRef(Q,B),B}catch(O){if(!(O instanceof d4&&O.status===422)||Y>=fB6-1)throw O;await L$(Q7(2000,200,Y,2,0.5))}}}function yB6($){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 Ci0(X,$.deps.coAuthor)}var fB6=3,HQ1;var md$=D(()=>{S70();_T0();a8();Zw();uT0();HQ1=new Map});import{createHmac as id$,randomBytes as gB6,timingSafeEqual as hB6}from"crypto";function pd$(){if(pT0)return pT0;let $;try{let Z=V0();$=Z.studioJwtSecret??Z.betterAuthSecret}catch{$=void 0}return pT0=$?Buffer.from($):gB6(32),pT0}function UQ1($){let Z=$.nowMs??Date.now(),Q={o:$.organizationId,m:$.virtualMcpId,b:$.branch,e:Math.floor((Z+uB6)/1000)},X=Buffer.from(JSON.stringify(Q)).toString("base64url"),Y=id$("sha256",pd$()).update(X).digest("base64url");return`${X}.${Y}`}function nd$($,Z){let Q=$.indexOf(".");if(Q<0)return!1;let X=$.slice(0,Q),Y=Buffer.from($.slice(Q+1)),G=Buffer.from(id$("sha256",pd$()).update(X).digest("base64url"));if(Y.length!==G.length||!hB6(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 uB6=21600000,pT0=null;var td$=D(()=>{D$()});import{z as Ul}from"zod";function cB6($){return $.length>0&&$.length<=255&&!$.includes("..")&&!$.endsWith("/")&&!$.endsWith(".lock")&&lB6.test($)}function ed$($){return $.req.header("x-forwarded-host")??new URL($.req.url).host}async function bs($){let Z=$.get("decofileScope");return ST0($.var.studioContext,Z.organizationId,Z.githubRepo)}function xs($,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 $m$(){let $=new J1;return $.use("/:virtualMcpId/:branch",sd$),$.use("/:virtualMcpId/:branch/*",sd$),$.get("/:virtualMcpId/:branch",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(Z),Y=await kd$(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=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.body(`{"version":${JSON.stringify(Y.sha)},"token":${JSON.stringify(J)},"apiHost":${JSON.stringify(ed$(Z))},"decofile":${Y.decofile}}`,200,{...G,"content-type":"application/json"})}catch(X){return xs(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 bs(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 xs(Z,Y)}}),$.patch("/:virtualMcpId/:branch",mB6,async(Z)=>{let Q=Z.get("decofileScope"),X=Z.var.studioContext,Y=iB6.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{CT0(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(s71(J))return Z.json({error:`Block key "${J}" collides with a framework resolver module and cannot be written`},400)}try{let J=await bs(Z),W=await dd$(`${Q.organizationId}/${Q.virtualMcpId}/${Q.branch}`,{client:J,branch:Q.branch,packagePath:Q.packagePath,coAuthor:Gl(X)},G),K=UQ1({organizationId:Q.organizationId,virtualMcpId:Q.virtualMcpId,branch:Q.branch});return Z.json({version:W,token:K,apiHost:ed$(Z)})}catch(J){return xs(Z,J)}}),$.post("/:virtualMcpId/:branch/publish",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(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 dT0(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 xs(Z,X)}}),$.get("/:virtualMcpId/:branch/status",async(Z)=>{let Q=Z.get("decofileScope");try{let X=await bs(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 xs(Z,X)}}),$}var lB6,od$=500,rd$=1048576,ad$=1024,dB6=8388608,mB6,iB6,sd$;var Zm$=D(()=>{Dt0();_T0();d$();VF();l71();VT0();KQ1();a71();md$();td$();WQ1();Zw();uT0();lB6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;mB6=a5({maxSize:dB6,onError:($)=>$.json({error:"Payload too large"},413)}),iB6=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)<=od$,{message:`Patch cannot touch more than ${od$} blocks`}).refine(($)=>Object.values($.set??{}).every((Z)=>JSON.stringify(Z).length<=rd$),{message:`Each block must be at most ${rd$} bytes`}).refine(($)=>[...Object.keys($.set??{}),...$.delete??[]].every((Z)=>Z.length<=ad$),{message:`Each block key must be at most ${ad$} characters`}),sd$=kT0(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(!cB6(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||!nd$(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(!DD0(K))return $.json({error:"Project has no preview server configured"},404);let H=W.connections?.map((B)=>B.connection_id)??[],U=vs(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 Qm$=($)=>{let Z=new J1;if(Z.use("*",Tv),Z.route("/",cA0()),Z.route("/",Eh$()),Z.route("/",Rc$()),Z.route("/",Pc$()),Z.route("/",IT0()),Z.route("/tools",Cc$()),Z.route("/",kc$()),Z.route("/",$c$({kvStorage:$.kvStorage})),Z.route("/",sl$()),Z.route("/fs",Oc$({getConnection:$.getNatsConnection})),Z.route("/sandbox",ld$()),Z.route("/decofile",$m$()),Z.route("/",Ec$()),Z.route("/deco-sites",mA0()),Z.route("/hosting",Wh$()),Z.route("/monitor",Oh$()),Z.route("/sso",xA0()),Z.route("/",qT0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Qh$()),$.mountDevAssets)Z.route("/dev-assets",tA0({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("/",Ix$()),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",wc$()),Z.route("/mcp",iL0()),Z.route("/mcp/self",RT0()),Z.route("/mcp",tL0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var Xm$=D(()=>{d$();SA0();Xh$();UZ1();Kh$();Dh$();oA0();Zs();JZ1();el$();Zc$();Dc$();Qo();$Z1();oL0();f71();Lc$();jc$();Ac$();Ic$();Vc$();x71();_c$();y71();pL0();cd$();Zm$()});function pB6($){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 nB6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},Ym$=()=>{let $=new J1;return $.use("*",nB6),$.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:pB6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var Gm$=D(()=>{d$();D$();hP0()});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 XO6($){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 YO6($,Z,Q){try{return JSON.parse($)}catch{throw new Km$(`Invalid JSON in tool call arguments for function '${Q}' (tool_call_id: ${Z}): ${$}`)}}function GO6($){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:YO6(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 JO6($){let Z=$.map((Q)=>{let X=Q.function.parameters?sY(Q.function.parameters):sY({type:"object",properties:{}});return[Q.function.name,V$({description:Q.function.description,inputSchema:X})]});return Object.fromEntries(Z)}function WO6($){if(!$)return;return{openai:{response_format:$}}}function KO6(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Jm$($,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 Wm$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var tB6=256,oB6,rB6,aB6,sB6,eB6,$O6,ZO6,QO6,Km$,Fm$,Hm$;var Um$=D(()=>{g4();d$();Yl();fU();oB6=q1.object({type:q1.literal("function"),function:q1.object({name:q1.string(),description:q1.string().optional(),parameters:q1.record(q1.string(),q1.unknown()).optional()})}),rB6=q1.object({id:q1.string(),type:q1.literal("function"),function:q1.object({name:q1.string(),arguments:q1.string()})}),aB6=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(rB6).optional()}),q1.object({role:q1.literal("tool"),content:q1.string(),tool_call_id:q1.string()})]),sB6=q1.object({type:q1.literal("text")}),eB6=q1.object({type:q1.literal("json_object")}),$O6=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()})}),ZO6=q1.union([sB6,eB6,$O6]),QO6=q1.object({model:q1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:q1.array(aB6),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(oB6).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:ZO6.optional(),user:q1.string().optional()});Km$=class Km$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Fm$=new J1;Fm$.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=QO6.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=XO6(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=GO6(G.messages),N=G.tools?JO6(G.tools):void 0,B=WO6(G.response_format),O=KO6(),w=Math.floor(Date.now()/1000);if(G.stream)return QN($,async(L)=>{let E=Jm$(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>=tB6)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:Wm$(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=Jm$(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:Wm$(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)}});Hm$=Fm$});function FO6($){if(typeof $!=="object"||$===null)return!1;let Q=$.githubRepo?.url;return typeof Q==="string"&&Q.length>0}function Nm$(){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(Q0$(U)!==G)continue;if(!FO6(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 Bm$=D(()=>{d$();cH()});var Dm$;var Om$=D(()=>{Dm$={name:"decocms",version:"4.329.8",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 NO6(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??UO6}}var wm$,UO6="https://ph.studio.decocms.com",Lm$;var Em$=D(()=>{d$();K90();J_();u5();D$();c91();Om$();wm$=new J1;wm$.get("/",($)=>{let Z={version:Dm$.version,theme:Ep1(),...bH().logo&&{logo:bH().logo},...PU()&&{internalUrl:m_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:Wg$(),posthog:NO6(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:ms()}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Lm$=wm$});function Nl($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function NQ1($){return(Nl($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((Q)=>Q.charAt(0).toUpperCase()+Q.slice(1)).join(" ")}function zm$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(Nl($))}&sz=${Z}`}function jm$($,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 Pm$($){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()?jm$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):jm$(`How does ${Q} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var gv,BO6,OO6,DO6,wO6,Am$;var Tm$=D(()=>{gv=l0.enum(["good","bad","neutral"]),BO6=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:gv.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 $})),OO6=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(BO6)),DO6={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()},wO6=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:gv.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:gv.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:gv.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:gv.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(OO6).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:gv.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:gv.optional()})).min(1)})]),Am$=l0.object({...DO6,template:wO6})});function nT0($){let Z=[],Q=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=Am$.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 BQ1=D(()=>{Tm$()});import{join as Rm$}from"path";async function EO6($){try{let Z=await fetch(`${LK({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(LO6)});if(!Z.ok)return null;let Q=await Z.json(),{deck:X}=nT0(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()||NQ1($),score:X.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function TG($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function jO6($,Z){let Q=Nl($),X=Z?.brand?.trim()||NQ1(Q),Y=zm$(Q,128),J=`${(V0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(Q)}`,{title:W,description:K}=Pm$({brand:X,domain:Q,score:Z?.score,verdict:Z?.verdict}),F=`${J}/og.png`,H=`${X} commerce report by decocms`;return[`<title>${TG(W)}</title>`,`<meta name="description" content="${TG(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="${TG(W)}" />`,`<meta property="og:description" content="${TG(K)}" />`,`<meta property="og:url" content="${TG(J)}" />`,`<meta property="og:image" content="${TG(F)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${TG(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${TG(W)}" />`,`<meta name="twitter:description" content="${TG(K)}" />`,`<meta name="twitter:image" content="${TG(F)}" />`,`<meta name="twitter:image:alt" content="${TG(H)}" />`,`<link rel="canonical" href="${TG(J)}" />`,`<link rel="icon" href="${TG(Y)}" sizes="any" />`].join(`
|
|
2984
2984
|
`)}function zO6($,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 Im$($){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(Rm$($,"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(PO6)}),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=$?Rm$($,"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 EO6(Nl(X)),K=jO6(X,W);return Q.html(zO6(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return Q.html(J)}}),Z}var LO6=2500,PO6=1e4;var qm$=D(()=>{d$();BQ1();TE();D$()});function ys($,Z){return fetch(`${LK({})}${$}`,Z)}async function AO6($,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 ys(`/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}=nT0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var TO6,YN,Mm$=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},km$;var Vm$=D(()=>{d$();tY();TE();BQ1();TO6=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/*",Mm$);YN.use("/suggest",Mm$);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 AO6(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 ys("/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 ys(`/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:TO6.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 ys(`/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 ys(`/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:[]})}});km$=YN});import{createHmac as RO6,timingSafeEqual as IO6}from"crypto";function Cm$($,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)>qO6)return!1;let W=RO6("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&&IO6(K,H)})}function _m$($){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 vm$($){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 tT0($){return typeof $==="number"?new Date($*1000):null}function wQ1($){return xF($)??xF(mJ($)?.id)}function MO6($){return wQ1($.subscription)??xF(mJ(mJ($.parent)?.subscription_details)?.subscription)}function kO6($){let Z=tT0($.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 OQ1($,Z){let Q=tT0($.created);return!!Q&&!!Z.lastStripeEventAt&&Q<Z.lastStripeEventAt}function DQ1($,Z){let Q=tT0($.created);if(!Q)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>Q?void 0:Q}async function VO6($,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=wQ1(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(OQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(X,{stripeCustomerId:wQ1(Q.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:DQ1(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&&OQ1(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":vm$(Q.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:kO6(Q),...G&&{stripeSubscriptionId:null},lastStripeEventAt:DQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let X=MO6(Q);if(!X)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(X);if(!Y)return{handled:!1,reason:"unknown subscription"};if(OQ1(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:tT0(Q.period_end),lastStripeEventAt:DQ1(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function SO6($,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:vm$(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 Sm$($,Z){let Q=SO6($,Z);if(!Q)return;dY({event:Q.name,organizationId:Q.organizationId,...$.id?{uuid:qt1(`stripe:${$.id}:${Q.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:Q.properties})}async function fm$($){let Z=new BK(B8().db),Q=await VO6(Z,$);if(!(Q.handled&&Q.topUp))Sm$($,Q);if(Q.handled&&Q.topUp)await aj$({organizationId:Q.organizationId,amountCents:Q.topUp.creditCents,referenceId:Q.topUp.referenceId}),Sm$($,Q);if(!Q.handled&&Q.orphanSubscriptionId)try{await Q1$(Q.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:Q.orphanSubscriptionId,eventId:$.id})}catch(X){if(!(X instanceof oY&&(X.status===400||X.status===404)))throw X}return Q}var qO6=300;var bm$=D(()=>{aG();v4();l50();bE();R11()});var CO6=1048576,LQ1;var xm$=D(()=>{d$();VF();D$();bm$();LQ1=new J1;LQ1.post("/webhook",a5({maxSize:CO6,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(!Cm$(Q,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=_m$(Q);if(!Y)return $.json({error:"invalid payload"},400);let G=await fm$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as _O6}from"crypto";function fO6($,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 _O6(Buffer.from(Y),Buffer.from(X))}var vO6=5242880,EQ1;var ym$=D(()=>{d$();VF();s3();EQ1=new J1;EQ1.post("/webhook",a5({maxSize:vO6,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(!fO6(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 Bt0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function gm$($){let Z=new pU($.db,new uQ($.encryptionKey)),Q=new J1;return Q.get("/attachments/:token",async(X)=>{let Y=oK$(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 JG(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 hm$=D(()=>{d$();tN();Fo0();dC()});function um$($){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 lm$($,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 yO6($){return`Jira ${$.key}: ${$.summary}`}async function oT0($,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 JG(Z.siteUrl,Z.email,Z.apiToken),J=await Kw0(G,Z.siteUrl,Q.issueId),W=await gO6($,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??bO6,source:{kind:"jira",issueKey:J.key,title:yO6(J),body:`${Fw0(J)}
|
|
2986
2986
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as o,j as r}from"./index-CNfEIUn0.js";import{O as m}from"./api-keys-7J7aATeq.js";import{R as p}from"./require-capability-DYq0fdEP.js";import"./AlertCircle-B02pIqyO.js";import"./Copy01-D5Ill_kE.js";import"./Key01-DoBw9G0M.js";import"./Plus-npiI5-7X.js";import"./Trash01-C64jvZUr.js";import"./alert-dialog-EueylpK5.js";import"./dialog-C9fBgi3G.js";import"./input-CxZ-2GPj.js";import"./label-BBk0UNMj.js";import"./use-mcp-client-CgA8PWhj.js";import"./constants-DNuUCxmW.js";import"./auth-BfPf7zhg.js";import"./access-gate-CDET83Ra.js";import"./capability-load-error-DNqhm16P.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-CNfEIUn0.js";import{s as W}from"./Plus-npiI5-7X.js";import{i as S}from"./Zap-Buyt_ZmJ.js";import{S as F}from"./search-input-CNFZM5Ki.js";import{E as T}from"./empty-state-S-1xJrE6.js";import{c as G}from"./use-automations-4iFK5nkE.js";import{u as H}from"./use-navigate-to-agent-BhLZN4vX.js";import{A as J}from"./automation-list-row-B7bEWOhz.js";import{h as K}from"./constants-DNuUCxmW.js";import{a as O}from"./use-virtual-mcp-XPauNnS5.js";import{R as Q}from"./require-capability-DYq0fdEP.js";import"./SearchMd-DM9iwGft.js";import"./use-mcp-client-CgA8PWhj.js";import"./auth-BfPf7zhg.js";import"./use-destination-route-2_Kd2h4X.js";import"./hooks-CV5SIncY.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-BDzoef2l.js";import"./task-board-Cw4I7XsI.js";import"./schema-DO9s-3_3.js";import"./chat-context-CALwiBF_.js";import"./use-panel-navigate-CypROp-b.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-DfC2UWvW.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-jW8Ieour.js";import"./use-organization-settings-BRf1OrEm.js";import"./github-repo-COLY3wWI.js";import"./alert-dialog-EueylpK5.js";import"./dropdown-menu-tC5c5wq-.js";import"./Check-CnxYOeJk.js";import"./ChevronRight-Bo_7PLYL.js";import"./DotsVertical-DRP3CifW.js";import"./agent-icon-Cm-rraMc.js";import"./AlertCircle-B02pIqyO.js";import"./Tool01-DpeMCocB.js";import"./ArrowUp-CQ6SET-t.js";import"./ArrowLeft-DzuSLuVr.js";import"./Tool02-DMSvrhPC.js";import"./XCircle-DC63K01N.js";import"./TrendUp01-DBKvZ-DZ.js";import"./ZoomOut-Du-2I-dz.js";import"./Users03-BTZsMKrW.js";import"./CheckCircle-Bs1i8n8R.js";import"./ChevronUp-CDlju1TC.js";import"./ChevronSelectorVertical-BWdGiimP.js";import"./UserSquare-jm1EvWHs.js";import"./Copy01-D5Ill_kE.js";import"./CreditCard01-NbxHy6Lv.js";import"./Download01-DoUNzBPU.js";import"./Settings02-C0EhiTe4.js";import"./Eye-COu8umtC.js";import"./Share07-Cp3sAWWN.js";import"./GitBranch01-idBGys5s.js";import"./Globe01-CtD7u0-k.js";import"./XClose-VJXgkRtY.js";import"./HardDrive-BVnECxVe.js";import"./Image01-Cy8ZoIiy.js";import"./Key01-DoBw9G0M.js";import"./Link01-u2EoXuNT.js";import"./LinkExternal01-CBhAp9XW.js";import"./Monitor01-DmqpK-8S.js";import"./Sun-e_DnDd3f.js";import"./Package-CcAuJGku.js";import"./Palette-BOxVbiJL.js";import"./Play-DG2731JJ.js";import"./Shield01-B0ob1ipu.js";import"./Stars01-BgKhcopx.js";import"./Trash01-C64jvZUr.js";import"./Upload01-CZcQRY37.js";import"./User01-DvzdeHqd.js";import"./Users01-HKHLFhfO.js";import"./access-gate-CDET83Ra.js";import"./capability-load-error-DNqhm16P.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-CNfEIUn0.js";import{S as T}from"./index-Dr2i8l8p.js";import{u as H}from"./settings-sidebar-BedGL_Ku.js";import"./task-route-C2MKBcLF.js";import"./hooks-CV5SIncY.js";import"./use-destination-route-2_Kd2h4X.js";import"./constants-DNuUCxmW.js";import"./use-mcp-client-CgA8PWhj.js";import"./auth-BfPf7zhg.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-BDzoef2l.js";import"./task-board-Cw4I7XsI.js";import"./schema-DO9s-3_3.js";import"./ChevronUp-CDlju1TC.js";import"./agent-icon-Cm-rraMc.js";import"./AlertCircle-B02pIqyO.js";import"./Tool01-DpeMCocB.js";import"./ArrowUp-CQ6SET-t.js";import"./ArrowLeft-DzuSLuVr.js";import"./Tool02-DMSvrhPC.js";import"./XCircle-DC63K01N.js";import"./TrendUp01-DBKvZ-DZ.js";import"./ZoomOut-Du-2I-dz.js";import"./Users03-BTZsMKrW.js";import"./CheckCircle-Bs1i8n8R.js";import"./Check-CnxYOeJk.js";import"./ChevronRight-Bo_7PLYL.js";import"./ChevronSelectorVertical-BWdGiimP.js";import"./DotsVertical-DRP3CifW.js";import"./UserSquare-jm1EvWHs.js";import"./Copy01-D5Ill_kE.js";import"./CreditCard01-NbxHy6Lv.js";import"./Download01-DoUNzBPU.js";import"./Settings02-C0EhiTe4.js";import"./Eye-COu8umtC.js";import"./Share07-Cp3sAWWN.js";import"./GitBranch01-idBGys5s.js";import"./Globe01-CtD7u0-k.js";import"./XClose-VJXgkRtY.js";import"./HardDrive-BVnECxVe.js";import"./Image01-Cy8ZoIiy.js";import"./Key01-DoBw9G0M.js";import"./Link01-u2EoXuNT.js";import"./LinkExternal01-CBhAp9XW.js";import"./Monitor01-DmqpK-8S.js";import"./Sun-e_DnDd3f.js";import"./Package-CcAuJGku.js";import"./Palette-BOxVbiJL.js";import"./Play-DG2731JJ.js";import"./Plus-npiI5-7X.js";import"./SearchMd-DM9iwGft.js";import"./Shield01-B0ob1ipu.js";import"./Stars01-BgKhcopx.js";import"./Trash01-C64jvZUr.js";import"./Upload01-CZcQRY37.js";import"./User01-DvzdeHqd.js";import"./Users01-HKHLFhfO.js";import"./Zap-Buyt_ZmJ.js";import"./use-virtual-mcp-XPauNnS5.js";import"./github-repo-COLY3wWI.js";import"./use-navigate-to-agent-BhLZN4vX.js";import"./chat-context-CALwiBF_.js";import"./use-panel-navigate-CypROp-b.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-ai-providers-DfC2UWvW.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-jW8Ieour.js";import"./use-organization-settings-BRf1OrEm.js";import"./toolbar-icon-button-BJhOiNGi.js";import"./popover-CxFVXm-T.js";import"./drawer-OLnwjI2K.js";import"./github-repo-picker-Bo27g0p4.js";import"./dialog-C9fBgi3G.js";import"./collection-search-BvGAgDld.js";import"./use-debounced-value-Df4IN6g1.js";import"./use-connection-DNt4swpy.js";import"./authenticate-and-persist-oauth-hh7nuAWR.js";import"./mcp-oauth-BTxNcy48.js";import"./extract-connection-data-CDeabBWK.js";import"./metadata-dUsYcpuu.js";import"./connection-CXkee5u6.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./project-icon-Da5qBAn7.js";import"./shell-layout-zuPHJJxr.js";import"./avatar-DVuZ2F_T.js";import"./download-app-dialog-B6fQdqDO.js";import"./command-BYns7CwK.js";import"./index-BraqwIq2.js";import"./required-auth-layout-BH79UCBF.js";import"./use-org-sso-CYEN5nc1.js";import"./connection-card-CWUJLExI.js";import"./use-registry-connections-C524bvTW.js";import"./useInfiniteQuery-D4DO3KqU.js";import"./use-infinite-scroll-Br6HoOld.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./integration-icon-BRZ0l9mu.js";import"./form-BXpGp03G.js";import"./label-BBk0UNMj.js";import"./input-CxZ-2GPj.js";import"./select-D5c8Otgi.js";import"./textarea-BsDleKsG.js";import"./connection-form-helpers-D7wCXBEQ.js";import"./collection-tabs-Cd4Vv0EE.js";import"./badge-FcNiwbMm.js";import"./useSuspenseInfiniteQuery-Ccvsai-C.js";import"./use-file-configs-CNLxYc3F.js";import"./site-slug-uya6Wp4-.js";import"./dropdown-menu-tC5c5wq-.js";import"./get-initials-D-f_fDFw.js";import"./use-deployment-admin-DPPYgxrx.js";import"./invite-member-dialog-DT1qyQ4y.js";import"./use-org-auth-client-B2H7C6Ln.js";import"./use-organization-roles-du03Yb4v.js";import"./scroll-area-Bga4xYk7.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./create-organization-dialog-DA4SxHbD.js";import"./alert-dialog-EueylpK5.js";import"./use-join-requests-CNFJW1O4.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-CNfEIUn0.js";import{I as A}from"./input-CxZ-2GPj.js";import{L as F}from"./label-BBk0UNMj.js";import{S as R,a as z,b as J,c as O,d as V}from"./select-D5c8Otgi.js";import{T as D}from"./textarea-BsDleKsG.js";import{e as M,w as $,j as q,y as G,J as H}from"./index-BoFDLZ6p.js";import{s as P}from"./primitives-wsknTEcb.js";import{u as Q}from"./use-autosave-B8HtQ_kf.js";import"./Check-CnxYOeJk.js";import"./ChevronUp-CDlju1TC.js";import"./ArrowUp-CQ6SET-t.js";import"./chat-context-CALwiBF_.js";import"./use-panel-navigate-CypROp-b.js";import"./use-destination-route-2_Kd2h4X.js";import"./hooks-CV5SIncY.js";import"./constants-DNuUCxmW.js";import"./use-mcp-client-CgA8PWhj.js";import"./auth-BfPf7zhg.js";import"./delay-CnY5UFtP.js";import"./backoff-CrEUbyZT.js";import"./decopilot-sse-pool-BDzoef2l.js";import"./task-board-Cw4I7XsI.js";import"./schema-DO9s-3_3.js";import"./slugify-CEUa2lfQ.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-virtual-mcp-XPauNnS5.js";import"./use-ai-providers-DfC2UWvW.js";import"./location-oTTXFrSF.js";import"./use-decopilot-events-jW8Ieour.js";import"./use-organization-settings-BRf1OrEm.js";import"./automation-runs-CkSYrEGR.js";import"./agent-icon-Cm-rraMc.js";import"./AlertCircle-B02pIqyO.js";import"./Tool01-DpeMCocB.js";import"./ArrowLeft-DzuSLuVr.js";import"./Tool02-DMSvrhPC.js";import"./XCircle-DC63K01N.js";import"./TrendUp01-DBKvZ-DZ.js";import"./ZoomOut-Du-2I-dz.js";import"./Users03-BTZsMKrW.js";import"./CheckCircle-Bs1i8n8R.js";import"./ChevronRight-Bo_7PLYL.js";import"./ChevronSelectorVertical-BWdGiimP.js";import"./DotsVertical-DRP3CifW.js";import"./UserSquare-jm1EvWHs.js";import"./Copy01-D5Ill_kE.js";import"./CreditCard01-NbxHy6Lv.js";import"./Download01-DoUNzBPU.js";import"./Settings02-C0EhiTe4.js";import"./Eye-COu8umtC.js";import"./Share07-Cp3sAWWN.js";import"./GitBranch01-idBGys5s.js";import"./Globe01-CtD7u0-k.js";import"./XClose-VJXgkRtY.js";import"./HardDrive-BVnECxVe.js";import"./Image01-Cy8ZoIiy.js";import"./Key01-DoBw9G0M.js";import"./Link01-u2EoXuNT.js";import"./LinkExternal01-CBhAp9XW.js";import"./Monitor01-DmqpK-8S.js";import"./Sun-e_DnDd3f.js";import"./Package-CcAuJGku.js";import"./Palette-BOxVbiJL.js";import"./Play-DG2731JJ.js";import"./Plus-npiI5-7X.js";import"./SearchMd-DM9iwGft.js";import"./Shield01-B0ob1ipu.js";import"./Stars01-BgKhcopx.js";import"./Trash01-C64jvZUr.js";import"./Upload01-CZcQRY37.js";import"./User01-DvzdeHqd.js";import"./Users01-HKHLFhfO.js";import"./Zap-Buyt_ZmJ.js";import"./useInfiniteQuery-D4DO3KqU.js";import"./use-infinite-scroll-Br6HoOld.js";import"./use-connection-DNt4swpy.js";import"./table-DEic8MLd.js";import"./empty-state-S-1xJrE6.js";import"./use-members-4CiFzvQG.js";import"./use-org-auth-client-B2H7C6Ln.js";import"./use-automations-4iFK5nkE.js";import"./useSuspenseInfiniteQuery-Ccvsai-C.js";import"./avatar-DVuZ2F_T.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-BXRFLn2M.js";import"./markdown-CBbWAQAJ.js";import"./dialog-C9fBgi3G.js";import"./monaco-editor-DazsPMf1.js";import"./editor-BjHf7-wi.js";import"./types-BXQK2N0O.js";import"./shell-layout-zuPHJJxr.js";import"./download-app-dialog-B6fQdqDO.js";import"./project-icon-Da5qBAn7.js";import"./github-repo-COLY3wWI.js";import"./command-BYns7CwK.js";import"./index-BraqwIq2.js";import"./required-auth-layout-BH79UCBF.js";import"./use-org-sso-CYEN5nc1.js";import"./integration-icon-BRZ0l9mu.js";import"./use-navigate-to-agent-BhLZN4vX.js";import"./use-mcp-prompts-CG2uZJ9H.js";import"./form-BXpGp03G.js";import"./file-type-icon-CzKQjLvK.js";import"./drawer-OLnwjI2K.js";import"./collection-search-BvGAgDld.js";import"./tabs-iA_HLM1O.js";import"./toggle-group-CTRGHvcL.js";import"./task-route-C2MKBcLF.js";import"./toolbar-icon-button-BJhOiNGi.js";import"./popover-CxFVXm-T.js";import"./github-repo-picker-Bo27g0p4.js";import"./use-debounced-value-Df4IN6g1.js";import"./authenticate-and-persist-oauth-hh7nuAWR.js";import"./mcp-oauth-BTxNcy48.js";import"./extract-connection-data-CDeabBWK.js";import"./metadata-dUsYcpuu.js";import"./connection-CXkee5u6.js";import"./provision-repo-scoped-github-connection-WQFARyHG.js";import"./connection-card-CWUJLExI.js";import"./use-registry-connections-C524bvTW.js";import"./retry-CErkP7V6.js";import"./connection-slug-CITJ0kGN.js";import"./connection-form-helpers-D7wCXBEQ.js";import"./collection-tabs-Cd4Vv0EE.js";import"./badge-FcNiwbMm.js";import"./use-file-configs-CNLxYc3F.js";import"./site-slug-uya6Wp4-.js";import"./dropdown-menu-tC5c5wq-.js";import"./get-initials-D-f_fDFw.js";import"./select-model-B4IX9QyY.js";import"./checkbox-BmYwx8kR.js";import"./ai-providers-logos-DD3qZ33J.js";import"./folder-icon-CA44zIJR.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-v0k0tR6A.js";import"./toolbar-RiMn7tp7.js";import"./skill-preview-Cds7l0IB.js";import"./pt-BR-CLy76QW2.js";import"./alert-dialog-EueylpK5.js";import"./use-debounced-autosave-BzJT5pgf.js";import"./scroll-area-Bga4xYk7.js";import"./search-input-CNFZM5Ki.js";import"./use-mcp-auth-status-B8KMbW6d.js";import"./switch-C3EYj7hN.js";import"./use-secrets-DJHtvR4D.js";import"./client-icons-CxvuXLIW.js";import"./connect-layout-U7Ps2Adr.js";import"./self-tool-result-PbyB4K2F.js";import"./track-DeADh2iG.js";import"./use-tags-gMOyjsIi.js";import"./breadcrumb-CWoWChjJ.js";import"./safe-image-url-D5z803Ot.js";import"./automation-list-row-B7bEWOhz.js";import"./site-error--i37Vnuw.js";import"./cards-Ta4bCObM.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};
|