decocms 4.506.0 → 4.507.0
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-YBOj2cK0.js → ActiveShapeUtils-qG-AEsLH.js} +1 -1
- package/dist/client/assets/{AlertCircle-SlWthUo-.js → AlertCircle-DZq02EzT.js} +1 -1
- package/dist/client/assets/{AreaChart-D7jrbsmW.js → AreaChart-BtdW-Fy2.js} +1 -1
- package/dist/client/assets/{ArrowLeft-KHwg-gY7.js → ArrowLeft-C_qdjo3L.js} +1 -1
- package/dist/client/assets/{ArrowUp-DcS4NtQu.js → ArrowUp-B_lKPC5O.js} +1 -1
- package/dist/client/assets/{BarChart-C_clG8Ob.js → BarChart-4XWgQXi5.js} +1 -1
- package/dist/client/assets/{Building02-CNZjLCzO.js → Building02-LYkR_QXB.js} +1 -1
- package/dist/client/assets/{CategoricalChart-DlYOL7Yr.js → CategoricalChart-CHtvdKKv.js} +1 -1
- package/dist/client/assets/{CheckCircle-BmoiDiMI.js → CheckCircle-B9QHilAa.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-DKuBdQt_.js → ChevronSelectorVertical-0ysVIDar.js} +1 -1
- package/dist/client/assets/{ChevronUp-BZdHrdSa.js → ChevronUp-D4PiHnN0.js} +1 -1
- package/dist/client/assets/{Copy01-CuZQqOx0.js → Copy01-DJEr7OLy.js} +1 -1
- package/dist/client/assets/{CreditCard01-Dy-cJWaD.js → CreditCard01-b36fqa11.js} +1 -1
- package/dist/client/assets/{DotsVertical-BRx6WGDK.js → DotsVertical-CV1b1y4C.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-C_eBf_yb.js → ErrorBarContext-UL-jymXX.js} +1 -1
- package/dist/client/assets/{Globe04-C14EHEAN.js → Globe04-DKUCyty7.js} +1 -1
- package/dist/client/assets/{Image01-B4ADQjw6.js → Image01-CyRCJwXT.js} +1 -1
- package/dist/client/assets/{Key01-DFRkR5rw.js → Key01-DWXRgH6w.js} +1 -1
- package/dist/client/assets/{Link01-HNlOmSEO.js → Link01-CNb9DW_9.js} +1 -1
- package/dist/client/assets/{LinkBroken01-ZJSQiUDy.js → LinkBroken01-BU-4AKfc.js} +1 -1
- package/dist/client/assets/{Monitor01-D6P0fhgC.js → Monitor01-yE6iFgVP.js} +1 -1
- package/dist/client/assets/{Play-BUzibowQ.js → Play-ChRMrCTB.js} +1 -1
- package/dist/client/assets/{Plus-DMw0rYpl.js → Plus-DtZhz_pb.js} +1 -1
- package/dist/client/assets/{SearchMd-5zzeWTKY.js → SearchMd-BQTuqO8x.js} +1 -1
- package/dist/client/assets/{Sector-DhHL2rjm.js → Sector-DeEfQN_u.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-JCO9eh6X.js → ShoppingBag01-CQIeNQm_.js} +1 -1
- package/dist/client/assets/{Sun-CZj_t7ip.js → Sun-kLYmwsq0.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-DFdRxYUn.js → SwitchHorizontal01-DGImzN1R.js} +1 -1
- package/dist/client/assets/{Tool01-BM2irxFF.js → Tool01-BRVvW2LV.js} +1 -1
- package/dist/client/assets/{Trash01-DCBnmu5P.js → Trash01-Bt3rK1ka.js} +1 -1
- package/dist/client/assets/{Upload01-CGS2ebmt.js → Upload01-s7SnRMvp.js} +1 -1
- package/dist/client/assets/{User01-Cs-eJ-Db.js → User01-BmCbB_zb.js} +1 -1
- package/dist/client/assets/{UserSquare-DwswTgw8.js → UserSquare-DL7MdeuL.js} +1 -1
- package/dist/client/assets/{Users01-B4Uysmrx.js → Users01-BVggEmV6.js} +1 -1
- package/dist/client/assets/{XAxis-Bq2-riEp.js → XAxis-CDuxbcPP.js} +1 -1
- package/dist/client/assets/{XClose-B6X-WQEL.js → XClose-UWi3HSZE.js} +1 -1
- package/dist/client/assets/{ZoomOut-CPMInjM1.js → ZoomOut-B4Rw_R2z.js} +1 -1
- package/dist/client/assets/{access-gate-CHtG4vI8.js → access-gate-D3L-T38D.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-gHKHol-P.js → add-connection-dialog-8k8OTwPv.js} +1 -1
- package/dist/client/assets/{agent-analytics-DXbNELON.js → agent-analytics-bu3kFNJu.js} +1 -1
- package/dist/client/assets/agent-app-BMA5upH5.js +1 -0
- package/dist/client/assets/{agent-assets-DMv6anfA.js → agent-assets-DJjZB71J.js} +1 -1
- package/dist/client/assets/{agent-automation-ClB242hY.js → agent-automation-5jRP2Yu0.js} +1 -1
- package/dist/client/assets/{agent-automations-BfSWMz7r.js → agent-automations-DBSfm1Um.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-1y7VsJ7D.js → agent-connect-sources-C1dugrdG.js} +1 -1
- package/dist/client/assets/agent-deck-BJf1WFap.js +1 -0
- package/dist/client/assets/{agent-e2e-VfJQEaZF.js → agent-e2e-PI2OzWvI.js} +1 -1
- package/dist/client/assets/{agent-experiments-BIloXgen.js → agent-experiments-DRdlymR5.js} +1 -1
- package/dist/client/assets/{agent-file-DHb7VoiQ.js → agent-file-BzADFUid.js} +1 -1
- package/dist/client/assets/{agent-hosting-Dd3LktbV.js → agent-hosting-CPH-NeL_.js} +1 -1
- package/dist/client/assets/{agent-icon-DPEjJB4e.js → agent-icon-Blcoi2NV.js} +1 -1
- package/dist/client/assets/agent-library-BqFtXY1m.js +1 -0
- package/dist/client/assets/agent-library-file-CQDlY3Yr.js +1 -0
- package/dist/client/assets/{agent-monitor-Bqq_5OKe.js → agent-monitor-PGLXk9dq.js} +1 -1
- package/dist/client/assets/{agent-overview-CzK1M8k2.js → agent-overview-D278LRIL.js} +1 -1
- package/dist/client/assets/{agent-releases-CycYtkVh.js → agent-releases-CwPpC6Zn.js} +1 -1
- package/dist/client/assets/agent-settings-DeB5MuX_.js +1 -0
- package/dist/client/assets/{agent-site-editor-DHhqBK5P.js → agent-site-editor-BSI5T3i7.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-Dq4KRDBk.js +2 -0
- package/dist/client/assets/agent-site-editor-content-Blm2auu-.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-CCk80iIG.js +1 -0
- package/dist/client/assets/agent-view-Cl8uWNJN.js +1 -0
- package/dist/client/assets/{agent-view-guard-D6GUEcFf.js → agent-view-guard-CVWBSVAR.js} +1 -1
- package/dist/client/assets/{agents-list-BEIvacYR.js → agents-list-DYmELJk-.js} +1 -1
- package/dist/client/assets/{ai-providers-0X1DCh96.js → ai-providers-B3x7urKU.js} +1 -1
- package/dist/client/assets/{alert-BpZ59_Gc.js → alert-Dp8EatFO.js} +1 -1
- package/dist/client/assets/{alert-dialog-DOc9sMK7.js → alert-dialog-qlQC4zlU.js} +1 -1
- package/dist/client/assets/{analytics-sections-ShUUJbGz.js → analytics-sections-BirEZrZQ.js} +1 -1
- package/dist/client/assets/{api-keys-BDfZvFu9.js → api-keys-7UDmxa_w.js} +1 -1
- package/dist/client/assets/api-keys-DSwUfsL4.js +1 -0
- package/dist/client/assets/{app-editor-BWwoXiez.js → app-editor-tLSj0Sjg.js} +1 -1
- package/dist/client/assets/{asset-utils-BpRYKiOA.js → asset-utils-DYZVbDw1.js} +1 -1
- package/dist/client/assets/{auth-Bew9bJSh.js → auth-CLglKqB6.js} +1 -1
- package/dist/client/assets/{auth-catchall-BZM_DFXE.js → auth-catchall-CrJHPLPw.js} +1 -1
- package/dist/client/assets/{auth-entry-C0pPXrpQ.js → auth-entry-CD3L2RvS.js} +1 -1
- package/dist/client/assets/{auth-split-layout-D4mHxU2I.js → auth-split-layout-UjhzYVxM.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-Bg2qSKP5.js → authenticate-and-persist-oauth-ClVBgGv4.js} +1 -1
- package/dist/client/assets/{automation-list-row-Du_X7bLQ.js → automation-list-row-CAEPQbgy.js} +1 -1
- package/dist/client/assets/{automation-runs-K0640sJi.js → automation-runs-dUM-MaiP.js} +1 -1
- package/dist/client/assets/{automations-1ZKwiBVj.js → automations-megKF7It.js} +1 -1
- package/dist/client/assets/{autosend-BM8Gkro6.js → autosend-CE_yiNtR.js} +1 -1
- package/dist/client/assets/{avatar-Cf8ensdm.js → avatar-B8cS3VPt.js} +1 -1
- package/dist/client/assets/{badge-u-FEcB1F.js → badge-Qzxf6tet.js} +1 -1
- package/dist/client/assets/{block-document-rnpU1D6O.js → block-document-AKpwbifj.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-Dz4R0igJ.js → blocks-preview-workspace-context-VkiPmc8G.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-Dbou5tyV.js → blocks-tab-states-BbjL1qhZ.js} +3 -3
- package/dist/client/assets/{blog-schema-BLwhAB4M.js → blog-schema-DL-wxhkE.js} +1 -1
- package/dist/client/assets/{board-analytics-vn1KvhHP.js → board-analytics-C1pwywOy.js} +1 -1
- package/dist/client/assets/{buckets-CkiliZPf.js → buckets-DZKIT9DY.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-BGKwjyz_.js → build-improve-prompt-doc-1VLAf1m8.js} +1 -1
- package/dist/client/assets/{calendar-Cms_t32w.js → calendar-BuSRVV5D.js} +1 -1
- package/dist/client/assets/{capability-load-error-Btsxhikd.js → capability-load-error-DBmMi5Hs.js} +1 -1
- package/dist/client/assets/{category-editor-BIFxkSOg.js → category-editor-DVRF9hj1.js} +1 -1
- package/dist/client/assets/{chart-WIORlSk5.js → chart-NrDAd4pe.js} +1 -1
- package/dist/client/assets/{chat-context-CXuTB4t_.js → chat-context-Ch-VpD9W.js} +1 -1
- package/dist/client/assets/{chat-draft-BfZZImrW.js → chat-draft-B2p2B6Yw.js} +1 -1
- package/dist/client/assets/{checkbox-39Y4Yvzb.js → checkbox-C0-Eo7G1.js} +1 -1
- package/dist/client/assets/{choose-editor-A6KbDeMD.js → choose-editor-BeLyDWVx.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CBQcY2ti.js → cli-auth-success-DUKgfRgt.js} +1 -1
- package/dist/client/assets/{client-icons-CkJbp7Kf.js → client-icons-DtQhx8-x.js} +1 -1
- package/dist/client/assets/cms-settings-editor-Dxh-Mvqb.js +1 -0
- package/dist/client/assets/{collapsible-DQScoiBp.js → collapsible-EpmgpNpi.js} +1 -1
- package/dist/client/assets/{collection-detail-CTj1twku.js → collection-detail-BTHodnm7.js} +1 -1
- package/dist/client/assets/{collection-display-button-2k7Qd1eY.js → collection-display-button-__Pm6Nmn.js} +1 -1
- package/dist/client/assets/{collection-search-BvWeMsnW.js → collection-search-ehqGBK_4.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-KHKDw1rQ.js → collection-table-wrapper-BBPmRt9r.js} +1 -1
- package/dist/client/assets/{collection-tabs-DMN1FKAg.js → collection-tabs-iTmpvLeT.js} +1 -1
- package/dist/client/assets/{column-rules-J5zEqDKI.js → column-rules-adUN8XvK.js} +1 -1
- package/dist/client/assets/{combobox-BbEIMkIW.js → combobox-BUo7EBrO.js} +1 -1
- package/dist/client/assets/{command-bEQWkHWl.js → command-BAgcQ2fh.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-C9zrMUWG.js → companion-mcps-section-CAn17bJY.js} +1 -1
- package/dist/client/assets/{config-oRqWYZBw.js → config-BDu66MgM.js} +1 -1
- package/dist/client/assets/{connect-CpChXP6m.js → connect-2yc9-JJp.js} +1 -1
- package/dist/client/assets/{connect-layout-7yNDEshW.js → connect-layout-DtIoh422.js} +1 -1
- package/dist/client/assets/{connection-DE10KgqA.js → connection-B8e9uIdy.js} +1 -1
- package/dist/client/assets/{connection-card-f5vHryIM.js → connection-card-CLVSIR42.js} +1 -1
- package/dist/client/assets/{connection-detail-BvxmL1lP.js → connection-detail-DN36Ozvh.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-iXh508wY.js → connection-form-helpers-CSZF_TQx.js} +1 -1
- package/dist/client/assets/{connections-uyNi3ziJ.js → connections-DC5XESZs.js} +1 -1
- package/dist/client/assets/{content-tab-DbhBHZG2.js → content-tab-DUe9Pk3L.js} +3 -3
- package/dist/client/assets/{context-RzldR5hI.js → context-DdNfBAMU.js} +1 -1
- package/dist/client/assets/{context-menu-Bu-wDHbx.js → context-menu-DJ87apJ2.js} +1 -1
- package/dist/client/assets/{core.esm-BOurIsL2.js → core.esm-C7s0VVJH.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BYS8yCkD.js → create-organization-dialog-DoF61er3.js} +1 -1
- package/dist/client/assets/{daily-pulse-B0nm37Wk.js → daily-pulse-C775e_y-.js} +1 -1
- package/dist/client/assets/{discover-C3-2Xsml.js → discover-C_Que9Au.js} +1 -1
- package/dist/client/assets/{domain-settings-DJWETZdb.js → domain-settings-CT-S0BOV.js} +1 -1
- package/dist/client/assets/{drawer-SYkf9S3t.js → drawer-CixpU7n-.js} +1 -1
- package/dist/client/assets/{editor-50pL9wJq.js → editor-BKRP2Iwc.js} +1 -1
- package/dist/client/assets/{editor-classes-tT6DS3c0.js → editor-classes-DZByr-lI.js} +1 -1
- package/dist/client/assets/{empty-state-BBRtoH8X.js → empty-state-BZZcWHI_.js} +1 -1
- package/dist/client/assets/{empty-state-BEo1idJ2.js → empty-state-DQLm0d5k.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BXwLKN9Y.js → extract-connection-data-DJs0gTBx.js} +1 -1
- package/dist/client/assets/{feature-gate-CmK7hW3c.js → feature-gate-CgRSy5_Q.js} +1 -1
- package/dist/client/assets/{feature-paywall-B6WYRGmt.js → feature-paywall-EueGiC9A.js} +1 -1
- package/dist/client/assets/{file-explorer-BmA6nLXP.js → file-explorer-cu0ZoZ2i.js} +1 -1
- package/dist/client/assets/{file-preview-navJIo3Y.js → file-preview-BJ_PkL7X.js} +1 -1
- package/dist/client/assets/{file-share-button-By02TUaE.js → file-share-button-rEinR-qh.js} +1 -1
- package/dist/client/assets/{file-type-icon-CXYODp5S.js → file-type-icon-C2JXE2hG.js} +1 -1
- package/dist/client/assets/flat-project-fhJMf2Fo.js +1 -0
- package/dist/client/assets/{folder-icon-CPUJWTIk.js → folder-icon-Cayf6XFB.js} +1 -1
- package/dist/client/assets/{form-CSMe0Xu2.js → form-BivWj0r6.js} +1 -1
- package/dist/client/assets/{general-BCOJVftC.js → general-BQtDTtDD.js} +1 -1
- package/dist/client/assets/{home-rN3gPNj9.js → home-DncG44Vc.js} +1 -1
- package/dist/client/assets/{hosted-publish-feedback-cq97qRwz.js → hosted-publish-feedback-CfrjUALv.js} +1 -1
- package/dist/client/assets/{icon-button-jj21Pfs7.js → icon-button-DxqkkLQj.js} +1 -1
- package/dist/client/assets/{index-DKVv-34T.js → index-5vR8G6oj.js} +1 -1
- package/dist/client/assets/{index-D_zg5lyX.js → index-B26ImUL7.js} +1 -1
- package/dist/client/assets/{index-9Jrp3KlM.js → index-BF64aC--.js} +1 -1
- package/dist/client/assets/{index-BFoj7reh.js → index-BYmaAL9a.js} +1 -1
- package/dist/client/assets/{index-6vyUSmHY.js → index-BmYzltjg.js} +1 -1
- package/dist/client/assets/{index-BaYKytFu.js → index-BtcVoJOD.js} +1 -1
- package/dist/client/assets/{index-Yt-1DNw6.js → index-BvuLMeCw.js} +3 -3
- package/dist/client/assets/{index-lvmhjtam.js → index-C-gf76Hu.js} +1 -1
- package/dist/client/assets/{index-DEDDgDGK.js → index-C47EvNjt.js} +1 -1
- package/dist/client/assets/{index-Dz84h2Uh.js → index-CZciUUmu.js} +1 -1
- package/dist/client/assets/{index-Du7SnZ-C.js → index-CvK4-KP3.js} +1 -1
- package/dist/client/assets/{index-B7U88B6N.js → index-DV6FL3mH.js} +1 -1
- package/dist/client/assets/{index-DRz4ZqDU.js → index-NRMbjvM1.js} +1 -1
- package/dist/client/assets/{index-DmJJi5Aj.js → index-TD9q6ZAx.js} +2 -2
- package/dist/client/assets/{index-redirect-CPDHoWP-.js → index-redirect-CCsqcmui.js} +1 -1
- package/dist/client/assets/{index-CnqqaukI.js → index-xlh3U8dq.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-DMUM7SCu.js → infiniteQueryObserver-X8qh_Va6.js} +1 -1
- package/dist/client/assets/{infra-billing-DNOr1seX.js → infra-billing-fufjpAYz.js} +1 -1
- package/dist/client/assets/{input-YsTzlSvU.js → input-BSUErVvJ.js} +3 -3
- package/dist/client/assets/{input-BH4Oxr1L.js → input-h8042dl0.js} +1 -1
- package/dist/client/assets/{integration-icon-DQxxCK04.js → integration-icon-DJtlg_0w.js} +1 -1
- package/dist/client/assets/{jira-icon-CPUmww9A.js → jira-icon-D0XL00z9.js} +1 -1
- package/dist/client/assets/{label-DXaPh7Je.js → label-B-SEr3Fs.js} +1 -1
- package/dist/client/assets/{layout-DQ66qmO9.js → layout-BI2BIstR.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-BNVqjDv8.js → legacy-agents-deep-jcGaNAHc.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-Np53PuYT.js → legacy-main-redirect-D6tF7agn.js} +1 -1
- package/dist/client/assets/library-DntM1dnS.js +1 -0
- package/dist/client/assets/{library-tab-Bq6k_3IG.js → library-tab-BZkqrpuT.js} +1 -1
- package/dist/client/assets/{login-DBsx92_o.js → login-C9lgbiSh.js} +1 -1
- package/dist/client/assets/{markdown-CF_EwD8u.js → markdown-B-jDeUMA.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-SLcpw_GO.js → mcp-app-renderer-Bk4hyaxU.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CzbNzM03.js → mcp-oauth-CaxV9wcl.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BPsTeQb9.js → mcp-oauth-V-o-AEQP.js} +1 -1
- package/dist/client/assets/{members-BNplg4tN.js → members-BLeFrNm9.js} +1 -1
- package/dist/client/assets/{memory-Be-EH5Kw.js → memory-BsNDNxr2.js} +1 -1
- package/dist/client/assets/{mini-report-page-MmikJINJ.js → mini-report-page-B0fqOWnH.js} +1 -1
- package/dist/client/assets/mock-board-BFTY4RvG.js +1 -0
- package/dist/client/assets/{monaco-editor-dPYi6L5q.js → monaco-editor-D49CJi8U.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-C8PGI7z7.js → monitoring-stats-row-BB3CDHWN.js} +1 -1
- package/dist/client/assets/{multi-select-BzwMWM94.js → multi-select-BvMK4932.js} +1 -1
- package/dist/client/assets/{mustache-DhZHK7zV.js → mustache-HTehKKTG.js} +1 -1
- package/dist/client/assets/{new-project-dialog-x3CgBcBd.js → new-project-dialog-DoLb5YVK.js} +1 -1
- package/dist/client/assets/{oauth-callback-DwnwB6UW.js → oauth-callback-Blwmfj1R.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-Cq1iMkGk.js → oauth-callback-ai-provider-Dc9onjjw.js} +1 -1
- package/dist/client/assets/{onboarding-fQG5r2FK.js → onboarding-K-cgEcDl.js} +1 -1
- package/dist/client/assets/{openai-conversation-KVcfBBc6.js → openai-conversation-R6WmtJ5r.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-DNYS7Cn_.js → optimistic-project-sidebar-views-Bmh9CacI.js} +1 -1
- package/dist/client/assets/{order-monitor-day-CIjpWX2N.js → order-monitor-day-CZfhLaiW.js} +1 -1
- package/dist/client/assets/{organization-choice-CLkvC5Cb.js → organization-choice-dC-onaYV.js} +1 -1
- package/dist/client/assets/{orgs-CMEfgf3N.js → orgs-BOJwmOLw.js} +1 -1
- package/dist/client/assets/{page-seo-form-BlD1QdAg.js → page-seo-form-CrsEBL3M.js} +1 -1
- package/dist/client/assets/{pair-DP5ED0n_.js → pair-CYYi6JKh.js} +1 -1
- package/dist/client/assets/{plan-ladder-zWIPqL-O.js → plan-ladder-Okx-KzN5.js} +1 -1
- package/dist/client/assets/{popover-fYvCFbz-.js → popover-gJO3R5Ii.js} +1 -1
- package/dist/client/assets/{post-calendar-D1yzYd4M.js → post-calendar-BgDWtRgx.js} +1 -1
- package/dist/client/assets/{post-editor-BXUHohyr.js → post-editor-CxINLeRV.js} +1 -1
- package/dist/client/assets/{preview-content-CmfLKt3D.js → preview-content-Cfi8bwXI.js} +1 -1
- package/dist/client/assets/{preview-dialog-C5CJFtZe.js → preview-dialog-jZ9sRQON.js} +1 -1
- package/dist/client/assets/{preview-panel-16KeEdoG.js → preview-panel-CN8PRsYc.js} +1 -1
- package/dist/client/assets/{preview-tab-DhgHL0WN.js → preview-tab-DRuTgCNI.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-tVZq0CDa.js → product-picker-dialog-DB4JPBCA.js} +1 -1
- package/dist/client/assets/{profile-CIMiHvG6.js → profile-DEiIcjHZ.js} +1 -1
- package/dist/client/assets/{project-app-view-CWtv42hH.js → project-app-view-Ml2wH3iy.js} +1 -1
- package/dist/client/assets/{project-feed-DMV42khD.js → project-feed-CfssvHDQ.js} +1 -1
- package/dist/client/assets/{project-icon-DijKHVuo.js → project-icon-BlJz5cOI.js} +1 -1
- package/dist/client/assets/project-reports-CsI0AQuY.js +1 -0
- package/dist/client/assets/project-tasks-DLi14b92.js +1 -0
- package/dist/client/assets/{projects-BVF2wGAY.js → projects-Dzy3_FXd.js} +1 -1
- package/dist/client/assets/{projects-empty-state-CdfFkgo9.js → projects-empty-state-BDYeDrMv.js} +1 -1
- package/dist/client/assets/{prompts-D8lBj64B.js → prompts-DV4Kjfa5.js} +1 -1
- package/dist/client/assets/record-editor-wOnCkFPK.js +1 -0
- package/dist/client/assets/{redirect-editor-D6GG3gU8.js → redirect-editor-DFCv83sL.js} +1 -1
- package/dist/client/assets/reports-AMpsYdUr.js +1 -0
- package/dist/client/assets/{reports-DzFUAAe9.js → reports-DXYrq_BO.js} +1 -1
- package/dist/client/assets/{reports-onboarding-CtCpWMWq.js → reports-onboarding-1VulbTO6.js} +1 -1
- package/dist/client/assets/{reports-tab-DdjqXd-P.js → reports-tab-DmNt_T04.js} +2 -2
- package/dist/client/assets/{repositories-DvZv22_y.js → repositories-D6jC23CW.js} +1 -1
- package/dist/client/assets/{repository-binding-CteZmIva.js → repository-binding-BnejFX7t.js} +1 -1
- package/dist/client/assets/{repository-import-picker-DdjluiGQ.js → repository-import-picker-h-r8nnEf.js} +1 -1
- package/dist/client/assets/{repository-picker-BHG_Q3_Y.js → repository-picker-FTAXO4Nx.js} +1 -1
- package/dist/client/assets/{require-capability-DfMvVRIs.js → require-capability-BewAou1A.js} +1 -1
- package/dist/client/assets/{required-auth-layout-B4Pt2844.js → required-auth-layout-gIZfj42y.js} +1 -1
- package/dist/client/assets/{reset-password-CoG-TCPT.js → reset-password-Bq09blPf.js} +1 -1
- package/dist/client/assets/{resizable-QOT7XwbA.js → resizable-CGzf0YCQ.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-BDl2h0Dq.js → resolve-tab-icon-Daxo01Gi.js} +1 -1
- package/dist/client/assets/{review-settings-CuM9As5T.js → review-settings-DR_kj-Ru.js} +1 -1
- package/dist/client/assets/{roles-B6Agdrhz.js → roles-DWOkvlO_.js} +1 -1
- package/dist/client/assets/{route-DCzETavQ.js → route-B-p6J_u6.js} +1 -1
- package/dist/client/assets/route-G0-ZvPpf.js +1 -0
- package/dist/client/assets/{route-t5GwjFKP.js → route-UiPRedfp.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-BcfEFMah.js → sandbox-lifecycle-context-rc29IhVV.js} +1 -1
- package/dist/client/assets/{schema-C_Twe2CR.js → schema-BGirdKR7.js} +1 -1
- package/dist/client/assets/schema-DTvMW5Bj.js +1 -0
- package/dist/client/assets/{scroll-area-DWfW8PPp.js → scroll-area-D0jo1bkt.js} +1 -1
- package/dist/client/assets/{search-input-iONBjTDn.js → search-input-DIOUBltI.js} +1 -1
- package/dist/client/assets/{search-toggle-DNrxid9T.js → search-toggle-BWyMsPKk.js} +1 -1
- package/dist/client/assets/{secret-ciphertext-DQJA6LTs.js → secret-ciphertext-ANOQlePB.js} +1 -1
- package/dist/client/assets/{secret-picker-RTqlv_mw.js → secret-picker--4BFyqbe.js} +1 -1
- package/dist/client/assets/{secrets-CT-Ix4aE.js → secrets-BxBi0DW0.js} +1 -1
- package/dist/client/assets/{sections-editor-BbVsm3CC.js → sections-editor-cLAvYqLX.js} +1 -1
- package/dist/client/assets/{select-model-MsH0R9Xj.js → select-model-Dqb1K6bc.js} +1 -1
- package/dist/client/assets/{select-7a9WvaWj.js → select-vip2MDSn.js} +1 -1
- package/dist/client/assets/{seo-editor-0ZcLNYXq.js → seo-editor-DDZSfwYW.js} +1 -1
- package/dist/client/assets/{separator-DVSdXQ2O.js → separator-BQ3AM4Ug.js} +1 -1
- package/dist/client/assets/{settings-tab-D-_nS2xd.js → settings-tab-eia9Fz-X.js} +1 -1
- package/dist/client/assets/{sheet-C2JlOlpD.js → sheet-IYrYpc2B.js} +1 -1
- package/dist/client/assets/{shell-layout-BDxZg9_K.js → shell-layout-BM51_FIv.js} +1 -1
- package/dist/client/assets/site-editor-C5iX5zAy.js +1 -0
- package/dist/client/assets/{site-editor-toast-DISsODHI.js → site-editor-toast-DbJhMk7V.js} +1 -1
- package/dist/client/assets/{skills-CWjsrGc5.js → skills-D2FiXzGW.js} +1 -1
- package/dist/client/assets/{slider-04lpm0v_.js → slider-CwnL3HRa.js} +1 -1
- package/dist/client/assets/{sortable.esm-BP__-BL2.js → sortable.esm-BmwNKHYn.js} +1 -1
- package/dist/client/assets/{sso-B5Zn_6ZD.js → sso-DMQ-B__P.js} +1 -1
- package/dist/client/assets/{suggestion-DFoIyeE9.js → suggestion-B_X9vnmO.js} +1 -1
- package/dist/client/assets/{switch-CFiGUTOP.js → switch-B9eCMptF.js} +1 -1
- package/dist/client/assets/{symbol-7m9tSCCw.js → symbol-BnsdD8oy.js} +1 -1
- package/dist/client/assets/{synced-repos-C4fTRc_O.js → synced-repos-VO9uiFX2.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-DrR3rVhf.js → tab-icon-glyph-D53P8msf.js} +1 -1
- package/dist/client/assets/{table-BTn9QLXW.js → table-D9fzXIkZ.js} +1 -1
- package/dist/client/assets/{tabs-gZYZCgK2.js → tabs-BawejvDB.js} +1 -1
- package/dist/client/assets/task-board-ouLvp423.js +1 -0
- package/dist/client/assets/{task-route-Du0a6oFo.js → task-route-CjHIKjev.js} +1 -1
- package/dist/client/assets/{task-status-CZXBctHo.js → task-status-Buh7B1MG.js} +1 -1
- package/dist/client/assets/taskboard-analytics-DhwjY7M5.js +1 -0
- package/dist/client/assets/tasks-Ds4uIhX_.js +1 -0
- package/dist/client/assets/{tasks-DbnjSqj8.js → tasks-FmvKs9d3.js} +1 -1
- package/dist/client/assets/{textarea-Bej_HjJx.js → textarea-B-TS083j.js} +1 -1
- package/dist/client/assets/{thread-analytics-DlZSGBPY.js → thread-analytics-ykgOvgFb.js} +1 -1
- package/dist/client/assets/{thread-intent-D56tMIbL.js → thread-intent-S-gJClOG.js} +1 -1
- package/dist/client/assets/{thread-route-BNBBewOp.js → thread-route-CQmCTEyn.js} +1 -1
- package/dist/client/assets/{thread-route-Ch_UFE8H.js → thread-route-DtCL8-V4.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-BGZjdiWy.js → thread-sheet-body-DacE2e8a.js} +1 -1
- package/dist/client/assets/{time-range-picker-DFRYI5yT.js → time-range-picker-BIBoZiWJ.js} +1 -1
- package/dist/client/assets/{toggle-group-DZg8BqTb.js → toggle-group-DI4ttUmk.js} +1 -1
- package/dist/client/assets/{tool-namespace-DHnrXl8N.js → tool-namespace-DSuLhjHC.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-UMKCT0Ua.js → toolbar-icon-button-UylaJSAo.js} +1 -1
- package/dist/client/assets/{tooltip-yZHJwZ0_.js → tooltip-D3Lno7Sd.js} +1 -1
- package/dist/client/assets/{tooltipContext-BYBEDJBX.js → tooltipContext-BF4YYYQ4.js} +1 -1
- package/dist/client/assets/{track-Cmqq1NGv.js → track-9gnPqqM1.js} +1 -1
- package/dist/client/assets/{types-CfDTYsf_.js → types-oDc7dHni.js} +1 -1
- package/dist/client/assets/{url-slug-CF34E0UB.js → url-slug-CzRjxv-k.js} +1 -1
- package/dist/client/assets/{usage-stats-DK61cAbW.js → usage-stats-DadTD3M-.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CdtssKYb.js → use-ai-providers-AcvGe9-V.js} +1 -1
- package/dist/client/assets/{use-app-takeover-D6c6GrNl.js → use-app-takeover-BEzFC8oO.js} +1 -1
- package/dist/client/assets/{use-automations-DuQ94ezs.js → use-automations-CN350YMB.js} +1 -1
- package/dist/client/assets/{use-autosave-Cw2uAKzO.js → use-autosave-Dav7fRBX.js} +1 -1
- package/dist/client/assets/{use-chat-navigation-DXGdGkgT.js → use-chat-navigation-DlxbS2Ir.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BtNyF77k.js → use-clock-tick-Biiz8lzy.js} +1 -1
- package/dist/client/assets/{use-connect-companion-BklKatzN.js → use-connect-companion-VKAyFcK2.js} +1 -1
- package/dist/client/assets/{use-connection-Bdiz2xzR.js → use-connection-OOD0tHd7.js} +1 -1
- package/dist/client/assets/{use-content-sync-gPUq66Q_.js → use-content-sync-BQvWp4_o.js} +1 -1
- package/dist/client/assets/{use-copy-Cy4qf6se.js → use-copy-Cn4Z57YH.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-C3RgOrG7.js → use-create-virtual-mcp-CZW2rCq7.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-mq2zvQEQ.js → use-date-fns-locale-ZV1qLyjT.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-69_37K6A.js → use-debounced-autosave-DoWWmWzG.js} +1 -1
- package/dist/client/assets/{use-debounced-value-hKuOSnf8.js → use-debounced-value-WEbEbeed.js} +1 -1
- package/dist/client/assets/{use-deco-credits-BM65ruxD.js → use-deco-credits-D1idFaA8.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CDGgmpnF.js → use-decopilot-events-BITSrHb-.js} +1 -1
- package/dist/client/assets/{use-delete-connection-Cf3UUyQ4.js → use-delete-connection-KMdMK-5V.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-BQKTAPvq.js → use-deployment-admin-B_soKFRv.js} +1 -1
- package/dist/client/assets/{use-ensure-project-folder-D6FwKelb.js → use-ensure-project-folder-BUN6VVAV.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-Dl_wew24.js → use-fast-preview-draft-url-CSXqCUZ_.js} +1 -1
- package/dist/client/assets/{use-file-configs-DEeSzk9H.js → use-file-configs-DMVCBG-z.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-jQz1UxrT.js → use-infinite-scroll-DjYaDj_j.js} +1 -1
- package/dist/client/assets/{use-join-requests-B0uJBWtr.js → use-join-requests-Be-FCByX.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-BcqmbIv8.js → use-main-panel-tabs-Cloon3zW.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-BSYgNstS.js → use-mcp-auth-status-Bv4IbKQl.js} +1 -1
- package/dist/client/assets/{use-mcp-client-Cmf3kYdA.js → use-mcp-client-fTyLcuiX.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Dk9LHUFW.js → use-mcp-prompts-CyqOUVUD.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DzF7PfOd.js → use-mcp-tools-sv7pv5ex.js} +1 -1
- package/dist/client/assets/{use-members-Bq6wseSf.js → use-members-CvY21L2Q.js} +1 -1
- package/dist/client/assets/{use-mobile-C56EQrK9.js → use-mobile-2T0aye5I.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BdY7K2gs.js → use-navigate-to-agent-BpeT4fqu.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-ctn8rgn5.js → use-open-billing-url-Db0e3guK.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BQKXCp53.js → use-org-auth-client-CWA2hWCM.js} +1 -1
- package/dist/client/assets/{use-org-fs-DpBvFsJy.js → use-org-fs-CPNJqv-N.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-BGbiDUhK.js → use-org-repo-syncs-MWiNxGjz.js} +1 -1
- package/dist/client/assets/{use-org-sso-By1UBOKy.js → use-org-sso-BMLNRQyf.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DAM-KEoH.js → use-organization-roles-DwFJmstu.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BbPuWdeO.js → use-organization-settings-lug340cj.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DdMcNzfR.js → use-panel-navigate-CfJ9Qf-l.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-sPhh7BGC.js → use-project-native-view-presence-DdsfKci4.js} +1 -1
- package/dist/client/assets/{use-project-scope-D1tA1r10.js → use-project-scope-C99MQSqi.js} +1 -1
- package/dist/client/assets/{use-recent-apps-DQQGGtQF.js → use-recent-apps-BumxbfgY.js} +1 -1
- package/dist/client/assets/{use-releases-D_4OhIZK.js → use-releases-CRk_-gGM.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-DmNOWdgE.js → use-reports-diagnostic-WXyHMxuT.js} +1 -1
- package/dist/client/assets/{use-secrets-DVHGHbWn.js → use-secrets-nvhTtgV_.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-EEIQI4Ik.js → use-section-preview-base-BBIzI-Pc.js} +1 -1
- package/dist/client/assets/{use-tags-wkF8OlfB.js → use-tags-Dawb8nJP.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-CeChyUNV.js → use-task-board-analytics-BaDTyaMf.js} +1 -1
- package/dist/client/assets/{use-task-board-events-HM8tkd7K.js → use-task-board-events-viqZq2i-.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-BrZLlBFN.js → use-task-board-item-prs-BTOeRNoi.js} +1 -1
- package/dist/client/assets/{use-task-board-items-AkUs4SCp.js → use-task-board-items-Dp3mGHSl.js} +1 -1
- package/dist/client/assets/{use-task-metadata-BYWnl_Dc.js → use-task-metadata-Buvn0eAk.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-C-mFzjx5.js → use-thread-analytics-DOC2eb9z.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-B1zzKutX.js → use-thread-outputs-Bmumw8UE.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CQY9cAw7.js +1 -0
- package/dist/client/assets/{useQueries-BlBb4paf.js → useQueries-4Zja_Hbg.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-XqqzZbmr.js +1 -0
- package/dist/client/assets/{users-C2_RmXbp.js → users-Cbsspkn2.js} +1 -1
- package/dist/client/assets/{utils-BdpWMmUt.js → utils-zbsUBoHt.js} +1 -1
- package/dist/client/assets/{variant-calendar-CpdfrWzd.js → variant-calendar-BnIxTRkB.js} +1 -1
- package/dist/client/assets/{variant-draft-pointer-UfH0PPCK.js → variant-draft-pointer-DEL-ZLWj.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-BuPOaLfD.js → view-mode-toggle-CGu3ANob.js} +1 -1
- package/dist/client/assets/{virtual-mcp-DEzWx_Zp.js → virtual-mcp-DQFtuDZf.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-DatmHsge.js → watch-sse-pool-C7fmCtIy.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +218 -214
- package/dist/server/server.js +703 -703
- package/package.json +1 -1
- package/dist/client/assets/agent-app-Cv__AOVM.js +0 -1
- package/dist/client/assets/agent-deck-Du1mMR-E.js +0 -1
- package/dist/client/assets/agent-library-file-vb-6Hjtp.js +0 -1
- package/dist/client/assets/agent-library-pAGySVEX.js +0 -1
- package/dist/client/assets/agent-settings-6lU0Rtg1.js +0 -1
- package/dist/client/assets/agent-site-editor-code-C0sVCVRO.js +0 -2
- package/dist/client/assets/agent-site-editor-content-DuKM0OyF.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-QBPik_OC.js +0 -1
- package/dist/client/assets/agent-view-DcW4UHjt.js +0 -1
- package/dist/client/assets/api-keys-CX0eTNjr.js +0 -1
- package/dist/client/assets/cms-settings-editor-CCE6WfjP.js +0 -1
- package/dist/client/assets/flat-project-CVEZo8Pd.js +0 -1
- package/dist/client/assets/library-D66pbYEa.js +0 -1
- package/dist/client/assets/mock-board-BaHvboTU.js +0 -1
- package/dist/client/assets/project-reports-BXZYOXjl.js +0 -1
- package/dist/client/assets/project-tasks-JG50DV7s.js +0 -1
- package/dist/client/assets/record-editor-Q4r6DK6y.js +0 -1
- package/dist/client/assets/reports-Dp6RE3Y_.js +0 -1
- package/dist/client/assets/route-GZy5TvX0.js +0 -1
- package/dist/client/assets/schema-B5twZahU.js +0 -1
- package/dist/client/assets/site-editor-C6vYIwH1.js +0 -1
- package/dist/client/assets/task-board-CieGpcMy.js +0 -1
- package/dist/client/assets/taskboard-analytics-C-ASxw6x.js +0 -1
- package/dist/client/assets/tasks-UazvBHEg.js +0 -1
- package/dist/client/assets/useInfiniteQuery-Z1h_BzmN.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery--UgGWd1x.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null,x)}var C=(_,x)=>{for(var u in x)Iz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Vz.bind(x,u)})};import{Migrator as Az,sql as o}from"kysely";var $x={};C($x,{up:()=>wz,down:()=>kz});import{sql as im}from"kysely";async function wz(_){await im`
|
|
3
|
+
ALTER TABLE task_board_items
|
|
4
|
+
ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
|
|
5
|
+
CHECK (harness_id IN ('claude-code', 'codex'))
|
|
6
|
+
`.execute(_)}async function kz(_){await im`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Ux={};C(Ux,{up:()=>nz,down:()=>vz});async function nz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>pz,down:()=>gz,TYPES:()=>Px});import{sql as m_}from"kysely";var Px=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function pz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await cm(_,Px)}async function gz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await cm(_,Px.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function cm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as hm}from"kysely";async function qz(_){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",hm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",hm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz});import{sql as a}from"kysely";async function cz(_){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
7
|
DROP COLUMN IF EXISTS registry_config,
|
|
4
8
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
5
9
|
BEGIN RETURN value::jsonb;
|
|
@@ -14,20 +18,20 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
14
18
|
)`.execute(_),await a`DELETE FROM connections
|
|
15
19
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
16
20
|
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
|
|
21
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function hz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as tm}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await tm`
|
|
18
22
|
select organization_id, metadata
|
|
19
23
|
from connections
|
|
20
24
|
where connection_type = 'VIRTUAL'
|
|
21
25
|
and metadata like '%submoduleCredentials%'
|
|
22
26
|
order by updated_at asc
|
|
23
|
-
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.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,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await
|
|
27
|
+
`.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.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,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await tm`
|
|
24
28
|
insert into organization_settings
|
|
25
29
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
26
30
|
values (${K}, ${T}, ${N}, ${N})
|
|
27
31
|
on conflict ("organizationId") do update
|
|
28
32
|
set submodule_credentials = excluded.submodule_credentials,
|
|
29
33
|
"updatedAt" = excluded."updatedAt"
|
|
30
|
-
`.execute(_)}}async function
|
|
34
|
+
`.execute(_)}}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});async function az(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function rz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as Lx}from"kysely";async function lz(_){await Lx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Lx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Lx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function ez(_){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 Yx={};C(Yx,{up:()=>bz,down:()=>_E});import{sql as G}from"kysely";var dz={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"}},sz={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"}},Fx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function om(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function am(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,dz],[G`'commerce-discovery_' || organization_id`,sz]])for(let T of["title","description"]){let{from:z,to:E}=om(m[T],x);await G`
|
|
31
35
|
UPDATE connections
|
|
32
36
|
SET ${G.ref(T)} = ${E}
|
|
33
37
|
WHERE id = ${K}
|
|
@@ -41,7 +45,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
41
45
|
RETURN NULL;
|
|
42
46
|
END;
|
|
43
47
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
44
|
-
`.execute(_);let{from:u,to:N}=
|
|
48
|
+
`.execute(_);let{from:u,to:N}=om(Fx.label,x);await G`
|
|
45
49
|
WITH agents AS (
|
|
46
50
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
47
51
|
FROM connections
|
|
@@ -56,7 +60,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
56
60
|
(
|
|
57
61
|
SELECT jsonb_agg(
|
|
58
62
|
CASE
|
|
59
|
-
WHEN v ->> 'toolName' = ${
|
|
63
|
+
WHEN v ->> 'toolName' = ${Fx.toolName}
|
|
60
64
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
61
65
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
62
66
|
ELSE v
|
|
@@ -72,7 +76,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
72
76
|
AND EXISTS (
|
|
73
77
|
SELECT 1
|
|
74
78
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
75
|
-
WHERE v ->> 'toolName' = ${
|
|
79
|
+
WHERE v ->> 'toolName' = ${Fx.toolName}
|
|
76
80
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
77
81
|
)
|
|
78
82
|
)
|
|
@@ -80,7 +84,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
80
84
|
SET metadata = r.m::text
|
|
81
85
|
FROM relabeled r
|
|
82
86
|
WHERE c.id = r.id
|
|
83
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
87
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function bz(_){await am(_,"up")}async function _E(_){await am(_,"down")}var Hx={};C(Hx,{up:()=>uE,down:()=>CE,ACTIONS:()=>Dx});import{sql as T_}from"kysely";var Dx=["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"],xE=Dx.filter((_)=>_!=="finding_resolved");async function uE(_){await rm(_,Dx)}async function CE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await rm(_,xE)}async function rm(_,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 Mx={};C(Mx,{up:()=>KE,down:()=>NE});import{sql as G_}from"kysely";async function KE(_){await G_`
|
|
84
88
|
ALTER TABLE org_jira_column_automations
|
|
85
89
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
86
90
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
@@ -91,7 +95,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
91
95
|
ALTER TABLE org_jira_column_automations
|
|
92
96
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
93
97
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
94
|
-
`.execute(_)}async function
|
|
98
|
+
`.execute(_)}async function NE(_){await G_`
|
|
95
99
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
96
100
|
`.execute(_),await G_`
|
|
97
101
|
ALTER TABLE org_jira_column_automations
|
|
@@ -100,18 +104,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
100
104
|
DROP COLUMN from_key,
|
|
101
105
|
DROP COLUMN from_statuses,
|
|
102
106
|
DROP COLUMN from_kind
|
|
103
|
-
`.execute(_)}var
|
|
107
|
+
`.execute(_)}var Rx={};C(Rx,{up:()=>mE,down:()=>TE});import{sql as lm}from"kysely";async function mE(_){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(lm`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(lm`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 TE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Bx={};C(Bx,{up:()=>zE,down:()=>EE});async function zE(){}async function EE(){}var Ox={};C(Ox,{up:()=>$E,down:()=>UE});import{sql as Gx}from"kysely";async function $E(_){await Gx`
|
|
104
108
|
ALTER TABLE task_board_prompts
|
|
105
109
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
106
|
-
`.execute(_)}async function
|
|
110
|
+
`.execute(_)}async function UE(_){await Gx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Gx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var fx={};C(fx,{up:()=>PE,down:()=>JE});import{sql as Sx}from"kysely";async function PE(_){await Sx`
|
|
107
111
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
108
|
-
`.execute(_),await
|
|
112
|
+
`.execute(_),await Sx`
|
|
109
113
|
DELETE FROM connection_aggregations
|
|
110
114
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
111
|
-
`.execute(_),await
|
|
115
|
+
`.execute(_),await Sx`
|
|
112
116
|
DELETE FROM connections
|
|
113
117
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
114
|
-
`.execute(_)}async function
|
|
118
|
+
`.execute(_)}async function JE(){}var Ax={};C(Ax,{up:()=>XE,down:()=>QE});import{sql as em}from"kysely";async function XE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(em`audience in ('human', 'internal')`)).execute(),await em`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function QE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ix={};C(Ix,{up:()=>WE,down:()=>LE});import{sql as ZE}from"kysely";async function WE(_){await ZE`
|
|
115
119
|
UPDATE org_fs_entry AS d
|
|
116
120
|
SET deleted_at = now(),
|
|
117
121
|
updated_at = now(),
|
|
@@ -130,7 +134,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
130
134
|
AND c.parent = d.path
|
|
131
135
|
AND c.deleted_at IS NULL
|
|
132
136
|
)
|
|
133
|
-
`.execute(_)}async function
|
|
137
|
+
`.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE,ACTIONS:()=>yx});import{sql as F}from"kysely";var yx=["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"],jE=yx.filter((_)=>_!=="sprint_changed");async function FE(_){await F`
|
|
134
138
|
CREATE TABLE task_board_sprints (
|
|
135
139
|
id text PRIMARY KEY,
|
|
136
140
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -156,64 +160,64 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
156
160
|
CREATE INDEX idx_task_board_items_sprint
|
|
157
161
|
ON task_board_items (organization_id, sprint_id)
|
|
158
162
|
WHERE sprint_id IS NOT NULL
|
|
159
|
-
`.execute(_),await
|
|
163
|
+
`.execute(_),await dm(_,yx)}async function YE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await dm(_,jE),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 dm(_,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 wx={};C(wx,{up:()=>HE,planOrgSiteProjectLinks:()=>_T,down:()=>ME,applyOrgSiteProjectLinks:()=>xT});import{sql as J}from"kysely";var DE="migration-237",sm=1000;async function bm(_){return(await J`
|
|
160
164
|
SELECT conname FROM pg_constraint
|
|
161
165
|
WHERE conrelid = 'org_sites'::regclass
|
|
162
166
|
AND confrelid = 'organization'::regclass
|
|
163
167
|
AND contype = 'f'
|
|
164
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
168
|
+
`.execute(_)).rows[0]?.conname??null}async function _T(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
|
|
165
169
|
SELECT slug, organization_id FROM org_sites
|
|
166
170
|
WHERE organization_id IS NOT NULL
|
|
167
171
|
ORDER BY organization_id, slug
|
|
168
|
-
`.execute(_);if(u.rows.length===0)return x;let N=await
|
|
172
|
+
`.execute(_);if(u.rows.length===0)return x;let N=await J`
|
|
169
173
|
SELECT id, organization_id, metadata FROM connections
|
|
170
174
|
WHERE connection_type = 'VIRTUAL'
|
|
171
175
|
AND organization_id IN (
|
|
172
176
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
173
177
|
)
|
|
174
178
|
ORDER BY organization_id, id
|
|
175
|
-
`.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function
|
|
179
|
+
`.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function xT(_,x){let u=0;for(let N=0;N<x.length;N+=sm){let K=J.join(x.slice(N,N+sm).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
|
|
176
180
|
UPDATE org_sites o
|
|
177
181
|
SET project_id = v.pid,
|
|
178
182
|
linked_at = now(),
|
|
179
|
-
updated_by = ${
|
|
183
|
+
updated_by = ${DE},
|
|
180
184
|
updated_at = now()
|
|
181
185
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
182
186
|
WHERE o.slug = v.slug
|
|
183
187
|
AND o.project_id IS NULL
|
|
184
188
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
185
|
-
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function
|
|
189
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function HE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await _T(_);await J`
|
|
186
190
|
ALTER TABLE org_sites
|
|
187
191
|
ADD COLUMN project_id text NULL
|
|
188
192
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
189
193
|
ADD COLUMN linked_at timestamptz NULL
|
|
190
|
-
`.execute(_),await
|
|
194
|
+
`.execute(_),await J`
|
|
191
195
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
192
196
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
193
|
-
`.execute(_);let u=await
|
|
197
|
+
`.execute(_);let u=await bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
194
198
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
195
|
-
`.execute(_),await
|
|
199
|
+
`.execute(_),await J`
|
|
196
200
|
ALTER TABLE org_sites
|
|
197
201
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
198
202
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
199
203
|
ON DELETE SET NULL NOT VALID
|
|
200
|
-
`.execute(_),await
|
|
204
|
+
`.execute(_),await J`
|
|
201
205
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
202
|
-
`.execute(_);let N=await
|
|
206
|
+
`.execute(_);let N=await xT(_,x.links),K=await J`
|
|
203
207
|
UPDATE org_sites SET linked_at = created_at
|
|
204
208
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
205
|
-
`.execute(_);await
|
|
209
|
+
`.execute(_);await J`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:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function ME(_){if((await J`
|
|
206
210
|
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
|
|
211
|
+
`.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 bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
208
212
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
209
|
-
`.execute(_),await
|
|
213
|
+
`.execute(_),await J`
|
|
210
214
|
ALTER TABLE org_sites
|
|
211
215
|
ADD CONSTRAINT org_sites_organization_id_fkey
|
|
212
216
|
FOREIGN KEY (organization_id) REFERENCES organization(id)
|
|
213
217
|
ON DELETE CASCADE
|
|
214
|
-
`.execute(_),await
|
|
218
|
+
`.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
|
|
215
219
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
216
|
-
`.execute(_)}var
|
|
220
|
+
`.execute(_)}var kx={};C(kx,{up:()=>RE,moveRules:()=>Y,down:()=>BE});import{sql as c}from"kysely";async function RE(_){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
221
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
218
222
|
`.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
223
|
WITH moved AS (
|
|
@@ -241,7 +245,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
241
245
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
242
246
|
now()
|
|
243
247
|
FROM moved
|
|
244
|
-
`.execute(_)}async function
|
|
248
|
+
`.execute(_)}async function BE(){}async function Y(_,x,u,N,K){await c`
|
|
245
249
|
DELETE FROM ${c.table(x)} AS src
|
|
246
250
|
WHERE src.column_key = ${N}
|
|
247
251
|
AND EXISTS (
|
|
@@ -255,7 +259,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
255
259
|
id = ${u} || organization_id || '_' || ${K},
|
|
256
260
|
updated_at = now()
|
|
257
261
|
WHERE column_key = ${N}
|
|
258
|
-
`.execute(_)}var
|
|
262
|
+
`.execute(_)}var nx={};C(nx,{up:()=>OE,down:()=>SE});import{sql as GE}from"kysely";async function OE(_){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 GE`
|
|
259
263
|
WITH moved AS (
|
|
260
264
|
UPDATE task_board_items AS i
|
|
261
265
|
SET status = CASE prev.status
|
|
@@ -279,7 +283,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
279
283
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
280
284
|
now()
|
|
281
285
|
FROM moved
|
|
282
|
-
`.execute(_)}async function
|
|
286
|
+
`.execute(_)}async function SE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as fE}from"kysely";async function AE(_){await fE`
|
|
283
287
|
WITH restored AS (
|
|
284
288
|
UPDATE task_board_items AS i
|
|
285
289
|
SET status = 'todo', updated_at = now()
|
|
@@ -306,45 +310,45 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
306
310
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
307
311
|
now()
|
|
308
312
|
FROM restored
|
|
309
|
-
`.execute(_)}async function
|
|
313
|
+
`.execute(_)}async function IE(){}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as j}from"kysely";async function yE(_){await j`
|
|
310
314
|
ALTER TABLE automation_triggers
|
|
311
315
|
ADD COLUMN column_key text,
|
|
312
316
|
ADD COLUMN from_kind text,
|
|
313
317
|
ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
|
|
314
|
-
`.execute(_),await
|
|
318
|
+
`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
|
|
315
319
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
316
320
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
317
|
-
`.execute(_),await
|
|
321
|
+
`.execute(_),await j`
|
|
318
322
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
|
|
319
323
|
CHECK (
|
|
320
324
|
type != 'board_column_transition'
|
|
321
325
|
OR (column_key IS NOT NULL
|
|
322
326
|
AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
|
|
323
327
|
)
|
|
324
|
-
`.execute(_),await
|
|
328
|
+
`.execute(_),await j`
|
|
325
329
|
CREATE TABLE automation_trigger_fires (
|
|
326
330
|
trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
|
|
327
331
|
event_key text NOT NULL,
|
|
328
332
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
329
333
|
PRIMARY KEY (trigger_id, event_key)
|
|
330
334
|
)
|
|
331
|
-
`.execute(_),await
|
|
335
|
+
`.execute(_),await j`
|
|
332
336
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
333
337
|
ON task_board_activity (occurred_at)
|
|
334
338
|
WHERE action = 'status_changed'
|
|
335
|
-
`.execute(_)}async function
|
|
339
|
+
`.execute(_)}async function VE(_){await j`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await j`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await j`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
|
|
336
340
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
337
341
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
338
|
-
`.execute(_),await
|
|
342
|
+
`.execute(_),await j`
|
|
339
343
|
ALTER TABLE automation_triggers
|
|
340
344
|
DROP COLUMN IF EXISTS column_key,
|
|
341
345
|
DROP COLUMN IF EXISTS from_kind,
|
|
342
346
|
DROP COLUMN IF EXISTS from_statuses
|
|
343
|
-
`.execute(_)}var
|
|
347
|
+
`.execute(_)}var gx={};C(gx,{up:()=>vE,down:()=>pE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var CT=64,wE=new Set(["new","edit","settings","apps","projects","connections"]);function kE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function nE(_,x){let u=kE(_??"").slice(0,CT).replace(/-+$/,"");return u.length>=2&&!wE.has(u)?u:x}function uT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,CT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){let{rows:x}=await D`
|
|
344
348
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
345
349
|
FROM connections
|
|
346
350
|
ORDER BY organization_id, created_at, id
|
|
347
|
-
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=
|
|
351
|
+
`.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=nE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(uT(E,$)))$++;let P=uT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
|
|
348
352
|
UPDATE connections c
|
|
349
353
|
SET url_slug = v.slug
|
|
350
354
|
FROM unnest(
|
|
@@ -352,7 +356,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
352
356
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
353
357
|
) AS v(id, slug)
|
|
354
358
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
355
|
-
`.execute(_)}}async function
|
|
359
|
+
`.execute(_)}}async function vE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
356
360
|
CREATE TABLE connection_slug_aliases (
|
|
357
361
|
organization_id text NOT NULL,
|
|
358
362
|
slug text NOT NULL,
|
|
@@ -366,18 +370,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
366
370
|
`.execute(_),await O_(_),await D`
|
|
367
371
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
368
372
|
ON connections (organization_id, url_slug)
|
|
369
|
-
`.execute(_)}async function
|
|
373
|
+
`.execute(_)}async function pE(_){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 qx={};C(qx,{up:()=>gE,down:()=>qE});async function gE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function qE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var ix={};C(ix,{up:()=>iE,down:()=>cE});async function iE(_){await O_(_)}async function cE(){}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
|
|
370
374
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
371
375
|
ON automations (organization_id, system_key)
|
|
372
376
|
WHERE system_key IS NOT NULL
|
|
373
|
-
`.execute(_)}async function
|
|
377
|
+
`.execute(_)}async function tE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var hx={};C(hx,{up:()=>oE,down:()=>aE});import{sql as z_}from"kysely";async function oE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
374
378
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
375
379
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
376
380
|
'board_pr_ready'))
|
|
377
|
-
`.execute(_)}async function
|
|
381
|
+
`.execute(_)}async function aE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
378
382
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
379
383
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
380
|
-
`.execute(_)}var
|
|
384
|
+
`.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>dE});import{sql as H}from"kysely";async function rE(_){let{rows:x}=await H`
|
|
381
385
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
382
386
|
WHERE conname = 'chk_trigger_type'
|
|
383
387
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -404,8 +408,8 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
404
408
|
INSERT INTO automations
|
|
405
409
|
(id, organization_id, name, active, created_by, messages, models,
|
|
406
410
|
virtual_mcp_id)
|
|
407
|
-
VALUES (${T}, ${K.organization_id}, ${
|
|
408
|
-
${K.created_by}, ${JSON.stringify(
|
|
411
|
+
VALUES (${T}, ${K.organization_id}, ${lE(K)}, true,
|
|
412
|
+
${K.created_by}, ${JSON.stringify(eE(K.prompt))},
|
|
409
413
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
410
414
|
ON CONFLICT (id) DO NOTHING
|
|
411
415
|
`.execute(_),await H`
|
|
@@ -414,11 +418,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
414
418
|
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
415
419
|
${K.from_kind}, ${K.from_statuses})
|
|
416
420
|
ON CONFLICT (id) DO NOTHING
|
|
417
|
-
`.execute(_)}}function
|
|
418
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
421
|
+
`.execute(_)}}function lE(_){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 eE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
422
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function dE(_){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
423
|
ALTER TABLE automation_triggers
|
|
420
424
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
421
|
-
`.execute(_)}var
|
|
425
|
+
`.execute(_)}var ox={};C(ox,{up:()=>sE,down:()=>bE});import{sql as E_}from"kysely";async function sE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function bE(_){await E_`
|
|
422
426
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
423
427
|
id text PRIMARY KEY,
|
|
424
428
|
organization_id text NOT NULL,
|
|
@@ -445,7 +449,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
445
449
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
446
450
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
447
451
|
)
|
|
448
|
-
`.execute(_)}var
|
|
452
|
+
`.execute(_)}var ax={};C(ax,{up:()=>_0,down:()=>x0});import{sql as f_}from"kysely";async function _0(_){await f_`
|
|
449
453
|
ALTER TABLE task_board_items
|
|
450
454
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
451
455
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
@@ -453,22 +457,22 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
453
457
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
454
458
|
ON task_board_items (virtual_mcp_id)
|
|
455
459
|
WHERE virtual_mcp_id IS NOT NULL
|
|
456
|
-
`.execute(_)}async function
|
|
460
|
+
`.execute(_)}async function x0(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});async function u0(_){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 C0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var lx={};C(lx,{up:()=>K0,down:()=>N0});async function K0(_){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 N0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var ex={};C(ex,{up:()=>m0,down:()=>T0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function KT(_){let{rows:x}=await r`
|
|
457
461
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
458
462
|
WHERE conname = 'chk_trigger_type'
|
|
459
463
|
AND conrelid = 'automation_triggers'::regclass
|
|
460
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
464
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function NT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
461
465
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
462
466
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
463
|
-
`.execute(_)}async function
|
|
467
|
+
`.execute(_)}async function m0(_){let x=await KT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await NT(_,x)}async function T0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await KT(_);for(let u of A_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>z0,down:()=>E0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function mT(_){let{rows:x}=await l`
|
|
464
468
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
465
469
|
WHERE conname = 'chk_trigger_type'
|
|
466
470
|
AND conrelid = 'automation_triggers'::regclass
|
|
467
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
471
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
468
472
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
469
473
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
470
|
-
`.execute(_)}async function
|
|
471
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
474
|
+
`.execute(_)}async function z0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function E0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>U0,down:()=>P0});import{sql as $0}from"kysely";async function U0(_){await $0`ALTER TABLE organization_settings
|
|
475
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function P0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>J0,down:()=>X0});import{sql as zT}from"kysely";async function J0(_){await zT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function X0(_){await zT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as O}from"kysely";async function Q0(_){await O`
|
|
472
476
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
473
477
|
RETURNS jsonb AS $fn$
|
|
474
478
|
BEGIN
|
|
@@ -542,7 +546,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
542
546
|
|| '/' ||
|
|
543
547
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
544
548
|
) = lower(p.path)
|
|
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
|
|
549
|
+
`.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 Z0(_){await O`
|
|
546
550
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
547
551
|
RETURNS jsonb AS $fn$
|
|
548
552
|
BEGIN
|
|
@@ -569,17 +573,17 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
569
573
|
)::text
|
|
570
574
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
571
575
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
572
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
576
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var uu={};C(uu,{up:()=>W0,down:()=>L0});import{sql as xu}from"kysely";async function W0(_){await xu`ALTER TABLE git_provider_accounts
|
|
573
577
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
574
578
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
575
579
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
576
580
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
577
581
|
CHECK (auth_kind <> 'github_cli' OR
|
|
578
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
582
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function L0(_){await xu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await xu`ALTER TABLE git_provider_accounts
|
|
579
583
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
580
584
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
581
585
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
582
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
586
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Cu={};C(Cu,{up:()=>j0,down:()=>F0});import{sql as ET}from"kysely";async function j0(_){await ET`
|
|
583
587
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
584
588
|
SELECT
|
|
585
589
|
'org_user_fs',
|
|
@@ -593,9 +597,9 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
593
597
|
END,
|
|
594
598
|
now()
|
|
595
599
|
ON CONFLICT (id) DO NOTHING
|
|
596
|
-
`.execute(_)}async function
|
|
600
|
+
`.execute(_)}async function F0(_){await ET`
|
|
597
601
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
598
|
-
`.execute(_)}var
|
|
602
|
+
`.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});async function Y0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function D0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function M0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var mu={};C(mu,{up:()=>B0,down:()=>G0});import{sql as $_}from"kysely";var R0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function $T(_,x){for(let{table:u,column:N}of R0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function B0(_){await $T(_,["github","gitlab","bitbucket"])}async function G0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await $T(_,["github","gitlab"])}var Tu={};C(Tu,{up:()=>O0,down:()=>S0});import{sql as y_}from"kysely";async function O0(_){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(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`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 S0(_){await _.schema.dropTable("experiments").execute()}var zu={};C(zu,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await f0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function I0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var $u={};C($u,{up:()=>V0,down:()=>w0,ACTIONS:()=>Eu});import{sql as U_}from"kysely";var Eu=["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"],y0=Eu.filter((_)=>_!=="duplicate_reported");async function V0(_){await UT(_,Eu)}async function w0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await UT(_,y0)}async function UT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Uu={};C(Uu,{up:()=>k0,down:()=>n0});async function k0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function n0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function p0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>q0,down:()=>i0});import{sql as g0}from"kysely";async function q0(_){await g0`
|
|
599
603
|
CREATE TABLE github_connect_flows (
|
|
600
604
|
id text PRIMARY KEY,
|
|
601
605
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -605,7 +609,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
605
609
|
);
|
|
606
610
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
607
611
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
608
|
-
`.execute(_)}async function
|
|
612
|
+
`.execute(_)}async function i0(_){await _.schema.dropTable("github_connect_flows").execute()}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function h0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as V_}from"kysely";async function t0(_){await V_`
|
|
609
613
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
610
614
|
DECLARE
|
|
611
615
|
metadata_json jsonb;
|
|
@@ -661,19 +665,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
661
665
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
662
666
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
663
667
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
664
|
-
`.execute(_)}async function i0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});import{sql as V}from"kysely";async function c0(_){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 h0(_){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 Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as $T}from"kysely";async function t0(_){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($T`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo($T`CURRENT_TIMESTAMP`)).execute()}async function o0(_){await _.schema.dropTable("organization_settings").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});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 r0(_){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 ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){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 e0(_){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 Lu={};C(Lu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function b0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as s0}from"kysely";async function _$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",s0`text`).execute()}async function x$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){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 C$(_){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 Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as J_}from"kysely";async function K$(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`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 N$(_){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 Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as m$}from"kysely";async function T$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function z$(_){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(m$`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 Mu={};C(Mu,{up:()=>E$,down:()=>$$});import{sql as w_}from"kysely";async function E$(_){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(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`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(w_`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 w_`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 $$(_){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 Ru={};C(Ru,{up:()=>U$,down:()=>J$});async function U$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function J$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Bu={};C(Bu,{up:()=>P$,down:()=>Q$});import{sql as k_}from"kysely";async function P$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
|
|
668
|
+
`.execute(_)}async function o0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});import{sql as V}from"kysely";async function a0(_){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 r0(_){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 Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as PT}from"kysely";async function l0(_){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(PT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PT`CURRENT_TIMESTAMP`)).execute()}async function e0(_){await _.schema.dropTable("organization_settings").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});async function d0(_){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 s0(_){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 ju={};C(ju,{up:()=>b0,down:()=>_$});async function b0(_){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 _$(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function u$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Yu={};C(Yu,{up:()=>K$,down:()=>N$});import{sql as C$}from"kysely";async function K$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",C$`text`).execute()}async function N$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Du={};C(Du,{up:()=>m$,down:()=>T$});async function m$(_){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 T$(_){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 Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as P_}from"kysely";async function z$(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 E$(_){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 Mu={};C(Mu,{up:()=>U$,down:()=>P$});import{sql as $$}from"kysely";async function U$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function P$(_){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($$`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 Ru={};C(Ru,{up:()=>J$,down:()=>X$});import{sql as w_}from"kysely";async function J$(_){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(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`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(w_`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 w_`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 Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});async function Q$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Z$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gu={};C(Gu,{up:()=>W$,down:()=>L$});import{sql as k_}from"kysely";async function W$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
|
|
665
669
|
UPDATE gateways
|
|
666
670
|
SET tool_selection_mode = CASE
|
|
667
671
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
668
672
|
ELSE 'inclusion'
|
|
669
673
|
END
|
|
670
|
-
`.execute(_),await k_`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
|
|
674
|
+
`.execute(_),await k_`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 L$(_){await k_`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 k_`
|
|
671
675
|
UPDATE gateways
|
|
672
676
|
SET tool_selection_strategy = CASE
|
|
673
677
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
674
678
|
ELSE NULL
|
|
675
679
|
END
|
|
676
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var
|
|
680
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Ou={};C(Ou,{up:()=>j$,down:()=>F$});async function j$(_){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 F$(_){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 Su={};C(Su,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function D$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function M$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){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 B$(_){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 Iu={};C(Iu,{up:()=>O$,down:()=>S$});import{sql as G$}from"kysely";async function O$(_){await G$`
|
|
677
681
|
DELETE FROM downstream_tokens
|
|
678
682
|
WHERE id NOT IN (
|
|
679
683
|
SELECT id FROM (
|
|
@@ -683,7 +687,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
683
687
|
) ranked
|
|
684
688
|
WHERE rn = 1
|
|
685
689
|
)
|
|
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
|
|
690
|
+
`.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 S$(_){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 yu={};C(yu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function A$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as JT}from"kysely";async function I$(_){await JT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function y$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await JT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function w$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as n_}from"kysely";async function k$(_){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(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`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(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`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 n$(_){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 nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){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 p$(_){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 vu={};C(vu,{up:()=>g$,down:()=>q$});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 q$(_){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 pu={};C(pu,{up:()=>i$,down:()=>c$});import{sql as M}from"kysely";async function i$(_){await M`
|
|
687
691
|
INSERT INTO connections (
|
|
688
692
|
id,
|
|
689
693
|
organization_id,
|
|
@@ -730,7 +734,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
730
734
|
created_at,
|
|
731
735
|
updated_at
|
|
732
736
|
FROM virtual_mcps
|
|
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
|
|
737
|
+
`.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 c$(_){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`
|
|
734
738
|
INSERT INTO virtual_mcps (
|
|
735
739
|
id, organization_id, title, description, icon, status,
|
|
736
740
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -740,7 +744,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
740
744
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
741
745
|
FROM connections
|
|
742
746
|
WHERE connection_type = 'VIRTUAL'
|
|
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
|
|
747
|
+
`.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 gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){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 t$(_){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 qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as w}from"kysely";async function o$(_){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`
|
|
744
748
|
INSERT INTO connection_aggregations_new (
|
|
745
749
|
id, parent_connection_id, child_connection_id,
|
|
746
750
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -749,7 +753,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
749
753
|
id, parent_connection_id, child_connection_id,
|
|
750
754
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
751
755
|
FROM connection_aggregations
|
|
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
|
|
756
|
+
`.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 a$(_){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`
|
|
753
757
|
INSERT INTO connection_aggregations_new (
|
|
754
758
|
id, parent_connection_id, child_connection_id,
|
|
755
759
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -758,7 +762,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
758
762
|
id, parent_connection_id, child_connection_id,
|
|
759
763
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
760
764
|
FROM connection_aggregations
|
|
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
|
|
765
|
+
`.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 cu={};C(cu,{up:()=>r$,down:()=>l$});import{sql as iu}from"kysely";async function r$(_){await iu`
|
|
762
766
|
UPDATE connections
|
|
763
767
|
SET connection_url = connection_url || '/management',
|
|
764
768
|
tools = NULL,
|
|
@@ -766,42 +770,42 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
766
770
|
WHERE connection_url LIKE '%/mcp'
|
|
767
771
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
768
772
|
AND app_name = '@deco/management-mcp'
|
|
769
|
-
`.execute(_),await
|
|
773
|
+
`.execute(_),await iu`
|
|
770
774
|
UPDATE connections
|
|
771
775
|
SET tools = NULL,
|
|
772
776
|
updated_at = CURRENT_TIMESTAMP
|
|
773
777
|
WHERE app_name = '@deco/management-mcp'
|
|
774
778
|
AND tools IS NOT NULL
|
|
775
|
-
`.execute(_)}async function
|
|
779
|
+
`.execute(_)}async function l$(_){await iu`
|
|
776
780
|
UPDATE connections
|
|
777
781
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
778
782
|
updated_at = CURRENT_TIMESTAMP
|
|
779
783
|
WHERE connection_url LIKE '%/mcp/management'
|
|
780
784
|
AND app_name = '@deco/management-mcp'
|
|
781
|
-
`.execute(_)}var
|
|
785
|
+
`.execute(_)}var tu={};C(tu,{up:()=>e$,down:()=>d$});import{sql as hu}from"kysely";async function e$(_){await hu`
|
|
782
786
|
UPDATE connections
|
|
783
787
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
784
788
|
tools = NULL,
|
|
785
789
|
updated_at = CURRENT_TIMESTAMP
|
|
786
790
|
WHERE connection_url LIKE '%/mcp/management'
|
|
787
791
|
AND app_name = '@deco/management-mcp'
|
|
788
|
-
`.execute(_),await
|
|
792
|
+
`.execute(_),await hu`
|
|
789
793
|
UPDATE connections
|
|
790
794
|
SET tools = NULL,
|
|
791
795
|
updated_at = CURRENT_TIMESTAMP
|
|
792
796
|
WHERE connection_url LIKE '%/mcp/self'
|
|
793
797
|
AND app_name = '@deco/management-mcp'
|
|
794
798
|
AND tools IS NOT NULL
|
|
795
|
-
`.execute(_)}async function
|
|
799
|
+
`.execute(_)}async function d$(_){await hu`
|
|
796
800
|
UPDATE connections
|
|
797
801
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
798
802
|
updated_at = CURRENT_TIMESTAMP
|
|
799
803
|
WHERE connection_url LIKE '%/mcp/self'
|
|
800
804
|
AND app_name = '@deco/management-mcp'
|
|
801
|
-
`.execute(_)}var
|
|
805
|
+
`.execute(_)}var ou={};C(ou,{up:()=>s$,down:()=>b$});async function s$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function b$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as XT}from"kysely";async function _U(_){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(XT`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(XT`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 xU(_){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 ru={};C(ru,{up:()=>uU,down:()=>CU});import{sql as J_}from"kysely";async function uU(_){await J_`
|
|
802
806
|
ALTER TABLE connection_aggregations
|
|
803
807
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
804
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
808
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function CU(_){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_`
|
|
805
809
|
INSERT INTO connection_aggregations_new (
|
|
806
810
|
id, parent_connection_id, child_connection_id,
|
|
807
811
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -810,42 +814,42 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
810
814
|
id, parent_connection_id, child_connection_id,
|
|
811
815
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
812
816
|
FROM connection_aggregations
|
|
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
|
|
817
|
+
`.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 lu={};C(lu,{up:()=>zU,down:()=>EU});import{webcrypto as ZT}from"crypto";var QT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var KU=128,h,e;function NU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*KU),ZT.getRandomValues(h),e=0;else if(e+_>h.length)ZT.getRandomValues(h),e=0;e+=_}function d(_=21){NU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=QT[h[u]&63];return x}var mU="org-admin",TU="Organization Admin";async function zU(_){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()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:mU,name:TU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function EU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var eu={};C(eu,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function UU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var du={};C(du,{up:()=>PU,down:()=>JU});async function PU(_){}async function JU(_){}var su={};C(su,{up:()=>XU,down:()=>QU});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 QU(_){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 bu={};C(bu,{up:()=>ZU,down:()=>WU});import{sql as WT}from"kysely";async function ZU(_){await WT`
|
|
814
818
|
UPDATE connections
|
|
815
819
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
816
820
|
tools = NULL,
|
|
817
821
|
updated_at = CURRENT_TIMESTAMP
|
|
818
822
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
819
823
|
AND app_name = 'deco-registry'
|
|
820
|
-
`.execute(_)}async function
|
|
824
|
+
`.execute(_)}async function WU(_){await WT`
|
|
821
825
|
UPDATE connections
|
|
822
826
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
823
827
|
updated_at = CURRENT_TIMESTAMP
|
|
824
828
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
825
829
|
AND app_name = 'deco-registry'
|
|
826
|
-
`.execute(_)}var
|
|
830
|
+
`.execute(_)}var _C={};C(_C,{up:()=>jU,down:()=>FU});import{sql as LU}from"kysely";async function jU(_){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(LU`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 FU(_){await _.schema.dropTable("ai_provider_keys").execute()}var xC={};C(xC,{up:()=>DU,down:()=>HU});import{sql as YU}from"kysely";async function DU(_){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(YU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function HU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var uC={};C(uC,{up:()=>MU,down:()=>RU});import{sql as p}from"kysely";async function MU(_){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 RU(_){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 CC={};C(CC,{up:()=>BU,down:()=>GU});async function BU(_){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 GU(_){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 KC={};C(KC,{up:()=>OU,down:()=>SU});async function OU(_){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 SU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var NC={};C(NC,{up:()=>fU,down:()=>AU});import{sql as LT}from"kysely";async function fU(_){await LT`
|
|
827
831
|
UPDATE connections
|
|
828
832
|
SET title = 'CMS MCP',
|
|
829
833
|
tools = NULL,
|
|
830
834
|
updated_at = CURRENT_TIMESTAMP
|
|
831
835
|
WHERE app_name = '@deco/management-mcp'
|
|
832
|
-
`.execute(_)}async function
|
|
836
|
+
`.execute(_)}async function AU(_){await LT`
|
|
833
837
|
UPDATE connections
|
|
834
838
|
SET title = 'Mesh MCP',
|
|
835
839
|
updated_at = CURRENT_TIMESTAMP
|
|
836
840
|
WHERE app_name = '@deco/management-mcp'
|
|
837
|
-
`.execute(_)}var
|
|
841
|
+
`.execute(_)}var mC={};C(mC,{up:()=>IU,down:()=>yU});import{sql as jT}from"kysely";async function IU(_){await jT`
|
|
838
842
|
UPDATE connections
|
|
839
843
|
SET title = 'Deco CMS',
|
|
840
844
|
tools = NULL,
|
|
841
845
|
updated_at = CURRENT_TIMESTAMP
|
|
842
846
|
WHERE app_name = '@deco/management-mcp'
|
|
843
|
-
`.execute(_)}async function
|
|
847
|
+
`.execute(_)}async function yU(_){await jT`
|
|
844
848
|
UPDATE connections
|
|
845
849
|
SET title = 'CMS MCP',
|
|
846
850
|
updated_at = CURRENT_TIMESTAMP
|
|
847
851
|
WHERE app_name = '@deco/management-mcp'
|
|
848
|
-
`.execute(_)}var
|
|
852
|
+
`.execute(_)}var TC={};C(TC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function wU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var zC={};C(zC,{up:()=>kU,down:()=>nU});async function kU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function nU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var $C={};C($C,{up:()=>vU,down:()=>pU});import{sql as EC}from"kysely";async function vU(_){await EC`
|
|
849
853
|
UPDATE organization_settings
|
|
850
854
|
SET enabled_plugins = (
|
|
851
855
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -854,7 +858,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
854
858
|
)
|
|
855
859
|
WHERE enabled_plugins IS NOT NULL
|
|
856
860
|
AND enabled_plugins LIKE '%object-storage%'
|
|
857
|
-
`.execute(_),await
|
|
861
|
+
`.execute(_),await EC`
|
|
858
862
|
UPDATE projects
|
|
859
863
|
SET enabled_plugins = (
|
|
860
864
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -863,28 +867,28 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
863
867
|
)
|
|
864
868
|
WHERE enabled_plugins IS NOT NULL
|
|
865
869
|
AND enabled_plugins LIKE '%object-storage%'
|
|
866
|
-
`.execute(_),await
|
|
870
|
+
`.execute(_),await EC`
|
|
867
871
|
DELETE FROM project_plugin_configs
|
|
868
872
|
WHERE plugin_id = 'object-storage'
|
|
869
|
-
`.execute(_)}async function
|
|
873
|
+
`.execute(_)}async function pU(_){}var UC={};C(UC,{up:()=>gU,down:()=>qU});import{sql as FT}from"kysely";async function gU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await FT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function qU(_){await FT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>iU,down:()=>cU});import{sql as PC}from"kysely";async function iU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await PC`
|
|
870
874
|
ALTER TABLE connections
|
|
871
875
|
ADD CONSTRAINT chk_connections_subtype
|
|
872
876
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
873
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
877
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await PC`
|
|
874
878
|
UPDATE connections
|
|
875
879
|
SET subtype = 'agent'
|
|
876
880
|
WHERE connection_type = 'VIRTUAL'
|
|
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,
|
|
881
|
+
`.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,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),L=N.get(z.organization_id);if(!L)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:L,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:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){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 T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){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 cU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await PC`
|
|
878
882
|
ALTER TABLE connections
|
|
879
883
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
880
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
884
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var XC={};C(XC,{up:()=>tU,down:()=>oU});import{sql as hU}from"kysely";async function tU(_){await hU`
|
|
881
885
|
DELETE FROM connections
|
|
882
886
|
WHERE connection_type = 'VIRTUAL'
|
|
883
887
|
AND subtype = 'project'
|
|
884
888
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
885
|
-
`.execute(_)}async function
|
|
889
|
+
`.execute(_)}async function oU(_){}var QC={};C(QC,{up:()=>rU,down:()=>lU});import{sql as aU}from"kysely";async function rU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await aU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function lU(_){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 WC={};C(WC,{up:()=>eU,down:()=>dU});import{sql as ZC}from"kysely";async function eU(_){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(ZC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ZC`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(ZC`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 dU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var LC={};C(LC,{up:()=>sU,down:()=>bU});async function sU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function bU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function xP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var YC={};C(YC,{up:()=>CP,down:()=>KP});import{sql as YT}from"kysely";function FC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function uP(_){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 FC(N)}catch{return FC(_.connection_url)}if(_.title)return FC(_.title);return _.id}async function CP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await YT`
|
|
886
890
|
SELECT id, app_name, connection_url, title FROM connections
|
|
887
|
-
`.execute(_);for(let u of x.rows){let N=
|
|
891
|
+
`.execute(_);for(let u of x.rows){let N=uP(u);await YT`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 KP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var DC={};C(DC,{up:()=>NP,down:()=>mP});import{sql as X_}from"kysely";async function NP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`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 mP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`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 HC={};C(HC,{up:()=>TP,down:()=>zP});async function TP(_){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 zP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as v_}from"kysely";async function EP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
|
|
888
892
|
UPDATE threads
|
|
889
893
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
890
894
|
WHERE agent_ids IS NOT NULL
|
|
@@ -894,34 +898,34 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
894
898
|
`.execute(_),await v_`
|
|
895
899
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
896
900
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
897
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
901
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function $P(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
|
|
898
902
|
UPDATE threads
|
|
899
903
|
SET agent_ids = CASE
|
|
900
904
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
901
905
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
902
906
|
ELSE '[]'
|
|
903
907
|
END
|
|
904
|
-
`.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
908
|
+
`.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){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 PP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});async function JP(_){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 XP(_){await _.schema.dropTable("kv").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function ZP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var OC={};C(OC,{up:()=>WP,down:()=>LP});async function WP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function LP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var SC={};C(SC,{up:()=>jP,down:()=>FP});import{sql as S}from"kysely";async function jP(_){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 FP(_){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 fC={};C(fC,{up:()=>YP,down:()=>DP});import{sql as s}from"kysely";async function YP(_){await s`
|
|
905
909
|
ALTER TABLE event_subscriptions
|
|
906
910
|
ALTER COLUMN enabled DROP DEFAULT
|
|
907
|
-
`.execute(_),await
|
|
911
|
+
`.execute(_),await s`
|
|
908
912
|
ALTER TABLE event_subscriptions
|
|
909
913
|
ALTER COLUMN enabled TYPE boolean
|
|
910
914
|
USING enabled::boolean
|
|
911
|
-
`.execute(_),await
|
|
915
|
+
`.execute(_),await s`
|
|
912
916
|
ALTER TABLE event_subscriptions
|
|
913
917
|
ALTER COLUMN enabled SET DEFAULT true
|
|
914
|
-
`.execute(_)}async function
|
|
918
|
+
`.execute(_)}async function DP(_){await s`
|
|
915
919
|
ALTER TABLE event_subscriptions
|
|
916
920
|
ALTER COLUMN enabled DROP DEFAULT
|
|
917
|
-
`.execute(_),await
|
|
921
|
+
`.execute(_),await s`
|
|
918
922
|
ALTER TABLE event_subscriptions
|
|
919
923
|
ALTER COLUMN enabled TYPE integer
|
|
920
924
|
USING enabled::integer
|
|
921
|
-
`.execute(_),await
|
|
925
|
+
`.execute(_),await s`
|
|
922
926
|
ALTER TABLE event_subscriptions
|
|
923
927
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
924
|
-
`.execute(_)}var
|
|
928
|
+
`.execute(_)}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as DT}from"kysely";async function HP(_){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(DT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function MP(_){await _.schema.dropTable("brand_context").execute()}var IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as HT}from"kysely";async function RP(_){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(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute()}async function BP(_){await _.schema.dropTable("organization_domains").execute()}var yC={};C(yC,{up:()=>fP,down:()=>AP});import{sql as MT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),GP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function OP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(p_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}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,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(p_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function SP(_){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,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=GP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function fP(_){let x=await MT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=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 P=OP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=SP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await MT`
|
|
925
929
|
UPDATE brand_context
|
|
926
930
|
SET
|
|
927
931
|
colors = ${T},
|
|
@@ -929,29 +933,29 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
929
933
|
metadata = ${$},
|
|
930
934
|
updated_at = NOW()
|
|
931
935
|
WHERE id = ${u.id}
|
|
932
|
-
`.execute(_)}}}async function
|
|
936
|
+
`.execute(_)}}}async function AP(_){}var VC={};C(VC,{up:()=>yP,down:()=>VP});import{sql as IP}from"kysely";async function yP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(IP`'{}'::jsonb`)).execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var wC={};C(wC,{up:()=>wP,down:()=>kP});async function wP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var kC={};C(kC,{up:()=>nP,down:()=>vP});async function nP(_){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 vP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function gP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function iP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function hP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var gC={};C(gC,{up:()=>oP,down:()=>aP});import{sql as RT}from"kysely";var tP=["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 oP(_){let x=await RT`
|
|
933
937
|
SELECT id, permission FROM "organizationRole"
|
|
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 m=K,T=Array.from(new Set([...m,...
|
|
938
|
+
`.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 m=K,T=Array.from(new Set([...m,...tP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await RT`
|
|
935
939
|
UPDATE "organizationRole"
|
|
936
940
|
SET permission = ${z}
|
|
937
941
|
WHERE id = ${u.id}
|
|
938
|
-
`.execute(_)}}async function
|
|
942
|
+
`.execute(_)}}async function aP(_){}var qC={};C(qC,{up:()=>rP,down:()=>lP});async function rP(_){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 lP(_){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 iC={};C(iC,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function dP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var cC={};C(cC,{up:()=>sP,down:()=>bP});import{sql as Q_}from"kysely";async function sP(_){await Q_`
|
|
939
943
|
UPDATE automations
|
|
940
944
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
941
945
|
WHERE virtual_mcp_id IS NULL
|
|
942
|
-
`.execute(_),await
|
|
946
|
+
`.execute(_),await Q_`
|
|
943
947
|
ALTER TABLE automations
|
|
944
948
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
945
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
949
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function bP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
946
950
|
UPDATE automations
|
|
947
951
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
948
|
-
`.execute(_),await
|
|
952
|
+
`.execute(_),await Q_`
|
|
949
953
|
ALTER TABLE automations
|
|
950
954
|
ALTER COLUMN agent SET NOT NULL
|
|
951
|
-
`.execute(_),await
|
|
955
|
+
`.execute(_),await Q_`
|
|
952
956
|
ALTER TABLE automations
|
|
953
957
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
954
|
-
`.execute(_)}var
|
|
958
|
+
`.execute(_)}var tC={};C(tC,{up:()=>CJ,reshapeSimpleMode:()=>BT,inferAutomationTier:()=>GT,down:()=>KJ,__testing:()=>uJ});var _J={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},xJ=["fast","smart","thinking","image","web_research"];function hC(_){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 xJ.some((N)=>(N in u))}function BT(_){if(hC(_))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 _J;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 GT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function OT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var uJ={isAlreadyReshapedSimpleMode:hC,isAlreadyReshapedAutomationModels:OT};async function CJ(_){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(hC(K))continue;let m=BT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).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(OT(K))continue;let m=GT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function KJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var oC={};C(oC,{up:()=>NJ,down:()=>mJ});import{sql as n}from"kysely";async function NJ(_){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`
|
|
955
959
|
ALTER TABLE automations
|
|
956
960
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
957
961
|
`.execute(_),await n`
|
|
@@ -973,19 +977,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
973
977
|
AND tool_input IS NOT NULL
|
|
974
978
|
)
|
|
975
979
|
)
|
|
976
|
-
`.execute(_)}async function
|
|
980
|
+
`.execute(_)}async function mJ(_){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`
|
|
977
981
|
ALTER TABLE automations
|
|
978
982
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
979
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
983
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var aC={};C(aC,{up:()=>zJ,down:()=>EJ});import{sql as ST}from"kysely";var TJ=new Set(["host","docker","agent-sandbox"]);async function zJ(_){let x=await ST`
|
|
980
984
|
SELECT id, metadata FROM "connections"
|
|
981
985
|
WHERE connection_type = 'VIRTUAL'
|
|
982
986
|
AND metadata IS NOT NULL
|
|
983
987
|
AND metadata LIKE '%vmMap%'
|
|
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 m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let
|
|
988
|
+
`.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 m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!TJ.has(y)){m=!0;continue}P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await ST`
|
|
985
989
|
UPDATE "connections"
|
|
986
990
|
SET metadata = ${z}
|
|
987
991
|
WHERE id = ${u.id}
|
|
988
|
-
`.execute(_)}}async function
|
|
992
|
+
`.execute(_)}}async function EJ(_){}var rC={};C(rC,{up:()=>$J,down:()=>UJ});import{sql as Z_}from"kysely";async function $J(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`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(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 Z_`
|
|
989
993
|
CREATE INDEX async_research_jobs_active_idx
|
|
990
994
|
ON async_research_jobs (status, last_polled_at)
|
|
991
995
|
WHERE status IN ('pending', 'polling')
|
|
@@ -993,24 +997,24 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
993
997
|
ALTER TABLE async_research_jobs
|
|
994
998
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
995
999
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
996
|
-
`.execute(_)}async function
|
|
1000
|
+
`.execute(_)}async function UJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});async function PJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function JJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as b}from"kysely";async function XJ(_){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(b`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).execute(),await b`
|
|
997
1001
|
ALTER TABLE secrets
|
|
998
1002
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
999
|
-
`.execute(_),await
|
|
1003
|
+
`.execute(_),await b`
|
|
1000
1004
|
ALTER TABLE secrets
|
|
1001
1005
|
ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
|
|
1002
1006
|
(scope = 'user' AND user_id IS NOT NULL)
|
|
1003
1007
|
OR (scope = 'organization' AND user_id IS NULL)
|
|
1004
1008
|
)
|
|
1005
|
-
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await
|
|
1009
|
+
`.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await b`
|
|
1006
1010
|
CREATE UNIQUE INDEX idx_secrets_user_name
|
|
1007
1011
|
ON secrets (organization_id, user_id, lower(name))
|
|
1008
1012
|
WHERE scope = 'user'
|
|
1009
|
-
`.execute(_),await
|
|
1013
|
+
`.execute(_),await b`
|
|
1010
1014
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1011
1015
|
ON secrets (organization_id, lower(name))
|
|
1012
1016
|
WHERE scope = 'organization'
|
|
1013
|
-
`.execute(_)}async function
|
|
1017
|
+
`.execute(_)}async function QJ(_){await _.schema.dropTable("secrets").execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function WJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var sC={};C(sC,{up:()=>jJ,down:()=>FJ});import{sql as LJ}from"kysely";async function jJ(_){await LJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function FJ(_){}var bC={};C(bC,{up:()=>YJ,down:()=>DJ});import{sql as g_}from"kysely";async function YJ(_){await g_`
|
|
1014
1018
|
ALTER TABLE sandbox_runner_state
|
|
1015
1019
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1016
1020
|
`.execute(_),await g_`
|
|
@@ -1048,7 +1052,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1048
1052
|
EXCEPTION WHEN undefined_table THEN
|
|
1049
1053
|
NULL;
|
|
1050
1054
|
END; $$
|
|
1051
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1055
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function DJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
|
|
1052
1056
|
ALTER TABLE sandbox_runner_state
|
|
1053
1057
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1054
1058
|
`.execute(_),await g_`
|
|
@@ -1086,7 +1090,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1086
1090
|
EXCEPTION WHEN undefined_table THEN
|
|
1087
1091
|
NULL;
|
|
1088
1092
|
END; $$
|
|
1089
|
-
`.execute(_)}var
|
|
1093
|
+
`.execute(_)}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as fT}from"kysely";async function HJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await fT`
|
|
1090
1094
|
DO $$ BEGIN
|
|
1091
1095
|
UPDATE virtualmcps v
|
|
1092
1096
|
SET metadata = jsonb_set(
|
|
@@ -1125,7 +1129,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1125
1129
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1126
1130
|
NULL;
|
|
1127
1131
|
END; $$
|
|
1128
|
-
`.execute(_)}async function
|
|
1132
|
+
`.execute(_)}async function MJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await fT`
|
|
1129
1133
|
DO $$ BEGIN
|
|
1130
1134
|
UPDATE virtualmcps v
|
|
1131
1135
|
SET metadata = jsonb_set(
|
|
@@ -1158,7 +1162,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1158
1162
|
EXCEPTION WHEN undefined_table THEN
|
|
1159
1163
|
NULL;
|
|
1160
1164
|
END; $$
|
|
1161
|
-
`.execute(_)}var
|
|
1165
|
+
`.execute(_)}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as AT}from"kysely";async function RJ(_){await AT`
|
|
1162
1166
|
UPDATE connections c
|
|
1163
1167
|
SET metadata = (
|
|
1164
1168
|
jsonb_set(
|
|
@@ -1202,7 +1206,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1202
1206
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1203
1207
|
WHERE entry ? 'vmId'
|
|
1204
1208
|
);
|
|
1205
|
-
`.execute(_),await
|
|
1209
|
+
`.execute(_),await AT`
|
|
1206
1210
|
UPDATE connections c
|
|
1207
1211
|
SET metadata = (
|
|
1208
1212
|
jsonb_set(
|
|
@@ -1256,10 +1260,10 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1256
1260
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1257
1261
|
WHERE inner_entry ? 'runnerKind'
|
|
1258
1262
|
);
|
|
1259
|
-
`.execute(_)}async function
|
|
1263
|
+
`.execute(_)}async function BJ(_){}var uK={};C(uK,{up:()=>OJ,down:()=>SJ});import{sql as GJ}from"kysely";async function OJ(_){await GJ`
|
|
1260
1264
|
DELETE FROM ai_provider_keys
|
|
1261
1265
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1262
|
-
`.execute(_)}async function
|
|
1266
|
+
`.execute(_)}async function SJ(_){}var CK={};C(CK,{up:()=>fJ,down:()=>AJ});import{sql as q_}from"kysely";async function fJ(_){await q_`
|
|
1263
1267
|
UPDATE sandbox_runner_state
|
|
1264
1268
|
SET sandbox_provider_kind = 'desktop'
|
|
1265
1269
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -1357,13 +1361,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1357
1361
|
UPDATE threads
|
|
1358
1362
|
SET sandbox_provider_kind = 'desktop'
|
|
1359
1363
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1360
|
-
`.execute(_)}async function
|
|
1364
|
+
`.execute(_)}async function AJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as W_}from"kysely";async function IJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`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 yJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as IT}from"kysely";async function VJ(_){await IT`
|
|
1361
1365
|
ALTER TABLE organization_domains
|
|
1362
1366
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1363
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1367
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function wJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await IT`
|
|
1364
1368
|
ALTER TABLE organization_domains
|
|
1365
1369
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1366
|
-
`.execute(_)}var
|
|
1370
|
+
`.execute(_)}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as i_}from"kysely";async function kJ(_){await i_`
|
|
1367
1371
|
UPDATE sandbox_runner_state
|
|
1368
1372
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1369
1373
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1452,19 +1456,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1452
1456
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1453
1457
|
AND c.metadata IS NOT NULL
|
|
1454
1458
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1455
|
-
`.execute(_)}async function
|
|
1459
|
+
`.execute(_)}async function nJ(_){}var TK={};C(TK,{up:()=>pJ,down:()=>gJ});import{sql as yT}from"kysely";var vJ=["GLOBAL_SEARCH"];async function pJ(_){let x=await yT`
|
|
1456
1460
|
SELECT id, permission FROM "organizationRole"
|
|
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 m=K,T=Array.from(new Set([...m,...
|
|
1461
|
+
`.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 m=K,T=Array.from(new Set([...m,...vJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await yT`
|
|
1458
1462
|
UPDATE "organizationRole"
|
|
1459
1463
|
SET permission = ${z}
|
|
1460
1464
|
WHERE id = ${u.id}
|
|
1461
|
-
`.execute(_)}}async function
|
|
1465
|
+
`.execute(_)}}async function gJ(_){}var EK={};C(EK,{up:()=>qJ,down:()=>iJ});import{sql as zK}from"kysely";async function qJ(_){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(zK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await zK`
|
|
1462
1466
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1463
1467
|
ON org_file_configs (organization_id, lower(name))
|
|
1464
|
-
`.execute(_)}async function
|
|
1468
|
+
`.execute(_)}async function iJ(_){await _.schema.dropTable("org_file_configs").execute()}var $K={};C($K,{up:()=>cJ,down:()=>hJ});import{sql as v}from"kysely";async function cJ(_){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`
|
|
1465
1469
|
ALTER TABLE automations
|
|
1466
1470
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1467
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1471
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function hJ(_){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`
|
|
1468
1472
|
ALTER TABLE automations
|
|
1469
1473
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1470
1474
|
`.execute(_),await v`
|
|
@@ -1486,25 +1490,25 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1486
1490
|
AND tool_input IS NOT NULL
|
|
1487
1491
|
)
|
|
1488
1492
|
)
|
|
1489
|
-
`.execute(_)}var
|
|
1493
|
+
`.execute(_)}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});async function tJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function oJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>aJ,down:()=>rJ});import{sql as PK}from"kysely";var c_="local-docker";async function aJ(_){await PK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await PK`
|
|
1490
1494
|
SELECT id, metadata FROM "connections"
|
|
1491
1495
|
WHERE connection_type = 'VIRTUAL'
|
|
1492
1496
|
AND metadata IS NOT NULL
|
|
1493
1497
|
AND metadata LIKE ${"%"+c_+"%"}
|
|
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 m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let
|
|
1498
|
+
`.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 m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(c_ in Q){m=!0;let y={...Q};if(delete y[c_],Object.keys(y).length>0)P[L]=y}else P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await PK`
|
|
1495
1499
|
UPDATE "connections"
|
|
1496
1500
|
SET metadata = ${z}
|
|
1497
1501
|
WHERE id = ${u.id}
|
|
1498
|
-
`.execute(_)}}async function
|
|
1502
|
+
`.execute(_)}}async function rJ(_){}var XK={};C(XK,{up:()=>lJ,down:()=>eJ});import{sql as h_}from"kysely";async function lJ(_){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 h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`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 eJ(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>dJ,down:()=>sJ});async function dJ(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function sJ(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var ZK={};C(ZK,{up:()=>bJ,down:()=>_X});async function bJ(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function _X(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var LK={};C(LK,{up:()=>CX,down:()=>KX});async function CX(_){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 KX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>NX,down:()=>mX});async function NX(_){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 mX(_){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 YK={};C(YK,{up:()=>zX,down:()=>EX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function FK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){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 TX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[L,Q]of Object.entries($)){if(L===x){if(N=!0,!(u in $))P[u]=FK(Q,x,u);else if(!t_($[u])&&t_(Q))P[u]=FK(Q,x,u);continue}let y=FK(Q,x,u);if(y!==Q)N=!0;if(L===u&&L in P&&t_(P[L])&&!t_(y))continue;P[L]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function VT(_,x,u){let N=await k`
|
|
1499
1503
|
SELECT id, metadata FROM connections
|
|
1500
1504
|
WHERE connection_type = 'VIRTUAL'
|
|
1501
1505
|
AND metadata IS NOT NULL
|
|
1502
1506
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1503
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=
|
|
1507
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=TX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1504
1508
|
UPDATE connections
|
|
1505
1509
|
SET metadata = ${JSON.stringify(m)}
|
|
1506
1510
|
WHERE id = ${K.id}
|
|
1507
|
-
`.execute(_)}}async function
|
|
1511
|
+
`.execute(_)}}async function zX(_){await k`
|
|
1508
1512
|
UPDATE threads
|
|
1509
1513
|
SET sandbox_provider_kind = ${A}
|
|
1510
1514
|
WHERE sandbox_provider_kind = ${f}
|
|
@@ -1533,7 +1537,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1533
1537
|
UPDATE sandbox_runner_state
|
|
1534
1538
|
SET sandbox_provider_kind = ${A}
|
|
1535
1539
|
WHERE sandbox_provider_kind = ${f}
|
|
1536
|
-
`.execute(_),await
|
|
1540
|
+
`.execute(_),await VT(_,f,A)}async function EX(_){await k`
|
|
1537
1541
|
UPDATE threads
|
|
1538
1542
|
SET sandbox_provider_kind = ${f}
|
|
1539
1543
|
WHERE sandbox_provider_kind = ${A}
|
|
@@ -1562,7 +1566,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1562
1566
|
UPDATE sandbox_runner_state
|
|
1563
1567
|
SET sandbox_provider_kind = ${f}
|
|
1564
1568
|
WHERE sandbox_provider_kind = ${A}
|
|
1565
|
-
`.execute(_),await
|
|
1569
|
+
`.execute(_),await VT(_,A,f)}var DK={};C(DK,{up:()=>$X,down:()=>UX});import{sql as g}from"kysely";async function $X(_){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`
|
|
1566
1570
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1567
1571
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1568
1572
|
WHERE deleted_at IS NULL
|
|
@@ -1570,7 +1574,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1570
1574
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1571
1575
|
ON org_fs_entry (organization_id, volume, size)
|
|
1572
1576
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1573
|
-
`.execute(_)}async function
|
|
1577
|
+
`.execute(_)}async function UX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var HK={};C(HK,{up:()=>PX,down:()=>JX});async function PX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function JX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as wT}from"kysely";async function XX(_){await wT`
|
|
1574
1578
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1575
1579
|
SELECT
|
|
1576
1580
|
'org_orgfs_public_skills',
|
|
@@ -1584,13 +1588,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1584
1588
|
END,
|
|
1585
1589
|
now()
|
|
1586
1590
|
ON CONFLICT (id) DO NOTHING
|
|
1587
|
-
`.execute(_)}async function
|
|
1591
|
+
`.execute(_)}async function QX(_){await wT`
|
|
1588
1592
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1589
|
-
`.execute(_)}var
|
|
1593
|
+
`.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var BK={};C(BK,{up:()=>LX,down:()=>jX});import{sql as kT}from"kysely";async function LX(_){await kT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function jX(_){await kT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var GK={};C(GK,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){await FX`
|
|
1590
1594
|
UPDATE downstream_tokens
|
|
1591
1595
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1592
1596
|
WHERE "expiresAt" IS NULL
|
|
1593
|
-
`.execute(_)}async function
|
|
1597
|
+
`.execute(_)}async function DX(_){}var OK={};C(OK,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function MX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var SK={};C(SK,{up:()=>RX,down:()=>BX});async function RX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function BX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function OX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function fX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});import{sql as nT}from"kysely";async function yX(_){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(nT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function VX(_){await _.schema.dropTable("org_sites").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function kX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as R}from"kysely";async function nX(_){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`
|
|
1594
1598
|
UPDATE organization_domains
|
|
1595
1599
|
SET
|
|
1596
1600
|
id = gen_random_uuid()::text,
|
|
@@ -1599,18 +1603,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1599
1603
|
verification_method = 'email',
|
|
1600
1604
|
verified_at = created_at
|
|
1601
1605
|
WHERE id IS NULL
|
|
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
|
|
1606
|
+
`.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 vX(_){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`
|
|
1603
1607
|
UPDATE organization_domains
|
|
1604
1608
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
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
|
|
1609
|
+
`.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 kK={};C(kK,{up:()=>pX,down:()=>gX});import{sql as o_}from"kysely";async function pX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(o_`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(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).execute(),await o_`
|
|
1606
1610
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1607
1611
|
ON organization_join_requests (organization_id, user_id)
|
|
1608
1612
|
WHERE status = 'pending'
|
|
1609
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1613
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function gX(_){await _.schema.dropTable("organization_join_requests").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});async function qX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function iX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var vK={};C(vK,{up:()=>cX,down:()=>hX});async function cX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function hX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var qK={};C(qK,{up:()=>aX,splitWebResearchTier:()=>gK,down:()=>rX,__testing:()=>oX});function tX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function pK(_){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 gK(_){if(!_||pK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(tX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var oX={splitWebResearchTier:gK,isAlreadySplit:pK};async function aX(_){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(pK(N))continue;let K=gK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function rX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var iK={};C(iK,{up:()=>lX,down:()=>eX});import{sql as L_}from"kysely";async function lX(_){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(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await L_`
|
|
1610
1614
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1611
1615
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1612
1616
|
WHERE revoked_at IS NULL
|
|
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(
|
|
1617
|
+
`.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(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`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 eX(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var cK={};C(cK,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function sX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var hK={};C(hK,{up:()=>bX,down:()=>_Q});import{sql as t}from"kysely";async function bX(_){await t`
|
|
1614
1618
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1615
1619
|
RETURNS jsonb AS $fn$
|
|
1616
1620
|
BEGIN
|
|
@@ -1669,7 +1673,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1669
1673
|
BEFORE INSERT ON connection_aggregations
|
|
1670
1674
|
FOR EACH ROW
|
|
1671
1675
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1672
|
-
`.execute(_)}async function
|
|
1676
|
+
`.execute(_)}async function _Q(_){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 oK={};C(oK,{up:()=>xQ,down:()=>uQ});import{sql as tK}from"kysely";async function xQ(_){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(tK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tK`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(tK`false`)).execute()}async function uQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var aK={};C(aK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function KQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});async function NQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var eK={};C(eK,{up:()=>$Q,down:()=>UQ});import{sql as EQ}from"kysely";async function $Q(_){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 UQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var dK={};C(dK,{up:()=>PQ,down:()=>JQ});async function PQ(_){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 JQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var sK={};C(sK,{up:()=>QQ,down:()=>ZQ});import{sql as XQ}from"kysely";async function QQ(_){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(XQ`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 ZQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>LQ,down:()=>jQ});import{sql as WQ}from"kysely";async function LQ(_){await WQ`
|
|
1673
1677
|
DELETE FROM member
|
|
1674
1678
|
WHERE id IN (
|
|
1675
1679
|
SELECT id FROM (
|
|
@@ -1688,38 +1692,38 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1688
1692
|
) ranked
|
|
1689
1693
|
WHERE ranked.rn > 1
|
|
1690
1694
|
)
|
|
1691
|
-
`.execute(_)}async function
|
|
1695
|
+
`.execute(_)}async function jQ(_){}var _N={};C(_N,{up:()=>FQ,down:()=>YQ});async function FQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function YQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});async function DQ(_){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 HQ(_){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 uN={};C(uN,{up:()=>RQ,down:()=>BQ});import{sql as MQ}from"kysely";async function RQ(_){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(MQ`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 BQ(_){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 CN={};C(CN,{up:()=>OQ,down:()=>SQ});import{sql as GQ}from"kysely";async function OQ(_){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(GQ`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 SQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var KN={};C(KN,{up:()=>fQ,down:()=>AQ});import{sql as a_}from"kysely";async function fQ(_){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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`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 AQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as r_}from"kysely";async function IQ(_){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(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`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(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
|
|
1692
1696
|
insert into organization_billing (organization_id, legacy)
|
|
1693
1697
|
select id, true from organization
|
|
1694
1698
|
on conflict (organization_id) do nothing
|
|
1695
|
-
`.execute(_)}async function
|
|
1699
|
+
`.execute(_)}async function yQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as vT}from"kysely";async function VQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(vT`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(vT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function wQ(_){await _.schema.dropTable("seat_change_log").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});async function kQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function nQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as pT}from"kysely";async function vQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await pT`
|
|
1696
1700
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1697
1701
|
on organization_billing (stripe_subscription_id)
|
|
1698
1702
|
where stripe_subscription_id is not null
|
|
1699
|
-
`.execute(_)}async function
|
|
1703
|
+
`.execute(_)}async function pQ(_){await pT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as gT}from"kysely";async function iQ(_){await gT`
|
|
1700
1704
|
create index idx_org_billing_benefits_pending
|
|
1701
1705
|
on organization_billing (updated_at)
|
|
1702
1706
|
where benefits_reference_id is not null
|
|
1703
|
-
`.execute(_)}async function
|
|
1707
|
+
`.execute(_)}async function cQ(_){await gT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});import{sql as qT}from"kysely";async function hQ(_){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(qT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`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 tQ(_){await _.schema.dropTable("user_model_preferences").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function lQ(_){}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});import{sql as iT}from"kysely";async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await iT`
|
|
1704
1708
|
UPDATE organization_settings
|
|
1705
1709
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1706
1710
|
WHERE reports_only IS NOT NULL
|
|
1707
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1711
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await iT`
|
|
1708
1712
|
UPDATE organization_settings
|
|
1709
1713
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1710
1714
|
WHERE flags ? 'reports_only'
|
|
1711
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>
|
|
1715
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>_Z});import{sql as sQ}from"kysely";async function bQ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await sQ`
|
|
1712
1716
|
update task_board_items
|
|
1713
1717
|
set sort_order = -extract(epoch from created_at)
|
|
1714
|
-
`.execute(_)}async function
|
|
1718
|
+
`.execute(_)}async function _Z(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var ZN={};C(ZN,{up:()=>xZ,down:()=>uZ,ACTIONS:()=>cT});import{sql as l_}from"kysely";var cT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function xZ(_){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(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(cT.map((x)=>l_.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 uZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var LN={};C(LN,{up:()=>CZ,down:()=>KZ,ACTIONS:()=>WN});import{sql as j_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function CZ(_){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 hT(_,WN)}async function KZ(_){await hT(_,WN.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 hT(_,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 FN={};C(FN,{up:()=>mZ,down:()=>TZ});import{sql as tT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function NZ(_){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 jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function mZ(_){let x=await tT`
|
|
1715
1719
|
SELECT id, app_name, connection_url, title, slug
|
|
1716
1720
|
FROM connections
|
|
1717
1721
|
WHERE connection_type != 'VIRTUAL'
|
|
1718
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1722
|
+
`.execute(_),u=0;for(let N of x.rows){let K=NZ(N);if(K===N.slug)continue;await tT`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 TZ(){}var YN={};C(YN,{up:()=>EZ,down:()=>$Z});import{sql as zZ}from"kysely";async function EZ(_){await zZ`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 $Z(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var HN={};C(HN,{up:()=>PZ,down:()=>JZ,ACTIONS:()=>DN});import{sql as e_}from"kysely";var DN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],UZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function PZ(_){await oT(_,DN)}async function JZ(_){await oT(_,DN.filter((x)=>!UZ.has(x)))}async function oT(_,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 MN={};C(MN,{up:()=>QZ,down:()=>ZZ});import{sql as XZ}from"kysely";async function QZ(_){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 ZZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var BN={};C(BN,{up:()=>LZ,down:()=>jZ,ACTIONS:()=>RN});import{sql as d_}from"kysely";var RN=["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"],WZ=new Set(["merge_conflict_resolution"]);async function LZ(_){await aT(_,RN)}async function jZ(_){await aT(_,RN.filter((x)=>!WZ.has(x)))}async function aT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var GN={};C(GN,{up:()=>FZ,down:()=>YZ});import{sql as F_}from"kysely";async function FZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`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 YZ(_){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 F_`
|
|
1719
1723
|
create index idx_org_billing_benefits_pending
|
|
1720
1724
|
on organization_billing (updated_at)
|
|
1721
1725
|
where benefits_reference_id is not null
|
|
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(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var
|
|
1726
|
+
`.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(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ});import{sql as s_}from"kysely";async function DZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function HZ(_){await s_`
|
|
1723
1727
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1724
1728
|
RETURNS trigger AS $fn$
|
|
1725
1729
|
BEGIN
|
|
@@ -1740,40 +1744,40 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1740
1744
|
RETURN NEW;
|
|
1741
1745
|
END;
|
|
1742
1746
|
$fn$ LANGUAGE plpgsql;
|
|
1743
|
-
`.execute(_),await
|
|
1747
|
+
`.execute(_),await s_`
|
|
1744
1748
|
CREATE TRIGGER trg_repo_github_child_single_parent
|
|
1745
1749
|
BEFORE INSERT ON connection_aggregations
|
|
1746
1750
|
FOR EACH ROW
|
|
1747
1751
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1748
|
-
`.execute(_)}var
|
|
1752
|
+
`.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as rT}from"kysely";async function MZ(_){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(rT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(rT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function RZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as lT}from"kysely";async function BZ(_){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(lT`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(lT`now()`)).execute()}async function GZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var IN={};C(IN,{up:()=>OZ,down:()=>SZ});import{sql as AN}from"kysely";async function OZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(AN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await AN`
|
|
1749
1753
|
create index idx_task_quota_claims_org_period_live
|
|
1750
1754
|
on task_quota_claims (organization_id, period_key)
|
|
1751
1755
|
where state <> 'released'
|
|
1752
|
-
`.execute(_)}async function
|
|
1756
|
+
`.execute(_)}async function SZ(_){await AN`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 yN={};C(yN,{up:()=>fZ,down:()=>AZ});async function fZ(_){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 AZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});async function IZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function yZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var wN={};C(wN,{up:()=>VZ,down:()=>wZ});import{sql as eT}from"kysely";async function VZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(eT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(eT`monthly_task_executions > 0`)).execute()}async function wZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var kN={};C(kN,{up:()=>nZ,down:()=>vZ});import{sql as kZ}from"kysely";async function nZ(_){await kZ`
|
|
1753
1757
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1754
1758
|
ON task_board_items (updated_at, id)
|
|
1755
1759
|
WHERE status = 'in_review'
|
|
1756
1760
|
AND assignee_id = 'super-agent'
|
|
1757
1761
|
AND dismissed_at IS NULL
|
|
1758
|
-
`.execute(_)}async function
|
|
1762
|
+
`.execute(_)}async function vZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var nN={};C(nN,{up:()=>pZ,down:()=>gZ});import{sql as dT}from"kysely";async function pZ(_){await dT`
|
|
1759
1763
|
ALTER TABLE task_board_items
|
|
1760
1764
|
ADD COLUMN last_swept_at timestamptz
|
|
1761
|
-
`.execute(_)}async function
|
|
1765
|
+
`.execute(_)}async function gZ(_){await dT`
|
|
1762
1766
|
ALTER TABLE task_board_items
|
|
1763
1767
|
DROP COLUMN last_swept_at
|
|
1764
|
-
`.execute(_)}var
|
|
1768
|
+
`.execute(_)}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as b_}from"kysely";async function qZ(_){await b_`
|
|
1765
1769
|
ALTER TABLE task_board_items
|
|
1766
1770
|
ADD COLUMN retry_at timestamptz,
|
|
1767
1771
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
1768
|
-
`.execute(_),await
|
|
1772
|
+
`.execute(_),await b_`
|
|
1769
1773
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1770
1774
|
ON task_board_items (retry_at)
|
|
1771
1775
|
WHERE retry_at IS NOT NULL
|
|
1772
|
-
`.execute(_)}async function
|
|
1776
|
+
`.execute(_)}async function iZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
|
|
1773
1777
|
ALTER TABLE task_board_items
|
|
1774
1778
|
DROP COLUMN retry_at,
|
|
1775
1779
|
DROP COLUMN retry_attempts
|
|
1776
|
-
`.execute(_)}var
|
|
1780
|
+
`.execute(_)}var gN={};C(gN,{up:()=>cZ,down:()=>hZ});import{sql as pN}from"kysely";async function cZ(_){await pN`
|
|
1777
1781
|
CREATE TABLE org_repo_sync (
|
|
1778
1782
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1779
1783
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1791,11 +1795,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1791
1795
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1792
1796
|
UNIQUE (organization_id, volume)
|
|
1793
1797
|
)
|
|
1794
|
-
`.execute(_),await
|
|
1798
|
+
`.execute(_),await pN`
|
|
1795
1799
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1796
1800
|
ON org_repo_sync (organization_id)
|
|
1797
1801
|
WHERE enabled
|
|
1798
|
-
`.execute(_)}async function
|
|
1802
|
+
`.execute(_)}async function hZ(_){await pN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var iN={};C(iN,{up:()=>oZ,down:()=>aZ,ACTIONS:()=>qN});import{sql as _x}from"kysely";var qN=["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"],tZ=new Set(["merge_failed"]);async function oZ(_){await sT(_,qN)}async function aZ(_){await sT(_,qN.filter((x)=>!tZ.has(x)))}async function sT(_,x){await _x`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await _x`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var cN={};C(cN,{up:()=>rZ,down:()=>lZ});async function rZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function lZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var hN={};C(hN,{up:()=>eZ,down:()=>dZ});import{sql as x_}from"kysely";async function eZ(_){await x_`
|
|
1799
1803
|
CREATE TABLE org_jira_integrations (
|
|
1800
1804
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1801
1805
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1834,7 +1838,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1834
1838
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1835
1839
|
UNIQUE (organization_id, jira_comment_id)
|
|
1836
1840
|
)
|
|
1837
|
-
`.execute(_)}async function
|
|
1841
|
+
`.execute(_)}async function dZ(_){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 tN={};C(tN,{up:()=>bZ,down:()=>_6});import{sql as sZ}from"kysely";async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await sZ`
|
|
1838
1842
|
update task_board_items as t
|
|
1839
1843
|
set key_seq = numbered.seq
|
|
1840
1844
|
from (
|
|
@@ -1847,25 +1851,25 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1847
1851
|
from task_board_items
|
|
1848
1852
|
) as numbered
|
|
1849
1853
|
where t.id = numbered.id
|
|
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
|
|
1854
|
+
`.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 _6(_){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 oN={};C(oN,{up:()=>x6,down:()=>u6});import{sql as bT}from"kysely";async function x6(_){await bT`
|
|
1851
1855
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1852
1856
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1853
1857
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1854
|
-
`.execute(_)}async function
|
|
1858
|
+
`.execute(_)}async function u6(_){await bT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var rN={};C(rN,{up:()=>C6,down:()=>K6});import{sql as aN}from"kysely";async function C6(_){await aN`
|
|
1855
1859
|
ALTER TABLE thread_message_parts
|
|
1856
1860
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1857
|
-
`.execute(_),await
|
|
1861
|
+
`.execute(_),await aN`
|
|
1858
1862
|
ALTER TABLE thread_message_parts
|
|
1859
1863
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1860
|
-
`.execute(_)}async function
|
|
1864
|
+
`.execute(_)}async function K6(_){await aN`
|
|
1861
1865
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1862
|
-
`.execute(_)}var
|
|
1866
|
+
`.execute(_)}var lN={};C(lN,{up:()=>N6,down:()=>m6});async function N6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function m6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var eN={};C(eN,{up:()=>z6,down:()=>E6});import{sql as T6}from"kysely";async function z6(_){await T6`
|
|
1863
1867
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1864
1868
|
ON task_board_items (updated_at)
|
|
1865
1869
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1866
|
-
`.execute(_)}async function
|
|
1870
|
+
`.execute(_)}async function E6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var dN={};C(dN,{up:()=>$6,down:()=>U6,TYPES:()=>_z});import{sql as q}from"kysely";var _z=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function $6(_){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(_z.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1867
1871
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1868
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1872
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function U6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var sN={};C(sN,{up:()=>P6,down:()=>J6});import{sql as xz}from"kysely";async function P6(_){await xz`
|
|
1869
1873
|
UPDATE org_jira_integrations
|
|
1870
1874
|
SET status_mapping = (
|
|
1871
1875
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1880,7 +1884,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1880
1884
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1881
1885
|
WHERE jsonb_typeof(value) = 'array'
|
|
1882
1886
|
)
|
|
1883
|
-
`.execute(_)}async function
|
|
1887
|
+
`.execute(_)}async function J6(_){await xz`
|
|
1884
1888
|
UPDATE org_jira_integrations
|
|
1885
1889
|
SET status_mapping = (
|
|
1886
1890
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1895,7 +1899,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1895
1899
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1896
1900
|
WHERE jsonb_typeof(value) = 'array'
|
|
1897
1901
|
)
|
|
1898
|
-
`.execute(_)}var
|
|
1902
|
+
`.execute(_)}var _m={};C(_m,{up:()=>Q6,down:()=>Z6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],X6=new Set(["mentioned"]);async function Q6(_){await uz(_,bN)}async function Z6(_){await uz(_,bN.filter((x)=>!X6.has(x)))}async function uz(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var um={};C(um,{up:()=>j6,down:()=>F6,ACTIONS:()=>xm});import{sql as i}from"kysely";var W6=["bug","feature","chore","spike","security"],xm=["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"],L6=new Set(["type_changed"]);async function j6(_){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(W6.map((x)=>i.lit(x)))}))`.execute(_),await Cz(_,xm)}async function F6(_){await Cz(_,xm.filter((x)=>!L6.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 Cz(_,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 Cm={};C(Cm,{up:()=>Y6,down:()=>D6});import{sql as W}from"kysely";var Nz=["bug","feature","chore","spike","security"],Kz="chore";async function Y6(_){await W`UPDATE task_board_items SET type = ${W.lit(Kz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(Kz)}`.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(Nz.map((x)=>W.lit(x)))}))`.execute(_)}async function D6(_){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(Nz.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 Km={};C(Km,{up:()=>H6,down:()=>M6});import{sql as u_}from"kysely";async function H6(_){await u_`
|
|
1899
1903
|
CREATE TABLE task_board_sprints (
|
|
1900
1904
|
id text PRIMARY KEY,
|
|
1901
1905
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1920,34 +1924,34 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1920
1924
|
CREATE INDEX idx_task_board_items_sprint
|
|
1921
1925
|
ON task_board_items (organization_id, sprint_id)
|
|
1922
1926
|
WHERE sprint_id IS NOT NULL
|
|
1923
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1927
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function M6(_){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 Nm={};C(Nm,{up:()=>B6,down:()=>G6});import{sql as R6}from"kysely";async function B6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function G6(_){await R6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var mm={};C(mm,{up:()=>S6,down:()=>f6});import{sql as O6}from"kysely";async function S6(_){await O6`
|
|
1924
1928
|
UPDATE org_jira_integrations
|
|
1925
1929
|
SET last_synced_at = NULL,
|
|
1926
1930
|
last_sync_error = NULL
|
|
1927
1931
|
WHERE last_synced_at IS NOT NULL
|
|
1928
|
-
`.execute(_)}async function
|
|
1932
|
+
`.execute(_)}async function f6(){}var Tm={};C(Tm,{up:()=>I6,down:()=>y6});import{sql as A6}from"kysely";async function I6(_){await A6`
|
|
1929
1933
|
UPDATE org_jira_integrations
|
|
1930
1934
|
SET last_synced_at = NULL,
|
|
1931
1935
|
last_sync_error = NULL
|
|
1932
1936
|
WHERE last_synced_at IS NOT NULL
|
|
1933
|
-
`.execute(_)}async function
|
|
1937
|
+
`.execute(_)}async function y6(){}var Em={};C(Em,{up:()=>V6,down:()=>w6});import{sql as zm}from"kysely";async function V6(_){await zm`
|
|
1934
1938
|
ALTER TABLE org_jira_integrations
|
|
1935
1939
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1936
|
-
`.execute(_),await
|
|
1940
|
+
`.execute(_),await zm`
|
|
1937
1941
|
UPDATE org_jira_integrations
|
|
1938
1942
|
SET rescan_pending = true
|
|
1939
1943
|
WHERE last_synced_at IS NULL
|
|
1940
|
-
`.execute(_)}async function
|
|
1944
|
+
`.execute(_)}async function w6(_){await zm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var $m={};C($m,{up:()=>k6,down:()=>n6});async function k6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function n6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as mz}from"kysely";async function v6(_){await mz`
|
|
1941
1945
|
ALTER TABLE invitation
|
|
1942
1946
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1943
|
-
`.execute(_)}async function
|
|
1947
|
+
`.execute(_)}async function p6(_){await mz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>g6,down:()=>q6});import{sql as Pm}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(Pm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pm`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 Pm`
|
|
1944
1948
|
INSERT INTO task_board_column_automations
|
|
1945
1949
|
(id, organization_id, column_key, prompt)
|
|
1946
1950
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1947
1951
|
FROM org_jira_integrations
|
|
1948
1952
|
WHERE auto_delegate = true
|
|
1949
1953
|
ON CONFLICT DO NOTHING
|
|
1950
|
-
`.execute(_)}async function
|
|
1954
|
+
`.execute(_)}async function q6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Xm={};C(Xm,{up:()=>i6,down:()=>c6});import{sql as Y_}from"kysely";async function i6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
|
|
1951
1955
|
UPDATE task_board_items i
|
|
1952
1956
|
SET review_cycle_started_at = (
|
|
1953
1957
|
SELECT max(a.occurred_at)
|
|
@@ -1963,13 +1967,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1963
1967
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1964
1968
|
AND assignee_id = 'super-agent'
|
|
1965
1969
|
AND dismissed_at IS NULL
|
|
1966
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1970
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function c6(_){await Y_`
|
|
1967
1971
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1968
1972
|
ON task_board_items (updated_at, id)
|
|
1969
1973
|
WHERE status = 'in_review'
|
|
1970
1974
|
AND assignee_id = 'super-agent'
|
|
1971
1975
|
AND dismissed_at IS NULL
|
|
1972
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>
|
|
1976
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Tz}from"kysely";async function h6(_){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(Tz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tz`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 t6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Wm={};C(Wm,{up:()=>a6,down:()=>r6,ACTIONS:()=>Zm});import{sql as ux}from"kysely";var Zm=["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"],o6=new Set(["review_verdict_requested"]);async function a6(_){await zz(_,Zm)}async function r6(_){await zz(_,Zm.filter((x)=>!o6.has(x)))}async function zz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Lm={};C(Lm,{up:()=>l6,down:()=>e6});import{sql as Cx}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
|
|
1973
1977
|
ALTER TABLE task_board_items
|
|
1974
1978
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1975
1979
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1979,13 +1983,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
1979
1983
|
FOREIGN KEY (board_column_org, status)
|
|
1980
1984
|
REFERENCES task_board_columns (organization_id, key)
|
|
1981
1985
|
ON DELETE RESTRICT
|
|
1982
|
-
`.execute(_)}async function
|
|
1986
|
+
`.execute(_)}async function e6(_){await Cx`
|
|
1983
1987
|
ALTER TABLE task_board_items
|
|
1984
1988
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
1985
1989
|
`.execute(_),await Cx`
|
|
1986
1990
|
ALTER TABLE task_board_items
|
|
1987
1991
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
1988
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>
|
|
1992
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>d6,down:()=>s6});async function d6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function s6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Ym={};C(Ym,{up:()=>_W,down:()=>xW,ACTIONS:()=>Fm});import{sql as Kx}from"kysely";var Fm=["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"],b6=new Set(["sprint_changed"]);async function _W(_){await Ez(_,Fm)}async function xW(_){await Ez(_,Fm.filter((x)=>!b6.has(x)))}async function Ez(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Dm={};C(Dm,{up:()=>CW,down:()=>KW});import{sql as uW}from"kysely";async function CW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(uW`'[]'::jsonb`)).execute()}async function KW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Hm={};C(Hm,{up:()=>NW,down:()=>mW});import{sql as $z}from"kysely";async function NW(_){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($z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($z`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function mW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Mm={};C(Mm,{up:()=>zW,down:()=>EW});import{sql as TW}from"kysely";async function zW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await TW`
|
|
1989
1993
|
UPDATE task_board_items i
|
|
1990
1994
|
SET external_url = t.url,
|
|
1991
1995
|
description = CASE
|
|
@@ -2004,23 +2008,23 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2004
2008
|
ON g.organization_id = l.organization_id
|
|
2005
2009
|
) t
|
|
2006
2010
|
WHERE t.item_id = i.id
|
|
2007
|
-
`.execute(_)}async function
|
|
2011
|
+
`.execute(_)}async function EW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Rm={};C(Rm,{up:()=>UW,down:()=>PW,ACTIONS:()=>Uz});import{sql as X}from"kysely";var $W=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Uz=["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 UW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
|
|
2008
2012
|
UPDATE task_board_items
|
|
2009
2013
|
SET status = 'triage'
|
|
2010
|
-
WHERE status NOT IN (${
|
|
2011
|
-
`.execute(_),await
|
|
2014
|
+
WHERE status NOT IN (${X.join($W.map((x)=>X.lit(x)))})
|
|
2015
|
+
`.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await JW(_,Uz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
2012
2016
|
ALTER TABLE task_board_item_jira_links
|
|
2013
2017
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2014
2018
|
DROP COLUMN IF EXISTS jira_status,
|
|
2015
2019
|
DROP COLUMN IF EXISTS jira_sprint_id
|
|
2016
|
-
`.execute(_),await
|
|
2020
|
+
`.execute(_),await X`
|
|
2017
2021
|
ALTER TABLE org_jira_integrations
|
|
2018
2022
|
DROP COLUMN IF EXISTS status_mapping,
|
|
2019
2023
|
DROP COLUMN IF EXISTS auto_delegate,
|
|
2020
2024
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2021
2025
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2022
2026
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2023
|
-
`.execute(_)}async function
|
|
2027
|
+
`.execute(_)}async function PW(){}async function JW(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var Bm={};C(Bm,{up:()=>XW,down:()=>QW});import{sql as C_}from"kysely";async function XW(_){await C_`
|
|
2024
2028
|
ALTER TABLE task_board_items
|
|
2025
2029
|
ADD COLUMN IF NOT EXISTS source text
|
|
2026
2030
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2041,24 +2045,24 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2041
2045
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2042
2046
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2043
2047
|
)
|
|
2044
|
-
`.execute(_)}async function
|
|
2048
|
+
`.execute(_)}async function QW(_){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 Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as D_}from"kysely";async function ZW(_){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(D_`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(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
|
|
2045
2049
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2046
2050
|
ON organization_notices (organization_id)
|
|
2047
2051
|
WHERE resolved_at IS NULL
|
|
2048
2052
|
`.execute(_),await D_`
|
|
2049
2053
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2050
2054
|
ON organization_notices (organization_id, created_at DESC)
|
|
2051
|
-
`.execute(_)}async function
|
|
2055
|
+
`.execute(_)}async function WW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Sm={};C(Sm,{up:()=>GW,down:()=>OW});import{sql as Om}from"kysely";import{sql as zj}from"kysely";var Pz=50000000,LW=1e5;function jW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>LW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var FW=/\u0000/g,YW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,DW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,HW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,MW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function RW(_){return _.replace(FW,"").replace(YW,"\uFFFD").replace(DW,"$1***@").replace(HW,"$1***").replace(MW,"[base64 data omitted]")}function BW(_){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 Jz(_){if(jW(_,Pz)>Pz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return RW(u);if(BW(u))return{type:"text",text:"[image omitted]"};return u})}var Xz=20;async function GW(_){let x=await Om`
|
|
2052
2056
|
SELECT id FROM thread_message_parts
|
|
2053
2057
|
WHERE pg_column_size(payload) > 8192
|
|
2054
2058
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2055
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2059
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=Xz){let N=x.rows.slice(u,u+Xz).map((m)=>m.id),K=await Om`
|
|
2056
2060
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2057
|
-
`.execute(_);for(let m of K.rows){let T=
|
|
2061
|
+
`.execute(_);for(let m of K.rows){let T=Jz(m.payload);if(T===JSON.stringify(m.payload))continue;await Om`
|
|
2058
2062
|
UPDATE thread_message_parts
|
|
2059
2063
|
SET payload = ${T}::jsonb
|
|
2060
2064
|
WHERE id = ${m.id}
|
|
2061
|
-
`.execute(_)}}}async function
|
|
2065
|
+
`.execute(_)}}}async function OW(){}var fm={};C(fm,{up:()=>SW,down:()=>fW});async function SW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function fW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as U}from"kysely";async function AW(_){await U`
|
|
2062
2066
|
CREATE TABLE git_provider_accounts (
|
|
2063
2067
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2064
2068
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2302,11 +2306,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2302
2306
|
AND r.organization_id = s.organization_id
|
|
2303
2307
|
AND r.host = 'github.com'
|
|
2304
2308
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2305
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2309
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function IW(_){await U`
|
|
2306
2310
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2307
2311
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2308
2312
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
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
|
|
2313
|
+
`.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 Im={};C(Im,{up:()=>VW,down:()=>wW});import{sql as I}from"kysely";var yW=I`
|
|
2310
2314
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2311
2315
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2312
2316
|
BEGIN
|
|
@@ -2315,7 +2319,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2315
2319
|
RETURN NULL;
|
|
2316
2320
|
END;
|
|
2317
2321
|
$$
|
|
2318
|
-
`;async function
|
|
2322
|
+
`;async function VW(_){await yW.execute(_),await I`
|
|
2319
2323
|
ALTER TABLE connections
|
|
2320
2324
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2321
2325
|
`.execute(_),await I`
|
|
@@ -2377,21 +2381,21 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2377
2381
|
AND r.host = 'github.com'
|
|
2378
2382
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2379
2383
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2380
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2384
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function wW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2381
2385
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2382
|
-
`.execute(_)}var IW={"001-initial-schema":Xu,"002-organization-settings":Zu,"003-connection-schema-align":Wu,"004-remove-models-binding":ju,"005-connection-configuration":Lu,"006-add-views-to-settings":Fu,"007-monitoring-logs":Yu,"008-event-bus":Du,"009-drop-audit-logs":Hu,"010-gateways":Mu,"011-gateway-icon":Ru,"012-gateway-tool-selection-mode":Bu,"013-monitoring-user-agent-gateway":Gu,"014-gateway-resources-prompts":Ou,"015-monitoring-properties":Su,"016-downstream-token-client-info":fu,"017-downstream-token-remove-userid":Au,"018-drop-gateway-tool-selection-strategy":Iu,"019-remove-gateway-is-default":yu,"020-enabled-plugins":Vu,"021-threads":wu,"022-rename-gateway-to-virtual-mcp":ku,"023-optimize-thread-indexes":nu,"024-consolidate-virtual-mcp":vu,"025-add-monitoring-virtual-mcp-id":pu,"026-restrict-child-connection-delete":gu,"027-update-management-mcp-url":iu,"028-update-management-mcp-to-self":hu,"029-add-updated-by-to-connections":tu,"030-member-tags":ou,"031-add-dependency-mode":au,"032-projects":ru,"033-thread-status":lu,"034-monitoring-dashboards":eu,"035-project-connections":du,"036-update-registry-url":bu,"037-ai-provider-keys":su,"038-oauth-pkce-states":_C,"039-automations":xC,"040-replace-next-run-at-with-last-run-at":uC,"041-ai-provider-keys-unique-constraint":CC,"042-rename-mesh-mcp-to-cms-mcp":KC,"043-rename-cms-mcp-to-deco-cms":NC,"044-drop-connections-tools-column":mC,"045-thread-context-start-message":TC,"046-remove-object-storage-plugin":EC,"047-add-next-run-at":$C,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":PC,"050-durable-agent-runs":QC,"051-org-sso":ZC,"052-thread-agent-ids":WC,"053-registry-config":jC,"054-connection-slug":FC,"055-spaces":YC,"056-automation-project-scope":DC,"057-thread-virtual-mcp-id":HC,"058-trigger-callback-tokens":MC,"059-kv":RC,"060-member-index":BC,"061-downstream-token-connection-index":GC,"062-private-registry":OC,"063-event-subscriptions-enabled-boolean":SC,"064-brand-context":fC,"065-organization-domains":AC,"066-brand-context-structured":IC,"067-threads-metadata":yC,"068-threads-branch":VC,"069-sandbox-runner-state":wC,"070-model-categories":kC,"071-default-home-agents":nC,"072-ai-provider-key-preset-id":vC,"073-backfill-basic-usage-roles":pC,"074-sandbox-runner-state-handle-nonunique":gC,"075-thread-inflight-async-jobs":qC,"076-automations-drop-agent-json":iC,"077-tier-only-model-selection":hC,"078-automation-tool-call-kind":tC,"079-strip-legacy-freestyle-vm-map-entries":oC,"080-async-research-jobs":aC,"081-async-research-jobs-result-content":rC,"082-secrets":lC,"083-thread-run-locally":eC,"084-drop-host-sandbox-rows":dC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":sC,"087-fix-vm-map-rekey":_K,"088-purge-cli-activate-keys":xK,"089-rename-remote-user-to-desktop":uK,"090-automation-webhook-triggers":CK,"091-organization-domains-allow-multi":KK,"092-sandbox-naming-uniformization":NK,"093-backfill-global-search-basic-usage":mK,"094-org-file-configs":zK,"095-remove-automation-tool-call-kind":EK,"096-org-file-configs-public-url-base":$K,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":PK,"099-run-fence":QK,"100-link-transport":XK,"101-cancel-requested-at":ZK,"102-observational-agent":WK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":FK,"105-org-fs":YK,"106-automation-tools":DK,"107-org-fs-public-org":HK,"108-automation-max-agent-steps":MK,"109-thread-message-parts-per-message-seq":RK,"110-backfill-ghs-token-expiry":BK,"111-org-fs-thread-id":GK,"112-org-file-configs-credential-type":OK,"113-thread-failure-reason":SK,"114-run-acked-seq":fK,"115-thread-projected-seq":AK,"116-org-sites":IK,"117-org-file-configs-site-slug":yK,"118-organization-domains-multi-verify":VK,"119-organization-join-requests":wK,"120-org-fs-read-public":kK,"121-org-fs-share-password":nK,"122-split-web-research-tier":gK,"123-connection-credential-vault":qK,"124-drop-thread-projected-seq":iK,"125-github-child-single-parent":cK,"126-task-board":tK,"127-task-board-due-date":oK,"128-reports-only":aK,"129-task-board-assigned-by":rK,"130-task-board-thread-id":lK,"131-task-board-thread-link-cascade":eK,"132-task-board-item-prs":dK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":sK,"135-task-board-item-fk-cascade":_N,"136-task-board-import-idempotency":xN,"137-agent-sandbox-runner-state":uN,"138-agent-sandbox-sessions":CN,"139-organization-billing":KN,"140-seat-change-log":NN,"141-benefits-sync-pending":mN,"142-stripe-event-watermark":TN,"143-armed-report-url":zN,"144-benefits-pending-index":EN,"145-user-model-preferences":$N,"146-organization-main-agent":UN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":PN,"149-task-board-item-sort-order":QN,"150-task-board-activity":XN,"151-task-board-tags":WN,"152-repair-connection-slug":LN,"153-task-board-latest-assistant-part-index":FN,"154-task-board-qa-activity":DN,"155-task-board-review-claims":HN,"156-task-board-conflict-activity":RN,"157-drop-seat-billing":BN,"158-drop-github-child-single-parent":GN,"159-task-board-comments":ON,"160-task-quota-billing":SN,"161-task-quota-claim-state":AN,"162-claude-subscriptions":IN,"163-task-board-item-dismissed":yN,"164-per-org-task-quota":VN,"165-task-board-pending-review-index":wN,"166-task-board-last-swept-at":kN,"167-task-board-run-retry":nN,"168-org-repo-sync":pN,"169-task-board-merge-failed-activity":qN,"170-task-board-item-repo":iN,"171-jira-integration":cN,"172-task-board-item-key-seq":hN,"173-thread-github-repo-connection-index":tN,"174-thread-message-parts-persisted-at":aN,"175-task-board-sprints":rN,"176-task-board-done-sweep-index":lN,"177-notifications":eN,"178-jira-status-mapping-array":dN,"179-notification-mentioned":sN,"180-task-board-item-type":xm,"181-task-board-item-type-required":um,"182-task-board-sprints-entities":Cm,"183-drop-jira-jql-filter":Km,"184-jira-rescan-after-scope-change":Nm,"185-jira-rescan-existing-cards":mm,"186-jira-rescan-pending-flag":zm,"187-task-board-comment-thread":Em,"188-invitation-auto-accept":$m,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Pm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Zm,"193-task-board-status-column-fk":Wm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Fm,"196-task-board-column-tracker-statuses":Ym,"197-task-board-prompts":Dm,"198-task-board-external-url":Hm,"199-drop-jira-mirror-and-org-columns":Mm,"200-jira-run-trigger":Rm,"201-organization-notices":Bm,"202-redact-base64-thread-parts":Om,"203-task-board-preview-routes":Sm,"204-git-provider-accounts-and-repositories":fm,"205-repository-references":Am,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Pu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Uu,"210-github-repository-authorization":Cu,"211-user-fs-org":uu,"212-coding-agent-mcp-excluded":Ku,"213-bitbucket-git-provider":Nu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":sx,"216-github-cli-auth":xu,"217-experiments":mu,"218-thread-message-parts-error-idx":Tu,"219-task-board-duplicate-reported-activity":Eu,"220-jira-automation-continue-pr":$u,"221-remove-private-registry":Qx,"222-org-git-credentials":Xx,"223-drop-org-main-agent-id":dx,"224-repository-sandbox-image":Zx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Fx,"227-task-board-finding-resolved-activity":Dx,"228-org-voice-config":Px,"229-jira-automation-from":Hx,"230-project-sidebar":Mx,"231-jira-chat-agent":Rx,"232-task-board-prompt-skills":Gx,"233-remove-jira-chat-agent":Sx,"234-task-board-comment-audience":fx,"235-prune-empty-thread-dirs":Ax,"236-task-board-sprints":yx,"237-org-sites-project-link":Vx,"238-task-board-default-lanes":wx,"239-task-board-retire-old-lanes":kx,"240-task-board-restore-todo":nx,"241-automation-board-column-transition":vx,"242-connection-url-slug":px,"243-experiment-task-board-item":gx,"244-connection-url-slug-rollout-backfill":qx,"245-automation-system-key":ix,"246-automation-pr-ready-trigger":cx,"247-automation-jira-transition":hx,"248-drop-retired-rule-tables":tx,"249-task-board-item-project":ox,"250-github-copilot-subscriptions":ax,"251-org-shared-plans":rx,"252-automation-linked-chat-trigger":lx,"253-automation-pr-builtin-triggers":ex,"254-codex-subscriptions":$x,"255-order-monitor":Jx},Nx=IW;import{getMigrations as U9}from"better-auth/db";import{sso as J9}from"@better-auth/sso";import{organization as P9}from"@decocms/better-auth/plugins";import{admin as Q9,apiKey as X9,jwt as Z9,magicLink as W9,mcp as j9,openAPI as L9}from"better-auth/plugins";import{emailOTP as F9}from"better-auth/plugins/email-otp";import{Kysely as C9,PostgresDialect as Dz}from"kysely";import{Pool as Hz}from"pg";import{homedir as yW}from"os";var VW=new Set(["all","worker","api"]);function wW(_){let x=(_??"").trim();return VW.has(x)?x:"all"}var kW=new Set(["production","development","test"]);function nW(_){let x=(_??"").trim();return kW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ym(_,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 ym(_,x,N)??u}function vW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function pW(_,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 Im(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function gW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Pz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${yW()}/deco`,u=nW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.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:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ym("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((m)=>m.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:vW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:pW("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:Im(_.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:Im(_.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:gW(_.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:ym("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:wW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Im(_.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,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.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://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};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 qW=null;function K_(){return qW??=Object.freeze(Pz(process.env))}import{createContextKey as aW,metrics as rW,propagation as D8,ROOT_CONTEXT as H8,SpanStatusCode as M8,trace as lW}from"@opentelemetry/api";import{logs as eW,SeverityNumber as Vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as G8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as dW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as f8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as I8}from"@opentelemetry/instrumentation-runtime-node";import{context as Z5,propagation as W5,SpanKind as j5,SpanStatusCode as L5}from"@opentelemetry/api";var Y5=globalThis.fetch;import{ExportResultCode as y5}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as iW,rename as cW,writeFile as hW}from"fs/promises";import{join as Tx}from"path";class zx{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:mx.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:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.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 m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.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 iW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
|
|
2386
|
+
`.execute(_)}var kW={"001-initial-schema":Zu,"002-organization-settings":Wu,"003-connection-schema-align":Lu,"004-remove-models-binding":ju,"005-connection-configuration":Fu,"006-add-views-to-settings":Yu,"007-monitoring-logs":Du,"008-event-bus":Hu,"009-drop-audit-logs":Mu,"010-gateways":Ru,"011-gateway-icon":Bu,"012-gateway-tool-selection-mode":Gu,"013-monitoring-user-agent-gateway":Ou,"014-gateway-resources-prompts":Su,"015-monitoring-properties":fu,"016-downstream-token-client-info":Au,"017-downstream-token-remove-userid":Iu,"018-drop-gateway-tool-selection-strategy":yu,"019-remove-gateway-is-default":Vu,"020-enabled-plugins":wu,"021-threads":ku,"022-rename-gateway-to-virtual-mcp":nu,"023-optimize-thread-indexes":vu,"024-consolidate-virtual-mcp":pu,"025-add-monitoring-virtual-mcp-id":gu,"026-restrict-child-connection-delete":qu,"027-update-management-mcp-url":cu,"028-update-management-mcp-to-self":tu,"029-add-updated-by-to-connections":ou,"030-member-tags":au,"031-add-dependency-mode":ru,"032-projects":lu,"033-thread-status":eu,"034-monitoring-dashboards":du,"035-project-connections":su,"036-update-registry-url":bu,"037-ai-provider-keys":_C,"038-oauth-pkce-states":xC,"039-automations":uC,"040-replace-next-run-at-with-last-run-at":CC,"041-ai-provider-keys-unique-constraint":KC,"042-rename-mesh-mcp-to-cms-mcp":NC,"043-rename-cms-mcp-to-deco-cms":mC,"044-drop-connections-tools-column":TC,"045-thread-context-start-message":zC,"046-remove-object-storage-plugin":$C,"047-add-next-run-at":UC,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":XC,"050-durable-agent-runs":QC,"051-org-sso":WC,"052-thread-agent-ids":LC,"053-registry-config":jC,"054-connection-slug":YC,"055-spaces":DC,"056-automation-project-scope":HC,"057-thread-virtual-mcp-id":MC,"058-trigger-callback-tokens":RC,"059-kv":BC,"060-member-index":GC,"061-downstream-token-connection-index":OC,"062-private-registry":SC,"063-event-subscriptions-enabled-boolean":fC,"064-brand-context":AC,"065-organization-domains":IC,"066-brand-context-structured":yC,"067-threads-metadata":VC,"068-threads-branch":wC,"069-sandbox-runner-state":kC,"070-model-categories":nC,"071-default-home-agents":vC,"072-ai-provider-key-preset-id":pC,"073-backfill-basic-usage-roles":gC,"074-sandbox-runner-state-handle-nonunique":qC,"075-thread-inflight-async-jobs":iC,"076-automations-drop-agent-json":cC,"077-tier-only-model-selection":tC,"078-automation-tool-call-kind":oC,"079-strip-legacy-freestyle-vm-map-entries":aC,"080-async-research-jobs":rC,"081-async-research-jobs-result-content":lC,"082-secrets":eC,"083-thread-run-locally":dC,"084-drop-host-sandbox-rows":sC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":_K,"087-fix-vm-map-rekey":xK,"088-purge-cli-activate-keys":uK,"089-rename-remote-user-to-desktop":CK,"090-automation-webhook-triggers":KK,"091-organization-domains-allow-multi":NK,"092-sandbox-naming-uniformization":mK,"093-backfill-global-search-basic-usage":TK,"094-org-file-configs":EK,"095-remove-automation-tool-call-kind":$K,"096-org-file-configs-public-url-base":UK,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":XK,"099-run-fence":QK,"100-link-transport":ZK,"101-cancel-requested-at":WK,"102-observational-agent":LK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":YK,"105-org-fs":DK,"106-automation-tools":HK,"107-org-fs-public-org":MK,"108-automation-max-agent-steps":RK,"109-thread-message-parts-per-message-seq":BK,"110-backfill-ghs-token-expiry":GK,"111-org-fs-thread-id":OK,"112-org-file-configs-credential-type":SK,"113-thread-failure-reason":fK,"114-run-acked-seq":AK,"115-thread-projected-seq":IK,"116-org-sites":yK,"117-org-file-configs-site-slug":VK,"118-organization-domains-multi-verify":wK,"119-organization-join-requests":kK,"120-org-fs-read-public":nK,"121-org-fs-share-password":vK,"122-split-web-research-tier":qK,"123-connection-credential-vault":iK,"124-drop-thread-projected-seq":cK,"125-github-child-single-parent":hK,"126-task-board":oK,"127-task-board-due-date":aK,"128-reports-only":rK,"129-task-board-assigned-by":lK,"130-task-board-thread-id":eK,"131-task-board-thread-link-cascade":dK,"132-task-board-item-prs":sK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":_N,"135-task-board-item-fk-cascade":xN,"136-task-board-import-idempotency":uN,"137-agent-sandbox-runner-state":CN,"138-agent-sandbox-sessions":KN,"139-organization-billing":NN,"140-seat-change-log":mN,"141-benefits-sync-pending":TN,"142-stripe-event-watermark":zN,"143-armed-report-url":EN,"144-benefits-pending-index":$N,"145-user-model-preferences":UN,"146-organization-main-agent":PN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":XN,"149-task-board-item-sort-order":QN,"150-task-board-activity":ZN,"151-task-board-tags":LN,"152-repair-connection-slug":FN,"153-task-board-latest-assistant-part-index":YN,"154-task-board-qa-activity":HN,"155-task-board-review-claims":MN,"156-task-board-conflict-activity":BN,"157-drop-seat-billing":GN,"158-drop-github-child-single-parent":ON,"159-task-board-comments":SN,"160-task-quota-billing":fN,"161-task-quota-claim-state":IN,"162-claude-subscriptions":yN,"163-task-board-item-dismissed":VN,"164-per-org-task-quota":wN,"165-task-board-pending-review-index":kN,"166-task-board-last-swept-at":nN,"167-task-board-run-retry":vN,"168-org-repo-sync":gN,"169-task-board-merge-failed-activity":iN,"170-task-board-item-repo":cN,"171-jira-integration":hN,"172-task-board-item-key-seq":tN,"173-thread-github-repo-connection-index":oN,"174-thread-message-parts-persisted-at":rN,"175-task-board-sprints":lN,"176-task-board-done-sweep-index":eN,"177-notifications":dN,"178-jira-status-mapping-array":sN,"179-notification-mentioned":_m,"180-task-board-item-type":um,"181-task-board-item-type-required":Cm,"182-task-board-sprints-entities":Km,"183-drop-jira-jql-filter":Nm,"184-jira-rescan-after-scope-change":mm,"185-jira-rescan-existing-cards":Tm,"186-jira-rescan-pending-flag":Em,"187-task-board-comment-thread":$m,"188-invitation-auto-accept":Um,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Xm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Wm,"193-task-board-status-column-fk":Lm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Ym,"196-task-board-column-tracker-statuses":Dm,"197-task-board-prompts":Hm,"198-task-board-external-url":Mm,"199-drop-jira-mirror-and-org-columns":Rm,"200-jira-run-trigger":Bm,"201-organization-notices":Gm,"202-redact-base64-thread-parts":Sm,"203-task-board-preview-routes":fm,"204-git-provider-accounts-and-repositories":Am,"205-repository-references":Im,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Xu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Pu,"210-github-repository-authorization":Ku,"211-user-fs-org":Cu,"212-coding-agent-mcp-excluded":Nu,"213-bitbucket-git-provider":mu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":_u,"216-github-cli-auth":uu,"217-experiments":Tu,"218-thread-message-parts-error-idx":zu,"219-task-board-duplicate-reported-activity":$u,"220-jira-automation-continue-pr":Uu,"221-remove-private-registry":Qx,"222-org-git-credentials":Zx,"223-drop-org-main-agent-id":sx,"224-repository-sandbox-image":Wx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Yx,"227-task-board-finding-resolved-activity":Hx,"228-org-voice-config":Xx,"229-jira-automation-from":Mx,"230-project-sidebar":Rx,"231-jira-chat-agent":Bx,"232-task-board-prompt-skills":Ox,"233-remove-jira-chat-agent":fx,"234-task-board-comment-audience":Ax,"235-prune-empty-thread-dirs":Ix,"236-task-board-sprints":Vx,"237-org-sites-project-link":wx,"238-task-board-default-lanes":kx,"239-task-board-retire-old-lanes":nx,"240-task-board-restore-todo":vx,"241-automation-board-column-transition":px,"242-connection-url-slug":gx,"243-experiment-task-board-item":qx,"244-connection-url-slug-rollout-backfill":ix,"245-automation-system-key":cx,"246-automation-pr-ready-trigger":hx,"247-automation-jira-transition":tx,"248-drop-retired-rule-tables":ox,"249-task-board-item-project":ax,"250-github-copilot-subscriptions":rx,"251-org-shared-plans":lx,"252-automation-linked-chat-trigger":ex,"253-automation-pr-builtin-triggers":dx,"254-codex-subscriptions":Ux,"255-order-monitor":Jx,"256-task-board-harness":$x},Nx=kW;import{getMigrations as Q9}from"better-auth/db";import{sso as Z9}from"@better-auth/sso";import{organization as W9}from"@decocms/better-auth/plugins";import{admin as L9,apiKey as j9,jwt as F9,magicLink as Y9,mcp as D9,openAPI as H9}from"better-auth/plugins";import{emailOTP as M9}from"better-auth/plugins/email-otp";import{Kysely as T9,PostgresDialect as Mz}from"kysely";import{Pool as Rz}from"pg";import{homedir as nW}from"os";var vW=new Set(["all","worker","api"]);function pW(_){let x=(_??"").trim();return vW.has(x)?x:"all"}var gW=new Set(["production","development","test"]);function qW(_){let x=(_??"").trim();return gW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function Vm(_,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 Vm(_,x,N)??u}function iW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function cW(_,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 ym(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function hW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Qz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${nW()}/deco`,u=qW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.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:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Vm("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((m)=>m.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:iW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:cW("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:ym(_.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:ym(_.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:hW(_.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:Vm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:pW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:ym(_.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,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.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://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};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 tW=null;function K_(){return tW??=Object.freeze(Qz(process.env))}import{createContextKey as dW,metrics as sW,propagation as G5,ROOT_CONTEXT as O5,SpanStatusCode as S5,trace as bW}from"@opentelemetry/api";import{logs as _9,SeverityNumber as wm}from"@opentelemetry/api-logs";import{OTLPLogExporter as I5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as x9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as w5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as n5}from"@opentelemetry/instrumentation-runtime-node";import{context as Yj,propagation as Dj,SpanKind as Hj,SpanStatusCode as Mj}from"@opentelemetry/api";var Bj=globalThis.fetch;import{ExportResultCode as vj}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as oW,rename as aW,writeFile as rW}from"fs/promises";import{join as Tx}from"path";class zx{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:mx.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:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.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 m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.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 oW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
|
|
2383
2387
|
`)+`
|
|
2384
|
-
`;await
|
|
2388
|
+
`;await rW(T,E,{mode:384}),await aW(T,z)}}import{ExportResultCode as cj}from"@opentelemetry/core";import{AggregationTemporality as tj,DataPointType as oj}from"@opentelemetry/sdk-metrics";import{ExportResultCode as sj}from"@opentelemetry/core";var u5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as o5,LoggerProvider as a5}from"@opentelemetry/sdk-logs";import{detectResources as l5,envDetector as e5,hostDetector as d5,osDetector as s5,processDetector as b5,resourceFromAttributes as _8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as u8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as N5}from"@opentelemetry/api-logs";import{NodeSDK as N8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as T8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as $5}from"@opentelemetry/api";var u9="__d",C9=dW("Current request"),K9=1;var Wz=(_)=>{let u=new URL(_.url).searchParams.get(u9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Lz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(C9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Wz(T);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,m);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 E8=new x9({preventServerStart:!0}),$8=new Lz(new jz(K9));var Zz=bW.getTracer("studio","1.0.0"),M_=sW.getMeter("studio","1.0.0"),N9=_9.getLogger("studio","1.0.0"),km=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=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(" ");N9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},nm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{km(wm.ERROR,"ERROR",_),nm.error(..._)};console.warn=(..._)=>{km(wm.WARN,"WARN",_),nm.warn(..._)};console.debug=(..._)=>{km(wm.DEBUG,"DEBUG",_),nm.debug(..._)};var vm,Fz=0,pm=500;function m9(){if(vm)return;let _=performance.now()+pm;vm=setInterval(()=>{let x=performance.now();Fz=Math.max(0,x-_),_=x+pm},pm),vm.unref?.()}function Yz(){return m9(),Fz}var z9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Dz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Hz=400,E9=100,$9=(_)=>({"db.status":_.level==="error"?"error":"success"}),U9=(_)=>(x)=>{let u=$9(x);if(x.queryDurationMillis>Hz){let N=Yz(),K=N>Hz/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:Ex()}})}if(z9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function P9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Dz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>E9)if(m)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:T,total:_.totalCount,max:K});return z},(z)=>{throw Dz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Bz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Gz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function J9(_){let x=P9(new Rz({connectionString:_,max:Ex(),ssl:Gz(),...Bz})),u=new Mz({pool:x});return{type:"postgres",db:new T9({dialect:u,log:U9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Oz(_){let x=_||B_();return new Mz({pool:new Rz({connectionString:x,max:Ex(),ssl:Gz(),...Bz})})}function X9(_){let x=_||B_();return J9(x)}async function Sz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function gm(){if(!R_)R_=X9(B_());return R_}async function fz(_){let u={database:Oz(_||B_()),plugins:[W9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),L9(),j9(),F9(),H9(),D9({loginPage:"/login"}),Z9(),Y9({sendMagicLink:async()=>{}}),M9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await Q9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function qm(_,x){return(await o`
|
|
2385
2389
|
SELECT table_name FROM information_schema.tables
|
|
2386
2390
|
WHERE table_schema='public' AND table_name=${x}
|
|
2387
|
-
`.execute(_)).rows.length>0}async function
|
|
2391
|
+
`.execute(_)).rows.length>0}async function R9(_){if(await qm(_,"plugin_migrations"))return;await o`
|
|
2388
2392
|
CREATE TABLE plugin_migrations (
|
|
2389
2393
|
plugin_id TEXT NOT NULL,
|
|
2390
2394
|
name TEXT NOT NULL,
|
|
2391
2395
|
timestamp TEXT NOT NULL,
|
|
2392
2396
|
PRIMARY KEY (plugin_id, name)
|
|
2393
2397
|
)
|
|
2394
|
-
`.execute(_)}async function
|
|
2398
|
+
`.execute(_)}async function B9(_){if(!await qm(_,"kysely_migration"))return;let x=await o`
|
|
2395
2399
|
SELECT name, timestamp FROM kysely_migration
|
|
2396
2400
|
WHERE name LIKE '%/%'
|
|
2397
2401
|
`.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 m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
|
|
@@ -2402,6 +2406,6 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
|
|
|
2402
2406
|
WHERE plugin_id = ${T} AND name = ${z}
|
|
2403
2407
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2404
2408
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2405
|
-
`.execute(_)}}async function
|
|
2409
|
+
`.execute(_)}}async function G9(_){if(!await qm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2406
2410
|
SELECT name FROM kysely_migration
|
|
2407
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,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
|
|
2411
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,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 O9(_){await R9(_),await B9(_);let x=new Az({db:_,provider:{getMigrations:async()=>({...await G9(_),...Nx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function S9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await fz();let m=u??gm(),T=async()=>{if(!x&&!u)await Sz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await O9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function g8(){let _=gm(),x=new Az({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{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 S9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{O9 as runKyselyMigrations,S9 as migrateToLatest,g8 as migrateDown};
|