decocms 4.150.21 → 4.150.22
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-BaA3X0Vc.js → AlertCircle-BHNP9rUU.js} +1 -1
- package/dist/client/assets/{AreaChart-B4pcuH23.js → AreaChart-Dix8LhoJ.js} +1 -1
- package/dist/client/assets/{ArrowUp-Df4rbgne.js → ArrowUp-CYmWic6A.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-fq20wgvL.js → ArrowUpRight-BQZOilTG.js} +1 -1
- package/dist/client/assets/{Check-DdyKCl8O.js → Check-D3kjZMFv.js} +1 -1
- package/dist/client/assets/{CheckCircle-IiUO6eKZ.js → CheckCircle-myRIyunA.js} +1 -1
- package/dist/client/assets/{ChevronDown-BSVV4L9A.js → ChevronDown-Dn2piZ2G.js} +1 -1
- package/dist/client/assets/{ChevronRight-CSgj0z6i.js → ChevronRight-CwImj32A.js} +1 -1
- package/dist/client/assets/{ChevronUp-GR0-Yt4d.js → ChevronUp-N9Uneycs.js} +1 -1
- package/dist/client/assets/{Copy01-Cv0Vuqbe.js → Copy01-CFdaASyO.js} +1 -1
- package/dist/client/assets/{CpuChip01-UMJdnf1a.js → CpuChip01-W_PpJOQC.js} +1 -1
- package/dist/client/assets/{DotsVertical-OBlENp_a.js → DotsVertical-CrKPB-rb.js} +1 -1
- package/dist/client/assets/{Eye-CkjEvMwH.js → Eye-DJcOc9Zw.js} +1 -1
- package/dist/client/assets/{FilterLines-Ca7W3tHb.js → FilterLines-BFYjIaR9.js} +1 -1
- package/dist/client/assets/{HardDrive-B91rzidb.js → HardDrive-B2_Ula85.js} +1 -1
- package/dist/client/assets/{Key01-DVGzNfoY.js → Key01-BU6DEShZ.js} +1 -1
- package/dist/client/assets/{LayoutLeft-Ciug-ep8.js → LayoutLeft-YSlG5Bjd.js} +1 -1
- package/dist/client/assets/{LinkExternal01-CbfqV87q.js → LinkExternal01-C6Bmw0m6.js} +1 -1
- package/dist/client/assets/{LogOut01-B0JVxGo4.js → LogOut01-Cc5p345m.js} +1 -1
- package/dist/client/assets/{Monitor01-CEdUOtdj.js → Monitor01-Car-ubqN.js} +1 -1
- package/dist/client/assets/{Palette-DgmLnO_l.js → Palette-iwM8hSr_.js} +1 -1
- package/dist/client/assets/{Play-DcSuTxiG.js → Play-BOQvMkTV.js} +1 -1
- package/dist/client/assets/{Plus-DUvbS-Yy.js → Plus-CPMXdWiF.js} +1 -1
- package/dist/client/assets/{SearchLg-CSWY8viA.js → SearchLg-Ccga3kHp.js} +1 -1
- package/dist/client/assets/{SearchMd-D0poZQV_.js → SearchMd-kaVQ2swy.js} +1 -1
- package/dist/client/assets/{Settings02-Sy5kNpSu.js → Settings02-D2WBE2j5.js} +1 -1
- package/dist/client/assets/{Shield01-Bcql6hT4.js → Shield01-BrHF2Qbg.js} +1 -1
- package/dist/client/assets/{Star01-2mO5G0Xw.js → Star01-CduFPScO.js} +1 -1
- package/dist/client/assets/{Stars01-DqIThrOc.js → Stars01-BpwKVOpQ.js} +1 -1
- package/dist/client/assets/{Stars02-cKtwD-F2.js → Stars02-C-JOVi71.js} +1 -1
- package/dist/client/assets/{Sun-DsnsEGXF.js → Sun-C2hxlxHa.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-BwAs_KcG.js → SwitchHorizontal01-Cm3MVkwA.js} +1 -1
- package/dist/client/assets/{Tool01-D2fd-Mg5.js → Tool01-pHGWkh_u.js} +1 -1
- package/dist/client/assets/{Tool02-C17Y4pBP.js → Tool02-C5toOJ2s.js} +1 -1
- package/dist/client/assets/{Trash01-BiVOd2DS.js → Trash01-BT5A-gEY.js} +1 -1
- package/dist/client/assets/{TrendUp01-D1GkdBOV.js → TrendUp01-ByibXYAc.js} +1 -1
- package/dist/client/assets/{Upload01-k2Sn0RXQ.js → Upload01-wyU_c8og.js} +1 -1
- package/dist/client/assets/{User01-cC3unvvx.js → User01-BgOg9cVa.js} +1 -1
- package/dist/client/assets/{Users01-BdNSg6CC.js → Users01-CXIce8sr.js} +1 -1
- package/dist/client/assets/{Users03-CqyDxwt6.js → Users03-TIXCT7Lp.js} +1 -1
- package/dist/client/assets/{X-Baqkpp1k.js → X-CbfkAYzJ.js} +1 -1
- package/dist/client/assets/{XCircle-8Wd2-AR5.js → XCircle-DsHpzoj1.js} +1 -1
- package/dist/client/assets/{XClose-CBFLmbVP.js → XClose-Dg24hRTQ.js} +1 -1
- package/dist/client/assets/{Zap-C4qF8Cn-.js → Zap-CRace4eX.js} +1 -1
- package/dist/client/assets/{ZapSquare-BH7ie7zg.js → ZapSquare-Bz1NVv_t.js} +1 -1
- package/dist/client/assets/{access-gate-CxXZPkIw.js → access-gate-B8ke5V9B.js} +1 -1
- package/dist/client/assets/{add-section-modal-C7ktQCug.js → add-section-modal-R6NgXhJA.js} +1 -1
- package/dist/client/assets/{agent-icon-q4cV7U67.js → agent-icon-OqQTNFsC.js} +1 -1
- package/dist/client/assets/{agents-list-UZwnNOjT.js → agents-list-_5s5JeHd.js} +1 -1
- package/dist/client/assets/{ai-providers-Cput0kVL.js → ai-providers-D5nYmfZB.js} +1 -1
- package/dist/client/assets/{alert-DjeIAXMV.js → alert-BsZRUEM2.js} +1 -1
- package/dist/client/assets/{alert-dialog-DIwINRgW.js → alert-dialog-iPj1kFsb.js} +1 -1
- package/dist/client/assets/{app-editor-DdSH3pAD.js → app-editor-Cqg3A1oU.js} +1 -1
- package/dist/client/assets/{auth-FouChJbb.js → auth-CU9nh5v5.js} +1 -1
- package/dist/client/assets/{auth-catchall-6cph4qce.js → auth-catchall-BkoM7GHE.js} +1 -1
- package/dist/client/assets/{auth-entry-i0rNcujn.js → auth-entry-Cnd5Yyo4.js} +1 -1
- package/dist/client/assets/{auth-split-layout-3qPwGE8Z.js → auth-split-layout-DEObuTt5.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-Dx2DT3YD.js → authenticate-and-persist-oauth-Y0eAm4-d.js} +1 -1
- package/dist/client/assets/{automation-list-row-Brn7k31U.js → automation-list-row-Bs0wFLr_.js} +1 -1
- package/dist/client/assets/{automation-runs-CP1cxXFo.js → automation-runs-D7N1vsav.js} +1 -1
- package/dist/client/assets/{automations-BlJndOBe.js → automations-CfIG5b76.js} +1 -1
- package/dist/client/assets/{avatar-Du8HEobV.js → avatar-npAOJTNv.js} +1 -1
- package/dist/client/assets/{badge-swCoKQnC.js → badge-B7QGFlT2.js} +1 -1
- package/dist/client/assets/{block-document-DiB0SOp5.js → block-document-Sh0V11uT.js} +1 -1
- package/dist/client/assets/{brand-context-C8l7XNKr.js → brand-context-OfFgyNNa.js} +1 -1
- package/dist/client/assets/{buckets-Bs0sTGAu.js → buckets-sL5kUY2t.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DE5pUVzi.js → bulk-category-panel-DejEHEKu.js} +1 -1
- package/dist/client/assets/{calendar-BZcldUNV.js → calendar-BKP3pISc.js} +1 -1
- package/dist/client/assets/{capability-load-error-CqwI-nav.js → capability-load-error-sN01EV-h.js} +1 -1
- package/dist/client/assets/{card-9OUE6Bzl.js → card-C6G1ZbAT.js} +1 -1
- package/dist/client/assets/{category-editor-JK7DojfI.js → category-editor-Co38yZEY.js} +1 -1
- package/dist/client/assets/{chat-context-DYO1ODPB.js → chat-context-Bkf3Y_YW.js} +1 -1
- package/dist/client/assets/{checkbox-Dd_rqLvT.js → checkbox-B9JLC7kz.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CFsjKhGa.js → cli-auth-success-CsEIMeSH.js} +1 -1
- package/dist/client/assets/{collection-detail-D0rtc2gf.js → collection-detail-zqQkeNgt.js} +1 -1
- package/dist/client/assets/{collection-display-button-iD10GGdW.js → collection-display-button-CUXNxY_5.js} +1 -1
- package/dist/client/assets/{collection-search-5SFjfCC8.js → collection-search-Oul6UFfq.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-fW-dsmLE.js → collection-table-wrapper-CDNw08E3.js} +1 -1
- package/dist/client/assets/{collection-tabs-DnykrgWW.js → collection-tabs-DfUm6FcP.js} +1 -1
- package/dist/client/assets/{command-CDVbjOi5.js → command-CFi_nxAL.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-CAOuADZ6.js → commerce-onboarding-D4pJOG7X.js} +1 -1
- package/dist/client/assets/{companions-core-6m5dy3es.js → companions-core-DBaOS2yz.js} +1 -1
- package/dist/client/assets/{connect-B_K53Vaa.js → connect-qY6nUUFn.js} +1 -1
- package/dist/client/assets/{connection-DhlrJlFw.js → connection-_j4DuEiI.js} +1 -1
- package/dist/client/assets/{connection-card-CzF-xjYn.js → connection-card-CuJ2QFEt.js} +1 -1
- package/dist/client/assets/{connection-detail-DmWTCewb.js → connection-detail-C52r4r_5.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DRviH-Au.js → connection-form-helpers-Bmw91fnM.js} +1 -1
- package/dist/client/assets/{connections-DGvaZBx3.js → connections-CMPdUO57.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BXMXu1gQ.js → decopilot-sse-pool-CmuV2kHg.js} +1 -1
- package/dist/client/assets/{dialog-C82H2S70.js → dialog-K6gwa7A3.js} +1 -1
- package/dist/client/assets/{domain-settings-DPn_9rd3.js → domain-settings-BPhwVIl_.js} +1 -1
- package/dist/client/assets/{drawer-lnIGl-vb.js → drawer-B_XFR2lX.js} +1 -1
- package/dist/client/assets/{dropdown-menu-CRGAwBji.js → dropdown-menu-DUU_gv0n.js} +1 -1
- package/dist/client/assets/{empty-state-BKzUesA7.js → empty-state-Cp0ZI-r6.js} +1 -1
- package/dist/client/assets/{extract-connection-data-B9TIJ0UC.js → extract-connection-data-2A6KAT-f.js} +1 -1
- package/dist/client/assets/{file-explorer-tNI79jXo.js → file-explorer-Ua7ytqbC.js} +1 -1
- package/dist/client/assets/{form-DAiRK0vx.js → form-CGaw2YpJ.js} +1 -1
- package/dist/client/assets/{general-CXtIEOrf.js → general-DUtn268r.js} +1 -1
- package/dist/client/assets/{github-repo-picker-DUNQ1oJW.js → github-repo-picker-DtakWI4J.js} +1 -1
- package/dist/client/assets/{hooks-Bom1QoTc.js → hooks-D6e52Y4T.js} +1 -1
- package/dist/client/assets/{index-Dv8k1EHh.js → index-BMkqNEv8.js} +1 -1
- package/dist/client/assets/{index-Df7LGqDK.js → index-BcaeODv9.js} +1 -1
- package/dist/client/assets/{index-Z4CG7jJp.js → index-BvRZaTt9.js} +1 -1
- package/dist/client/assets/{index-BDQ6Ogmu.js → index-CpUxmDng.js} +5 -5
- package/dist/client/assets/{index-oBYlsJ_o.js → index-DBLw6mkp.js} +1 -1
- package/dist/client/assets/{index-D7cNsGmf.js → index-DDsGzWAW.js} +3 -3
- package/dist/client/assets/{index-DK8HHLRp.js → index-DI6Brofo.js} +1 -1
- package/dist/client/assets/{index-2KxPRjw5.js → index-DqXmpRSX.js} +3 -3
- package/dist/client/assets/{index-C_5SQGG6.js → index-Dqep-uNC.js} +1 -1
- package/dist/client/assets/{index-B_kqSbsO.js → index-Dy8kFJxu.js} +1 -1
- package/dist/client/assets/{index-C-JAJ-o5.js → index-rTnRAZMH.js} +1 -1
- package/dist/client/assets/{index-redirect-Cj-NIgvU.js → index-redirect-6k6UhjHL.js} +1 -1
- package/dist/client/assets/{input-BAuCATqg.js → input-Bp56QPzT.js} +1 -1
- package/dist/client/assets/{integration-icon-DKBuU8Fr.js → integration-icon-MouDA4V6.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-BiHY2r7m.js → invite-member-dialog-CiJy3P9w.js} +1 -1
- package/dist/client/assets/{label-onkw7wrh.js → label-CXwRlswr.js} +1 -1
- package/dist/client/assets/{layout-D8O9_Poo.js → layout-B3j_gVFj.js} +1 -1
- package/dist/client/assets/{login-B0j1yr6w.js → login-Hjf4Zeii.js} +1 -1
- package/dist/client/assets/{mcp-oauth-95IH3VKT.js → mcp-oauth-BHDSTwSV.js} +1 -1
- package/dist/client/assets/{members-Y7A-UiF5.js → members-D2Ea76Rg.js} +1 -1
- package/dist/client/assets/{monaco-editor-CSUtCvVX.js → monaco-editor-C9o8bufU.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-Dcug_wR7.js → monitoring-stats-row-C9gp4i2P.js} +1 -1
- package/dist/client/assets/{multi-select-C68tqs9V.js → multi-select-Ch6zaVsE.js} +1 -1
- package/dist/client/assets/{oauth-callback-CqH1tIve.js → oauth-callback-PpJTQQhm.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C0UAY-58.js → oauth-callback-ai-provider-BCj-mtF9.js} +1 -1
- package/dist/client/assets/{onboarding-2ZJYmqTH.js → onboarding-CLYVE1a0.js} +1 -1
- package/dist/client/assets/{org-layout-qZcaYBLo.js → org-layout-CYEy29Ts.js} +1 -1
- package/dist/client/assets/{organization-choice-CduZOMP9.js → organization-choice-CWdxGykt.js} +1 -1
- package/dist/client/assets/{orgs-DU0BEJAc.js → orgs-B_4i8FPt.js} +1 -1
- package/dist/client/assets/{page-seo-form-nxKDUI-6.js → page-seo-form-DpY_sul3.js} +1 -1
- package/dist/client/assets/{popover-x1qHvmwD.js → popover-CVg35MYX.js} +1 -1
- package/dist/client/assets/{post-editor-BhfI7Odx.js → post-editor-Bpp2OmpX.js} +1 -1
- package/dist/client/assets/{primitives-DITXbj-2.js → primitives-Br2UT5Vf.js} +1 -1
- package/dist/client/assets/{profile-Dl3k4wub.js → profile-6ivG90Z_.js} +1 -1
- package/dist/client/assets/project-app-view-B3f5qhaT.js +1 -0
- package/dist/client/assets/record-editor-B0thyxFw.js +1 -0
- package/dist/client/assets/{redirect-editor-BamLe0Vb.js → redirect-editor-BOSsbfNh.js} +1 -1
- package/dist/client/assets/{registry-layout-Cfgh3Q9S.js → registry-layout-48QA7RsV.js} +1 -1
- package/dist/client/assets/registry-wAhFzL5P.js +2 -0
- package/dist/client/assets/{reports-2omVoMUm.js → reports-gCTgU_9n.js} +1 -1
- package/dist/client/assets/{require-capability-B1pg4EtO.js → require-capability-CCuG3VBt.js} +1 -1
- package/dist/client/assets/{required-auth-layout-wB2bMMGI.js → required-auth-layout-BU1eh7Wn.js} +1 -1
- package/dist/client/assets/{reset-password-BmxFRY37.js → reset-password-b8TsB2X9.js} +1 -1
- package/dist/client/assets/{roles-ClU1umGx.js → roles-bUKS9vRr.js} +1 -1
- package/dist/client/assets/{search-input-DtCL1YcZ.js → search-input-B0jSz39p.js} +1 -1
- package/dist/client/assets/{secrets-B-dmTgLw.js → secrets-DBVJEtoI.js} +1 -1
- package/dist/client/assets/{sections-editor-DqY5dzLX.js → sections-editor-WmcIIpkR.js} +1 -1
- package/dist/client/assets/{select-DfQiZ-4J.js → select-Cb3tiSDw.js} +1 -1
- package/dist/client/assets/{select-model-Clf7Hlwn.js → select-model-Bl2KSVsJ.js} +1 -1
- package/dist/client/assets/{self-tool-result-BCgUr0ik.js → self-tool-result-qixGUHHp.js} +1 -1
- package/dist/client/assets/{seo-editor-CEUCMyKF.js → seo-editor-CUQXJ1Cd.js} +1 -1
- package/dist/client/assets/{settings-layout-DJLSOlbv.js → settings-layout-D-dv9Bvf.js} +1 -1
- package/dist/client/assets/{settings-section-BaFcIjo5.js → settings-section-awXbfRFI.js} +1 -1
- package/dist/client/assets/{shell-controls-DIMDYHkk.js → shell-controls-wrDqoZ9L.js} +1 -1
- package/dist/client/assets/{shell-layout-B56j-p5N.js → shell-layout-BX0EOEmo.js} +1 -1
- package/dist/client/assets/{sidebar-DpVJgBAa.js → sidebar-BiPc8cWL.js} +1 -1
- package/dist/client/assets/{skeleton-BtiEyhAl.js → skeleton-CT6LmWQk.js} +1 -1
- package/dist/client/assets/{spinner-DPfrt4Tp.js → spinner-5nEupkU1.js} +1 -1
- package/dist/client/assets/{sso-CICOFYfX.js → sso-BH0Yk1RU.js} +1 -1
- package/dist/client/assets/{store-BJgQ6scG.js → store-DwUNbOmZ.js} +1 -1
- package/dist/client/assets/store-registry-Ci03spyl.js +2 -0
- package/dist/client/assets/{studio-tools-CTJuN7Yy.js → studio-tools-DvotCHSX.js} +1 -1
- package/dist/client/assets/{switch-DIwoxI1y.js → switch-C4EXURzI.js} +1 -1
- package/dist/client/assets/{tab-id-DJIms9m1.js → tab-id-CCUuJuHg.js} +1 -1
- package/dist/client/assets/{table-BbRTH9fF.js → table-BrY2fIko.js} +1 -1
- package/dist/client/assets/{tabs-DKyQ4Qe1.js → tabs-o5z4F4nX.js} +1 -1
- package/dist/client/assets/{textarea-Y242n44c.js → textarea-KF0bc7ey.js} +1 -1
- package/dist/client/assets/{toggle-group-BBsmjOfV.js → toggle-group-ImSBP57j.js} +1 -1
- package/dist/client/assets/{toolbar-BaZp82JP.js → toolbar-HbcGIVfO.js} +1 -1
- package/dist/client/assets/{tooltip-CEu_we5y.js → tooltip-DJ0CJ4nu.js} +1 -1
- package/dist/client/assets/{use-ai-providers-B2nAOoUO.js → use-ai-providers-BlXZ8OS9.js} +1 -1
- package/dist/client/assets/{use-automations-irLGHKpI.js → use-automations-D97aWna-.js} +1 -1
- package/dist/client/assets/{use-autosave-BAjK3u8R.js → use-autosave-BuWdMqxb.js} +1 -1
- package/dist/client/assets/{use-capability-Y4a4cK2y.js → use-capability-DjWP4c_V.js} +1 -1
- package/dist/client/assets/{use-clock-tick-kQx_nmDK.js → use-clock-tick-D08rNiex.js} +1 -1
- package/dist/client/assets/{use-connection-CvBcj0iA.js → use-connection-CV5pilpz.js} +1 -1
- package/dist/client/assets/{use-copy-POYUhIaM.js → use-copy-D8Z2epUY.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Df8fpCi4.js → use-create-virtual-mcp-DYyiqJWf.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-EvVOUA6S.js → use-debounced-autosave-BYO2w-tQ.js} +1 -1
- package/dist/client/assets/{use-debounced-value-IOz7dnNR.js → use-debounced-value-Pwi9o0RN.js} +1 -1
- package/dist/client/assets/{use-deco-credits-CBOWsaT-.js → use-deco-credits-DwGKxBj1.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-Dc8-pFMU.js → use-decopilot-events-cGJArGLt.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CxX7cCR_.js → use-delete-connection-Cnp4lOk4.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-ucDRDdNR.js → use-deployment-admin-BGRYyg5T.js} +1 -1
- package/dist/client/assets/{use-file-configs-BsCj6gUu.js → use-file-configs-mdE9JcAP.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-ccrh4_KW.js → use-infinite-scroll-C92EJ-_j.js} +1 -1
- package/dist/client/assets/{use-join-requests-DjYbXyL8.js → use-join-requests-Da6i-it5.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-vzmxIRHi.js → use-mcp-auth-status-DJKtOtTD.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DRwUSZdO.js → use-mcp-client-DwJl6WIN.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-PCSBjtNq.js → use-mcp-tools-BDghoqz7.js} +1 -1
- package/dist/client/assets/{use-members-DjRi0Onl.js → use-members-Evj2zR-F.js} +1 -1
- package/dist/client/assets/{use-mobile-CLE626Yq.js → use-mobile-lAVE_tNN.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-CXMG3HNZ.js → use-navigate-to-agent-CvMJ7nhQ.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BxtVWNiI.js → use-org-auth-client-DXsqXIB3.js} +1 -1
- package/dist/client/assets/{use-org-sso-DBExuOVV.js → use-org-sso-BWke9nQX.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DFLLP3Qo.js → use-organization-roles-C3KJEjHx.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DKSNQ1_z.js → use-organization-settings-D9dl8fjV.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BRZCHKHD.js → use-registry-connections-DyTDBh31.js} +1 -1
- package/dist/client/assets/{use-secrets-DfGoccAw.js → use-secrets-DxzABMbU.js} +1 -1
- package/dist/client/assets/{use-status-sounds-DcgHuUFX.js → use-status-sounds-Nup_Tqx4.js} +1 -1
- package/dist/client/assets/{use-tags-DRM6xsgU.js → use-tags-CghR51-0.js} +1 -1
- package/dist/client/assets/{use-view-mode-DvgBYhz6.js → use-view-mode-C9K2zt6M.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-D7SVi-2E.js → use-virtual-mcp-Co2Gxa_g.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-W7NcHma4.js +1 -0
- package/dist/client/assets/{useQueries-DVb_HjzV.js → useQueries-DQT-5ztu.js} +1 -1
- package/dist/client/assets/{useRouterState-CJ97gzOK.js → useRouterState-CfpQuL30.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-r5q75ddS.js +1 -0
- package/dist/client/assets/{users-CX6W_kiO.js → users-B34XbaLL.js} +1 -1
- package/dist/client/assets/{variant-calendar-BSUlgs-W.js → variant-calendar-DtyO8s_C.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-DULJqLEB.js → view-mode-toggle-Be9Tyce0.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +178 -177
- package/dist/server/migrate.js +7 -7
- package/dist/server/server.js +145 -145
- package/package.json +1 -1
- package/dist/client/assets/project-app-view-CrBgtatz.js +0 -1
- package/dist/client/assets/record-editor-DUGdKTe8.js +0 -1
- package/dist/client/assets/registry-B4ci0gM-.js +0 -2
- package/dist/client/assets/store-registry-Di0pCo7I.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BWd6o-wh.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DPyRMURT.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -148,7 +148,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
148
148
|
id, parent_connection_id, child_connection_id,
|
|
149
149
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
150
150
|
FROM connection_aggregations
|
|
151
|
-
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vt={};i(vt,{up:()=>V_,down:()=>v_});import{webcrypto as Zi}from"crypto";var Qi="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var G_=128,
|
|
151
|
+
`.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vt={};i(vt,{up:()=>V_,down:()=>v_});import{webcrypto as Zi}from"crypto";var Qi="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var G_=128,R,$;function I_(t){if(!R||R.length<t)R=Buffer.allocUnsafe(t*G_),Zi.getRandomValues(R),$=0;else if($+t>R.length)Zi.getRandomValues(R),$=0;$+=t}function X(t=21){I_(t|=0);let n="";for(let u=$-t;u<$;u++)n+=Qi[R[u]&63];return n}var g_="org-admin",s_="Organization Admin";async function V_(t){await t.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await t.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await t.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let n=await t.selectFrom("organization").select(["id"]).execute();for(let u of n){let _=new Date().toISOString(),e=`proj_${X()}`,a=await t.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await t.insertInto("projects").values({id:e,organization_id:u.id,slug:g_,name:s_,description:null,enabled_plugins:a?.enabled_plugins??null,ui:null,created_at:_,updated_at:_}).execute()}}async function v_(t){await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("projects").execute()}var qt={};i(qt,{up:()=>q_,down:()=>l_});async function q_(t){await t.schema.alterTable("threads").addColumn("status","text",(n)=>n.notNull().defaultTo("completed")).execute()}async function l_(t){await t.schema.alterTable("threads").dropColumn("status").execute()}var lt={};i(lt,{up:()=>d_,down:()=>b_});async function d_(t){}async function b_(t){}var dt={};i(dt,{up:()=>ta,down:()=>na});async function ta(t){await t.schema.createTable("project_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("project_id","text",(n)=>n.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await t.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function na(t){await t.schema.dropIndex("project_connections_project_id_idx").execute(),await t.schema.dropIndex("project_connections_project_conn_unique").execute(),await t.schema.dropTable("project_connections").execute()}var bt={};i(bt,{up:()=>ua,down:()=>ia});import{sql as Fi}from"kysely";async function ua(t){await Fi`
|
|
152
152
|
UPDATE connections
|
|
153
153
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
154
154
|
tools = NULL,
|
|
@@ -948,7 +948,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
948
948
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
949
949
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
950
950
|
WHERE revoked_at IS NULL
|
|
951
|
-
`.execute(t),await t.schema.createTable("connection_credential_grants").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Ho(t){await t.schema.dropTable("connection_credential_grants").ifExists().execute(),await t.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Gu={};i(Gu,{up:()=>Mo,down:()=>Yo});async function Mo(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function Yo(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}var Iu={};i(Iu,{up:()=>ho,down:()=>Ao});import{sql as
|
|
951
|
+
`.execute(t),await t.schema.createTable("connection_credential_grants").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(I`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await t.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Ho(t){await t.schema.dropTable("connection_credential_grants").ifExists().execute(),await t.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Gu={};i(Gu,{up:()=>Mo,down:()=>Yo});async function Mo(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function Yo(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}var Iu={};i(Iu,{up:()=>ho,down:()=>Ao});import{sql as W}from"kysely";async function ho(t){await W`
|
|
952
952
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
953
953
|
RETURNS jsonb AS $fn$
|
|
954
954
|
BEGIN
|
|
@@ -957,7 +957,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
957
957
|
RETURN NULL;
|
|
958
958
|
END;
|
|
959
959
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
960
|
-
`.execute(t),await
|
|
960
|
+
`.execute(t),await W`
|
|
961
961
|
DELETE FROM connection_aggregations a
|
|
962
962
|
USING (
|
|
963
963
|
SELECT
|
|
@@ -981,7 +981,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
981
981
|
WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
|
|
982
982
|
) ranked
|
|
983
983
|
WHERE a.id = ranked.id AND ranked.rn > 1;
|
|
984
|
-
`.execute(t),await
|
|
984
|
+
`.execute(t),await W`
|
|
985
985
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
986
986
|
RETURNS trigger AS $fn$
|
|
987
987
|
BEGIN
|
|
@@ -1002,12 +1002,12 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
1002
1002
|
RETURN NEW;
|
|
1003
1003
|
END;
|
|
1004
1004
|
$fn$ LANGUAGE plpgsql;
|
|
1005
|
-
`.execute(t),await
|
|
1005
|
+
`.execute(t),await W`
|
|
1006
1006
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1007
1007
|
BEFORE INSERT ON connection_aggregations
|
|
1008
1008
|
FOR EACH ROW
|
|
1009
1009
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1010
|
-
`.execute(t)}async function Ao(t){await
|
|
1010
|
+
`.execute(t)}async function Ao(t){await W`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await W`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await W`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var su={};i(su,{up:()=>Bo,down:()=>So});import{sql as gu}from"kysely";async function Bo(t){await t.schema.createTable("task_board_items").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("status","text",(n)=>n.notNull().defaultTo("triage")).addColumn("priority","text",(n)=>n.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(gu`now()`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(gu`now()`)).execute(),await t.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await t.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(n)=>n.notNull().defaultTo(gu`false`)).execute()}async function So(t){await t.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await t.schema.dropTable("task_board_items").execute()}var Vu={};i(Vu,{up:()=>Oo,down:()=>Go});async function Oo(t){await t.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function Go(t){await t.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var vu={};i(vu,{up:()=>Io,down:()=>go});async function Io(t){await t.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function go(t){await t.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var qu={};i(qu,{up:()=>so,down:()=>Vo});async function so(t){await t.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function Vo(t){await t.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lu={};i(lu,{up:()=>qo,down:()=>lo});import{sql as vo}from"kysely";async function qo(t){await t.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(vo`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await t.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await t.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function lo(t){await t.schema.dropTable("task_board_item_threads").execute()}var du={};i(du,{up:()=>bo,down:()=>ty});async function bo(t){await t.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(n)=>n.onDelete("cascade")).execute()}async function ty(t){await t.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var bu={};i(bu,{up:()=>uy,down:()=>iy});import{sql as ny}from"kysely";async function uy(t){await t.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(n)=>n.notNull()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("url","text",(n)=>n.notNull()).addColumn("pr_number","integer",(n)=>n.notNull()).addColumn("repo_owner","text",(n)=>n.notNull()).addColumn("repo_name","text",(n)=>n.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ny`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await t.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function iy(t){await t.schema.dropTable("task_board_item_prs").execute()}var ti={};i(ti,{up:()=>_y,down:()=>ay});import{sql as ey}from"kysely";async function _y(t){await ey`
|
|
1011
1011
|
DELETE FROM member
|
|
1012
1012
|
WHERE id IN (
|
|
1013
1013
|
SELECT id FROM (
|
|
@@ -1053,7 +1053,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
|
|
|
1053
1053
|
SELECT id, app_name, connection_url, title, slug
|
|
1054
1054
|
FROM connections
|
|
1055
1055
|
WHERE connection_type != 'VIRTUAL'
|
|
1056
|
-
`.execute(t),u=0;for(let _ of n.rows){let e=gy(_);if(e===_.slug)continue;await oe`UPDATE connections SET slug = ${e} WHERE id = ${_.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function Vy(){}var ri={};i(ri,{up:()=>qy,down:()=>ly});import{sql as vy}from"kysely";async function qy(t){await vy`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(t)}async function ly(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var dy={"001-initial-schema":wt,"002-organization-settings":Kt,"003-connection-schema-align":ct,"004-remove-models-binding":pt,"005-connection-configuration":zt,"006-add-views-to-settings":Pt,"007-monitoring-logs":rt,"008-event-bus":Ut,"009-drop-audit-logs":jt,"010-gateways":Dt,"011-gateway-icon":Jt,"012-gateway-tool-selection-mode":Lt,"013-monitoring-user-agent-gateway":Rt,"014-gateway-resources-prompts":Wt,"015-monitoring-properties":kt,"016-downstream-token-client-info":$t,"017-downstream-token-remove-userid":Xt,"018-drop-gateway-tool-selection-strategy":Qt,"019-remove-gateway-is-default":Zt,"020-enabled-plugins":Ft,"021-threads":Ht,"022-rename-gateway-to-virtual-mcp":Mt,"023-optimize-thread-indexes":Yt,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":At,"026-restrict-child-connection-delete":Bt,"027-update-management-mcp-url":Ot,"028-update-management-mcp-to-self":It,"029-add-updated-by-to-connections":gt,"030-member-tags":st,"031-add-dependency-mode":Vt,"032-projects":vt,"033-thread-status":qt,"034-monitoring-dashboards":lt,"035-project-connections":dt,"036-update-registry-url":bt,"037-ai-provider-keys":tn,"038-oauth-pkce-states":nn,"039-automations":un,"040-replace-next-run-at-with-last-run-at":en,"041-ai-provider-keys-unique-constraint":_n,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":xn,"044-drop-connections-tools-column":mn,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":Tn,"047-add-next-run-at":Cn,"048-merge-projects-agents":En,"049-remove-org-admin-projects":fn,"050-durable-agent-runs":wn,"051-org-sso":cn,"052-thread-agent-ids":pn,"053-registry-config":zn,"054-connection-slug":rn,"055-spaces":Un,"056-automation-project-scope":jn,"057-thread-virtual-mcp-id":Dn,"058-trigger-callback-tokens":Jn,"059-kv":Ln,"060-member-index":Rn,"061-downstream-token-connection-index":Wn,"062-private-registry":kn,"063-event-subscriptions-enabled-boolean":$n,"064-brand-context":Xn,"065-organization-domains":Qn,"066-brand-context-structured":Zn,"067-threads-metadata":Fn,"068-threads-branch":Hn,"069-sandbox-runner-state":Mn,"070-model-categories":Yn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":An,"073-backfill-basic-usage-roles":Bn,"074-sandbox-runner-state-handle-nonunique":Sn,"075-thread-inflight-async-jobs":On,"076-automations-drop-agent-json":Gn,"077-tier-only-model-selection":gn,"078-automation-tool-call-kind":sn,"079-strip-legacy-freestyle-vm-map-entries":Vn,"080-async-research-jobs":vn,"081-async-research-jobs-result-content":qn,"082-secrets":ln,"083-thread-run-locally":dn,"084-drop-host-sandbox-rows":bn,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":nu,"087-fix-vm-map-rekey":uu,"088-purge-cli-activate-keys":iu,"089-rename-remote-user-to-desktop":eu,"090-automation-webhook-triggers":_u,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":xu,"093-backfill-global-search-basic-usage":mu,"094-org-file-configs":yu,"095-remove-automation-tool-call-kind":Tu,"096-org-file-configs-public-url-base":Cu,"097-drop-local-docker-sandbox-state":Eu,"098-thread-message-parts":fu,"099-run-fence":wu,"100-link-transport":Ku,"101-cancel-requested-at":cu,"102-observational-agent":pu,"103-revert-observational-agent":zu,"104-agent-sandbox-provider-kind":ru,"105-org-fs":Uu,"106-automation-tools":ju,"107-org-fs-public-org":Du,"108-automation-max-agent-steps":Ju,"109-thread-message-parts-per-message-seq":Lu,"110-backfill-ghs-token-expiry":Ru,"111-org-fs-thread-id":Wu,"112-org-file-configs-credential-type":ku,"113-thread-failure-reason":$u,"114-run-acked-seq":Xu,"115-thread-projected-seq":Qu,"116-org-sites":Zu,"117-org-file-configs-site-slug":Fu,"118-organization-domains-multi-verify":Hu,"119-organization-join-requests":Mu,"120-org-fs-read-public":Yu,"121-org-fs-share-password":hu,"122-split-web-research-tier":Su,"123-connection-credential-vault":Ou,"124-drop-thread-projected-seq":Gu,"125-github-child-single-parent":Iu,"126-task-board":su,"127-task-board-due-date":Vu,"128-reports-only":vu,"129-task-board-assigned-by":qu,"130-task-board-thread-id":lu,"131-task-board-thread-link-cascade":du,"132-task-board-item-prs":bu,"133-dedupe-duplicate-members":ti,"134-drop-task-board-enabled":ni,"135-task-board-item-fk-cascade":ui,"136-task-board-import-idempotency":ii,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":_i,"139-organization-billing":ai,"140-seat-change-log":xi,"141-benefits-sync-pending":mi,"142-stripe-event-watermark":oi,"143-armed-report-url":yi,"144-benefits-pending-index":Ti,"145-user-model-preferences":Ci,"146-organization-main-agent":Ni,"147-drop-agent-sandbox-tables":Ei,"148-org-flags":fi,"149-task-board-item-sort-order":wi,"150-task-board-activity":Ki,"151-task-board-tags":pi,"152-repair-connection-slug":Pi,"153-task-board-latest-assistant-part-index":ri},Ui=dy;import{getMigrations as XT}from"better-auth/db";import{sso as QT}from"@better-auth/sso";import{organization as ZT}from"@decocms/better-auth/plugins";import{admin as FT,apiKey as HT,jwt as MT,magicLink as YT,mcp as hT,openAPI as AT}from"better-auth/plugins";import{emailOTP as BT}from"better-auth/plugins/email-otp";import{Kysely as DT,PostgresDialect as Pe}from"kysely";import{Pool as re}from"pg";import{homedir as by}from"os";var tT=new Set(["all","worker","api"]);function nT(t){let n=(t??"").trim();return tT.has(n)?n:"all"}var uT=new Set(["production","development","test"]);function iT(t){let n=(t??"").trim();return uT.has(n)?n:"development"}function k(t){return t==="true"||t==="1"}function eT(t){if(t===void 0||t==="")return;return k(t)}function Te(t,n){if(n===void 0||n==="")return;let u=Number(n);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function W(t,n,u){return Te(t,n)??u}function _T(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function ye(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function aT(t){return t===void 0||t===""||t==="true"||t==="1"}var xT=new Set(["agent-sandbox","user-desktop"]);function mT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!xT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function Ce(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${by()}/deco`,_=t.localMode,e=t.nodeEnv||iT(n.NODE_ENV),a=n.NATS_URL||"nats://localhost:4222",m=eT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:e,port:W("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:n.STUDIO_PUBLIC_URL??n.MESH_PUBLIC_URL,dataDir:u,databasePgSsl:k(n.DATABASE_PG_SSL),databasePoolMax:W("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:_,disableRateLimit:k(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Te("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:W("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:k(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:W("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:W("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:k(n.ENABLE_DECO_IMPORT),billingEnforced:k(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:_T(n.MCP_CACHE_ENABLED,e!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:k(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:W("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:W("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:aT(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:nT(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:mT(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:ye(n.DATABASE_URL),externalNatsUrl:ye(a),skipMigrations:t.skipMigrations}}var Tt=null;function H(){if(!Tt)oT();return Tt}function oT(){if(Tt)return;let t={...process.env},n=Ce({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);Tt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as fT,metrics as wT,propagation as ef,ROOT_CONTEXT as _f,SpanStatusCode as af,trace as KT}from"@opentelemetry/api";import{logs as cT,SeverityNumber as ji}from"@opentelemetry/api-logs";import{OTLPLogExporter as of}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as pT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Cf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Ef}from"@opentelemetry/instrumentation-runtime-node";import{context as lN,propagation as dN,SpanKind as bN,SpanStatusCode as tE}from"@opentelemetry/api";var uE=globalThis.fetch;import{ExportResultCode as EE}from"@opentelemetry/core";import{ExportResultCode as Ct}from"@opentelemetry/core";import{mkdir as yT,rename as TT,writeFile as CT}from"fs/promises";import{join as Nt}from"path";class Et{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Ct.FAILED});for(let n of t){let u=JSON.stringify(n),_=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:_,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Ct.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Ct.FAILED}});return Promise.resolve({code:Ct.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let e of t){let a=n.get(e.partition);if(!a)a=[],n.set(e.partition,a);a.push(e.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([e,a])=>this.writeNDJSON(a,e).then(()=>e))),_=u.find((e)=>e.status==="rejected");if(_){let e=new Set;for(let m of u)if(m.status==="fulfilled")e.add(m.value);let a=t.filter((m)=>!e.has(m.partition));this.bufferItems=a.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw _.reason}}async writeNDJSON(t,n){let u=new Date,_=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],e=n?Nt(this.basePath,n,..._):Nt(this.basePath,..._);if(!this.knownDirs.has(e))await yT(e,{recursive:!0,mode:448}),this.knownDirs.add(e);let a=`${crypto.randomUUID()}.ndjson`,m=Nt(e,`.${a}.tmp`),x=Nt(e,a),o=t.join(`
|
|
1056
|
+
`.execute(t),u=0;for(let _ of n.rows){let e=gy(_);if(e===_.slug)continue;await oe`UPDATE connections SET slug = ${e} WHERE id = ${_.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function Vy(){}var ri={};i(ri,{up:()=>qy,down:()=>ly});import{sql as vy}from"kysely";async function qy(t){await vy`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(t)}async function ly(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var dy={"001-initial-schema":wt,"002-organization-settings":Kt,"003-connection-schema-align":ct,"004-remove-models-binding":pt,"005-connection-configuration":zt,"006-add-views-to-settings":Pt,"007-monitoring-logs":rt,"008-event-bus":Ut,"009-drop-audit-logs":jt,"010-gateways":Dt,"011-gateway-icon":Jt,"012-gateway-tool-selection-mode":Lt,"013-monitoring-user-agent-gateway":Rt,"014-gateway-resources-prompts":Wt,"015-monitoring-properties":kt,"016-downstream-token-client-info":$t,"017-downstream-token-remove-userid":Xt,"018-drop-gateway-tool-selection-strategy":Qt,"019-remove-gateway-is-default":Zt,"020-enabled-plugins":Ft,"021-threads":Ht,"022-rename-gateway-to-virtual-mcp":Mt,"023-optimize-thread-indexes":Yt,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":At,"026-restrict-child-connection-delete":Bt,"027-update-management-mcp-url":Ot,"028-update-management-mcp-to-self":It,"029-add-updated-by-to-connections":gt,"030-member-tags":st,"031-add-dependency-mode":Vt,"032-projects":vt,"033-thread-status":qt,"034-monitoring-dashboards":lt,"035-project-connections":dt,"036-update-registry-url":bt,"037-ai-provider-keys":tn,"038-oauth-pkce-states":nn,"039-automations":un,"040-replace-next-run-at-with-last-run-at":en,"041-ai-provider-keys-unique-constraint":_n,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":xn,"044-drop-connections-tools-column":mn,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":Tn,"047-add-next-run-at":Cn,"048-merge-projects-agents":En,"049-remove-org-admin-projects":fn,"050-durable-agent-runs":wn,"051-org-sso":cn,"052-thread-agent-ids":pn,"053-registry-config":zn,"054-connection-slug":rn,"055-spaces":Un,"056-automation-project-scope":jn,"057-thread-virtual-mcp-id":Dn,"058-trigger-callback-tokens":Jn,"059-kv":Ln,"060-member-index":Rn,"061-downstream-token-connection-index":Wn,"062-private-registry":kn,"063-event-subscriptions-enabled-boolean":$n,"064-brand-context":Xn,"065-organization-domains":Qn,"066-brand-context-structured":Zn,"067-threads-metadata":Fn,"068-threads-branch":Hn,"069-sandbox-runner-state":Mn,"070-model-categories":Yn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":An,"073-backfill-basic-usage-roles":Bn,"074-sandbox-runner-state-handle-nonunique":Sn,"075-thread-inflight-async-jobs":On,"076-automations-drop-agent-json":Gn,"077-tier-only-model-selection":gn,"078-automation-tool-call-kind":sn,"079-strip-legacy-freestyle-vm-map-entries":Vn,"080-async-research-jobs":vn,"081-async-research-jobs-result-content":qn,"082-secrets":ln,"083-thread-run-locally":dn,"084-drop-host-sandbox-rows":bn,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":nu,"087-fix-vm-map-rekey":uu,"088-purge-cli-activate-keys":iu,"089-rename-remote-user-to-desktop":eu,"090-automation-webhook-triggers":_u,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":xu,"093-backfill-global-search-basic-usage":mu,"094-org-file-configs":yu,"095-remove-automation-tool-call-kind":Tu,"096-org-file-configs-public-url-base":Cu,"097-drop-local-docker-sandbox-state":Eu,"098-thread-message-parts":fu,"099-run-fence":wu,"100-link-transport":Ku,"101-cancel-requested-at":cu,"102-observational-agent":pu,"103-revert-observational-agent":zu,"104-agent-sandbox-provider-kind":ru,"105-org-fs":Uu,"106-automation-tools":ju,"107-org-fs-public-org":Du,"108-automation-max-agent-steps":Ju,"109-thread-message-parts-per-message-seq":Lu,"110-backfill-ghs-token-expiry":Ru,"111-org-fs-thread-id":Wu,"112-org-file-configs-credential-type":ku,"113-thread-failure-reason":$u,"114-run-acked-seq":Xu,"115-thread-projected-seq":Qu,"116-org-sites":Zu,"117-org-file-configs-site-slug":Fu,"118-organization-domains-multi-verify":Hu,"119-organization-join-requests":Mu,"120-org-fs-read-public":Yu,"121-org-fs-share-password":hu,"122-split-web-research-tier":Su,"123-connection-credential-vault":Ou,"124-drop-thread-projected-seq":Gu,"125-github-child-single-parent":Iu,"126-task-board":su,"127-task-board-due-date":Vu,"128-reports-only":vu,"129-task-board-assigned-by":qu,"130-task-board-thread-id":lu,"131-task-board-thread-link-cascade":du,"132-task-board-item-prs":bu,"133-dedupe-duplicate-members":ti,"134-drop-task-board-enabled":ni,"135-task-board-item-fk-cascade":ui,"136-task-board-import-idempotency":ii,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":_i,"139-organization-billing":ai,"140-seat-change-log":xi,"141-benefits-sync-pending":mi,"142-stripe-event-watermark":oi,"143-armed-report-url":yi,"144-benefits-pending-index":Ti,"145-user-model-preferences":Ci,"146-organization-main-agent":Ni,"147-drop-agent-sandbox-tables":Ei,"148-org-flags":fi,"149-task-board-item-sort-order":wi,"150-task-board-activity":Ki,"151-task-board-tags":pi,"152-repair-connection-slug":Pi,"153-task-board-latest-assistant-part-index":ri},Ui=dy;import{getMigrations as XT}from"better-auth/db";import{sso as QT}from"@better-auth/sso";import{organization as ZT}from"@decocms/better-auth/plugins";import{admin as FT,apiKey as HT,jwt as MT,magicLink as YT,mcp as hT,openAPI as AT}from"better-auth/plugins";import{emailOTP as BT}from"better-auth/plugins/email-otp";import{Kysely as DT,PostgresDialect as Pe}from"kysely";import{Pool as re}from"pg";import{homedir as by}from"os";var tT=new Set(["all","worker","api"]);function nT(t){let n=(t??"").trim();return tT.has(n)?n:"all"}var uT=new Set(["production","development","test"]);function iT(t){let n=(t??"").trim();return uT.has(n)?n:"development"}function k(t){return t==="true"||t==="1"}function eT(t){if(t===void 0||t==="")return;return k(t)}function Te(t,n){if(n===void 0||n==="")return;let u=Number(n);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function L(t,n,u){return Te(t,n)??u}function _T(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function ye(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function aT(t){return t===void 0||t===""||t==="true"||t==="1"}var xT=new Set(["agent-sandbox","user-desktop"]);function mT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!xT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function Ce(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${by()}/deco`,_=t.localMode,e=t.nodeEnv||iT(n.NODE_ENV),a=n.NATS_URL||"nats://localhost:4222",m=eT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:e,port:L("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:n.STUDIO_PUBLIC_URL??n.MESH_PUBLIC_URL,dataDir:u,databasePgSsl:k(n.DATABASE_PG_SSL),databasePoolMax:L("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:L("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:_,disableRateLimit:k(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Te("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:L("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:k(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:L("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:L("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:k(n.ENABLE_DECO_IMPORT),billingEnforced:k(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:_T(n.MCP_CACHE_ENABLED,e!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:k(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:L("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:L("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:aT(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:nT(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:mT(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:ye(n.DATABASE_URL),externalNatsUrl:ye(a),skipMigrations:t.skipMigrations}}var Tt=null;function H(){if(!Tt)oT();return Tt}function oT(){if(Tt)return;let t={...process.env},n=Ce({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);Tt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as fT,metrics as wT,propagation as ef,ROOT_CONTEXT as _f,SpanStatusCode as af,trace as KT}from"@opentelemetry/api";import{logs as cT,SeverityNumber as ji}from"@opentelemetry/api-logs";import{OTLPLogExporter as of}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as pT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Cf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Ef}from"@opentelemetry/instrumentation-runtime-node";import{context as lN,propagation as dN,SpanKind as bN,SpanStatusCode as tE}from"@opentelemetry/api";var uE=globalThis.fetch;import{ExportResultCode as EE}from"@opentelemetry/core";import{ExportResultCode as Ct}from"@opentelemetry/core";import{mkdir as yT,rename as TT,writeFile as CT}from"fs/promises";import{join as Nt}from"path";class Et{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Ct.FAILED});for(let n of t){let u=JSON.stringify(n),_=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:_,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Ct.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Ct.FAILED}});return Promise.resolve({code:Ct.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let e of t){let a=n.get(e.partition);if(!a)a=[],n.set(e.partition,a);a.push(e.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([e,a])=>this.writeNDJSON(a,e).then(()=>e))),_=u.find((e)=>e.status==="rejected");if(_){let e=new Set;for(let m of u)if(m.status==="fulfilled")e.add(m.value);let a=t.filter((m)=>!e.has(m.partition));this.bufferItems=a.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw _.reason}}async writeNDJSON(t,n){let u=new Date,_=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],e=n?Nt(this.basePath,n,..._):Nt(this.basePath,..._);if(!this.knownDirs.has(e))await yT(e,{recursive:!0,mode:448}),this.knownDirs.add(e);let a=`${crypto.randomUUID()}.ndjson`,m=Nt(e,`.${a}.tmp`),x=Nt(e,a),o=t.join(`
|
|
1057
1057
|
`)+`
|
|
1058
1058
|
`;await CT(m,o,{mode:384}),await TT(m,x)}}import{ExportResultCode as pE}from"@opentelemetry/core";import{AggregationTemporality as PE,DataPointType as rE}from"@opentelemetry/sdk-metrics";import{ExportResultCode as RE}from"@opentelemetry/core";var XE=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Uf,LoggerProvider as jf}from"@opentelemetry/sdk-logs";import{detectResources as Jf,envDetector as Lf,hostDetector as Rf,osDetector as Wf,processDetector as kf,resourceFromAttributes as $f}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Qf}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as FE}from"@opentelemetry/api-logs";import{NodeSDK as Hf}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as Yf,SamplingDecision as M}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as AE}from"@opentelemetry/api";var zT="__d",PT=fT("Current request"),rT=1;var Ee=(t)=>{let u=new URL(t.url).searchParams.get(zT);if(u==="")return crypto.randomUUID();if(!u)u=t.headers.get("x-trace-debug-id");return u};class fe{inner;constructor(t){this.inner=t}shouldSample(t,n,u,_,e,a){let m=t.getValue(PT);if(!m){if(this.inner)return this.inner.shouldSample(t,n,u,_,e,a);return{decision:M.RECORD_AND_SAMPLED}}let x=Ee(m);if(x)return{decision:M.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":x}};if(this.inner){let o=this.inner.shouldSample(t,n,u,_,e,a);if(o.decision===M.RECORD_AND_SAMPLED){let y=crypto.randomUUID();o.attributes={...o.attributes??{},"trace.debug.id":y}}return o}return{decision:M.NOT_RECORD}}toString(){return"DebugSampler"}}class we{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:M.RECORD_AND_SAMPLED};return{decision:M.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var Af=new pT({preventServerStart:!0}),Bf=new fe(new we(rT));var Ne=KT.getTracer("studio","1.0.0"),s=wT.getMeter("studio","1.0.0"),UT=cT.getLogger("studio","1.0.0"),Di=(t,n,u)=>{let _={},e=u,a=u[u.length-1];if(a!==null&&typeof a==="object"&&!Array.isArray(a)&&!(a instanceof Error)&&Object.getPrototypeOf(a)===Object.prototype)_=a,e=u.slice(0,-1);let m=e.map((x)=>{if(x instanceof Error)return`${x.name}: ${x.message}`;if(typeof x==="object")try{return JSON.stringify(x)}catch{return"[Object]"}return String(x)}).join(" ");UT.emit({severityNumber:t,severityText:n,body:m,attributes:{"log.source":"console",..._}})},Ji={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{Di(ji.ERROR,"ERROR",t),Ji.error(...t)};console.warn=(...t)=>{Di(ji.WARN,"WARN",t),Ji.warn(...t)};console.debug=(...t)=>{Di(ji.DEBUG,"DEBUG",t),Ji.debug(...t)};var Li,Ke=0,Ri=500;function jT(){if(Li)return;let t=performance.now()+Ri;Li=setInterval(()=>{let n=performance.now();Ke=Math.max(0,n-t),t=n+Ri},Ri),Li.unref?.()}function ce(){return jT(),Ke}var JT=()=>s.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),pe=()=>s.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ze=400,LT=100,RT=(t)=>(n)=>{let u={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>ze){let _=ce(),e=_>ze/2;console.error(e?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(_),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:ft()}})}if(JT().record(n.queryDurationMillis,u),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function WT(t){let n=t.connect.bind(t);return t.connect=(u)=>{if(typeof u==="function")return n(u);let _=performance.now(),e=ft(),a=t.idleCount===0&&t.totalCount>=e,m=t.idleCount;return n().then((x)=>{let o=performance.now()-_;if(pe().record(o,{"db.pool.outcome":a?"contended":"available"}),o>LT)if(a)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:o,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:e});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:o,idleAtStart:m,total:t.totalCount,max:e});return x},(x)=>{throw pe().record(performance.now()-_,{"db.pool.outcome":"error"}),x})},t}var Ue={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function je(){try{return H().databasePgSsl}catch{return!1}}function ft(){try{return H().databasePoolMax}catch{return 10}}function kT(t){let n=WT(new re({connectionString:t,max:ft(),ssl:je(),...Ue})),u=new Pe({pool:n});return{type:"postgres",db:new DT({dialect:u,log:RT(n)}),pool:n}}function v(){return H().databaseUrl}function De(t){let n=t||v();return new Pe({pool:new re({connectionString:n,max:ft(),ssl:je(),...Ue})})}function $T(t){let n=t||v();return kT(n)}async function Je(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===V)V=null}var V=null;function Wi(){if(!V)V=$T(v());return V}async function Le(t){let u={database:De(t||v()),plugins:[ZT({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),FT(),HT(),MT(),AT(),hT({loginPage:"/login"}),QT(),YT({sendMagicLink:async()=>{}}),BT({sendVerificationOTP:async()=>{}})]},{toBeAdded:_,toBeCreated:e,runMigrations:a}=await XT(u);if(!_.length&&!e.length)return"up to date";return await a(),`${e.length+_.length} table(s) migrated`}async function We(t,n){return(await Y`
|
|
1059
1059
|
SELECT table_name FROM information_schema.tables
|