decocms 4.196.2 → 4.196.3
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-CTzluRBu.js → AlertCircle-DYcEUd4n.js} +1 -1
- package/dist/client/assets/{AreaChart-DFwHkanc.js → AreaChart-DsR_7UmJ.js} +1 -1
- package/dist/client/assets/{ArrowUp-FvN7_gG4.js → ArrowUp-BIN2cCpn.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-BTLJ17MM.js → ArrowUpRight-C9FVXZ3g.js} +1 -1
- package/dist/client/assets/{Check-Ds_2u5Tv.js → Check-CrBLFCeK.js} +1 -1
- package/dist/client/assets/{CheckCircle-CH3FC2f8.js → CheckCircle-ACbVAeNl.js} +1 -1
- package/dist/client/assets/{ChevronDown-CluKS89n.js → ChevronDown-BEf3Scqb.js} +1 -1
- package/dist/client/assets/{ChevronRight-w_lFpKPh.js → ChevronRight-P9h7Ty6s.js} +1 -1
- package/dist/client/assets/{ChevronUp-DJnGlOAQ.js → ChevronUp-CTuwzPWU.js} +1 -1
- package/dist/client/assets/{Copy01-DH5oIqTb.js → Copy01-DIA3v6Ja.js} +1 -1
- package/dist/client/assets/{CpuChip01-Db_B5Sxk.js → CpuChip01-DXm818Xx.js} +1 -1
- package/dist/client/assets/{CreditCard01-zl1P07Wv.js → CreditCard01-DHqx9wxi.js} +1 -1
- package/dist/client/assets/{DotsVertical-v52SnyC6.js → DotsVertical-BIno8SzV.js} +1 -1
- package/dist/client/assets/{Eye-B1R5hsW-.js → Eye-BFTqYrbG.js} +1 -1
- package/dist/client/assets/{FilterLines-DNSIt-RC.js → FilterLines-C9wSLkYO.js} +1 -1
- package/dist/client/assets/{HardDrive-DMIi-QwP.js → HardDrive-CPqDLqPE.js} +1 -1
- package/dist/client/assets/{Key01-j_vPgnJd.js → Key01-CSj_hQ3P.js} +1 -1
- package/dist/client/assets/{LayoutLeft-DFfajRcH.js → LayoutLeft-D2etZmsm.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CBU0oxDC.js → LinkExternal01-DYcrH-D6.js} +1 -1
- package/dist/client/assets/{LogOut01-CyqBNw-G.js → LogOut01-CLIWGZc6.js} +1 -1
- package/dist/client/assets/{Monitor01-CUdl2R6v.js → Monitor01-e4PBR0jF.js} +1 -1
- package/dist/client/assets/{Palette-Chk1Eh-o.js → Palette-D_SWn_7d.js} +1 -1
- package/dist/client/assets/{Play-ZFtbqR1D.js → Play-Boi9Jsmp.js} +1 -1
- package/dist/client/assets/{Plus-CA4Flokh.js → Plus-Y0k1AAX2.js} +1 -1
- package/dist/client/assets/{SearchLg-Ccpl9EG7.js → SearchLg-BMbbY69i.js} +1 -1
- package/dist/client/assets/{SearchMd-Ct0-u66L.js → SearchMd-BMbQeWnk.js} +1 -1
- package/dist/client/assets/{Settings02-DOZjhT05.js → Settings02-DTDk_YRB.js} +1 -1
- package/dist/client/assets/{Shield01-we2BR7o_.js → Shield01-BNK3Uf5N.js} +1 -1
- package/dist/client/assets/{Star01-h0-tOBSN.js → Star01-Bb1jyUJe.js} +1 -1
- package/dist/client/assets/{Stars01-DJ_mW-8j.js → Stars01-BVBtYfsQ.js} +1 -1
- package/dist/client/assets/{Stars02-BYVTRg4K.js → Stars02-Znmyj_2o.js} +1 -1
- package/dist/client/assets/{Sun-W1WULtVZ.js → Sun-BoaRCE1v.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-Bv08ExTE.js → SwitchHorizontal01-BFj_2gac.js} +1 -1
- package/dist/client/assets/{Tool01-Bc4TtmY0.js → Tool01-DtCqjh49.js} +1 -1
- package/dist/client/assets/{Tool02-BZacv5JE.js → Tool02-ReHIdwUH.js} +1 -1
- package/dist/client/assets/{Trash01-DMQz-ejD.js → Trash01-BWHaw1Zz.js} +1 -1
- package/dist/client/assets/{TrendUp01-C-Op2wPA.js → TrendUp01-CaGpj6Zg.js} +1 -1
- package/dist/client/assets/{Upload01-DUOxFcSK.js → Upload01-CiL7nDS2.js} +1 -1
- package/dist/client/assets/{User01-DEVwHE1O.js → User01-DbMT7M1I.js} +1 -1
- package/dist/client/assets/{Users01-TciadDJZ.js → Users01-C3XV0WgD.js} +1 -1
- package/dist/client/assets/{Users03-thX90m6R.js → Users03-DbocNOWm.js} +1 -1
- package/dist/client/assets/{X-vrHtdUVn.js → X-C9KEOpbv.js} +1 -1
- package/dist/client/assets/{XCircle-BUfidkn-.js → XCircle-CxZmvT9v.js} +1 -1
- package/dist/client/assets/{XClose-CZFjO1li.js → XClose-BIKHdHYQ.js} +1 -1
- package/dist/client/assets/{Zap-Dd9fNAe8.js → Zap-By01xZuf.js} +1 -1
- package/dist/client/assets/{ZapSquare-CvGVlecR.js → ZapSquare-Bb1CEuVI.js} +1 -1
- package/dist/client/assets/{access-gate-D9dShYrS.js → access-gate-DanOJ1Yk.js} +1 -1
- package/dist/client/assets/{agent-icon-CnHeq2hw.js → agent-icon-D9aNoVKT.js} +1 -1
- package/dist/client/assets/{agents-list-dHIFxDCq.js → agents-list-QUkMpaPB.js} +1 -1
- package/dist/client/assets/{ai-providers-DQ_7DAQH.js → ai-providers-BvLXcJol.js} +1 -1
- package/dist/client/assets/{alert-Brvpid23.js → alert-DsQ0c8lK.js} +1 -1
- package/dist/client/assets/{alert-dialog-BUxOtLXG.js → alert-dialog-CoyxVuQp.js} +1 -1
- package/dist/client/assets/{app-editor-Dqnt3WdE.js → app-editor-pdSHM8bX.js} +1 -1
- package/dist/client/assets/{auth-Beu-SMGZ.js → auth-Cok5h4L4.js} +1 -1
- package/dist/client/assets/{auth-catchall-C-PAEW_T.js → auth-catchall-D74YZj9V.js} +1 -1
- package/dist/client/assets/{auth-entry-C_q-eZuQ.js → auth-entry-CKwqbIwp.js} +1 -1
- package/dist/client/assets/{auth-split-layout-8seSOwHM.js → auth-split-layout-ClFYmM-n.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-tRFUvk4r.js → authenticate-and-persist-oauth-CswO7NRg.js} +1 -1
- package/dist/client/assets/{automation-list-row-ZeNUMvLb.js → automation-list-row-BvsWpW2Y.js} +1 -1
- package/dist/client/assets/{automation-runs-Dw-nzC29.js → automation-runs-c-f_4n15.js} +1 -1
- package/dist/client/assets/{automations-BhbZOjgL.js → automations-Dz-PB76B.js} +1 -1
- package/dist/client/assets/{avatar-D1qDwBvW.js → avatar-B4HAQTwc.js} +1 -1
- package/dist/client/assets/{badge-ChUGhDHn.js → badge-BxsPLHRR.js} +1 -1
- package/dist/client/assets/{billing-DSzXvn7Q.js → billing-D4p9THQh.js} +1 -1
- package/dist/client/assets/{block-document-DYvkqere.js → block-document-Cn1f7JhL.js} +1 -1
- package/dist/client/assets/{brand-context-BCisCR5z.js → brand-context-BN3i3nU-.js} +1 -1
- package/dist/client/assets/{buckets-6HMkL2bi.js → buckets-DVYyf0mL.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-BtgXiX15.js → bulk-category-panel-D9YVZVcJ.js} +1 -1
- package/dist/client/assets/{capability-load-error-BszQinOM.js → capability-load-error-BgYaqzzV.js} +1 -1
- package/dist/client/assets/{card-CkrHyQY9.js → card-O_ON32DU.js} +1 -1
- package/dist/client/assets/{category-editor-DmwaJz6n.js → category-editor--MsbQZF7.js} +1 -1
- package/dist/client/assets/{chat-context-DL6FGT5c.js → chat-context-veRjZm5_.js} +1 -1
- package/dist/client/assets/{checkbox-CKHbojGx.js → checkbox-BElVN3eh.js} +1 -1
- package/dist/client/assets/{cli-auth-success-DVBDNpdD.js → cli-auth-success-BfIJ_ppE.js} +1 -1
- package/dist/client/assets/{collection-detail-DEcOzUPj.js → collection-detail-CsNZYVm-.js} +1 -1
- package/dist/client/assets/{collection-display-button-CGxLumVE.js → collection-display-button-DKcT7JwS.js} +1 -1
- package/dist/client/assets/{collection-search-Dq5Gov8Q.js → collection-search-DjYEgQZ4.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CQ2eTkH8.js → collection-table-wrapper-CP7ys5p8.js} +1 -1
- package/dist/client/assets/{collection-tabs-BWbSWHpT.js → collection-tabs-1fd1DdcQ.js} +1 -1
- package/dist/client/assets/{command-D6Q3E1IK.js → command-e0LDcscf.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-DzgFeYkJ.js → commerce-onboarding-nuSQyCkU.js} +1 -1
- package/dist/client/assets/{connect-B6nq5M-R.js → connect-BDT8UXdS.js} +1 -1
- package/dist/client/assets/{connection-kQRGwwOG.js → connection-BIuSJqBQ.js} +1 -1
- package/dist/client/assets/{connection-card-DJp0iefa.js → connection-card-DoCcxlvY.js} +1 -1
- package/dist/client/assets/{connection-detail-0mZMUiq4.js → connection-detail-ADru4d3o.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-ZbjMZrrg.js → connection-form-helpers-BwVDQwOT.js} +1 -1
- package/dist/client/assets/{connections-Andp5gSG.js → connections-BFhrdmjG.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-CI1SEipC.js → decopilot-sse-pool-BHE5rdgR.js} +1 -1
- package/dist/client/assets/{dialog-hfrNQHMi.js → dialog-D2S92tZ9.js} +1 -1
- package/dist/client/assets/{domain-settings-BNlU1lKl.js → domain-settings-BoiXMTsq.js} +1 -1
- package/dist/client/assets/{drawer-DZDPBXiL.js → drawer-BECq7JNC.js} +1 -1
- package/dist/client/assets/{dropdown-menu-B8kJ6KIJ.js → dropdown-menu-DQ2W_7Ih.js} +1 -1
- package/dist/client/assets/{empty-state-COfCuK0F.js → empty-state-cO7gpwXM.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BoH9IuEO.js → extract-connection-data-C1TFaz0h.js} +1 -1
- package/dist/client/assets/{file-explorer-COOp870W.js → file-explorer-D_uy9D48.js} +1 -1
- package/dist/client/assets/{form-BLphtETu.js → form-5i-cV4RB.js} +1 -1
- package/dist/client/assets/{general-eJFbCI8X.js → general-Cyh2JHrF.js} +1 -1
- package/dist/client/assets/{github-repo-picker-D4946XGC.js → github-repo-picker-B-xpXFen.js} +1 -1
- package/dist/client/assets/{hooks-K5Uh-RkQ.js → hooks-DPLjzBGy.js} +1 -1
- package/dist/client/assets/{index-BgTU5W10.js → index-BDvrNHQl.js} +1 -1
- package/dist/client/assets/{index-TaCSjiOS.js → index-BQQ4sVvK.js} +1 -1
- package/dist/client/assets/{index-kBHHJesB.js → index-C0kUnN22.js} +1 -1
- package/dist/client/assets/{index-b0HUMSuL.js → index-CArlIAZ_.js} +1 -1
- package/dist/client/assets/{index-DiCJNeAv.js → index-CPNV3K_G.js} +1 -1
- package/dist/client/assets/{index-Bloqn0d5.js → index-CSvZRcoO.js} +1 -1
- package/dist/client/assets/{index-D2lenb-q.js → index-CgcZpX9o.js} +1 -1
- package/dist/client/assets/{index-Beq-1u0O.js → index-ChuGhXzk.js} +1 -1
- package/dist/client/assets/{index-CGBjadRQ.js → index-D-Vd-rko.js} +5 -5
- package/dist/client/assets/{index-Cmj8qOwD.js → index-asdIPaUT.js} +3 -3
- package/dist/client/assets/{index-redirect-CPrCZd7e.js → index-redirect-BNteAwmC.js} +1 -1
- package/dist/client/assets/{input-7q2DrTU1.js → input-D7IYRwIi.js} +1 -1
- package/dist/client/assets/{integration-icon-gEfXiFVK.js → integration-icon-WAtkn9hI.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-CsX7AE9X.js → invite-member-dialog-CkGnjmYS.js} +1 -1
- package/dist/client/assets/{label-CDiMc4Dw.js → label-dOGpNKPU.js} +1 -1
- package/dist/client/assets/{layout-owvrKokM.js → layout-DaOweRHW.js} +1 -1
- package/dist/client/assets/{login-B6Hk-X73.js → login-CrXQkAtG.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DthA_S7R.js → mcp-oauth-DTN9aBsh.js} +1 -1
- package/dist/client/assets/{members-DLmJWkBM.js → members-C3UII1qw.js} +1 -1
- package/dist/client/assets/{monaco-editor-B-RYGpy8.js → monaco-editor-J5FRbS8o.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Cga7kWwK.js → monitoring-stats-row-BcyGaL1P.js} +1 -1
- package/dist/client/assets/{multi-select-BQs2z4Ex.js → multi-select-D2lel2qU.js} +1 -1
- package/dist/client/assets/{oauth-callback-Bh-w5XKY.js → oauth-callback-BWE33jRn.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BV46CdPk.js → oauth-callback-ai-provider-JLZjpXIm.js} +1 -1
- package/dist/client/assets/{onboarding-mLm5iF0v.js → onboarding-D6dJILYG.js} +1 -1
- package/dist/client/assets/{org-layout-DpBOpeXq.js → org-layout-BUWGrNSx.js} +1 -1
- package/dist/client/assets/{organization-choice-Bj2S86IL.js → organization-choice-B6ehasQ4.js} +1 -1
- package/dist/client/assets/{orgs-B6gGO1nX.js → orgs-CP412-t3.js} +1 -1
- package/dist/client/assets/{page-seo-form-KNb6nr2t.js → page-seo-form-MoqseD7D.js} +1 -1
- package/dist/client/assets/{popover-D66B6SWS.js → popover-CGziDK0h.js} +1 -1
- package/dist/client/assets/{post-editor-CtwYXVNj.js → post-editor-bq83kO0w.js} +1 -1
- package/dist/client/assets/{primitives-B2rM-OZB.js → primitives-BGiwsViu.js} +1 -1
- package/dist/client/assets/{profile-BRrt0j80.js → profile-DsKEFvg1.js} +1 -1
- package/dist/client/assets/{project-app-view-DmT-_Hq0.js → project-app-view-B8ZKu5SX.js} +1 -1
- package/dist/client/assets/record-editor-I0TqIYkM.js +1 -0
- package/dist/client/assets/{redirect-editor-1FVduF1A.js → redirect-editor-OC72nd90.js} +1 -1
- package/dist/client/assets/registry-CjnwYE34.js +2 -0
- package/dist/client/assets/{registry-layout-CvDvIDu-.js → registry-layout-C0QgvwYW.js} +1 -1
- package/dist/client/assets/{reports-CLe8iIuu.js → reports-lCxwesCi.js} +24 -24
- package/dist/client/assets/{require-capability-CK9uSRQE.js → require-capability-DLAXXCpL.js} +1 -1
- package/dist/client/assets/{required-auth-layout-CE9dbjeW.js → required-auth-layout-BtKPeE36.js} +1 -1
- package/dist/client/assets/{reset-password-Ddj7pbSu.js → reset-password-4UG76DiR.js} +1 -1
- package/dist/client/assets/{roles-7UEtGIm1.js → roles-B0mF_Csi.js} +1 -1
- package/dist/client/assets/{search-input-CX0QmqKk.js → search-input-CNmzDNxC.js} +1 -1
- package/dist/client/assets/{secrets-91Ikj-oy.js → secrets-BkF26YNi.js} +1 -1
- package/dist/client/assets/{sections-editor-Cf1xsnJb.js → sections-editor-ugKmhc9C.js} +1 -1
- package/dist/client/assets/{select-CX6iNm4t.js → select-DRnlhsyt.js} +1 -1
- package/dist/client/assets/{select-model-CE8259T3.js → select-model-Bv_M_por.js} +1 -1
- package/dist/client/assets/{self-tool-result-Cr-xCeS1.js → self-tool-result-BFUJLIE1.js} +1 -1
- package/dist/client/assets/{seo-editor-DOtDXW_5.js → seo-editor-BJ9ECp04.js} +1 -1
- package/dist/client/assets/{settings-layout-BkaUD9YD.js → settings-layout-Dg_En_Yn.js} +1 -1
- package/dist/client/assets/{settings-section-D58Hf8-3.js → settings-section-4fOnc3Ll.js} +1 -1
- package/dist/client/assets/{shell-controls-BDZPO3CT.js → shell-controls-DeNhWsTZ.js} +1 -1
- package/dist/client/assets/{shell-layout-Q2-dAuQd.js → shell-layout-D8SOdbH_.js} +1 -1
- package/dist/client/assets/{sidebar-BVDunLrG.js → sidebar-8RnlUf1S.js} +1 -1
- package/dist/client/assets/{skeleton-B6A7c5bo.js → skeleton-D461XHcc.js} +1 -1
- package/dist/client/assets/{spinner-CGYv_QKA.js → spinner-CeUG_a5y.js} +1 -1
- package/dist/client/assets/{sso-DDzAhGW4.js → sso-C7ByjU5x.js} +1 -1
- package/dist/client/assets/{store-BwzWNs_x.js → store-nePl5Rif.js} +1 -1
- package/dist/client/assets/store-registry-CGQhqbXW.js +2 -0
- package/dist/client/assets/{studio-tools-D7_5b2MM.js → studio-tools-zLPX1nBe.js} +1 -1
- package/dist/client/assets/{switch-PSsToBT8.js → switch-BLitOzmu.js} +1 -1
- package/dist/client/assets/{tab-id-BsD9btC1.js → tab-id-Dtqfrp5u.js} +1 -1
- package/dist/client/assets/{table-DrERumjm.js → table-BFqmbCle.js} +1 -1
- package/dist/client/assets/{tabs-BCvBykvQ.js → tabs-DJLDjrq8.js} +1 -1
- package/dist/client/assets/{textarea-inuICEnd.js → textarea-3E8liC20.js} +1 -1
- package/dist/client/assets/{toggle-group-oVP2W9PE.js → toggle-group-Dqss3oBy.js} +1 -1
- package/dist/client/assets/{toolbar-vrYzjEIy.js → toolbar-DXPerdaw.js} +1 -1
- package/dist/client/assets/{tooltip-SYAihvUC.js → tooltip-C1RyQZMt.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DS7sIpNI.js → use-ai-providers-BTvGSGOG.js} +1 -1
- package/dist/client/assets/{use-automations-96ic-4VY.js → use-automations-BY7ODOyE.js} +1 -1
- package/dist/client/assets/{use-autosave-BfASXkvn.js → use-autosave-BZ_h94cU.js} +1 -1
- package/dist/client/assets/{use-capability-CI2OR4aw.js → use-capability-Btynzj0m.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BBrdfG3f.js → use-clock-tick-CuD3SSC7.js} +1 -1
- package/dist/client/assets/{use-connection-DtsKfHpL.js → use-connection-Ds3I5g3i.js} +1 -1
- package/dist/client/assets/{use-copy-Dl3j_zBZ.js → use-copy-BRuHNKXW.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BHKDNppH.js → use-create-virtual-mcp-BkfNYBbS.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B-04KObS.js → use-debounced-autosave-DoTUyU6B.js} +1 -1
- package/dist/client/assets/{use-debounced-value-B1b0VDYG.js → use-debounced-value-a0xmB_WA.js} +1 -1
- package/dist/client/assets/{use-deco-credits-C7v8ENTb.js → use-deco-credits-DZfutGKd.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-B5hB5jre.js → use-decopilot-events-BTqD9swL.js} +1 -1
- package/dist/client/assets/{use-delete-connection-C7MeR04Y.js → use-delete-connection-eyg8kpsc.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DOpgRl5O.js → use-deployment-admin-CIHySQvQ.js} +1 -1
- package/dist/client/assets/{use-file-configs-tliCkGTA.js → use-file-configs-Dpbq6uLT.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-BtF0eCyM.js → use-infinite-scroll-BIGJQAsz.js} +1 -1
- package/dist/client/assets/{use-join-requests-CAo-ktPd.js → use-join-requests-CplNBYxV.js} +1 -1
- package/dist/client/assets/{use-mcp-client-CIiukt0o.js → use-mcp-client-DeuwoNmr.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-kfeg9D4x.js → use-mcp-tools-Dan91cc0.js} +1 -1
- package/dist/client/assets/{use-members-D-gkfuuN.js → use-members-BBFGsYX9.js} +1 -1
- package/dist/client/assets/{use-mobile-9D6PUk9K.js → use-mobile-Bklwa4Lw.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BGh-eaDs.js → use-navigate-to-agent-BGlPFSPq.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-BUtZtH7K.js → use-open-billing-url-CqjwQ2pZ.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-CLjqUO3S.js → use-org-auth-client-BdKXx2it.js} +1 -1
- package/dist/client/assets/{use-org-sso-C0WXptW_.js → use-org-sso-EorlSiLG.js} +1 -1
- package/dist/client/assets/{use-organization-roles-Ck-Tkddb.js → use-organization-roles-CKi4xkgx.js} +1 -1
- package/dist/client/assets/{use-organization-settings-CkTCgJDb.js → use-organization-settings-GIVqCngt.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BIqM0E-3.js → use-registry-connections-BZbZhwNd.js} +1 -1
- package/dist/client/assets/{use-secrets-COSC7YGv.js → use-secrets-Dt34BP_k.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-857QciuH.js → use-section-preview-base-BoGZQWqD.js} +1 -1
- package/dist/client/assets/{use-status-sounds-qCtQ-qAX.js → use-status-sounds-gawaUte3.js} +1 -1
- package/dist/client/assets/{use-tags-Csn_SJiJ.js → use-tags-D40ayeIh.js} +1 -1
- package/dist/client/assets/{use-view-mode-B0zDBHMF.js → use-view-mode-B644IQHl.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-D9bS9Rcc.js → use-virtual-mcp-Dn_HhBpi.js} +1 -1
- package/dist/client/assets/useInfiniteQuery--OVZcVZT.js +1 -0
- package/dist/client/assets/{useRouterState-C9G34swK.js → useRouterState-DjRP3D2n.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BWhuDwiD.js +1 -0
- package/dist/client/assets/{users-CIZThtlu.js → users-Cj9raHO1.js} +1 -1
- package/dist/client/assets/{variant-calendar-BQkuXQii.js → variant-calendar-CyB0jy5O.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-DvOrdTYf.js → view-mode-toggle-j-M0mnGb.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/record-editor-DtA-FHJ7.js +0 -1
- package/dist/client/assets/registry-B6l1hNGu.js +0 -2
- package/dist/client/assets/store-registry-Dy85azDJ.js +0 -2
- package/dist/client/assets/useInfiniteQuery-DLyjCKfd.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DhIlA7MV.js +0 -1
package/dist/server/server.js
CHANGED
|
@@ -1193,7 +1193,7 @@ ${H}`:H;return{...J,description:N,inputExamples:X?void 0:J.inputExamples}});retu
|
|
|
1193
1193
|
|
|
1194
1194
|
`)},flush($){$.enqueue(`data: [DONE]
|
|
1195
1195
|
|
|
1196
|
-
`)}})}},Qm0={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};Ln=e0.record(e0.string(),pL.optional()),Ym0=U0(()=>s(e0.union([e0.strictObject({type:e0.literal("text-start"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("text-delta"),id:e0.string(),delta:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("text-end"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("error"),errorText:e0.string()}),e0.strictObject({type:e0.literal("tool-input-start"),toolCallId:e0.string(),toolName:e0.string(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-input-delta"),toolCallId:e0.string(),inputTextDelta:e0.string()}),e0.strictObject({type:e0.literal("tool-input-available"),toolCallId:e0.string(),toolName:e0.string(),input:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-input-error"),toolCallId:e0.string(),toolName:e0.string(),input:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),errorText:e0.string(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-approval-request"),approvalId:e0.string(),toolCallId:e0.string(),signature:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-output-available"),toolCallId:e0.string(),output:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),preliminary:e0.boolean().optional()}),e0.strictObject({type:e0.literal("tool-output-error"),toolCallId:e0.string(),errorText:e0.string(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional()}),e0.strictObject({type:e0.literal("tool-output-denied"),toolCallId:e0.string()}),e0.strictObject({type:e0.literal("reasoning-start"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("reasoning-delta"),id:e0.string(),delta:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("reasoning-end"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("source-url"),sourceId:e0.string(),url:e0.string(),title:e0.string().optional(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("source-document"),sourceId:e0.string(),mediaType:e0.string(),title:e0.string(),filename:e0.string().optional(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("file"),url:e0.string(),mediaType:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.custom(($)=>typeof $==="string"&&$.startsWith("data-"),{message:'Type must start with "data-"'}),id:e0.string().optional(),data:e0.unknown(),transient:e0.boolean().optional()}),e0.strictObject({type:e0.literal("start-step")}),e0.strictObject({type:e0.literal("finish-step")}),e0.strictObject({type:e0.literal("start"),messageId:e0.string().optional(),messageMetadata:e0.unknown().optional()}),e0.strictObject({type:e0.literal("finish"),finishReason:e0.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:e0.unknown().optional()}),e0.strictObject({type:e0.literal("abort"),reason:e0.string().optional()}),e0.strictObject({type:e0.literal("message-metadata"),messageMetadata:e0.unknown()})])));K44=_G;H44=zn;F44=tJ({prefix:"aitxt",size:24}),U44={file:!0,source:!0,"text-start":!0,"text-end":!0,"text-delta":!0,"reasoning-start":!0,"reasoning-end":!0,"reasoning-delta":!0,"tool-input-start":!0,"tool-input-end":!0,"tool-input-delta":!0,"tool-approval-request":!0,"tool-call":!0,"tool-result":!0,"tool-error":!0,"stream-start":!1,"response-metadata":!1,finish:!1,error:!1,raw:!1};qQ=J0.record(J0.string(),pL.optional()),L44=U0(()=>s(J0.array(J0.object({id:J0.string(),role:J0.enum(["system","user","assistant"]),metadata:J0.unknown().optional(),parts:J0.array(J0.union([J0.object({type:J0.literal("text"),text:J0.string(),state:J0.enum(["streaming","done"]).optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("reasoning"),text:J0.string(),state:J0.enum(["streaming","done"]).optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("source-url"),sourceId:J0.string(),url:J0.string(),title:J0.string().optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("source-document"),sourceId:J0.string(),mediaType:J0.string(),title:J0.string(),filename:J0.string().optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("file"),mediaType:J0.string(),filename:J0.string().optional(),url:J0.string(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("step-start")}),J0.object({type:J0.string().startsWith("data-"),id:J0.string().optional(),data:J0.unknown()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-streaming"),input:J0.unknown().optional(),providerExecuted:J0.boolean().optional(),callProviderMetadata:H$.optional(),output:J0.never().optional(),errorText:J0.never().optional(),approval:J0.never().optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-available"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.never().optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-requested"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.never().optional(),reason:J0.never().optional(),signature:J0.string().optional()})}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-responded"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.boolean(),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-available"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.unknown(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),preliminary:J0.boolean().optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-error"),input:J0.unknown().optional(),rawInput:J0.unknown().optional(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.string(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-denied"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!1),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-streaming"),providerExecuted:J0.boolean().optional(),callProviderMetadata:H$.optional(),input:J0.unknown().optional(),output:J0.never().optional(),errorText:J0.never().optional(),approval:J0.never().optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-available"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.never().optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-requested"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.never().optional(),reason:J0.never().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-responded"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.boolean(),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-available"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.unknown(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),preliminary:J0.boolean().optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-error"),providerExecuted:J0.boolean().optional(),input:J0.unknown().optional(),rawInput:J0.unknown().optional(),output:J0.never().optional(),errorText:J0.string(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-denied"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!1),reason:J0.string().optional(),signature:J0.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));q44=V90,M44={type:"no-schema",jsonSchema:async()=>{return},async validatePartialResult({value:$,textDelta:Z}){return{success:!0,value:{partial:$,textDelta:Z}}},async validateFinalResult($,Z){return $===void 0?{success:!1,error:new kQ({message:"No object generated: response did not match schema.",text:Z.text,response:Z.response,usage:Z.usage,finishReason:Z.finishReason})}:{success:!0,value:$}},createElementStream(){throw new T4({functionality:"element streams in no-schema mode"})}};C44=tJ({prefix:"aiobj",size:24});x44=tJ({prefix:"aiobj",size:24});h44=class extends _w{constructor({data:$,mediaType:Z}){super({data:$,mediaType:Z});let X="mp3";if(Z){let Q=Z.split("/");if(Q.length===2){if(Z!=="audio/mpeg")X=Q[1]}}if(!X)throw Error("Audio format must be provided or determinable from media type");this.format=X}};l44={word:/\S+\s+/m,line:/\n+/m};m44=Nm0();K64=t6$,r6$=`vercel.ai.error.${o6$}`,H64=Symbol.for(r6$),s6$=class extends q5{constructor({modelId:$,modelType:Z,providerId:X,availableProviders:Q,message:Y=`No such provider: ${X} (available providers: ${Q.join()})`}){super({errorName:o6$,modelId:$,modelType:Z,message:Y});this[a6$]=!0,this.providerId=X,this.availableProviders=Q}static isInstance($){return G1.hasMarker($,r6$)}};a6$=H64;N64=e6$;w64=Nm0();Z5$=class extends wm0{constructor($={}){super($)}processResponseStream($){return iH({stream:$,schema:Ym0}).pipeThrough(new TransformStream({async transform(Z,X){if(!Z.success)throw Z.error;X.enqueue(Z.value)}}))}};R64=class extends wm0{constructor($={}){super($)}processResponseStream($){return T64({stream:$.pipeThrough(new TextDecoderStream)})}}});import{z as I64}from"zod";function eL($){return $==="cluster"?"agent-sandbox":$}function Bm0($){return`${$.userId}:${$.projectRef}`}var q64;var C90=B(()=>{q64=I64.enum(["agent-sandbox","user-desktop"])});class _90{map=new Map;async run($,Z){let X=this.map.get($);if(X)return X;let Q=Z();this.map.set($,Q);try{return await Q}finally{this.map.delete($)}}}function v90($,Z,X,Q){if(!$)return Q(null);if(!$.withLock)return Q($);return $.withLock(Z,X,Q)}function kn($){if("threadId"in $){if(!$.threadId)throw Error("composeSandboxRef: threadId required");return`thread:${$.threadId}`}if(!$.orgId||!$.virtualMcpId||!$.branch)throw Error("composeSandboxRef: orgId, virtualMcpId and branch are all required for agent refs");return`agent:${$.orgId}:${$.virtualMcpId}:${$.branch}`}function X5$($){if($.startsWith("thread:"))return $.slice(7);if(!$.startsWith("agent:"))return"";let Z=$.split(":");return Z.length>=4?Z.slice(3).join(":"):""}import{createHash as M64}from"crypto";function S64($,Z=16){return M64("sha256").update(Bm0($)).digest("hex").slice(0,Z)}function $E($){let Z=S64($),X=V64(X5$($.projectRef));return X?`${X}-${Z}`:`s-${Z}`}function V64($){if(!$)return"";return($.split("/").pop()??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,k64).replace(/-+$/g,"")}var k64=24;var Q5$=B(()=>{C90()});function b90($,Z){let X=$.replace(/\/+$/,"");if(X.includes("{handle}"))return`${X.replace("{handle}",Z)}/`;try{let Q=new URL(X);return Q.hostname=`${Z}.${Q.hostname}`,`${Q.toString()}/`}catch{return`${X}/${Z}/`}}function Sn($){let Z=$?.userName?.trim();if(!Z||Y5$.test(Z))return null;let X=$?.userEmail?.trim();if(!X||Y5$.test(X))return{userName:Z};if(!C64.test(X))return{userName:Z};return{userName:Z,userEmail:X}}var Y5$,C64;var Dm0=B(()=>{Y5$=/[\r\n<>]/,C64=/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/});function f90($){let Z=$.repo,X=Z?{repository:{cloneUrl:Z.cloneUrl,repoName:Z.displayName??_64(Z.cloneUrl),...Z.branch?{branch:Z.branch}:{},...Z.submoduleCredentials&&Z.submoduleCredentials.length>0?{submoduleCredentials:Z.submoduleCredentials}:{}},...Z.userName.trim()||Z.userEmail.trim()?{identity:{userName:Z.userName,userEmail:Z.userEmail}}:{}}:void 0,Q=$.tenant,Y=Sn({userName:Q?.userName,userEmail:Q?.userEmail})??void 0,G=$.packageManager?{name:$.packageManager.name,...$.packageManager.path?{path:$.packageManager.path}:{}}:void 0,J=G?{packageManager:G,runtime:$.runtime,...$.port!==void 0?{port:$.port}:{}}:void 0;if(!X&&!J&&!Y&&!$.cloneOnly)return null;return{...X?{git:X}:{},...Y?{operator:Y}:{},...$.cloneOnly!==void 0?{cloneOnly:$.cloneOnly}:{},...J?{application:J}:{}}}function _64($){try{let Z=new URL($);return Z.pathname.replace(/^\/+/,"").replace(/\.git$/,"")||Z.hostname}catch{return $}}var G5$=B(()=>{Dm0()});function v64($){try{return new URL($).username.length>0}catch{return!1}}function Lm0($){let Z=$.repo?.cloneUrl;if(!Z||!v64(Z))return null;return{git:{repository:{cloneUrl:Z}}}}var Em0=B(()=>{Q5$();G5$()});function b64($){return(typeof $.timeout==="number"&&$.timeout>0?Math.min($.timeout,120000):30000)+15000}function f64($,Z){if($.aborted)return Z.catch(()=>{}),Promise.reject($.reason??Error("aborted"));return new Promise((X,Q)=>{let Y=()=>{Z.catch(()=>{}),Q($.reason??Error("aborted"))};$.addEventListener("abort",Y,{once:!0}),Z.then(X,Q).finally(()=>{$.removeEventListener("abort",Y)})})}async function x64($,Z,X,Q,Y="POST",G){let J=G?.timeoutMs??b64(Q??{}),W=AbortSignal.timeout(J),K=G?.signal?AbortSignal.any([G.signal,W]):W,H,N;try{let U=new Headers({"content-type":"application/json"});if(G?.threadId)U.set("x-thread-id",G.threadId);let w={method:Y,headers:U,body:null,signal:K};if(Y!=="GET"&&Q!==null)w.body=JSON.stringify(Q);({res:H,rawText:N}=await f64(K,(async()=>{let O=await $.proxyDaemonRequest(Z,X,w);return{res:O,rawText:await O.text()}})()))}catch(U){if(G?.signal?.aborted)throw U;if(W.aborted)throw Error(`Sandbox ${Y} ${X} timed out after ${Math.round(J/1000)}s \u2014 the sandbox may be overloaded or its filesystem stalled. Retry, or use a smaller operation.`);throw new Vn(U)}let F;try{F=JSON.parse(N)}catch{console.error("[sandbox-fs-hooks] Failed to parse JSON response runner=%s path=%s status=%d rawText=%s",$.kind,X,H.status,N.slice(0,2000));let U=H.status>=500?" (server error)":H.status===0?" (no response)":"";throw Error(`Daemon ${X} returned invalid JSON (HTTP ${H.status}${U}): ${N.slice(0,800)}`)}if(!H.ok){console.error("[sandbox-fs-hooks] Non-OK response runner=%s path=%s status=%d body=%s",$.kind,X,H.status,N.slice(0,2000));let U=F.error??`Daemon ${X} failed (${H.status})`;if(H.status===404&&U==="sandbox not found")throw new Vn(Error(U),!0);throw Error(U)}return F}function y64($){let Z=[];for(let X of $.split(`
|
|
1196
|
+
`)}})}},Qm0={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};Ln=e0.record(e0.string(),pL.optional()),Ym0=U0(()=>s(e0.union([e0.strictObject({type:e0.literal("text-start"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("text-delta"),id:e0.string(),delta:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("text-end"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("error"),errorText:e0.string()}),e0.strictObject({type:e0.literal("tool-input-start"),toolCallId:e0.string(),toolName:e0.string(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-input-delta"),toolCallId:e0.string(),inputTextDelta:e0.string()}),e0.strictObject({type:e0.literal("tool-input-available"),toolCallId:e0.string(),toolName:e0.string(),input:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-input-error"),toolCallId:e0.string(),toolName:e0.string(),input:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),errorText:e0.string(),title:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-approval-request"),approvalId:e0.string(),toolCallId:e0.string(),signature:e0.string().optional()}),e0.strictObject({type:e0.literal("tool-output-available"),toolCallId:e0.string(),output:e0.unknown(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional(),preliminary:e0.boolean().optional()}),e0.strictObject({type:e0.literal("tool-output-error"),toolCallId:e0.string(),errorText:e0.string(),providerExecuted:e0.boolean().optional(),providerMetadata:H$.optional(),toolMetadata:Ln.optional(),dynamic:e0.boolean().optional()}),e0.strictObject({type:e0.literal("tool-output-denied"),toolCallId:e0.string()}),e0.strictObject({type:e0.literal("reasoning-start"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("reasoning-delta"),id:e0.string(),delta:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("reasoning-end"),id:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("source-url"),sourceId:e0.string(),url:e0.string(),title:e0.string().optional(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("source-document"),sourceId:e0.string(),mediaType:e0.string(),title:e0.string(),filename:e0.string().optional(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.literal("file"),url:e0.string(),mediaType:e0.string(),providerMetadata:H$.optional()}),e0.strictObject({type:e0.custom(($)=>typeof $==="string"&&$.startsWith("data-"),{message:'Type must start with "data-"'}),id:e0.string().optional(),data:e0.unknown(),transient:e0.boolean().optional()}),e0.strictObject({type:e0.literal("start-step")}),e0.strictObject({type:e0.literal("finish-step")}),e0.strictObject({type:e0.literal("start"),messageId:e0.string().optional(),messageMetadata:e0.unknown().optional()}),e0.strictObject({type:e0.literal("finish"),finishReason:e0.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:e0.unknown().optional()}),e0.strictObject({type:e0.literal("abort"),reason:e0.string().optional()}),e0.strictObject({type:e0.literal("message-metadata"),messageMetadata:e0.unknown()})])));K44=_G;H44=zn;F44=tJ({prefix:"aitxt",size:24}),U44={file:!0,source:!0,"text-start":!0,"text-end":!0,"text-delta":!0,"reasoning-start":!0,"reasoning-end":!0,"reasoning-delta":!0,"tool-input-start":!0,"tool-input-end":!0,"tool-input-delta":!0,"tool-approval-request":!0,"tool-call":!0,"tool-result":!0,"tool-error":!0,"stream-start":!1,"response-metadata":!1,finish:!1,error:!1,raw:!1};qQ=J0.record(J0.string(),pL.optional()),L44=U0(()=>s(J0.array(J0.object({id:J0.string(),role:J0.enum(["system","user","assistant"]),metadata:J0.unknown().optional(),parts:J0.array(J0.union([J0.object({type:J0.literal("text"),text:J0.string(),state:J0.enum(["streaming","done"]).optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("reasoning"),text:J0.string(),state:J0.enum(["streaming","done"]).optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("source-url"),sourceId:J0.string(),url:J0.string(),title:J0.string().optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("source-document"),sourceId:J0.string(),mediaType:J0.string(),title:J0.string(),filename:J0.string().optional(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("file"),mediaType:J0.string(),filename:J0.string().optional(),url:J0.string(),providerMetadata:H$.optional()}),J0.object({type:J0.literal("step-start")}),J0.object({type:J0.string().startsWith("data-"),id:J0.string().optional(),data:J0.unknown()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-streaming"),input:J0.unknown().optional(),providerExecuted:J0.boolean().optional(),callProviderMetadata:H$.optional(),output:J0.never().optional(),errorText:J0.never().optional(),approval:J0.never().optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-available"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.never().optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-requested"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.never().optional(),reason:J0.never().optional(),signature:J0.string().optional()})}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-responded"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.boolean(),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-available"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.unknown(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),preliminary:J0.boolean().optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-error"),input:J0.unknown().optional(),rawInput:J0.unknown().optional(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.string(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.literal("dynamic-tool"),toolName:J0.string(),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-denied"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!1),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-streaming"),providerExecuted:J0.boolean().optional(),callProviderMetadata:H$.optional(),input:J0.unknown().optional(),output:J0.never().optional(),errorText:J0.never().optional(),approval:J0.never().optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("input-available"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.never().optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-requested"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.never().optional(),reason:J0.never().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("approval-responded"),input:J0.unknown(),providerExecuted:J0.boolean().optional(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.boolean(),reason:J0.string().optional(),signature:J0.string().optional()})}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-available"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.unknown(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),preliminary:J0.boolean().optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-error"),providerExecuted:J0.boolean().optional(),input:J0.unknown().optional(),rawInput:J0.unknown().optional(),output:J0.never().optional(),errorText:J0.string(),callProviderMetadata:H$.optional(),resultProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!0),reason:J0.string().optional(),signature:J0.string().optional()}).optional()}),J0.object({type:J0.string().startsWith("tool-"),toolCallId:J0.string(),toolMetadata:qQ.optional(),state:J0.literal("output-denied"),providerExecuted:J0.boolean().optional(),input:J0.unknown(),output:J0.never().optional(),errorText:J0.never().optional(),callProviderMetadata:H$.optional(),approval:J0.object({id:J0.string(),approved:J0.literal(!1),reason:J0.string().optional(),signature:J0.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));q44=V90,M44={type:"no-schema",jsonSchema:async()=>{return},async validatePartialResult({value:$,textDelta:Z}){return{success:!0,value:{partial:$,textDelta:Z}}},async validateFinalResult($,Z){return $===void 0?{success:!1,error:new kQ({message:"No object generated: response did not match schema.",text:Z.text,response:Z.response,usage:Z.usage,finishReason:Z.finishReason})}:{success:!0,value:$}},createElementStream(){throw new T4({functionality:"element streams in no-schema mode"})}};C44=tJ({prefix:"aiobj",size:24});x44=tJ({prefix:"aiobj",size:24});h44=class extends _w{constructor({data:$,mediaType:Z}){super({data:$,mediaType:Z});let X="mp3";if(Z){let Q=Z.split("/");if(Q.length===2){if(Z!=="audio/mpeg")X=Q[1]}}if(!X)throw Error("Audio format must be provided or determinable from media type");this.format=X}};l44={word:/\S+\s+/m,line:/\n+/m};m44=Nm0();K64=t6$,r6$=`vercel.ai.error.${o6$}`,H64=Symbol.for(r6$),s6$=class extends q5{constructor({modelId:$,modelType:Z,providerId:X,availableProviders:Q,message:Y=`No such provider: ${X} (available providers: ${Q.join()})`}){super({errorName:o6$,modelId:$,modelType:Z,message:Y});this[a6$]=!0,this.providerId=X,this.availableProviders=Q}static isInstance($){return G1.hasMarker($,r6$)}};a6$=H64;N64=e6$;w64=Nm0();Z5$=class extends wm0{constructor($={}){super($)}processResponseStream($){return iH({stream:$,schema:Ym0}).pipeThrough(new TransformStream({async transform(Z,X){if(!Z.success)throw Z.error;X.enqueue(Z.value)}}))}};R64=class extends wm0{constructor($={}){super($)}processResponseStream($){return T64({stream:$.pipeThrough(new TextDecoderStream)})}}});import{z as I64}from"zod";function eL($){return $==="cluster"?"agent-sandbox":$}function Bm0($){return`${$.userId}:${$.projectRef}`}var q64;var C90=B(()=>{q64=I64.enum(["agent-sandbox","user-desktop"])});class _90{map=new Map;async run($,Z){let X=this.map.get($);if(X)return X;let Q=Z();this.map.set($,Q);try{return await Q}finally{this.map.delete($)}}}function v90($,Z,X,Q){if(!$)return Q(null);if(!$.withLock)return Q($);return $.withLock(Z,X,Q)}function kn($){if("threadId"in $){if(!$.threadId)throw Error("composeSandboxRef: threadId required");return`thread:${$.threadId}`}if(!$.orgId||!$.virtualMcpId||!$.branch)throw Error("composeSandboxRef: orgId, virtualMcpId and branch are all required for agent refs");return`agent:${$.orgId}:${$.virtualMcpId}:${$.branch}`}function X5$($){if($.startsWith("thread:"))return $.slice(7);if(!$.startsWith("agent:"))return"";let Z=$.split(":");return Z.length>=4?Z.slice(3).join(":"):""}import{createHash as M64}from"crypto";function S64($,Z=16){return M64("sha256").update(Bm0($)).digest("hex").slice(0,Z)}function $E($){let Z=S64($),X=V64(X5$($.projectRef));return X?`${X}-${Z}`:`s-${Z}`}function V64($){if(!$)return"";return($.split("/").pop()??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,k64).replace(/-+$/g,"")}var k64=24;var Q5$=B(()=>{C90()});function b90($,Z){let X=$.replace(/\/+$/,"");if(X.includes("{handle}"))return`${X.replace("{handle}",Z)}/`;try{let Q=new URL(X);return Q.hostname=`${Z}.${Q.hostname}`,`${Q.toString()}/`}catch{return`${X}/${Z}/`}}function Sn($){let Z=$?.userName?.trim();if(!Z||Y5$.test(Z))return null;let X=$?.userEmail?.trim();if(!X||Y5$.test(X))return{userName:Z};if(!C64.test(X))return{userName:Z};return{userName:Z,userEmail:X}}var Y5$,C64;var Dm0=B(()=>{Y5$=/[\r\n<>]/,C64=/^[^\s@<>]+@[^\s@<>]+\.[^\s@<>]+$/});function f90($){let Z=$.repo,X=Z?{repository:{cloneUrl:Z.cloneUrl,repoName:Z.displayName??_64(Z.cloneUrl),...Z.branch?{branch:Z.branch}:{},...Z.submoduleCredentials&&Z.submoduleCredentials.length>0?{submoduleCredentials:Z.submoduleCredentials}:{}},...Z.userName.trim()||Z.userEmail.trim()?{identity:{userName:Z.userName,userEmail:Z.userEmail}}:{}}:void 0,Q=$.tenant,Y=Sn({userName:Q?.userName,userEmail:Q?.userEmail})??void 0,G=$.packageManager?{name:$.packageManager.name,...$.packageManager.path?{path:$.packageManager.path}:{}}:void 0,J=G?{packageManager:G,runtime:$.runtime,...$.port!==void 0?{port:$.port}:{}}:void 0,W=Q?.orgId;if(!X&&!J&&!Y&&!$.cloneOnly&&!W)return null;return{...X?{git:X}:{},...Y?{operator:Y}:{},...W?{orgId:W}:{},...$.cloneOnly!==void 0?{cloneOnly:$.cloneOnly}:{},...J?{application:J}:{}}}function _64($){try{let Z=new URL($);return Z.pathname.replace(/^\/+/,"").replace(/\.git$/,"")||Z.hostname}catch{return $}}var G5$=B(()=>{Dm0()});function v64($){try{return new URL($).username.length>0}catch{return!1}}function Lm0($){let Z=$.repo?.cloneUrl;if(!Z||!v64(Z))return null;return{git:{repository:{cloneUrl:Z}}}}var Em0=B(()=>{Q5$();G5$()});function b64($){return(typeof $.timeout==="number"&&$.timeout>0?Math.min($.timeout,120000):30000)+15000}function f64($,Z){if($.aborted)return Z.catch(()=>{}),Promise.reject($.reason??Error("aborted"));return new Promise((X,Q)=>{let Y=()=>{Z.catch(()=>{}),Q($.reason??Error("aborted"))};$.addEventListener("abort",Y,{once:!0}),Z.then(X,Q).finally(()=>{$.removeEventListener("abort",Y)})})}async function x64($,Z,X,Q,Y="POST",G){let J=G?.timeoutMs??b64(Q??{}),W=AbortSignal.timeout(J),K=G?.signal?AbortSignal.any([G.signal,W]):W,H,N;try{let U=new Headers({"content-type":"application/json"});if(G?.threadId)U.set("x-thread-id",G.threadId);let w={method:Y,headers:U,body:null,signal:K};if(Y!=="GET"&&Q!==null)w.body=JSON.stringify(Q);({res:H,rawText:N}=await f64(K,(async()=>{let O=await $.proxyDaemonRequest(Z,X,w);return{res:O,rawText:await O.text()}})()))}catch(U){if(G?.signal?.aborted)throw U;if(W.aborted)throw Error(`Sandbox ${Y} ${X} timed out after ${Math.round(J/1000)}s \u2014 the sandbox may be overloaded or its filesystem stalled. Retry, or use a smaller operation.`);throw new Vn(U)}let F;try{F=JSON.parse(N)}catch{console.error("[sandbox-fs-hooks] Failed to parse JSON response runner=%s path=%s status=%d rawText=%s",$.kind,X,H.status,N.slice(0,2000));let U=H.status>=500?" (server error)":H.status===0?" (no response)":"";throw Error(`Daemon ${X} returned invalid JSON (HTTP ${H.status}${U}): ${N.slice(0,800)}`)}if(!H.ok){console.error("[sandbox-fs-hooks] Non-OK response runner=%s path=%s status=%d body=%s",$.kind,X,H.status,N.slice(0,2000));let U=F.error??`Daemon ${X} failed (${H.status})`;if(H.status===404&&U==="sandbox not found")throw new Vn(Error(U),!0);throw Error(U)}return F}function y64($){let Z=[];for(let X of $.split(`
|
|
1197
1197
|
`)){if(!X)continue;let Q=X.indexOf(":");if(Q<0)continue;let Y=X.indexOf(":",Q+1);if(Y<0)continue;let G=X.slice(0,Q),J=Number.parseInt(X.slice(Q+1,Y),10);if(!Number.isFinite(J))continue;Z.push({file:G,line:J,text:X.slice(Y+1)})}return Z}function jm0($,Z){let{ensureHandle:X,invalidateHandle:Q,canAutoRestart:Y}=Z,G=(W)=>{let K=W instanceof Error?W.message:String(W);return Y?`Sandbox is unreachable and auto-restart did not recover it: ${K}`:"The sandbox is not running. Ask the user to start it by clicking the server button (left side of the header bar)."},J=async(W,K,H="POST",N)=>{let F=async(w)=>x64($,w,W,K,H,{signal:N,timeoutMs:Z.opTimeoutMs,threadId:Z.threadId}),U=await X();try{return await F(U)}catch(w){if(!(w instanceof Vn))throw w;if(!Y&&!w.gone)throw Error(G(w.cause??w));console.warn(`[sandbox-fs-hooks] daemon ${W} unreachable \u2014 reaping sandbox and retrying once`,w.cause??w);try{await Q({force:w.gone})}catch(D){console.warn("[sandbox-fs-hooks] invalidateHandle failed",D)}let O;try{O=await X()}catch(D){throw Error(`Failed to restart sandbox: ${D instanceof Error?D.message:String(D)}`)}try{return await F(O)}catch(D){if(D instanceof Vn)throw Error(G(D.cause??D));throw D}}};return{onProxy:(W,K,H,N)=>J(W,K,H,N),onRead:async(W)=>{return(await J("/_sandbox/read",{path:W})).content},onWrite:async(W,K)=>{await J("/_sandbox/write",{path:W,content:K})},onEdit:async(W,K)=>{for(let H of K)await J("/_sandbox/edit",{path:W,old_string:H.oldText,new_string:H.newText,replace_all:H.replaceAll===!0})},onBash:async(W,K)=>{return await J("/_sandbox/bash",{command:W,...K?.cwd!==void 0?{cwd:K.cwd}:{},...K?.timeoutMs!==void 0?{timeout:K.timeoutMs}:{}})},onGlob:async(W)=>{return(await J("/_sandbox/glob",{pattern:W})).files},onGrep:async(W,K)=>{let H=await J("/_sandbox/grep",{pattern:W,output_mode:"content",...K?.path!==void 0?{path:K.path}:{},...K?.glob!==void 0?{glob:K.glob}:{},...K?.caseInsensitive?{ignore_case:!0}:{}});return y64(H.results)}}}var Vn;var J5$=B(()=>{Vn=class Vn extends Error{code="DAEMON_UNREACHABLE";gone;constructor($,Z=!1){super($ instanceof Error?$.message:"Daemon proxy failed");if(this.gone=Z,$ instanceof Error)this.cause=$}}});function g64($){return $==="agent-sandbox"||$==="cluster"||$==="user-desktop"}function ZE(){let $=process.env.STUDIO_SANDBOX_PROVIDER,Z=$&&$.length>0?$:"user-desktop";if(!g64(Z))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${$}" \u2014 expected "agent-sandbox", "cluster", or "user-desktop".`);return eL(Z)}var UN=B(()=>{C90();C90();Em0();J5$()});function C5($){if(!$||typeof $!=="object")return{};let Z=$.sandboxMap;if(!Z||typeof Z!=="object")return{};return Z}function eW($,Z,X,Q){let Y=$[Z]?.[X];if(!Y)return null;return TJ(Y)[Q]??null}function Cn($,Z,X,Q,Y){let J={...TJ($[Z]?.[X]),[Q]:Y};return{...$,[Z]:{...$[Z]??{},[X]:J}}}async function W5$($,Z,X,Q,Y,G,J){let W=await $.findById(Z);if(!W)return;let K=W.metadata??{},H=Cn(C5(K),Q,Y,G,J);await $.update(Z,X,{metadata:{...K,sandboxMap:H}})}function zm0($,Z,X,Q){let Y=TJ($[Z]?.[X]);if(!Y[Q])return null;let G={...Y};delete G[Q];let J={...$[Z]??{}};if(Object.keys(G).length===0)delete J[X];else J[X]=G;let W={...$};if(Object.keys(J).length===0)delete W[Z];else W[Z]=J;return W}async function gw($,Z,X,Q,Y,G){let J=await $.findById(Z);if(!J)return;let W=J.metadata??{},K=zm0(C5(W),Q,Y,G);if(!K)return;await $.update(Z,X,{metadata:{...W,sandboxMap:K}})}var SQ=B(()=>{B8()});import{createHash as h64}from"crypto";import{sql as x90}from"kysely";function u64($,Z){return h64("sha256").update($.userId).update("\x00").update($.projectRef).update("\x00").update(Z).digest().readBigInt64BE(0)}async function H5$($,Z,X){let Q=await $.selectFrom("sandbox_runner_state").select(["handle","state","updated_at"]).where("user_id","=",Z.userId).where("project_ref","=",Z.projectRef).where("sandbox_provider_kind","=",X).executeTakeFirst();if(!Q)return null;return{handle:Q.handle,state:Q.state,updatedAt:Q.updated_at}}async function N5$($,Z,X){let Q=await $.selectFrom("sandbox_runner_state").select(["user_id","project_ref","handle","state","updated_at"]).where("sandbox_provider_kind","=",Z).where("handle","=",X).executeTakeFirst();if(!Q)return null;return{id:{userId:Q.user_id,projectRef:Q.project_ref},handle:Q.handle,state:Q.state,updatedAt:Q.updated_at}}async function F5$($,Z,X,Q){let Y=JSON.stringify(Q.state),G=new Date().toISOString();await $.insertInto("sandbox_runner_state").values({user_id:Z.userId,project_ref:Z.projectRef,sandbox_provider_kind:X,handle:Q.handle,state:Y,updated_at:G}).onConflict((J)=>J.columns(["user_id","project_ref","sandbox_provider_kind"]).doUpdateSet({handle:Q.handle,state:Y,updated_at:G})).execute()}async function U5$($,Z,X){await $.deleteFrom("sandbox_runner_state").where("user_id","=",Z.userId).where("project_ref","=",Z.projectRef).where("sandbox_provider_kind","=",X).execute()}async function w5$($,Z,X){await $.deleteFrom("sandbox_runner_state").where("sandbox_provider_kind","=",Z).where("handle","=",X).execute()}function c64($){return{get:(Z,X)=>H5$($,Z,X),getByHandle:(Z,X)=>N5$($,Z,X),put:(Z,X,Q)=>F5$($,Z,X,Q),delete:(Z,X)=>U5$($,Z,X),deleteByHandle:(Z,X)=>w5$($,Z,X)}}class _n{db;constructor($){this.db=$}get($,Z){return H5$(this.db,$,Z)}getByHandle($,Z){return N5$(this.db,$,Z)}put($,Z,X){return F5$(this.db,$,Z,X)}delete($,Z){return U5$(this.db,$,Z)}deleteByHandle($,Z){return w5$(this.db,$,Z)}async withLock($,Z,X){let Q=u64($,Z);return this.db.transaction().execute(async(Y)=>{try{await x90`set local statement_timeout = ${x90.lit(K5$)}`.execute(Y),await x90`select pg_advisory_xact_lock(${Q}::bigint)`.execute(Y)}catch(G){if(l64(G))throw Error(`sandbox advisory lock busy >${K5$}ms for user=${$.userId} projectRef=${$.projectRef} kind=${Z} \u2014 provisioner is slow or stuck; retry shortly`);throw G}return await x90`set local statement_timeout = 0`.execute(Y),X(c64(Y))})}}function l64($){if(!($ instanceof Error))return!1;return $.code==="57014"||/statement timeout/i.test($.message)}var K5$=90000;var Pm0=()=>{};function B5$($,Z){return`${$}::${Z}`}var O5$;var D5$=B(()=>{O5$={githubNotAuthenticated:"GITHUB_NOT_AUTHENTICATED"}});function L5$($,Z){return{cloneUrl:`https://github.com/${$}/${Z}.git`,gitUserName:y90.name,gitUserEmail:y90.email}}async function Cx($){let Z=await $.ctx.storage.connections.findById($.connectionId,$.organizationId),X=Z?AZ(Z):null;if(!Z||!X?.sourceConnectionId)return;try{await T50($.ctx,Z,{forceRefresh:$.forceRefresh})}catch(Q){$.onLegacyMintError?.(Q)}}async function hw($,Z,X,Q,Y,G){let J=new E5(Q,Y),W=await $N({connectionId:$,tokenStorage:J,bufferMs:G?.bufferMs});if(!W.accessToken)throw Error(B5$(O5$.githubNotAuthenticated,W.state==="refresh_failed"?i7:"No GitHub token found. Ensure the mcp-github connection is authenticated."));let K=W.accessToken,H=`https://x-access-token:${K}@github.com/${Z}/${X}.git`,N=y90.name,F=y90.email;if(!K.startsWith("ghs_"))try{let U=await fetch("https://api.github.com/user",{headers:{Authorization:`token ${K}`,Accept:"application/vnd.github+json"}});if(U.ok){let w=await U.json();N=w.name||w.login,F=w.email||`${w.login}@users.noreply.github.com`}}catch{}return{cloneUrl:H,gitUserName:N,gitUserEmail:F}}var y90;var vn=B(()=>{ic0();Q3();Aw();Y3();D5$();y90={name:"Deco Bot",email:"114028756+decobot@users.noreply.github.com"}});function E5$($){try{let[Z,X]=new URL($).pathname.replace(/^\//,"").split("/"),Q=X?.replace(/\.git$/,"");return Z&&Q?{owner:Z,name:Q}:null}catch{return null}}function b5$($){return typeof $>"u"||$===null}function d64($){return typeof $==="object"&&$!==null}function m64($){if(Array.isArray($))return $;else if(b5$($))return[];return[$]}function i64($,Z){var X,Q,Y,G;if(Z){G=Object.keys(Z);for(X=0,Q=G.length;X<Q;X+=1)Y=G[X],$[Y]=Z[Y]}return $}function n64($,Z){var X="",Q;for(Q=0;Q<Z;Q+=1)X+=$;return X}function p64($){return $===0&&Number.NEGATIVE_INFINITY===1/$}function f5$($,Z){var X="",Q=$.reason||"(unknown reason)";if(!$.mark)return Q;if($.mark.name)X+='in "'+$.mark.name+'" ';if(X+="("+($.mark.line+1)+":"+($.mark.column+1)+")",!Z&&$.mark.snippet)X+=`
|
|
1198
1198
|
|
|
1199
1199
|
`+$.mark.snippet;return Q+" "+X}function fn($,Z){if(Error.call(this),this.name="YAMLException",this.reason=$,this.mark=Z,this.message=f5$(this,!1),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor);else this.stack=Error().stack||""}function Am0($,Z,X,Q,Y){var G="",J="",W=Math.floor(Y/2)-1;if(Q-Z>W)G=" ... ",Z=Q-W+G.length;if(X-Q>W)J=" ...",X=Q+W-J.length;return{str:G+$.slice(Z,X).replace(/\t/g,"\u2192")+J,pos:Q-Z+G.length}}function Tm0($,Z){return $Z.repeat(" ",Z-$.length)+$}function $54($,Z){if(Z=Object.create(Z||null),!$.buffer)return null;if(!Z.maxLength)Z.maxLength=79;if(typeof Z.indent!=="number")Z.indent=1;if(typeof Z.linesBefore!=="number")Z.linesBefore=3;if(typeof Z.linesAfter!=="number")Z.linesAfter=2;var X=/\r?\n|\r|\0/g,Q=[0],Y=[],G,J=-1;while(G=X.exec($.buffer))if(Y.push(G.index),Q.push(G.index+G[0].length),$.position<=G.index&&J<0)J=Q.length-2;if(J<0)J=Q.length-1;var W="",K,H,N=Math.min($.line+Z.linesAfter,Y.length).toString().length,F=Z.maxLength-(Z.indent+N+3);for(K=1;K<=Z.linesBefore;K++){if(J-K<0)break;H=Am0($.buffer,Q[J-K],Y[J-K],$.position-(Q[J]-Q[J-K]),F),W=$Z.repeat(" ",Z.indent)+Tm0(($.line-K+1).toString(),N)+" | "+H.str+`
|
|
@@ -2726,7 +2726,7 @@ Do NOT require review (requiresReview = false) when the changes are low-risk, su
|
|
|
2726
2726
|
|
|
2727
2727
|
When unsure between the two, lean toward NOT requiring review for small frontend-only diffs, and toward requiring it for anything backend or large.
|
|
2728
2728
|
|
|
2729
|
-
Respond with the structured verdict and a short reason.`,N_$;var U_$=B(()=>{S4();XO();_81();v$6=v81.object({requiresReview:v81.boolean().describe("true if the changes should go through pull-request review"),reason:v81.string().describe("One short sentence explaining the decision (max ~120 chars)")});N_$={requiresReview:!1,reason:""}});function y$6($){if(!$||$.includes(".."))return!1;return x$6.test($)}function w_$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!y$6(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function O_$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var x$6;var B_$=B(()=>{x$6=/^[\w./@-]+$/});function b81($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function D_$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function L_$($,Z,X,Q){if(!Q.connectionId)throw new ug("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new ug(i7);await Cx({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:i7;throw new ug(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await hw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Yj0($),H=await Z.proxyDaemonRequest(X,"/_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(!H.ok){let N=await ZO(H,g$6).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var g$6=10485760,ug;var E_$=B(()=>{Aw();I81();Hp();vn();ug=class ug extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function u$6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!h$6.test(Z))throw Error(`Invalid branch name: ${$}`)}function gC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(l$6)])}function hC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function f81($,Z){let Q=(Gj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return Gj0.set($,Y),Y.finally(()=>{if(Gj0.get($)===Y)Gj0.delete($)}),Q}async function vZ($,Z,X){let Q=hC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.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",...yY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?m$6(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...yY}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function m$6($){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 Jj0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,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,X,{method:Q,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)try{let W=JSON.parse(J);throw Error(W.error??`Daemon error (${G.status})`)}catch(W){if(W instanceof Error&&W.message!==J)throw W;throw Error(`Daemon error (${G.status})`)}return JSON.parse(J)}function i$6($){return P_$.includes($)}var h$6,j_$=524288,c$6=65536,l$6=1e4,z_$=2000,d$6,Gj0,yY,P_$,A_$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",d$6),$.post("/:virtualMcpId/:branch/write",(Z)=>vZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>vZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>vZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>vZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>vZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>vZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>vZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return vZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return vZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>vZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>vZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!i$6(X))return Z.json({error:`step must be one of: ${P_$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=r(Z.var.studioContext),G=Nw0(Q.virtualMcpMetadata);try{await Fw0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return vZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return eN(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return Y_$(Z,{ctx:Z.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",(Z)=>vZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(z_$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>vZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(z_$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>vZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return f81(Q,async()=>{try{await q81(J,X,Q);let W=D_$(Y,G);if(W)await L_$(J,X,Q,W)}catch(W){if(W instanceof ug)return Z.json({error:W.message},403,yY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,yY)}return vZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return f81(X,()=>vZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return f81(Q,async()=>{try{await q81(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,yY)}return vZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",GZ({maxSize:j_$,onError:(Z)=>Z.json({error:"Payload too large"},413,yY)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=S81(K)&&N?[K,H]:await Promise.all([Jj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Jj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await H_$(J,F,U);return Z.json(w,200,yY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,yY);return Z.json({error:K},502,yY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",GZ({maxSize:j_$,onError:(Z)=>Z.json({error:"Payload too large"},413,yY)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=S81(K)&&N?[K,H]:await Promise.all([Jj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Jj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await F_$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,yY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,yY);return Z.json({error:K},502,yY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=b81(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",GZ({maxSize:c$6,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=w_$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=O_$(Y,J.resolveType),K=b81(W),H;try{H=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var T_$=B(()=>{v8();hO();hg();$_$();UN();X_$();P3();sw();Q_$();G_$();cn0();Kp();_81();U_$();B_$();E_$();h$6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;d$6=eC$(async($,Z)=>{let X=$.var.studioContext;try{$0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=r(X)}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{u$6(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=kn({orgId:Y.id,virtualMcpId:G,branch:J}),H=await PN(X,J,Q),N=Z_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await hX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Gj0=new Map;yY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};P_$=["clone","install","start"]});var R_$=($)=>{let Z=new B1;if(Z.use("*",SC),Z.route("/",PE0()),Z.route("/",yk$()),Z.route("/",uC$()),Z.route("/",yC$()),Z.route("/",Zj0()),Z.route("/tools",pC$()),Z.route("/",mC$()),Z.route("/",jC$({kvStorage:$.kvStorage})),Z.route("/",LC$()),Z.route("/fs",VC$({getConnection:$.getNatsConnection})),Z.route("/sandbox",A_$()),Z.route("/",bC$()),Z.route("/deco-sites",TE0()),Z.route("/sso",OE0()),Z.route("/",Xj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Sk$()),$.mountDevAssets)Z.route("/dev-assets",RE0({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("/",rs1()),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",_C$()),Z.route("/mcp",oO0()),Z.route("/mcp/self",$j0()),Z.route("/mcp",sO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var I_$=B(()=>{v8();n11();Vk$();a11();IE0();$o();m11();EC$();zC$();CC$();yi();f11();eO0();E81();vC$();fC$();gC$();cC$();iC$();z81();tC$();P81();rO0();T_$()});function p$6($){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}}))}async function t$6($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(n$6)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var n$6=1e4,o$6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},q_$=()=>{let $=new B1;return $.use("*",o$6),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await t$6(Q,Y);return Z.json({apps:p$6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var M_$=B(()=>{v8();S$()});import{z as M1}from"zod";function bK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function G86($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function J86($,Z,X){try{return JSON.parse($)}catch{throw new V_$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function W86($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:J86(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function K86($){let Z=$.map((X)=>{let Q=X.function.parameters?LY(X.function.parameters):LY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function H86($){if(!$)return;return{openai:{response_format:$}}}function N86(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function k_$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function S_$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var r$6=256,a$6,s$6,e$6,$86,Z86,X86,Q86,Y86,V_$,C_$,__$;var v_$=B(()=>{S4();v8();hg();_N();a$6=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),s$6=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),e$6=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(s$6).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),$86=M1.object({type:M1.literal("text")}),Z86=M1.object({type:M1.literal("json_object")}),X86=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),Q86=M1.union([$86,Z86,X86]),Y86=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(e$6),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(a$6).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:Q86.optional(),user:M1.string().optional()});V_$=class V_$ extends Error{constructor($){super($);this.name="MessageConversionError"}};C_$=new B1;C_$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(bK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=Y86.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=G86(G.model);if(!J)return $.json(bK("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)=>sB(j.providerId));if(!E)return $.json(bK("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 H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=W86(G.messages),U=G.tools?K86(G.tools):void 0,w=H86(G.response_format),O=N86(),D=Math.floor(Date.now()/1000);if(G.stream)return eN($,async(L)=>{let E=k_$(N,F,U,G,w,$.req.raw.signal);try{let j=yw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,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:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=r$6)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:S_$(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 M(),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=k_$(N,F,U,G,w,$.req.raw.signal),E=await fw(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:D,model:G.model,choices:[{index:0,message:j,finish_reason:S_$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(bK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bK(Y.message,"server_error"),500)}});__$=C_$});var f_$;var b_$=B(()=>{f_$={name:"decocms",version:"4.196.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.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","@nats-io/jwt":"0.0.10-5","@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 w86(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??U86}}var x_$,U86="https://ph.studio.decocms.com",y_$;var g_$=B(()=>{v8();mC0();cV();BZ();S$();V11();b_$();x_$=new B1;x_$.get("/",($)=>{let Z={version:f_$.version,theme:eM1(),...QD().logo&&{logo:QD().logo},...NK()&&{internalUrl:Zq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:mM$(),posthog:w86(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!NK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});y_$=x_$});function cg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function x81($){return(cg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function u_$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(cg($))}&sz=${Z}`}function h_$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function c_$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/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()?h_$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):h_$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var uC,O86,B86,D86,L86,l_$;var d_$=B(()=>{uC=l0.enum(["good","bad","neutral"]),O86=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="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:uC.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 $})),B86=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(O86)),D86={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()},L86=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:uC.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:uC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:uC.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:uC.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(B86).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:uC.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:uC.optional()})).min(1)})]),l_$=l0.object({...D86,template:L86})});function Wj0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=l_$.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),Q=X.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:Q},slides:X},drops:Z}}var y81=B(()=>{d_$()});import{join as m_$}from"path";async function j86($){try{let Z=await fetch(`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(E86)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Wj0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||x81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function gY($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function z86($,Z){let X=cg($),Q=Z?.brand?.trim()||x81(X),Y=u_$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=c_$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${gY(W)}</title>`,`<meta name="description" content="${gY(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="${gY(W)}" />`,`<meta property="og:description" content="${gY(K)}" />`,`<meta property="og:url" content="${gY(J)}" />`,`<meta property="og:image" content="${gY(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${gY(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${gY(W)}" />`,`<meta name="twitter:description" content="${gY(K)}" />`,`<meta name="twitter:image" content="${gY(H)}" />`,`<meta name="twitter:image:alt" content="${gY(N)}" />`,`<link rel="canonical" href="${gY(J)}" />`,`<link rel="icon" href="${gY(Y)}" sizes="any" />`].join(`
|
|
2729
|
+
Respond with the structured verdict and a short reason.`,N_$;var U_$=B(()=>{S4();XO();_81();v$6=v81.object({requiresReview:v81.boolean().describe("true if the changes should go through pull-request review"),reason:v81.string().describe("One short sentence explaining the decision (max ~120 chars)")});N_$={requiresReview:!1,reason:""}});function y$6($){if(!$||$.includes(".."))return!1;return x$6.test($)}function w_$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!y$6(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function O_$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var x$6;var B_$=B(()=>{x$6=/^[\w./@-]+$/});function b81($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function D_$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function L_$($,Z,X,Q){if(!Q.connectionId)throw new ug("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new ug(i7);await Cx({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:i7;throw new ug(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await hw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Yj0($),H=await Z.proxyDaemonRequest(X,"/_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(!H.ok){let N=await ZO(H,g$6).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var g$6=10485760,ug;var E_$=B(()=>{Aw();I81();Hp();vn();ug=class ug extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function u$6($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!h$6.test(Z))throw Error(`Invalid branch name: ${$}`)}function gC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(l$6)])}function hC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function f81($,Z){let Q=(Gj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return Gj0.set($,Y),Y.finally(()=>{if(Gj0.get($)===Y)Gj0.delete($)}),Q}async function vZ($,Z,X){let Q=hC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.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",...yY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?m$6(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...yY}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function m$6($){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 Jj0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,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,X,{method:Q,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)try{let W=JSON.parse(J);throw Error(W.error??`Daemon error (${G.status})`)}catch(W){if(W instanceof Error&&W.message!==J)throw W;throw Error(`Daemon error (${G.status})`)}return JSON.parse(J)}function i$6($){return P_$.includes($)}var h$6,j_$=524288,c$6=65536,l$6=1e4,z_$=2000,d$6,Gj0,yY,P_$,A_$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",d$6),$.post("/:virtualMcpId/:branch/write",(Z)=>vZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>vZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>vZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>vZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>vZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>vZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>vZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:gC(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return vZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return vZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>vZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>vZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!i$6(X))return Z.json({error:`step must be one of: ${P_$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=r(Z.var.studioContext),G=Nw0(Q.virtualMcpMetadata);try{await Fw0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return vZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return eN(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return Y_$(Z,{ctx:Z.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",(Z)=>vZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(z_$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>vZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(z_$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>vZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return f81(Q,async()=>{try{await q81(J,X,Q);let W=D_$(Y,G);if(W)await L_$(J,X,Q,W)}catch(W){if(W instanceof ug)return Z.json({error:W.message},403,yY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,yY)}return vZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return f81(X,()=>vZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return f81(Q,async()=>{try{await q81(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,yY)}return vZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",GZ({maxSize:j_$,onError:(Z)=>Z.json({error:"Payload too large"},413,yY)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=S81(K)&&N?[K,H]:await Promise.all([Jj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Jj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await H_$(J,F,U);return Z.json(w,200,yY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,yY);return Z.json({error:K},502,yY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",GZ({maxSize:j_$,onError:(Z)=>Z.json({error:"Payload too large"},413,yY)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=S81(K)&&N?[K,H]:await Promise.all([Jj0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),Jj0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await F_$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,yY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,yY);return Z.json({error:K},502,yY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=b81(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",GZ({maxSize:c$6,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=hC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=w_$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=O_$(Y,J.resolveType),K=b81(W),H;try{H=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var T_$=B(()=>{v8();hO();hg();$_$();UN();X_$();P3();sw();Q_$();G_$();cn0();Kp();_81();U_$();B_$();E_$();h$6=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;d$6=eC$(async($,Z)=>{let X=$.var.studioContext;try{$0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=r(X)}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{u$6(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=kn({orgId:Y.id,virtualMcpId:G,branch:J}),H=await PN(X,J,Q),N=Z_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await hX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Gj0=new Map;yY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};P_$=["clone","install","start"]});var R_$=($)=>{let Z=new B1;if(Z.use("*",SC),Z.route("/",PE0()),Z.route("/",yk$()),Z.route("/",uC$()),Z.route("/",yC$()),Z.route("/",Zj0()),Z.route("/tools",pC$()),Z.route("/",mC$()),Z.route("/",jC$({kvStorage:$.kvStorage})),Z.route("/",LC$()),Z.route("/fs",VC$({getConnection:$.getNatsConnection})),Z.route("/sandbox",A_$()),Z.route("/",bC$()),Z.route("/deco-sites",TE0()),Z.route("/sso",OE0()),Z.route("/",Xj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",Sk$()),$.mountDevAssets)Z.route("/dev-assets",RE0({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("/",rs1()),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",_C$()),Z.route("/mcp",oO0()),Z.route("/mcp/self",$j0()),Z.route("/mcp",sO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var I_$=B(()=>{v8();n11();Vk$();a11();IE0();$o();m11();EC$();zC$();CC$();yi();f11();eO0();E81();vC$();fC$();gC$();cC$();iC$();z81();tC$();P81();rO0();T_$()});function p$6($){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}}))}async function t$6($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(n$6)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var n$6=1e4,o$6=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},q_$=()=>{let $=new B1;return $.use("*",o$6),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await t$6(Q,Y);return Z.json({apps:p$6(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var M_$=B(()=>{v8();S$()});import{z as M1}from"zod";function bK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function G86($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function J86($,Z,X){try{return JSON.parse($)}catch{throw new V_$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function W86($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:J86(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function K86($){let Z=$.map((X)=>{let Q=X.function.parameters?LY(X.function.parameters):LY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function H86($){if(!$)return;return{openai:{response_format:$}}}function N86(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function k_$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function S_$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var r$6=256,a$6,s$6,e$6,$86,Z86,X86,Q86,Y86,V_$,C_$,__$;var v_$=B(()=>{S4();v8();hg();_N();a$6=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),s$6=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),e$6=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(s$6).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),$86=M1.object({type:M1.literal("text")}),Z86=M1.object({type:M1.literal("json_object")}),X86=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),Q86=M1.union([$86,Z86,X86]),Y86=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(e$6),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(a$6).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:Q86.optional(),user:M1.string().optional()});V_$=class V_$ extends Error{constructor($){super($);this.name="MessageConversionError"}};C_$=new B1;C_$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(bK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(bK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(bK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=Y86.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(bK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=G86(G.model);if(!J)return $.json(bK("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)=>sB(j.providerId));if(!E)return $.json(bK("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 H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(bK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=W86(G.messages),U=G.tools?K86(G.tools):void 0,w=H86(G.response_format),O=N86(),D=Math.floor(Date.now()/1000);if(G.stream)return eN($,async(L)=>{let E=k_$(N,F,U,G,w,$.req.raw.signal);try{let j=yw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,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:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=r$6)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:S_$(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 M(),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=k_$(N,F,U,G,w,$.req.raw.signal),E=await fw(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:D,model:G.model,choices:[{index:0,message:j,finish_reason:S_$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(bK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(bK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(bK(Y.message,"server_error"),500)}});__$=C_$});var f_$;var b_$=B(()=>{f_$={name:"decocms",version:"4.196.3",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",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.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","@nats-io/jwt":"0.0.10-5","@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 w86(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??U86}}var x_$,U86="https://ph.studio.decocms.com",y_$;var g_$=B(()=>{v8();mC0();cV();BZ();S$();V11();b_$();x_$=new B1;x_$.get("/",($)=>{let Z={version:f_$.version,theme:eM1(),...QD().logo&&{logo:QD().logo},...NK()&&{internalUrl:Zq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:mM$(),posthog:w86(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!NK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});y_$=x_$});function cg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function x81($){return(cg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function u_$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(cg($))}&sz=${Z}`}function h_$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function c_$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/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()?h_$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):h_$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as l0}from"zod";var uC,O86,B86,D86,L86,l_$;var d_$=B(()=>{uC=l0.enum(["good","bad","neutral"]),O86=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="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:uC.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 $})),B86=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(O86)),D86={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()},L86=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:uC.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:uC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:uC.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:uC.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(B86).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:uC.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:uC.optional()})).min(1)})]),l_$=l0.object({...D86,template:L86})});function Wj0($){let Z=[],X=[...$.sections].sort((Y,G)=>Y.position-G.position).map((Y)=>{let G=l_$.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),Q=X.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:Q},slides:X},drops:Z}}var y81=B(()=>{d_$()});import{join as m_$}from"path";async function j86($){try{let Z=await fetch(`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(E86)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Wj0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||x81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function gY($){return $.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""")}function z86($,Z){let X=cg($),Q=Z?.brand?.trim()||x81(X),Y=u_$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=c_$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${gY(W)}</title>`,`<meta name="description" content="${gY(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="${gY(W)}" />`,`<meta property="og:description" content="${gY(K)}" />`,`<meta property="og:url" content="${gY(J)}" />`,`<meta property="og:image" content="${gY(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${gY(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${gY(W)}" />`,`<meta name="twitter:description" content="${gY(K)}" />`,`<meta name="twitter:image" content="${gY(H)}" />`,`<meta name="twitter:image:alt" content="${gY(N)}" />`,`<link rel="canonical" href="${gY(J)}" />`,`<link rel="icon" href="${gY(Y)}" sizes="any" />`].join(`
|
|
2730
2730
|
`)}function P86($,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}
|
|
2731
2731
|
</head>`)}function i_$($){let Z=new B1;return Z.get("/:domain/og.png",async(X)=>{let Q=cg(X.req.param("domain")),Y=async()=>{let G=$?Bun.file(m_$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return X.notFound();return X.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(`${jW({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(A86)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return X.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),Y=$?m_$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return X.notFound();let J=await G.text();try{let W=await j86(cg(Q)),K=z86(Q,W);return X.html(P86(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var E86=2500,A86=1e4;var n_$=B(()=>{v8();y81();VD();S$()});function Mo($,Z){return fetch(`${jW({})}${$}`,Z)}async function T86($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let Y=Q.toString()?`?${Q.toString()}`:"",G=await Mo(`/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}=Wj0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var R86,g3,Kj0=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},p_$;var t_$=B(()=>{v8();MG();VD();y81();R86=new Set(["complete","errored","terminated","unknown"]),g3=new B1;g3.use("*",async($,Z)=>{let X=await E8.api.getSession({headers:$.req.raw.headers});$.set("reportUser",X?.user?.id?{email:X.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});g3.use("/run",Kj0);g3.use("/status",Kj0);g3.use("/link-token/*",Kj0);g3.use("/suggest",Kj0);g3.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let X=$.get("reportUser"),Q=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await T86(Z,Q,Y);if($.header("Cache-Control","private, no-store"),X||!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)}});g3.post("/run",async($)=>{let Z=$.get("reportUser"),X;try{X=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let Q=typeof X.domain==="string"?X.domain.trim():"";if(!Q)return $.json({error:"domain is required"},400);let Y=Z.email,G=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await Mo("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${SD({})}`},body:JSON.stringify({url:Q,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)}});g3.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await Mo(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${SD({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let Y=(await X.json()).status??"unknown",G={done:R86.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});g3.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await Mo(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(X.status===404)return $.json(null);if(!X.ok)return $.json({error:`link token HTTP ${X.status}`},502);return $.json(await X.json())}catch{return $.json({error:"link token resolve failed"},502)}});g3.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await Mo(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!X.ok)return $.json({suggestions:[]});let Q=await X.json();return $.json({suggestions:Array.isArray(Q.suggestions)?Q.suggestions:[]})}catch{return $.json({suggestions:[]})}});p_$=g3});import{createHmac as I86,timingSafeEqual as q86}from"crypto";function r_$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let Y,G=[];for(let H of Z.split(",")){let N=H.indexOf("=");if(N<=0)continue;let F=H.slice(0,N).trim(),U=H.slice(N+1).trim();if(F==="t")Y=U;else if(F==="v1")G.push(U)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>M86)return!1;let W=I86("sha256",X).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((H)=>{let N=Buffer.from(H,"hex");return K.length===N.length&&q86(K,N)})}function a_$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=rG(Z),Q=rG(rG(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:fK(X.id),type:X.type,created:typeof X.created==="number"?X.created:void 0,livemode:typeof X.livemode==="boolean"?X.livemode:void 0,data:{object:Q}}}function s_$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function fK($){return typeof $==="string"?$:void 0}function rG($){return typeof $==="object"&&$!==null?$:void 0}function Hj0($){return typeof $==="number"?new Date($*1000):null}function u81($){return fK($)??fK(rG($)?.id)}function k86($){return u81($.subscription)??fK(rG(rG($.parent)?.subscription_details)?.subscription)}function S86($){let Z=Hj0($.current_period_end);if(Z)return Z;let X=rG($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let Y of X){let G=rG(Y)?.current_period_end;if(typeof G==="number"&&G>Q)Q=G}return Q>0?new Date(Q*1000):null}function g81($,Z){let X=Hj0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function h81($,Z){let X=Hj0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function V86($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=fK(rG(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(fK(rG(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(fK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=fK(X.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:Q}),{handled:!1,reason:"topup session without id"};let W=Number(rG(X.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:Q,creditCents:rG(X.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:Q,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(X.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(fK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(Q);if(!Y)return{handled:!1,reason:"unknown org"};let G=u81(X.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(g81(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:u81(X.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:h81(Z,Y)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=fK(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&g81(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":s_$(X.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:S86(X),...G&&{stripeSubscriptionId:null},lastStripeEventAt:h81(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let Q=k86(X);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};if(g81(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:Hj0(X.period_end),lastStripeEventAt:h81(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function C86($,Z){if(!Z.handled||$.livemode===!1)return null;let X=$.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:s_$(X.status),...typeof X.cancel_at_period_end==="boolean"?{cancel_at_period_end:X.cancel_at_period_end}:{}}};case"invoice.paid":if(X.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function o_$($,Z){let X=C86($,Z);if(!X)return;AH({event:X.name,organizationId:X.organizationId,...$.id?{uuid:WV1(`stripe:${$.id}:${X.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:X.properties})}async function e_$($){let Z=new VW(c8().db),X=await V86(Z,$);if(!(X.handled&&X.topUp))o_$($,X);if(X.handled&&X.topUp)await eF$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId}),o_$($,X);if(!X.handled&&X.orphanSubscriptionId)try{await h1$(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof N3&&(Q.status===400||Q.status===404)))throw Q}return X}var M86=300;var $v$=B(()=>{JG();y4();Hn();Dr0()});var _86=1048576,c81;var Zv$=B(()=>{v8();hO();S$();$v$();c81=new B1;c81.post("/webhook",GZ({maxSize:_86,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=c0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!r_$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=a_$(X);if(!Y)return $.json({error:"invalid payload"},400);let G=await e_$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});import{timingSafeEqual as v86}from"crypto";function f86($,Z,X){if(!Z?.startsWith("sha256="))return!1;let Q=new Bun.CryptoHasher("sha256",X).update($).digest("hex"),Y=Z.slice(7);if(Y.length!==Q.length)return!1;return v86(Buffer.from(Y),Buffer.from(Q))}var b86=5242880,l81;var Xv$=B(()=>{v8();hO();Gp();l81=new B1;l81.post("/webhook",GZ({maxSize:b86,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 X=await $.req.text();if(!f86(X,$.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 Q;try{Q=JSON.parse(X)}catch{return $.json({error:"invalid payload"},400)}let Y=Q.ref,G=Q.repository?.full_name;if(!Y||!G)return $.json({ok:!0,ignored:"shape"});let W=(await xn0())?.markTenantPoolsDirty(G,Y)??[];return $.json({ok:!0,pools:W})})});function Qv$($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var Yv$,x86,y86,Gv$;var Jv$=B(()=>{v8();IJ();Gy();Rv();Yv$=new B1,x86=["range","if-none-match","if-modified-since"],y86=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];Yv$.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),X=Z.organization?.id;if(!Z.auth?.user?.id){if(zg($))return $.redirect(`/login?next=${encodeURIComponent($.req.path)}`,302);throw new Q$(401,{message:"Authentication required"})}if(!X)throw new Q$(401,{message:"Organization context required"});let Q=$.req.path.replace(/^.*\/files\//,"");if(!Q)throw new Q$(400,{message:"Missing file key"});let Y=await Tp(Q,Z);if(!Y)throw new Q$(503,{message:"Object storage not configured"});if(Y.startsWith("data:")&&RJ()){let K=Y.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new Q$(500,{message:"Invalid data URL from storage"});let[,H,N]=K,F=Buffer.from(N,"base64"),U=new Headers({"Content-Type":H,"Cache-Control":"private, max-age=86400"});return Qv$(U,H),new Response(F,{status:200,headers:U})}let G=new Headers;for(let K of x86){let H=$.req.header(K);if(H)G.set(K,H)}let J=await fetch(Y,{headers:G});if(J.status===403||J.status===404)throw new Q$(404,{message:"File not found"});if(!J.ok&&J.status!==304&&J.status!==416)throw console.error(`[files] upstream storage error ${J.status} for key:`,Q),new Q$(502,{message:"Upstream storage error"});let W=new Headers;for(let K of y86){let H=J.headers.get(K);if(H)W.set(K,H)}return W.set("Cache-Control","private, max-age=86400"),Qv$(W,W.get("content-type")??""),new Response(J.body,{status:J.status,headers:W})});Gv$=Yv$});var ko=C((cC)=>{var g86=cC&&cC.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),h86=cC&&cC.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))g86(Z,$,X)};Object.defineProperty(cC,"__esModule",{value:!0});h86(rQ(),cC)});var Hv$=C((Wv$)=>{Object.defineProperty(Wv$,"__esModule",{value:!0});Wv$.version=void 0;Wv$.version="3.4.0"});var Uv$=C((xK)=>{var u86=xK&&xK.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(xK,"__esModule",{value:!0});xK.NodeTransport=xK.VERSION=void 0;xK.nodeResolveHost=n86;var l6=ko(),c86=z0("net"),d81=z0("tls"),l86=z0("path"),Nv$=z0("fs"),d86=u86(z0("dns")),m86=Hv$();xK.VERSION=m86.version;var i86="nats.js";class Fv${socket;version;lang;yields=[];signal=(0,l6.deferred)();closedNotification=(0,l6.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=i86,this.version=xK.VERSION}async connect($,Z){this.tlsName=$.tlsName,this.options=Z;let{tls:X}=this.options,{handshakeFirst:Q}=X||{};try{if(Q===!0)this.socket=await this.tlsFirst($);else this.socket=await this.dial($);if(this.done)this.socket?.destroy();let Y=await this.peekInfo();(0,l6.checkOptions)(Y,Z);let{tls_required:G,tls_available:J}=Y,W=J===!0&&Z.tls!==null;if(!Q&&(G||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(G&&this.socket.encrypted!==!0)throw l6.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(Y){let G=Y;if(!G)G=new l6.errors.ConnectionError("error connecting - node provided an undefined error");let{code:J}=G,W=J==="ECONNREFUSED"?new l6.errors.ConnectionError("connection refused",{cause:G}):G;throw this.socket?.destroy(),W}}dial($){let Z=(0,l6.deferred)(),X,Q=(0,c86.createConnection)($.port,$.hostname,()=>{Z.resolve(Q),Q.removeAllListeners()});return Q.on("error",(Y)=>{X=Y}),Q.on("close",()=>{Q.removeAllListeners(),Z.reject(X)}),Q.setNoDelay(!0),Z}get isClosed(){return this.done}close($){return this._closed($,!1)}peekInfo(){let $=(0,l6.deferred)(),Z;return this.socket.on("data",(X)=>{this.yields.push(X);let Q=l6.DataBuffer.concat(...this.yields),Y=(0,l6.extractProtocolMessage)(Q);if(Y!=="")try{let G=l6.INFO.exec(Y);if(!G)throw Error("unexpected response from server");let J=JSON.parse(G[1]);$.resolve(J)}catch(G){$.reject(G)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(X)=>{Z=X}),this.socket.on("close",()=>{this.socket.removeAllListeners(),$.reject(Z)}),$}loadFile($){if(!$)return Promise.resolve();let Z=(0,l6.deferred)();try{if($=(0,l86.resolve)($),!(0,Nv$.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,Nv$.readFile)($,(X,Q)=>{if(X)return Z.reject(X);Z.resolve(Q)})}catch(X){Z.reject(X)}return Z}async loadClientCerts(){let $={},{certFile:Z,cert:X,caFile:Q,ca:Y,keyFile:G,key:J}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(X)$.cert=X;if(G){let W=await this.loadFile(G);if(W)$.key=W}else if(J)$.key=J;if(Q){let W=await this.loadFile(Q);if(W)$.ca=[W]}else if(Y)$.ca=Y;return Promise.resolve($)}catch(W){return Promise.reject(W)}}async tlsFirst($){let Z,X={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)X.socket=this.socket;if(typeof this.options.tls==="object")try{let Y=await this.loadClientCerts()||{};X=(0,l6.extend)(X,this.options.tls,Y)}catch(Y){return Promise.reject(new l6.errors.ConnectionError(Y.message,{cause:Y}))}let Q=(0,l6.deferred)();try{let Y=(0,d81.connect)($.port,$.hostname,X,()=>{Y.removeAllListeners(),Q.resolve(Y)});Y.on("error",(G)=>{Z=G}),Y.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!Y.authorized)throw Y.authorizationError}),Y.on("close",()=>{Q.reject(Z),Y.removeAllListeners()}),Y.setNoDelay(!0)}catch(Y){Q.reject(new l6.errors.ConnectionError(Y.message,{cause:Y}))}return Q}async startTLS(){let $,Z={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let Q=await this.loadClientCerts()||{};Z=(0,l6.extend)(Z,this.options.tls,Q)}catch(Q){return Promise.reject(new l6.errors.ConnectionError(Q.message,{cause:Q}))}let X=(0,l6.deferred)();try{let Q=(0,d81.connect)(Z,()=>{Q.removeAllListeners(),X.resolve(Q)});Q.on("error",(Y)=>{$=Y}),Q.on("secureConnect",()=>{if(Z.rejectUnauthorized===!1)return;if(!Q.authorized)throw Q.authorizationError}),Q.on("close",()=>{X.reject($),Q.removeAllListeners()})}catch(Q){X.reject(new l6.errors.ConnectionError(Q.message,{cause:Q}))}return X}setupHandlers(){let $;this.socket.on("data",(Z)=>{return this.yields.push(Z),this.signal.resolve()}),this.socket.on("error",(Z)=>{$=Z}),this.socket.on("end",()=>{if(this.socket?.destroyed)return;this.socket?.write(new Uint8Array(0),()=>{this.socket?.end()})}),this.socket.on("close",()=>{this._closed($,!1)})}[Symbol.asyncIterator](){return this.iterate()}async*iterate(){while(!0){if(this.yields.length===0)await this.signal;let $=this.yields;this.yields=[];for(let Z=0;Z<$.length;Z++){if(this.options.debug)console.info(`> ${(0,l6.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,l6.deferred)()}}discard(){if(this.done=!0,this.socket)try{this.socket.removeAllListeners(),this.socket.destroy()}catch{}}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof d81.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,l6.render)($)}`);let Z=(0,l6.deferred)();try{this.socket.write($,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,l6.render)($)}: ${X}`);return Z.reject(X)}return Z.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,l6.render)($)}: ${X}`);Z.reject(X)}return Z}send($){this._send($).catch((X)=>{})}async _closed($,Z=!0){if(!this.connected)return;if(this.done){this.socket?.destroy();return}if(this.closeError=$,!$&&this.socket&&Z)try{await this._send(new TextEncoder().encode(""))}catch(X){if(this.options.debug)console.log("transport close terminated with an error",X)}try{if(this.socket)this.socket.removeAllListeners(),this.socket?.destroy(),this.socket=void 0}catch(X){console.log(X)}this.done=!0,this.closedNotification.resolve(this.closeError)}closed(){return this.closedNotification}}xK.NodeTransport=Fv$;function n86($){let Z=(0,l6.deferred)();return d86.default.lookup($,{all:!0},(X,Q)=>{if(X){Z.reject(X);return}let Y=[];for(let G of Q)Y.push(G.address);if(Y.length===0)Y.push($);Z.resolve(Y)}),Z}});var Lv$=C((Dv$)=>{Object.defineProperty(Dv$,"__esModule",{value:!0});Dv$.connect=p86;var wv$=Uv$(),Ov$=ko(),Bv$=ko();function p86($={}){if((0,Bv$.hasWsProtocol)($))return Promise.reject(Bv$.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,Ov$.setTransportFactory)({factory:()=>{return new wv$.NodeTransport},dnsResolveFn:wv$.nodeResolveHost}),Ov$.NatsConnectionImpl.connect($)}});var Ev$=C(($F)=>{var o86=$F&&$F.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),r86=$F&&$F.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))o86(Z,$,X)};Object.defineProperty($F,"__esModule",{value:!0});$F.connect=void 0;var a86=Lv$();Object.defineProperty($F,"connect",{enumerable:!0,get:function(){return a86.connect}});r86(ko(),$F)});function Av$($){let Z=$?.connectFn??Z46,X=null,Q=null,Y=!1,G=!1,J=!1,W=[];function K(){return X!==null&&!X.isClosed()&&!X.isDraining()&&!J}function H(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let U of W)try{U()}catch{}}function N(U){(async()=>{for await(let w of U.status())if(w.type==="disconnect")console.log("[NatsProvider] Disconnected"),J=!0;else if(w.type==="reconnect")console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),J=!1,Q=null,H()})().catch(()=>{})}async function F(U,w){let O=0;while(!G)try{X=await Z({servers:U,timeout:$46,reconnect:!0,maxReconnectAttempts:-1,...w?{authenticator:w}:{}}),console.log(`[NatsProvider] Connected to ${X.getServer()} after ${O} attempt(s)`),Q=null,J=!1,N(X),H();return}catch{O++;let D=WX(e86,s86,O-1,2,0.5);await y$(D)}}return{init(U,w){if(Y)return;Y=!0,G=!1;let O=w?.creds?jv$.credsAuthenticator(new TextEncoder().encode(w.creds)):void 0;F(U,O).catch(()=>{})},isConnected(){return K()},getConnection(){return K()?X:null},getJetStream(){if(!K())return null;if(!Q)Q=Pv$.jetstream(X);return Q},onReady(U){if(W.push(U),K())try{U()}catch{}},async drain(){if(G=!0,Y=!1,Q=null,J=!1,X){let U=X;X=null,await U.drain().catch(()=>{})}}}}function Z46($){return zv$.connect($)}var jv$,zv$,Pv$,s86=100,e86=3000,$46=3000;var Tv$=B(()=>{D6();jv$=S(wh(),1),zv$=S(Ev$(),1),Pv$=S(JB(),1)});function m81($,Z){return`${$}.${Z}`}class i81{cache;constructor($){this.cache=Dg({ttlMs:$?.ttlMs??X46,maxSize:$?.maxSize??Q46})}async get($,Z){return this.cache.get(m81($,Z))??null}async set($,Z,X){this.cache.set(m81($,Z),X)}async invalidate($,Z){this.cache.delete(m81($,Z))}teardown(){this.cache.clear()}}var X46=600000,Q46=5000;var Rv$=()=>{};function Nj0($,Z){return`${$}:${Z}`}function n81($){let Z=Dg({ttlMs:$?.ttlMs??Y46,maxSize:$?.maxSize??G46}),X=$?.getConnection,Q=crypto.randomUUID(),Y=new TextEncoder,G=new TextDecoder,J=null;function W(K,H){let N=X?.();if(!N)return;try{N.publish(Iv$,Y.encode(JSON.stringify({organizationId:K,keyId:H,originId:Q})))}catch(F){console.warn("[ProviderKeyCache] Publish failed (non-critical):",F)}}return{get(K,H){return Z.get(Nj0(K,H))},set(K,H,N){Z.set(Nj0(K,H),N)},invalidate(K,H){Z.delete(Nj0(K,H)),W(K,H)},start(){if(J)return;let K=X?.();if(!K)return;J=K.subscribe(Iv$),(async()=>{for await(let H of J)try{let N=JSON.parse(G.decode(H.data));if(N.originId===Q)continue;Z.delete(Nj0(N.organizationId,N.keyId))}catch{}})().catch(console.error)},teardown(){J?.unsubscribe(),J=null,Z.clear()}}}var Iv$="studio.ai-provider-keys.invalidate",Y46=30000,G46=5000;var qv$=()=>{};class p81{options;subscriptions=[];onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();seenMessageIds=new Set;constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.subscriptions.length>0)return;if(!this.onCancel)return;let Z=this.options.getConnection();if(!Z)return;let X=new TextDecoder;this.subscriptions=Mv$.map((Q)=>Z.subscribe(Q));for(let Q of this.subscriptions)(async()=>{for await(let Y of Q)try{let G=JSON.parse(X.decode(Y.data));if(G.originId===this.originId)continue;if(G.messageId&&this.hasSeen(G.messageId))continue;this.onCancel?.(G.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let Z=this.options.getConnection();if(!Z)return;let X=this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId,messageId:crypto.randomUUID()}));for(let Q of Mv$)Z.publish(Q,X)}catch(Z){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",Z)}}publishControlFrame($,Z){}async stop(){for(let $ of this.subscriptions)$.unsubscribe();this.subscriptions=[],this.seenMessageIds.clear(),this.onCancel=null}hasSeen($){if(this.seenMessageIds.has($))return!0;if(this.seenMessageIds.add($),this.seenMessageIds.size>1000){let Z=this.seenMessageIds.values().next().value;if(Z)this.seenMessageIds.delete(Z)}return!1}}var Mv$;var kv$=B(()=>{Mv$=["studio.decopilot.cancel","mesh.decopilot.cancel"]});var Sv$=($)=>{let Z;return()=>Z??=$()},t81,o81;var Vv$=B(()=>{N5();t81=Sv$(()=>W8.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),o81=Sv$(()=>W8.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function U46(){return{name:qN,subjects:[`${EO0}.>`],storage:h3.StorageType.File,max_age:K46,max_bytes:N46,max_msgs_per_subject:F46,discard:h3.DiscardPolicy.Old,retention:h3.RetentionPolicy.Limits,duplicate_window:H46,num_replicas:1}}class vv${chunks=0;encodeMs=0;maxMs=0;bytes=0;windowStart=performance.now();constructor(){setInterval(()=>this.flush(),1e4).unref?.()}record($,Z){if(this.chunks++,this.encodeMs+=$,$>this.maxMs)this.maxMs=$;this.bytes+=Z}flush(){let $=performance.now(),Z=$-this.windowStart;if(this.chunks>0&&Z>0)console.warn(JSON.stringify({msg:"stream-encode-trace",windowMs:Math.round(Z),chunks:this.chunks,encodeMs:Math.round(this.encodeMs),pctOfLoop:+(this.encodeMs/Z*100).toFixed(1),maxChunkMs:+this.maxMs.toFixed(2),mbEncoded:+(this.bytes/1048576).toFixed(2)}));this.chunks=0,this.encodeMs=0,this.maxMs=0,this.bytes=0,this.windowStart=$}}function Cv$($){let Z=_v$.headers();for(let[X,Q]of Object.entries($))Z.set(X,Q);return Z}function D46($,Z){let X=0;return{publish(Q,Y,G,J){Q.publish(Y,G,J?{headers:J}:void 0).catch((W)=>{if(X++,W46().add(1,{"org.id":Z??"unknown"}),X===1||X%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${X} total):`,W)})},get errorCount(){return X}}}function L46($){if(!($ instanceof Error))return!1;if($.name==="TimeoutError")return!0;return/timeout|no responders|503/i.test($.message)}class r81{options;js=null;jsm=null;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$){console.log("[Decopilot] StreamBuffer.init skipped: NATS not connected yet");return}let Z=U46(),X=await xZ(async()=>{let Q=this.options.getJetStreamManager?await this.options.getJetStreamManager():await h3.jetstreamManager($);try{await Q.streams.info(qN),await Q.streams.update(qN,Z)}catch(Y){if(Y instanceof Error&&Y.message.includes("stream not found"))await Q.streams.add(Z);else if(Y instanceof Error&&/can ?not change.*storage|storage type/i.test(Y.message))await Q.streams.delete(qN),await Q.streams.add(Z);else throw Y}return Q},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:L46});this.js=this.options.getJetStream(),this.jsm=X,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,X,Q){let Y=this.js;if(!Y)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let G=D46(Z,Q),J=!1,W=()=>{if(J)return;J=!0;let H=CH$(Z);Y.publish(H.subject,H.data).catch(()=>{})};X.addEventListener("abort",W,{once:!0});let K=(H)=>{let N=performance.now(),F=Et0(H,{runId:Z}),U=performance.now()-N;if(t81().record(U),o81().add(1,{"org.id":Q??"unknown"}),B46?.record(U,F.reduce((w,O)=>w+O.data.length,0)),F.length===0){console.warn(`[Decopilot] dropping oversized stream chunk for thread ${Z}`);return}for(let w of F)G.publish(Y,w.subject,w.data,w.headers?Cv$(w.headers):void 0)};return(async()=>{let H=$.getReader(),N=0,F=0,U;try{while(!0){let{done:w,value:O}=await H.read();if(w)break;if(K(O),F++,++N>=64)N=0,await new Promise((D)=>setImmediate(D))}}catch(w){U=w,console.warn(`[Decopilot] stream pump error for thread ${Z}:`,w?.message??w)}finally{if(H.releaseLock(),W(),O46)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:F,publishErrors:G.errorCount}))}if(U!==void 0)throw U})()}async publishRawChunk($,Z,X){let Q=this.js;if(!Q)return!1;let Y=performance.now(),G=Et0(Z,{runId:$,dedup:X});if(t81().record(performance.now()-Y),o81().add(1),G.length===0)return console.warn(`[Decopilot] dropping oversized raw chunk for thread ${$} (> MAX_CHUNKED_BYTES)`),!0;for(let J of G)await Q.publish(J.subject,J.data,{...J.headers?{headers:Cv$(J.headers)}:{},...J.msgId?{msgID:J.msgId}:{}});return!0}async publishDone($,Z,X){let Q=this.js;if(!Q)return!1;let Y=VH$({runId:$,fenceToken:Z,finalSeq:X});return await Q.publish(Y.subject,Y.data,{msgID:Y.msgId}),!0}async createTailStream($,Z,X){let Q=this.js;if(!Q)return console.warn(`[Decopilot] createTailStream: JetStream client unavailable for thread ${$}; no live tail`),null;let Y=X?.deliverPolicy==="new"?h3.DeliverPolicy.New:h3.DeliverPolicy.All,G=X?.closeOnDone??!1,J=NO($),W;try{W=await(await Q.consumers.get(qN,{filter_subjects:J,deliver_policy:Y})).consume()}catch(D){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",D?.message??D),null}let N=TO0({messages:async function*(){try{for await(let D of W)yield{subject:D.subject,data:D.data,headers:D.headers}}finally{W.stop()}}(),onCancel:()=>W.stop()}).pipeThrough(jO0()).pipeThrough(zO0()).getReader(),F=!1,U=()=>{if(F)return;F=!0;try{N.releaseLock()}catch{}},w=!1,O=()=>{if(w)return;w=!0,W.stop(),N.cancel().catch(()=>{}),U()};return Z?.addEventListener("abort",O,{once:!0}),new ReadableStream({async pull(D){for(;;){let{done:L,value:E}=await N.read();if(L){O(),D.close();return}let j=E;if(j.kind==="done"){if(G){O(),D.close();return}continue}D.enqueue(j.chunk);return}},cancel(){O()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(qN,{filter:NO($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var h3,_v$,J46=($)=>{let Z;return()=>Z??=$()},W46,K46=86400000000000,H46=120000000000,N46=4294967296,F46=500000,w46,O46,B46;var bv$=B(()=>{D6();jt0();RO0();PO0();N5();Vv$();h3=S(JB(),1),_v$=S(wh(),1),W46=J46(()=>W8.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"}));w46=process.env.STREAM_ENCODE_TRACE==="1",O46=process.env.DECOPILOT_STREAM_TRACE==="1";B46=w46?new vv$:null});function Fj0($,Z,X,Q){if(!Q)return!1;return $.emit(Z,JW(X,Q.status,{title:Q.title??void 0,virtualMcpId:Q.virtual_mcp_id??void 0,createdBy:Q.created_by??void 0,triggerId:Q.trigger_id??null,branch:Q.branch??null,harnessId:Q.harness_id??void 0,createdAt:Q.created_at,updatedAt:Q.updated_at})),!0}var fv$=B(()=>{B8()});class a81{storage;options;timer=null;constructor($,Z={}){this.storage=$;this.options=Z}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let Z=await this.storage.sweepAbandoned($);if(Z>0)console.log(`[async-research-sweeper] marked ${Z} stale jobs as abandoned`);return Z}catch(Z){return console.error("[async-research-sweeper] sweep failed",Z),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}class s81{taskBoard;contextFactory;options;timer=null;running=!1;cursor=null;constructor($,Z,X={}){this.taskBoard=$;this.contextFactory=Z;this.options=X}start(){if(this.timer)return;let $=this.options.intervalMs??E46;this.timer=setInterval(()=>{this.runOnce()},$),this.timer.unref()}async runOnce(){if(this.running)return 0;this.running=!0;let $=0;try{let Z=this.options.batchSize??z46,X=this.options.itemIntervalMs??j46,Q=await this.taskBoard.listItemsPendingReview(Z,this.cursor,new Date(Date.now()-X)),Y=Q.at(-1);this.cursor=Q.length===Z&&Y?{updatedAt:Y.updatedAt,id:Y.id}:null;for(let{id:G,organizationId:J}of Q)try{if(await this.reconcileItem(G,J))$++}catch(W){console.error(`[task-board-review-sweeper] ${G} failed`,W)}await this.reapNeverStartedThreads(Z),$+=await this.dispatchDueRetries(Z),await this.reactToUnhandledFailures(Z)}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reapNeverStartedThreads($){try{let Z=await this.taskBoard.failNeverStartedLinkedThreads($,new Date(Date.now()-CW$),$o0);for(let X of Z)console.warn(`[task-board-review-sweeper] failed never-started thread ${X.threadId} on ${X.itemId}`)}catch(Z){console.error("[task-board-review-sweeper] reaping failed",Z)}}async reactToUnhandledFailures($){let Z=await this.taskBoard.listItemsStuckAfterFailure($,new Date(Date.now()-A46));for(let{id:X,organizationId:Q,threadId:Y}of Z)try{console.warn(`[task-board-review-sweeper] reacting to an unhandled failure on ${X}`),await np0(this.taskBoard,Y,Q)}catch(G){console.error(`[task-board-review-sweeper] unhandled-failure reaction for ${X} failed`,G)}}async dispatchDueRetries($){let Z=0,X=await this.taskBoard.listItemsDueForRetry($,new Date);for(let{id:Q,organizationId:Y,attempts:G}of X)try{if(!await this.taskBoard.claimDueRetry(Q,Y,new Date))continue;let J=await this.taskBoard.getById(Q,Y);if(!J||J.status!=="in_progress"||J.assigneeId!==t4)continue;let W=await this.contextFactory(Y,J.assignedBy??J.createdBy);if(!W)continue;await MN(W,J,{runClass:"retry"}),Z++,console.warn(`[task-board-review-sweeper] re-dispatched ${Q} after a failure (attempt ${G})`)}catch(J){console.error(`[task-board-review-sweeper] retry dispatch for ${Q} failed`,J),await this.taskBoard.scheduleRunRetry(Q,Y,G,new Date(Date.now()+P46)).catch((W)=>console.error(`[task-board-review-sweeper] re-arming ${Q} failed`,W))}return Z}async reconcileItem($,Z){let X=await this.taskBoard.getById($,Z);if(!X)return!1;if(X.status!=="in_review"||X.assigneeId!==t4)return!1;await this.taskBoard.markSwept($,Z);let Q=await this.taskBoard.listPrs($,Z);if(Q.length===0)return!1;let Y=await this.contextFactory(Z,X.assignedBy??X.createdBy);if(!Y)return!1;let G=await Promise.all(Q.map(async(J)=>({...J,...await at0(Y,Z,J)})));if(G.every((J)=>J.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${G.length} PR(s)) \u2014 proceeding on unknown`);if(!rt0(G))return!1;return await VO0(Y,X),!0}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var E46=60000,j46=300000,z46=50,P46=60000,A46=120000;var xv$=B(()=>{eZ();dt0();FO();kZ();Zo0();Dy()});import{readdir as T46,rm as Uj0}from"fs/promises";import{join as wj0}from"path";async function Oj0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-R46),Z.setUTCHours(0,0,0,0);let X=0;try{let Q=await lC($);for(let Y of Q)if(/^\d{4}$/.test(Y))X+=await yv$($,Y,Z);else if(!Y.startsWith(".")){let G=wj0($,Y),J=await lC(G);for(let K of J){if(!/^\d{4}$/.test(K))continue;X+=await yv$(G,K,Z)}if((await lC(G)).length===0)await Uj0(G,{recursive:!0,force:!0})}}catch(Q){console.warn("monitoring retention cleanup failed:",Q)}return X}async function yv$($,Z,X){let Q=0,Y=wj0($,Z),G=await lC(Y);for(let W of G){if(!/^\d{2}$/.test(W))continue;let K=wj0(Y,W),H=await lC(K);for(let F of H){if(!/^\d{2}$/.test(F))continue;let U=new Date(`${Z}-${W}-${F}T00:00:00Z`);if(isNaN(U.getTime()))continue;if(U<X){let w=wj0(K,F);await Uj0(w,{recursive:!0,force:!0}),Q++}}if((await lC(K)).length===0)await Uj0(K,{recursive:!0,force:!0})}if((await lC(Y)).length===0)await Uj0(Y,{recursive:!0,force:!0});return Q}async function lC($){try{return(await T46($)).filter((X)=>!X.startsWith("."))}catch{return[]}}var R46=30;var e81=()=>{};import{DBOS as $41,SchedulerMode as I46}from"@dbos-inc/dbos-sdk";async function M46(){let $=[ZJ(),dC(),gK()],Z=0;for(let X of $)try{Z+=await Oj0(X)}catch(Q){console.error("[monitoring-retention] cleanup failed:",Q)}return console.log(`[monitoring-retention] deleted ${Z} day-dir(s) across ${$.length} signal dir(s)`),{deleted:Z,dirs:$.length}}async function k46($,Z){await $41.runStep(()=>M46(),{name:"monitoringRetention"})}function hv$(){if(gv$)return;gv$=!0;let $=$41.registerWorkflow(k46,{name:"monitoringRetentionWorkflow"});$41.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:q46,mode:I46.ExactlyOncePerIntervalWhenActive})}var q46="23 4 * * *",gv$=!1;var uv$=B(()=>{nQ();e81()});function cv$($){return async(Z,X)=>{let Q=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",X).where("member.organizationId","=",Z).executeTakeFirst();if(!Q)return console.warn(`[automationContextFactory] User ${X} not found in org ${Z} \u2014 returning null`),null;let Y=await Pw.create();Y.auth.user={id:X,role:Q.role},Y.organization={id:Q.orgId,slug:Q.orgSlug,name:Q.orgName};let G=await xc0($.db,Z,Q.role);return Y.boundAuth=fc0({auth:Y.authInstance,headers:new Headers,role:Q.role,permissions:G,userId:X}),Y.access=new XL(X,void 0,Y.boundAuth,Q.role,"self"),E50(Y,{id:Q.orgId,slug:Q.orgSlug}),Y}}var lv$=B(()=>{QL();bi()});function S46(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function C46(){for(let $ of V46)$()}function dv$($){let Z=[...Z41.logs,$];Z41={...Z41,logs:Z.length>500?Z.slice(-500):Z},C46()}function X41(){return _46}var Z41,V46,_46=!1;var Q41=B(()=>{Z41=S46(),V46=new Set});import{EventEmitter as v46}from"events";var Y41;var mv$=B(()=>{Q41();Y41=new v46;Y41.on("request",($)=>{dv$($)})});function iv$(){return async($,Z)=>{let X=Date.now(),Q=$.req.method,Y=$.req.path;if(Y==="/api/auth/get-session"||Y.includes("favicon")){await Z();return}let G="",J=!1;if(Y.startsWith("/mcp")&&Q==="POST"){J=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let U=await $.req.raw.clone().json();if(U.method==="tools/call"&&U.params?.name){let w=lg(U.params.name),O=U.params.arguments||{},D=Object.keys(O).map((E)=>lg(E)),L=D.length>0?D.slice(0,3).join(",")+(D.length>3?"\u2026":""):"";G=`${a6.tool}${w}${a6.dim}(${L})${a6.reset}`}else if(U.method)G=`${a6.dim}${lg(U.method)}${a6.reset}`}}catch{}}let W=lg(Y);if(Y.startsWith("/mcp/conn_")){let N=Y.split("/")[2]??"";W=`/mcp/${a6.mcp}${lg(N.slice(0,12))}\u2026${a6.reset}`}else if(Y==="/mcp")W=`${a6.mcp}/mcp${a6.reset}`;else if(Y==="/mcp/registry")W=`${a6.mcp}/mcp/registry${a6.reset}`;let K=f46(Q),H=J?"\u25C0":"\u2190";if(!X41())console.log(`${a6.dim}${H}${a6.reset} ${K}${Q}${a6.reset} ${W}${G?` ${G}`:""}`);try{await Z()}finally{let N=Date.now()-X,F=$.res.status,U=b46(F),w=N<1000?`${N}ms`:`${(N/1000).toFixed(1)}s`,O=J?"\u25B6":"\u2192";if(!X41())console.log(`${a6.dim}${O}${a6.reset} ${K}${Q}${a6.reset} ${W}${G?` ${G}`:""} ${U}${F}${a6.reset} ${a6.duration}${w}${a6.reset}`);Y41.emit("request",{method:Q,path:lg(Y),status:F,duration:N,timestamp:new Date})}}}var a6,b46=($)=>{if($>=500)return a6.serverError;if($>=400)return a6.clientError;if($>=300)return a6.redirect;return a6.ok},f46=($)=>{return a6[$]||a6.reset},lg=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var nv$=B(()=>{Q41();mv$();a6={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as rv$}from"crypto";import{mkdir as x46,readdir as y46,rm as pv$,stat as av$}from"fs/promises";import{join as J41,relative as g46}from"path";import{z as L$}from"zod";function ev$($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return J41(h46,Z)}function $b$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function G41($,Z){let X=ev$($),Q=$b$(Z);return J41(X,Q)}function u46($,Z,X,Q){let Y=c0().encryptionKey||"dev-secret",G=`${$}:${Z}:${X}:${Q}`;return rv$("sha256",Y).update(G).digest("hex")}function ov$($,Z,X,Q,Y){let G=Math.floor(Date.now()/1000)+Q,J=u46(Z,X,G,Y),W=new URL(`/api/dev-assets/${Z}/${$b$(X)}`,$);return W.searchParams.set("expires",G.toString()),W.searchParams.set("signature",J),W.searchParams.set("method",Y),W.toString()}function Zb$($,Z,X){let Q=`${$}:${Z.getTime()}:${X}`;return`"${rv$("md5","etag").update(Q).digest("hex")}"`}async function Xb$($,Z,X,Q,Y){try{let G=await y46($,{withFileTypes:!0});for(let J of G){let W=J41($,J.name),H=g46(Z,W).replace(/\\/g,"/");if(X&&!H.startsWith(X))continue;if(J.isDirectory())if(Q){let N=H+"/";if(!X||N.startsWith(X)){if(!(X?H.slice(X.length):H).includes("/"))Y.commonPrefixes.add(N)}}else await Xb$(W,Z,X,Q,Y);else if(J.isFile()){if(Q&&X){let N=H.slice(X.length);if(N.includes(Q)){let F=N.indexOf(Q),U=X+N.slice(0,F+1);Y.commonPrefixes.add(U);continue}}try{let N=await av$(W);Y.objects.push({key:H,size:N.size,lastModified:N.mtime.toISOString(),etag:Zb$(W,N.mtime,N.size)})}catch{}}}}catch{}}function Qb$($,Z){let Q=r($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:L$.object({prefix:L$.string().optional(),maxKeys:L$.number().optional().default(1000),continuationToken:L$.string().optional(),delimiter:L$.string().optional()}),outputSchema:L$.object({objects:L$.array(L$.object({key:L$.string(),size:L$.number(),lastModified:L$.string(),etag:L$.string()})),nextContinuationToken:L$.string().optional(),isTruncated:L$.boolean(),commonPrefixes:L$.array(L$.string()).optional()}),handler:async(Y)=>{let G=Y,J=G.prefix||"",W=G.maxKeys??1000,K=G.delimiter,H=G.continuationToken,N=ev$(Q);await x46(N,{recursive:!0});let F={objects:[],commonPrefixes:new Set};await Xb$(N,N,J,K,F),F.objects.sort((L,E)=>L.key.localeCompare(E.key));let U=0;if(H){if(U=F.objects.findIndex((L)=>L.key>H),U===-1)U=F.objects.length}let w=F.objects.slice(U,U+W),O=U+W<F.objects.length,D=O?w[w.length-1]?.key:void 0;return{objects:w,isTruncated:O,nextContinuationToken:D,commonPrefixes:Array.from(F.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:L$.object({key:L$.string()}),outputSchema:L$.object({contentType:L$.string().optional(),contentLength:L$.number(),lastModified:L$.string(),etag:L$.string(),metadata:L$.record(L$.string(),L$.string()).optional()}),handler:async(Y)=>{let G=Y,J=G41(Q,G.key),W=await av$(J);return{contentType:e11(G.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:Zb$(J,W.mtime,W.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:L$.object({key:L$.string(),expiresIn:L$.number().optional()}),outputSchema:L$.object({url:L$.string(),expiresIn:L$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??tv$;return{url:ov$(Z,Q,G.key,J,"GET"),expiresIn:J}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:L$.object({key:L$.string(),expiresIn:L$.number().optional(),contentType:L$.string().optional()}),outputSchema:L$.object({url:L$.string(),expiresIn:L$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??tv$;return{url:ov$(Z,Q,G.key,J,"PUT"),expiresIn:J}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:L$.object({key:L$.string()}),outputSchema:L$.object({success:L$.boolean(),key:L$.string()}),handler:async(Y)=>{let G=Y,J=G41(Q,G.key);try{return await pv$(J),{success:!0,key:G.key}}catch{return{success:!1,key:G.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:L$.object({keys:L$.array(L$.string()).max(1000)}),outputSchema:L$.object({deleted:L$.array(L$.string()),errors:L$.array(L$.object({key:L$.string(),message:L$.string()}))}),handler:async(Y)=>{let G=Y,J=[],W=[];return await Promise.all(G.keys.map(async(K)=>{let H=G41(Q,K);try{await pv$(H),J.push(K)}catch(N){W.push({key:K,message:N instanceof Error?N.message:"Unknown error"})}})),{deleted:J,errors:W}}}]}async function W41($,Z,X){let Q=Qb$(Z,X),Y=new DW({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:X5});for(let J of Q){let W="shape"in J.inputSchema?J.inputSchema.shape:L$.object({}).shape,K=J.outputSchema&&"shape"in J.outputSchema?J.outputSchema.shape:L$.object({}).shape;Y.registerTool(J.name,{description:J.description??"",inputSchema:W,outputSchema:K,annotations:J.annotations,_meta:J._meta},async(H)=>{try{let N=await J.handler(H);return{content:[{type:"text",text:JSON.stringify(N)}],structuredContent:N}}catch(N){return{content:[{type:"text",text:`Error: ${N.message}`}],isError:!0}}})}let G=new cX({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await Y.connect(G),cG(Y,G,$,"mcp:dev-assets")}async function Yb$($,Z,X,Q){let G=Qb$(X,Q).find((J)=>J.name===$);if(!G)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let J=await G.handler(Z);return{content:[{type:"text",text:JSON.stringify(J)}]}}catch(J){return{content:[{type:"text",text:J instanceof Error?J.message:String(J)}],isError:!0}}}var h46="./data/assets",tv$=3600,sv$,Gb$;var Jb$=B(()=>{S$();Py();v8();Ul();tV();MX();IE0();sv$=new B1;sv$.all("/",async($)=>{let Z=$.get("studioContext"),X=new URL($.req.url),Q=`${X.protocol}//${X.host}`;return W41($.req.raw,Z,Q)});Gb$=sv$});var Wb$={};H4(Wb$,{mountDevRoutes:()=>c46});function c46($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`;return W41(Q.req.raw,Y,J)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`,W=Q.req.param("toolName");if(!W)return Q.json({error:"Missing tool name"},400);let K=await Q.req.json(),H=await Yb$(W,K,Y,J);if(H.isError)return Q.json(H.content,500);return Q.json(H.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",Gb$);let X=new B1;X.use("*",x3({mountPath:"/api/dev-assets"})),X.route("/",RE0({orgFromPath:!1})),$.route("/api/dev-assets",X)}var Kb$=B(()=>{v8();i11();IE0();Jb$()});import{sql as l46}from"kysely";import{randomUUID as Hb$}from"crypto";import{z as d46}from"zod";async function i46($){let Z=new Date().toISOString(),X=Hb$(),Q=x4.SELF($.organizationId),Y="registry.publish_request.created",G={requestId:$.request.id,requestedId:$.request.requested_id,title:$.request.title,status:$.request.status,createdAt:$.request.created_at,requester:{name:$.request.requester_name,email:$.request.requester_email}};await $.db.insertInto("events").values({id:X,organization_id:$.organizationId,type:"registry.publish_request.created",source:Q,specversion:"1.0",subject:$.request.id,time:Z,datacontenttype:"application/json",dataschema:null,data:JSON.stringify(G),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Z,updated_at:Z}).execute();let J=await $.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",$.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((W)=>W.or([W("publisher","is",null),W("publisher","=",Q)])).execute();if(J.length>0)await $.db.insertInto("event_deliveries").values(J.map((W)=>({id:Hb$(),event_id:X,subscription_id:W.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Z}))).execute();try{await l46`SELECT
|
|
2732
2732
|
pg_notify('studio_events', ${X}),
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as L,b as R,j as r}from"./index-Cmj8qOwD.js";import{I as A}from"./input-7q2DrTU1.js";import{L as I}from"./label-CDiMc4Dw.js";import{S as z,a as J,b as O,c as V,d as $}from"./select-CX6iNm4t.js";import{T as D}from"./textarea-inuICEnd.js";import{R as M,T as U,U as W,J as q,W as G,$ as H}from"./index-CGBjadRQ.js";import{s as F}from"./primitives-B2rM-OZB.js";import{u as Q}from"./use-autosave-BfASXkvn.js";import"./tooltip-SYAihvUC.js";import"./Check-Ds_2u5Tv.js";import"./ChevronDown-CluKS89n.js";import"./ChevronUp-DJnGlOAQ.js";import"./ArrowUp-FvN7_gG4.js";import"./chat-context-DL6FGT5c.js";import"./tab-id-BsD9btC1.js";import"./dialog-hfrNQHMi.js";import"./X-vrHtdUVn.js";import"./Copy01-DH5oIqTb.js";import"./hooks-K5Uh-RkQ.js";import"./use-mcp-client-CIiukt0o.js";import"./auth-Beu-SMGZ.js";import"./decopilot-sse-pool-CI1SEipC.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./use-is-desktop-app-BNujXJc_.js";import"./use-virtual-mcp-D9bS9Rcc.js";import"./use-ai-providers-DS7sIpNI.js";import"./studio-tools-D7_5b2MM.js";import"./use-decopilot-events-B5hB5jre.js";import"./use-organization-settings-CkTCgJDb.js";import"./automation-runs-Dw-nzC29.js";import"./agent-icon-CnHeq2hw.js";import"./AlertCircle-CTzluRBu.js";import"./Tool01-Bc4TtmY0.js";import"./Settings02-DOZjhT05.js";import"./Tool02-BZacv5JE.js";import"./XCircle-BUfidkn-.js";import"./ArrowUpRight-BTLJ17MM.js";import"./TrendUp01-C-Op2wPA.js";import"./ZapSquare-CvGVlecR.js";import"./Users03-thX90m6R.js";import"./CheckCircle-CH3FC2f8.js";import"./ChevronRight-w_lFpKPh.js";import"./DotsVertical-v52SnyC6.js";import"./Stars02-BYVTRg4K.js";import"./CpuChip01-Db_B5Sxk.js";import"./CreditCard01-zl1P07Wv.js";import"./Eye-B1R5hsW-.js";import"./FilterLines-DNSIt-RC.js";import"./Star01-h0-tOBSN.js";import"./Palette-Chk1Eh-o.js";import"./SwitchHorizontal01-Bv08ExTE.js";import"./HardDrive-DMIi-QwP.js";import"./Key01-j_vPgnJd.js";import"./LayoutLeft-DFfajRcH.js";import"./LinkExternal01-CBU0oxDC.js";import"./LogOut01-CyqBNw-G.js";import"./Monitor01-CUdl2R6v.js";import"./Sun-W1WULtVZ.js";import"./Play-ZFtbqR1D.js";import"./Plus-CA4Flokh.js";import"./SearchLg-Ccpl9EG7.js";import"./SearchMd-Ct0-u66L.js";import"./Shield01-we2BR7o_.js";import"./Stars01-DJ_mW-8j.js";import"./Trash01-DMQz-ejD.js";import"./Upload01-DUOxFcSK.js";import"./User01-DEVwHE1O.js";import"./Users01-TciadDJZ.js";import"./XClose-CZFjO1li.js";import"./Zap-Dd9fNAe8.js";import"./useInfiniteQuery-DLyjCKfd.js";import"./use-infinite-scroll-BtF0eCyM.js";import"./use-connection-DtsKfHpL.js";import"./card-CkrHyQY9.js";import"./sidebar-BVDunLrG.js";import"./use-mobile-9D6PUk9K.js";import"./table-DrERumjm.js";import"./empty-state-COfCuK0F.js";import"./use-members-D-gkfuuN.js";import"./use-org-auth-client-CLjqUO3S.js";import"./use-clock-tick-BBrdfG3f.js";import"./use-automations-96ic-4VY.js";import"./useSuspenseInfiniteQuery-DhIlA7MV.js";import"./avatar-D1qDwBvW.js";import"./format-time-BnbuEtat.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-Dl3j_zBZ.js";import"./monaco-editor-B-RYGpy8.js";import"./spinner-CGYv_QKA.js";import"./index-DiCJNeAv.js";import"./shell-layout-Q2-dAuQd.js";import"./required-auth-layout-CE9dbjeW.js";import"./use-org-sso-C0WXptW_.js";import"./integration-icon-gEfXiFVK.js";import"./use-navigate-to-agent-BGh-eaDs.js";import"./reusable-new-chat-CouMjkYR.js";import"./AreaChart-DFwHkanc.js";import"./form-BLphtETu.js";import"./drawer-DZDPBXiL.js";import"./collection-search-Dq5Gov8Q.js";import"./tabs-BCvBykvQ.js";import"./toggle-group-oVP2W9PE.js";import"./use-deco-credits-C7v8ENTb.js";import"./popover-D66B6SWS.js";import"./alert-dialog-BUxOtLXG.js";import"./toolbar-vrYzjEIy.js";import"./skeleton-B6A7c5bo.js";import"./github-repo-picker-D4946XGC.js";import"./use-debounced-value-B1b0VDYG.js";import"./authenticate-and-persist-oauth-tRFUvk4r.js";import"./mcp-oauth-DthA_S7R.js";import"./use-mcp-tools-kfeg9D4x.js";import"./extract-connection-data-BoH9IuEO.js";import"./metadata-dUsYcpuu.js";import"./provision-repo-scoped-github-connection-ufuvpGD9.js";import"./agent-capabilities-cXfbMfjV.js";import"./connection-card-DJp0iefa.js";import"./use-registry-connections-BIqM0E-3.js";import"./retry-CErkP7V6.js";import"./connection-slug-eyAPH6o3.js";import"./connection-form-helpers-ZbjMZrrg.js";import"./collection-tabs-BWbSWHpT.js";import"./badge-ChUGhDHn.js";import"./use-open-billing-url-BUtZtH7K.js";import"./select-model-CE8259T3.js";import"./checkbox-CKHbojGx.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-D58Hf8-3.js";import"./dropdown-menu-B8kJ6KIJ.js";import"./question-004-sINsf4GQ.js";import"./use-status-sounds-qCtQ-qAX.js";import"./deco-site-production-url-CaKZ7xBn.js";import"./use-capability-CI2OR4aw.js";import"./pt-BR-CLy76QW2.js";import"./switch-PSsToBT8.js";import"./use-debounced-autosave-B-04KObS.js";import"./index-D2lenb-q.js";import"./search-input-CX0QmqKk.js";import"./index-BgTU5W10.js";import"./use-secrets-COSC7YGv.js";import"./self-tool-result-Cr-xCeS1.js";import"./use-tags-Csn_SJiJ.js";import"./get-initials-D-f_fDFw.js";import"./command-D6Q3E1IK.js";import"./index-Bloqn0d5.js";import"./use-file-configs-tliCkGTA.js";import"./automation-list-row-ZeNUMvLb.js";const X={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"}]},Y={authors:"sandbox.recordEditor.titleAuthor"};function Or(C){const t=L.c(40),{orgSlug:K,virtualMcpId:h,branch:w,kind:a,blockKey:g,block:f}=C,i=R(),P=M(h);let b;t[0]!==w||t[1]!==K||t[2]!==P||t[3]!==h?(b={orgSlug:K,virtualMcpId:h,branch:w,packagePath:P},t[0]=w,t[1]=K,t[2]=P,t[3]=h,t[4]=b):b=t[4];const p=U(b);let k;t[5]!==f||t[6]!==a?(k=W(f,a),t[5]=f,t[6]=a,t[7]=k):k=t[7];const B=k;let v;t[8]!==g||t[9]!==a||t[10]!==p?(v=l=>{p.mutate({blockKey:g,data:G(g,a,l)})},t[8]=g,t[9]=a,t[10]=p,t[11]=v):v=t[11];const[e,S]=Q(B,v);let j;t[12]!==e||t[13]!==S?(j=(l,o)=>S({...e,[l]:o}),t[12]=e,t[13]=S,t[14]=j):j=t[14];const s=j,T=Y[a];let n;t[15]!==i||t[16]!==T?(n=i(T),t[15]=i,t[16]=T,t[17]=n):n=t[17];let c;t[18]!==n?(c=r.jsx("span",{className:"text-sm font-medium",children:n}),t[18]=n,t[19]=c):c=t[19];let d;t[20]!==p.isError||t[21]!==p.isPending?(d=r.jsx(q,{isPending:p.isPending,isError:p.isError}),t[20]=p.isError,t[21]=p.isPending,t[22]=d):d=t[22];let y;t[23]!==c||t[24]!==d?(y=r.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[c,d]}),t[23]=c,t[24]=d,t[25]=y):y=t[25];const N=X[a];let x;if(t[26]!==e||t[27]!==s||t[28]!==i||t[29]!==N){let l;t[31]!==e||t[32]!==s||t[33]!==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(I,{htmlFor:o.key,children:i(o.labelKey)}),r.jsxs(z,{value:F(e[o.key])||o.options?.[0]?.value,onValueChange:m=>s(o.key,m),children:[r.jsx(J,{id:o.key,className:"h-10 w-full",children:r.jsx(O,{placeholder:i(o.labelKey)})}),r.jsx(V,{children:(o.options??[]).map(m=>r.jsx($,{value:m.value,children:i(m.labelKey)},m.value))})]})]}):r.jsxs(r.Fragment,{children:[r.jsx(I,{htmlFor:o.key,children:i(o.labelKey)}),o.widget==="textarea"?r.jsx(D,{id:o.key,value:F(e[o.key]),onChange:m=>s(o.key,m.target.value),rows:3}):r.jsx(A,{id:o.key,value:F(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[31]=e,t[32]=s,t[33]=i,t[34]=l):l=t[34],x=N.map(l),t[26]=e,t[27]=s,t[28]=i,t[29]=N,t[30]=x}else x=t[30];let u;t[35]!==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[35]=x,t[36]=u):u=t[36];let E;return t[37]!==y||t[38]!==u?(E=r.jsxs("div",{className:"flex h-full flex-col",children:[y,u]}),t[37]=y,t[38]=u,t[39]=E):E=t[39],E}export{Or as RecordEditor};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-CvDvIDu-.js","assets/index-Cmj8qOwD.js","assets/index-C-bJCsC6.css","assets/Tool02-BZacv5JE.js","assets/CheckCircle-CH3FC2f8.js","assets/Settings02-DOZjhT05.js","assets/use-mcp-client-CIiukt0o.js","assets/auth-Beu-SMGZ.js","assets/useInfiniteQuery-DLyjCKfd.js","assets/use-infinite-scroll-BtF0eCyM.js","assets/studio-tools-D7_5b2MM.js","assets/badge-ChUGhDHn.js","assets/input-7q2DrTU1.js","assets/dropdown-menu-B8kJ6KIJ.js","assets/Check-Ds_2u5Tv.js","assets/ChevronRight-w_lFpKPh.js","assets/DotsVertical-v52SnyC6.js","assets/table-DrERumjm.js","assets/toggle-group-oVP2W9PE.js","assets/use-view-mode-B0zDBHMF.js","assets/use-mobile-9D6PUk9K.js","assets/FilterLines-DNSIt-RC.js","assets/SearchMd-Ct0-u66L.js","assets/dialog-hfrNQHMi.js","assets/X-vrHtdUVn.js","assets/AlertCircle-CTzluRBu.js","assets/Upload01-DUOxFcSK.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-BUxOtLXG.js","assets/card-CkrHyQY9.js","assets/Trash01-DMQz-ejD.js","assets/label-CDiMc4Dw.js","assets/select-CX6iNm4t.js","assets/tooltip-SYAihvUC.js","assets/ChevronDown-CluKS89n.js","assets/ChevronUp-DJnGlOAQ.js","assets/switch-PSsToBT8.js","assets/textarea-inuICEnd.js","assets/XCircle-BUfidkn-.js","assets/checkbox-CKHbojGx.js","assets/Eye-B1R5hsW-.js","assets/LinkExternal01-CBU0oxDC.js","assets/use-copy-Dl3j_zBZ.js","assets/Copy01-DH5oIqTb.js","assets/Key01-j_vPgnJd.js","assets/Plus-CA4Flokh.js","assets/mcp-oauth-DthA_S7R.js","assets/Play-ZFtbqR1D.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as i,j as e,r as s,k as a,aG as o}from"./index-Cmj8qOwD.js";import{R as m}from"./require-capability-CK9uSRQE.js";import"./use-capability-CI2OR4aw.js";import"./access-gate-D9dShYrS.js";import"./capability-load-error-BszQinOM.js";const n=s.lazy(()=>o(()=>import("./registry-layout-CvDvIDu-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47])));function f(){const r=i.c(1);let t;return r[0]===Symbol.for("react.memo_cache_sentinel")?(t=e.jsx(m,{capability:"registry:manage",area:"the registry",children:e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(a,{size:20,className:"animate-spin text-muted-foreground"})}),children:e.jsx(n,{})})}),r[0]=t):t=r[0],t}export{f as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-layout-CvDvIDu-.js","assets/index-Cmj8qOwD.js","assets/index-C-bJCsC6.css","assets/Tool02-BZacv5JE.js","assets/CheckCircle-CH3FC2f8.js","assets/Settings02-DOZjhT05.js","assets/use-mcp-client-CIiukt0o.js","assets/auth-Beu-SMGZ.js","assets/useInfiniteQuery-DLyjCKfd.js","assets/use-infinite-scroll-BtF0eCyM.js","assets/studio-tools-D7_5b2MM.js","assets/badge-ChUGhDHn.js","assets/input-7q2DrTU1.js","assets/dropdown-menu-B8kJ6KIJ.js","assets/Check-Ds_2u5Tv.js","assets/ChevronRight-w_lFpKPh.js","assets/DotsVertical-v52SnyC6.js","assets/table-DrERumjm.js","assets/toggle-group-oVP2W9PE.js","assets/use-view-mode-B0zDBHMF.js","assets/use-mobile-9D6PUk9K.js","assets/FilterLines-DNSIt-RC.js","assets/SearchMd-Ct0-u66L.js","assets/dialog-hfrNQHMi.js","assets/X-vrHtdUVn.js","assets/AlertCircle-CTzluRBu.js","assets/Upload01-DUOxFcSK.js","assets/metadata-dUsYcpuu.js","assets/alert-dialog-BUxOtLXG.js","assets/card-CkrHyQY9.js","assets/Trash01-DMQz-ejD.js","assets/label-CDiMc4Dw.js","assets/select-CX6iNm4t.js","assets/tooltip-SYAihvUC.js","assets/ChevronDown-CluKS89n.js","assets/ChevronUp-DJnGlOAQ.js","assets/switch-PSsToBT8.js","assets/textarea-inuICEnd.js","assets/XCircle-BUfidkn-.js","assets/checkbox-CKHbojGx.js","assets/Eye-B1R5hsW-.js","assets/LinkExternal01-CBU0oxDC.js","assets/use-copy-Dl3j_zBZ.js","assets/Copy01-DH5oIqTb.js","assets/Key01-j_vPgnJd.js","assets/Plus-CA4Flokh.js","assets/mcp-oauth-DthA_S7R.js","assets/Play-ZFtbqR1D.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{c as m,d as n,f as c,j as t,k as f,r as l,aG as p}from"./index-Cmj8qOwD.js";import{R as u}from"./require-capability-CK9uSRQE.js";import"./use-capability-CI2OR4aw.js";import"./access-gate-D9dShYrS.js";import"./capability-load-error-BszQinOM.js";const g=l.lazy(()=>p(()=>import("./registry-layout-CvDvIDu-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47])));function j(){const e=m.c(5),i=n();let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s={from:"/shell/$org"},e[0]=s):s=e[0];const{org:o}=c(s);let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{className:"h-full flex items-center justify-center",children:t.jsx(f,{size:20,className:"animate-spin text-muted-foreground"})}),e[1]=r):r=e[1];let a;return e[2]!==i||e[3]!==o?(a=t.jsx(u,{capability:"registry:manage",area:"the registry",children:t.jsx(l.Suspense,{fallback:r,children:t.jsx(g,{onBack:()=>i({to:"/$org/settings/store",params:{org:o}})})})}),e[2]=i,e[3]=o,e[4]=a):a=e[4],a}export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u}from"./use-infinite-scroll-BtF0eCyM.js";import{e5 as i}from"./index-Cmj8qOwD.js";function t(e,r){return i(e,u,r)}export{t as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as s}from"./use-infinite-scroll-BtF0eCyM.js";import{e5 as u,b2 as n}from"./index-Cmj8qOwD.js";function a(e,r){return u({...e,enabled:!0,suspense:!0,throwOnError:n},s,r)}export{a as u};
|