decocms 3.17.0 → 3.17.1
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-C60SOqDn.js → AlertCircle-DtsIkyhv.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-CK7gDol3.js → ArrowUpRight-CC6Cv2i7.js} +1 -1
- package/dist/client/assets/{Check-DF6w4Xf7.js → Check-vtGHgjfG.js} +1 -1
- package/dist/client/assets/{CheckCircle-DmfTpHvO.js → CheckCircle-BVxEOwgz.js} +1 -1
- package/dist/client/assets/{ChevronDown-xdnBqvPv.js → ChevronDown--sdzrX52.js} +1 -1
- package/dist/client/assets/{ChevronLeft-CV1JR0n7.js → ChevronLeft-HhUtQNOL.js} +1 -1
- package/dist/client/assets/{ChevronRight-BFePDCy2.js → ChevronRight-I6954Qlw.js} +1 -1
- package/dist/client/assets/{ChevronUp-Buu5-4PF.js → ChevronUp-B7_FaTuI.js} +1 -1
- package/dist/client/assets/{Container-CE_bYM-S.js → Container-UwZa4Sjq.js} +1 -1
- package/dist/client/assets/{DotsVertical-BKym908x.js → DotsVertical-CRhU-CQp.js} +1 -1
- package/dist/client/assets/{Eye-CErWNv7o.js → Eye-CrIialez.js} +1 -1
- package/dist/client/assets/{FilterLines-BdmyMdfx.js → FilterLines-CcSUEwfK.js} +1 -1
- package/dist/client/assets/{Globe01-DnzdPEJJ.js → Globe01-CWUyneqk.js} +1 -1
- package/dist/client/assets/{HardDrive-hADgoLDo.js → HardDrive-B4ApPRkU.js} +1 -1
- package/dist/client/assets/{Key01-DsE7OhuU.js → Key01-D8nYbfp6.js} +1 -1
- package/dist/client/assets/{LayoutLeft-BhinYfWY.js → LayoutLeft-CYBI43zr.js} +1 -1
- package/dist/client/assets/{LinkExternal01-DcOGEj3G.js → LinkExternal01-BBQVGsHV.js} +1 -1
- package/dist/client/assets/{Monitor01-Gwe7gDl0.js → Monitor01-BqyNv3z7.js} +1 -1
- package/dist/client/assets/{Palette-B-GEVm1-.js → Palette-Dc7v0Lbc.js} +1 -1
- package/dist/client/assets/{Play-BGyx7fGz.js → Play-Bfu6rzoI.js} +1 -1
- package/dist/client/assets/{Plus-bsWCeJ-2.js → Plus-CAk921Ey.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-CRJIqj_B.js → RefreshCcw01-CJHsMXtu.js} +1 -1
- package/dist/client/assets/{SearchMd-CzBI3Uol.js → SearchMd-BGGjtsz7.js} +1 -1
- package/dist/client/assets/{Settings02-Ci12BiE5.js → Settings02-B3pc9FAS.js} +1 -1
- package/dist/client/assets/{Shield01-BRyN9scd.js → Shield01-CevvPkir.js} +1 -1
- package/dist/client/assets/{Star01-OObi9Rw0.js → Star01-B2sYJOUY.js} +1 -1
- package/dist/client/assets/{Stars01-BEoc-mjR.js → Stars01-ChUleI_g.js} +1 -1
- package/dist/client/assets/{Stars02-CW3UZx3-.js → Stars02-DR0TfdJs.js} +1 -1
- package/dist/client/assets/{Sun-C_gPgvUR.js → Sun-D0Tw1Afb.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-Rf6iK7AC.js → SwitchHorizontal01-UKGE6L3t.js} +1 -1
- package/dist/client/assets/{Tool01-BiE0h7tF.js → Tool01-NFK8H_gw.js} +1 -1
- package/dist/client/assets/{Trash01-BrjghIL2.js → Trash01-BV0g0LQO.js} +1 -1
- package/dist/client/assets/{Upload01-BX1dhLNk.js → Upload01-VAW7QmhA.js} +1 -1
- package/dist/client/assets/{User01-CS4YG3ga.js → User01-DaoMnnxf.js} +1 -1
- package/dist/client/assets/{Users01-C_AUkLQB.js → Users01-BlMLYKx0.js} +1 -1
- package/dist/client/assets/{Users03-BluuyeMv.js → Users03-B7HqdPkm.js} +1 -1
- package/dist/client/assets/{X-KBpNDFwt.js → X-Tdfyixv6.js} +1 -1
- package/dist/client/assets/{XCircle-BT0I631z.js → XCircle-B14veD9i.js} +1 -1
- package/dist/client/assets/{XClose-C-vzo62c.js → XClose-Blplvetp.js} +1 -1
- package/dist/client/assets/{Zap-ln_FBbgR.js → Zap-DXci2BUM.js} +1 -1
- package/dist/client/assets/{ZapSquare-CJjIVoWQ.js → ZapSquare-DzpMrwRR.js} +1 -1
- package/dist/client/assets/{ZoomOut-BjMRp_T0.js → ZoomOut-CT9E4Qhq.js} +1 -1
- package/dist/client/assets/{access-gate-zxF68jBj.js → access-gate-DiknBkEw.js} +1 -1
- package/dist/client/assets/{accordion-CFMy4qXB.js → accordion-CtA-xauN.js} +1 -1
- package/dist/client/assets/{add-section-modal-CYH6uRbc.js → add-section-modal-DlaN-qAI.js} +1 -1
- package/dist/client/assets/agent-capabilities-CmInpctC.js +3 -0
- package/dist/client/assets/{agent-icon-B1qpfYNt.js → agent-icon-zELPPL2m.js} +1 -1
- package/dist/client/assets/{agent-icons-Bddc5S6K.js → agent-icons-x_5O6PzC.js} +1 -1
- package/dist/client/assets/{agents-list-C1ozzeNe.js → agents-list-Bszw9lN6.js} +1 -1
- package/dist/client/assets/{ai-providers-CHW_JN62.js → ai-providers-BEo_1p1S.js} +1 -1
- package/dist/client/assets/{alert-CesPStPt.js → alert-CfEuO2dR.js} +1 -1
- package/dist/client/assets/{alert-dialog-CXyIvClG.js → alert-dialog-CU8ZYA21.js} +1 -1
- package/dist/client/assets/app-editor-Qvrv5Jlv.js +1 -0
- package/dist/client/assets/{auth-catchall-Cp8-mG8G.js → auth-catchall-CKY6yLJq.js} +1 -1
- package/dist/client/assets/{auth-split-layout-B71ZqU3Y.js → auth-split-layout-CUDE_iDP.js} +1 -1
- package/dist/client/assets/{automation-list-row-B1sYOc--.js → automation-list-row-CH--ZnEF.js} +1 -1
- package/dist/client/assets/{automation-runs-CCwBsA2u.js → automation-runs-yWXMKQTD.js} +1 -1
- package/dist/client/assets/{automations-B6j4to3S.js → automations-qMMzEqRX.js} +1 -1
- package/dist/client/assets/{avatar-DO1C-195.js → avatar-DXzeiiiO.js} +1 -1
- package/dist/client/assets/{badge-C-tdV1ua.js → badge-zsFX23zy.js} +1 -1
- package/dist/client/assets/{brand-context-C6SmBEdM.js → brand-context-4BmiQwTN.js} +1 -1
- package/dist/client/assets/{buckets-BfZlpl0Y.js → buckets-CCG_qbCS.js} +1 -1
- package/dist/client/assets/{calendar-CwDIy5hN.js → calendar-Crmr906f.js} +1 -1
- package/dist/client/assets/{capability-load-error-DfeaG6tH.js → capability-load-error-BravgH0a.js} +1 -1
- package/dist/client/assets/{card-e3k5JTCd.js → card-D5IvObwB.js} +1 -1
- package/dist/client/assets/{chat-context-D-X8cS3i.js → chat-context-LqGwxYAF.js} +1 -1
- package/dist/client/assets/{checkbox-DYr-nykG.js → checkbox-OOQKZtC_.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BOa30K2J.js → cli-auth-success-DhicbQB5.js} +1 -1
- package/dist/client/assets/{collection-detail-C03fB25E.js → collection-detail-BbVWcOS7.js} +1 -1
- package/dist/client/assets/{collection-display-button-BmtSB8mm.js → collection-display-button-D5hrgHkh.js} +1 -1
- package/dist/client/assets/{collection-search-B6dSfToc.js → collection-search-DGClB-Gb.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-pJaZI6gS.js → collection-table-wrapper-VWPtHFYE.js} +1 -1
- package/dist/client/assets/{collection-tabs-BllPxwrr.js → collection-tabs-BQEO65ib.js} +1 -1
- package/dist/client/assets/{collections-lu3mBZ1A.js → collections-C_m5uhEc.js} +1 -1
- package/dist/client/assets/{command-Cn2MFiuK.js → command-DzVv4p4m.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-DcpLzBCZ.js → connect-desktop-dialog-CZAbswkh.js} +1 -1
- package/dist/client/assets/{connection-card-DivMzwIe.js → connection-card-CDttZAWV.js} +1 -1
- package/dist/client/assets/{connection-detail-D2oJ2onG.js → connection-detail-CWgx3CGW.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-a7VwpjwJ.js → connection-form-helpers-BgC55lri.js} +1 -1
- package/dist/client/assets/{connections-Dn2Kwio9.js → connections-BTE9TZOq.js} +1 -1
- package/dist/client/assets/{constants-Cpa_PRaA.js → constants-BCfpLdj8.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-DGFUIouC.js → decopilot-sse-pool-nEWZU_3q.js} +1 -1
- package/dist/client/assets/{dialog-CUjx9rHg.js → dialog-CLtwKT7T.js} +1 -1
- package/dist/client/assets/{domain-settings-DU6Ay54r.js → domain-settings-DnOdm4Gh.js} +1 -1
- package/dist/client/assets/{drawer-QtJTYX-_.js → drawer-BewkeO2E.js} +1 -1
- package/dist/client/assets/{dropdown-menu-kulKDSsi.js → dropdown-menu-COlaUXPy.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-DiBlJ1h6.js → dynamic-plugin-layout-CboUuftB.js} +1 -1
- package/dist/client/assets/{empty-state-D0RxK3or.js → empty-state-CZdqlaa-.js} +1 -1
- package/dist/client/assets/{empty-state-Dwi3hiwi.js → empty-state-Cm-JBk7p.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BpY7BmQW.js → extract-connection-data-F1Fp1AMr.js} +1 -1
- package/dist/client/assets/{features-DXWmgKl9.js → features-BPybOqVM.js} +1 -1
- package/dist/client/assets/{file-explorer-D9VPjKLw.js → file-explorer-Dfpjlouj.js} +1 -1
- package/dist/client/assets/{file-type-icon-ByLTqBfz.js → file-type-icon-DfjHHTyz.js} +1 -1
- package/dist/client/assets/{files-DDIKVYGG.js → files-Jq4xd8Mr.js} +1 -1
- package/dist/client/assets/{form-CaMqqpqe.js → form-hhL2WFgR.js} +1 -1
- package/dist/client/assets/{general-BkiCU-Hm.js → general-Bs5LdWae.js} +1 -1
- package/dist/client/assets/{generate-id-9PcNpGv_.js → generate-id-D01ICZCx.js} +1 -1
- package/dist/client/assets/{github-repo-picker--bR_zEj3.js → github-repo-picker-CvAVXvxg.js} +1 -1
- package/dist/client/assets/{header-tab-button-D1qFBpLx.js → header-tab-button-D5FYUotU.js} +1 -1
- package/dist/client/assets/{hover-card-Cr5J4KeR.js → hover-card-CeQv0SdX.js} +1 -1
- package/dist/client/assets/{image-field-DXCxUuM3.js → image-field-DlsH5ki1.js} +1 -1
- package/dist/client/assets/{index-Bx0Oi4xn.js → index-8WMbGW3I.js} +1 -1
- package/dist/client/assets/{index-C0x63L7k.js → index-BTfRGSGJ.js} +1 -1
- package/dist/client/assets/{index-CIuBxZRA.js → index-BZAd5qB-.js} +1 -1
- package/dist/client/assets/{index-BUo-2VB-.js → index-BsTDIiyh.js} +1 -1
- package/dist/client/assets/{index-DOtsYOFt.js → index-C2ou5Sih.js} +1 -1
- package/dist/client/assets/{index-Dug5g6VY.js → index-C3xxqIK9.js} +1 -1
- package/dist/client/assets/{index-B7iCbXk_.js → index-CW2GDOZp.js} +3 -3
- package/dist/client/assets/{index-DvzG1FeM.js → index-CZHEDR-7.js} +1 -1
- package/dist/client/assets/{index-Dg9-_22c.js → index-CtKv8aMq.js} +1 -1
- package/dist/client/assets/{index-Cf7BAgGY.js → index-Cu5tt_hf.js} +1 -1
- package/dist/client/assets/{index-ZFbYaFg8.js → index-DVjiRpca.js} +1 -1
- package/dist/client/assets/{index-DIlZPr54.js → index-DljQCipR.js} +1 -1
- package/dist/client/assets/{index-BrdW0myi.js → index-Dtlw9Wg_.js} +1 -1
- package/dist/client/assets/{index-Da3iT1hc.js → index-IBdkM0WT.js} +4 -4
- package/dist/client/assets/{index-DX2Fzm3S.js → index-MDvkqSr6.js} +1 -1
- package/dist/client/assets/{index-redirect-CQ1L1Wji.js → index-redirect-BQ64Fw6U.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-pRjjk3aR.js → infiniteQueryObserver-CNU9jr7j.js} +1 -1
- package/dist/client/assets/{input-sl_dQ9pB.js → input-C6I0qBHa.js} +1 -1
- package/dist/client/assets/{integration-icon-Q1PWRG0K.js → integration-icon-CRQNKwzw.js} +1 -1
- package/dist/client/assets/{label-0agd396a.js → label-CBS86XNa.js} +1 -1
- package/dist/client/assets/{layout-CrZcXpRG.js → layout-f-vBvuP7.js} +1 -1
- package/dist/client/assets/{login-BYbZPB6i.js → login-mW1jrlie.js} +1 -1
- package/dist/client/assets/{members-meEx9EiG.js → members-C0DJ4-OC.js} +1 -1
- package/dist/client/assets/{monaco-editor-D-dgw2ct.js → monaco-editor--4Yuy9-K.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CC_MeiA9.js → monitoring-stats-row-B05aJEZ3.js} +1 -1
- package/dist/client/assets/{oauth-callback-WDAqIdpl.js → oauth-callback-BAaF4Jac.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DKmcx6UE.js → oauth-callback-ai-provider-CXA6h4bA.js} +1 -1
- package/dist/client/assets/{onboarding-lW6BfseB.js → onboarding-DwclTGQV.js} +1 -1
- package/dist/client/assets/{org-install-lEOW4M7O.js → org-install-ClS1U1Is.js} +1 -1
- package/dist/client/assets/{org-layout-B62ZU-fz.js → org-layout-D2q337za.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-C0PeZyWO.js → org-plugin-layout-BU42ml-u.js} +1 -1
- package/dist/client/assets/{page-seo-form-DH-4diLr.js → page-seo-form-BSUK8MM8.js} +1 -1
- package/dist/client/assets/page-seo-sheet-rUbxuV0U.js +1 -0
- package/dist/client/assets/{pair-CL9g4v9i.js → pair-CZ7RQwEQ.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-CWSym5Gn.js → plugin-empty-state-DUHVGpp4.js} +1 -1
- package/dist/client/assets/{plugin-header-CJP7g5ws.js → plugin-header-Ce72Z8AJ.js} +1 -1
- package/dist/client/assets/{plugin-layout-LaTBa6Av.js → plugin-layout-quK7uCnU.js} +1 -1
- package/dist/client/assets/{popover-0ZJ4bKFd.js → popover-Cb-Bmegp.js} +1 -1
- package/dist/client/assets/{post-editor-BbEWuOYm.js → post-editor-BAaD8Gds.js} +1 -1
- package/dist/client/assets/{primitives-BoA063oK.js → primitives-D8jiHpwv.js} +1 -1
- package/dist/client/assets/{profile-BgPXMDvJ.js → profile-B_6YhXTS.js} +1 -1
- package/dist/client/assets/project-app-view-DLZKJqsT.js +1 -0
- package/dist/client/assets/record-editor-DV-uP4sg.js +1 -0
- package/dist/client/assets/registry-BdCcAkG7.js +2 -0
- package/dist/client/assets/{registry-layout-nzyxID0H.js → registry-layout-CCF3dO1N.js} +1 -1
- package/dist/client/assets/{require-capability-KAZJyuEt.js → require-capability-9UoybC--.js} +1 -1
- package/dist/client/assets/{required-auth-layout-BGH5fHd-.js → required-auth-layout-chyvqjm-.js} +1 -1
- package/dist/client/assets/{reset-password-BrKglHl8.js → reset-password-bYeIRZhU.js} +1 -1
- package/dist/client/assets/{resizable-BynpWjrV.js → resizable-C3e36PAj.js} +1 -1
- package/dist/client/assets/{roles-C-YRzV57.js → roles-DUk2EDKN.js} +1 -1
- package/dist/client/assets/{save-status-TDiEcZGl.js → save-status-SrY_Xvn_.js} +1 -1
- package/dist/client/assets/{schema-form-BB6bVjx8.js → schema-form-q1GGwsV5.js} +1 -1
- package/dist/client/assets/{scroll-area-PEeFDkLY.js → scroll-area-DqzfAJq4.js} +1 -1
- package/dist/client/assets/{search-input-By1iAL0X.js → search-input-dUUxotu4.js} +1 -1
- package/dist/client/assets/{secrets-XbA4V0xK.js → secrets--HC37_lL.js} +1 -1
- package/dist/client/assets/{sections-editor-TEdZQZJO.js → sections-editor-9HzWjIQN.js} +1 -1
- package/dist/client/assets/{select-BNxRkI-t.js → select-CuTEW-jA.js} +1 -1
- package/dist/client/assets/{select-model-ghX-v4Ig.js → select-model-DeVtvLgk.js} +1 -1
- package/dist/client/assets/{seo-editor-DeUIv9eT.js → seo-editor-CxXb6Pa5.js} +1 -1
- package/dist/client/assets/{settings-layout-8xVnQDLN.js → settings-layout-DsImRu68.js} +1 -1
- package/dist/client/assets/{settings-section-eLjbh43q.js → settings-section-Dqo82vZl.js} +1 -1
- package/dist/client/assets/{sheet-BZY2P976.js → sheet-XNQn2l1w.js} +1 -1
- package/dist/client/assets/{shell-controls-Cp2-Rg1c.js → shell-controls-DOdJ_gGX.js} +1 -1
- package/dist/client/assets/{shell-layout-BtMzIPg7.js → shell-layout-BU6DfdCA.js} +1 -1
- package/dist/client/assets/{shell-route-loading-DoYxyFlE.js → shell-route-loading-D_OJep1W.js} +1 -1
- package/dist/client/assets/{sidebar-ChiM4a_i.js → sidebar-BVvI-fKb.js} +1 -1
- package/dist/client/assets/{skeleton-DTLKSQsA.js → skeleton-BsmA3SJi.js} +1 -1
- package/dist/client/assets/{sortable.esm-2lmOgmi4.js → sortable.esm-BLbNDEWA.js} +1 -1
- package/dist/client/assets/{spinner-_PK4VaDI.js → spinner-CA6Z7ply.js} +1 -1
- package/dist/client/assets/{sso-kv18k_tl.js → sso-CaRqQ4Z-.js} +1 -1
- package/dist/client/assets/{store-DmNXPwWN.js → store-D79L8ARY.js} +1 -1
- package/dist/client/assets/store-registry-RjLPX_BT.js +2 -0
- package/dist/client/assets/{switch-DwvQWz2E.js → switch-kiGGiVP7.js} +1 -1
- package/dist/client/assets/{tab-id-DjqI6l0G.js → tab-id-AROsVU94.js} +1 -1
- package/dist/client/assets/{table-CBk3lXtT.js → table-D-3eWTFI.js} +1 -1
- package/dist/client/assets/{tabs-Po5E3Ayq.js → tabs-_BMD3gqc.js} +1 -1
- package/dist/client/assets/{task-status-DsaC_oJP.js → task-status-DDOPfPO7.js} +1 -1
- package/dist/client/assets/{textarea-B1WljwHE.js → textarea-CvogFpDT.js} +1 -1
- package/dist/client/assets/{toggle-group-B3t22Ptk.js → toggle-group-BAx4pQQl.js} +1 -1
- package/dist/client/assets/{toolbar-cmRfNwQD.js → toolbar-CcJJYCIE.js} +1 -1
- package/dist/client/assets/{tools-list-BnVOCqU_.js → tools-list-C2KBBz4b.js} +1 -1
- package/dist/client/assets/{tooltip-B6_9bHJx.js → tooltip-6V7elEEX.js} +1 -1
- package/dist/client/assets/{types-lc1ECy_H.js → types-fKs_ggmz.js} +1 -1
- package/dist/client/assets/{use-ai-providers-0H5Wh0i0.js → use-ai-providers-BSAUX_gL.js} +1 -1
- package/dist/client/assets/{use-automations-C973xe8b.js → use-automations-ByU0cONY.js} +1 -1
- package/dist/client/assets/{use-capability-CqJIED2u.js → use-capability-DLwHss1A.js} +1 -1
- package/dist/client/assets/{use-collections-CIO9U6G8.js → use-collections-BauLzZZO.js} +1 -1
- package/dist/client/assets/{use-connection-BvS5x-S0.js → use-connection-C4GFr9nL.js} +1 -1
- package/dist/client/assets/{use-copy-Cxr6vssE.js → use-copy-B4x7tAnY.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Chuptxkc.js → use-create-virtual-mcp-CP1TTRIQ.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B4SKWMvl.js → use-debounced-autosave-tQOo4KW5.js} +1 -1
- package/dist/client/assets/{use-delete-connection-mfWTHssT.js → use-delete-connection-CvS5aoFM.js} +1 -1
- package/dist/client/assets/{use-file-configs-DmyFDcAm.js → use-file-configs-DXuMASqs.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-B-fFE68E.js → use-infinite-scroll-CUCni0HP.js} +1 -1
- package/dist/client/assets/{use-list-state-B09S-BWf.js → use-list-state-Cy-nbUe7.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-B_4yCH1T.js → use-mcp-prompts-r6vl6hj5.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-Dsc1UeQQ.js → use-mcp-tools-BH6fBXOQ.js} +1 -1
- package/dist/client/assets/{use-members-CpAwxknD.js → use-members-CN7LSdK8.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DKNHISHp.js → use-navigate-to-agent-B17xxfnF.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DdhLhM_F.js → use-org-auth-client-Ct06vKxv.js} +1 -1
- package/dist/client/assets/{use-org-sso-Czp3Extl.js → use-org-sso-VGIrGw_f.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DHPZJ4qD.js → use-organization-roles-CTeY8LZY.js} +1 -1
- package/dist/client/assets/{use-organization-settings-C0BOz_Ke.js → use-organization-settings--FTRiCSw.js} +1 -1
- package/dist/client/assets/{use-registry-connections-D2qSqjYo.js → use-registry-connections-D9b3sQhT.js} +1 -1
- package/dist/client/assets/{use-secrets-aqA2bpzj.js → use-secrets-YYVI-1hB.js} +1 -1
- package/dist/client/assets/{use-status-sounds-DLp0Y7Nr.js → use-status-sounds-BDpAOn6X.js} +1 -1
- package/dist/client/assets/{use-view-mode-C2H7MJAf.js → use-view-mode-4iMRc-bf.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BhWviJXb.js → use-virtual-mcp-BzRoDsnX.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-DKdeEHtH.js +1 -0
- package/dist/client/assets/{useRouterState-DgnbACwu.js → useRouterState-DwQFoqEO.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BgTbRsAD.js +1 -0
- package/dist/client/assets/{user-CU4GJQgm.js → user-CEZjs4lV.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CKE9mpoP.js → view-mode-toggle-BwZQDE89.js} +1 -1
- package/dist/client/assets/{workflow-6tDqIuiP.js → workflow-2WDykuxZ.js} +1 -1
- package/dist/client/assets/workflow-detail-B48uxbIE.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +1 -1
- package/package.json +1 -1
- package/dist/client/assets/agent-capabilities-C3RsBcSb.js +0 -3
- package/dist/client/assets/app-editor-CEpZoNYr.js +0 -1
- package/dist/client/assets/page-seo-sheet-BRyeLute.js +0 -1
- package/dist/client/assets/project-app-view-Cfv3zOCp.js +0 -1
- package/dist/client/assets/record-editor-DoEy0Prc.js +0 -1
- package/dist/client/assets/registry-t8mJuopF.js +0 -2
- package/dist/client/assets/store-registry-Xa_OXshG.js +0 -2
- package/dist/client/assets/useInfiniteQuery-D4EQXoEc.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BLgR6b-Q.js +0 -1
- package/dist/client/assets/workflow-detail-CpCpA8Vm.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Le,G as mt,a as pt,K as Fe,ea as Ke,dx as ut}from"./index-B7iCbXk_.js";import{u as qe,S as Ve}from"./constants-Cpa_PRaA.js";import{B as ft,g as Me}from"./generate-id-9PcNpGv_.js";import{C as Ge}from"./collection-display-button-BmtSB8mm.js";import{C as ht}from"./collection-search-B6dSfToc.js";import{C as gt}from"./card-e3k5JTCd.js";import{I as Qe}from"./integration-icon-Q1PWRG0K.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-kulKDSsi.js";import{s as Xe,a as Ze}from"./Eye-CErWNv7o.js";import{i as et}from"./DotsVertical-BKym908x.js";import{i as tt}from"./Tool01-BiE0h7tF.js";import{s as st}from"./Trash01-BrjghIL2.js";import{C as xt}from"./collection-table-wrapper-pJaZI6gS.js";import{E as Ue}from"./empty-state-Dwi3hiwi.js";import{n as We}from"./Stars02-CW3UZx3-.js";import{U as jt}from"./user-CU4GJQgm.js";import{E as it}from"./empty-state-D0RxK3or.js";import{u as Ct}from"./use-list-state-B09S-BWf.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-CXyIvClG.js";import{a as It,b as At}from"./use-collections-CIO9U6G8.js";import{a as Tt}from"./use-connection-BvS5x-S0.js";import{s as Et}from"./Plus-bsWCeJ-2.js";import{a as Ot}from"./layout-CrZcXpRG.js";import{P as je}from"./index-DX2Fzm3S.js";import"./collections-lu3mBZ1A.js";import"./SwitchHorizontal01-Rf6iK7AC.js";import"./Check-DF6w4Xf7.js";import"./tooltip-B6_9bHJx.js";import"./view-mode-toggle-CKE9mpoP.js";import"./badge-C-tdV1ua.js";import"./SearchMd-CzBI3Uol.js";import"./Container-CE_bYM-S.js";import"./agent-icon-B1qpfYNt.js";import"./AlertCircle-C60SOqDn.js";import"./RefreshCcw01-CRJIqj_B.js";import"./XCircle-BT0I631z.js";import"./ArrowUpRight-CK7gDol3.js";import"./ZapSquare-CJjIVoWQ.js";import"./Users03-BluuyeMv.js";import"./CheckCircle-DmfTpHvO.js";import"./ChevronDown-xdnBqvPv.js";import"./ChevronLeft-CV1JR0n7.js";import"./ChevronRight-BFePDCy2.js";import"./ChevronUp-Buu5-4PF.js";import"./ZoomOut-BjMRp_T0.js";import"./Globe01-DnzdPEJJ.js";import"./FilterLines-BdmyMdfx.js";import"./Star01-OObi9Rw0.js";import"./Palette-B-GEVm1-.js";import"./HardDrive-hADgoLDo.js";import"./Key01-DsE7OhuU.js";import"./LayoutLeft-BhinYfWY.js";import"./LinkExternal01-DcOGEj3G.js";import"./Monitor01-Gwe7gDl0.js";import"./Sun-C_gPgvUR.js";import"./Play-BGyx7fGz.js";import"./Settings02-Ci12BiE5.js";import"./Shield01-BRyN9scd.js";import"./Stars01-BEoc-mjR.js";import"./Upload01-BX1dhLNk.js";import"./User01-CS4YG3ga.js";import"./Users01-C_AUkLQB.js";import"./XClose-C-vzo62c.js";import"./X-KBpNDFwt.js";import"./Zap-ln_FBbgR.js";import"./table-CBk3lXtT.js";import"./avatar-DO1C-195.js";import"./use-view-mode-C2H7MJAf.js";import"./sidebar-ChiM4a_i.js";import"./sheet-BZY2P976.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,u=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=u||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Ge,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Gt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,p)=>o.localeCompare(p));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const p=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Qe,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:p?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Qt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!p;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const L=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[F,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==p?(U=p&&{delete:rt},e[30]=p,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function Ci(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(ut,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{Ci as default};
|
|
1
|
+
import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Le,G as mt,a as pt,K as Fe,ea as Ke,dx as ut}from"./index-CW2GDOZp.js";import{u as qe,S as Ve}from"./constants-BCfpLdj8.js";import{B as ft,g as Me}from"./generate-id-D01ICZCx.js";import{C as Ge}from"./collection-display-button-D5hrgHkh.js";import{C as ht}from"./collection-search-DGClB-Gb.js";import{C as gt}from"./card-D5IvObwB.js";import{I as Qe}from"./integration-icon-CRQNKwzw.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-COlaUXPy.js";import{s as Xe,a as Ze}from"./Eye-CrIialez.js";import{i as et}from"./DotsVertical-CRhU-CQp.js";import{i as tt}from"./Tool01-NFK8H_gw.js";import{s as st}from"./Trash01-BV0g0LQO.js";import{C as xt}from"./collection-table-wrapper-VWPtHFYE.js";import{E as Ue}from"./empty-state-Cm-JBk7p.js";import{n as We}from"./Stars02-DR0TfdJs.js";import{U as jt}from"./user-CEZjs4lV.js";import{E as it}from"./empty-state-CZdqlaa-.js";import{u as Ct}from"./use-list-state-Cy-nbUe7.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-CU8ZYA21.js";import{a as It,b as At}from"./use-collections-BauLzZZO.js";import{a as Tt}from"./use-connection-C4GFr9nL.js";import{s as Et}from"./Plus-CAk921Ey.js";import{a as Ot}from"./layout-f-vBvuP7.js";import{P as je}from"./index-MDvkqSr6.js";import"./collections-C_m5uhEc.js";import"./SwitchHorizontal01-UKGE6L3t.js";import"./Check-vtGHgjfG.js";import"./tooltip-6V7elEEX.js";import"./view-mode-toggle-BwZQDE89.js";import"./badge-zsFX23zy.js";import"./SearchMd-BGGjtsz7.js";import"./Container-UwZa4Sjq.js";import"./agent-icon-zELPPL2m.js";import"./AlertCircle-DtsIkyhv.js";import"./RefreshCcw01-CJHsMXtu.js";import"./XCircle-B14veD9i.js";import"./ArrowUpRight-CC6Cv2i7.js";import"./ZapSquare-DzpMrwRR.js";import"./Users03-B7HqdPkm.js";import"./CheckCircle-BVxEOwgz.js";import"./ChevronDown--sdzrX52.js";import"./ChevronLeft-HhUtQNOL.js";import"./ChevronRight-I6954Qlw.js";import"./ChevronUp-B7_FaTuI.js";import"./ZoomOut-CT9E4Qhq.js";import"./Globe01-CWUyneqk.js";import"./FilterLines-CcSUEwfK.js";import"./Star01-B2sYJOUY.js";import"./Palette-Dc7v0Lbc.js";import"./HardDrive-B4ApPRkU.js";import"./Key01-D8nYbfp6.js";import"./LayoutLeft-CYBI43zr.js";import"./LinkExternal01-BBQVGsHV.js";import"./Monitor01-BqyNv3z7.js";import"./Sun-D0Tw1Afb.js";import"./Play-Bfu6rzoI.js";import"./Settings02-B3pc9FAS.js";import"./Shield01-CevvPkir.js";import"./Stars01-ChUleI_g.js";import"./Upload01-VAW7QmhA.js";import"./User01-DaoMnnxf.js";import"./Users01-BlMLYKx0.js";import"./XClose-Blplvetp.js";import"./X-Tdfyixv6.js";import"./Zap-DXci2BUM.js";import"./table-D-3eWTFI.js";import"./avatar-DXzeiiiO.js";import"./use-view-mode-4iMRc-bf.js";import"./sidebar-BVvI-fKb.js";import"./sheet-XNQn2l1w.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,u=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Qe,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=u||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Ft,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Lt,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Ge,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Gt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Qt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,p)=>o.localeCompare(p));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const p=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Qe,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:p?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Qt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Gt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!p;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const L=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[F,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==L||e[25]!==o?(K=o&&{edit:L},e[24]=L,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==p?(U=p&&{delete:rt},e[30]=p,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==F?(ce=async()=>{F&&(await h.delete.mutateAsync(F.id),ve(null))},e[36]=h.delete,e[37]=F,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Le.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Ge,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let G;e[71]!==I?(G=I??[],e[71]=I,e[72]=G):G=e[72];const De=D;let Q;e[73]!==L?(Q=C=>L(C),e[73]=L,e[74]=Q):Q=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==G||e[88]!==De||e[89]!==Q||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:G,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:Q,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=G,e[88]=De,e[89]=Q,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!F;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=F?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Fe.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Fe.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Le.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Le.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function Ci(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(ut,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{Ci as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-CW2GDOZp.js";import{a as f}from"./index-BsTDIiyh.js";import"./index-DVjiRpca.js";import"./constants-BCfpLdj8.js";import"./collections-C_m5uhEc.js";import"./index-CtKv8aMq.js";import"./use-virtual-mcp-BzRoDsnX.js";import"./use-collections-BauLzZZO.js";import"./monaco-editor--4Yuy9-K.js";import"./index-CZHEDR-7.js";import"./spinner-CA6Z7ply.js";import"./resizable-C3e36PAj.js";import"./ZoomOut-CT9E4Qhq.js";import"./badge-zsFX23zy.js";import"./select-CuTEW-jA.js";import"./tooltip-6V7elEEX.js";import"./Check-vtGHgjfG.js";import"./ChevronDown--sdzrX52.js";import"./ChevronUp-B7_FaTuI.js";import"./view-mode-toggle-BwZQDE89.js";import"./agent-icon-zELPPL2m.js";import"./AlertCircle-DtsIkyhv.js";import"./Tool01-NFK8H_gw.js";import"./SwitchHorizontal01-UKGE6L3t.js";import"./RefreshCcw01-CJHsMXtu.js";import"./XCircle-B14veD9i.js";import"./ArrowUpRight-CC6Cv2i7.js";import"./ZapSquare-DzpMrwRR.js";import"./Users03-B7HqdPkm.js";import"./CheckCircle-BVxEOwgz.js";import"./ChevronLeft-HhUtQNOL.js";import"./ChevronRight-I6954Qlw.js";import"./DotsVertical-CRhU-CQp.js";import"./Container-UwZa4Sjq.js";import"./Eye-CrIialez.js";import"./Globe01-CWUyneqk.js";import"./FilterLines-CcSUEwfK.js";import"./Star01-B2sYJOUY.js";import"./Palette-Dc7v0Lbc.js";import"./HardDrive-B4ApPRkU.js";import"./Stars02-DR0TfdJs.js";import"./Key01-D8nYbfp6.js";import"./LayoutLeft-CYBI43zr.js";import"./LinkExternal01-BBQVGsHV.js";import"./Monitor01-BqyNv3z7.js";import"./Sun-D0Tw1Afb.js";import"./Play-Bfu6rzoI.js";import"./Plus-CAk921Ey.js";import"./SearchMd-BGGjtsz7.js";import"./Settings02-B3pc9FAS.js";import"./Shield01-CevvPkir.js";import"./Stars01-ChUleI_g.js";import"./Trash01-BV0g0LQO.js";import"./Upload01-VAW7QmhA.js";import"./User01-DaoMnnxf.js";import"./Users01-BlMLYKx0.js";import"./XClose-Blplvetp.js";import"./X-Tdfyixv6.js";import"./Zap-DXci2BUM.js";import"./layout-f-vBvuP7.js";import"./index-MDvkqSr6.js";import"./sidebar-BVvI-fKb.js";import"./sheet-XNQn2l1w.js";import"./use-connection-C4GFr9nL.js";import"./use-mcp-tools-BH6fBXOQ.js";import"./dialog-CLtwKT7T.js";import"./scroll-area-DqzfAJq4.js";import"./index-BTfRGSGJ.js";import"./hover-card-CeQv0SdX.js";import"./dropdown-menu-COlaUXPy.js";import"./integration-icon-CRQNKwzw.js";import"./accordion-CtA-xauN.js";import"./index-BZAd5qB-.js";import"./empty-state-Cm-JBk7p.js";import"./create-sse-subscription-BS5983N4.js";import"./input-C6I0qBHa.js";function Bt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{Bt as default};
|
package/dist/client/index.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
44
44
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
45
45
|
<meta name="apple-mobile-web-app-title" content="deco Studio" />
|
|
46
|
-
<script type="module" crossorigin src="/assets/index-
|
|
46
|
+
<script type="module" crossorigin src="/assets/index-CW2GDOZp.js"></script>
|
|
47
47
|
<link rel="stylesheet" crossorigin href="/assets/index-D5dv4kfs.css">
|
|
48
48
|
</head>
|
|
49
49
|
<body>
|
package/dist/server/cli.js
CHANGED
|
@@ -104792,7 +104792,7 @@ ${c.stack}`;f.reject(d)}else f.resolve(_)}});return $.requestSubject=i,this.prot
|
|
|
104792
104792
|
`);if(g===-1)return;let h=$.subarray(0,g).toString("utf8"),E=$.subarray(g+4),v=h.split(`\r
|
|
104793
104793
|
`,1)[0]??"";if(!/^HTTP\/1\.[01] 101(?:\s|$)/.test(v)){M8(i,1011,t.upstreamErrorReason);try{c.end()}catch{}return}d=!0,i.data.upstream=c;let r=j9l((x,O)=>{try{if(x===1)i.send(O.toString("utf8"));else if(x===2)i.send(O);else if(x===8){let{code:y,reason:X}=k9l(O);M8(i,y,X);try{c.end()}catch{}}}catch{}});if(c.removeAllListeners("data"),E.length>0)r(E);c.on("data",(x)=>r(x));for(let x of i.data.pending)try{c.write(xki(x,!0))}catch{}i.data.pending.length=0})}function W9l(i,t){let u=[`GET ${i} HTTP/1.1`];for(let[l,n]of Object.entries(t))u.push(`${l}: ${n}`);return u.push("",""),u.join(`\r
|
|
104794
104794
|
`)}function M8(i,t,u){try{if(t!==void 0)i.close(t,u??"");else i.close()}catch{}}function xki(i,t,u){let l,n;if(typeof i==="string")l=Buffer.from(i,"utf8"),n=1;else if(i instanceof ArrayBuffer)l=Buffer.from(i),n=2;else if(Buffer.isBuffer(i))l=i,n=2;else l=Buffer.from(i),n=2;let f=u??n,c=l.length,$=[];$.push(128|f&15);let d=t?128:0;if(c<126)$.push(d|c);else if(c<65536)$.push(d|126,c>>8&255,c&255);else $.push(d|127,0,0,0,0),$.push(c>>>24&255,c>>>16&255,c>>>8&255,c&255);if(t){let _=USt(4),g=Buffer.alloc(c);for(let h=0;h<c;h++)g[h]=l[h]^_[h&3];return Buffer.concat([Buffer.from($),_,g])}return Buffer.concat([Buffer.from($),l])}function k9l(i){if(i.length<2)return{code:1000,reason:""};return{code:i.readUInt16BE(0),reason:i.subarray(2).toString("utf8")}}function j9l(i){let t=Buffer.alloc(0);return(u)=>{t=t.length===0?u:Buffer.concat([t,u]);while(!0){if(t.length<2)return;let l=t[0],n=t[1],f=l&15,c=(n&128)!==0,$=n&127,d=2;if($===126){if(t.length<d+2)return;$=t[d]<<8|t[d+1],d+=2}else if($===127){if(t.length<d+8)return;$=t[d+4]*16777216+(t[d+5]<<16|t[d+6]<<8|t[d+7]),d+=8}let _=null;if(c){if(t.length<d+4)return;_=t.subarray(d,d+4),d+=4}if(t.length<d+$)return;let g=t.subarray(d,d+$);if(_){let h=Buffer.alloc($);for(let E=0;E<$;E++)h[E]=g[E]^_[E&3];g=h}t=t.subarray(d+$),i(f,g)}}}var A9l=256;var ISt=w(()=>{JSt()});function BSt(i){if(typeof i!=="string"||i.length===0)return null;let t=i.lastIndexOf(":");if(i.startsWith("["))return null;let l=(t>=0?i.slice(0,t):i).replace(/\.$/,"").toLowerCase(),n=".localhost";if(!l.endsWith(n))return null;let f=l.slice(0,-n.length);if(f.length===0)return null;if(f.includes("."))return null;return f}async function QSt(i){let t=ZSt({maxPendingFrames:i.maxPendingWsFrames??S9l,backlogOverflowReason:"ingress backlog overflow"}),u=Bun.serve({port:i.port,hostname:"127.0.0.1",idleTimeout:0,async fetch(l,n){let f=l.headers.get("host"),c=BSt(f);if(!c)return new Response("not found",{status:404});let $=i.lookupSandboxPort(c);if(!$){if(l.headers.get("upgrade")==="websocket")return new Response("unknown handle",{status:404});return new Response(z9l,{status:503,headers:{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store","Retry-After":"1"}})}if(l.headers.get("upgrade")==="websocket"){let h=new URL(l.url);if(!n.upgrade(l,{data:FSt({port:$,pathQuery:`${h.pathname}${h.search}`,protocols:TSt(l.headers)})}))return new Response("ws upgrade failed",{status:400});return}let d=new URL(l.url),_=`http://127.0.0.1:${$}${d.pathname}${d.search}`,g=new Headers(l.headers);return g.set("host",`127.0.0.1:${$}`),fetch(_,{method:l.method,headers:g,body:l.body,redirect:"manual"})},websocket:{open:t.open,message:t.message,close:t.close}});return{port:u.port??0,async stop(){u.stop(!0)}}}var S9l=256,z9l='<!DOCTYPE html><html><head><meta charset="utf-8"><title>Connecting\u2026</title><style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#fafafa;color:#555}div{text-align:center;max-width:420px;padding:24px}h3{margin:0 0 8px}p{margin:0;font-size:14px;color:#999;line-height:1.5}</style></head><body><div><h3>Connecting to sandbox\u2026</h3><p>Waiting for the local sandbox to come online. This page refreshes automatically.</p></div><script>setTimeout(function(){window.location.reload()},1500)</script></body></html>';var YSt=w(()=>{ISt()});async function Dki(i=C9l){let t=["decopilot-sandbox","body-offload"],[u,l]=await Promise.all([i.detectClaudeCode().catch(()=>!1),i.detectCodex().catch(()=>!1)]);if(u)t.push("claude-code");if(l)t.push("codex");return t}function K9l(i){return b9l.filter((t)=>!i.includes(t))}function H9l(i,t){let u=t.filter((l)=>!i.includes(l));return i.push(...u),u}function PSt(i,t={}){let u=t.detect??(()=>Dki()),l=setInterval(()=>{if(K9l(i).length===0)return;u().then((n)=>{let f=H9l(i,n);if(f.length>0)t.onChange?.(f)}).catch(()=>{})},t.intervalMs??60000);return l.unref?.(),()=>clearInterval(l)}async function R9l(){try{let{query:i}=await import("@anthropic-ai/claude-agent-sdk"),t=i({prompt:"",options:{maxTurns:1}}),u=await t.accountInfo();return t.return(void 0),Boolean(u.email)}catch{return!1}}async function L9l(){try{let i=Bun.spawn(["codex","--version"],{stdout:"ignore",stderr:"ignore"}),t=setTimeout(()=>i.kill(),1e4),u=await i.exited;return clearTimeout(t),u===0}catch{return!1}}var b9l,C9l;var ASt=w(()=>{b9l=["claude-code","codex"];C9l={detectClaudeCode:R9l,detectCodex:L9l}});import{randomBytes as e9l}from"crypto";import{mkdir as M9l,readFile as q9l,writeFile as V9l}from"fs/promises";import{dirname as a9l,join as m9l}from"path";function o9l(i){return m9l(i,"machine-id")}async function GSt(i){let t=o9l(i);try{let n=(await q9l(t,"utf8")).trim();if(n)return n}catch{}let u=e9l(16).toString("hex");return await M9l(a9l(t),{recursive:!0}),await V9l(t,u),u}var WSt=()=>{};import{randomBytes as s9l}from"crypto";import{mkdir as p9l}from"fs/promises";import{createServer as iNl}from"net";import{join as tNl}from"path";function kSt(i,t){return Error(`sandbox failed to start: ${i}`,{cause:t})}function uNl(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function lNl(i){if(i instanceof Error){let t=i.cause;if(t instanceof Error&&t.message)return t.message;return i.message}return String(i)}function jSt(i){let t=i.maxSandboxes??20,u=new Map,l=i.pickPort??nNl,n=i.fetchImpl??fetch,f=i.resolvePreviewUrl??((E,v)=>`http://127.0.0.1:${v}`),c=(E)=>{try{i.onEvent?.(E)}catch{}},$=async(E)=>{let v=new AbortController,r=setTimeout(()=>v.abort(),1500);try{let x=await n(`${E}/health`,{signal:v.signal});if(!x.ok)console.warn(`[user-desktop] probe ${E}/health \u2192 ${x.status} (treating as dead)`);return x.ok}catch(x){return console.warn(`[user-desktop] probe ${E}/health failed: ${x instanceof Error?x.message:String(x)} (treating as dead)`),!1}finally{clearTimeout(r)}},d=(E)=>{console.warn(`[user-desktop] evicting dead daemon handle=${E.handle} port=${E.port}`);try{E.process.kill("SIGTERM")}catch{}if(u.get(E.handle)===E)u.delete(E.handle),c({handle:E.handle,phase:"evicted"})},_=new Map;function g(){if(u.size<t)return;let E=[...u.values()].filter((r)=>r.activeDispatchCount===0).sort((r,x)=>r.lastUsedAt-x.lastUsedAt);if(E.length===0){console.warn(`[user-desktop] at cap ${u.size}/${t} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let v=E[0];console.log(`[user-desktop] evicting LRU victim handle=${v.handle} port=${v.port} (cap ${t} reached, size=${u.size})`);try{v.process.kill("SIGTERM")}catch{}u.delete(v.handle),c({handle:v.handle,phase:"evicted"})}let h=async(E)=>{c({handle:E.handle,phase:"spawning"}),g();let v=tNl(i.dataDir,"sandboxes",E.handle);await p9l(v,{recursive:!0}),console.log(`[user-desktop] ensure handle=${E.handle} repo=${E.repo?.cloneUrl??"(none)"} branch=${E.repo?.branch??"(none)"} runtime=${E.workload?.runtime??"(autodetect)"} pm=${E.workload?.packageManager??"(autodetect)"}`);let r=s9l(24).toString("hex"),[x,O]=await Promise.all([l(),l()]);console.log(`[user-desktop] spawn handle=${E.handle} port=${x} devPort=${O} workdir=${v}`);let y=await Promise.resolve(i.spawnDaemon({workdir:v,handle:E.handle,port:x,daemonToken:r,offloadAllowedHosts:E.offloadAllowedHosts??[],offloadAllowSameHostDev:E.offloadAllowSameHostDev??!1,orgFsConfigJson:E.orgFsConfigJson}));try{try{await i.waitForHealth(x)}catch(J){throw kSt("the sandbox didn't come online in time",J)}console.log(`[user-desktop] healthy handle=${E.handle} port=${x} \u2014 posting config`);try{await i.postConfig(x,O,{repo:E.repo,workload:E.workload,operator:E.operator},r)}catch(J){throw kSt(uNl(J)?"configuration timed out":"the sandbox rejected its configuration",J)}}catch(J){console.error(`[user-desktop] sandbox bring-up failed handle=${E.handle} port=${x} (killing daemon):`,J);try{y.kill("SIGKILL")}catch{}throw c({handle:E.handle,phase:"failed",error:lNl(J)}),J}let X=`http://127.0.0.1:${x}`,N=f(E.handle,x);console.log(`[user-desktop] ready handle=${E.handle} port=${x} sandboxApiUrl=${X} previewUrl=${N}`);let U={handle:E.handle,port:x,process:y,sandboxApiUrl:X,previewUrl:N,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:r};if(u.set(E.handle,U),c({handle:E.handle,phase:"ready",port:x,previewUrl:N}),y.exited)y.exited.then(()=>{if(u.get(E.handle)===U)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${E.handle} port=${x} \u2014 removing from cache`),u.delete(E.handle),c({handle:E.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${E.handle} port=${x} (already replaced/removed)`)});return{sandboxApiUrl:X,previewUrl:N,port:x}};return{async ensureSandbox(E){let v=u.get(E.handle);if(v){if(await $(v.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${E.handle} port=${v.port} (alive)`),v.lastUsedAt=Date.now(),{sandboxApiUrl:v.sandboxApiUrl,previewUrl:v.previewUrl,port:v.port};console.warn(`[user-desktop] cache stale handle=${E.handle} port=${v.port} \u2014 respawning`),d(v)}let r=_.get(E.handle);if(r)return console.log(`[user-desktop] joining in-flight ensure handle=${E.handle}`),r;let x=h(E).finally(()=>{_.delete(E.handle)});return _.set(E.handle,x),x},proxyPort(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now();return v?.port??null},getDaemonToken(E){return u.get(E)?.daemonToken??null},hasHandle(E){return u.has(E)||_.has(E)},recordHit(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now()},acquireDispatch(E){let v=u.get(E);if(!v)return()=>{};v.activeDispatchCount+=1;let r=!1;return()=>{if(r)return;r=!0;let x=u.get(E);if(x)x.activeDispatchCount=Math.max(0,x.activeDispatchCount-1)}},listSandboxes(){return[...u.values()]},async deleteSandbox(E){let v=u.get(E);if(!v){console.log(`[user-desktop] delete handle=${E} (not found, no-op)`);return}console.log(`[user-desktop] delete handle=${E} port=${v.port}`);try{v.process.kill("SIGTERM")}catch{}u.delete(E),c({handle:E,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${u.size} sandbox(es)`);for(let E of u.values())try{E.process.kill("SIGTERM")}catch{}u.clear()}}}function nNl(){return new Promise((i,t)=>{let u=iNl();u.unref(),u.on("error",t),u.listen(0,"127.0.0.1",()=>{let l=u.address();if(l&&typeof l==="object"){let n=l.port;u.close(()=>i(n))}else u.close(()=>t(Error("could not allocate port")))})})}var SSt=()=>{};import{randomUUID as fNl}from"crypto";import{hostname as cNl}from"os";async function zSt(i){let t=cNl()||void 0;i.monitor?.onMachine?.(t??"this machine");let u=pPt(i.dataDir,{outFd:i.logFd,hotReload:i.hotReload}),l=0,n=jSt({dataDir:i.dataDir,resolvePreviewUrl:(N,U)=>l>0?`http://${N}.localhost:${l}`:`http://127.0.0.1:${U}`,spawnDaemon:async(N)=>{let U={DAEMON_BOOT_ID:fNl(),APP_ROOT:N.workdir,PROXY_PORT:String(N.port),DAEMON_TOKEN:N.daemonToken,OFFLOAD_ALLOWED_HOSTS:N.offloadAllowedHosts.join(","),...N.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(N.orgFsConfigJson){let T=await lAt(i.dataDir);if(T)U.ORGFS_CONFIG=N.orgFsConfigJson,U.ORGFS_RCLONE_PATH=T}let J=await u({workdir:N.workdir,env:U,daemonPort:N.port});return{port:N.port,kill:(T)=>J.kill(T),exited:J.exited.then(()=>{return})}},postConfig:async(N,U,J,T)=>{let Q={port:U};if(J.workload)Q.runtime=J.workload.runtime,Q.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let B={application:Q},P=ih(J.operator??null);if(P)B.operator=P;if(J.repo)B.git={repository:{cloneUrl:J.repo.cloneUrl,branch:J.repo.branch},...J.repo.userName&&J.repo.userEmail?{identity:{userName:J.repo.userName,userEmail:J.repo.userEmail}}:{}};await B8(`http://127.0.0.1:${N}`,T,B)},waitForHealth:async(N)=>{await ili(`http://127.0.0.1:${N}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),f=await QSt({port:i.port,lookupSandboxPort:(N)=>n.proxyPort(N)});l=f.port,console.log(`Local ingress listening on http://127.0.0.1:${f.port} (use http://<handle>.localhost:${f.port}/)`),i.monitor?.onIngress?.(f.port);let c=fAt({provider:n}),$=async()=>{let N=await zw({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!N)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return N.accessToken};console.log(`[link-daemon] transport=pull cluster=${i.clusterBaseUrl}`);let d=await GSt(i.dataDir),_=process.env.npm_package_version??"0.0.0",g=await Dki(),h=PSt(g,{onChange:(N)=>{console.log(`[link-daemon] capabilities detected: +${N.join(",")} (now: ${g.join(",")})`)}}),E=vki({path:`${i.dataDir}/link/outbox.sqlite`}),v=()=>{},r=await DSt({clusterBaseUrl:i.clusterBaseUrl,getAccessToken:$,provider:n,outbox:E,controlHandler:c,capabilities:g,machineId:d,cliVersion:_,previewPort:f.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl} (pull transport)`)},onShutdown:()=>v()}),x,O=new Promise((N)=>{x=N}),y=!1,X=async()=>{if(y)return;y=!0,console.log(`
|
|
104795
|
-
Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var bSt=w(()=>{EGi();HH();iAt();nAt();cAt();OSt();rki();YSt();ASt();WSt();KH();SSt()});function Oki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var E0i;var yki=w(()=>{E0i={name:"decocms",version:"3.17.0",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/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","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","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^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.17.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var ER={};Gi(ER,{printBanner:()=>_Nl,bannerLines:()=>KSt,BANNER_LINES:()=>v0i,BANNER_GRADIENT:()=>r0i});function dNl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function KSt(i){let t=v0i.map((u,l)=>{let[n,f,c]=dNl(r0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function _Nl(i){console.log("");for(let t of KSt(i))console.log(t);console.log("")}var v0i,r0i;var BW=w(()=>{v0i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],r0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as gNl,Text as HSt}from"ink";import{jsx as hNl,jsxs as RSt}from"react/jsx-runtime";function w0i({version:i}){return RSt(gNl,{flexDirection:"column",marginTop:1,children:[v0i.map((t,u)=>hNl(HSt,{color:r0i[u],children:t},u)),RSt(HSt,{dimColor:!0,children:[" v",i]})]})}var Xki=w(()=>{BW()});var CSt={};Gi(CSt,{subscribeLinkState:()=>Uki,setMachine:()=>wNl,setLogPath:()=>DNl,setIngress:()=>rNl,setDaemonError:()=>xNl,setClusterUrl:()=>vNl,setCluster:()=>ENl,pushSandboxEvent:()=>ONl,getLinkState:()=>Jki,applySandboxEvent:()=>LSt});function LSt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function q8(){for(let i of Nki)i()}function Jki(){return t$}function Uki(i){return Nki.add(i),()=>Nki.delete(i)}function ENl(i){t$={...t$,cluster:i},q8()}function vNl(i){t$={...t$,clusterUrl:i},q8()}function rNl(i,t){t$={...t$,ingressPort:i,ingressUrl:t},q8()}function wNl(i){t$={...t$,machine:i},q8()}function xNl(i){t$={...t$,daemonError:i},q8()}function DNl(i){t$={...t$,logPath:i},q8()}function ONl(i){t$={...t$,sandboxes:LSt(t$.sandboxes,i)},q8()}var t$,Nki;var Tki=w(()=>{t$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},Nki=new Set});var eSt={};Gi(eSt,{LinkApp:()=>NNl});import{Box as u$,Text as l$}from"ink";import{useSyncExternalStore as yNl}from"react";import{jsx as $f,jsxs as LE}from"react/jsx-runtime";function XNl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function NNl(){let i=yNl(Uki,Jki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return LE(u$,{flexDirection:"column",children:[$f(w0i,{version:E0i.version}),$f(u$,{marginBottom:1,children:$f(l$,{dimColor:!0,children:"\u2500".repeat(80)})}),$f(u$,{children:i.cluster==="linked"?LE(l$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?LE(l$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):LE(l$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),$f(u$,{children:i.ingressUrl?LE(l$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):$f(l$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),$f(u$,{marginBottom:1,children:$f(l$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?$f(l$,{dimColor:!0,children:"No previews running yet."}):LE(u$,{flexDirection:"column",children:[LE(u$,{children:[$f(u$,{width:x0i.project,flexShrink:0,marginRight:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),$f(u$,{width:x0i.status,flexShrink:0,marginRight:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),$f(u$,{flexGrow:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=XNl(u);return LE(u$,{children:[$f(u$,{width:x0i.project,flexShrink:0,marginRight:1,children:$f(l$,{wrap:"truncate-end",children:u.handle})}),$f(u$,{width:x0i.status,flexShrink:0,marginRight:1,children:$f(l$,{color:l.color,wrap:"truncate-end",children:l.text})}),$f(u$,{flexGrow:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?$f(u$,{marginTop:1,children:LE(l$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?$f(u$,{marginTop:1,children:LE(l$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var x0i;var MSt=w(()=>{yki();Xki();Tki();x0i={project:18,status:14}});var VSt={};Gi(VSt,{runLinkCommand:()=>QNl});import{closeSync as JNl,mkdirSync as UNl,openSync as TNl,writeSync as FNl}from"fs";import{homedir as ZNl}from"os";import{join as qSt}from"path";function INl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{FNl(t,`${Oki(n)}
|
|
104795
|
+
Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var bSt=w(()=>{EGi();HH();iAt();nAt();cAt();OSt();rki();YSt();ASt();WSt();KH();SSt()});function Oki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var E0i;var yki=w(()=>{E0i={name:"decocms",version:"3.17.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","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","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^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.17.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var ER={};Gi(ER,{printBanner:()=>_Nl,bannerLines:()=>KSt,BANNER_LINES:()=>v0i,BANNER_GRADIENT:()=>r0i});function dNl(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function KSt(i){let t=v0i.map((u,l)=>{let[n,f,c]=dNl(r0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function _Nl(i){console.log("");for(let t of KSt(i))console.log(t);console.log("")}var v0i,r0i;var BW=w(()=>{v0i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],r0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as gNl,Text as HSt}from"ink";import{jsx as hNl,jsxs as RSt}from"react/jsx-runtime";function w0i({version:i}){return RSt(gNl,{flexDirection:"column",marginTop:1,children:[v0i.map((t,u)=>hNl(HSt,{color:r0i[u],children:t},u)),RSt(HSt,{dimColor:!0,children:[" v",i]})]})}var Xki=w(()=>{BW()});var CSt={};Gi(CSt,{subscribeLinkState:()=>Uki,setMachine:()=>wNl,setLogPath:()=>DNl,setIngress:()=>rNl,setDaemonError:()=>xNl,setClusterUrl:()=>vNl,setCluster:()=>ENl,pushSandboxEvent:()=>ONl,getLinkState:()=>Jki,applySandboxEvent:()=>LSt});function LSt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function q8(){for(let i of Nki)i()}function Jki(){return t$}function Uki(i){return Nki.add(i),()=>Nki.delete(i)}function ENl(i){t$={...t$,cluster:i},q8()}function vNl(i){t$={...t$,clusterUrl:i},q8()}function rNl(i,t){t$={...t$,ingressPort:i,ingressUrl:t},q8()}function wNl(i){t$={...t$,machine:i},q8()}function xNl(i){t$={...t$,daemonError:i},q8()}function DNl(i){t$={...t$,logPath:i},q8()}function ONl(i){t$={...t$,sandboxes:LSt(t$.sandboxes,i)},q8()}var t$,Nki;var Tki=w(()=>{t$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},Nki=new Set});var eSt={};Gi(eSt,{LinkApp:()=>NNl});import{Box as u$,Text as l$}from"ink";import{useSyncExternalStore as yNl}from"react";import{jsx as $f,jsxs as LE}from"react/jsx-runtime";function XNl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function NNl(){let i=yNl(Uki,Jki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return LE(u$,{flexDirection:"column",children:[$f(w0i,{version:E0i.version}),$f(u$,{marginBottom:1,children:$f(l$,{dimColor:!0,children:"\u2500".repeat(80)})}),$f(u$,{children:i.cluster==="linked"?LE(l$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?LE(l$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):LE(l$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),$f(u$,{children:i.ingressUrl?LE(l$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):$f(l$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),$f(u$,{marginBottom:1,children:$f(l$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?$f(l$,{dimColor:!0,children:"No previews running yet."}):LE(u$,{flexDirection:"column",children:[LE(u$,{children:[$f(u$,{width:x0i.project,flexShrink:0,marginRight:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),$f(u$,{width:x0i.status,flexShrink:0,marginRight:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),$f(u$,{flexGrow:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=XNl(u);return LE(u$,{children:[$f(u$,{width:x0i.project,flexShrink:0,marginRight:1,children:$f(l$,{wrap:"truncate-end",children:u.handle})}),$f(u$,{width:x0i.status,flexShrink:0,marginRight:1,children:$f(l$,{color:l.color,wrap:"truncate-end",children:l.text})}),$f(u$,{flexGrow:1,children:$f(l$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?$f(u$,{marginTop:1,children:LE(l$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?$f(u$,{marginTop:1,children:LE(l$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var x0i;var MSt=w(()=>{yki();Xki();Tki();x0i={project:18,status:14}});var VSt={};Gi(VSt,{runLinkCommand:()=>QNl});import{closeSync as JNl,mkdirSync as UNl,openSync as TNl,writeSync as FNl}from"fs";import{homedir as ZNl}from"os";import{join as qSt}from"path";function INl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{FNl(t,`${Oki(n)}
|
|
104796
104796
|
`)}catch{}};return console.log=(...n)=>l(n),console.warn=(...n)=>l(n),console.error=(...n)=>{l(n),i(Oki(n))},()=>{console.log=u.log,console.warn=u.warn,console.error=u.error}}async function BNl(i,t){let u;try{u=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${t}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(u.status===401||u.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function QNl(i={}){let t=i.port??5174,u=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??qSt(ZNl(),"deco"),l=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",n,f;try{let c=await mui({dataDir:u,intent:"Link",target:l});if(process.env.DECOCMS_LINK_MANAGED!=="1")await BNl(l,c.accessToken);let $;if(i.tui){let{render:_}=await import("ink"),{createElement:g}=await import("react"),{LinkApp:h}=await Promise.resolve().then(() => (MSt(),eSt)),{pushSandboxEvent:E,setCluster:v,setClusterUrl:r,setDaemonError:x,setIngress:O,setLogPath:y,setMachine:X}=await Promise.resolve().then(() => (Tki(),CSt));UNl(u,{recursive:!0});let N=qSt(u,"link.log");f=TNl(N,"a"),y(N),r(l),v("connecting"),$={onEvent:(U)=>E(U),onIngress:(U)=>O(U,`http://127.0.0.1:${U}`),onCluster:(U)=>v(U),onMachine:(U)=>X(U)},n=INl(x,f),_(g(h),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:_}=await Promise.resolve().then(() => (BW(),ER));_(i.version??"0.0.0")}return await(await zSt({port:t,clusterBaseUrl:l,dataDir:u,session:c,monitor:$,logFd:f,hotReload:i.hotReload})).stopped}catch(c){return n?.(),console.error(c instanceof Error?c.message:String(c)),1}finally{if(n?.(),f!==void 0)try{JNl(f)}catch{}}}var aSt=w(()=>{hGi();bSt()});var Yki={};Gi(Yki,{resolveDevLinkClusterUrl:()=>GNl,populateDevLinkToxiProxy:()=>tzt,isDevLinkToxiProxyEnabled:()=>ANl,ensureDevLinkToxiProxy:()=>zNl,buildDevLinkToxiProxyConfig:()=>pSt,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>oSt,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>sSt});function ANl(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function Fki(i,t){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${t} must be an integer port in 1..65535`);return i}function pSt(i){let t=new URL(i.serverUrl);if(t.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let u=Fki(i.apiPort,"apiPort"),l=Fki(i.listenPort,"listenPort");if(t.port.length===0)throw Error("serverUrl must include an explicit valid port");let n=Fki(Number.parseInt(t.port,10),"upstreamPort"),f=`http://127.0.0.1:${n}`,c=`http://127.0.0.1:${l}`;return{serviceName:oSt,proxyName:sSt,apiUrl:`http://127.0.0.1:${u}`,listen:`0.0.0.0:${l}`,upstream:`host.docker.internal:${n}`,publicTargetUrl:f,clusterUrl:c,logLine:`[dev-link-toxiproxy] ready: ${c} -> ${f}`}}function GNl(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function Zki(i,t,u){if(i.ok)return;let l=await i.text();throw Error(`ToxiProxy ${t} failed for ${u}: status=${i.status} statusText=${i.statusText} body=${l}`)}function Qki(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function izt(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return izt(i.cause)}async function Iki(i,t,u,l){try{return await i(u,l)}catch(n){throw Error(`ToxiProxy ${t} failed for ${u}: ${Qki(n)}`,{cause:n})}}async function tzt(i,t=fetch){let u=`${i.apiUrl}/reset`,l=await Iki(t,"reset",u,{method:"POST"});await Zki(l,"reset",u);let n=`${i.apiUrl}/populate`,f=await Iki(t,"populate",n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await Zki(f,"populate",n)}async function WNl(i,t){let u=`${i.apiUrl}/version`;try{await Tr(async()=>{let l=await Iki(t,"readiness check",u,{method:"GET",signal:AbortSignal.timeout(PNl)});await Zki(l,"readiness check",u)},{maxAttempts:YNl,minTimeout:mSt,maxTimeout:mSt,multiplier:1,jitter:0,isRetriable:(l)=>!izt(l)})}catch(l){let n=l instanceof H6?l.cause:l;throw Error(`ToxiProxy API did not become ready at ${u}: ${Qki(n)}`,{cause:n})}}async function kNl(i){if(i===null)return"";return await new Response(i).text()}async function Bki(i,t={}){let u=["docker",...i].join(" "),l=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${u}): ${Qki($)}`,{cause:$})}})(),[n,f]=await Promise.all([l.exited,kNl(l.stderr)]);if(n===0||t.ignoreFailure===!0)return;let c=f.trim().length>0?`: ${f.trim()}`:"";throw Error(`Docker command failed (${u}) with exit ${n}${c}`)}async function jNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Bki(["rm","-f",u],{ignoreFailure:!0}),await Bki(["run","--rm","-d","--name",u,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${t}:${t}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function SNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Bki(["rm","-f",u],{ignoreFailure:!0})}async function zNl(i){let t=pSt(i),u=i.startDaemon??jNl,l=i.stopDaemon??(i.startDaemon===void 0?SNl:void 0);await u(i.apiPort,i.listenPort);let n=i.fetchImpl??fetch;try{await WNl(t,n),await tzt(t,n)}catch(f){if(l!==void 0)try{await l(i.apiPort,i.listenPort)}catch{}throw f}return{config:t,stop:async()=>{if(l!==void 0)await l(i.apiPort,i.listenPort)}}}var oSt="ToxiProxy",sSt="dev_link_studio",YNl=20,mSt=100,PNl=100;var Pki=w(()=>{H1()});var uzt={};Gi(uzt,{migrateBetterAuth:()=>Aki});import{getMigrations as bNl}from"better-auth/db";import{sso as KNl}from"@better-auth/sso";import{organization as HNl}from"@decocms/better-auth/plugins";import{admin as RNl,apiKey as LNl,jwt as CNl,magicLink as eNl,mcp as MNl,openAPI as qNl}from"better-auth/plugins";import{emailOTP as VNl}from"better-auth/plugins/email-otp";async function Aki(i){let u={database:kH(i||Ww()),plugins:[HNl({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),RNl(),LNl(),CNl(),qNl(),MNl({loginPage:"/login"}),KNl(),eNl({sendMagicLink:async()=>{}}),VNl({sendVerificationOTP:async()=>{}})]},{toBeAdded:l,toBeCreated:n,runMigrations:f}=await bNl(u);if(!l.length&&!n.length)return"up to date";return await f(),`${n.length+l.length} table(s) migrated`}var Gki=w(()=>{z$()});var Wki={};Gi(Wki,{up:()=>aNl,down:()=>mNl});import{sql as CE}from"kysely";async function aNl(i){await i.schema.createTable("connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(t)=>t.notNull()).addColumn("connectionUrl","text",(t)=>t.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(t)=>t.primaryKey()).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("hashedKey","text",(t)=>t.notNull().unique()).addColumn("permissions","text",(t)=>t.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(t)=>t.notNull()).addColumn("redirectUris","text",(t)=>t.notNull()).addColumn("grantTypes","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(t)=>t.notNull()).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(t)=>t.primaryKey()).addColumn("connectionId","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(t)=>t.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(t)=>t.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(CE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function mNl(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var lzt=()=>{};var kki={};Gi(kki,{up:()=>oNl,down:()=>sNl});import{sql as nzt}from"kysely";async function oNl(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(nzt`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(nzt`CURRENT_TIMESTAMP`)).execute()}async function sNl(i){await i.schema.dropTable("organization_settings").execute()}var fzt=()=>{};var jki={};Gi(jki,{up:()=>pNl,down:()=>iJl});async function pNl(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function iJl(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Ski={};Gi(Ski,{up:()=>tJl,down:()=>uJl});async function tJl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function uJl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId",t.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var zki={};Gi(zki,{up:()=>lJl,down:()=>nJl});async function lJl(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function nJl(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var bki={};Gi(bki,{up:()=>cJl,down:()=>$Jl});import{sql as fJl}from"kysely";async function cJl(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",fJl`text`).execute()}async function $Jl(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var czt=()=>{};var Kki={};Gi(Kki,{up:()=>dJl,down:()=>_Jl});async function dJl(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(t)=>t.notNull()).addColumn("tool_name","text",(t)=>t.notNull()).addColumn("input","text",(t)=>t.notNull()).addColumn("output","text",(t)=>t.notNull()).addColumn("is_error","integer",(t)=>t.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(t)=>t.notNull()).addColumn("timestamp","text",(t)=>t.notNull()).addColumn("user_id","text").addColumn("request_id","text",(t)=>t.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function _Jl(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var Hki={};Gi(Hki,{up:()=>gJl,down:()=>hJl});import{sql as vR}from"kysely";async function gJl(i){await i.schema.createTable("events").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(t)=>t.notNull()).addColumn("source","text",(t)=>t.notNull()).addColumn("specversion","text",(t)=>t.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(t)=>t.notNull()).addColumn("datacontenttype","text",(t)=>t.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(vR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(vR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(t)=>t.notNull()).addColumn("filter","text").addColumn("enabled","integer",(t)=>t.notNull().defaultTo(1)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(vR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(vR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(t)=>t.primaryKey()).addColumn("event_id","text",(t)=>t.notNull()).addColumn("subscription_id","text",(t)=>t.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(vR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function hJl(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var $zt=()=>{};var Rki={};Gi(Rki,{up:()=>vJl,down:()=>rJl});import{sql as EJl}from"kysely";async function vJl(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function rJl(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(EJl`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var dzt=()=>{};var Lki={};Gi(Lki,{up:()=>wJl,down:()=>xJl});import{sql as D0i}from"kysely";async function wJl(i){await i.schema.createTable("gateways").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(t)=>t.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("is_default","integer",(t)=>t.notNull().defaultTo(0)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(D0i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(D0i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("gateway_id","text",(t)=>t.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(D0i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await D0i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function xJl(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var _zt=()=>{};var Cki={};Gi(Cki,{up:()=>DJl,down:()=>OJl});async function DJl(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function OJl(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var eki={};Gi(eki,{up:()=>yJl,down:()=>XJl});import{sql as O0i}from"kysely";async function yJl(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(t)=>t.notNull().defaultTo("inclusion")).execute(),await O0i`
|
|
104797
104797
|
UPDATE gateways
|
|
104798
104798
|
SET tool_selection_mode = CASE
|