decocms 4.497.1 → 4.498.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/{ActiveShapeUtils-CyYu6nD0.js → ActiveShapeUtils-CEOSKof6.js} +1 -1
- package/dist/client/assets/{AlertCircle-CHrjAIcc.js → AlertCircle-yt_vxPJf.js} +1 -1
- package/dist/client/assets/{AreaChart-CwoOvJ2_.js → AreaChart-NgSbz1YU.js} +1 -1
- package/dist/client/assets/{ArrowLeft-CDSbOlKg.js → ArrowLeft-BoFdVIj0.js} +1 -1
- package/dist/client/assets/{ArrowUp-DVmGL0QN.js → ArrowUp-CIbRKXRd.js} +1 -1
- package/dist/client/assets/{BarChart-pYmYrRAw.js → BarChart-CZZfMdqS.js} +1 -1
- package/dist/client/assets/{Building02-Cjmi-E_Q.js → Building02-Grdt_-B9.js} +1 -1
- package/dist/client/assets/{CategoricalChart-J69_dr0s.js → CategoricalChart-DOyrhZnb.js} +1 -1
- package/dist/client/assets/{CheckCircle-DH3xbIup.js → CheckCircle-CZBNcseh.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-D3--DzuF.js → ChevronSelectorVertical-Cx7bXE4W.js} +1 -1
- package/dist/client/assets/{ChevronUp-fo2ERVlh.js → ChevronUp-D6IHSaQn.js} +1 -1
- package/dist/client/assets/{Copy01-C7JKQ2yo.js → Copy01-CEPiTf5t.js} +1 -1
- package/dist/client/assets/{CreditCard01-DuhJeWgL.js → CreditCard01-tiXWLEqR.js} +1 -1
- package/dist/client/assets/{DotsVertical-CdIsXudQ.js → DotsVertical-BuI2KBNC.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-PRGTHaZ1.js → ErrorBarContext-z-eRCr-L.js} +1 -1
- package/dist/client/assets/{Globe04-CMhAsYW7.js → Globe04-C0XtFFMY.js} +1 -1
- package/dist/client/assets/{Image01-DQr5z6Eu.js → Image01-9sEHDLML.js} +1 -1
- package/dist/client/assets/{Key01-DkQjjPwv.js → Key01-yp2uNovQ.js} +1 -1
- package/dist/client/assets/{Link01-CBvOTEVq.js → Link01-EXdK0urZ.js} +1 -1
- package/dist/client/assets/{LinkBroken01-CWg3Xs9J.js → LinkBroken01-3c_toy9W.js} +1 -1
- package/dist/client/assets/{Monitor01-CawnpOBp.js → Monitor01-TfUbVR_O.js} +1 -1
- package/dist/client/assets/{Play-CHfHT47l.js → Play-CN_3v0Nc.js} +1 -1
- package/dist/client/assets/{Plus-Ch1sG4T5.js → Plus-BuHYG86K.js} +1 -1
- package/dist/client/assets/{SearchMd-D7CH4cEW.js → SearchMd-Dq3HFXQW.js} +1 -1
- package/dist/client/assets/{Sector-BdZY69jR.js → Sector-BZNZXef1.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-CFzAExOe.js → ShoppingBag01-Cf6UKyjX.js} +1 -1
- package/dist/client/assets/{Sun-AXWLcql2.js → Sun-CO0EKSy7.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-ZzQSxDu-.js → SwitchHorizontal01-Bu2dq40R.js} +1 -1
- package/dist/client/assets/{Tool01-D47UxjHr.js → Tool01-1QQRqWDa.js} +1 -1
- package/dist/client/assets/{Trash01-DjbVg-Gr.js → Trash01-B6NXmxPH.js} +1 -1
- package/dist/client/assets/{Upload01-CongSYMk.js → Upload01-D4HC2Tn9.js} +1 -1
- package/dist/client/assets/{User01-C0eJYwru.js → User01-j65IkD-p.js} +1 -1
- package/dist/client/assets/{UserSquare-D5hRO90M.js → UserSquare-BlEF03DB.js} +1 -1
- package/dist/client/assets/{Users01-C3nUQ4J2.js → Users01-DaolauCT.js} +1 -1
- package/dist/client/assets/{XAxis-CHmQK-au.js → XAxis-BEe_hkuD.js} +1 -1
- package/dist/client/assets/{XClose-CEtKIB7q.js → XClose-DR6y5rEy.js} +1 -1
- package/dist/client/assets/{ZoomOut-CrQxrOGW.js → ZoomOut-4Na-37_y.js} +1 -1
- package/dist/client/assets/{access-gate-rafBainF.js → access-gate-BkRaj5GE.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-CvB_KcBa.js → add-connection-dialog-Clf3RGrh.js} +1 -1
- package/dist/client/assets/{agent-analytics-BVxR4_Uj.js → agent-analytics-DtOK7V_m.js} +1 -1
- package/dist/client/assets/agent-app-OaxZqeD_.js +1 -0
- package/dist/client/assets/{agent-assets-B1OqFMpj.js → agent-assets-eggmJ6AO.js} +1 -1
- package/dist/client/assets/{agent-automation-ClFLOq4I.js → agent-automation-DKjiKuGX.js} +3 -3
- package/dist/client/assets/{agent-automations-BFYTbfc-.js → agent-automations-D0TPMz58.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-BRvuYQWx.js → agent-connect-sources-QM1x-Vlg.js} +1 -1
- package/dist/client/assets/agent-deck-B2nYR7Dm.js +1 -0
- package/dist/client/assets/{agent-e2e-B9CH2Mo6.js → agent-e2e-Ca7-yyUr.js} +1 -1
- package/dist/client/assets/{agent-experiments-DlztOCrU.js → agent-experiments-CShjLMy4.js} +1 -1
- package/dist/client/assets/{agent-file-CsIS9_4j.js → agent-file-CXnhLpHv.js} +1 -1
- package/dist/client/assets/{agent-hosting-Bknl93TE.js → agent-hosting-CJ7X3aoi.js} +1 -1
- package/dist/client/assets/{agent-icon-D25DK5wS.js → agent-icon-BWm1tEHf.js} +1 -1
- package/dist/client/assets/agent-library-BOKehDWH.js +1 -0
- package/dist/client/assets/agent-library-file-bZx6dPQZ.js +1 -0
- package/dist/client/assets/{agent-monitor-DyT5ig13.js → agent-monitor-aO-ZX72I.js} +1 -1
- package/dist/client/assets/{agent-overview-ButxU5iy.js → agent-overview-BdNqyANT.js} +1 -1
- package/dist/client/assets/agent-settings-C9O5P6Ac.js +1 -0
- package/dist/client/assets/{agent-site-editor-Dl99KrED.js → agent-site-editor-DpVUGFZO.js} +13 -13
- package/dist/client/assets/agent-site-editor-code-B6YFKzJn.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-Df_6cDHk.js → agent-site-editor-content-Ch_W-XBW.js} +3 -3
- package/dist/client/assets/{agent-site-editor-preview-CltuQS-a.js → agent-site-editor-preview-B_IWatK1.js} +3 -3
- package/dist/client/assets/agent-view-B5RueEsw.js +1 -0
- package/dist/client/assets/{agent-view-guard-CVsz0TkU.js → agent-view-guard-BvLhIXrv.js} +1 -1
- package/dist/client/assets/{agents-list-CeTR5ulR.js → agents-list-C1mOaR5S.js} +1 -1
- package/dist/client/assets/{ai-providers-BZ2_pdED.js → ai-providers-Dl-M1PyL.js} +1 -1
- package/dist/client/assets/{alert-BK3mvJgc.js → alert-SBNacSkV.js} +1 -1
- package/dist/client/assets/{alert-dialog-CmV9dy9T.js → alert-dialog-jQtZ3ZzI.js} +1 -1
- package/dist/client/assets/{analytics-sections-BrCaGlQS.js → analytics-sections-ClrZtpv-.js} +1 -1
- package/dist/client/assets/{api-keys-BjhtfTv5.js → api-keys-CPJrFMqi.js} +1 -1
- package/dist/client/assets/api-keys-DBSJuVWB.js +1 -0
- package/dist/client/assets/app-editor-pad2zBVL.js +1 -0
- package/dist/client/assets/{asset-utils-CM76tGw5.js → asset-utils-D08Aoc_R.js} +1 -1
- package/dist/client/assets/{auth-catchall-BHpuDx65.js → auth-catchall-BeMyoBKu.js} +1 -1
- package/dist/client/assets/{auth-entry-DTqozZzK.js → auth-entry-DJaGJAjK.js} +1 -1
- package/dist/client/assets/{auth-mnJ9PW01.js → auth-mFhLeKMz.js} +1 -1
- package/dist/client/assets/{auth-split-layout-nnK4QA-M.js → auth-split-layout-ByDkAW2k.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-Bpiv3RO5.js → authenticate-and-persist-oauth-CeGbqgzS.js} +1 -1
- package/dist/client/assets/{automation-list-row-YpYqBxpc.js → automation-list-row-DVkYWn7-.js} +1 -1
- package/dist/client/assets/{automation-runs-Cjsz3sNl.js → automation-runs-ClsfcDj3.js} +1 -1
- package/dist/client/assets/{automations-K16w9IfU.js → automations-J6M9iOPe.js} +1 -1
- package/dist/client/assets/{autosend-BaSnPt7x.js → autosend-BMgG-yyo.js} +1 -1
- package/dist/client/assets/{avatar-Co-052cR.js → avatar-CGKHJJ29.js} +1 -1
- package/dist/client/assets/{badge-CSXpEa55.js → badge-e2QrlLU3.js} +1 -1
- package/dist/client/assets/{block-document-Dwi86oHf.js → block-document-CwvleIK5.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-BOZf-loo.js → blocks-preview-workspace-context-CRfw600-.js} +1 -1
- package/dist/client/assets/{blog-schema-D-OKi5uD.js → blog-schema-9H1MsVja.js} +1 -1
- package/dist/client/assets/{board-analytics-Dtj7gftE.js → board-analytics-DJF9aWKh.js} +1 -1
- package/dist/client/assets/{buckets-Tw-Ph4JX.js → buckets-BP1Vhyhd.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-DSsqKodq.js → build-improve-prompt-doc-v8716goQ.js} +1 -1
- package/dist/client/assets/{calendar-DCoBKIit.js → calendar-Bk2o0YZw.js} +1 -1
- package/dist/client/assets/{capability-load-error-D4Y-1y8Z.js → capability-load-error-CIHPR5Gy.js} +1 -1
- package/dist/client/assets/{category-editor-15WhKdzJ.js → category-editor-BaQg02aW.js} +1 -1
- package/dist/client/assets/{chart-D8S5B3Fk.js → chart-HyDGBD-q.js} +1 -1
- package/dist/client/assets/{chat-context-BvnYD9Wb.js → chat-context-BbNDNUk9.js} +1 -1
- package/dist/client/assets/{chat-draft-BUwzbZEb.js → chat-draft-hlZVssEX.js} +1 -1
- package/dist/client/assets/{checkbox-CVokasRh.js → checkbox-C_2F1Cj3.js} +1 -1
- package/dist/client/assets/{choose-editor-B_kWfVxF.js → choose-editor-ChSwWWjo.js} +1 -1
- package/dist/client/assets/{claim-phase-copy-D7K6r9pB.js → claim-phase-copy-D269DINR.js} +1 -1
- package/dist/client/assets/{cli-auth-success-BjJ_-CPN.js → cli-auth-success-CmkX-i8P.js} +1 -1
- package/dist/client/assets/{client-icons-R8IUwnS4.js → client-icons-DSMjDL_L.js} +1 -1
- package/dist/client/assets/{collapsible-BpQWnMqu.js → collapsible-B9gzEACx.js} +1 -1
- package/dist/client/assets/{collection-detail-BTjqy1Rt.js → collection-detail-1UUQlOPW.js} +1 -1
- package/dist/client/assets/{collection-display-button-CwZjncaa.js → collection-display-button-Bfbynwrl.js} +1 -1
- package/dist/client/assets/{collection-search-CFCYIYsp.js → collection-search-B0uW5tI4.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-9DXb8a6f.js → collection-table-wrapper-ClFZOmuM.js} +1 -1
- package/dist/client/assets/{collection-tabs-D1MI1rbf.js → collection-tabs-Bkk1_mfm.js} +1 -1
- package/dist/client/assets/{column-rules-CKqZ2w7B.js → column-rules-DSDPtHpm.js} +1 -1
- package/dist/client/assets/{combobox-8uTSWM7x.js → combobox-CShUh4PQ.js} +1 -1
- package/dist/client/assets/{command-zNxZAzCt.js → command-nVyplWK_.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-Dn6CWwBU.js → companion-mcps-section-kC08wD54.js} +1 -1
- package/dist/client/assets/{config-zAMyoP2u.js → config-0BiCejtE.js} +1 -1
- package/dist/client/assets/{connect-B0eXPnXO.js → connect-BBeQU_EJ.js} +1 -1
- package/dist/client/assets/{connect-layout-DiQFJtzW.js → connect-layout-Bwx9aBPg.js} +1 -1
- package/dist/client/assets/{connection-1bY4JOT7.js → connection-A7b7D2VS.js} +1 -1
- package/dist/client/assets/{connection-card-BPhgcvjc.js → connection-card-DE57XYjn.js} +1 -1
- package/dist/client/assets/{connection-detail-Bb0U2uNL.js → connection-detail-BTLWRKbY.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BHdjytOT.js → connection-form-helpers-DtAJchwc.js} +1 -1
- package/dist/client/assets/{connections-C9nogFwq.js → connections-DrngcRP8.js} +1 -1
- package/dist/client/assets/{context-l2XAj4L-.js → context-DaL6xhih.js} +1 -1
- package/dist/client/assets/{context-menu-BJ4Hqd4H.js → context-menu-BJwy_nFH.js} +1 -1
- package/dist/client/assets/{core.esm-l5VXFwhd.js → core.esm-DDBCWV0w.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BDaja_nV.js → create-organization-dialog-DB9rEtrK.js} +1 -1
- package/dist/client/assets/{daily-pulse-DOsYKARy.js → daily-pulse-CJrJLexW.js} +1 -1
- package/dist/client/assets/{device-hint-PXv02Ucu.js → device-hint-CvaTEhNc.js} +1 -1
- package/dist/client/assets/{discover-BiY2-MAZ.js → discover-Dw08zcmB.js} +1 -1
- package/dist/client/assets/{domain-settings-B2qAb04P.js → domain-settings-B0_IxtF3.js} +1 -1
- package/dist/client/assets/{drawer-DL5bFgNR.js → drawer-DcBsCtJm.js} +1 -1
- package/dist/client/assets/{editor-EMcWHln-.js → editor-BM9Si7NB.js} +1 -1
- package/dist/client/assets/{empty-state-Bk1ubmvv.js → empty-state-C3RzST0N.js} +1 -1
- package/dist/client/assets/{empty-state-Dl0uE1qg.js → empty-state-DLkkLJux.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DIxd-Pe9.js → extract-connection-data-oAa1fXR4.js} +1 -1
- package/dist/client/assets/{feature-gate-D_5Zcern.js → feature-gate-r-cIsb_9.js} +1 -1
- package/dist/client/assets/{feature-paywall-uSo5NgIk.js → feature-paywall-nMZG76Hu.js} +1 -1
- package/dist/client/assets/{file-explorer-BLs0vfRV.js → file-explorer-Bom54db-.js} +1 -1
- package/dist/client/assets/{file-preview-C_zyLNU0.js → file-preview-CALjnZBa.js} +1 -1
- package/dist/client/assets/{file-share-button-DVm15sOV.js → file-share-button-CJ6c6rH7.js} +1 -1
- package/dist/client/assets/{file-type-icon-BFUya14p.js → file-type-icon-DUTtkOfJ.js} +1 -1
- package/dist/client/assets/flat-project-D87vZYtU.js +1 -0
- package/dist/client/assets/{folder-icon-aFp6Qaf_.js → folder-icon-BpHYuhb6.js} +1 -1
- package/dist/client/assets/{form-D_HjHR78.js → form-D6G00z5h.js} +1 -1
- package/dist/client/assets/{general-DWYlQqAU.js → general-B7xvTz9V.js} +1 -1
- package/dist/client/assets/{home-C39XJuuC.js → home-PELUmr4H.js} +1 -1
- package/dist/client/assets/{icon-button-CWnlJ_oZ.js → icon-button-DGINqU7U.js} +1 -1
- package/dist/client/assets/{index-Ah1SD4qu.js → index-45BC-IUR.js} +1 -1
- package/dist/client/assets/{index-DwYK88xA.js → index-BJiAXB1x.js} +1 -1
- package/dist/client/assets/{index-DqBs1i86.js → index-BOHdm5fb.js} +1 -1
- package/dist/client/assets/{index-zFizTRgJ.js → index-Bq_h7Umn.js} +4 -4
- package/dist/client/assets/{index-BBBK2Mw-.js → index-BqudK4-L.js} +1 -1
- package/dist/client/assets/{index-BGn4_CUT.js → index-BuDhwSVB.js} +1 -1
- package/dist/client/assets/{index-C8H_whn6.js → index-CakTkyAW.js} +3 -3
- package/dist/client/assets/{index-8oPwgK8U.js → index-CkoPmvjx.js} +1 -1
- package/dist/client/assets/{index-Cxl4iIy5.js → index-DdOq1jSd.js} +1 -1
- package/dist/client/assets/{index-TStkGKDV.js → index-DdQUASg3.js} +1 -1
- package/dist/client/assets/{index-Dbiuixsg.js → index-TQwnj3sP.js} +1 -1
- package/dist/client/assets/{index-DXJRwxmV.js → index-mX8QUf9o.js} +1 -1
- package/dist/client/assets/{index-redirect-qy-HGqdF.js → index-redirect-DNi4zMfa.js} +1 -1
- package/dist/client/assets/{index-B5s2AYv_.js → index-yMyEaAzH.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-DR5G3_XI.js → infiniteQueryObserver-BGAJA7Os.js} +1 -1
- package/dist/client/assets/{infra-billing-DZ12o-of.js → infra-billing-CbbmB2V7.js} +1 -1
- package/dist/client/assets/{input-LrUKUue2.js → input-BKhewuuN.js} +1 -1
- package/dist/client/assets/{input-DrtuDHta.js → input-Box_WV2_.js} +3 -3
- package/dist/client/assets/{integration-icon-Bdyedi1P.js → integration-icon-DhOhrv7U.js} +1 -1
- package/dist/client/assets/{jira-icon-C5IDdjgJ.js → jira-icon-i4VUNyiL.js} +1 -1
- package/dist/client/assets/{label-CGeSw_vU.js → label-CsAQzNfl.js} +1 -1
- package/dist/client/assets/{layout-D3tajt2K.js → layout-CkHYkU9R.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-CfrBn8K6.js → legacy-agents-deep-C98RQKXI.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-BKFq0f1c.js → legacy-main-redirect-BIgyJ_Rn.js} +1 -1
- package/dist/client/assets/library-DFMSzKbO.js +1 -0
- package/dist/client/assets/{library-tab-CedtT6BF.js → library-tab-BPP4xFsL.js} +1 -1
- package/dist/client/assets/{login-Dxq0oJju.js → login-C9xo8gC-.js} +1 -1
- package/dist/client/assets/{markdown-Wp7WM_6R.js → markdown-Clwy6_tr.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-D4yJqapi.js → mcp-app-renderer-DArMX47N.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BvraKhnX.js → mcp-oauth-CbvlD5SX.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BWnNfhKY.js → mcp-oauth-Cea99ANT.js} +1 -1
- package/dist/client/assets/{members-NoAgJggW.js → members-wctf2Ubi.js} +1 -1
- package/dist/client/assets/{memory-DPCydpI9.js → memory-Jt-lr6yw.js} +1 -1
- package/dist/client/assets/{mini-report-page-CKiZSO3Y.js → mini-report-page-B13wqcgl.js} +1 -1
- package/dist/client/assets/{mock-board-ldzlXXTT.js → mock-board-B5RdDxLI.js} +1 -1
- package/dist/client/assets/{monaco-editor-Cw6bHZ9D.js → monaco-editor-dtwnOmjA.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DUI3089C.js → monitoring-stats-row-DYDDyWu-.js} +1 -1
- package/dist/client/assets/{multi-select-C64565zf.js → multi-select-DdSpqudi.js} +1 -1
- package/dist/client/assets/{mustache-jBGE1x8P.js → mustache-CX4MpdBX.js} +1 -1
- package/dist/client/assets/{new-project-dialog-B0XejRtR.js → new-project-dialog-BGypGobH.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-Az104D_B.js → oauth-callback-ai-provider-DWrRnAQa.js} +1 -1
- package/dist/client/assets/{oauth-callback-K1LG85n6.js → oauth-callback-kqzCIobn.js} +1 -1
- package/dist/client/assets/{onboarding-BStXwTJO.js → onboarding-CcYfi8WI.js} +1 -1
- package/dist/client/assets/{openai-conversation-63MRsej5.js → openai-conversation-DhlBv8-E.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-BPQEjG_5.js → optimistic-project-sidebar-views-zum4YfIs.js} +1 -1
- package/dist/client/assets/{organization-choice-CWJmmXl2.js → organization-choice-BfiXSZG8.js} +1 -1
- package/dist/client/assets/{orgs-RqN1nvSn.js → orgs-B5gFQq1F.js} +1 -1
- package/dist/client/assets/{page-seo-form-Dqs31MJ3.js → page-seo-form-JFwiZIT0.js} +1 -1
- package/dist/client/assets/{pair-BArWn6jb.js → pair-BGz-xvRt.js} +1 -1
- package/dist/client/assets/{plan-ladder-CFynazEn.js → plan-ladder-B7BcLgoM.js} +1 -1
- package/dist/client/assets/{popover-DTEHxwlD.js → popover-SThjTKkw.js} +1 -1
- package/dist/client/assets/{post-calendar-BoU1ZOL5.js → post-calendar-D2ZuozAK.js} +1 -1
- package/dist/client/assets/{post-editor-DijifWaY.js → post-editor-C5YzMvlA.js} +1 -1
- package/dist/client/assets/{preview-content-4n74nMkm.js → preview-content-D4UMh6Mw.js} +1 -1
- package/dist/client/assets/{preview-dialog-BfJBjitf.js → preview-dialog-CNlppihz.js} +1 -1
- package/dist/client/assets/{preview-panel-Ckv4GBo6.js → preview-panel-D1c2tSFa.js} +1 -1
- package/dist/client/assets/{product-picker-dialog-DegN_8hj.js → product-picker-dialog-Bg_wRS27.js} +1 -1
- package/dist/client/assets/{profile-BNI-FeGN.js → profile-BgOQ9aAb.js} +1 -1
- package/dist/client/assets/{project-app-view-BJKmTYP6.js → project-app-view-4rqXbkzF.js} +1 -1
- package/dist/client/assets/{project-feed-CthJ5cL5.js → project-feed-B9W-92Dz.js} +1 -1
- package/dist/client/assets/{project-icon-CLft8LNy.js → project-icon-CIwLSfgH.js} +1 -1
- package/dist/client/assets/project-reports-RELkMoLG.js +1 -0
- package/dist/client/assets/project-tasks-DNjdwI1k.js +1 -0
- package/dist/client/assets/{projects-CmeO8oT0.js → projects-CTer1OmE.js} +1 -1
- package/dist/client/assets/{projects-empty-state-Cu-dnKwc.js → projects-empty-state-Bdm7hEu4.js} +1 -1
- package/dist/client/assets/{prompts-DpC1en1o.js → prompts-BVzWI9A2.js} +1 -1
- package/dist/client/assets/record-editor-CJO9Opqj.js +1 -0
- package/dist/client/assets/redirect-editor-CU0aYdIn.js +1 -0
- package/dist/client/assets/reports-BAz1tWvD.js +1 -0
- package/dist/client/assets/{reports-ikhGH7I0.js → reports-DD5cz_RA.js} +1 -1
- package/dist/client/assets/{reports-onboarding-cozwetlX.js → reports-onboarding-BsU9VGgp.js} +1 -1
- package/dist/client/assets/{reports-tab-B2H0nIWm.js → reports-tab-Csnk5c_k.js} +2 -2
- package/dist/client/assets/{repositories-6dyicYgL.js → repositories-CpvdMs7E.js} +1 -1
- package/dist/client/assets/{repository-binding-D4HjFqUu.js → repository-binding-BRtfh-B2.js} +1 -1
- package/dist/client/assets/{repository-import-picker-D32RWglo.js → repository-import-picker-BHmiPnBI.js} +1 -1
- package/dist/client/assets/{repository-picker-BS8S1A4D.js → repository-picker-DvE9EG8b.js} +1 -1
- package/dist/client/assets/{require-capability-QNDooqDp.js → require-capability-CPXwUBF0.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DV0YP59y.js → required-auth-layout-BndaENeT.js} +1 -1
- package/dist/client/assets/{reset-password-Bq3L1AQn.js → reset-password-BS360IO6.js} +1 -1
- package/dist/client/assets/{resizable-aYdS6ucz.js → resizable-DziF2F06.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-wP6kmFpV.js → resolve-tab-icon-DtE6yqkk.js} +1 -1
- package/dist/client/assets/{review-settings-VHbdYUwC.js → review-settings-C18UhQh3.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-ZhLX7YkH.js → rich-text-link-control-DzTRiuLD.js} +1 -1
- package/dist/client/assets/{roles-DydRZQvS.js → roles-D2MdIBra.js} +1 -1
- package/dist/client/assets/{route-C0Fgh6Gu.js → route-DBgBZrOb.js} +1 -1
- package/dist/client/assets/{route-Dp89Dh0m.js → route-Dixxnj33.js} +1 -1
- package/dist/client/assets/route-IAz4JGQ1.js +1 -0
- package/dist/client/assets/{runnable-block-editor-C8XWqppj.js → runnable-block-editor-CIGu38ky.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-DXFQTTJR.js → sandbox-lifecycle-context-CPCgb-_w.js} +1 -1
- package/dist/client/assets/{schema-6H-MEggI.js → schema-Du_TtumO.js} +1 -1
- package/dist/client/assets/{scroll-area-DsRpgTQ9.js → scroll-area-ms-tTzk1.js} +1 -1
- package/dist/client/assets/{search-input-BHgo2lGV.js → search-input-39xhlSYx.js} +1 -1
- package/dist/client/assets/{search-toggle-Dd-dflFz.js → search-toggle-CSuLKQ_Y.js} +1 -1
- package/dist/client/assets/{secret-picker-A2PMU4gO.js → secret-picker-CZCX6GO5.js} +1 -1
- package/dist/client/assets/{secrets-D9v5ukDd.js → secrets-CdI8V4V2.js} +1 -1
- package/dist/client/assets/{sections-editor-DWV3GkFv.js → sections-editor-DMeqz1oV.js} +1 -1
- package/dist/client/assets/{select-PUQ7cwv_.js → select-JLYSksJb.js} +1 -1
- package/dist/client/assets/{select-model-Benrx5ds.js → select-model-DKQUaD4e.js} +1 -1
- package/dist/client/assets/{seo-editor-DR6dMEeh.js → seo-editor-DsYvsfFz.js} +1 -1
- package/dist/client/assets/{separator-XSPXTmbD.js → separator-BmovFMP1.js} +1 -1
- package/dist/client/assets/{settings-tab-C9b_gZUS.js → settings-tab-txXR_zUN.js} +1 -1
- package/dist/client/assets/{sheet-CJnM8ySE.js → sheet-Jvnn431v.js} +1 -1
- package/dist/client/assets/{shell-layout-Dai0p-76.js → shell-layout-CJgfswow.js} +1 -1
- package/dist/client/assets/{skills-CpJ2yl_V.js → skills-DYFaqavF.js} +1 -1
- package/dist/client/assets/{slider-DOtGgAh5.js → slider-Bdt_gbvO.js} +1 -1
- package/dist/client/assets/{sortable.esm-igu-P_53.js → sortable.esm-Cj9zcuDX.js} +1 -1
- package/dist/client/assets/{sso-CpAigUKO.js → sso-BGnGFz0u.js} +1 -1
- package/dist/client/assets/{suggestion-kKk_djZn.js → suggestion-QLaiiEa4.js} +1 -1
- package/dist/client/assets/{switch-C4raYBaD.js → switch-Cr9OdHZR.js} +1 -1
- package/dist/client/assets/{symbol-DSyQEkVd.js → symbol-6XkBontZ.js} +1 -1
- package/dist/client/assets/{synced-repos-DhkSYvjz.js → synced-repos-nPJinKKB.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-DbT7H6I0.js → tab-icon-glyph-D-ycwvR2.js} +1 -1
- package/dist/client/assets/{table-ZhEY60SW.js → table-Cri4Xg02.js} +1 -1
- package/dist/client/assets/{tabs-sH7FADTj.js → tabs-D4q7kwbr.js} +1 -1
- package/dist/client/assets/{task-board-Cz8RAkVC.js → task-board-tSRaoKqm.js} +1 -1
- package/dist/client/assets/{task-route-dAZzlYHx.js → task-route-ZhU1PK_V.js} +1 -1
- package/dist/client/assets/{task-status-jzoHxLXE.js → task-status-BbeX0x8L.js} +1 -1
- package/dist/client/assets/taskboard-analytics-BBPxyOfm.js +1 -0
- package/dist/client/assets/tasks-BJbNG40I.js +1 -0
- package/dist/client/assets/{tasks-spnz6wGT.js → tasks-Byrbraao.js} +1 -1
- package/dist/client/assets/{textarea-Dh1uG6Oe.js → textarea-Dl_dkdBZ.js} +1 -1
- package/dist/client/assets/{thread-analytics-D7o3M7SE.js → thread-analytics-CXh2lNz9.js} +1 -1
- package/dist/client/assets/{thread-button-CVcG35Zp.js → thread-button-DXyx_ks_.js} +1 -1
- package/dist/client/assets/{thread-intent-DHio6v3T.js → thread-intent-D_WXT-Pe.js} +1 -1
- package/dist/client/assets/{thread-route-P2oNmklm.js → thread-route-CUc8muIW.js} +1 -1
- package/dist/client/assets/{thread-route-JC5U7UAP.js → thread-route-VI83l3tU.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-Cb8plLTN.js → thread-sheet-body-jfLPV_BJ.js} +1 -1
- package/dist/client/assets/{time-range-picker-BXMVgeAS.js → time-range-picker-D6_PeFy6.js} +1 -1
- package/dist/client/assets/{toggle-group-BbN_e8eb.js → toggle-group-CMzFoK81.js} +1 -1
- package/dist/client/assets/{tool-namespace-CTfr8zMP.js → tool-namespace-CBl6r41H.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-NKHQPydk.js → toolbar-icon-button-4Lwb9IsI.js} +1 -1
- package/dist/client/assets/{tooltip-Ckfi6awk.js → tooltip-BwGAQHGK.js} +1 -1
- package/dist/client/assets/{tooltipContext-DNPFPGFA.js → tooltipContext-Dg_1ywjo.js} +1 -1
- package/dist/client/assets/{track-CteSCTlH.js → track-DRV0x9iD.js} +1 -1
- package/dist/client/assets/{types-BwEFq7Yg.js → types-CyBvFRGE.js} +1 -1
- package/dist/client/assets/{url-slug-xcarTcti.js → url-slug-DGtQ7HWv.js} +1 -1
- package/dist/client/assets/{usage-stats-Dpg2tIh9.js → usage-stats-BzAa1e6J.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BdUdNx5z.js → use-ai-providers-Dzg7qOBB.js} +1 -1
- package/dist/client/assets/{use-automations-J4kPNxTM.js → use-automations-BmndfAFz.js} +1 -1
- package/dist/client/assets/{use-autosave-vvOEWidH.js → use-autosave-dIExvC1c.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-ooCEsZNA.js → use-chat-layout-state-Cu5VHCdn.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-Cs9RLkky.js → use-chat-navigation-Dq4AID7c.js} +1 -1
- package/dist/client/assets/{use-clock-tick-CXFIi4J4.js → use-clock-tick-CVfWS6yM.js} +1 -1
- package/dist/client/assets/{use-connect-companion-DyLCP6sw.js → use-connect-companion-B8sGfDXf.js} +1 -1
- package/dist/client/assets/{use-connection-BWEGKt3t.js → use-connection-BOUIPY6t.js} +1 -1
- package/dist/client/assets/{use-copy-B3Z2bU9n.js → use-copy-Dvf6c8uG.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-CeEgD0KJ.js → use-create-virtual-mcp-DSn6yk0N.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-BwHZTp1d.js → use-date-fns-locale-CgGcC6Az.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-B-RYAOgV.js → use-debounced-autosave-CE2-QUqa.js} +1 -1
- package/dist/client/assets/{use-debounced-value-BPpgN-4m.js → use-debounced-value-BzsL07qR.js} +1 -1
- package/dist/client/assets/{use-deco-credits-DO7YD9IY.js → use-deco-credits-DkF5SY_h.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-DRwe4roK.js → use-decopilot-events-Blhc-ndU.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CP3eQN94.js → use-delete-connection-CYF8pz_F.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-xj8zFarX.js → use-deployment-admin-CLpFZG4D.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-_cAiUEgx.js → use-ensure-project-folder-BOYyvWFQ.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-B4iSUSL0.js → use-fast-preview-draft-url-CIyiUthR.js} +1 -1
- package/dist/client/assets/{use-file-configs-CayvqTYD.js → use-file-configs-96Lf4lzD.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Bs5bj_x4.js → use-infinite-scroll-Dm8NTnoo.js} +1 -1
- package/dist/client/assets/{use-join-requests-D0a7nWGC.js → use-join-requests-Cknb7py1.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BV3U-pk7.js → use-main-panel-tabs-BgFjt2aK.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-CGqJtK6Y.js → use-mcp-auth-status-Y0skDQ3v.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BpCQxGRA.js → use-mcp-client-CNAsaI5e.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-B6BIbud4.js → use-mcp-prompts-CmgQ14fY.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-BBrUvrr2.js → use-mcp-tools-UtYane4F.js} +1 -1
- package/dist/client/assets/{use-members-BXZtT1Ge.js → use-members-BgejpANd.js} +1 -1
- package/dist/client/assets/{use-mobile-cnelp-tf.js → use-mobile-DnCFkPJO.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-Yt28jbt_.js → use-navigate-to-agent-B0zcOk2z.js} +1 -1
- package/dist/client/assets/use-new-blocks-editor-67BT0BD6.js +1 -0
- package/dist/client/assets/{use-open-billing-url-Ch7hXR43.js → use-open-billing-url-CKWus2xS.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DQ_TpKIV.js → use-org-auth-client-CD-nyV-c.js} +1 -1
- package/dist/client/assets/{use-org-fs-Dd1pklx8.js → use-org-fs-DLNWZCr_.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-a3Bo4Nwx.js → use-org-repo-syncs-DJwlGK__.js} +1 -1
- package/dist/client/assets/{use-org-sso-AbZWzz8J.js → use-org-sso-CRxV8p8t.js} +1 -1
- package/dist/client/assets/{use-organization-roles-BbdurYTP.js → use-organization-roles-BfBFRRgX.js} +1 -1
- package/dist/client/assets/{use-organization-settings-C9ru61wI.js → use-organization-settings-BNn0Gqay.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DlGjk1uT.js → use-panel-navigate-DwB1wmJM.js} +1 -1
- package/dist/client/assets/{use-project-scope-mUU3XQll.js → use-project-scope-4_AOQZp8.js} +1 -1
- package/dist/client/assets/{use-releases-Rs4UUF42.js → use-releases-Cx-VnR2N.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-CmuuQULK.js → use-reports-diagnostic-CsqGKGh6.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-B_Tbe66F.js → use-sandbox-events-CSD-klwz.js} +1 -1
- package/dist/client/assets/{use-secrets-zTdjn1K_.js → use-secrets-DXbIcS8Z.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-CxaSIwgr.js → use-section-preview-base-BvT5dwZ-.js} +1 -1
- package/dist/client/assets/{use-tags-DcdzwPHe.js → use-tags-jhKYOldy.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-Cq5LBBkL.js → use-task-board-analytics-3nTgrvPC.js} +1 -1
- package/dist/client/assets/{use-task-board-events-DV0GzDSl.js → use-task-board-events-CqrXYzkU.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-DWyfXvRg.js → use-task-board-item-prs-Dd1q_l-B.js} +1 -1
- package/dist/client/assets/{use-task-board-items-D-sN0nLG.js → use-task-board-items-C75zoD0D.js} +1 -1
- package/dist/client/assets/{use-task-metadata-DH7eHsp7.js → use-task-metadata-DdlcIqCj.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-BcaFH3FR.js → use-thread-analytics-DCMrsmOZ.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-BVWpj6Pt.js → use-thread-outputs-CvH5Vmni.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Dv-XATwg.js +1 -0
- package/dist/client/assets/{useQueries-DAsYe7-V.js → useQueries-Tky8WmoX.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-C_E-uilI.js +1 -0
- package/dist/client/assets/{users-BDKuEOgV.js → users-CVCcRfbM.js} +1 -1
- package/dist/client/assets/{utils-B26RJwPU.js → utils-BOsIAs_e.js} +1 -1
- package/dist/client/assets/{variant-calendar-B5hD6nTB.js → variant-calendar-Dk9EVqWx.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-CQDkjZB9.js → variant-matcher-override-BpPqjUGk.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-DgaXBu8I.js → view-mode-toggle-Dl2euStK.js} +1 -1
- package/dist/client/assets/{virtual-mcp-CPDSnrGy.js → virtual-mcp-5EzMLO01.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-BFcKHKod.js → watch-sse-pool-CMD7Z7qL.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +237 -230
- package/dist/server/server.js +585 -585
- package/package.json +1 -1
- package/dist/client/assets/agent-app-D15rL7SC.js +0 -1
- package/dist/client/assets/agent-deck-YSht4fJH.js +0 -1
- package/dist/client/assets/agent-library-De8yrcgK.js +0 -1
- package/dist/client/assets/agent-library-file-DSYip22s.js +0 -1
- package/dist/client/assets/agent-settings-DYAVsnNu.js +0 -1
- package/dist/client/assets/agent-site-editor-code-CPqEQaz5.js +0 -2
- package/dist/client/assets/agent-view-6MnvsGap.js +0 -1
- package/dist/client/assets/api-keys-CIOehITH.js +0 -1
- package/dist/client/assets/app-editor-jDyn4P31.js +0 -1
- package/dist/client/assets/flat-project-CcomIoqo.js +0 -1
- package/dist/client/assets/library-DoTX8yJa.js +0 -1
- package/dist/client/assets/project-reports-BPIYWSN5.js +0 -1
- package/dist/client/assets/project-tasks-D89Pcpsx.js +0 -1
- package/dist/client/assets/record-editor-rZo87T7s.js +0 -1
- package/dist/client/assets/redirect-editor-BebKUMtd.js +0 -1
- package/dist/client/assets/reports-DbXtySYc.js +0 -1
- package/dist/client/assets/route-B-Xt506d.js +0 -1
- package/dist/client/assets/taskboard-analytics-D4etS4F2.js +0 -1
- package/dist/client/assets/tasks-cUD-vzLP.js +0 -1
- package/dist/client/assets/use-new-blocks-editor-DleK5Imc.js +0 -1
- package/dist/client/assets/useInfiniteQuery-DTGbHHjG.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CGs3Z4Zs.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var Rz=Object.defineProperty;var Bz=(_)=>_;function Gz(_,x){this[_]=Bz.bind(null,x)}var C=(_,x)=>{for(var u in x)Rz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Gz.bind(x,u)})};import{Migrator as Mz,sql as o}from"kysely";var Ex={};C(Ex,{up:()=>Oz,down:()=>Sz});import{sql as nT}from"kysely";async function Oz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",nT`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",nT`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function Sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var $x={};C($x,{up:()=>fz,down:()=>Az});import{sql as a}from"kysely";async function fz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
|
|
3
3
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
4
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
5
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,20 +14,20 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
14
14
|
)`.execute(_),await a`DELETE FROM connections
|
|
15
15
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
16
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
17
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
17
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function Az(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Ux={};C(Ux,{up:()=>Iz,down:()=>yz});import{sql as vT}from"kysely";async function Iz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await vT`
|
|
18
18
|
select organization_id, metadata
|
|
19
19
|
from connections
|
|
20
20
|
where connection_type = 'VIRTUAL'
|
|
21
21
|
and metadata like '%submoduleCredentials%'
|
|
22
22
|
order by updated_at asc
|
|
23
|
-
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await
|
|
23
|
+
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(T))continue;for(let m of T){let z=m?.host,E=m?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,T]of u){let m=JSON.stringify([...T].map(([z,E])=>({host:z,secretId:E})));await vT`
|
|
24
24
|
insert into organization_settings
|
|
25
25
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
26
|
values (${K}, ${m}, ${N}, ${N})
|
|
27
27
|
on conflict ("organizationId") do update
|
|
28
28
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
29
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
30
|
+
`.execute(_)}}async function yz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Jx={};C(Jx,{up:()=>Vz,down:()=>wz});async function Vz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function wz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Qx={};C(Qx,{up:()=>kz,down:()=>nz});import{sql as Px}from"kysely";async function kz(_){await Px`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Px`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Px`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function nz(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Zx={};C(Zx,{up:()=>gz,down:()=>qz});import{sql as G}from"kysely";var vz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},pz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function pT(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function gT(_,x){for(let[K,T]of[[G`organization_id || '_commerce-discovery'`,vz],[G`'commerce-discovery_' || organization_id`,pz]])for(let m of["title","description"]){let{from:z,to:E}=pT(T[m],x);await G`
|
|
31
31
|
UPDATE connections
|
|
32
32
|
SET ${G.ref(m)} = ${E}
|
|
33
33
|
WHERE id = ${K}
|
|
@@ -41,7 +41,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
41
41
|
RETURN NULL;
|
|
42
42
|
END;
|
|
43
43
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:N}=
|
|
44
|
+
`.execute(_);let{from:u,to:N}=pT(Xx.label,x);await G`
|
|
45
45
|
WITH agents AS (
|
|
46
46
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
47
|
FROM connections
|
|
@@ -56,7 +56,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
56
56
|
(
|
|
57
57
|
SELECT jsonb_agg(
|
|
58
58
|
CASE
|
|
59
|
-
WHEN v ->> 'toolName' = ${
|
|
59
|
+
WHEN v ->> 'toolName' = ${Xx.toolName}
|
|
60
60
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
61
61
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
62
|
ELSE v
|
|
@@ -72,7 +72,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
72
72
|
AND EXISTS (
|
|
73
73
|
SELECT 1
|
|
74
74
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
-
WHERE v ->> 'toolName' = ${
|
|
75
|
+
WHERE v ->> 'toolName' = ${Xx.toolName}
|
|
76
76
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
77
77
|
)
|
|
78
78
|
)
|
|
@@ -80,38 +80,38 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
80
80
|
SET metadata = r.m::text
|
|
81
81
|
FROM relabeled r
|
|
82
82
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
83
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function gz(_){await gT(_,"up")}async function qz(_){await gT(_,"down")}var jx={};C(jx,{up:()=>cz,down:()=>hz,ACTIONS:()=>Wx});import{sql as T_}from"kysely";var Wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],iz=Wx.filter((_)=>_!=="finding_resolved");async function cz(_){await qT(_,Wx)}async function hz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await qT(_,iz)}async function qT(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Lx={};C(Lx,{up:()=>tz,down:()=>oz});import{sql as B_}from"kysely";async function tz(_){await B_`
|
|
84
84
|
ALTER TABLE org_jira_column_automations
|
|
85
85
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
86
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
87
87
|
CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
|
|
88
88
|
ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
|
|
89
89
|
ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
|
|
90
|
-
`.execute(_),await
|
|
90
|
+
`.execute(_),await B_`
|
|
91
91
|
ALTER TABLE org_jira_column_automations
|
|
92
92
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
93
93
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
94
|
-
`.execute(_)}async function
|
|
94
|
+
`.execute(_)}async function oz(_){await B_`
|
|
95
95
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
|
-
`.execute(_),await
|
|
96
|
+
`.execute(_),await B_`
|
|
97
97
|
ALTER TABLE org_jira_column_automations
|
|
98
98
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
99
99
|
ADD PRIMARY KEY (organization_id, jira_status),
|
|
100
100
|
DROP COLUMN from_key,
|
|
101
101
|
DROP COLUMN from_statuses,
|
|
102
102
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
103
|
+
`.execute(_)}var Fx={};C(Fx,{up:()=>az,down:()=>rz});import{sql as iT}from"kysely";async function az(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function rz(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Yx={};C(Yx,{up:()=>lz,down:()=>ez});async function lz(){}async function ez(){}var Hx={};C(Hx,{up:()=>dz,down:()=>bz});import{sql as Dx}from"kysely";async function dz(_){await Dx`
|
|
104
104
|
ALTER TABLE task_board_prompts
|
|
105
105
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
106
|
-
`.execute(_)}async function
|
|
106
|
+
`.execute(_)}async function bz(_){await Dx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Dx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Rx={};C(Rx,{up:()=>sz,down:()=>_E});import{sql as Mx}from"kysely";async function sz(_){await Mx`
|
|
107
107
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
108
|
+
`.execute(_),await Mx`
|
|
109
109
|
DELETE FROM connection_aggregations
|
|
110
110
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
111
|
+
`.execute(_),await Mx`
|
|
112
112
|
DELETE FROM connections
|
|
113
113
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
114
|
+
`.execute(_)}async function _E(){}var Bx={};C(Bx,{up:()=>xE,down:()=>uE});import{sql as cT}from"kysely";async function xE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(cT`audience in ('human', 'internal')`)).execute(),await cT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function uE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Gx={};C(Gx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await CE`
|
|
115
115
|
UPDATE org_fs_entry AS d
|
|
116
116
|
SET deleted_at = now(),
|
|
117
117
|
updated_at = now(),
|
|
@@ -130,7 +130,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
130
130
|
AND c.parent = d.path
|
|
131
131
|
AND c.deleted_at IS NULL
|
|
132
132
|
)
|
|
133
|
-
`.execute(_)}async function
|
|
133
|
+
`.execute(_)}async function NE(){}var Sx={};C(Sx,{up:()=>mE,down:()=>zE,ACTIONS:()=>Ox});import{sql as F}from"kysely";var Ox=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],TE=Ox.filter((_)=>_!=="sprint_changed");async function mE(_){await F`
|
|
134
134
|
CREATE TABLE task_board_sprints (
|
|
135
135
|
id text PRIMARY KEY,
|
|
136
136
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -156,12 +156,12 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
156
156
|
CREATE INDEX idx_task_board_items_sprint
|
|
157
157
|
ON task_board_items (organization_id, sprint_id)
|
|
158
158
|
WHERE sprint_id IS NOT NULL
|
|
159
|
-
`.execute(_),await
|
|
159
|
+
`.execute(_),await hT(_,Ox)}async function zE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await hT(_,TE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function hT(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var fx={};C(fx,{up:()=>$E,planOrgSiteProjectLinks:()=>aT,down:()=>UE,applyOrgSiteProjectLinks:()=>rT});import{sql as P}from"kysely";var EE="migration-237",tT=1000;async function oT(_){return(await P`
|
|
160
160
|
SELECT conname FROM pg_constraint
|
|
161
161
|
WHERE conrelid = 'org_sites'::regclass
|
|
162
162
|
AND confrelid = 'organization'::regclass
|
|
163
163
|
AND contype = 'f'
|
|
164
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
164
|
+
`.execute(_)).rows[0]?.conname??null}async function aT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
|
|
165
165
|
SELECT slug, organization_id FROM org_sites
|
|
166
166
|
WHERE organization_id IS NOT NULL
|
|
167
167
|
ORDER BY organization_id, slug
|
|
@@ -172,17 +172,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
172
172
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
173
173
|
)
|
|
174
174
|
ORDER BY organization_id, id
|
|
175
|
-
`.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function
|
|
175
|
+
`.execute(_),K=new Map;for(let T of N.rows){if(!T.metadata)continue;let m;try{let $=JSON.parse(T.metadata);if($&&typeof $==="object")m=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof m!=="string"||!m)continue;let z=`${T.organization_id}\x00${m}`,E=K.get(z)??[];E.push(T.id),K.set(z,E)}for(let{slug:T,organization_id:m}of u.rows){let z=K.get(`${m}\x00${T}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:T,projectIds:z});else x.links.push({slug:T,projectId:z[0]})}return x}async function rT(_,x){let u=0;for(let N=0;N<x.length;N+=tT){let K=P.join(x.slice(N,N+tT).map((m)=>P`(${m.slug}::text, ${m.projectId}::text)`)),T=await P`
|
|
176
176
|
UPDATE org_sites o
|
|
177
177
|
SET project_id = v.pid,
|
|
178
178
|
linked_at = now(),
|
|
179
|
-
updated_by = ${
|
|
179
|
+
updated_by = ${EE},
|
|
180
180
|
updated_at = now()
|
|
181
181
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
182
182
|
WHERE o.slug = v.slug
|
|
183
183
|
AND o.project_id IS NULL
|
|
184
184
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
185
|
-
`.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function
|
|
185
|
+
`.execute(_);u+=Number(T.numAffectedRows??0n)}return u}async function $E(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await aT(_);await P`
|
|
186
186
|
ALTER TABLE org_sites
|
|
187
187
|
ADD COLUMN project_id text NULL
|
|
188
188
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
@@ -190,7 +190,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
190
190
|
`.execute(_),await P`
|
|
191
191
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
192
192
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
193
|
-
`.execute(_);let u=await
|
|
193
|
+
`.execute(_);let u=await oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
194
194
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
195
195
|
`.execute(_),await P`
|
|
196
196
|
ALTER TABLE org_sites
|
|
@@ -199,12 +199,12 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
199
199
|
ON DELETE SET NULL NOT VALID
|
|
200
200
|
`.execute(_),await P`
|
|
201
201
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
202
|
-
`.execute(_);let N=await
|
|
202
|
+
`.execute(_);let N=await rT(_,x.links),K=await P`
|
|
203
203
|
UPDATE org_sites SET linked_at = created_at
|
|
204
204
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
205
|
-
`.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function
|
|
205
|
+
`.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:T,projectIds:m}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${T}": ${m.join(", ")}`)}async function UE(_){if((await P`
|
|
206
206
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
207
|
-
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await
|
|
207
|
+
`.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await oT(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
|
|
208
208
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
209
209
|
`.execute(_),await P`
|
|
210
210
|
ALTER TABLE org_sites
|
|
@@ -213,9 +213,9 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
213
213
|
ON DELETE CASCADE
|
|
214
214
|
`.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
|
|
215
215
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
216
|
-
`.execute(_)}var
|
|
216
|
+
`.execute(_)}var Ax={};C(Ax,{up:()=>JE,moveRules:()=>Y,down:()=>PE});import{sql as c}from"kysely";async function JE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
|
|
217
217
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
|
-
`.execute(_),await
|
|
218
|
+
`.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
|
|
219
219
|
WITH moved AS (
|
|
220
220
|
UPDATE task_board_items AS i
|
|
221
221
|
SET status = CASE
|
|
@@ -241,7 +241,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
241
241
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
242
242
|
now()
|
|
243
243
|
FROM moved
|
|
244
|
-
`.execute(_)}async function
|
|
244
|
+
`.execute(_)}async function PE(){}async function Y(_,x,u,N,K){await c`
|
|
245
245
|
DELETE FROM ${c.table(x)} AS src
|
|
246
246
|
WHERE src.column_key = ${N}
|
|
247
247
|
AND EXISTS (
|
|
@@ -255,7 +255,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
255
255
|
id = ${u} || organization_id || '_' || ${K},
|
|
256
256
|
updated_at = now()
|
|
257
257
|
WHERE column_key = ${N}
|
|
258
|
-
`.execute(_)}var
|
|
258
|
+
`.execute(_)}var Ix={};C(Ix,{up:()=>XE,down:()=>ZE});import{sql as QE}from"kysely";async function XE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await QE`
|
|
259
259
|
WITH moved AS (
|
|
260
260
|
UPDATE task_board_items AS i
|
|
261
261
|
SET status = CASE prev.status
|
|
@@ -279,7 +279,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
279
279
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
280
280
|
now()
|
|
281
281
|
FROM moved
|
|
282
|
-
`.execute(_)}async function
|
|
282
|
+
`.execute(_)}async function ZE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as WE}from"kysely";async function jE(_){await WE`
|
|
283
283
|
WITH restored AS (
|
|
284
284
|
UPDATE task_board_items AS i
|
|
285
285
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,7 +306,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
306
306
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
307
307
|
now()
|
|
308
308
|
FROM restored
|
|
309
|
-
`.execute(_)}async function
|
|
309
|
+
`.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE});import{sql as L}from"kysely";async function FE(_){await L`
|
|
310
310
|
ALTER TABLE automation_triggers
|
|
311
311
|
ADD COLUMN column_key text,
|
|
312
312
|
ADD COLUMN from_kind text,
|
|
@@ -332,7 +332,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
332
332
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
333
333
|
ON task_board_activity (occurred_at)
|
|
334
334
|
WHERE action = 'status_changed'
|
|
335
|
-
`.execute(_)}async function
|
|
335
|
+
`.execute(_)}async function YE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
336
336
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
337
337
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
338
338
|
`.execute(_),await L`
|
|
@@ -340,19 +340,19 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
340
340
|
DROP COLUMN IF EXISTS column_key,
|
|
341
341
|
DROP COLUMN IF EXISTS from_kind,
|
|
342
342
|
DROP COLUMN IF EXISTS from_statuses
|
|
343
|
-
`.execute(_)}var
|
|
343
|
+
`.execute(_)}var wx={};C(wx,{up:()=>RE,down:()=>BE,backfillUrlSlugs:()=>G_});import{sql as D}from"kysely";var eT=64,DE=new Set(["new","edit","settings","apps","projects","connections"]);function HE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ME(_,x){let u=HE(_??"").slice(0,eT).replace(/-+$/,"");return u.length>=2&&!DE.has(u)?u:x}function lT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,eT-u.length).replace(/-+$/,"")}${u}`}async function G_(_){let{rows:x}=await D`
|
|
344
344
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
345
|
FROM connections
|
|
346
346
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.execute(_),{rows:u}=await
|
|
347
|
+
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(m)=>{let z=N.get(m);if(!z)N.set(m,z=new Set);return z};for(let m of x)if(m.url_slug)K(m.organization_id).add(m.url_slug);for(let m of u)K(m.organization_id).add(m.slug);let T=[];for(let m of x){if(m.url_slug)continue;let z=K(m.organization_id),E=ME(m.title,m.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(lT(E,$)))$++;let J=lT(E,$);z.add(J),T.push({id:m.id,slug:J})}for(let m=0;m<T.length;m+=1000){let z=T.slice(m,m+1000);await D`
|
|
348
348
|
UPDATE connections c
|
|
349
349
|
SET url_slug = v.slug
|
|
350
350
|
FROM unnest(
|
|
351
|
-
${
|
|
352
|
-
${
|
|
351
|
+
${D.val(z.map((E)=>E.id))}::text[],
|
|
352
|
+
${D.val(z.map((E)=>E.slug))}::text[]
|
|
353
353
|
) AS v(id, slug)
|
|
354
354
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
355
|
+
`.execute(_)}}async function RE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
356
356
|
CREATE TABLE connection_slug_aliases (
|
|
357
357
|
organization_id text NOT NULL,
|
|
358
358
|
slug text NOT NULL,
|
|
@@ -360,24 +360,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
360
360
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
361
361
|
PRIMARY KEY (organization_id, slug)
|
|
362
362
|
)
|
|
363
|
-
`.execute(_),await
|
|
363
|
+
`.execute(_),await D`
|
|
364
364
|
CREATE INDEX idx_connection_slug_aliases_connection
|
|
365
365
|
ON connection_slug_aliases (connection_id)
|
|
366
|
-
`.execute(_),await
|
|
366
|
+
`.execute(_),await G_(_),await D`
|
|
367
367
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
368
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
369
|
+
`.execute(_)}async function BE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var kx={};C(kx,{up:()=>GE,down:()=>OE});async function GE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function OE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var nx={};C(nx,{up:()=>SE,down:()=>fE});async function SE(_){await G_(_)}async function fE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as O_}from"kysely";async function AE(_){await O_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await O_`
|
|
370
370
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
371
|
ON automations (organization_id, system_key)
|
|
372
372
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function IE(_){await O_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await O_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as m_}from"kysely";async function yE(_){await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
|
|
374
374
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
375
375
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
376
376
|
'board_pr_ready'))
|
|
377
|
-
`.execute(_)}async function
|
|
377
|
+
`.execute(_)}async function VE(_){await m_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await m_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await m_`
|
|
378
378
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
379
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
380
|
-
`.execute(_)}var
|
|
380
|
+
`.execute(_)}var gx={};C(gx,{up:()=>wE,down:()=>vE});import{sql as H}from"kysely";async function wE(_){let{rows:x}=await H`
|
|
381
381
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
382
382
|
WHERE conname = 'chk_trigger_type'
|
|
383
383
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -404,8 +404,8 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
404
404
|
INSERT INTO automations
|
|
405
405
|
(id, organization_id, name, active, created_by, messages, models,
|
|
406
406
|
virtual_mcp_id)
|
|
407
|
-
VALUES (${m}, ${K.organization_id}, ${
|
|
408
|
-
${K.created_by}, ${JSON.stringify(
|
|
407
|
+
VALUES (${m}, ${K.organization_id}, ${kE(K)}, true,
|
|
408
|
+
${K.created_by}, ${JSON.stringify(nE(K.prompt))},
|
|
409
409
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
410
410
|
ON CONFLICT (id) DO NOTHING
|
|
411
411
|
`.execute(_),await H`
|
|
@@ -414,11 +414,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
414
414
|
VALUES (${`trg_${m}`}, ${m}, 'jira_transition', ${K.jira_status},
|
|
415
415
|
${K.from_kind}, ${K.from_statuses})
|
|
416
416
|
ON CONFLICT (id) DO NOTHING
|
|
417
|
-
`.execute(_)}}function
|
|
418
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
417
|
+
`.execute(_)}}function kE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function nE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
418
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function vE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
419
419
|
ALTER TABLE automation_triggers
|
|
420
420
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
421
|
-
`.execute(_)}var
|
|
421
|
+
`.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as z_}from"kysely";async function pE(_){await z_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await z_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function gE(_){await z_`
|
|
422
422
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
423
|
id text PRIMARY KEY,
|
|
424
424
|
organization_id text NOT NULL,
|
|
@@ -427,10 +427,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
427
427
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
428
428
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
429
429
|
)
|
|
430
|
-
`.execute(_),await
|
|
430
|
+
`.execute(_),await z_`
|
|
431
431
|
CREATE UNIQUE INDEX IF NOT EXISTS task_board_column_automations_org_column_uniq
|
|
432
432
|
ON task_board_column_automations (organization_id, column_key)
|
|
433
|
-
`.execute(_),await
|
|
433
|
+
`.execute(_),await z_`
|
|
434
434
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
435
435
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
436
436
|
jira_status text NOT NULL,
|
|
@@ -445,23 +445,30 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
445
445
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
446
446
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
447
447
|
)
|
|
448
|
-
`.execute(_)}var
|
|
448
|
+
`.execute(_)}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as S_}from"kysely";async function qE(_){await S_`
|
|
449
449
|
ALTER TABLE task_board_items
|
|
450
450
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
451
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
452
|
-
`.execute(_),await
|
|
452
|
+
`.execute(_),await S_`
|
|
453
453
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
454
454
|
ON task_board_items (virtual_mcp_id)
|
|
455
455
|
WHERE virtual_mcp_id IS NOT NULL
|
|
456
|
-
`.execute(_)}async function
|
|
456
|
+
`.execute(_)}async function iE(_){await S_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await S_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var cx={};C(cx,{up:()=>cE,down:()=>hE});async function cE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function hE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var hx={};C(hx,{up:()=>tE,down:()=>oE});async function tE(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function oE(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var tx={};C(tx,{up:()=>aE,down:()=>rE});import{sql as r}from"kysely";var f_=["linked_chat_run"];async function dT(_){let{rows:x}=await r`
|
|
457
457
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
458
458
|
WHERE conname = 'chk_trigger_type'
|
|
459
459
|
AND conrelid = 'automation_triggers'::regclass
|
|
460
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
460
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function bT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
461
461
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
462
462
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
463
|
-
`.execute(_)}async function
|
|
464
|
-
|
|
463
|
+
`.execute(_)}async function aE(_){let x=await dT(_);if(f_.every((u)=>x.has(u)))return;for(let u of f_)x.add(u);await bT(_,x)}async function rE(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(f_)})`.execute(_);let x=await dT(_);for(let u of f_)x.delete(u);await bT(_,x)}var ox={};C(ox,{up:()=>lE,down:()=>eE});import{sql as l}from"kysely";var A_=["board_pr_merged","chat_pr_opened"];async function sT(_){let{rows:x}=await l`
|
|
464
|
+
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
465
|
+
WHERE conname = 'chk_trigger_type'
|
|
466
|
+
AND conrelid = 'automation_triggers'::regclass
|
|
467
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function _m(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
468
|
+
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
469
|
+
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
470
|
+
`.execute(_)}async function lE(_){let x=await sT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await _m(_,x)}async function eE(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(A_)})`.execute(_);let x=await sT(_);for(let u of A_)x.delete(u);await _m(_,x)}var ax={};C(ax,{up:()=>bE,down:()=>sE});import{sql as dE}from"kysely";async function bE(_){await dE`ALTER TABLE organization_settings
|
|
471
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function sE(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});import{sql as xm}from"kysely";async function _0(_){await xm`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function x0(_){await xm`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as O}from"kysely";async function u0(_){await O`
|
|
465
472
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
466
473
|
RETURNS jsonb AS $fn$
|
|
467
474
|
BEGIN
|
|
@@ -535,7 +542,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
535
542
|
|| '/' ||
|
|
536
543
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
537
544
|
) = lower(p.path)
|
|
538
|
-
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function
|
|
545
|
+
`.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function C0(_){await O`
|
|
539
546
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
540
547
|
RETURNS jsonb AS $fn$
|
|
541
548
|
BEGIN
|
|
@@ -562,17 +569,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
562
569
|
)::text
|
|
563
570
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
564
571
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
565
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
572
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var dx={};C(dx,{up:()=>K0,down:()=>N0});import{sql as ex}from"kysely";async function K0(_){await ex`ALTER TABLE git_provider_accounts
|
|
566
573
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
567
574
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
568
575
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
569
576
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
570
577
|
CHECK (auth_kind <> 'github_cli' OR
|
|
571
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
578
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function N0(_){await ex`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await ex`ALTER TABLE git_provider_accounts
|
|
572
579
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
573
580
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
574
581
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
575
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
582
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var bx={};C(bx,{up:()=>T0,down:()=>m0});import{sql as um}from"kysely";async function T0(_){await um`
|
|
576
583
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
577
584
|
SELECT
|
|
578
585
|
'org_user_fs',
|
|
@@ -586,9 +593,9 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
586
593
|
END,
|
|
587
594
|
now()
|
|
588
595
|
ON CONFLICT (id) DO NOTHING
|
|
589
|
-
`.execute(_)}async function
|
|
596
|
+
`.execute(_)}async function m0(_){await um`
|
|
590
597
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
591
|
-
`.execute(_)}var
|
|
598
|
+
`.execute(_)}var sx={};C(sx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function E0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var _u={};C(_u,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as E_}from"kysely";var J0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function Cm(_,x){for(let{table:u,column:N}of J0){let K=`${u}_${N}_check`,T=x.map((m)=>`'${m}'`).join(", ");await E_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await E_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${T}))`).execute(_)}}async function P0(_){await Cm(_,["github","gitlab","bitbucket"])}async function Q0(_){await E_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await E_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await Cm(_,["github","gitlab"])}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as I_}from"kysely";async function X0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(I_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function Z0(_){await _.schema.dropTable("experiments").execute()}var Cu={};C(Cu,{up:()=>j0,down:()=>L0});import{sql as W0}from"kysely";async function j0(_){await W0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function L0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Nu={};C(Nu,{up:()=>Y0,down:()=>D0,ACTIONS:()=>Ku});import{sql as $_}from"kysely";var Ku=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],F0=Ku.filter((_)=>_!=="duplicate_reported");async function Y0(_){await Km(_,Ku)}async function D0(_){await $_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await Km(_,F0)}async function Km(_,x){await $_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await $_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${$_.join(x.map((u)=>$_.lit(u)))}))`.execute(_)}var Tu={};C(Tu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function M0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var zu={};C(zu,{up:()=>O0,down:()=>S0});import{sql as G0}from"kysely";async function O0(_){await G0`
|
|
592
599
|
CREATE TABLE github_connect_flows (
|
|
593
600
|
id text PRIMARY KEY,
|
|
594
601
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -598,7 +605,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
598
605
|
);
|
|
599
606
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
600
607
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
601
|
-
`.execute(_)}async function
|
|
608
|
+
`.execute(_)}async function S0(_){await _.schema.dropTable("github_connect_flows").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0});async function f0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function A0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var $u={};C($u,{up:()=>I0,down:()=>y0});import{sql as y_}from"kysely";async function I0(_){await y_`
|
|
602
609
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
603
610
|
DECLARE
|
|
604
611
|
metadata_json jsonb;
|
|
@@ -649,24 +656,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
649
656
|
AFTER INSERT OR UPDATE OF metadata ON connections
|
|
650
657
|
FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
|
|
651
658
|
UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
|
|
652
|
-
`.execute(_),await
|
|
659
|
+
`.execute(_),await y_`
|
|
653
660
|
UPDATE org_repo_sync s SET repository_id = r.id
|
|
654
661
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
655
662
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
656
663
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
657
|
-
`.execute(_)}async function B0(_){await A_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await A_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var zu={};C(zu,{up:()=>G0,down:()=>O0});import{sql as V}from"kysely";async function G0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function O0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Eu={};C(Eu,{up:()=>S0,down:()=>f0});import{sql as _m}from"kysely";async function S0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(_m`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(_m`CURRENT_TIMESTAMP`)).execute()}async function f0(_){await _.schema.dropTable("organization_settings").execute()}var $u={};C($u,{up:()=>A0,down:()=>I0});async function A0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function I0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Uu={};C(Uu,{up:()=>y0,down:()=>V0});async function y0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function V0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Ju={};C(Ju,{up:()=>w0,down:()=>k0});async function w0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function k0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});import{sql as n0}from"kysely";async function v0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",n0`text`).execute()}async function p0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function q0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});import{sql as $_}from"kysely";async function i0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function c0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function o0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(h0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});import{sql as I_}from"kysely";async function a0(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(I_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(I_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(I_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await I_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function r0(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function e0(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});import{sql as y_}from"kysely";async function d0(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await y_`
|
|
664
|
+
`.execute(_)}async function y0(_){await y_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await y_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});import{sql as V}from"kysely";async function V0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function w0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Ju={};C(Ju,{up:()=>k0,down:()=>n0});import{sql as Nm}from"kysely";async function k0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Nm`CURRENT_TIMESTAMP`)).execute()}async function n0(_){await _.schema.dropTable("organization_settings").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function p0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Qu={};C(Qu,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function q0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function c0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",h0`text`).execute()}async function o0(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function r0(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});import{sql as U_}from"kysely";async function l0(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function e0(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Lu={};C(Lu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function s0(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(d0`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as V_}from"kysely";async function _$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(V_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await V_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function x$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function C$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as w_}from"kysely";async function K$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await w_`
|
|
658
665
|
UPDATE gateways
|
|
659
666
|
SET tool_selection_mode = CASE
|
|
660
667
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
661
668
|
ELSE 'inclusion'
|
|
662
669
|
END
|
|
663
|
-
`.execute(_),await
|
|
670
|
+
`.execute(_),await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function N$(_){await w_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await w_`
|
|
664
671
|
UPDATE gateways
|
|
665
672
|
SET tool_selection_strategy = CASE
|
|
666
673
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
667
674
|
ELSE NULL
|
|
668
675
|
END
|
|
669
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
676
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>m$});async function T$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function m$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Mu={};C(Mu,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function E$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ru={};C(Ru,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function U$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Bu={};C(Bu,{up:()=>J$,down:()=>P$});async function J$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function P$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});import{sql as Q$}from"kysely";async function X$(_){await Q$`
|
|
670
677
|
DELETE FROM downstream_tokens
|
|
671
678
|
WHERE id NOT IN (
|
|
672
679
|
SELECT id FROM (
|
|
@@ -676,7 +683,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
676
683
|
) ranked
|
|
677
684
|
WHERE rn = 1
|
|
678
685
|
)
|
|
679
|
-
`.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function
|
|
686
|
+
`.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function Z$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function j$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});import{sql as Tm}from"kysely";async function L$(_){await Tm`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function F$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Tm`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Au={};C(Au,{up:()=>H$,down:()=>M$});import{sql as k_}from"kysely";async function H$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function M$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var Iu={};C(Iu,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function B$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var yu={};C(yu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function O$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Vu={};C(Vu,{up:()=>S$,down:()=>f$});import{sql as M}from"kysely";async function S$(_){await M`
|
|
680
687
|
INSERT INTO connections (
|
|
681
688
|
id,
|
|
682
689
|
organization_id,
|
|
@@ -723,7 +730,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
723
730
|
created_at,
|
|
724
731
|
updated_at
|
|
725
732
|
FROM virtual_mcps
|
|
726
|
-
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
733
|
+
`.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function f$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
|
|
727
734
|
INSERT INTO virtual_mcps (
|
|
728
735
|
id, organization_id, title, description, icon, status,
|
|
729
736
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -733,7 +740,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
733
740
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
734
741
|
FROM connections
|
|
735
742
|
WHERE connection_type = 'VIRTUAL'
|
|
736
|
-
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var
|
|
743
|
+
`.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var wu={};C(wu,{up:()=>A$,down:()=>I$});async function A$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function I$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var ku={};C(ku,{up:()=>y$,down:()=>V$});import{sql as w}from"kysely";async function y$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
737
744
|
INSERT INTO connection_aggregations_new (
|
|
738
745
|
id, parent_connection_id, child_connection_id,
|
|
739
746
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -742,7 +749,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
742
749
|
id, parent_connection_id, child_connection_id,
|
|
743
750
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
744
751
|
FROM connection_aggregations
|
|
745
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function
|
|
752
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function V$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
|
|
746
753
|
INSERT INTO connection_aggregations_new (
|
|
747
754
|
id, parent_connection_id, child_connection_id,
|
|
748
755
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -751,7 +758,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
751
758
|
id, parent_connection_id, child_connection_id,
|
|
752
759
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
753
760
|
FROM connection_aggregations
|
|
754
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
761
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var vu={};C(vu,{up:()=>w$,down:()=>k$});import{sql as nu}from"kysely";async function w$(_){await nu`
|
|
755
762
|
UPDATE connections
|
|
756
763
|
SET connection_url = connection_url || '/management',
|
|
757
764
|
tools = NULL,
|
|
@@ -759,42 +766,42 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
759
766
|
WHERE connection_url LIKE '%/mcp'
|
|
760
767
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
761
768
|
AND app_name = '@deco/management-mcp'
|
|
762
|
-
`.execute(_),await
|
|
769
|
+
`.execute(_),await nu`
|
|
763
770
|
UPDATE connections
|
|
764
771
|
SET tools = NULL,
|
|
765
772
|
updated_at = CURRENT_TIMESTAMP
|
|
766
773
|
WHERE app_name = '@deco/management-mcp'
|
|
767
774
|
AND tools IS NOT NULL
|
|
768
|
-
`.execute(_)}async function
|
|
775
|
+
`.execute(_)}async function k$(_){await nu`
|
|
769
776
|
UPDATE connections
|
|
770
777
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
771
778
|
updated_at = CURRENT_TIMESTAMP
|
|
772
779
|
WHERE connection_url LIKE '%/mcp/management'
|
|
773
780
|
AND app_name = '@deco/management-mcp'
|
|
774
|
-
`.execute(_)}var
|
|
781
|
+
`.execute(_)}var gu={};C(gu,{up:()=>n$,down:()=>v$});import{sql as pu}from"kysely";async function n$(_){await pu`
|
|
775
782
|
UPDATE connections
|
|
776
783
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
777
784
|
tools = NULL,
|
|
778
785
|
updated_at = CURRENT_TIMESTAMP
|
|
779
786
|
WHERE connection_url LIKE '%/mcp/management'
|
|
780
787
|
AND app_name = '@deco/management-mcp'
|
|
781
|
-
`.execute(_),await
|
|
788
|
+
`.execute(_),await pu`
|
|
782
789
|
UPDATE connections
|
|
783
790
|
SET tools = NULL,
|
|
784
791
|
updated_at = CURRENT_TIMESTAMP
|
|
785
792
|
WHERE connection_url LIKE '%/mcp/self'
|
|
786
793
|
AND app_name = '@deco/management-mcp'
|
|
787
794
|
AND tools IS NOT NULL
|
|
788
|
-
`.execute(_)}async function
|
|
795
|
+
`.execute(_)}async function v$(_){await pu`
|
|
789
796
|
UPDATE connections
|
|
790
797
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
791
798
|
updated_at = CURRENT_TIMESTAMP
|
|
792
799
|
WHERE connection_url LIKE '%/mcp/self'
|
|
793
800
|
AND app_name = '@deco/management-mcp'
|
|
794
|
-
`.execute(_)}var
|
|
801
|
+
`.execute(_)}var qu={};C(qu,{up:()=>p$,down:()=>g$});async function p$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function g$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var iu={};C(iu,{up:()=>q$,down:()=>i$});import{sql as mm}from"kysely";async function q$(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(mm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function i$(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var cu={};C(cu,{up:()=>c$,down:()=>h$});import{sql as J_}from"kysely";async function c$(_){await J_`
|
|
795
802
|
ALTER TABLE connection_aggregations
|
|
796
803
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
797
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
804
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function h$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
|
|
798
805
|
INSERT INTO connection_aggregations_new (
|
|
799
806
|
id, parent_connection_id, child_connection_id,
|
|
800
807
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -803,42 +810,42 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
803
810
|
id, parent_connection_id, child_connection_id,
|
|
804
811
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
805
812
|
FROM connection_aggregations
|
|
806
|
-
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var
|
|
813
|
+
`.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var hu={};C(hu,{up:()=>l$,down:()=>e$});import{webcrypto as Em}from"crypto";var zm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var t$=128,h,e;function o$(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*t$),Em.getRandomValues(h),e=0;else if(e+_>h.length)Em.getRandomValues(h),e=0;e+=_}function d(_=21){o$(_|=0);let x="";for(let u=e-_;u<e;u++)x+=zm[h[u]&63];return x}var a$="org-admin",r$="Organization Admin";async function l$(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,T=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:a$,name:r$,description:null,enabled_plugins:T?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function e$(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tu={};C(tu,{up:()=>d$,down:()=>b$});async function d$(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function b$(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var ou={};C(ou,{up:()=>s$,down:()=>_U});async function s$(_){}async function _U(_){}var au={};C(au,{up:()=>xU,down:()=>uU});async function xU(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function uU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var ru={};C(ru,{up:()=>CU,down:()=>KU});import{sql as $m}from"kysely";async function CU(_){await $m`
|
|
807
814
|
UPDATE connections
|
|
808
815
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
809
816
|
tools = NULL,
|
|
810
817
|
updated_at = CURRENT_TIMESTAMP
|
|
811
818
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
812
819
|
AND app_name = 'deco-registry'
|
|
813
|
-
`.execute(_)}async function
|
|
820
|
+
`.execute(_)}async function KU(_){await $m`
|
|
814
821
|
UPDATE connections
|
|
815
822
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
816
823
|
updated_at = CURRENT_TIMESTAMP
|
|
817
824
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
818
825
|
AND app_name = 'deco-registry'
|
|
819
|
-
`.execute(_)}var
|
|
826
|
+
`.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>mU});import{sql as NU}from"kysely";async function TU(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(NU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function mU(_){await _.schema.dropTable("ai_provider_keys").execute()}var eu={};C(eu,{up:()=>EU,down:()=>$U});import{sql as zU}from"kysely";async function EU(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function $U(_){await _.schema.dropTable("oauth_pkce_states").execute()}var du={};C(du,{up:()=>UU,down:()=>JU});import{sql as p}from"kysely";async function UU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function JU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var bu={};C(bu,{up:()=>PU,down:()=>QU});async function PU(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function QU(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var su={};C(su,{up:()=>XU,down:()=>ZU});async function XU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function ZU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var _C={};C(_C,{up:()=>WU,down:()=>jU});import{sql as Um}from"kysely";async function WU(_){await Um`
|
|
820
827
|
UPDATE connections
|
|
821
828
|
SET title = 'CMS MCP',
|
|
822
829
|
tools = NULL,
|
|
823
830
|
updated_at = CURRENT_TIMESTAMP
|
|
824
831
|
WHERE app_name = '@deco/management-mcp'
|
|
825
|
-
`.execute(_)}async function
|
|
832
|
+
`.execute(_)}async function jU(_){await Um`
|
|
826
833
|
UPDATE connections
|
|
827
834
|
SET title = 'Mesh MCP',
|
|
828
835
|
updated_at = CURRENT_TIMESTAMP
|
|
829
836
|
WHERE app_name = '@deco/management-mcp'
|
|
830
|
-
`.execute(_)}var
|
|
837
|
+
`.execute(_)}var xC={};C(xC,{up:()=>LU,down:()=>FU});import{sql as Jm}from"kysely";async function LU(_){await Jm`
|
|
831
838
|
UPDATE connections
|
|
832
839
|
SET title = 'Deco CMS',
|
|
833
840
|
tools = NULL,
|
|
834
841
|
updated_at = CURRENT_TIMESTAMP
|
|
835
842
|
WHERE app_name = '@deco/management-mcp'
|
|
836
|
-
`.execute(_)}async function
|
|
843
|
+
`.execute(_)}async function FU(_){await Jm`
|
|
837
844
|
UPDATE connections
|
|
838
845
|
SET title = 'CMS MCP',
|
|
839
846
|
updated_at = CURRENT_TIMESTAMP
|
|
840
847
|
WHERE app_name = '@deco/management-mcp'
|
|
841
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var uC={};C(uC,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function DU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var CC={};C(CC,{up:()=>HU,down:()=>MU});async function HU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function MU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var NC={};C(NC,{up:()=>RU,down:()=>BU});import{sql as KC}from"kysely";async function RU(_){await KC`
|
|
842
849
|
UPDATE organization_settings
|
|
843
850
|
SET enabled_plugins = (
|
|
844
851
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -847,7 +854,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
847
854
|
)
|
|
848
855
|
WHERE enabled_plugins IS NOT NULL
|
|
849
856
|
AND enabled_plugins LIKE '%object-storage%'
|
|
850
|
-
`.execute(_),await
|
|
857
|
+
`.execute(_),await KC`
|
|
851
858
|
UPDATE projects
|
|
852
859
|
SET enabled_plugins = (
|
|
853
860
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -856,65 +863,65 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
856
863
|
)
|
|
857
864
|
WHERE enabled_plugins IS NOT NULL
|
|
858
865
|
AND enabled_plugins LIKE '%object-storage%'
|
|
859
|
-
`.execute(_),await
|
|
866
|
+
`.execute(_),await KC`
|
|
860
867
|
DELETE FROM project_plugin_configs
|
|
861
868
|
WHERE plugin_id = 'object-storage'
|
|
862
|
-
`.execute(_)}async function
|
|
869
|
+
`.execute(_)}async function BU(_){}var TC={};C(TC,{up:()=>GU,down:()=>OU});import{sql as Pm}from"kysely";async function GU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Pm`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function OU(_){await Pm`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var zC={};C(zC,{up:()=>SU,down:()=>fU});import{sql as mC}from"kysely";async function SU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await mC`
|
|
863
870
|
ALTER TABLE connections
|
|
864
871
|
ADD CONSTRAINT chk_connections_subtype
|
|
865
872
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
866
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
873
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await mC`
|
|
867
874
|
UPDATE connections
|
|
868
875
|
SET subtype = 'agent'
|
|
869
876
|
WHERE connection_type = 'VIRTUAL'
|
|
870
|
-
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${
|
|
877
|
+
`.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,J=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let T=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let m=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function fU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await mC`
|
|
871
878
|
ALTER TABLE connections
|
|
872
879
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
873
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
880
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var EC={};C(EC,{up:()=>IU,down:()=>yU});import{sql as AU}from"kysely";async function IU(_){await AU`
|
|
874
881
|
DELETE FROM connections
|
|
875
882
|
WHERE connection_type = 'VIRTUAL'
|
|
876
883
|
AND subtype = 'project'
|
|
877
884
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
878
|
-
`.execute(_)}async function
|
|
885
|
+
`.execute(_)}async function yU(_){}var $C={};C($C,{up:()=>wU,down:()=>kU});import{sql as VU}from"kysely";async function wU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await VU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function kU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var JC={};C(JC,{up:()=>nU,down:()=>vU});import{sql as UC}from"kysely";async function nU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(UC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function vU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var PC={};C(PC,{up:()=>pU,down:()=>gU});async function pU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function gU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var QC={};C(QC,{up:()=>qU,down:()=>iU});async function qU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function iU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ZC={};C(ZC,{up:()=>hU,down:()=>tU});import{sql as Qm}from"kysely";function XC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function cU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return XC(N)}catch{return XC(_.connection_url)}if(_.title)return XC(_.title);return _.id}async function hU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await Qm`
|
|
879
886
|
SELECT id, app_name, connection_url, title FROM connections
|
|
880
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
887
|
+
`.execute(_);for(let u of x.rows){let N=cU(u);await Qm`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function tU(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var WC={};C(WC,{up:()=>oU,down:()=>aU});import{sql as P_}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await P_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await P_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function aU(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await P_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await P_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await P_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var jC={};C(jC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function lU(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var LC={};C(LC,{up:()=>eU,down:()=>dU});import{sql as n_}from"kysely";async function eU(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await n_`
|
|
881
888
|
UPDATE threads
|
|
882
889
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
883
890
|
WHERE agent_ids IS NOT NULL
|
|
884
891
|
AND agent_ids != '[]'
|
|
885
892
|
AND agent_ids != ''
|
|
886
893
|
AND (agent_ids::jsonb ->> 0) IS NOT NULL
|
|
887
|
-
`.execute(_),await
|
|
894
|
+
`.execute(_),await n_`
|
|
888
895
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
889
896
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
890
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
897
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function dU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await n_`
|
|
891
898
|
UPDATE threads
|
|
892
899
|
SET agent_ids = CASE
|
|
893
900
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
894
901
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
895
902
|
ELSE '[]'
|
|
896
903
|
END
|
|
897
|
-
`.execute(_),await
|
|
904
|
+
`.execute(_),await n_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var FC={};C(FC,{up:()=>bU,down:()=>sU});async function bU(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function sU(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var YC={};C(YC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function xJ(_){await _.schema.dropTable("kv").execute()}var DC={};C(DC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function CJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var HC={};C(HC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function NJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var MC={};C(MC,{up:()=>TJ,down:()=>mJ});import{sql as S}from"kysely";async function TJ(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function mJ(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var RC={};C(RC,{up:()=>zJ,down:()=>EJ});import{sql as b}from"kysely";async function zJ(_){await b`
|
|
898
905
|
ALTER TABLE event_subscriptions
|
|
899
906
|
ALTER COLUMN enabled DROP DEFAULT
|
|
900
|
-
`.execute(_),await
|
|
907
|
+
`.execute(_),await b`
|
|
901
908
|
ALTER TABLE event_subscriptions
|
|
902
909
|
ALTER COLUMN enabled TYPE boolean
|
|
903
910
|
USING enabled::boolean
|
|
904
|
-
`.execute(_),await
|
|
911
|
+
`.execute(_),await b`
|
|
905
912
|
ALTER TABLE event_subscriptions
|
|
906
913
|
ALTER COLUMN enabled SET DEFAULT true
|
|
907
|
-
`.execute(_)}async function
|
|
914
|
+
`.execute(_)}async function EJ(_){await b`
|
|
908
915
|
ALTER TABLE event_subscriptions
|
|
909
916
|
ALTER COLUMN enabled DROP DEFAULT
|
|
910
|
-
`.execute(_),await
|
|
917
|
+
`.execute(_),await b`
|
|
911
918
|
ALTER TABLE event_subscriptions
|
|
912
919
|
ALTER COLUMN enabled TYPE integer
|
|
913
920
|
USING enabled::integer
|
|
914
|
-
`.execute(_),await
|
|
921
|
+
`.execute(_),await b`
|
|
915
922
|
ALTER TABLE event_subscriptions
|
|
916
923
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
917
|
-
`.execute(_)}var
|
|
924
|
+
`.execute(_)}var BC={};C(BC,{up:()=>$J,down:()=>UJ});import{sql as Xm}from"kysely";async function $J(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function UJ(_){await _.schema.dropTable("brand_context").execute()}var GC={};C(GC,{up:()=>JJ,down:()=>PJ});import{sql as Zm}from"kysely";async function JJ(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`now()`)).execute()}async function PJ(_){await _.schema.dropTable("organization_domains").execute()}var OC={};C(OC,{up:()=>WJ,down:()=>jJ});import{sql as Wm}from"kysely";var v_=new Set(["primary","secondary","accent","background","foreground"]),QJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function XJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>v_.has(K))){let K={};for(let[T,m]of Object.entries(u)){if(typeof m!=="string")continue;if(v_.has(T))K[T]=m;else x[T]=m}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,T]of Object.entries(u)){if(typeof T!=="string")continue;if(v_.has(K.toLowerCase()))N[K.toLowerCase()]=T;else x[K]=T}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,T=K.label?.toLowerCase?.(),m=K.value;if(!T||!m)continue;if(v_.has(T))u[T]=m;else x[T]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function ZJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,T=K.name??K.family??void 0,m=K.role?.toLowerCase?.()??"";if(!T)continue;let z=QJ[m];if(z&&!x[z])x[z]=T;else u.push(T)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function WJ(_){let x=await Wm`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,T=!1,m=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=XJ($);if(m=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,T=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=ZJ($),K=!0}catch{}if(N||K||T){let $=T?JSON.stringify(E):u.metadata;await Wm`
|
|
918
925
|
UPDATE brand_context
|
|
919
926
|
SET
|
|
920
927
|
colors = ${m},
|
|
@@ -922,29 +929,29 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
922
929
|
metadata = ${$},
|
|
923
930
|
updated_at = NOW()
|
|
924
931
|
WHERE id = ${u.id}
|
|
925
|
-
`.execute(_)}}}async function
|
|
932
|
+
`.execute(_)}}}async function jJ(_){}var SC={};C(SC,{up:()=>FJ,down:()=>YJ});import{sql as LJ}from"kysely";async function FJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(LJ`'{}'::jsonb`)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var fC={};C(fC,{up:()=>DJ,down:()=>HJ});async function DJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function HJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var AC={};C(AC,{up:()=>MJ,down:()=>RJ});async function MJ(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function RJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function GJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var yC={};C(yC,{up:()=>OJ,down:()=>SJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function SJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var VC={};C(VC,{up:()=>fJ,down:()=>AJ});async function fJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function AJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});import{sql as jm}from"kysely";var IJ=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function yJ(_){let x=await jm`
|
|
926
933
|
SELECT id, permission FROM "organizationRole"
|
|
927
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...
|
|
934
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...IJ]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await jm`
|
|
928
935
|
UPDATE "organizationRole"
|
|
929
936
|
SET permission = ${z}
|
|
930
937
|
WHERE id = ${u.id}
|
|
931
|
-
`.execute(_)}}async function
|
|
938
|
+
`.execute(_)}}async function VJ(_){}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function kJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function vJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});import{sql as Q_}from"kysely";async function pJ(_){await Q_`
|
|
932
939
|
UPDATE automations
|
|
933
940
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
934
941
|
WHERE virtual_mcp_id IS NULL
|
|
935
|
-
`.execute(_),await
|
|
942
|
+
`.execute(_),await Q_`
|
|
936
943
|
ALTER TABLE automations
|
|
937
944
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
938
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
945
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function gJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
939
946
|
UPDATE automations
|
|
940
947
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
941
|
-
`.execute(_),await
|
|
948
|
+
`.execute(_),await Q_`
|
|
942
949
|
ALTER TABLE automations
|
|
943
950
|
ALTER COLUMN agent SET NOT NULL
|
|
944
|
-
`.execute(_),await
|
|
951
|
+
`.execute(_),await Q_`
|
|
945
952
|
ALTER TABLE automations
|
|
946
953
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
947
|
-
`.execute(_)}var
|
|
954
|
+
`.execute(_)}var gC={};C(gC,{up:()=>hJ,reshapeSimpleMode:()=>Lm,inferAutomationTier:()=>Fm,down:()=>tJ,__testing:()=>cJ});var qJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},iJ=["fast","smart","thinking","image","web_research"];function pC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return iJ.some((N)=>(N in u))}function Lm(_){if(pC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return qJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function Fm(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Ym(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var cJ={isAlreadyReshapedSimpleMode:pC,isAlreadyReshapedAutomationModels:Ym};async function hJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(pC(K))continue;let T=Lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(T)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(Ym(K))continue;let T=Fm(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:T})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${T}"`)}}async function tJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var qC={};C(qC,{up:()=>oJ,down:()=>aJ});import{sql as n}from"kysely";async function oJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
|
|
948
955
|
ALTER TABLE automations
|
|
949
956
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
950
957
|
`.execute(_),await n`
|
|
@@ -966,27 +973,27 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
966
973
|
AND tool_input IS NOT NULL
|
|
967
974
|
)
|
|
968
975
|
)
|
|
969
|
-
`.execute(_)}async function
|
|
976
|
+
`.execute(_)}async function aJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
|
|
970
977
|
ALTER TABLE automations
|
|
971
978
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
972
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
979
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var iC={};C(iC,{up:()=>lJ,down:()=>eJ});import{sql as Dm}from"kysely";var rJ=new Set(["host","docker","agent-sandbox"]);async function lJ(_){let x=await Dm`
|
|
973
980
|
SELECT id, metadata FROM "connections"
|
|
974
981
|
WHERE connection_type = 'VIRTUAL'
|
|
975
982
|
AND metadata IS NOT NULL
|
|
976
983
|
AND metadata LIKE '%vmMap%'
|
|
977
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!
|
|
984
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}let y=X.runnerKind;if(y!==void 0&&!rJ.has(y)){T=!0;continue}J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.vmMap=m;let z=JSON.stringify(N);await Dm`
|
|
978
985
|
UPDATE "connections"
|
|
979
986
|
SET metadata = ${z}
|
|
980
987
|
WHERE id = ${u.id}
|
|
981
|
-
`.execute(_)}}async function
|
|
988
|
+
`.execute(_)}}async function eJ(_){}var cC={};C(cC,{up:()=>dJ,down:()=>bJ});import{sql as X_}from"kysely";async function dJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(X_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(X_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await X_`
|
|
982
989
|
CREATE INDEX async_research_jobs_active_idx
|
|
983
990
|
ON async_research_jobs (status, last_polled_at)
|
|
984
991
|
WHERE status IN ('pending', 'polling')
|
|
985
|
-
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await
|
|
992
|
+
`.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await X_`
|
|
986
993
|
ALTER TABLE async_research_jobs
|
|
987
994
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
988
995
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
989
|
-
`.execute(_)}async function
|
|
996
|
+
`.execute(_)}async function bJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var hC={};C(hC,{up:()=>sJ,down:()=>_P});async function sJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function _P(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as s}from"kysely";async function xP(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
|
|
990
997
|
ALTER TABLE secrets
|
|
991
998
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
992
999
|
`.execute(_),await s`
|
|
@@ -1003,10 +1010,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1003
1010
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1004
1011
|
ON secrets (organization_id, lower(name))
|
|
1005
1012
|
WHERE scope = 'organization'
|
|
1006
|
-
`.execute(_)}async function
|
|
1013
|
+
`.execute(_)}async function uP(_){await _.schema.dropTable("secrets").execute()}var oC={};C(oC,{up:()=>CP,down:()=>KP});async function CP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function KP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var aC={};C(aC,{up:()=>TP,down:()=>mP});import{sql as NP}from"kysely";async function TP(_){await NP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function mP(_){}var rC={};C(rC,{up:()=>zP,down:()=>EP});import{sql as p_}from"kysely";async function zP(_){await p_`
|
|
1007
1014
|
ALTER TABLE sandbox_runner_state
|
|
1008
1015
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1009
|
-
`.execute(_),await
|
|
1016
|
+
`.execute(_),await p_`
|
|
1010
1017
|
DO $$ BEGIN
|
|
1011
1018
|
UPDATE virtualmcps v
|
|
1012
1019
|
SET metadata = jsonb_set(
|
|
@@ -1041,10 +1048,10 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1041
1048
|
EXCEPTION WHEN undefined_table THEN
|
|
1042
1049
|
NULL;
|
|
1043
1050
|
END; $$
|
|
1044
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1051
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function EP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await p_`
|
|
1045
1052
|
ALTER TABLE sandbox_runner_state
|
|
1046
1053
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1047
|
-
`.execute(_),await
|
|
1054
|
+
`.execute(_),await p_`
|
|
1048
1055
|
DO $$ BEGIN
|
|
1049
1056
|
UPDATE virtualmcps v
|
|
1050
1057
|
SET metadata = jsonb_set(
|
|
@@ -1079,7 +1086,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1079
1086
|
EXCEPTION WHEN undefined_table THEN
|
|
1080
1087
|
NULL;
|
|
1081
1088
|
END; $$
|
|
1082
|
-
`.execute(_)}var
|
|
1089
|
+
`.execute(_)}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as Hm}from"kysely";async function $P(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await Hm`
|
|
1083
1090
|
DO $$ BEGIN
|
|
1084
1091
|
UPDATE virtualmcps v
|
|
1085
1092
|
SET metadata = jsonb_set(
|
|
@@ -1118,7 +1125,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1118
1125
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1119
1126
|
NULL;
|
|
1120
1127
|
END; $$
|
|
1121
|
-
`.execute(_)}async function
|
|
1128
|
+
`.execute(_)}async function UP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await Hm`
|
|
1122
1129
|
DO $$ BEGIN
|
|
1123
1130
|
UPDATE virtualmcps v
|
|
1124
1131
|
SET metadata = jsonb_set(
|
|
@@ -1151,7 +1158,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1151
1158
|
EXCEPTION WHEN undefined_table THEN
|
|
1152
1159
|
NULL;
|
|
1153
1160
|
END; $$
|
|
1154
|
-
`.execute(_)}var
|
|
1161
|
+
`.execute(_)}var eC={};C(eC,{up:()=>JP,down:()=>PP});import{sql as Mm}from"kysely";async function JP(_){await Mm`
|
|
1155
1162
|
UPDATE connections c
|
|
1156
1163
|
SET metadata = (
|
|
1157
1164
|
jsonb_set(
|
|
@@ -1195,7 +1202,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1195
1202
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1196
1203
|
WHERE entry ? 'vmId'
|
|
1197
1204
|
);
|
|
1198
|
-
`.execute(_),await
|
|
1205
|
+
`.execute(_),await Mm`
|
|
1199
1206
|
UPDATE connections c
|
|
1200
1207
|
SET metadata = (
|
|
1201
1208
|
jsonb_set(
|
|
@@ -1249,14 +1256,14 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1249
1256
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1250
1257
|
WHERE inner_entry ? 'runnerKind'
|
|
1251
1258
|
);
|
|
1252
|
-
`.execute(_)}async function
|
|
1259
|
+
`.execute(_)}async function PP(_){}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`
|
|
1253
1260
|
DELETE FROM ai_provider_keys
|
|
1254
1261
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1255
|
-
`.execute(_)}async function
|
|
1262
|
+
`.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
|
|
1256
1263
|
UPDATE sandbox_runner_state
|
|
1257
1264
|
SET sandbox_provider_kind = 'desktop'
|
|
1258
1265
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1259
|
-
`.execute(_),await
|
|
1266
|
+
`.execute(_),await g_`
|
|
1260
1267
|
UPDATE connections c
|
|
1261
1268
|
SET metadata = (
|
|
1262
1269
|
jsonb_set(
|
|
@@ -1299,7 +1306,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1299
1306
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1300
1307
|
WHERE kind_key = 'remote-user'
|
|
1301
1308
|
);
|
|
1302
|
-
`.execute(_),await
|
|
1309
|
+
`.execute(_),await g_`
|
|
1303
1310
|
UPDATE connections c
|
|
1304
1311
|
SET metadata = (
|
|
1305
1312
|
jsonb_set(
|
|
@@ -1346,17 +1353,17 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1346
1353
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1347
1354
|
WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
|
|
1348
1355
|
);
|
|
1349
|
-
`.execute(_),await
|
|
1356
|
+
`.execute(_),await g_`
|
|
1350
1357
|
UPDATE threads
|
|
1351
1358
|
SET sandbox_provider_kind = 'desktop'
|
|
1352
1359
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1353
|
-
`.execute(_)}async function
|
|
1360
|
+
`.execute(_)}async function jP(_){}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as Z_}from"kysely";async function LP(_){await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function FP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await Z_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await Z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await Z_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as Rm}from"kysely";async function YP(_){await Rm`
|
|
1354
1361
|
ALTER TABLE organization_domains
|
|
1355
1362
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1356
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1363
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function DP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await Rm`
|
|
1357
1364
|
ALTER TABLE organization_domains
|
|
1358
1365
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1359
|
-
`.execute(_)}var
|
|
1366
|
+
`.execute(_)}var xK={};C(xK,{up:()=>HP,down:()=>MP});import{sql as q_}from"kysely";async function HP(_){await q_`
|
|
1360
1367
|
UPDATE sandbox_runner_state
|
|
1361
1368
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1362
1369
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1366,7 +1373,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1366
1373
|
ELSE sandbox_provider_kind
|
|
1367
1374
|
END
|
|
1368
1375
|
WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1369
|
-
`.execute(_),await
|
|
1376
|
+
`.execute(_),await q_`
|
|
1370
1377
|
UPDATE connections c
|
|
1371
1378
|
SET metadata = (
|
|
1372
1379
|
(c.metadata::jsonb - 'vmMap')
|
|
@@ -1375,7 +1382,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1375
1382
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1376
1383
|
AND c.metadata IS NOT NULL
|
|
1377
1384
|
AND c.metadata::jsonb ? 'vmMap'
|
|
1378
|
-
`.execute(_),await
|
|
1385
|
+
`.execute(_),await q_`
|
|
1379
1386
|
UPDATE connections c
|
|
1380
1387
|
SET metadata = (
|
|
1381
1388
|
jsonb_set(
|
|
@@ -1436,7 +1443,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1436
1443
|
WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
|
|
1437
1444
|
OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
|
|
1438
1445
|
);
|
|
1439
|
-
`.execute(_),await
|
|
1446
|
+
`.execute(_),await q_`
|
|
1440
1447
|
UPDATE connections c
|
|
1441
1448
|
SET metadata = REPLACE(
|
|
1442
1449
|
REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
|
|
@@ -1445,19 +1452,19 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1445
1452
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1446
1453
|
AND c.metadata IS NOT NULL
|
|
1447
1454
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1448
|
-
`.execute(_)}async function
|
|
1455
|
+
`.execute(_)}async function MP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as Bm}from"kysely";var RP=["GLOBAL_SEARCH"];async function BP(_){let x=await Bm`
|
|
1449
1456
|
SELECT id, permission FROM "organizationRole"
|
|
1450
|
-
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...
|
|
1457
|
+
`.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let T=K,m=Array.from(new Set([...T,...RP]));if(m.length===T.length)continue;N.self=m;let z=JSON.stringify(N);await Bm`
|
|
1451
1458
|
UPDATE "organizationRole"
|
|
1452
1459
|
SET permission = ${z}
|
|
1453
1460
|
WHERE id = ${u.id}
|
|
1454
|
-
`.execute(_)}}async function
|
|
1461
|
+
`.execute(_)}}async function GP(_){}var KK={};C(KK,{up:()=>OP,down:()=>SP});import{sql as CK}from"kysely";async function OP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await CK`
|
|
1455
1462
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1456
1463
|
ON org_file_configs (organization_id, lower(name))
|
|
1457
|
-
`.execute(_)}async function
|
|
1464
|
+
`.execute(_)}async function SP(_){await _.schema.dropTable("org_file_configs").execute()}var NK={};C(NK,{up:()=>fP,down:()=>AP});import{sql as v}from"kysely";async function fP(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
|
|
1458
1465
|
ALTER TABLE automations
|
|
1459
1466
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1460
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1467
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function AP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
|
|
1461
1468
|
ALTER TABLE automations
|
|
1462
1469
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1463
1470
|
`.execute(_),await v`
|
|
@@ -1479,25 +1486,25 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1479
1486
|
AND tool_input IS NOT NULL
|
|
1480
1487
|
)
|
|
1481
1488
|
)
|
|
1482
|
-
`.execute(_)}var
|
|
1489
|
+
`.execute(_)}var TK={};C(TK,{up:()=>IP,down:()=>yP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function yP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var zK={};C(zK,{up:()=>VP,down:()=>wP});import{sql as mK}from"kysely";var i_="local-docker";async function VP(_){await mK`delete from sandbox_runner_state where sandbox_provider_kind = ${i_}`.execute(_);let x=await mK`
|
|
1483
1490
|
SELECT id, metadata FROM "connections"
|
|
1484
1491
|
WHERE connection_type = 'VIRTUAL'
|
|
1485
1492
|
AND metadata IS NOT NULL
|
|
1486
|
-
AND metadata LIKE ${"%"+
|
|
1487
|
-
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(
|
|
1493
|
+
AND metadata LIKE ${"%"+i_+"%"}
|
|
1494
|
+
`.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let T=!1,m={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){T=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){T=!0;continue}if(i_ in X){T=!0;let y={...X};if(delete y[i_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)m[E]=J;else T=!0}if(!T)continue;N.sandboxMap=m;let z=JSON.stringify(N);await mK`
|
|
1488
1495
|
UPDATE "connections"
|
|
1489
1496
|
SET metadata = ${z}
|
|
1490
1497
|
WHERE id = ${u.id}
|
|
1491
|
-
`.execute(_)}}async function
|
|
1498
|
+
`.execute(_)}}async function wP(_){}var EK={};C(EK,{up:()=>kP,down:()=>nP});import{sql as c_}from"kysely";async function kP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await c_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await c_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await c_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await c_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var $K={};C($K,{up:()=>vP,down:()=>pP});async function vP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function pP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var UK={};C(UK,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function qP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var JK={};C(JK,{up:()=>iP,down:()=>cP});async function iP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function cP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var PK={};C(PK,{up:()=>hP,down:()=>tP});async function hP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function tP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var QK={};C(QK,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function aP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var ZK={};C(ZK,{up:()=>lP,down:()=>eP});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function XK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function h_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function rP(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[T,m]of Object.entries(_)){if(!__(m)){K[T]=m;continue}let z={};for(let[E,$]of Object.entries(m)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=XK(X,x,u);else if(!h_($[u])&&h_(X))J[u]=XK(X,x,u);continue}let y=XK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&h_(J[j])&&!h_(y))continue;J[j]=y}z[E]=J}K[T]=z}return{sandboxMap:K,changed:N}}async function Gm(_,x,u){let N=await k`
|
|
1492
1499
|
SELECT id, metadata FROM connections
|
|
1493
1500
|
WHERE connection_type = 'VIRTUAL'
|
|
1494
1501
|
AND metadata IS NOT NULL
|
|
1495
1502
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1496
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=
|
|
1503
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let T;try{T=JSON.parse(K.metadata)}catch{continue}let m=rP(T.sandboxMap,x,u);if(!m?.changed)continue;T.sandboxMap=m.sandboxMap,await k`
|
|
1497
1504
|
UPDATE connections
|
|
1498
1505
|
SET metadata = ${JSON.stringify(T)}
|
|
1499
1506
|
WHERE id = ${K.id}
|
|
1500
|
-
`.execute(_)}}async function
|
|
1507
|
+
`.execute(_)}}async function lP(_){await k`
|
|
1501
1508
|
UPDATE threads
|
|
1502
1509
|
SET sandbox_provider_kind = ${A}
|
|
1503
1510
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1526,7 +1533,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1526
1533
|
UPDATE sandbox_runner_state
|
|
1527
1534
|
SET sandbox_provider_kind = ${A}
|
|
1528
1535
|
WHERE sandbox_provider_kind = ${f}
|
|
1529
|
-
`.execute(_),await
|
|
1536
|
+
`.execute(_),await Gm(_,f,A)}async function eP(_){await k`
|
|
1530
1537
|
UPDATE threads
|
|
1531
1538
|
SET sandbox_provider_kind = ${f}
|
|
1532
1539
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1555,7 +1562,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1555
1562
|
UPDATE sandbox_runner_state
|
|
1556
1563
|
SET sandbox_provider_kind = ${f}
|
|
1557
1564
|
WHERE sandbox_provider_kind = ${A}
|
|
1558
|
-
`.execute(_),await
|
|
1565
|
+
`.execute(_),await Gm(_,A,f)}var WK={};C(WK,{up:()=>dP,down:()=>bP});import{sql as g}from"kysely";async function dP(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
|
|
1559
1566
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1560
1567
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1561
1568
|
WHERE deleted_at IS NULL
|
|
@@ -1563,7 +1570,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1563
1570
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1564
1571
|
ON org_fs_entry (organization_id, volume, size)
|
|
1565
1572
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1566
|
-
`.execute(_)}async function
|
|
1573
|
+
`.execute(_)}async function bP(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var jK={};C(jK,{up:()=>sP,down:()=>_Q});async function sP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function _Q(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var LK={};C(LK,{up:()=>xQ,down:()=>uQ});import{sql as Om}from"kysely";async function xQ(_){await Om`
|
|
1567
1574
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1568
1575
|
SELECT
|
|
1569
1576
|
'org_orgfs_public_skills',
|
|
@@ -1577,13 +1584,13 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1577
1584
|
END,
|
|
1578
1585
|
now()
|
|
1579
1586
|
ON CONFLICT (id) DO NOTHING
|
|
1580
|
-
`.execute(_)}async function
|
|
1587
|
+
`.execute(_)}async function uQ(_){await Om`
|
|
1581
1588
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1582
|
-
`.execute(_)}var
|
|
1589
|
+
`.execute(_)}var FK={};C(FK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function KQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var YK={};C(YK,{up:()=>NQ,down:()=>TQ});import{sql as Sm}from"kysely";async function NQ(_){await Sm`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function TQ(_){await Sm`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});import{sql as mQ}from"kysely";async function zQ(_){await mQ`
|
|
1583
1590
|
UPDATE downstream_tokens
|
|
1584
1591
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1585
1592
|
WHERE "expiresAt" IS NULL
|
|
1586
|
-
`.execute(_)}async function
|
|
1593
|
+
`.execute(_)}async function EQ(_){}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});async function $Q(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function UQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function PQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});async function QQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function XQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var BK={};C(BK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function WQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var GK={};C(GK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function LQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var OK={};C(OK,{up:()=>FQ,down:()=>YQ});import{sql as fm}from"kysely";async function FQ(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(fm`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function YQ(_){await _.schema.dropTable("org_sites").execute()}var SK={};C(SK,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function HQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var fK={};C(fK,{up:()=>MQ,down:()=>RQ});import{sql as R}from"kysely";async function MQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
|
|
1587
1594
|
UPDATE organization_domains
|
|
1588
1595
|
SET
|
|
1589
1596
|
id = gen_random_uuid()::text,
|
|
@@ -1592,18 +1599,18 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1592
1599
|
verification_method = 'email',
|
|
1593
1600
|
verified_at = created_at
|
|
1594
1601
|
WHERE id IS NULL
|
|
1595
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function
|
|
1602
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function RQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
|
|
1596
1603
|
UPDATE organization_domains
|
|
1597
1604
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1598
|
-
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var
|
|
1605
|
+
`.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var AK={};C(AK,{up:()=>BQ,down:()=>GQ});import{sql as t_}from"kysely";async function BQ(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(t_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t_`now()`)).execute(),await t_`
|
|
1599
1606
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1600
1607
|
ON organization_join_requests (organization_id, user_id)
|
|
1601
1608
|
WHERE status = 'pending'
|
|
1602
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1609
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function GQ(_){await _.schema.dropTable("organization_join_requests").execute()}var IK={};C(IK,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function SQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var yK={};C(yK,{up:()=>fQ,down:()=>AQ});async function fQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function AQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var kK={};C(kK,{up:()=>VQ,splitWebResearchTier:()=>wK,down:()=>wQ,__testing:()=>yQ});function IQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function VK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function wK(_){if(!_||VK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,T=null,m=null;if(u)if(IQ(u.modelId))m=u;else T=u;return{..._,tiers:{...K,web_search:T,deep_research:m}}}var yQ={splitWebResearchTier:wK,isAlreadySplit:VK};async function VQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(VK(N))continue;let K=wK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function wQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var nK={};C(nK,{up:()=>kQ,down:()=>nQ});import{sql as W_}from"kysely";async function kQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await W_`
|
|
1603
1610
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1604
1611
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1605
1612
|
WHERE revoked_at IS NULL
|
|
1606
|
-
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(
|
|
1613
|
+
`.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(W_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function nQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var vK={};C(vK,{up:()=>vQ,down:()=>pQ});async function vQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function pQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var pK={};C(pK,{up:()=>gQ,down:()=>qQ});import{sql as t}from"kysely";async function gQ(_){await t`
|
|
1607
1614
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1608
1615
|
RETURNS jsonb AS $fn$
|
|
1609
1616
|
BEGIN
|
|
@@ -1662,7 +1669,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1662
1669
|
BEFORE INSERT ON connection_aggregations
|
|
1663
1670
|
FOR EACH ROW
|
|
1664
1671
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1665
|
-
`.execute(_)}async function
|
|
1672
|
+
`.execute(_)}async function qQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var qK={};C(qK,{up:()=>iQ,down:()=>cQ});import{sql as gK}from"kysely";async function iQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(gK`false`)).execute()}async function cQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var iK={};C(iK,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function tQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var cK={};C(cK,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var hK={};C(hK,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function lQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as eQ}from"kysely";async function dQ(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(eQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function bQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function _X(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var aK={};C(aK,{up:()=>uX,down:()=>CX});import{sql as xX}from"kysely";async function uX(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xX`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function CX(_){await _.schema.dropTable("task_board_item_prs").execute()}var rK={};C(rK,{up:()=>NX,down:()=>TX});import{sql as KX}from"kysely";async function NX(_){await KX`
|
|
1666
1673
|
DELETE FROM member
|
|
1667
1674
|
WHERE id IN (
|
|
1668
1675
|
SELECT id FROM (
|
|
@@ -1681,38 +1688,38 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1681
1688
|
) ranked
|
|
1682
1689
|
WHERE ranked.rn > 1
|
|
1683
1690
|
)
|
|
1684
|
-
`.execute(_)}async function
|
|
1691
|
+
`.execute(_)}async function TX(_){}var lK={};C(lK,{up:()=>mX,down:()=>zX});async function mX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function zX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var eK={};C(eK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function $X(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var dK={};C(dK,{up:()=>JX,down:()=>PX});import{sql as UX}from"kysely";async function JX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UX`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function PX(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var bK={};C(bK,{up:()=>XX,down:()=>ZX});import{sql as QX}from"kysely";async function XX(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(QX`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function ZX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var sK={};C(sK,{up:()=>WX,down:()=>jX});import{sql as o_}from"kysely";async function WX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",o_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",o_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function jX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var _N={};C(_N,{up:()=>LX,down:()=>FX});import{sql as a_}from"kysely";async function LX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await a_`
|
|
1685
1692
|
insert into organization_billing (organization_id, legacy)
|
|
1686
1693
|
select id, true from organization
|
|
1687
1694
|
on conflict (organization_id) do nothing
|
|
1688
|
-
`.execute(_)}async function
|
|
1695
|
+
`.execute(_)}async function FX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as Am}from"kysely";async function YX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Am`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Am`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function DX(_){await _.schema.dropTable("seat_change_log").execute()}var uN={};C(uN,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function MX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var CN={};C(CN,{up:()=>RX,down:()=>BX});import{sql as Im}from"kysely";async function RX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await Im`
|
|
1689
1696
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1690
1697
|
on organization_billing (stripe_subscription_id)
|
|
1691
1698
|
where stripe_subscription_id is not null
|
|
1692
|
-
`.execute(_)}async function
|
|
1699
|
+
`.execute(_)}async function BX(_){await Im`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var KN={};C(KN,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function OX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var NN={};C(NN,{up:()=>SX,down:()=>fX});import{sql as ym}from"kysely";async function SX(_){await ym`
|
|
1693
1700
|
create index idx_org_billing_benefits_pending
|
|
1694
1701
|
on organization_billing (updated_at)
|
|
1695
1702
|
where benefits_reference_id is not null
|
|
1696
|
-
`.execute(_)}async function
|
|
1703
|
+
`.execute(_)}async function fX(_){await ym`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var TN={};C(TN,{up:()=>AX,down:()=>IX});import{sql as Vm}from"kysely";async function AX(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Vm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function IX(_){await _.schema.dropTable("user_model_preferences").execute()}var mN={};C(mN,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function VX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var zN={};C(zN,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function kX(_){}var EN={};C(EN,{up:()=>nX,down:()=>vX});import{sql as wm}from"kysely";async function nX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await wm`
|
|
1697
1704
|
UPDATE organization_settings
|
|
1698
1705
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1699
1706
|
WHERE reports_only IS NOT NULL
|
|
1700
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1707
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function vX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await wm`
|
|
1701
1708
|
UPDATE organization_settings
|
|
1702
1709
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1703
1710
|
WHERE flags ? 'reports_only'
|
|
1704
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1711
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pX}from"kysely";async function gX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await pX`
|
|
1705
1712
|
update task_board_items
|
|
1706
1713
|
set sort_order = -extract(epoch from created_at)
|
|
1707
|
-
`.execute(_)}async function
|
|
1714
|
+
`.execute(_)}async function qX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX,ACTIONS:()=>km});import{sql as r_}from"kysely";var km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function iX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addCheckConstraint("chk_task_board_activity_action",r_`action IN (${r_.join(km.map((x)=>r_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function cX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var PN={};C(PN,{up:()=>hX,down:()=>tX,ACTIONS:()=>JN});import{sql as j_}from"kysely";var JN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function hX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await nm(_,JN)}async function tX(_){await nm(_,JN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function nm(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var XN={};C(XN,{up:()=>aX,down:()=>rX});import{sql as vm}from"kysely";function QN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function oX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return QN(N)}catch{return QN(_.connection_url)}if(_.title)return QN(_.title);return _.id}async function aX(_){let x=await vm`
|
|
1708
1715
|
SELECT id, app_name, connection_url, title, slug
|
|
1709
1716
|
FROM connections
|
|
1710
1717
|
WHERE connection_type != 'VIRTUAL'
|
|
1711
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1718
|
+
`.execute(_),u=0;for(let N of x.rows){let K=oX(N);if(K===N.slug)continue;await vm`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function rX(){}var ZN={};C(ZN,{up:()=>eX,down:()=>dX});import{sql as lX}from"kysely";async function eX(_){await lX`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function dX(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var jN={};C(jN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>WN});import{sql as l_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],bX=new Set(["review_requested","review_approved","review_changes_requested"]);async function sX(_){await pm(_,WN)}async function _Z(_){await pm(_,WN.filter((x)=>!bX.has(x)))}async function pm(_,x){await l_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l_.join(x.map((u)=>l_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as xZ}from"kysely";async function uZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(xZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function CZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var YN={};C(YN,{up:()=>NZ,down:()=>TZ,ACTIONS:()=>FN});import{sql as e_}from"kysely";var FN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],KZ=new Set(["merge_conflict_resolution"]);async function NZ(_){await gm(_,FN)}async function TZ(_){await gm(_,FN.filter((x)=>!KZ.has(x)))}async function gm(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var DN={};C(DN,{up:()=>mZ,down:()=>zZ});import{sql as L_}from"kysely";async function mZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await L_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function zZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await L_`
|
|
1712
1719
|
create index idx_org_billing_benefits_pending
|
|
1713
1720
|
on organization_billing (updated_at)
|
|
1714
1721
|
where benefits_reference_id is not null
|
|
1715
|
-
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(
|
|
1722
|
+
`.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(L_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).execute()}var HN={};C(HN,{up:()=>EZ,down:()=>$Z});import{sql as d_}from"kysely";async function EZ(_){await d_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await d_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function $Z(_){await d_`
|
|
1716
1723
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1717
1724
|
RETURNS trigger AS $fn$
|
|
1718
1725
|
BEGIN
|
|
@@ -1733,40 +1740,40 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1733
1740
|
RETURN NEW;
|
|
1734
1741
|
END;
|
|
1735
1742
|
$fn$ LANGUAGE plpgsql;
|
|
1736
|
-
`.execute(_),await
|
|
1743
|
+
`.execute(_),await d_`
|
|
1737
1744
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1738
1745
|
BEFORE INSERT ON connection_aggregations
|
|
1739
1746
|
FOR EACH ROW
|
|
1740
1747
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1741
|
-
`.execute(_)}var
|
|
1748
|
+
`.execute(_)}var MN={};C(MN,{up:()=>UZ,down:()=>JZ});import{sql as qm}from"kysely";async function UZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qm`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function JZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var RN={};C(RN,{up:()=>PZ,down:()=>QZ});import{sql as im}from"kysely";async function PZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(im`now()`)).execute()}async function QZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var GN={};C(GN,{up:()=>XZ,down:()=>ZZ});import{sql as BN}from"kysely";async function XZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(BN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await BN`
|
|
1742
1749
|
create index idx_task_quota_claims_org_period_live
|
|
1743
1750
|
on task_quota_claims (organization_id, period_key)
|
|
1744
1751
|
where state <> 'released'
|
|
1745
|
-
`.execute(_)}async function
|
|
1752
|
+
`.execute(_)}async function ZZ(_){await BN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var ON={};C(ON,{up:()=>WZ,down:()=>jZ});async function WZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function jZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var SN={};C(SN,{up:()=>LZ,down:()=>FZ});async function LZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function FZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var fN={};C(fN,{up:()=>YZ,down:()=>DZ});import{sql as cm}from"kysely";async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(cm`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(cm`monthly_task_executions > 0`)).execute()}async function DZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as HZ}from"kysely";async function MZ(_){await HZ`
|
|
1746
1753
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1747
1754
|
ON task_board_items (updated_at, id)
|
|
1748
1755
|
WHERE status = 'in_review'
|
|
1749
1756
|
AND assignee_id = 'super-agent'
|
|
1750
1757
|
AND dismissed_at IS NULL
|
|
1751
|
-
`.execute(_)}async function
|
|
1758
|
+
`.execute(_)}async function RZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var IN={};C(IN,{up:()=>BZ,down:()=>GZ});import{sql as hm}from"kysely";async function BZ(_){await hm`
|
|
1752
1759
|
ALTER TABLE task_board_items
|
|
1753
1760
|
ADD COLUMN last_swept_at timestamptz
|
|
1754
|
-
`.execute(_)}async function
|
|
1761
|
+
`.execute(_)}async function GZ(_){await hm`
|
|
1755
1762
|
ALTER TABLE task_board_items
|
|
1756
1763
|
DROP COLUMN last_swept_at
|
|
1757
|
-
`.execute(_)}var
|
|
1764
|
+
`.execute(_)}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});import{sql as b_}from"kysely";async function OZ(_){await b_`
|
|
1758
1765
|
ALTER TABLE task_board_items
|
|
1759
1766
|
ADD COLUMN retry_at timestamptz,
|
|
1760
1767
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1761
|
-
`.execute(_),await
|
|
1768
|
+
`.execute(_),await b_`
|
|
1762
1769
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1763
1770
|
ON task_board_items (retry_at)
|
|
1764
1771
|
WHERE retry_at IS NOT NULL
|
|
1765
|
-
`.execute(_)}async function
|
|
1772
|
+
`.execute(_)}async function SZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
|
|
1766
1773
|
ALTER TABLE task_board_items
|
|
1767
1774
|
DROP COLUMN retry_at,
|
|
1768
1775
|
DROP COLUMN retry_attempts
|
|
1769
|
-
`.execute(_)}var
|
|
1776
|
+
`.execute(_)}var wN={};C(wN,{up:()=>fZ,down:()=>AZ});import{sql as VN}from"kysely";async function fZ(_){await VN`
|
|
1770
1777
|
CREATE TABLE org_repo_sync (
|
|
1771
1778
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1772
1779
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1784,11 +1791,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1784
1791
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1785
1792
|
UNIQUE (organization_id, volume)
|
|
1786
1793
|
)
|
|
1787
|
-
`.execute(_),await
|
|
1794
|
+
`.execute(_),await VN`
|
|
1788
1795
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1789
1796
|
ON org_repo_sync (organization_id)
|
|
1790
1797
|
WHERE enabled
|
|
1791
|
-
`.execute(_)}async function
|
|
1798
|
+
`.execute(_)}async function AZ(_){await VN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var nN={};C(nN,{up:()=>yZ,down:()=>VZ,ACTIONS:()=>kN});import{sql as s_}from"kysely";var kN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],IZ=new Set(["merge_failed"]);async function yZ(_){await tm(_,kN)}async function VZ(_){await tm(_,kN.filter((x)=>!IZ.has(x)))}async function tm(_,x){await s_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await s_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${s_.join(x.map((u)=>s_.lit(u)))}))`.execute(_)}var vN={};C(vN,{up:()=>wZ,down:()=>kZ});async function wZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function kZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var pN={};C(pN,{up:()=>nZ,down:()=>vZ});import{sql as x_}from"kysely";async function nZ(_){await x_`
|
|
1792
1799
|
CREATE TABLE org_jira_integrations (
|
|
1793
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1794
1801
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1808,7 +1815,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1808
1815
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1809
1816
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
1810
1817
|
)
|
|
1811
|
-
`.execute(_),await
|
|
1818
|
+
`.execute(_),await x_`
|
|
1812
1819
|
CREATE TABLE task_board_item_jira_links (
|
|
1813
1820
|
item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
|
|
1814
1821
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1819,7 +1826,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1819
1826
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1820
1827
|
UNIQUE (organization_id, jira_issue_id)
|
|
1821
1828
|
)
|
|
1822
|
-
`.execute(_),await
|
|
1829
|
+
`.execute(_),await x_`
|
|
1823
1830
|
CREATE TABLE task_board_comment_jira_links (
|
|
1824
1831
|
comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
|
|
1825
1832
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1827,7 +1834,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1827
1834
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1828
1835
|
UNIQUE (organization_id, jira_comment_id)
|
|
1829
1836
|
)
|
|
1830
|
-
`.execute(_)}async function
|
|
1837
|
+
`.execute(_)}async function vZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var gN={};C(gN,{up:()=>gZ,down:()=>qZ});import{sql as pZ}from"kysely";async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await pZ`
|
|
1831
1838
|
update task_board_items as t
|
|
1832
1839
|
set key_seq = numbered.seq
|
|
1833
1840
|
from (
|
|
@@ -1840,25 +1847,25 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1840
1847
|
from task_board_items
|
|
1841
1848
|
) as numbered
|
|
1842
1849
|
where t.id = numbered.id
|
|
1843
|
-
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function
|
|
1850
|
+
`.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function qZ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var qN={};C(qN,{up:()=>iZ,down:()=>cZ});import{sql as om}from"kysely";async function iZ(_){await om`
|
|
1844
1851
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1845
1852
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1846
1853
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1847
|
-
`.execute(_)}async function
|
|
1854
|
+
`.execute(_)}async function cZ(_){await om`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var cN={};C(cN,{up:()=>hZ,down:()=>tZ});import{sql as iN}from"kysely";async function hZ(_){await iN`
|
|
1848
1855
|
ALTER TABLE thread_message_parts
|
|
1849
1856
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1850
|
-
`.execute(_),await
|
|
1857
|
+
`.execute(_),await iN`
|
|
1851
1858
|
ALTER TABLE thread_message_parts
|
|
1852
1859
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1853
|
-
`.execute(_)}async function
|
|
1860
|
+
`.execute(_)}async function tZ(_){await iN`
|
|
1854
1861
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1855
|
-
`.execute(_)}var
|
|
1862
|
+
`.execute(_)}var hN={};C(hN,{up:()=>oZ,down:()=>aZ});async function oZ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function aZ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tN={};C(tN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await rZ`
|
|
1856
1863
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1857
1864
|
ON task_board_items (updated_at)
|
|
1858
1865
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1859
|
-
`.execute(_)}async function
|
|
1866
|
+
`.execute(_)}async function eZ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var oN={};C(oN,{up:()=>dZ,down:()=>bZ,TYPES:()=>am});import{sql as q}from"kysely";var am=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function dZ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(am.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1860
1867
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1861
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1868
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function bZ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as rm}from"kysely";async function sZ(_){await rm`
|
|
1862
1869
|
UPDATE org_jira_integrations
|
|
1863
1870
|
SET status_mapping = (
|
|
1864
1871
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1873,7 +1880,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1873
1880
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1874
1881
|
WHERE jsonb_typeof(value) = 'array'
|
|
1875
1882
|
)
|
|
1876
|
-
`.execute(_)}async function
|
|
1883
|
+
`.execute(_)}async function _6(_){await rm`
|
|
1877
1884
|
UPDATE org_jira_integrations
|
|
1878
1885
|
SET status_mapping = (
|
|
1879
1886
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1888,7 +1895,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1888
1895
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1889
1896
|
WHERE jsonb_typeof(value) = 'array'
|
|
1890
1897
|
)
|
|
1891
|
-
`.execute(_)}var
|
|
1898
|
+
`.execute(_)}var lN={};C(lN,{up:()=>u6,down:()=>C6,TYPES:()=>rN});import{sql as _x}from"kysely";var rN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],x6=new Set(["mentioned"]);async function u6(_){await lm(_,rN)}async function C6(_){await lm(_,rN.filter((x)=>!x6.has(x)))}async function lm(_,x){await _x`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await _x`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var dN={};C(dN,{up:()=>T6,down:()=>m6,ACTIONS:()=>eN});import{sql as i}from"kysely";var K6=["bug","feature","chore","spike","security"],eN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],N6=new Set(["type_changed"]);async function T6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(K6.map((x)=>i.lit(x)))}))`.execute(_),await em(_,eN)}async function m6(_){await em(_,eN.filter((x)=>!N6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function em(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var bN={};C(bN,{up:()=>z6,down:()=>E6});import{sql as W}from"kysely";var bm=["bug","feature","chore","spike","security"],dm="chore";async function z6(_){await W`UPDATE task_board_items SET type = ${W.lit(dm)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(dm)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_)}async function E6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(bm.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var sN={};C(sN,{up:()=>$6,down:()=>U6});import{sql as u_}from"kysely";async function $6(_){await u_`
|
|
1892
1899
|
CREATE TABLE task_board_sprints (
|
|
1893
1900
|
id text PRIMARY KEY,
|
|
1894
1901
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1903,44 +1910,44 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1903
1910
|
CHECK (state IN ('active', 'future', 'closed')),
|
|
1904
1911
|
UNIQUE (organization_id, jira_sprint_id)
|
|
1905
1912
|
)
|
|
1906
|
-
`.execute(_),await
|
|
1913
|
+
`.execute(_),await u_`
|
|
1907
1914
|
CREATE INDEX idx_task_board_sprints_org
|
|
1908
1915
|
ON task_board_sprints (organization_id, starts_at)
|
|
1909
|
-
`.execute(_),await
|
|
1916
|
+
`.execute(_),await u_`
|
|
1910
1917
|
ALTER TABLE task_board_items
|
|
1911
1918
|
ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
|
|
1912
|
-
`.execute(_),await
|
|
1919
|
+
`.execute(_),await u_`
|
|
1913
1920
|
CREATE INDEX idx_task_board_items_sprint
|
|
1914
1921
|
ON task_board_items (organization_id, sprint_id)
|
|
1915
1922
|
WHERE sprint_id IS NOT NULL
|
|
1916
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1923
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function U6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var _T={};C(_T,{up:()=>P6,down:()=>Q6});import{sql as J6}from"kysely";async function P6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function Q6(_){await J6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var xT={};C(xT,{up:()=>Z6,down:()=>W6});import{sql as X6}from"kysely";async function Z6(_){await X6`
|
|
1917
1924
|
UPDATE org_jira_integrations
|
|
1918
1925
|
SET last_synced_at = NULL,
|
|
1919
1926
|
last_sync_error = NULL
|
|
1920
1927
|
WHERE last_synced_at IS NOT NULL
|
|
1921
|
-
`.execute(_)}async function
|
|
1928
|
+
`.execute(_)}async function W6(){}var uT={};C(uT,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
|
|
1922
1929
|
UPDATE org_jira_integrations
|
|
1923
1930
|
SET last_synced_at = NULL,
|
|
1924
1931
|
last_sync_error = NULL
|
|
1925
1932
|
WHERE last_synced_at IS NOT NULL
|
|
1926
|
-
`.execute(_)}async function
|
|
1933
|
+
`.execute(_)}async function F6(){}var KT={};C(KT,{up:()=>Y6,down:()=>D6});import{sql as CT}from"kysely";async function Y6(_){await CT`
|
|
1927
1934
|
ALTER TABLE org_jira_integrations
|
|
1928
1935
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1929
|
-
`.execute(_),await
|
|
1936
|
+
`.execute(_),await CT`
|
|
1930
1937
|
UPDATE org_jira_integrations
|
|
1931
1938
|
SET rescan_pending = true
|
|
1932
1939
|
WHERE last_synced_at IS NULL
|
|
1933
|
-
`.execute(_)}async function
|
|
1940
|
+
`.execute(_)}async function D6(_){await CT`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var NT={};C(NT,{up:()=>H6,down:()=>M6});async function H6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function M6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var TT={};C(TT,{up:()=>R6,down:()=>B6});import{sql as sm}from"kysely";async function R6(_){await sm`
|
|
1934
1941
|
ALTER TABLE invitation
|
|
1935
1942
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1936
|
-
`.execute(_)}async function
|
|
1943
|
+
`.execute(_)}async function B6(_){await sm`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var zT={};C(zT,{up:()=>G6,down:()=>O6});import{sql as mT}from"kysely";async function G6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await mT`
|
|
1937
1944
|
INSERT INTO task_board_column_automations
|
|
1938
1945
|
(id, organization_id, column_key, prompt)
|
|
1939
1946
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1940
1947
|
FROM org_jira_integrations
|
|
1941
1948
|
WHERE auto_delegate = true
|
|
1942
1949
|
ON CONFLICT DO NOTHING
|
|
1943
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function O6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var ET={};C(ET,{up:()=>S6,down:()=>f6});import{sql as F_}from"kysely";async function S6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await F_`
|
|
1944
1951
|
UPDATE task_board_items i
|
|
1945
1952
|
SET review_cycle_started_at = (
|
|
1946
1953
|
SELECT max(a.occurred_at)
|
|
@@ -1950,35 +1957,35 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1950
1957
|
AND a.data ->> 'to' = 'in_review'
|
|
1951
1958
|
)
|
|
1952
1959
|
WHERE i.status = 'in_review'
|
|
1953
|
-
`.execute(_),await
|
|
1960
|
+
`.execute(_),await F_`
|
|
1954
1961
|
CREATE INDEX idx_task_board_items_review_cycle
|
|
1955
1962
|
ON task_board_items (updated_at, id)
|
|
1956
1963
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1957
1964
|
AND assignee_id = 'super-agent'
|
|
1958
1965
|
AND dismissed_at IS NULL
|
|
1959
|
-
`.execute(_),await
|
|
1966
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function f6(_){await F_`
|
|
1960
1967
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1961
1968
|
ON task_board_items (updated_at, id)
|
|
1962
1969
|
WHERE status = 'in_review'
|
|
1963
1970
|
AND assignee_id = 'super-agent'
|
|
1964
1971
|
AND dismissed_at IS NULL
|
|
1965
|
-
`.execute(_),await
|
|
1972
|
+
`.execute(_),await F_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var $T={};C($T,{up:()=>A6,down:()=>I6});import{sql as _z}from"kysely";async function A6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_z`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function I6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var JT={};C(JT,{up:()=>V6,down:()=>w6,ACTIONS:()=>UT});import{sql as xx}from"kysely";var UT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],y6=new Set(["review_verdict_requested"]);async function V6(_){await xz(_,UT)}async function w6(_){await xz(_,UT.filter((x)=>!y6.has(x)))}async function xz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var PT={};C(PT,{up:()=>k6,down:()=>n6});import{sql as ux}from"kysely";async function k6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await ux`
|
|
1966
1973
|
ALTER TABLE task_board_items
|
|
1967
1974
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1968
1975
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
1969
|
-
`.execute(_),await
|
|
1976
|
+
`.execute(_),await ux`
|
|
1970
1977
|
ALTER TABLE task_board_items
|
|
1971
1978
|
ADD CONSTRAINT task_board_items_board_column_fkey
|
|
1972
1979
|
FOREIGN KEY (board_column_org, status)
|
|
1973
1980
|
REFERENCES task_board_columns (organization_id, key)
|
|
1974
1981
|
ON DELETE RESTRICT
|
|
1975
|
-
`.execute(_)}async function
|
|
1982
|
+
`.execute(_)}async function n6(_){await ux`
|
|
1976
1983
|
ALTER TABLE task_board_items
|
|
1977
1984
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1978
|
-
`.execute(_),await
|
|
1985
|
+
`.execute(_),await ux`
|
|
1979
1986
|
ALTER TABLE task_board_items
|
|
1980
1987
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1981
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
1988
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var QT={};C(QT,{up:()=>v6,down:()=>p6});async function v6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function p6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var ZT={};C(ZT,{up:()=>q6,down:()=>i6,ACTIONS:()=>XT});import{sql as Cx}from"kysely";var XT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],g6=new Set(["sprint_changed"]);async function q6(_){await uz(_,XT)}async function i6(_){await uz(_,XT.filter((x)=>!g6.has(x)))}async function uz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var WT={};C(WT,{up:()=>h6,down:()=>t6});import{sql as c6}from"kysely";async function h6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(c6`'[]'::jsonb`)).execute()}async function t6(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var jT={};C(jT,{up:()=>o6,down:()=>a6});import{sql as Cz}from"kysely";async function o6(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Cz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function a6(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var LT={};C(LT,{up:()=>l6,down:()=>e6});import{sql as r6}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await r6`
|
|
1982
1989
|
UPDATE task_board_items i
|
|
1983
1990
|
SET external_url = t.url,
|
|
1984
1991
|
description = CASE
|
|
@@ -1997,11 +2004,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
1997
2004
|
ON g.organization_id = l.organization_id
|
|
1998
2005
|
) t
|
|
1999
2006
|
WHERE t.item_id = i.id
|
|
2000
|
-
`.execute(_)}async function
|
|
2007
|
+
`.execute(_)}async function e6(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var FT={};C(FT,{up:()=>b6,down:()=>s6,ACTIONS:()=>Kz});import{sql as Q}from"kysely";var d6=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Kz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function b6(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
|
|
2001
2008
|
UPDATE task_board_items
|
|
2002
2009
|
SET status = 'triage'
|
|
2003
|
-
WHERE status NOT IN (${Q.join(
|
|
2004
|
-
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await
|
|
2010
|
+
WHERE status NOT IN (${Q.join(d6.map((x)=>Q.lit(x)))})
|
|
2011
|
+
`.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await _W(_,Kz),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
|
|
2005
2012
|
ALTER TABLE task_board_item_jira_links
|
|
2006
2013
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2007
2014
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2013,11 +2020,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2013
2020
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2014
2021
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2015
2022
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2016
|
-
`.execute(_)}async function
|
|
2023
|
+
`.execute(_)}async function s6(){}async function _W(_,x){await Q`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Q`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Q.join(x.map((u)=>Q.lit(u)))}))`.execute(_)}var YT={};C(YT,{up:()=>xW,down:()=>uW});import{sql as C_}from"kysely";async function xW(_){await C_`
|
|
2017
2024
|
ALTER TABLE task_board_items
|
|
2018
2025
|
ADD COLUMN IF NOT EXISTS source text
|
|
2019
2026
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
2020
|
-
`.execute(_),await
|
|
2027
|
+
`.execute(_),await C_`
|
|
2021
2028
|
CREATE TABLE IF NOT EXISTS org_jira_column_automations (
|
|
2022
2029
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2023
2030
|
jira_status text NOT NULL,
|
|
@@ -2026,7 +2033,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2026
2033
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
2027
2034
|
PRIMARY KEY (organization_id, jira_status)
|
|
2028
2035
|
)
|
|
2029
|
-
`.execute(_),await
|
|
2036
|
+
`.execute(_),await C_`
|
|
2030
2037
|
CREATE TABLE IF NOT EXISTS jira_trigger_claims (
|
|
2031
2038
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
2032
2039
|
jira_issue_id text NOT NULL,
|
|
@@ -2034,24 +2041,24 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2034
2041
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2035
2042
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2036
2043
|
)
|
|
2037
|
-
`.execute(_)}async function
|
|
2044
|
+
`.execute(_)}async function uW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var DT={};C(DT,{up:()=>CW,down:()=>KW});import{sql as Y_}from"kysely";async function CW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(Y_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
|
|
2038
2045
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2039
2046
|
ON organization_notices (organization_id)
|
|
2040
2047
|
WHERE resolved_at IS NULL
|
|
2041
|
-
`.execute(_),await
|
|
2048
|
+
`.execute(_),await Y_`
|
|
2042
2049
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2043
2050
|
ON organization_notices (organization_id, created_at DESC)
|
|
2044
|
-
`.execute(_)}async function
|
|
2051
|
+
`.execute(_)}async function KW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var MT={};C(MT,{up:()=>QW,down:()=>XW});import{sql as HT}from"kysely";import{sql as aj}from"kysely";var Nz=50000000,NW=1e5;function TW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>NW)return 1/0;let T=K.pop();if(typeof T==="string")u+=T.length;else if(Array.isArray(T))for(let m of T)K.push(m);else if(T!==null&&typeof T==="object")for(let m of Object.values(T))K.push(m)}return u}var mW=/\u0000/g,zW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,EW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,$W=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,UW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JW(_){return _.replace(mW,"").replace(zW,"\uFFFD").replace(EW,"$1***@").replace($W,"$1***").replace(UW,"[base64 data omitted]")}function PW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Tz(_){if(TW(_,Nz)>Nz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JW(u);if(PW(u))return{type:"text",text:"[image omitted]"};return u})}var mz=20;async function QW(_){let x=await HT`
|
|
2045
2052
|
SELECT id FROM thread_message_parts
|
|
2046
2053
|
WHERE pg_column_size(payload) > 8192
|
|
2047
2054
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2048
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2055
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=mz){let N=x.rows.slice(u,u+mz).map((T)=>T.id),K=await HT`
|
|
2049
2056
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2050
|
-
`.execute(_);for(let T of K.rows){let m=
|
|
2057
|
+
`.execute(_);for(let T of K.rows){let m=Tz(T.payload);if(m===JSON.stringify(T.payload))continue;await HT`
|
|
2051
2058
|
UPDATE thread_message_parts
|
|
2052
2059
|
SET payload = ${m}::jsonb
|
|
2053
2060
|
WHERE id = ${T.id}
|
|
2054
|
-
`.execute(_)}}}async function
|
|
2061
|
+
`.execute(_)}}}async function XW(){}var RT={};C(RT,{up:()=>ZW,down:()=>WW});async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var BT={};C(BT,{up:()=>jW,down:()=>LW});import{sql as U}from"kysely";async function jW(_){await U`
|
|
2055
2062
|
CREATE TABLE git_provider_accounts (
|
|
2056
2063
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2057
2064
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2295,11 +2302,11 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2295
2302
|
AND r.organization_id = s.organization_id
|
|
2296
2303
|
AND r.host = 'github.com'
|
|
2297
2304
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2298
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2305
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function LW(_){await U`
|
|
2299
2306
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2300
2307
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2301
2308
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2302
|
-
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var
|
|
2309
|
+
`.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var GT={};C(GT,{up:()=>YW,down:()=>DW});import{sql as I}from"kysely";var FW=I`
|
|
2303
2310
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2304
2311
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2305
2312
|
BEGIN
|
|
@@ -2308,7 +2315,7 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2308
2315
|
RETURN NULL;
|
|
2309
2316
|
END;
|
|
2310
2317
|
$$
|
|
2311
|
-
`;async function
|
|
2318
|
+
`;async function YW(_){await FW.execute(_),await I`
|
|
2312
2319
|
ALTER TABLE connections
|
|
2313
2320
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2314
2321
|
`.execute(_),await I`
|
|
@@ -2370,21 +2377,21 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2370
2377
|
AND r.host = 'github.com'
|
|
2371
2378
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2372
2379
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2373
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2380
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function DW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2374
2381
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2375
|
-
`.execute(_)}var ZW={"001-initial-schema":zu,"002-organization-settings":Eu,"003-connection-schema-align":$u,"004-remove-models-binding":Uu,"005-connection-configuration":Ju,"006-add-views-to-settings":Pu,"007-monitoring-logs":Qu,"008-event-bus":Xu,"009-drop-audit-logs":Zu,"010-gateways":Wu,"011-gateway-icon":ju,"012-gateway-tool-selection-mode":Lu,"013-monitoring-user-agent-gateway":Fu,"014-gateway-resources-prompts":Du,"015-monitoring-properties":Yu,"016-downstream-token-client-info":Hu,"017-downstream-token-remove-userid":Mu,"018-drop-gateway-tool-selection-strategy":Ru,"019-remove-gateway-is-default":Bu,"020-enabled-plugins":Gu,"021-threads":Ou,"022-rename-gateway-to-virtual-mcp":Su,"023-optimize-thread-indexes":fu,"024-consolidate-virtual-mcp":Au,"025-add-monitoring-virtual-mcp-id":Iu,"026-restrict-child-connection-delete":yu,"027-update-management-mcp-url":wu,"028-update-management-mcp-to-self":nu,"029-add-updated-by-to-connections":vu,"030-member-tags":pu,"031-add-dependency-mode":gu,"032-projects":qu,"033-thread-status":iu,"034-monitoring-dashboards":cu,"035-project-connections":hu,"036-update-registry-url":tu,"037-ai-provider-keys":ou,"038-oauth-pkce-states":au,"039-automations":ru,"040-replace-next-run-at-with-last-run-at":lu,"041-ai-provider-keys-unique-constraint":eu,"042-rename-mesh-mcp-to-cms-mcp":du,"043-rename-cms-mcp-to-deco-cms":su,"044-drop-connections-tools-column":bu,"045-thread-context-start-message":_C,"046-remove-object-storage-plugin":uC,"047-add-next-run-at":CC,"048-merge-projects-agents":NC,"049-remove-org-admin-projects":TC,"050-durable-agent-runs":mC,"051-org-sso":EC,"052-thread-agent-ids":$C,"053-registry-config":UC,"054-connection-slug":PC,"055-spaces":QC,"056-automation-project-scope":XC,"057-thread-virtual-mcp-id":ZC,"058-trigger-callback-tokens":WC,"059-kv":jC,"060-member-index":LC,"061-downstream-token-connection-index":FC,"062-private-registry":DC,"063-event-subscriptions-enabled-boolean":YC,"064-brand-context":HC,"065-organization-domains":MC,"066-brand-context-structured":RC,"067-threads-metadata":BC,"068-threads-branch":GC,"069-sandbox-runner-state":OC,"070-model-categories":SC,"071-default-home-agents":fC,"072-ai-provider-key-preset-id":AC,"073-backfill-basic-usage-roles":IC,"074-sandbox-runner-state-handle-nonunique":yC,"075-thread-inflight-async-jobs":VC,"076-automations-drop-agent-json":wC,"077-tier-only-model-selection":nC,"078-automation-tool-call-kind":vC,"079-strip-legacy-freestyle-vm-map-entries":pC,"080-async-research-jobs":gC,"081-async-research-jobs-result-content":qC,"082-secrets":iC,"083-thread-run-locally":cC,"084-drop-host-sandbox-rows":hC,"085-rename-runner-kind":tC,"086-thread-pins-and-vm-map-rekey":oC,"087-fix-vm-map-rekey":aC,"088-purge-cli-activate-keys":rC,"089-rename-remote-user-to-desktop":lC,"090-automation-webhook-triggers":eC,"091-organization-domains-allow-multi":dC,"092-sandbox-naming-uniformization":sC,"093-backfill-global-search-basic-usage":bC,"094-org-file-configs":xK,"095-remove-automation-tool-call-kind":uK,"096-org-file-configs-public-url-base":CK,"097-drop-local-docker-sandbox-state":NK,"098-thread-message-parts":TK,"099-run-fence":mK,"100-link-transport":zK,"101-cancel-requested-at":EK,"102-observational-agent":$K,"103-revert-observational-agent":UK,"104-agent-sandbox-provider-kind":PK,"105-org-fs":QK,"106-automation-tools":XK,"107-org-fs-public-org":ZK,"108-automation-max-agent-steps":WK,"109-thread-message-parts-per-message-seq":jK,"110-backfill-ghs-token-expiry":LK,"111-org-fs-thread-id":FK,"112-org-file-configs-credential-type":DK,"113-thread-failure-reason":YK,"114-run-acked-seq":HK,"115-thread-projected-seq":MK,"116-org-sites":RK,"117-org-file-configs-site-slug":BK,"118-organization-domains-multi-verify":GK,"119-organization-join-requests":OK,"120-org-fs-read-public":SK,"121-org-fs-share-password":fK,"122-split-web-research-tier":yK,"123-connection-credential-vault":VK,"124-drop-thread-projected-seq":wK,"125-github-child-single-parent":kK,"126-task-board":vK,"127-task-board-due-date":pK,"128-reports-only":gK,"129-task-board-assigned-by":qK,"130-task-board-thread-id":iK,"131-task-board-thread-link-cascade":cK,"132-task-board-item-prs":hK,"133-dedupe-duplicate-members":tK,"134-drop-task-board-enabled":oK,"135-task-board-item-fk-cascade":aK,"136-task-board-import-idempotency":rK,"137-agent-sandbox-runner-state":lK,"138-agent-sandbox-sessions":eK,"139-organization-billing":dK,"140-seat-change-log":sK,"141-benefits-sync-pending":bK,"142-stripe-event-watermark":_N,"143-armed-report-url":xN,"144-benefits-pending-index":uN,"145-user-model-preferences":CN,"146-organization-main-agent":KN,"147-drop-agent-sandbox-tables":NN,"148-org-flags":TN,"149-task-board-item-sort-order":mN,"150-task-board-activity":zN,"151-task-board-tags":$N,"152-repair-connection-slug":JN,"153-task-board-latest-assistant-part-index":PN,"154-task-board-qa-activity":XN,"155-task-board-review-claims":ZN,"156-task-board-conflict-activity":jN,"157-drop-seat-billing":LN,"158-drop-github-child-single-parent":FN,"159-task-board-comments":DN,"160-task-quota-billing":YN,"161-task-quota-claim-state":MN,"162-claude-subscriptions":RN,"163-task-board-item-dismissed":BN,"164-per-org-task-quota":GN,"165-task-board-pending-review-index":ON,"166-task-board-last-swept-at":SN,"167-task-board-run-retry":fN,"168-org-repo-sync":IN,"169-task-board-merge-failed-activity":VN,"170-task-board-item-repo":wN,"171-jira-integration":kN,"172-task-board-item-key-seq":nN,"173-thread-github-repo-connection-index":vN,"174-thread-message-parts-persisted-at":gN,"175-task-board-sprints":qN,"176-task-board-done-sweep-index":iN,"177-notifications":cN,"178-jira-status-mapping-array":hN,"179-notification-mentioned":oN,"180-task-board-item-type":rN,"181-task-board-item-type-required":lN,"182-task-board-sprints-entities":eN,"183-drop-jira-jql-filter":dN,"184-jira-rescan-after-scope-change":sN,"185-jira-rescan-existing-cards":bN,"186-jira-rescan-pending-flag":xT,"187-task-board-comment-thread":uT,"188-invitation-auto-accept":CT,"189-task-board-column-automations":NT,"190-task-board-review-cycle-started-at":TT,"191-task-board-columns":mT,"192-task-board-verdict-nudge-activity":ET,"193-task-board-status-column-fk":$T,"194-jira-link-sprint":UT,"195-task-board-sprint-activity":PT,"196-task-board-column-tracker-statuses":QT,"197-task-board-prompts":XT,"198-task-board-external-url":ZT,"199-drop-jira-mirror-and-org-columns":WT,"200-jira-run-trigger":jT,"201-organization-notices":LT,"202-redact-base64-thread-parts":DT,"203-task-board-preview-routes":YT,"204-git-provider-accounts-and-repositories":HT,"205-repository-references":MT,"206-repository-consumers":mu,"207-task-board-prs-repo-idx":Tu,"208-github-connect-flows":Nu,"209-github-installation-authorization":Ku,"210-github-repository-authorization":ex,"211-user-fs-org":lx,"212-coding-agent-mcp-excluded":dx,"213-bitbucket-git-provider":sx,"214-connections-sanitized-id-idx":tx,"215-commerce-discovery-repository":ox,"216-github-cli-auth":rx,"217-experiments":bx,"218-thread-message-parts-error-idx":_u,"219-task-board-duplicate-reported-activity":uu,"220-jira-automation-continue-pr":Cu,"221-remove-private-registry":zx,"222-org-git-credentials":Ex,"223-drop-org-main-agent-id":hx,"224-repository-sandbox-image":$x,"225-thread-analytics-indexes":Jx,"226-deco-score-names":Qx,"227-task-board-finding-resolved-activity":Zx,"228-org-voice-config":mx,"229-jira-automation-from":Wx,"230-project-sidebar":jx,"231-jira-chat-agent":Lx,"232-task-board-prompt-skills":Dx,"233-remove-jira-chat-agent":Hx,"234-task-board-comment-audience":Mx,"235-prune-empty-thread-dirs":Rx,"236-task-board-sprints":Gx,"237-org-sites-project-link":Ox,"238-task-board-default-lanes":Sx,"239-task-board-retire-old-lanes":fx,"240-task-board-restore-todo":Ax,"241-automation-board-column-transition":Ix,"242-connection-url-slug":yx,"243-experiment-task-board-item":Vx,"244-connection-url-slug-rollout-backfill":wx,"245-automation-system-key":kx,"246-automation-pr-ready-trigger":nx,"247-automation-jira-transition":vx,"248-drop-retired-rule-tables":px,"249-task-board-item-project":gx,"250-github-copilot-subscriptions":qx,"251-org-shared-plans":ix,"252-automation-linked-chat-trigger":cx},ux=ZW;import{getMigrations as lW}from"better-auth/db";import{sso as eW}from"@better-auth/sso";import{organization as dW}from"@decocms/better-auth/plugins";import{admin as sW,apiKey as bW,jwt as _7,magicLink as x7,mcp as u7,openAPI as C7}from"better-auth/plugins";import{emailOTP as K7}from"better-auth/plugins/email-otp";import{Kysely as qW,PostgresDialect as Jz}from"kysely";import{Pool as Pz}from"pg";import{homedir as WW}from"os";var jW=new Set(["all","worker","api"]);function LW(_){let x=(_??"").trim();return jW.has(x)?x:"all"}var FW=new Set(["production","development","test"]);function DW(_){let x=(_??"").trim();return FW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function BT(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return BT(_,x,N)??u}function YW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function HW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function RT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function MW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function Cz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${WW()}/deco`,u=DW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:BT("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:YW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:HW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:RT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:RT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:MW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:BT("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:LW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:RT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var RW=null;function C_(){return RW??=Object.freeze(Cz(process.env))}import{createContextKey as AW,metrics as IW,propagation as K8,ROOT_CONTEXT as N8,SpanStatusCode as T8,trace as yW}from"@opentelemetry/api";import{logs as VW,SeverityNumber as GT}from"@opentelemetry/api-logs";import{OTLPLogExporter as E8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as wW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as J8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Q8}from"@opentelemetry/instrumentation-runtime-node";import{context as sj,propagation as bj,SpanKind as _5,SpanStatusCode as x5}from"@opentelemetry/api";var C5=globalThis.fetch;import{ExportResultCode as X5}from"@opentelemetry/core";import{ExportResultCode as Cx}from"@opentelemetry/core";import{mkdir as BW,rename as GW,writeFile as OW}from"fs/promises";import{join as Kx}from"path";class Nx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Cx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Cx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Cx.FAILED}});return Promise.resolve({code:Cx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Kx(this.basePath,x,...N):Kx(this.basePath,...N);if(!this.knownDirs.has(K))await BW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Kx(K,`.${T}.tmp`),z=Kx(K,T),E=_.join(`
|
|
2382
|
+
`.execute(_)}var HW={"001-initial-schema":Uu,"002-organization-settings":Ju,"003-connection-schema-align":Pu,"004-remove-models-binding":Qu,"005-connection-configuration":Xu,"006-add-views-to-settings":Zu,"007-monitoring-logs":Wu,"008-event-bus":ju,"009-drop-audit-logs":Lu,"010-gateways":Fu,"011-gateway-icon":Yu,"012-gateway-tool-selection-mode":Du,"013-monitoring-user-agent-gateway":Hu,"014-gateway-resources-prompts":Mu,"015-monitoring-properties":Ru,"016-downstream-token-client-info":Bu,"017-downstream-token-remove-userid":Gu,"018-drop-gateway-tool-selection-strategy":Ou,"019-remove-gateway-is-default":Su,"020-enabled-plugins":fu,"021-threads":Au,"022-rename-gateway-to-virtual-mcp":Iu,"023-optimize-thread-indexes":yu,"024-consolidate-virtual-mcp":Vu,"025-add-monitoring-virtual-mcp-id":wu,"026-restrict-child-connection-delete":ku,"027-update-management-mcp-url":vu,"028-update-management-mcp-to-self":gu,"029-add-updated-by-to-connections":qu,"030-member-tags":iu,"031-add-dependency-mode":cu,"032-projects":hu,"033-thread-status":tu,"034-monitoring-dashboards":ou,"035-project-connections":au,"036-update-registry-url":ru,"037-ai-provider-keys":lu,"038-oauth-pkce-states":eu,"039-automations":du,"040-replace-next-run-at-with-last-run-at":bu,"041-ai-provider-keys-unique-constraint":su,"042-rename-mesh-mcp-to-cms-mcp":_C,"043-rename-cms-mcp-to-deco-cms":xC,"044-drop-connections-tools-column":uC,"045-thread-context-start-message":CC,"046-remove-object-storage-plugin":NC,"047-add-next-run-at":TC,"048-merge-projects-agents":zC,"049-remove-org-admin-projects":EC,"050-durable-agent-runs":$C,"051-org-sso":JC,"052-thread-agent-ids":PC,"053-registry-config":QC,"054-connection-slug":ZC,"055-spaces":WC,"056-automation-project-scope":jC,"057-thread-virtual-mcp-id":LC,"058-trigger-callback-tokens":FC,"059-kv":YC,"060-member-index":DC,"061-downstream-token-connection-index":HC,"062-private-registry":MC,"063-event-subscriptions-enabled-boolean":RC,"064-brand-context":BC,"065-organization-domains":GC,"066-brand-context-structured":OC,"067-threads-metadata":SC,"068-threads-branch":fC,"069-sandbox-runner-state":AC,"070-model-categories":IC,"071-default-home-agents":yC,"072-ai-provider-key-preset-id":VC,"073-backfill-basic-usage-roles":wC,"074-sandbox-runner-state-handle-nonunique":kC,"075-thread-inflight-async-jobs":nC,"076-automations-drop-agent-json":vC,"077-tier-only-model-selection":gC,"078-automation-tool-call-kind":qC,"079-strip-legacy-freestyle-vm-map-entries":iC,"080-async-research-jobs":cC,"081-async-research-jobs-result-content":hC,"082-secrets":tC,"083-thread-run-locally":oC,"084-drop-host-sandbox-rows":aC,"085-rename-runner-kind":rC,"086-thread-pins-and-vm-map-rekey":lC,"087-fix-vm-map-rekey":eC,"088-purge-cli-activate-keys":dC,"089-rename-remote-user-to-desktop":bC,"090-automation-webhook-triggers":sC,"091-organization-domains-allow-multi":_K,"092-sandbox-naming-uniformization":xK,"093-backfill-global-search-basic-usage":uK,"094-org-file-configs":KK,"095-remove-automation-tool-call-kind":NK,"096-org-file-configs-public-url-base":TK,"097-drop-local-docker-sandbox-state":zK,"098-thread-message-parts":EK,"099-run-fence":$K,"100-link-transport":UK,"101-cancel-requested-at":JK,"102-observational-agent":PK,"103-revert-observational-agent":QK,"104-agent-sandbox-provider-kind":ZK,"105-org-fs":WK,"106-automation-tools":jK,"107-org-fs-public-org":LK,"108-automation-max-agent-steps":FK,"109-thread-message-parts-per-message-seq":YK,"110-backfill-ghs-token-expiry":DK,"111-org-fs-thread-id":HK,"112-org-file-configs-credential-type":MK,"113-thread-failure-reason":RK,"114-run-acked-seq":BK,"115-thread-projected-seq":GK,"116-org-sites":OK,"117-org-file-configs-site-slug":SK,"118-organization-domains-multi-verify":fK,"119-organization-join-requests":AK,"120-org-fs-read-public":IK,"121-org-fs-share-password":yK,"122-split-web-research-tier":kK,"123-connection-credential-vault":nK,"124-drop-thread-projected-seq":vK,"125-github-child-single-parent":pK,"126-task-board":qK,"127-task-board-due-date":iK,"128-reports-only":cK,"129-task-board-assigned-by":hK,"130-task-board-thread-id":tK,"131-task-board-thread-link-cascade":oK,"132-task-board-item-prs":aK,"133-dedupe-duplicate-members":rK,"134-drop-task-board-enabled":lK,"135-task-board-item-fk-cascade":eK,"136-task-board-import-idempotency":dK,"137-agent-sandbox-runner-state":bK,"138-agent-sandbox-sessions":sK,"139-organization-billing":_N,"140-seat-change-log":xN,"141-benefits-sync-pending":uN,"142-stripe-event-watermark":CN,"143-armed-report-url":KN,"144-benefits-pending-index":NN,"145-user-model-preferences":TN,"146-organization-main-agent":mN,"147-drop-agent-sandbox-tables":zN,"148-org-flags":EN,"149-task-board-item-sort-order":$N,"150-task-board-activity":UN,"151-task-board-tags":PN,"152-repair-connection-slug":XN,"153-task-board-latest-assistant-part-index":ZN,"154-task-board-qa-activity":jN,"155-task-board-review-claims":LN,"156-task-board-conflict-activity":YN,"157-drop-seat-billing":DN,"158-drop-github-child-single-parent":HN,"159-task-board-comments":MN,"160-task-quota-billing":RN,"161-task-quota-claim-state":GN,"162-claude-subscriptions":ON,"163-task-board-item-dismissed":SN,"164-per-org-task-quota":fN,"165-task-board-pending-review-index":AN,"166-task-board-last-swept-at":IN,"167-task-board-run-retry":yN,"168-org-repo-sync":wN,"169-task-board-merge-failed-activity":nN,"170-task-board-item-repo":vN,"171-jira-integration":pN,"172-task-board-item-key-seq":gN,"173-thread-github-repo-connection-index":qN,"174-thread-message-parts-persisted-at":cN,"175-task-board-sprints":hN,"176-task-board-done-sweep-index":tN,"177-notifications":oN,"178-jira-status-mapping-array":aN,"179-notification-mentioned":lN,"180-task-board-item-type":dN,"181-task-board-item-type-required":bN,"182-task-board-sprints-entities":sN,"183-drop-jira-jql-filter":_T,"184-jira-rescan-after-scope-change":xT,"185-jira-rescan-existing-cards":uT,"186-jira-rescan-pending-flag":KT,"187-task-board-comment-thread":NT,"188-invitation-auto-accept":TT,"189-task-board-column-automations":zT,"190-task-board-review-cycle-started-at":ET,"191-task-board-columns":$T,"192-task-board-verdict-nudge-activity":JT,"193-task-board-status-column-fk":PT,"194-jira-link-sprint":QT,"195-task-board-sprint-activity":ZT,"196-task-board-column-tracker-statuses":WT,"197-task-board-prompts":jT,"198-task-board-external-url":LT,"199-drop-jira-mirror-and-org-columns":FT,"200-jira-run-trigger":YT,"201-organization-notices":DT,"202-redact-base64-thread-parts":MT,"203-task-board-preview-routes":RT,"204-git-provider-accounts-and-repositories":BT,"205-repository-references":GT,"206-repository-consumers":$u,"207-task-board-prs-repo-idx":Eu,"208-github-connect-flows":zu,"209-github-installation-authorization":mu,"210-github-repository-authorization":sx,"211-user-fs-org":bx,"212-coding-agent-mcp-excluded":_u,"213-bitbucket-git-provider":xu,"214-connections-sanitized-id-idx":rx,"215-commerce-discovery-repository":lx,"216-github-cli-auth":dx,"217-experiments":uu,"218-thread-message-parts-error-idx":Cu,"219-task-board-duplicate-reported-activity":Nu,"220-jira-automation-continue-pr":Tu,"221-remove-private-registry":$x,"222-org-git-credentials":Ux,"223-drop-org-main-agent-id":ax,"224-repository-sandbox-image":Jx,"225-thread-analytics-indexes":Qx,"226-deco-score-names":Zx,"227-task-board-finding-resolved-activity":jx,"228-org-voice-config":Ex,"229-jira-automation-from":Lx,"230-project-sidebar":Fx,"231-jira-chat-agent":Yx,"232-task-board-prompt-skills":Hx,"233-remove-jira-chat-agent":Rx,"234-task-board-comment-audience":Bx,"235-prune-empty-thread-dirs":Gx,"236-task-board-sprints":Sx,"237-org-sites-project-link":fx,"238-task-board-default-lanes":Ax,"239-task-board-retire-old-lanes":Ix,"240-task-board-restore-todo":yx,"241-automation-board-column-transition":Vx,"242-connection-url-slug":wx,"243-experiment-task-board-item":kx,"244-connection-url-slug-rollout-backfill":nx,"245-automation-system-key":vx,"246-automation-pr-ready-trigger":px,"247-automation-jira-transition":gx,"248-drop-retired-rule-tables":qx,"249-task-board-item-project":ix,"250-github-copilot-subscriptions":cx,"251-org-shared-plans":hx,"252-automation-linked-chat-trigger":tx,"253-automation-pr-builtin-triggers":ox},Kx=HW;import{getMigrations as u9}from"better-auth/db";import{sso as C9}from"@better-auth/sso";import{organization as K9}from"@decocms/better-auth/plugins";import{admin as N9,apiKey as T9,jwt as m9,magicLink as z9,mcp as E9,openAPI as $9}from"better-auth/plugins";import{emailOTP as U9}from"better-auth/plugins/email-otp";import{Kysely as rW,PostgresDialect as Wz}from"kysely";import{Pool as jz}from"pg";import{homedir as MW}from"os";var RW=new Set(["all","worker","api"]);function BW(_){let x=(_??"").trim();return RW.has(x)?x:"all"}var GW=new Set(["production","development","test"]);function OW(_){let x=(_??"").trim();return GW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ST(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ST(_,x,N)??u}function SW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),T=K>0?N.slice(0,K).trim():"",m=K>0?N.slice(K+1).trim():"";if(!T||!m){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[T]=m}return x}function fW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function OT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function AW(_){return _===void 0||_===""||_==="true"||_==="1"}function D_(_,x){return _||x}function zz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${MW()}/deco`,u=OW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:D_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:D_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((T)=>T.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((T)=>T.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ST("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((T)=>T.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:SW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:fW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:OT(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:OT(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:AW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ST("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:BW(D_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:OT(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:D_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:D_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var IW=null;function K_(){return IW??=Object.freeze(zz(process.env))}import{createContextKey as vW,metrics as pW,propagation as J8,ROOT_CONTEXT as P8,SpanStatusCode as Q8,trace as gW}from"@opentelemetry/api";import{logs as qW,SeverityNumber as fT}from"@opentelemetry/api-logs";import{OTLPLogExporter as W8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as iW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as F8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D8}from"@opentelemetry/instrumentation-runtime-node";import{context as T5,propagation as m5,SpanKind as z5,SpanStatusCode as E5}from"@opentelemetry/api";var U5=globalThis.fetch;import{ExportResultCode as H5}from"@opentelemetry/core";import{ExportResultCode as Nx}from"@opentelemetry/core";import{mkdir as yW,rename as VW,writeFile as wW}from"fs/promises";import{join as Tx}from"path";class mx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Nx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Nx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Nx.FAILED}});return Promise.resolve({code:Nx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let T=x.get(K.partition);if(!T)T=[],x.set(K.partition,T);T.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,T])=>this.writeNDJSON(T,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let m of u)if(m.status==="fulfilled")K.add(m.value);let T=_.filter((m)=>!K.has(m.partition));this.bufferItems=T.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await yW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let T=`${crypto.randomUUID()}.ndjson`,m=Tx(K,`.${T}.tmp`),z=Tx(K,T),E=_.join(`
|
|
2376
2383
|
`)+`
|
|
2377
|
-
`;await
|
|
2384
|
+
`;await wW(m,E,{mode:384}),await VW(m,z)}}import{ExportResultCode as O5}from"@opentelemetry/core";import{AggregationTemporality as f5,DataPointType as A5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as n5}from"@opentelemetry/core";var q5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as A8,LoggerProvider as I8}from"@opentelemetry/sdk-logs";import{detectResources as V8,envDetector as w8,hostDetector as k8,osDetector as n8,processDetector as v8,resourceFromAttributes as p8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as q8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as h5}from"@opentelemetry/api-logs";import{NodeSDK as h8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as o8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as l5}from"@opentelemetry/api";var cW="__d",hW=vW("Current request"),tW=1;var $z=(_)=>{let u=new URL(_.url).searchParams.get(cW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Uz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,T){let m=_.getValue(hW);if(!m){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,T);return{decision:N_.RECORD_AND_SAMPLED}}let z=$z(m);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,T);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var r8=new iW({preventServerStart:!0}),l8=new Uz(new Jz(tW));var Ez=gW.getTracer("studio","1.0.0"),H_=pW.getMeter("studio","1.0.0"),oW=qW.getLogger("studio","1.0.0"),AT=(_,x,u)=>{let N={},K=u,T=u[u.length-1];if(T!==null&&typeof T==="object"&&!Array.isArray(T)&&!(T instanceof Error)&&Object.getPrototypeOf(T)===Object.prototype)N=T,K=u.slice(0,-1);let m=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");oW.emit({severityNumber:_,severityText:x,body:m,attributes:{"log.source":"console",...N}})},IT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{AT(fT.ERROR,"ERROR",_),IT.error(..._)};console.warn=(..._)=>{AT(fT.WARN,"WARN",_),IT.warn(..._)};console.debug=(..._)=>{AT(fT.DEBUG,"DEBUG",_),IT.debug(..._)};var yT,Pz=0,VT=500;function aW(){if(yT)return;let _=performance.now()+VT;yT=setInterval(()=>{let x=performance.now();Pz=Math.max(0,x-_),_=x+VT},VT),yT.unref?.()}function Qz(){return aW(),Pz}var lW=()=>H_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Xz=()=>H_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Zz=400,eW=100,dW=(_)=>({"db.status":_.level==="error"?"error":"success"}),bW=(_)=>(x)=>{let u=dW(x);if(x.queryDurationMillis>Zz){let N=Qz(),K=N>Zz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:zx()}})}if(lW().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function sW(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=zx(),T=_.idleCount===0&&_.totalCount>=K,m=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Xz().record(E,{"db.pool.outcome":T?"contended":"available"}),E>eW)if(T)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:m,total:_.totalCount,max:K});return z},(z)=>{throw Xz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Lz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Fz(){try{return K_().databasePgSsl}catch{return!1}}function zx(){try{return K_().databasePoolMax}catch{return 10}}function _9(_){let x=sW(new jz({connectionString:_,max:zx(),ssl:Fz(),...Lz})),u=new Wz({pool:x});return{type:"postgres",db:new rW({dialect:u,log:bW(x)}),pool:x}}function R_(){return K_().databaseUrl}function Yz(_){let x=_||R_();return new Wz({pool:new jz({connectionString:x,max:zx(),ssl:Fz(),...Lz})})}function x9(_){let x=_||R_();return _9(x)}async function Dz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===M_)M_=null}var M_=null;function wT(){if(!M_)M_=x9(R_());return M_}async function Hz(_){let u={database:Yz(_||R_()),plugins:[K9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),N9(),T9(),m9(),$9(),E9({loginPage:"/login"}),C9(),z9({sendMagicLink:async()=>{}}),U9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:T}=await u9(u);if(!N.length&&!K.length)return"up to date";return await T(),`${K.length+N.length} table(s) migrated`}async function kT(_,x){return(await o`
|
|
2378
2385
|
SELECT table_name FROM information_schema.tables
|
|
2379
2386
|
WHERE table_schema='public' AND table_name=${x}
|
|
2380
|
-
`.execute(_)).rows.length>0}async function
|
|
2387
|
+
`.execute(_)).rows.length>0}async function J9(_){if(await kT(_,"plugin_migrations"))return;await o`
|
|
2381
2388
|
CREATE TABLE plugin_migrations (
|
|
2382
2389
|
plugin_id TEXT NOT NULL,
|
|
2383
2390
|
name TEXT NOT NULL,
|
|
2384
2391
|
timestamp TEXT NOT NULL,
|
|
2385
2392
|
PRIMARY KEY (plugin_id, name)
|
|
2386
2393
|
)
|
|
2387
|
-
`.execute(_)}async function
|
|
2394
|
+
`.execute(_)}async function P9(_){if(!await kT(_,"kysely_migration"))return;let x=await o`
|
|
2388
2395
|
SELECT name, timestamp FROM kysely_migration
|
|
2389
2396
|
WHERE name LIKE '%/%'
|
|
2390
2397
|
`.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let T=K.indexOf("/");if(T===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let m=K.substring(0,T),z=K.substring(T+1);try{await o`
|
|
@@ -2395,6 +2402,6 @@ var Fz=Object.defineProperty;var Dz=(_)=>_;function Yz(_,x){this[_]=Dz.bind(null
|
|
|
2395
2402
|
WHERE plugin_id = ${m} AND name = ${z}
|
|
2396
2403
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${z}, keeping in old table`);continue}}await o`
|
|
2397
2404
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2398
|
-
`.execute(_)}}async function
|
|
2405
|
+
`.execute(_)}}async function Q9(_){if(!await kT(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2399
2406
|
SELECT name FROM kysely_migration
|
|
2400
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(
|
|
2407
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Kx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function X9(_){await J9(_),await P9(_);let x=new Mz({db:_,provider:{getMigrations:async()=>({...await Q9(_),...Kx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((T)=>{if(T.status==="Success")K++;else if(T.status==="Error")console.error(`Failed to execute migration "${T.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function Z9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Hz();let T=u??wT(),m=async()=>{if(!x&&!u)await Dz(T).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await X9(T.db);return await m(),{betterAuth:K,kysely:z}}catch(z){throw await m(),z}}async function R3(){let _=wT(),x=new Mz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Kx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await Z9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{X9 as runKyselyMigrations,Z9 as migrateToLatest,R3 as migrateDown};
|