decocms 4.516.0 → 4.517.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-BviJ1RJ0.js → ActiveShapeUtils-BB436TvV.js} +1 -1
- package/dist/client/assets/{AlertCircle-BzjzqqRa.js → AlertCircle-Cch634f7.js} +1 -1
- package/dist/client/assets/{AreaChart-DxdfvWkl.js → AreaChart-CpsihjcZ.js} +1 -1
- package/dist/client/assets/{ArrowLeft-D9e74CxD.js → ArrowLeft-CohopnCT.js} +1 -1
- package/dist/client/assets/{ArrowUp-BbhuuuwV.js → ArrowUp-DLUdomd9.js} +1 -1
- package/dist/client/assets/{BarChart-C6YMYkiP.js → BarChart-DC5-aC-9.js} +1 -1
- package/dist/client/assets/{Building02-C2flUGF-.js → Building02-BHJQSDUK.js} +1 -1
- package/dist/client/assets/{CartesianChart-CPZndNAT.js → CartesianChart-dMOiAgfo.js} +1 -1
- package/dist/client/assets/{CategoricalChart-BjLODSSF.js → CategoricalChart-BCAB1JR1.js} +1 -1
- package/dist/client/assets/{CheckCircle-4gdTBGy6.js → CheckCircle-Cs8i9zYt.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-YTUkgDHg.js → ChevronSelectorVertical-C5d75KyY.js} +1 -1
- package/dist/client/assets/{ChevronUp-BnA2Nw_G.js → ChevronUp-BT7eMKPK.js} +1 -1
- package/dist/client/assets/{Copy01-DK6eLr2i.js → Copy01-B341DqLV.js} +1 -1
- package/dist/client/assets/{CreditCard01-CMqZSaqi.js → CreditCard01-4Fwr0tNh.js} +1 -1
- package/dist/client/assets/{DotsVertical-C4UAKneF.js → DotsVertical-DbrlDgFh.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-bVCQsHLU.js → ErrorBarContext-t45nElJh.js} +1 -1
- package/dist/client/assets/{Globe04-DEY1e_cW.js → Globe04-BE6c1UDj.js} +1 -1
- package/dist/client/assets/{Image01-DwBREChx.js → Image01-hTzc15CE.js} +1 -1
- package/dist/client/assets/{Key01-MBTcw2W0.js → Key01-kTu6t6u_.js} +1 -1
- package/dist/client/assets/{Link01-CHLntxrX.js → Link01-hfA48cFL.js} +1 -1
- package/dist/client/assets/{LinkBroken01-CTiL1Fp-.js → LinkBroken01-Dioz3u9i.js} +1 -1
- package/dist/client/assets/{Minus-BCeBycMD.js → Minus-DqDPTtRG.js} +1 -1
- package/dist/client/assets/{Monitor01-DtC0vfP6.js → Monitor01-Bz6QaUO4.js} +1 -1
- package/dist/client/assets/{Play-DV5Ma4c6.js → Play-CByslM3d.js} +1 -1
- package/dist/client/assets/{Plus-CxQiW556.js → Plus-Dewm72je.js} +1 -1
- package/dist/client/assets/{ReferenceLine-CyFWmCIf.js → ReferenceLine-DV9hYxt_.js} +1 -1
- package/dist/client/assets/{SearchMd-CYuw_TlP.js → SearchMd-7Jo0ZofC.js} +1 -1
- package/dist/client/assets/{Sector-7HoHBp31.js → Sector-D64VY8hG.js} +1 -1
- package/dist/client/assets/{ShoppingBag01-hqBb4euZ.js → ShoppingBag01-BStpgW0a.js} +1 -1
- package/dist/client/assets/{Sun-_7OyKm8q.js → Sun-C37Hpdko.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-Ik-Wu8bp.js → SwitchHorizontal01-CrC4ThKg.js} +1 -1
- package/dist/client/assets/{Tool01-CEmvRWh7.js → Tool01-2gJDR0Ho.js} +1 -1
- package/dist/client/assets/{Trash01-7PWQCtvD.js → Trash01-DjE7Raat.js} +1 -1
- package/dist/client/assets/{Upload01-d0p8GdRf.js → Upload01-CYfTR3aZ.js} +1 -1
- package/dist/client/assets/{User01-CvsUVXiw.js → User01-X6IeKYZH.js} +1 -1
- package/dist/client/assets/{UserSquare-CRvybnC2.js → UserSquare-pmxb5ZdZ.js} +1 -1
- package/dist/client/assets/{Users01-BpDVBOEG.js → Users01-uKJoVSle.js} +1 -1
- package/dist/client/assets/{XClose-CjXzVHwC.js → XClose-BVxVAZ6V.js} +1 -1
- package/dist/client/assets/{ZoomOut-CLJKIGNa.js → ZoomOut-DixQygt2.js} +1 -1
- package/dist/client/assets/{access-gate-C_XxaZ28.js → access-gate-BpfEc6VH.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-TX2J4mBu.js → add-connection-dialog-BZwLO1Ja.js} +1 -1
- package/dist/client/assets/agent-analytics-Cb2tda3-.js +1 -0
- package/dist/client/assets/agent-app-HX00w6TV.js +1 -0
- package/dist/client/assets/{agent-assets-DzeNVWVS.js → agent-assets-e6Gk5J-Q.js} +1 -1
- package/dist/client/assets/{agent-automation-fasQYxyE.js → agent-automation-jGwXvC8f.js} +1 -1
- package/dist/client/assets/{agent-automations-CFCWY442.js → agent-automations-DzW1crP1.js} +1 -1
- package/dist/client/assets/agent-calendar-DCHNIRTc.js +1 -0
- package/dist/client/assets/{agent-connect-sources-CUS1mQBU.js → agent-connect-sources-6bCKMOK5.js} +1 -1
- package/dist/client/assets/agent-deck-BV-5B8og.js +1 -0
- package/dist/client/assets/{agent-e2e-JX70_ikL.js → agent-e2e-DwASXEee.js} +1 -1
- package/dist/client/assets/agent-experiments-DetDutY3.js +1 -0
- package/dist/client/assets/agent-file-BvfhZ3mT.js +1 -0
- package/dist/client/assets/{agent-hosting-DXYhe_Ly.js → agent-hosting-BVT3wdCc.js} +1 -1
- package/dist/client/assets/{agent-icon-DhApO92C.js → agent-icon-CiKTiUdq.js} +1 -1
- package/dist/client/assets/agent-library-DSuyqe6T.js +1 -0
- package/dist/client/assets/agent-library-file-B1l2ZLvA.js +1 -0
- package/dist/client/assets/{agent-monitor-DGuiH3_O.js → agent-monitor-C_MtaF0x.js} +1 -1
- package/dist/client/assets/{agent-overview-DGX_nSiA.js → agent-overview-BaJQVLzH.js} +1 -1
- package/dist/client/assets/{agent-releases-B4Wvo_4b.js → agent-releases-rSbadgkl.js} +1 -1
- package/dist/client/assets/agent-settings-DCjo4ZYC.js +1 -0
- package/dist/client/assets/{agent-site-editor-CLwG7od-.js → agent-site-editor-DGIssniL.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-BVwfCzHc.js +2 -0
- package/dist/client/assets/agent-site-editor-content-BU-vFmu-.js +1 -0
- package/dist/client/assets/agent-site-editor-preview-Coo-Ni4u.js +1 -0
- package/dist/client/assets/agent-view-CftHb5tC.js +1 -0
- package/dist/client/assets/{agent-view-guard-wNwTHz77.js → agent-view-guard-Cz_9FSeB.js} +1 -1
- package/dist/client/assets/{agents-list-Cikp_zRW.js → agents-list-BehVRlw8.js} +1 -1
- package/dist/client/assets/{ai-providers-BSKNGjn3.js → ai-providers-Cfzh0dop.js} +1 -1
- package/dist/client/assets/{alert-DK8EW5eY.js → alert-DlpN1nbO.js} +1 -1
- package/dist/client/assets/{alert-dialog--q-PWeut.js → alert-dialog-BdWXpnme.js} +1 -1
- package/dist/client/assets/{analytics-sections-DMQ7rbtm.js → analytics-sections-CBRurMfi.js} +1 -1
- package/dist/client/assets/{analytics-tab-DBS1a1Hh.js → analytics-tab-Bu3yOSFE.js} +1 -1
- package/dist/client/assets/{api-keys-Dq1k7MiZ.js → api-keys-SwcfBYZn.js} +1 -1
- package/dist/client/assets/api-keys-jGYtI-cW.js +1 -0
- package/dist/client/assets/{app-editor-CrjU5dmy.js → app-editor-BzaLO82-.js} +1 -1
- package/dist/client/assets/{asset-utils-DobQJkEL.js → asset-utils-CYj7sEud.js} +1 -1
- package/dist/client/assets/{auth-BCqAeFp3.js → auth-DVebpHI3.js} +1 -1
- package/dist/client/assets/{auth-catchall-BZEwAlpH.js → auth-catchall-CM988zgH.js} +1 -1
- package/dist/client/assets/{auth-entry-Buz4HmC0.js → auth-entry-BM6bA3ji.js} +1 -1
- package/dist/client/assets/{auth-split-layout-C7U-I3vQ.js → auth-split-layout-BnlVBIeL.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BAReQnW9.js → authenticate-and-persist-oauth-qcbNyaRp.js} +1 -1
- package/dist/client/assets/{automation-list-row-DYoDbKDa.js → automation-list-row-BIlvc0v-.js} +1 -1
- package/dist/client/assets/{automation-runs-DS3JbQ2r.js → automation-runs-jRApvuta.js} +1 -1
- package/dist/client/assets/{automations-DnYOtmr4.js → automations-DMHgje9o.js} +1 -1
- package/dist/client/assets/{autosend-CC_H9WVC.js → autosend-BTx7-p6a.js} +1 -1
- package/dist/client/assets/{avatar-BCxNXTas.js → avatar-DjIkOwsx.js} +1 -1
- package/dist/client/assets/{badge-Ccv2yax2.js → badge-BfMggcm8.js} +1 -1
- package/dist/client/assets/{block-document-pbAqRC0D.js → block-document-DKju3Lsl.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-CAntUw6y.js → blocks-preview-workspace-context-AokvrTWO.js} +1 -1
- package/dist/client/assets/{blocks-tab-states-B-gG8PUG.js → blocks-tab-states-5tpSikld.js} +1 -1
- package/dist/client/assets/{blog-schema-DP6BXJ_v.js → blog-schema-B8hGgOKc.js} +1 -1
- package/dist/client/assets/{buckets-YwJbmX1H.js → buckets-DzW1ArnB.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-yJWFG-Qh.js → build-improve-prompt-doc-BGKe2ED3.js} +1 -1
- package/dist/client/assets/{calendar-CWZHYNsm.js → calendar-kdikRXDO.js} +1 -1
- package/dist/client/assets/{campaigns-view-BJ3dqrez.js → campaigns-view-CXUV2H04.js} +1 -1
- package/dist/client/assets/{capability-load-error-ClFcG_k7.js → capability-load-error-BuC7MxXm.js} +1 -1
- package/dist/client/assets/{category-editor-BdRz9cOQ.js → category-editor-jRguVRoH.js} +1 -1
- package/dist/client/assets/{chart-ecSSTZTh.js → chart-aHPEwhl0.js} +1 -1
- package/dist/client/assets/{chat-context-BE5W0eRy.js → chat-context-BEyCIAaN.js} +1 -1
- package/dist/client/assets/{chat-draft-Bc38hokV.js → chat-draft-Dql_zG1A.js} +1 -1
- package/dist/client/assets/{checkbox-BUQlb_zR.js → checkbox-R6Pm_B33.js} +1 -1
- package/dist/client/assets/{choose-editor-CTk7V5dU.js → choose-editor-C1zV1Fp9.js} +1 -1
- package/dist/client/assets/{cli-auth-success-PigkRVuP.js → cli-auth-success-Dw0y5N0L.js} +1 -1
- package/dist/client/assets/{client-icons-CfYl7gN_.js → client-icons-C_WiAP0u.js} +1 -1
- package/dist/client/assets/cms-settings-editor-BAGntXvx.js +1 -0
- package/dist/client/assets/{collapsible-CUpe_nLN.js → collapsible-BcZaehP2.js} +1 -1
- package/dist/client/assets/{collection-detail-DMeJtWOq.js → collection-detail-AO17C_8B.js} +1 -1
- package/dist/client/assets/{collection-display-button-BA8_qWgd.js → collection-display-button-C0cYhq66.js} +1 -1
- package/dist/client/assets/{collection-search-D3DfnNEj.js → collection-search-7sBPioRN.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BpHyZuIk.js → collection-table-wrapper-BzgZq6u7.js} +1 -1
- package/dist/client/assets/{collection-tabs-BeE9JyBt.js → collection-tabs-DMsbicTn.js} +1 -1
- package/dist/client/assets/{column-rules-HrQ_91De.js → column-rules-CBkHBJjn.js} +1 -1
- package/dist/client/assets/{combobox-pGuSce6D.js → combobox-CEzxugDA.js} +1 -1
- package/dist/client/assets/{command-Due3aGE_.js → command-KmLWWmqo.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-B_r6DOQv.js → companion-mcps-section-vJ3FRpYP.js} +1 -1
- package/dist/client/assets/{config-4MxJL_Fy.js → config-0t8v4_10.js} +1 -1
- package/dist/client/assets/{connect-BmT0JQ1F.js → connect-Ceo_a42v.js} +1 -1
- package/dist/client/assets/{connect-layout-2QgFH1-_.js → connect-layout-DXn91Bwy.js} +1 -1
- package/dist/client/assets/{connect-source-dialog-_wKkm_O5.js → connect-source-dialog-DCA13Vr9.js} +1 -1
- package/dist/client/assets/{connection-z8RZuoJq.js → connection-BXCm7RUN.js} +1 -1
- package/dist/client/assets/{connection-card-CawZtrlG.js → connection-card-DudSxk_f.js} +1 -1
- package/dist/client/assets/{connection-detail-Dm8uTSp4.js → connection-detail-Bzj7ZAYC.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-_rP_t0oA.js → connection-form-helpers-BCgvOrMH.js} +1 -1
- package/dist/client/assets/{connections-DY1nEMCe.js → connections-DZsQ6PqI.js} +1 -1
- package/dist/client/assets/{content-tab-BMyhmLPO.js → content-tab-B8CAyeYn.js} +3 -3
- package/dist/client/assets/{context-Br81mOVA.js → context-Dxx9Nppi.js} +1 -1
- package/dist/client/assets/{context-menu-wXhD1da2.js → context-menu-Bup14w-O.js} +1 -1
- package/dist/client/assets/{context-shell-CSyiGVu3.js → context-shell-YuMc6M7u.js} +3 -3
- package/dist/client/assets/{core.esm-C9O_xZ-F.js → core.esm-BmE_KURk.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-BULehCnN.js → create-organization-dialog-oYjru5bh.js} +1 -1
- package/dist/client/assets/{daily-pulse-Biczsq5_.js → daily-pulse-Cj6zflmn.js} +1 -1
- package/dist/client/assets/{discover-DY6Qihlm.js → discover-BsfuhgQD.js} +1 -1
- package/dist/client/assets/{domain-settings-D_mRu3Vm.js → domain-settings-BCFlmNLU.js} +1 -1
- package/dist/client/assets/{drawer-BXIYbAX4.js → drawer-Bi1-udV5.js} +1 -1
- package/dist/client/assets/{editor-DfNlEhGy.js → editor-DAekV0he.js} +1 -1
- package/dist/client/assets/{editor-classes-BgZFSVD_.js → editor-classes-BaBC2QPU.js} +1 -1
- package/dist/client/assets/{empty-state-DHTpGmzV.js → empty-state-B4dSQMeM.js} +1 -1
- package/dist/client/assets/{empty-state-DK4d2ph4.js → empty-state-wXIjf_EN.js} +1 -1
- package/dist/client/assets/{experiments-tab-Bxbw5NAx.js → experiments-tab-PntzDOfu.js} +1 -1
- package/dist/client/assets/{experiments-tab-choice-Du4Lvv_w.js → experiments-tab-choice-CQ5EsK8h.js} +1 -1
- package/dist/client/assets/{extract-connection-data-9sczZwO0.js → extract-connection-data-Bg9K46Rs.js} +1 -1
- package/dist/client/assets/{feature-gate-b0u-JPA_.js → feature-gate-4u7sb4lR.js} +1 -1
- package/dist/client/assets/{feature-paywall-BarXN_Ju.js → feature-paywall-BsVH1P4Z.js} +1 -1
- package/dist/client/assets/{file-explorer-DnOLSPWJ.js → file-explorer-CsBngoR2.js} +1 -1
- package/dist/client/assets/{file-preview-Cak1nE11.js → file-preview-CVVpAx14.js} +1 -1
- package/dist/client/assets/{file-share-button-kIwp5G-u.js → file-share-button-Dh2OblA7.js} +1 -1
- package/dist/client/assets/{file-type-icon-6tQy_IZ-.js → file-type-icon-DYeFNgMs.js} +1 -1
- package/dist/client/assets/{folder-icon-R5rTkj7V.js → folder-icon-CMfbCZZj.js} +1 -1
- package/dist/client/assets/{form-DuWo7Npn.js → form-BGI3x6he.js} +1 -1
- package/dist/client/assets/{general-Cez86_jx.js → general-AgdwRV2K.js} +1 -1
- package/dist/client/assets/{home-3R5Jmd9M.js → home-B3JLIiqG.js} +1 -1
- package/dist/client/assets/{hosted-publish-api-CReqocob.js → hosted-publish-api-Cg6A3e6a.js} +1 -1
- package/dist/client/assets/{hosted-publish-feedback-BuFauPpC.js → hosted-publish-feedback-R86hK4rw.js} +1 -1
- package/dist/client/assets/{icon-button-DetNbpEP.js → icon-button-Du_O8eku.js} +1 -1
- package/dist/client/assets/{index-DjG04H6F.js → index-BEaGR-Ng.js} +1 -1
- package/dist/client/assets/{index-BdhYTUJI.js → index-BWEksKOa.js} +1 -1
- package/dist/client/assets/{index-CkQE3ies.js → index-BXwVgYyP.js} +1 -1
- package/dist/client/assets/{index-D_jzSCP9.js → index-BeWb3VLq.js} +7 -7
- package/dist/client/assets/{index-BOTs238f.js → index-BflgjdLH.js} +1 -1
- package/dist/client/assets/{index-B0KYQovx.js → index-BliYmmPu.js} +1 -1
- package/dist/client/assets/{index-CRcEuXTH.js → index-BnbMIYQC.js} +1 -1
- package/dist/client/assets/{index-Cl9QwptG.js → index-CEnumkKh.js} +1 -1
- package/dist/client/assets/{index-Nkc_avaN.js → index-CcDpskhn.js} +1 -1
- package/dist/client/assets/{index-DHWYq2vY.js → index-CdhgpKbn.js} +1 -1
- package/dist/client/assets/{index-DppGNDNw.js → index-CkwxAoM4.js} +1 -1
- package/dist/client/assets/{index-C9OicJ74.js → index-CqX2WR0x.js} +1 -1
- package/dist/client/assets/{index-CU2v_61i.js → index-CqllmV-p.js} +1 -1
- package/dist/client/assets/{index-DlAj9KxS.js → index-DVxNOEMj.js} +1 -1
- package/dist/client/assets/{index-DyvCBoQO.js → index-Dw3D39xs.js} +1 -1
- package/dist/client/assets/{index-redirect-ZRzjZAU7.js → index-redirect-BpERt5XK.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-nO7Ij1Gh.js → infiniteQueryObserver-BOCgDRcQ.js} +1 -1
- package/dist/client/assets/{infra-billing-BzKPkpZz.js → infra-billing-443Q4BKf.js} +1 -1
- package/dist/client/assets/{input-BS1vg5HJ.js → input-D1nDj3Gx.js} +3 -3
- package/dist/client/assets/{input---GPY-WG.js → input-D9vH1igB.js} +1 -1
- package/dist/client/assets/{integration-icon-BKkvrbiZ.js → integration-icon-VoZokpOe.js} +1 -1
- package/dist/client/assets/{jira-icon-CNOdA3T8.js → jira-icon-BOD4UX3O.js} +1 -1
- package/dist/client/assets/{label-BHfVaXR7.js → label-TKhfC6jr.js} +1 -1
- package/dist/client/assets/{layout-CDcVgS1C.js → layout-OvvfNrHJ.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DPDWZmqy.js → legacy-agents-deep-Bj2cFPCz.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-Cg_g45Jd.js → legacy-main-redirect-Y-IABTgs.js} +1 -1
- package/dist/client/assets/library-CEpc5ko6.js +1 -0
- package/dist/client/assets/{login-wOfUg9Nh.js → login-d1G00P7v.js} +1 -1
- package/dist/client/assets/{markdown-Cd88osrX.js → markdown-D_Bab0vD.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-CFMsjvxz.js → mcp-app-renderer-C5DYTOzS.js} +1 -1
- package/dist/client/assets/{mcp-oauth-CReJrypj.js → mcp-oauth-Bv0ymH6e.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DQ_xwjzU.js → mcp-oauth-gJmjFND6.js} +1 -1
- package/dist/client/assets/{members-EL9Mc9m1.js → members-CGCmgk2j.js} +1 -1
- package/dist/client/assets/{memory-BawNPVGj.js → memory-DjHNNPOW.js} +1 -1
- package/dist/client/assets/{mini-report-page-BAVRLfhx.js → mini-report-page-BSYlfSmZ.js} +1 -1
- package/dist/client/assets/{mock-board-CUvkl6Lq.js → mock-board-BCQJ9AHq.js} +3 -3
- package/dist/client/assets/{monaco-editor-q0K0FpZQ.js → monaco-editor-CVRVgXSh.js} +1 -1
- package/dist/client/assets/monitoring-mogv5pNr.js +1 -0
- package/dist/client/assets/{monitoring-stats-row-BsUBQUMM.js → monitoring-stats-row-BEpenrU2.js} +1 -1
- package/dist/client/assets/{multi-select-Db_ThqMQ.js → multi-select-ZwwArowo.js} +1 -1
- package/dist/client/assets/{mustache-Pqeakuud.js → mustache-B20fDMb8.js} +1 -1
- package/dist/client/assets/{named-rule-uses-CocrtMGd.js → named-rule-uses-Bxr3PCeC.js} +1 -1
- package/dist/client/assets/{named-rule-view-DI8em1Ln.js → named-rule-view-pF5yBmDb.js} +1 -1
- package/dist/client/assets/{new-project-dialog-CP7YY3zi.js → new-project-dialog-DfI138Mw.js} +1 -1
- package/dist/client/assets/{oauth-callback-C87YK0QM.js → oauth-callback-C0l4AVA-.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BiPEsxGS.js → oauth-callback-ai-provider-DlpJWGZf.js} +1 -1
- package/dist/client/assets/{onboarding-BkgYJN30.js → onboarding-DMkG4-4M.js} +1 -1
- package/dist/client/assets/{openai-conversation-CMtl-uGo.js → openai-conversation-BcQvnIOU.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-Dfnv2eVq.js → optimistic-project-sidebar-views-CBzXyVUz.js} +1 -1
- package/dist/client/assets/{order-monitor-day-B8b4_NRG.js → order-monitor-day-raWLiT1v.js} +1 -1
- package/dist/client/assets/{organization-choice-D2OqEnT1.js → organization-choice-CSBUJWem.js} +1 -1
- package/dist/client/assets/{orgs-BT5DM-wr.js → orgs-DYr5Iir2.js} +1 -1
- package/dist/client/assets/{page-seo-form-BZ5qz5Jc.js → page-seo-form-C0_Mzxj0.js} +1 -1
- package/dist/client/assets/{pair-CbWxf18N.js → pair-v8_ULhan.js} +1 -1
- package/dist/client/assets/{parse-sections-C-MhwiHZ.js → parse-sections-CigeyiXV.js} +1 -1
- package/dist/client/assets/{plan-DZXfEuaN.js → plan-BYiUi2-G.js} +1 -1
- package/dist/client/assets/{plan-ladder-jDYqtD5Q.js → plan-ladder-CtR99jrd.js} +1 -1
- package/dist/client/assets/{popover-BVmz1c3N.js → popover-s88DXvPL.js} +1 -1
- package/dist/client/assets/{post-calendar-B_8534k5.js → post-calendar-DbUDJn5r.js} +1 -1
- package/dist/client/assets/{post-editor-B2niN_j8.js → post-editor-CdhtoksR.js} +1 -1
- package/dist/client/assets/{preview-content-3uKit-hf.js → preview-content-BNZ95rhM.js} +1 -1
- package/dist/client/assets/{preview-dialog-Du1qcsYi.js → preview-dialog-BZcvH5f1.js} +1 -1
- package/dist/client/assets/{preview-panel-BoHCLryt.js → preview-panel-CjWzxG-O.js} +1 -1
- package/dist/client/assets/{preview-tab-DYBrEyCh.js → preview-tab-ztwq5J9Z.js} +3 -3
- package/dist/client/assets/{product-picker-dialog-DPPSOqIw.js → product-picker-dialog-CecFCJox.js} +1 -1
- package/dist/client/assets/{profile-CkB0-zr4.js → profile-Bo384oXV.js} +1 -1
- package/dist/client/assets/{project-app-view-DXEcNYan.js → project-app-view-C-JC6Lnp.js} +1 -1
- package/dist/client/assets/{project-apps-B5YazmD2.js → project-apps-BQ30Q_BX.js} +1 -1
- package/dist/client/assets/{project-feed-DmjT3iA5.js → project-feed--d7Txdh1.js} +1 -1
- package/dist/client/assets/{project-icon-BsqqQ1nI.js → project-icon-Ds8VtVRG.js} +1 -1
- package/dist/client/assets/project-reports-BRMk8sbv.js +1 -0
- package/dist/client/assets/project-tasks-DPFfk-Co.js +1 -0
- package/dist/client/assets/{projects-Cwzu5Iqo.js → projects-BN_UNvg1.js} +1 -1
- package/dist/client/assets/{projects-empty-state-Br0wajyI.js → projects-empty-state-CmS_yrG7.js} +1 -1
- package/dist/client/assets/{prompts-DIIjyoc9.js → prompts-g_Bby1s0.js} +1 -1
- package/dist/client/assets/record-editor-CmI7uwKH.js +1 -0
- package/dist/client/assets/{redirect-editor-B4oKb1GO.js → redirect-editor-CBEbRvVY.js} +1 -1
- package/dist/client/assets/{releases-api-D9GDZds6.js → releases-api-DbKlRR9w.js} +1 -1
- package/dist/client/assets/reports-BKtNuFy0.js +1 -0
- package/dist/client/assets/{reports-BLHz2f-u.js → reports-Bgmc-lqT.js} +1 -1
- package/dist/client/assets/{reports-onboarding-8l7cEi9O.js → reports-onboarding-D6-A2sL7.js} +1 -1
- package/dist/client/assets/{reports-tab-0lUp3BwL.js → reports-tab-B_Sk2TLl.js} +2 -2
- package/dist/client/assets/repositories-C2vwcNjc.js +1 -0
- package/dist/client/assets/repositories-CszhODTX.js +1 -0
- package/dist/client/assets/{repository-binding-Cl8gyVcv.js → repository-binding-Cf_thK-b.js} +1 -1
- package/dist/client/assets/{repository-import-picker-3obW4oiZ.js → repository-import-picker-BOku3VrR.js} +1 -1
- package/dist/client/assets/repository-picker-CeCsQGv8.js +1 -0
- package/dist/client/assets/{require-capability-NNP8AGk1.js → require-capability-DC_q9Xad.js} +1 -1
- package/dist/client/assets/{required-auth-layout-D4sDIyJ3.js → required-auth-layout-DhxdstQv.js} +1 -1
- package/dist/client/assets/{reset-password-CXaP1BPU.js → reset-password-BCS7WVZ6.js} +1 -1
- package/dist/client/assets/{resizable-DVzR2wEK.js → resizable-BySAwPSW.js} +1 -1
- package/dist/client/assets/{resolve-tab-icon-BdFEwYlo.js → resolve-tab-icon-B7CsMGsC.js} +1 -1
- package/dist/client/assets/{review-settings-CQ-ke_sY.js → review-settings-DtZi6zHg.js} +1 -1
- package/dist/client/assets/{roles-CSdPRDeD.js → roles-CGYNn4dv.js} +1 -1
- package/dist/client/assets/{route-CN2nYP-k.js → route-ChD1cXkH.js} +1 -1
- package/dist/client/assets/{route-CGCaN7RC.js → route-ChLLCXC9.js} +1 -1
- package/dist/client/assets/route-_su_B2um.js +1 -0
- package/dist/client/assets/{runnable-block-editor-BCPCXDwB.js → runnable-block-editor-Bod17qTV.js} +3 -3
- package/dist/client/assets/{sandbox-lifecycle-context-D9f3Vvrq.js → sandbox-lifecycle-context-CCjKxqdS.js} +1 -1
- package/dist/client/assets/{schema-DIOdOlgE.js → schema-ClGCzPdy.js} +1 -1
- package/dist/client/assets/{schema-JPrgW9NA.js → schema-b5uziS6S.js} +1 -1
- package/dist/client/assets/{scroll-area-BzPxgY-4.js → scroll-area-BVZXqx5M.js} +1 -1
- package/dist/client/assets/{search-input-CAgDD0MP.js → search-input-BL6XGlmm.js} +1 -1
- package/dist/client/assets/{search-toggle-DxyC7mO0.js → search-toggle-IRNGzCzn.js} +1 -1
- package/dist/client/assets/{secret-ciphertext-DIyWW8ea.js → secret-ciphertext-CKG2rzpX.js} +1 -1
- package/dist/client/assets/{secret-picker-BaxV5boV.js → secret-picker-NNIqKwTx.js} +1 -1
- package/dist/client/assets/{secrets-DSOCKy5q.js → secrets-BLs8g0Qc.js} +1 -1
- package/dist/client/assets/{sections-BsNG86P-.js → sections-Dw8sSpTv.js} +1 -1
- package/dist/client/assets/{sections-editor-Ba5HL_GU.js → sections-editor-IbsR8YsO.js} +1 -1
- package/dist/client/assets/{select-C1PBhx94.js → select-H4FJk0rp.js} +1 -1
- package/dist/client/assets/{select-model-B3qCPlEj.js → select-model-VSltfcKe.js} +1 -1
- package/dist/client/assets/{seo-editor-CBXv1v_K.js → seo-editor-DJxK0wxd.js} +1 -1
- package/dist/client/assets/{separator-DI0EmK0i.js → separator-l8ktDBQ-.js} +1 -1
- package/dist/client/assets/settings-tab-D08h17sS.js +1 -0
- package/dist/client/assets/{sheet-DaxppAym.js → sheet-DdrzSnyB.js} +1 -1
- package/dist/client/assets/{shell-layout-CKWLH4bq.js → shell-layout-Dpds4_um.js} +1 -1
- package/dist/client/assets/{site-draft-actions-Ck0Qp0lI.js → site-draft-actions-B1VIigls.js} +1 -1
- package/dist/client/assets/site-draft-view-BvQXujRd.js +2 -0
- package/dist/client/assets/site-editor-B8qpeTpl.js +1 -0
- package/dist/client/assets/{site-editor-toast-vUK6CnYX.js → site-editor-toast-C48kJZ8y.js} +1 -1
- package/dist/client/assets/{skills-Conq58a1.js → skills-F7XSMMWV.js} +1 -1
- package/dist/client/assets/{slider-B4XFe7FF.js → slider-tSRa1HDF.js} +1 -1
- package/dist/client/assets/{sortable.esm-Mem55hqW.js → sortable.esm-CE2eXOQU.js} +1 -1
- package/dist/client/assets/{sso-4h0pQdIc.js → sso-B_KsCvoW.js} +1 -1
- package/dist/client/assets/{suggestion-DXfrHDfU.js → suggestion-Bu3BweEe.js} +1 -1
- package/dist/client/assets/{switch-BZ12Wlze.js → switch-BI2l0q9a.js} +1 -1
- package/dist/client/assets/{symbol-NtdYAab7.js → symbol-CW0bfPL3.js} +1 -1
- package/dist/client/assets/{synced-repos-C66vtPZX.js → synced-repos-BXQtYjtL.js} +1 -1
- package/dist/client/assets/{tab-icon-glyph-D8h09tlE.js → tab-icon-glyph-B_hAV_wB.js} +1 -1
- package/dist/client/assets/{table-cd8TiUS7.js → table-BI-3H0Nx.js} +1 -1
- package/dist/client/assets/{tabs-PlTfpfXH.js → tabs-Cw5epDK7.js} +1 -1
- package/dist/client/assets/{task-assignee-avatar-CgqWAIyd.js → task-assignee-avatar-B4jYRjC8.js} +1 -1
- package/dist/client/assets/{task-board-DZKwU9_n.js → task-board-ByNQwZsl.js} +1 -1
- package/dist/client/assets/{task-route-CtG_ZySh.js → task-route-B8oSJFnj.js} +1 -1
- package/dist/client/assets/{task-status-DWzfRk3b.js → task-status-GAY2L2Vz.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-CdVp5AM1.js → taskboard-analytics-MtxZahkF.js} +1 -1
- package/dist/client/assets/{tasks-DME9mnR2.js → tasks-CaRFrr2H.js} +1 -1
- package/dist/client/assets/tasks-Zus8qgLK.js +1 -0
- package/dist/client/assets/{textarea-CbCQygtF.js → textarea-7I-DLD6x.js} +1 -1
- package/dist/client/assets/{thread-analytics-D0HqEGEH.js → thread-analytics-BhyMnytl.js} +1 -1
- package/dist/client/assets/{thread-intent-DYTU11gs.js → thread-intent-CoB1rbzj.js} +1 -1
- package/dist/client/assets/{thread-route-BrF-OvAm.js → thread-route-BPSSuk8V.js} +1 -1
- package/dist/client/assets/{thread-route-BwLT1XI-.js → thread-route-Bjcqwe4C.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-BClkfRHz.js → thread-sheet-body-DyDxpawL.js} +1 -1
- package/dist/client/assets/{time-range-picker-Dc0YWA3V.js → time-range-picker-DJ-TaM2M.js} +1 -1
- package/dist/client/assets/{toggle-group-CG3xZyLa.js → toggle-group-BngkTNsG.js} +1 -1
- package/dist/client/assets/{tool-namespace-BffmviW3.js → tool-namespace-DePiqr-m.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-Dvrbx_wP.js → toolbar-icon-button-DKjsnGdZ.js} +1 -1
- package/dist/client/assets/{tooltip-DZoMaiH-.js → tooltip-4vv5k-uR.js} +1 -1
- package/dist/client/assets/{tooltipContext-D6Gsaqky.js → tooltipContext-B3bWUtmi.js} +1 -1
- package/dist/client/assets/{track-Cv2e7Jw0.js → track-C0wfSYRO.js} +1 -1
- package/dist/client/assets/{types-D8wZ_EZc.js → types-CNU-uWw-.js} +1 -1
- package/dist/client/assets/{url-slug-C8xJrS8o.js → url-slug-DU3tFMUC.js} +1 -1
- package/dist/client/assets/{usage-stats-B6igVHuP.js → usage-stats-CKpL0uWf.js} +1 -1
- package/dist/client/assets/{use-ai-providers-DgzZ7YKT.js → use-ai-providers-Ct47MIru.js} +1 -1
- package/dist/client/assets/{use-apply-named-rule-BXu1w5Bp.js → use-apply-named-rule-R20A_NaL.js} +1 -1
- package/dist/client/assets/{use-automations-DZTdfMuj.js → use-automations-Ho0ayZT_.js} +1 -1
- package/dist/client/assets/{use-autosave-C5yHGYj0.js → use-autosave-DzNsVsl3.js} +1 -1
- package/dist/client/assets/{use-chat-layout-state-fUIATILp.js → use-chat-layout-state-CWI-mwQI.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DiijcghV.js → use-clock-tick-DE4s8Okz.js} +1 -1
- package/dist/client/assets/{use-connect-companion-DvHSKAIT.js → use-connect-companion-Dmdscsai.js} +1 -1
- package/dist/client/assets/{use-connection-BZmon5tp.js → use-connection-HenJjVMr.js} +1 -1
- package/dist/client/assets/{use-content-sync-DQGv9jMR.js → use-content-sync-C0CqYtRD.js} +1 -1
- package/dist/client/assets/{use-copy-Dl7HNmsM.js → use-copy-C4LbXPXl.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Y_WqPwQW.js → use-create-virtual-mcp-dBeQ8KM_.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-C4tTGqdg.js → use-date-fns-locale-DBqQ9Xwt.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-iEzw6avK.js → use-debounced-autosave-B_kpX8YN.js} +1 -1
- package/dist/client/assets/{use-debounced-value-DNoCsO37.js → use-debounced-value-Br6JzfN-.js} +1 -1
- package/dist/client/assets/{use-deco-credits-Bb3hLWha.js → use-deco-credits-DhL8Ql0T.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-Bfz-bAKi.js → use-decopilot-events-CuBncVze.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DHMSyjey.js → use-delete-connection-DuErB0IF.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CU8I3_7G.js → use-deployment-admin-BOXhbvir.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-CBDC7qwh.js → use-fast-preview-draft-url-BPrZ2XMf.js} +1 -1
- package/dist/client/assets/{use-file-configs-BXF9rvXJ.js → use-file-configs-B_k4AoEo.js} +1 -1
- package/dist/client/assets/{use-inbox-feed-aT0WvD_J.js → use-inbox-feed-D96kN3Ph.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-ZRIHRcVb.js → use-infinite-scroll-Ba0Xf9MO.js} +1 -1
- package/dist/client/assets/{use-join-requests-p5BU3YYl.js → use-join-requests-DNpCy_xv.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-69xs0HVG.js → use-main-panel-tabs-BndsHuRH.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-SoBS-b1c.js → use-mcp-auth-status-BOQ5PtOH.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DqYHf07G.js → use-mcp-client-2WkK0AxE.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-Cu6zSvAs.js → use-mcp-prompts-BY0itm-N.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CTx7o8Po.js → use-mcp-tools-Wkfd46Rr.js} +1 -1
- package/dist/client/assets/{use-members-7fbiQ1L2.js → use-members-Cl1_-fx1.js} +1 -1
- package/dist/client/assets/{use-mobile-Df_3y675.js → use-mobile-BAnIvR27.js} +1 -1
- package/dist/client/assets/{use-move-blocks-2-4mcwFX.js → use-move-blocks-lN8kagdi.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-DOId9IHj.js → use-navigate-to-agent-C2NQ-36B.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-_IkiYFNL.js → use-open-billing-url-Bewtr0D-.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-D-Dp-TzJ.js → use-org-auth-client-vWdVrvgR.js} +1 -1
- package/dist/client/assets/{use-org-fs-CLvO6ZX7.js → use-org-fs-CxjQMzFd.js} +1 -1
- package/dist/client/assets/{use-org-repo-syncs-kBybWkDI.js → use-org-repo-syncs-dRJpc7Ti.js} +1 -1
- package/dist/client/assets/{use-org-sso-DzwVU3EX.js → use-org-sso-BnFa9r-G.js} +1 -1
- package/dist/client/assets/{use-organization-roles-LxJNrgl3.js → use-organization-roles-D9hV-WPT.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BXo7nhZ3.js → use-organization-settings-CE5BJyh9.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-DGz4w4gD.js → use-panel-navigate-CXkMPISv.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-DVu_UG8f.js → use-project-native-view-presence-D4-BL2Rg.js} +1 -1
- package/dist/client/assets/{use-project-scope-B2UHdHkf.js → use-project-scope-BOj2O9A_.js} +1 -1
- package/dist/client/assets/{use-recent-apps-BOqc2cRg.js → use-recent-apps-Cj-iBJUa.js} +1 -1
- package/dist/client/assets/{use-releases-Bvh7Pdaa.js → use-releases-2-Z6BMdW.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-Dct34RIh.js → use-reports-diagnostic-D--oIp45.js} +1 -1
- package/dist/client/assets/{use-sandbox-events-DxcL_G2x.js → use-sandbox-events-BVhJrX2Z.js} +1 -1
- package/dist/client/assets/{use-secrets-Cgbmwf1E.js → use-secrets-CQ9dfY46.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-CMHXbkVq.js → use-section-preview-base-CrcAXE9z.js} +1 -1
- package/dist/client/assets/{use-session-runtime-7d3qKI0U.js → use-session-runtime-CqJF6neP.js} +1 -1
- package/dist/client/assets/{use-sidebar-collapsed-CEbyuj9_.js → use-sidebar-collapsed-NZNztmvG.js} +1 -1
- package/dist/client/assets/{use-tags-DOizZBvn.js → use-tags-BG7cxCCb.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-hmTm3Xr8.js → use-task-board-analytics-BhvhSxL9.js} +1 -1
- package/dist/client/assets/{use-task-board-events-Sjn1d0ir.js → use-task-board-events-CtQgceab.js} +1 -1
- package/dist/client/assets/{use-task-board-item-prs-BzC_DBWs.js → use-task-board-item-prs-Dp099nXL.js} +1 -1
- package/dist/client/assets/{use-task-metadata-CSxCj4yy.js → use-task-metadata-BBoC1uvX.js} +1 -1
- package/dist/client/assets/{use-thread-analytics-DfMbrXTf.js → use-thread-analytics-g0_FCkSl.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-B3pyBOho.js → use-thread-outputs-C38yfNsJ.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-CxzyY6DS.js +1 -0
- package/dist/client/assets/{useQueries-uLX23MNk.js → useQueries-DSs3oNbf.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CWvS_hOW.js +1 -0
- package/dist/client/assets/{users-Ib8R59dI.js → users-BAyRTNUi.js} +1 -1
- package/dist/client/assets/{utils-LrUUDN57.js → utils-t1gjPfET.js} +1 -1
- package/dist/client/assets/{variant-calendar-DOoqqIzr.js → variant-calendar-BYITnHO8.js} +1 -1
- package/dist/client/assets/{variant-draft-pointer-DNyBkOr3.js → variant-draft-pointer-Cjn_TXkR.js} +1 -1
- package/dist/client/assets/{virtual-mcp-B7o88283.js → virtual-mcp-cTWrWR4Y.js} +1 -1
- package/dist/client/assets/{watch-sse-pool-DIAPPzx7.js → watch-sse-pool-C9NPGTmI.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/migrate.js +214 -209
- package/dist/server/server.js +633 -633
- package/package.json +1 -1
- package/dist/client/assets/agent-analytics-CDwx4a2N.js +0 -1
- package/dist/client/assets/agent-app-G-hsYMQ8.js +0 -1
- package/dist/client/assets/agent-calendar-DaZrWfix.js +0 -1
- package/dist/client/assets/agent-deck-CqPaTZAU.js +0 -1
- package/dist/client/assets/agent-experiments-Cvjx0r-V.js +0 -1
- package/dist/client/assets/agent-file-bVYB1cfC.js +0 -1
- package/dist/client/assets/agent-library-D15ABzqd.js +0 -1
- package/dist/client/assets/agent-library-file-B9iyqErA.js +0 -1
- package/dist/client/assets/agent-settings-AZLE4kyB.js +0 -1
- package/dist/client/assets/agent-site-editor-code-Dqh-CK3q.js +0 -2
- package/dist/client/assets/agent-site-editor-content-ZYGhs3a9.js +0 -1
- package/dist/client/assets/agent-site-editor-preview-DTKZdYCv.js +0 -1
- package/dist/client/assets/agent-view-D3mqLvwq.js +0 -1
- package/dist/client/assets/api-keys-J75u9n5h.js +0 -1
- package/dist/client/assets/cms-settings-editor-B-g4hnK1.js +0 -1
- package/dist/client/assets/library-DJVFXK7P.js +0 -1
- package/dist/client/assets/monitoring-CmUEkQAu.js +0 -1
- package/dist/client/assets/project-reports-CFxmXR8C.js +0 -1
- package/dist/client/assets/project-tasks-DIAs0Pxy.js +0 -1
- package/dist/client/assets/record-editor-C5o_Ofe0.js +0 -1
- package/dist/client/assets/reports-CmJOblfH.js +0 -1
- package/dist/client/assets/repositories-BZY63VIV.js +0 -1
- package/dist/client/assets/repositories-DIzNxooQ.js +0 -1
- package/dist/client/assets/repository-picker-0eUSIZ5X.js +0 -1
- package/dist/client/assets/route-BuTkxBLT.js +0 -1
- package/dist/client/assets/settings-tab-D7gwu_vw.js +0 -1
- package/dist/client/assets/site-draft-view-DwI6BUF-.js +0 -2
- package/dist/client/assets/site-editor-C14MF5hG.js +0 -1
- package/dist/client/assets/tasks-4t3a03Q3.js +0 -1
- package/dist/client/assets/useInfiniteQuery-BuR8X__X.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-B04nA0hC.js +0 -1
package/dist/server/migrate.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null,x)}var C=(_,x)=>{for(var u in x)kz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:vz.bind(x,u)})};import{Migrator as wz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>pz,down:()=>gz});import{sql as tm}from"kysely";async function pz(_){await tm`
|
|
3
3
|
ALTER TABLE task_board_items
|
|
4
4
|
ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
|
|
5
5
|
CHECK (harness_id IN ('claude-code', 'codex'))
|
|
6
|
-
`.execute(_)}async function
|
|
6
|
+
`.execute(_)}async function gz(_){await tm`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>qz,down:()=>iz});import{sql as G_}from"kysely";async function qz(_){await G_`
|
|
7
7
|
ALTER TABLE task_board_items
|
|
8
8
|
ADD COLUMN IF NOT EXISTS parent_id text NULL
|
|
9
9
|
REFERENCES task_board_items(id) ON DELETE SET NULL,
|
|
@@ -12,11 +12,16 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
12
12
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_parent_id
|
|
13
13
|
ON task_board_items (parent_id)
|
|
14
14
|
WHERE parent_id IS NOT NULL
|
|
15
|
-
`.execute(_)}async function
|
|
15
|
+
`.execute(_)}async function iz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
|
|
16
16
|
ALTER TABLE task_board_items
|
|
17
17
|
DROP COLUMN IF EXISTS parent_id,
|
|
18
18
|
DROP COLUMN IF EXISTS is_epic
|
|
19
|
-
`.execute(_)}var Jx={};C(Jx,{up:()=>
|
|
19
|
+
`.execute(_)}var Jx={};C(Jx,{up:()=>cz,down:()=>hz});import{sql as om}from"kysely";async function cz(_){await om`
|
|
20
|
+
ALTER TABLE repositories
|
|
21
|
+
ADD COLUMN IF NOT EXISTS monitor_deploys boolean NOT NULL DEFAULT true
|
|
22
|
+
`.execute(_)}async function hz(_){await om`
|
|
23
|
+
ALTER TABLE repositories DROP COLUMN IF EXISTS monitor_deploys
|
|
24
|
+
`.execute(_)}var Xx={};C(Xx,{up:()=>tz,down:()=>oz});async function tz(_){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 oz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Zx={};C(Zx,{up:()=>az,down:()=>rz,TYPES:()=>Qx});import{sql as m_}from"kysely";var Qx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function az(_){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 am(_,Qx)}async function rz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await am(_,Qx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function am(_,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 Wx={};C(Wx,{up:()=>lz,down:()=>ez});import{sql as rm}from"kysely";async function lz(_){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",rm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",rm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function ez(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var jx={};C(jx,{up:()=>dz,down:()=>bz});import{sql as a}from"kysely";async function dz(_){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
|
|
20
25
|
DROP COLUMN IF EXISTS registry_config,
|
|
21
26
|
DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
|
|
22
27
|
BEGIN RETURN value::jsonb;
|
|
@@ -31,20 +36,20 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
31
36
|
)`.execute(_),await a`DELETE FROM connections
|
|
32
37
|
WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
|
|
33
38
|
OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
|
|
34
|
-
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function
|
|
39
|
+
OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function bz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Lx={};C(Lx,{up:()=>sz,down:()=>_E});import{sql as lm}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await lm`
|
|
35
40
|
select organization_id, metadata
|
|
36
41
|
from connections
|
|
37
42
|
where connection_type = 'VIRTUAL'
|
|
38
43
|
and metadata like '%submoduleCredentials%'
|
|
39
44
|
order by updated_at asc
|
|
40
|
-
`.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
|
|
45
|
+
`.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 lm`
|
|
41
46
|
insert into organization_settings
|
|
42
47
|
("organizationId", submodule_credentials, "createdAt", "updatedAt")
|
|
43
48
|
values (${K}, ${T}, ${N}, ${N})
|
|
44
49
|
on conflict ("organizationId") do update
|
|
45
50
|
set submodule_credentials = excluded.submodule_credentials,
|
|
46
51
|
"updatedAt" = excluded."updatedAt"
|
|
47
|
-
`.execute(_)}}async function
|
|
52
|
+
`.execute(_)}}async function _E(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Fx={};C(Fx,{up:()=>xE,down:()=>uE});async function xE(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function uE(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Dx={};C(Dx,{up:()=>CE,down:()=>KE});import{sql as Yx}from"kysely";async function CE(_){await Yx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Yx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Yx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function KE(_){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 Mx={};C(Mx,{up:()=>TE,down:()=>zE});import{sql as G}from"kysely";var NE={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"}},mE={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"}},Hx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function em(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function dm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,NE],[G`'commerce-discovery_' || organization_id`,mE]])for(let T of["title","description"]){let{from:z,to:E}=em(m[T],x);await G`
|
|
48
53
|
UPDATE connections
|
|
49
54
|
SET ${G.ref(T)} = ${E}
|
|
50
55
|
WHERE id = ${K}
|
|
@@ -58,7 +63,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
58
63
|
RETURN NULL;
|
|
59
64
|
END;
|
|
60
65
|
$fn$ LANGUAGE plpgsql IMMUTABLE;
|
|
61
|
-
`.execute(_);let{from:u,to:N}=
|
|
66
|
+
`.execute(_);let{from:u,to:N}=em(Hx.label,x);await G`
|
|
62
67
|
WITH agents AS (
|
|
63
68
|
SELECT id, deco_score_try_jsonb(metadata) AS m
|
|
64
69
|
FROM connections
|
|
@@ -73,7 +78,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
73
78
|
(
|
|
74
79
|
SELECT jsonb_agg(
|
|
75
80
|
CASE
|
|
76
|
-
WHEN v ->> 'toolName' = ${
|
|
81
|
+
WHEN v ->> 'toolName' = ${Hx.toolName}
|
|
77
82
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
78
83
|
THEN v || jsonb_build_object('label', ${N}::text)
|
|
79
84
|
ELSE v
|
|
@@ -89,7 +94,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
89
94
|
AND EXISTS (
|
|
90
95
|
SELECT 1
|
|
91
96
|
FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
|
|
92
|
-
WHERE v ->> 'toolName' = ${
|
|
97
|
+
WHERE v ->> 'toolName' = ${Hx.toolName}
|
|
93
98
|
AND v ->> 'label' = ANY(${G.val(u)}::text[])
|
|
94
99
|
)
|
|
95
100
|
)
|
|
@@ -97,7 +102,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
97
102
|
SET metadata = r.m::text
|
|
98
103
|
FROM relabeled r
|
|
99
104
|
WHERE c.id = r.id
|
|
100
|
-
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function
|
|
105
|
+
`.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function TE(_){await dm(_,"up")}async function zE(_){await dm(_,"down")}var Bx={};C(Bx,{up:()=>$E,down:()=>UE,ACTIONS:()=>Rx});import{sql as T_}from"kysely";var Rx=["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"],EE=Rx.filter((_)=>_!=="finding_resolved");async function $E(_){await bm(_,Rx)}async function UE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await bm(_,EE)}async function bm(_,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 Gx={};C(Gx,{up:()=>PE,down:()=>JE});import{sql as O_}from"kysely";async function PE(_){await O_`
|
|
101
106
|
ALTER TABLE org_jira_column_automations
|
|
102
107
|
ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
|
|
103
108
|
CONSTRAINT chk_org_jira_column_automations_from_kind
|
|
@@ -108,7 +113,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
108
113
|
ALTER TABLE org_jira_column_automations
|
|
109
114
|
DROP CONSTRAINT org_jira_column_automations_pkey,
|
|
110
115
|
ADD PRIMARY KEY (organization_id, jira_status, from_key)
|
|
111
|
-
`.execute(_)}async function
|
|
116
|
+
`.execute(_)}async function JE(_){await O_`
|
|
112
117
|
DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
|
|
113
118
|
`.execute(_),await O_`
|
|
114
119
|
ALTER TABLE org_jira_column_automations
|
|
@@ -117,18 +122,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
117
122
|
DROP COLUMN from_key,
|
|
118
123
|
DROP COLUMN from_statuses,
|
|
119
124
|
DROP COLUMN from_kind
|
|
120
|
-
`.execute(_)}var
|
|
125
|
+
`.execute(_)}var Ox={};C(Ox,{up:()=>XE,down:()=>QE});import{sql as sm}from"kysely";async function XE(_){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(sm`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(sm`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 QE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Sx={};C(Sx,{up:()=>ZE,down:()=>WE});async function ZE(){}async function WE(){}var fx={};C(fx,{up:()=>jE,down:()=>LE});import{sql as Ax}from"kysely";async function jE(_){await Ax`
|
|
121
126
|
ALTER TABLE task_board_prompts
|
|
122
127
|
ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
|
|
123
|
-
`.execute(_)}async function
|
|
128
|
+
`.execute(_)}async function LE(_){await Ax`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Ax`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var yx={};C(yx,{up:()=>FE,down:()=>YE});import{sql as Ix}from"kysely";async function FE(_){await Ix`
|
|
124
129
|
DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
|
|
125
|
-
`.execute(_),await
|
|
130
|
+
`.execute(_),await Ix`
|
|
126
131
|
DELETE FROM connection_aggregations
|
|
127
132
|
WHERE parent_connection_id LIKE 'studio-jira\\_%'
|
|
128
|
-
`.execute(_),await
|
|
133
|
+
`.execute(_),await Ix`
|
|
129
134
|
DELETE FROM connections
|
|
130
135
|
WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
|
|
131
|
-
`.execute(_)}async function
|
|
136
|
+
`.execute(_)}async function YE(){}var Vx={};C(Vx,{up:()=>DE,down:()=>HE});import{sql as _T}from"kysely";async function DE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(_T`audience in ('human', 'internal')`)).execute(),await _T`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function HE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var wx={};C(wx,{up:()=>RE,down:()=>BE});import{sql as ME}from"kysely";async function RE(_){await ME`
|
|
132
137
|
UPDATE org_fs_entry AS d
|
|
133
138
|
SET deleted_at = now(),
|
|
134
139
|
updated_at = now(),
|
|
@@ -147,7 +152,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
147
152
|
AND c.parent = d.path
|
|
148
153
|
AND c.deleted_at IS NULL
|
|
149
154
|
)
|
|
150
|
-
`.execute(_)}async function
|
|
155
|
+
`.execute(_)}async function BE(){}var nx={};C(nx,{up:()=>OE,down:()=>SE,ACTIONS:()=>kx});import{sql as F}from"kysely";var kx=["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"],GE=kx.filter((_)=>_!=="sprint_changed");async function OE(_){await F`
|
|
151
156
|
CREATE TABLE task_board_sprints (
|
|
152
157
|
id text PRIMARY KEY,
|
|
153
158
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -173,12 +178,12 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
173
178
|
CREATE INDEX idx_task_board_items_sprint
|
|
174
179
|
ON task_board_items (organization_id, sprint_id)
|
|
175
180
|
WHERE sprint_id IS NOT NULL
|
|
176
|
-
`.execute(_),await
|
|
181
|
+
`.execute(_),await xT(_,kx)}async function SE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await xT(_,GE),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 xT(_,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 vx={};C(vx,{up:()=>fE,planOrgSiteProjectLinks:()=>KT,down:()=>IE,applyOrgSiteProjectLinks:()=>NT});import{sql as J}from"kysely";var AE="migration-237",uT=1000;async function CT(_){return(await J`
|
|
177
182
|
SELECT conname FROM pg_constraint
|
|
178
183
|
WHERE conrelid = 'org_sites'::regclass
|
|
179
184
|
AND confrelid = 'organization'::regclass
|
|
180
185
|
AND contype = 'f'
|
|
181
|
-
`.execute(_)).rows[0]?.conname??null}async function
|
|
186
|
+
`.execute(_)).rows[0]?.conname??null}async function KT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
|
|
182
187
|
SELECT slug, organization_id FROM org_sites
|
|
183
188
|
WHERE organization_id IS NOT NULL
|
|
184
189
|
ORDER BY organization_id, slug
|
|
@@ -189,17 +194,17 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
189
194
|
SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
|
|
190
195
|
)
|
|
191
196
|
ORDER BY organization_id, id
|
|
192
|
-
`.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
|
|
197
|
+
`.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 NT(_,x){let u=0;for(let N=0;N<x.length;N+=uT){let K=J.join(x.slice(N,N+uT).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
|
|
193
198
|
UPDATE org_sites o
|
|
194
199
|
SET project_id = v.pid,
|
|
195
200
|
linked_at = now(),
|
|
196
|
-
updated_by = ${
|
|
201
|
+
updated_by = ${AE},
|
|
197
202
|
updated_at = now()
|
|
198
203
|
FROM (VALUES ${K}) AS v(slug, pid)
|
|
199
204
|
WHERE o.slug = v.slug
|
|
200
205
|
AND o.project_id IS NULL
|
|
201
206
|
AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
|
|
202
|
-
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function
|
|
207
|
+
`.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function fE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await KT(_);await J`
|
|
203
208
|
ALTER TABLE org_sites
|
|
204
209
|
ADD COLUMN project_id text NULL
|
|
205
210
|
REFERENCES connections(id) ON DELETE SET NULL,
|
|
@@ -207,7 +212,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
207
212
|
`.execute(_),await J`
|
|
208
213
|
CREATE UNIQUE INDEX org_sites_project_id_uq
|
|
209
214
|
ON org_sites (project_id) WHERE project_id IS NOT NULL
|
|
210
|
-
`.execute(_);let u=await
|
|
215
|
+
`.execute(_);let u=await CT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
211
216
|
ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
|
|
212
217
|
`.execute(_),await J`
|
|
213
218
|
ALTER TABLE org_sites
|
|
@@ -216,12 +221,12 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
216
221
|
ON DELETE SET NULL NOT VALID
|
|
217
222
|
`.execute(_),await J`
|
|
218
223
|
ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
|
|
219
|
-
`.execute(_);let N=await
|
|
224
|
+
`.execute(_);let N=await NT(_,x.links),K=await J`
|
|
220
225
|
UPDATE org_sites SET linked_at = created_at
|
|
221
226
|
WHERE organization_id IS NOT NULL AND linked_at IS NULL
|
|
222
|
-
`.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
|
|
227
|
+
`.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 IE(_){if((await J`
|
|
223
228
|
SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
|
|
224
|
-
`.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
|
|
229
|
+
`.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 CT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
|
|
225
230
|
ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
|
|
226
231
|
`.execute(_),await J`
|
|
227
232
|
ALTER TABLE org_sites
|
|
@@ -230,7 +235,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
230
235
|
ON DELETE CASCADE
|
|
231
236
|
`.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
|
|
232
237
|
ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
|
|
233
|
-
`.execute(_)}var
|
|
238
|
+
`.execute(_)}var px={};C(px,{up:()=>yE,moveRules:()=>Y,down:()=>VE});import{sql as c}from"kysely";async function yE(_){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`
|
|
234
239
|
DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
|
|
235
240
|
`.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`
|
|
236
241
|
WITH moved AS (
|
|
@@ -258,7 +263,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
258
263
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
259
264
|
now()
|
|
260
265
|
FROM moved
|
|
261
|
-
`.execute(_)}async function
|
|
266
|
+
`.execute(_)}async function VE(){}async function Y(_,x,u,N,K){await c`
|
|
262
267
|
DELETE FROM ${c.table(x)} AS src
|
|
263
268
|
WHERE src.column_key = ${N}
|
|
264
269
|
AND EXISTS (
|
|
@@ -272,7 +277,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
272
277
|
id = ${u} || organization_id || '_' || ${K},
|
|
273
278
|
updated_at = now()
|
|
274
279
|
WHERE column_key = ${N}
|
|
275
|
-
`.execute(_)}var
|
|
280
|
+
`.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as wE}from"kysely";async function kE(_){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 wE`
|
|
276
281
|
WITH moved AS (
|
|
277
282
|
UPDATE task_board_items AS i
|
|
278
283
|
SET status = CASE prev.status
|
|
@@ -296,7 +301,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
296
301
|
jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
|
|
297
302
|
now()
|
|
298
303
|
FROM moved
|
|
299
|
-
`.execute(_)}async function
|
|
304
|
+
`.execute(_)}async function nE(){}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as vE}from"kysely";async function pE(_){await vE`
|
|
300
305
|
WITH restored AS (
|
|
301
306
|
UPDATE task_board_items AS i
|
|
302
307
|
SET status = 'todo', updated_at = now()
|
|
@@ -323,7 +328,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
323
328
|
jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
|
|
324
329
|
now()
|
|
325
330
|
FROM restored
|
|
326
|
-
`.execute(_)}async function
|
|
331
|
+
`.execute(_)}async function gE(){}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as L}from"kysely";async function qE(_){await L`
|
|
327
332
|
ALTER TABLE automation_triggers
|
|
328
333
|
ADD COLUMN column_key text,
|
|
329
334
|
ADD COLUMN from_kind text,
|
|
@@ -349,7 +354,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
349
354
|
CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
|
|
350
355
|
ON task_board_activity (occurred_at)
|
|
351
356
|
WHERE action = 'status_changed'
|
|
352
|
-
`.execute(_)}async function
|
|
357
|
+
`.execute(_)}async function iE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
|
|
353
358
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
354
359
|
CHECK (type IN ('cron', 'event', 'webhook'))
|
|
355
360
|
`.execute(_),await L`
|
|
@@ -357,11 +362,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
357
362
|
DROP COLUMN IF EXISTS column_key,
|
|
358
363
|
DROP COLUMN IF EXISTS from_kind,
|
|
359
364
|
DROP COLUMN IF EXISTS from_statuses
|
|
360
|
-
`.execute(_)}var
|
|
365
|
+
`.execute(_)}var cx={};C(cx,{up:()=>oE,down:()=>aE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var TT=64,cE=new Set(["new","edit","settings","apps","projects","connections"]);function hE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function tE(_,x){let u=hE(_??"").slice(0,TT).replace(/-+$/,"");return u.length>=2&&!cE.has(u)?u:x}function mT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,TT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
|
|
361
366
|
SELECT id, organization_id, title, connection_type, url_slug
|
|
362
367
|
FROM connections
|
|
363
368
|
ORDER BY organization_id, created_at, id
|
|
364
|
-
`.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=
|
|
369
|
+
`.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=tE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(mT(E,$)))$++;let P=mT(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`
|
|
365
370
|
UPDATE connections c
|
|
366
371
|
SET url_slug = v.slug
|
|
367
372
|
FROM unnest(
|
|
@@ -369,7 +374,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
369
374
|
${D.val(z.map((E)=>E.slug))}::text[]
|
|
370
375
|
) AS v(id, slug)
|
|
371
376
|
WHERE c.id = v.id AND c.url_slug IS NULL
|
|
372
|
-
`.execute(_)}}async function
|
|
377
|
+
`.execute(_)}}async function oE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
|
|
373
378
|
CREATE TABLE connection_slug_aliases (
|
|
374
379
|
organization_id text NOT NULL,
|
|
375
380
|
slug text NOT NULL,
|
|
@@ -383,18 +388,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
383
388
|
`.execute(_),await S_(_),await D`
|
|
384
389
|
CREATE UNIQUE INDEX idx_connections_org_url_slug
|
|
385
390
|
ON connections (organization_id, url_slug)
|
|
386
|
-
`.execute(_)}async function
|
|
391
|
+
`.execute(_)}async function aE(_){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 hx={};C(hx,{up:()=>rE,down:()=>lE});async function rE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function lE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var tx={};C(tx,{up:()=>eE,down:()=>dE});async function eE(_){await S_(_)}async function dE(){}var ox={};C(ox,{up:()=>bE,down:()=>sE});import{sql as A_}from"kysely";async function bE(_){await A_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await A_`
|
|
387
392
|
CREATE UNIQUE INDEX idx_automations_org_system_key
|
|
388
393
|
ON automations (organization_id, system_key)
|
|
389
394
|
WHERE system_key IS NOT NULL
|
|
390
|
-
`.execute(_)}async function
|
|
395
|
+
`.execute(_)}async function sE(_){await A_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await A_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var ax={};C(ax,{up:()=>_0,down:()=>x0});import{sql as z_}from"kysely";async function _0(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
|
|
391
396
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
392
397
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
|
|
393
398
|
'board_pr_ready'))
|
|
394
|
-
`.execute(_)}async function
|
|
399
|
+
`.execute(_)}async function x0(_){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_`
|
|
395
400
|
ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
|
|
396
401
|
CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
|
|
397
|
-
`.execute(_)}var
|
|
402
|
+
`.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>N0});import{sql as H}from"kysely";async function u0(_){let{rows:x}=await H`
|
|
398
403
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
399
404
|
WHERE conname = 'chk_trigger_type'
|
|
400
405
|
AND conrelid = 'automation_triggers'::regclass
|
|
@@ -421,8 +426,8 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
421
426
|
INSERT INTO automations
|
|
422
427
|
(id, organization_id, name, active, created_by, messages, models,
|
|
423
428
|
virtual_mcp_id)
|
|
424
|
-
VALUES (${T}, ${K.organization_id}, ${
|
|
425
|
-
${K.created_by}, ${JSON.stringify(
|
|
429
|
+
VALUES (${T}, ${K.organization_id}, ${C0(K)}, true,
|
|
430
|
+
${K.created_by}, ${JSON.stringify(K0(K.prompt))},
|
|
426
431
|
'{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
|
|
427
432
|
ON CONFLICT (id) DO NOTHING
|
|
428
433
|
`.execute(_),await H`
|
|
@@ -431,11 +436,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
431
436
|
VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
|
|
432
437
|
${K.from_kind}, ${K.from_statuses})
|
|
433
438
|
ON CONFLICT (id) DO NOTHING
|
|
434
|
-
`.execute(_)}}function
|
|
435
|
-
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function
|
|
439
|
+
`.execute(_)}}function C0(_){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 K0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
|
|
440
|
+
`).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function N0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
|
|
436
441
|
ALTER TABLE automation_triggers
|
|
437
442
|
DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
|
|
438
|
-
`.execute(_)}var
|
|
443
|
+
`.execute(_)}var lx={};C(lx,{up:()=>m0,down:()=>T0});import{sql as E_}from"kysely";async function m0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function T0(_){await E_`
|
|
439
444
|
CREATE TABLE IF NOT EXISTS task_board_column_automations (
|
|
440
445
|
id text PRIMARY KEY,
|
|
441
446
|
organization_id text NOT NULL,
|
|
@@ -462,30 +467,30 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
462
467
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
463
468
|
PRIMARY KEY (organization_id, jira_status, from_key)
|
|
464
469
|
)
|
|
465
|
-
`.execute(_)}var
|
|
470
|
+
`.execute(_)}var ex={};C(ex,{up:()=>z0,down:()=>E0});import{sql as f_}from"kysely";async function z0(_){await f_`
|
|
466
471
|
ALTER TABLE task_board_items
|
|
467
472
|
ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
|
|
468
473
|
REFERENCES connections(id) ON DELETE SET NULL
|
|
469
|
-
`.execute(_),await
|
|
474
|
+
`.execute(_),await f_`
|
|
470
475
|
CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
|
|
471
476
|
ON task_board_items (virtual_mcp_id)
|
|
472
477
|
WHERE virtual_mcp_id IS NOT NULL
|
|
473
|
-
`.execute(_)}async function
|
|
478
|
+
`.execute(_)}async function E0(_){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 dx={};C(dx,{up:()=>$0,down:()=>U0});async function $0(_){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 U0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var bx={};C(bx,{up:()=>P0,down:()=>J0});async function P0(_){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 J0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var sx={};C(sx,{up:()=>X0,down:()=>Q0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function zT(_){let{rows:x}=await r`
|
|
474
479
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
475
480
|
WHERE conname = 'chk_trigger_type'
|
|
476
481
|
AND conrelid = 'automation_triggers'::regclass
|
|
477
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
482
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function ET(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
|
|
478
483
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
479
484
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
480
|
-
`.execute(_)}async function
|
|
485
|
+
`.execute(_)}async function X0(_){let x=await zT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await ET(_,x)}async function Q0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await zT(_);for(let u of I_)x.delete(u);await ET(_,x)}var _u={};C(_u,{up:()=>Z0,down:()=>W0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function $T(_){let{rows:x}=await l`
|
|
481
486
|
SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
|
|
482
487
|
WHERE conname = 'chk_trigger_type'
|
|
483
488
|
AND conrelid = 'automation_triggers'::regclass
|
|
484
|
-
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function
|
|
489
|
+
`.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function UT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
|
|
485
490
|
ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
|
|
486
491
|
ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
|
|
487
|
-
`.execute(_)}async function
|
|
488
|
-
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function
|
|
492
|
+
`.execute(_)}async function Z0(_){let x=await $T(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await UT(_,x)}async function W0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await $T(_);for(let u of y_)x.delete(u);await UT(_,x)}var xu={};C(xu,{up:()=>L0,down:()=>F0});import{sql as j0}from"kysely";async function L0(_){await j0`ALTER TABLE organization_settings
|
|
493
|
+
DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function F0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var uu={};C(uu,{up:()=>Y0,down:()=>D0});import{sql as PT}from"kysely";async function Y0(_){await PT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function D0(_){await PT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Cu={};C(Cu,{up:()=>H0,down:()=>M0});import{sql as O}from"kysely";async function H0(_){await O`
|
|
489
494
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
490
495
|
RETURNS jsonb AS $fn$
|
|
491
496
|
BEGIN
|
|
@@ -559,7 +564,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
559
564
|
|| '/' ||
|
|
560
565
|
coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
|
|
561
566
|
) = lower(p.path)
|
|
562
|
-
`.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
|
|
567
|
+
`.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 M0(_){await O`
|
|
563
568
|
CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
|
|
564
569
|
RETURNS jsonb AS $fn$
|
|
565
570
|
BEGIN
|
|
@@ -586,17 +591,17 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
586
591
|
)::text
|
|
587
592
|
WHERE a.id = 'commerce-discovery_' || a.organization_id
|
|
588
593
|
AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
|
|
589
|
-
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var
|
|
594
|
+
`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Nu={};C(Nu,{up:()=>R0,down:()=>B0});import{sql as Ku}from"kysely";async function R0(_){await Ku`ALTER TABLE git_provider_accounts
|
|
590
595
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
591
596
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
592
597
|
CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
|
|
593
598
|
ADD CONSTRAINT git_provider_accounts_cli_check
|
|
594
599
|
CHECK (auth_kind <> 'github_cli' OR
|
|
595
|
-
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function
|
|
600
|
+
(type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function B0(_){await Ku`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Ku`ALTER TABLE git_provider_accounts
|
|
596
601
|
DROP CONSTRAINT git_provider_accounts_cli_check,
|
|
597
602
|
DROP CONSTRAINT git_provider_accounts_auth_kind_check,
|
|
598
603
|
ADD CONSTRAINT git_provider_accounts_auth_kind_check
|
|
599
|
-
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var
|
|
604
|
+
CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var mu={};C(mu,{up:()=>G0,down:()=>O0});import{sql as JT}from"kysely";async function G0(_){await JT`
|
|
600
605
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
601
606
|
SELECT
|
|
602
607
|
'org_user_fs',
|
|
@@ -610,9 +615,9 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
610
615
|
END,
|
|
611
616
|
now()
|
|
612
617
|
ON CONFLICT (id) DO NOTHING
|
|
613
|
-
`.execute(_)}async function
|
|
618
|
+
`.execute(_)}async function O0(_){await JT`
|
|
614
619
|
DELETE FROM "organization" WHERE id = 'org_user_fs'
|
|
615
|
-
`.execute(_)}var
|
|
620
|
+
`.execute(_)}var Tu={};C(Tu,{up:()=>S0,down:()=>A0});async function S0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function A0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var zu={};C(zu,{up:()=>f0,down:()=>I0});async function f0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function I0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Eu={};C(Eu,{up:()=>V0,down:()=>w0});import{sql as $_}from"kysely";var y0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function XT(_,x){for(let{table:u,column:N}of y0){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 V0(_){await XT(_,["github","gitlab","bitbucket"])}async function w0(_){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 XT(_,["github","gitlab"])}var $u={};C($u,{up:()=>k0,down:()=>n0});import{sql as V_}from"kysely";async function k0(_){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(V_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V_`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 n0(_){await _.schema.dropTable("experiments").execute()}var Uu={};C(Uu,{up:()=>p0,down:()=>g0});import{sql as v0}from"kysely";async function p0(_){await v0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function g0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Ju={};C(Ju,{up:()=>i0,down:()=>c0,ACTIONS:()=>Pu});import{sql as U_}from"kysely";var Pu=["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"],q0=Pu.filter((_)=>_!=="duplicate_reported");async function i0(_){await QT(_,Pu)}async function c0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await QT(_,q0)}async function QT(_,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 Xu={};C(Xu,{up:()=>h0,down:()=>t0});async function h0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function t0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Qu={};C(Qu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function a0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Zu={};C(Zu,{up:()=>l0,down:()=>e0});import{sql as r0}from"kysely";async function l0(_){await r0`
|
|
616
621
|
CREATE TABLE github_connect_flows (
|
|
617
622
|
id text PRIMARY KEY,
|
|
618
623
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -622,7 +627,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
622
627
|
);
|
|
623
628
|
CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
|
|
624
629
|
CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
|
|
625
|
-
`.execute(_)}async function
|
|
630
|
+
`.execute(_)}async function e0(_){await _.schema.dropTable("github_connect_flows").execute()}var Wu={};C(Wu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function b0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var ju={};C(ju,{up:()=>s0,down:()=>_$});import{sql as w_}from"kysely";async function s0(_){await w_`
|
|
626
631
|
CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
|
|
627
632
|
DECLARE
|
|
628
633
|
metadata_json jsonb;
|
|
@@ -678,19 +683,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
678
683
|
FROM repositories r WHERE s.repository_id IS NULL
|
|
679
684
|
AND r.organization_id = s.organization_id AND r.host = 'github.com'
|
|
680
685
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
|
|
681
|
-
`.execute(_)}async function e0(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ju={};C(ju,{up:()=>d0,down:()=>b0});import{sql as V}from"kysely";async function d0(_){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 b0(_){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 Lu={};C(Lu,{up:()=>s0,down:()=>_$});import{sql as XT}from"kysely";async function s0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute()}async function _$(_){await _.schema.dropTable("organization_settings").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){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 u$(_){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 Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){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 K$(_){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 Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function m$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as T$}from"kysely";async function z$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",T$`text`).execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Mu={};C(Mu,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){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 Ru={};C(Ru,{up:()=>P$,down:()=>J$});import{sql as P_}from"kysely";async function P$(_){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 J$(_){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 Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){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(X$`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 Gu={};C(Gu,{up:()=>W$,down:()=>j$});import{sql as k_}from"kysely";async function W$(_){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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(k_`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 k_`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 j$(_){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 Ou={};C(Ou,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function F$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Su={};C(Su,{up:()=>Y$,down:()=>D$});import{sql as n_}from"kysely";async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
|
|
686
|
+
`.execute(_)}async function _$(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Lu={};C(Lu,{up:()=>x$,down:()=>u$});import{sql as V}from"kysely";async function x$(_){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 u$(_){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 Fu={};C(Fu,{up:()=>C$,down:()=>K$});import{sql as ZT}from"kysely";async function C$(_){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(ZT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute()}async function K$(_){await _.schema.dropTable("organization_settings").execute()}var Yu={};C(Yu,{up:()=>N$,down:()=>m$});async function N$(_){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 m$(_){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 Du={};C(Du,{up:()=>T$,down:()=>z$});async function T$(_){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 z$(_){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 Hu={};C(Hu,{up:()=>E$,down:()=>$$});async function E$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function $$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Mu={};C(Mu,{up:()=>P$,down:()=>J$});import{sql as U$}from"kysely";async function P$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",U$`text`).execute()}async function J$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ru={};C(Ru,{up:()=>X$,down:()=>Q$});async function X$(_){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 Q$(_){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 Bu={};C(Bu,{up:()=>Z$,down:()=>W$});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 W$(_){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 Gu={};C(Gu,{up:()=>L$,down:()=>F$});import{sql as j$}from"kysely";async function L$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function F$(_){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(j$`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 Ou={};C(Ou,{up:()=>Y$,down:()=>D$});import{sql as k_}from"kysely";async function Y$(_){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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(k_`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 k_`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 D$(_){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 Su={};C(Su,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function M$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});import{sql as n_}from"kysely";async function R$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
|
|
682
687
|
UPDATE gateways
|
|
683
688
|
SET tool_selection_mode = CASE
|
|
684
689
|
WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
|
|
685
690
|
ELSE 'inclusion'
|
|
686
691
|
END
|
|
687
|
-
`.execute(_),await n_`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
|
|
692
|
+
`.execute(_),await n_`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 B$(_){await n_`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 n_`
|
|
688
693
|
UPDATE gateways
|
|
689
694
|
SET tool_selection_strategy = CASE
|
|
690
695
|
WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
|
|
691
696
|
ELSE NULL
|
|
692
697
|
END
|
|
693
|
-
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>
|
|
698
|
+
`.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>G$,down:()=>O$});async function G$(_){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 O$(_){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 Iu={};C(Iu,{up:()=>S$,down:()=>A$});async function S$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function A$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var yu={};C(yu,{up:()=>f$,down:()=>I$});async function f$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function I$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Vu={};C(Vu,{up:()=>y$,down:()=>V$});async function y$(_){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 V$(_){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 wu={};C(wu,{up:()=>k$,down:()=>n$});import{sql as w$}from"kysely";async function k$(_){await w$`
|
|
694
699
|
DELETE FROM downstream_tokens
|
|
695
700
|
WHERE id NOT IN (
|
|
696
701
|
SELECT id FROM (
|
|
@@ -700,7 +705,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
700
705
|
) ranked
|
|
701
706
|
WHERE rn = 1
|
|
702
707
|
)
|
|
703
|
-
`.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
|
|
708
|
+
`.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 n$(_){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 ku={};C(ku,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function p$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var nu={};C(nu,{up:()=>g$,down:()=>q$});import{sql as WT}from"kysely";async function g$(_){await WT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function q$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await WT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var vu={};C(vu,{up:()=>i$,down:()=>c$});async function i$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function c$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var pu={};C(pu,{up:()=>h$,down:()=>t$});import{sql as v_}from"kysely";async function h$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`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 t$(_){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 gu={};C(gu,{up:()=>o$,down:()=>a$});async function o$(_){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 a$(_){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 qu={};C(qu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 iu={};C(iu,{up:()=>e$,down:()=>d$});import{sql as M}from"kysely";async function e$(_){await M`
|
|
704
709
|
INSERT INTO connections (
|
|
705
710
|
id,
|
|
706
711
|
organization_id,
|
|
@@ -747,7 +752,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
747
752
|
created_at,
|
|
748
753
|
updated_at
|
|
749
754
|
FROM virtual_mcps
|
|
750
|
-
`.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
|
|
755
|
+
`.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 d$(_){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`
|
|
751
756
|
INSERT INTO virtual_mcps (
|
|
752
757
|
id, organization_id, title, description, icon, status,
|
|
753
758
|
created_at, updated_at, created_by, updated_by, tool_selection_mode
|
|
@@ -757,7 +762,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
757
762
|
created_at, updated_at, created_by, NULL, 'inclusion'
|
|
758
763
|
FROM connections
|
|
759
764
|
WHERE connection_type = 'VIRTUAL'
|
|
760
|
-
`.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
|
|
765
|
+
`.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 cu={};C(cu,{up:()=>b$,down:()=>s$});async function b$(_){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 s$(_){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 hu={};C(hu,{up:()=>_U,down:()=>xU});import{sql as w}from"kysely";async function _U(_){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`
|
|
761
766
|
INSERT INTO connection_aggregations_new (
|
|
762
767
|
id, parent_connection_id, child_connection_id,
|
|
763
768
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -766,7 +771,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
766
771
|
id, parent_connection_id, child_connection_id,
|
|
767
772
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
768
773
|
FROM connection_aggregations
|
|
769
|
-
`.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
|
|
774
|
+
`.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 xU(_){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`
|
|
770
775
|
INSERT INTO connection_aggregations_new (
|
|
771
776
|
id, parent_connection_id, child_connection_id,
|
|
772
777
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -775,7 +780,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
775
780
|
id, parent_connection_id, child_connection_id,
|
|
776
781
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
777
782
|
FROM connection_aggregations
|
|
778
|
-
`.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
|
|
783
|
+
`.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 ou={};C(ou,{up:()=>uU,down:()=>CU});import{sql as tu}from"kysely";async function uU(_){await tu`
|
|
779
784
|
UPDATE connections
|
|
780
785
|
SET connection_url = connection_url || '/management',
|
|
781
786
|
tools = NULL,
|
|
@@ -783,42 +788,42 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
783
788
|
WHERE connection_url LIKE '%/mcp'
|
|
784
789
|
AND connection_url NOT LIKE '%/mcp/management'
|
|
785
790
|
AND app_name = '@deco/management-mcp'
|
|
786
|
-
`.execute(_),await
|
|
791
|
+
`.execute(_),await tu`
|
|
787
792
|
UPDATE connections
|
|
788
793
|
SET tools = NULL,
|
|
789
794
|
updated_at = CURRENT_TIMESTAMP
|
|
790
795
|
WHERE app_name = '@deco/management-mcp'
|
|
791
796
|
AND tools IS NOT NULL
|
|
792
|
-
`.execute(_)}async function
|
|
797
|
+
`.execute(_)}async function CU(_){await tu`
|
|
793
798
|
UPDATE connections
|
|
794
799
|
SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
|
|
795
800
|
updated_at = CURRENT_TIMESTAMP
|
|
796
801
|
WHERE connection_url LIKE '%/mcp/management'
|
|
797
802
|
AND app_name = '@deco/management-mcp'
|
|
798
|
-
`.execute(_)}var
|
|
803
|
+
`.execute(_)}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{sql as au}from"kysely";async function KU(_){await au`
|
|
799
804
|
UPDATE connections
|
|
800
805
|
SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
|
|
801
806
|
tools = NULL,
|
|
802
807
|
updated_at = CURRENT_TIMESTAMP
|
|
803
808
|
WHERE connection_url LIKE '%/mcp/management'
|
|
804
809
|
AND app_name = '@deco/management-mcp'
|
|
805
|
-
`.execute(_),await
|
|
810
|
+
`.execute(_),await au`
|
|
806
811
|
UPDATE connections
|
|
807
812
|
SET tools = NULL,
|
|
808
813
|
updated_at = CURRENT_TIMESTAMP
|
|
809
814
|
WHERE connection_url LIKE '%/mcp/self'
|
|
810
815
|
AND app_name = '@deco/management-mcp'
|
|
811
816
|
AND tools IS NOT NULL
|
|
812
|
-
`.execute(_)}async function
|
|
817
|
+
`.execute(_)}async function NU(_){await au`
|
|
813
818
|
UPDATE connections
|
|
814
819
|
SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
|
|
815
820
|
updated_at = CURRENT_TIMESTAMP
|
|
816
821
|
WHERE connection_url LIKE '%/mcp/self'
|
|
817
822
|
AND app_name = '@deco/management-mcp'
|
|
818
|
-
`.execute(_)}var
|
|
823
|
+
`.execute(_)}var lu={};C(lu,{up:()=>mU,down:()=>TU});async function mU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function TU(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var eu={};C(eu,{up:()=>zU,down:()=>EU});import{sql as jT}from"kysely";async function zU(_){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(jT`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(jT`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 EU(_){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 du={};C(du,{up:()=>$U,down:()=>UU});import{sql as J_}from"kysely";async function $U(_){await J_`
|
|
819
824
|
ALTER TABLE connection_aggregations
|
|
820
825
|
ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
|
|
821
|
-
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function
|
|
826
|
+
`.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function UU(_){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_`
|
|
822
827
|
INSERT INTO connection_aggregations_new (
|
|
823
828
|
id, parent_connection_id, child_connection_id,
|
|
824
829
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
@@ -827,42 +832,42 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
827
832
|
id, parent_connection_id, child_connection_id,
|
|
828
833
|
selected_tools, selected_resources, selected_prompts, created_at
|
|
829
834
|
FROM connection_aggregations
|
|
830
|
-
`.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
|
|
835
|
+
`.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 bu={};C(bu,{up:()=>ZU,down:()=>WU});import{webcrypto as FT}from"crypto";var LT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var PU=128,h,e;function JU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*PU),FT.getRandomValues(h),e=0;else if(e+_>h.length)FT.getRandomValues(h),e=0;e+=_}function d(_=21){JU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=LT[h[u]&63];return x}var XU="org-admin",QU="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:XU,name:QU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function WU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var su={};C(su,{up:()=>jU,down:()=>LU});async function jU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function LU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var _C={};C(_C,{up:()=>FU,down:()=>YU});async function FU(_){}async function YU(_){}var xC={};C(xC,{up:()=>DU,down:()=>HU});async function DU(_){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 HU(_){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 uC={};C(uC,{up:()=>MU,down:()=>RU});import{sql as YT}from"kysely";async function MU(_){await YT`
|
|
831
836
|
UPDATE connections
|
|
832
837
|
SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
|
|
833
838
|
tools = NULL,
|
|
834
839
|
updated_at = CURRENT_TIMESTAMP
|
|
835
840
|
WHERE connection_url = 'https://api.decocms.com/mcp/registry'
|
|
836
841
|
AND app_name = 'deco-registry'
|
|
837
|
-
`.execute(_)}async function
|
|
842
|
+
`.execute(_)}async function RU(_){await YT`
|
|
838
843
|
UPDATE connections
|
|
839
844
|
SET connection_url = 'https://api.decocms.com/mcp/registry',
|
|
840
845
|
updated_at = CURRENT_TIMESTAMP
|
|
841
846
|
WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
|
|
842
847
|
AND app_name = 'deco-registry'
|
|
843
|
-
`.execute(_)}var
|
|
848
|
+
`.execute(_)}var CC={};C(CC,{up:()=>GU,down:()=>OU});import{sql as BU}from"kysely";async function GU(_){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(BU`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 OU(_){await _.schema.dropTable("ai_provider_keys").execute()}var KC={};C(KC,{up:()=>AU,down:()=>fU});import{sql as SU}from"kysely";async function AU(_){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(SU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function fU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var NC={};C(NC,{up:()=>IU,down:()=>yU});import{sql as p}from"kysely";async function IU(_){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 yU(_){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 mC={};C(mC,{up:()=>VU,down:()=>wU});async function VU(_){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 wU(_){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 TC={};C(TC,{up:()=>kU,down:()=>nU});async function kU(_){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 nU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var zC={};C(zC,{up:()=>vU,down:()=>pU});import{sql as DT}from"kysely";async function vU(_){await DT`
|
|
844
849
|
UPDATE connections
|
|
845
850
|
SET title = 'CMS MCP',
|
|
846
851
|
tools = NULL,
|
|
847
852
|
updated_at = CURRENT_TIMESTAMP
|
|
848
853
|
WHERE app_name = '@deco/management-mcp'
|
|
849
|
-
`.execute(_)}async function
|
|
854
|
+
`.execute(_)}async function pU(_){await DT`
|
|
850
855
|
UPDATE connections
|
|
851
856
|
SET title = 'Mesh MCP',
|
|
852
857
|
updated_at = CURRENT_TIMESTAMP
|
|
853
858
|
WHERE app_name = '@deco/management-mcp'
|
|
854
|
-
`.execute(_)}var
|
|
859
|
+
`.execute(_)}var EC={};C(EC,{up:()=>gU,down:()=>qU});import{sql as HT}from"kysely";async function gU(_){await HT`
|
|
855
860
|
UPDATE connections
|
|
856
861
|
SET title = 'Deco CMS',
|
|
857
862
|
tools = NULL,
|
|
858
863
|
updated_at = CURRENT_TIMESTAMP
|
|
859
864
|
WHERE app_name = '@deco/management-mcp'
|
|
860
|
-
`.execute(_)}async function
|
|
865
|
+
`.execute(_)}async function qU(_){await HT`
|
|
861
866
|
UPDATE connections
|
|
862
867
|
SET title = 'CMS MCP',
|
|
863
868
|
updated_at = CURRENT_TIMESTAMP
|
|
864
869
|
WHERE app_name = '@deco/management-mcp'
|
|
865
|
-
`.execute(_)}var
|
|
870
|
+
`.execute(_)}var $C={};C($C,{up:()=>iU,down:()=>cU});async function iU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function cU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var UC={};C(UC,{up:()=>hU,down:()=>tU});async function hU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function tU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var JC={};C(JC,{up:()=>oU,down:()=>aU});import{sql as PC}from"kysely";async function oU(_){await PC`
|
|
866
871
|
UPDATE organization_settings
|
|
867
872
|
SET enabled_plugins = (
|
|
868
873
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -871,7 +876,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
871
876
|
)
|
|
872
877
|
WHERE enabled_plugins IS NOT NULL
|
|
873
878
|
AND enabled_plugins LIKE '%object-storage%'
|
|
874
|
-
`.execute(_),await
|
|
879
|
+
`.execute(_),await PC`
|
|
875
880
|
UPDATE projects
|
|
876
881
|
SET enabled_plugins = (
|
|
877
882
|
SELECT COALESCE(json_agg(elem), '[]'::json)::text
|
|
@@ -880,28 +885,28 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
880
885
|
)
|
|
881
886
|
WHERE enabled_plugins IS NOT NULL
|
|
882
887
|
AND enabled_plugins LIKE '%object-storage%'
|
|
883
|
-
`.execute(_),await
|
|
888
|
+
`.execute(_),await PC`
|
|
884
889
|
DELETE FROM project_plugin_configs
|
|
885
890
|
WHERE plugin_id = 'object-storage'
|
|
886
|
-
`.execute(_)}async function
|
|
891
|
+
`.execute(_)}async function aU(_){}var XC={};C(XC,{up:()=>rU,down:()=>lU});import{sql as MT}from"kysely";async function rU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await MT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function lU(_){await MT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ZC={};C(ZC,{up:()=>eU,down:()=>dU});import{sql as QC}from"kysely";async function eU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await QC`
|
|
887
892
|
ALTER TABLE connections
|
|
888
893
|
ADD CONSTRAINT chk_connections_subtype
|
|
889
894
|
CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
|
|
890
|
-
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await
|
|
895
|
+
`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await QC`
|
|
891
896
|
UPDATE connections
|
|
892
897
|
SET subtype = 'agent'
|
|
893
898
|
WHERE connection_type = 'VIRTUAL'
|
|
894
|
-
`.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}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata: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
|
|
899
|
+
`.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}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata: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 dU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await QC`
|
|
895
900
|
ALTER TABLE connections
|
|
896
901
|
DROP CONSTRAINT IF EXISTS chk_connections_subtype
|
|
897
|
-
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var
|
|
902
|
+
`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var WC={};C(WC,{up:()=>sU,down:()=>_P});import{sql as bU}from"kysely";async function sU(_){await bU`
|
|
898
903
|
DELETE FROM connections
|
|
899
904
|
WHERE connection_type = 'VIRTUAL'
|
|
900
905
|
AND subtype = 'project'
|
|
901
906
|
AND metadata::json->>'migrated_project_slug' = 'org-admin'
|
|
902
|
-
`.execute(_)}async function
|
|
907
|
+
`.execute(_)}async function _P(_){}var jC={};C(jC,{up:()=>uP,down:()=>CP});import{sql as xP}from"kysely";async function uP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await xP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function CP(_){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 FC={};C(FC,{up:()=>KP,down:()=>NP});import{sql as LC}from"kysely";async function KP(_){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(LC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(LC`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(LC`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 NP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var YC={};C(YC,{up:()=>mP,down:()=>TP});async function mP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function TP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var DC={};C(DC,{up:()=>zP,down:()=>EP});async function zP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function EP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var MC={};C(MC,{up:()=>UP,down:()=>PP});import{sql as RT}from"kysely";function HC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function $P(_){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 HC(N)}catch{return HC(_.connection_url)}if(_.title)return HC(_.title);return _.id}async function UP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await RT`
|
|
903
908
|
SELECT id, app_name, connection_url, title FROM connections
|
|
904
|
-
`.execute(_);for(let u of x.rows){let N
|
|
909
|
+
`.execute(_);for(let u of x.rows){let N=$P(u);await RT`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 PP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var RC={};C(RC,{up:()=>JP,down:()=>XP});import{sql as X_}from"kysely";async function JP(_){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 XP(_){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 BC={};C(BC,{up:()=>QP,down:()=>ZP});async function QP(_){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 GC={};C(GC,{up:()=>WP,down:()=>jP});import{sql as p_}from"kysely";async function WP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
|
|
905
910
|
UPDATE threads
|
|
906
911
|
SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
|
|
907
912
|
WHERE agent_ids IS NOT NULL
|
|
@@ -911,14 +916,14 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
911
916
|
`.execute(_),await p_`
|
|
912
917
|
CREATE INDEX idx_threads_virtual_mcp_id
|
|
913
918
|
ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
|
|
914
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function
|
|
919
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function jP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
|
|
915
920
|
UPDATE threads
|
|
916
921
|
SET agent_ids = CASE
|
|
917
922
|
WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
|
|
918
923
|
THEN jsonb_build_array(virtual_mcp_id)::text
|
|
919
924
|
ELSE '[]'
|
|
920
925
|
END
|
|
921
|
-
`.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var
|
|
926
|
+
`.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var OC={};C(OC,{up:()=>LP,down:()=>FP});async function LP(_){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 FP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var SC={};C(SC,{up:()=>YP,down:()=>DP});async function YP(_){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 DP(_){await _.schema.dropTable("kv").execute()}var AC={};C(AC,{up:()=>HP,down:()=>MP});async function HP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function MP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var fC={};C(fC,{up:()=>RP,down:()=>BP});async function RP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function BP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var IC={};C(IC,{up:()=>GP,down:()=>OP});import{sql as S}from"kysely";async function GP(_){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 OP(_){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 yC={};C(yC,{up:()=>SP,down:()=>AP});import{sql as b}from"kysely";async function SP(_){await b`
|
|
922
927
|
ALTER TABLE event_subscriptions
|
|
923
928
|
ALTER COLUMN enabled DROP DEFAULT
|
|
924
929
|
`.execute(_),await b`
|
|
@@ -928,7 +933,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
928
933
|
`.execute(_),await b`
|
|
929
934
|
ALTER TABLE event_subscriptions
|
|
930
935
|
ALTER COLUMN enabled SET DEFAULT true
|
|
931
|
-
`.execute(_)}async function
|
|
936
|
+
`.execute(_)}async function AP(_){await b`
|
|
932
937
|
ALTER TABLE event_subscriptions
|
|
933
938
|
ALTER COLUMN enabled DROP DEFAULT
|
|
934
939
|
`.execute(_),await b`
|
|
@@ -938,7 +943,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
938
943
|
`.execute(_),await b`
|
|
939
944
|
ALTER TABLE event_subscriptions
|
|
940
945
|
ALTER COLUMN enabled SET DEFAULT 1
|
|
941
|
-
`.execute(_)}var
|
|
946
|
+
`.execute(_)}var VC={};C(VC,{up:()=>fP,down:()=>IP});import{sql as BT}from"kysely";async function fP(_){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(BT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function IP(_){await _.schema.dropTable("brand_context").execute()}var wC={};C(wC,{up:()=>yP,down:()=>VP});import{sql as GT}from"kysely";async function yP(_){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(GT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute()}async function VP(_){await _.schema.dropTable("organization_domains").execute()}var kC={};C(kC,{up:()=>vP,down:()=>pP});import{sql as OT}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),wP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function kP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>g_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(g_.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(g_.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(g_.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 nP(_){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=wP[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 vP(_){let x=await OT`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=kP($);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=nP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await OT`
|
|
942
947
|
UPDATE brand_context
|
|
943
948
|
SET
|
|
944
949
|
colors = ${T},
|
|
@@ -946,20 +951,20 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
946
951
|
metadata = ${$},
|
|
947
952
|
updated_at = NOW()
|
|
948
953
|
WHERE id = ${u.id}
|
|
949
|
-
`.execute(_)}}}async function
|
|
954
|
+
`.execute(_)}}}async function pP(_){}var nC={};C(nC,{up:()=>qP,down:()=>iP});import{sql as gP}from"kysely";async function qP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(gP`'{}'::jsonb`)).execute()}async function iP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var vC={};C(vC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function hP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var pC={};C(pC,{up:()=>tP,down:()=>oP});async function tP(_){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 oP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var gC={};C(gC,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function rP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var qC={};C(qC,{up:()=>lP,down:()=>eP});async function lP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function eP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var iC={};C(iC,{up:()=>dP,down:()=>bP});async function dP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function bP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var cC={};C(cC,{up:()=>_J,down:()=>xJ});import{sql as ST}from"kysely";var sP=["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 _J(_){let x=await ST`
|
|
950
955
|
SELECT id, permission FROM "organizationRole"
|
|
951
|
-
`.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,...
|
|
956
|
+
`.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,...sP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await ST`
|
|
952
957
|
UPDATE "organizationRole"
|
|
953
958
|
SET permission = ${z}
|
|
954
959
|
WHERE id = ${u.id}
|
|
955
|
-
`.execute(_)}}async function
|
|
960
|
+
`.execute(_)}}async function xJ(_){}var hC={};C(hC,{up:()=>uJ,down:()=>CJ});async function uJ(_){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 CJ(_){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 tC={};C(tC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function NJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var oC={};C(oC,{up:()=>mJ,down:()=>TJ});import{sql as Q_}from"kysely";async function mJ(_){await Q_`
|
|
956
961
|
UPDATE automations
|
|
957
962
|
SET virtual_mcp_id = (agent::json ->> 'id')
|
|
958
963
|
WHERE virtual_mcp_id IS NULL
|
|
959
964
|
`.execute(_),await Q_`
|
|
960
965
|
ALTER TABLE automations
|
|
961
966
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
962
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function
|
|
967
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function TJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
|
|
963
968
|
UPDATE automations
|
|
964
969
|
SET agent = json_build_object('id', virtual_mcp_id)::text
|
|
965
970
|
`.execute(_),await Q_`
|
|
@@ -968,7 +973,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
968
973
|
`.execute(_),await Q_`
|
|
969
974
|
ALTER TABLE automations
|
|
970
975
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
971
|
-
`.execute(_)}var
|
|
976
|
+
`.execute(_)}var rC={};C(rC,{up:()=>UJ,reshapeSimpleMode:()=>AT,inferAutomationTier:()=>fT,down:()=>PJ,__testing:()=>$J});var zJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},EJ=["fast","smart","thinking","image","web_research"];function aC(_){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 EJ.some((N)=>(N in u))}function AT(_){if(aC(_))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 zJ;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 fT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function IT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var $J={isAlreadyReshapedSimpleMode:aC,isAlreadyReshapedAutomationModels:IT};async function UJ(_){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(aC(K))continue;let m=AT(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(IT(K))continue;let m=fT(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 PJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var lC={};C(lC,{up:()=>JJ,down:()=>XJ});import{sql as n}from"kysely";async function JJ(_){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`
|
|
972
977
|
ALTER TABLE automations
|
|
973
978
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
974
979
|
`.execute(_),await n`
|
|
@@ -990,19 +995,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
990
995
|
AND tool_input IS NOT NULL
|
|
991
996
|
)
|
|
992
997
|
)
|
|
993
|
-
`.execute(_)}async function
|
|
998
|
+
`.execute(_)}async function XJ(_){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`
|
|
994
999
|
ALTER TABLE automations
|
|
995
1000
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
996
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var
|
|
1001
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var eC={};C(eC,{up:()=>ZJ,down:()=>WJ});import{sql as yT}from"kysely";var QJ=new Set(["host","docker","agent-sandbox"]);async function ZJ(_){let x=await yT`
|
|
997
1002
|
SELECT id, metadata FROM "connections"
|
|
998
1003
|
WHERE connection_type = 'VIRTUAL'
|
|
999
1004
|
AND metadata IS NOT NULL
|
|
1000
1005
|
AND metadata LIKE '%vmMap%'
|
|
1001
|
-
`.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[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!
|
|
1006
|
+
`.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[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!QJ.has(y)){m=!0;continue}P[j]=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 yT`
|
|
1002
1007
|
UPDATE "connections"
|
|
1003
1008
|
SET metadata = ${z}
|
|
1004
1009
|
WHERE id = ${u.id}
|
|
1005
|
-
`.execute(_)}}async function
|
|
1010
|
+
`.execute(_)}}async function WJ(_){}var dC={};C(dC,{up:()=>jJ,down:()=>LJ});import{sql as Z_}from"kysely";async function jJ(_){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_`
|
|
1006
1011
|
CREATE INDEX async_research_jobs_active_idx
|
|
1007
1012
|
ON async_research_jobs (status, last_polled_at)
|
|
1008
1013
|
WHERE status IN ('pending', 'polling')
|
|
@@ -1010,7 +1015,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1010
1015
|
ALTER TABLE async_research_jobs
|
|
1011
1016
|
ADD CONSTRAINT chk_async_research_jobs_status
|
|
1012
1017
|
CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
|
|
1013
|
-
`.execute(_)}async function
|
|
1018
|
+
`.execute(_)}async function LJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var bC={};C(bC,{up:()=>FJ,down:()=>YJ});async function FJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function YJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var sC={};C(sC,{up:()=>DJ,down:()=>HJ});import{sql as s}from"kysely";async function DJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
|
|
1014
1019
|
ALTER TABLE secrets
|
|
1015
1020
|
ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
|
|
1016
1021
|
`.execute(_),await s`
|
|
@@ -1027,7 +1032,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1027
1032
|
CREATE UNIQUE INDEX idx_secrets_org_name
|
|
1028
1033
|
ON secrets (organization_id, lower(name))
|
|
1029
1034
|
WHERE scope = 'organization'
|
|
1030
|
-
`.execute(_)}async function
|
|
1035
|
+
`.execute(_)}async function HJ(_){await _.schema.dropTable("secrets").execute()}var _K={};C(_K,{up:()=>MJ,down:()=>RJ});async function MJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function RJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var xK={};C(xK,{up:()=>GJ,down:()=>OJ});import{sql as BJ}from"kysely";async function GJ(_){await BJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function OJ(_){}var uK={};C(uK,{up:()=>SJ,down:()=>AJ});import{sql as q_}from"kysely";async function SJ(_){await q_`
|
|
1031
1036
|
ALTER TABLE sandbox_runner_state
|
|
1032
1037
|
RENAME COLUMN runner_kind TO sandbox_provider_kind
|
|
1033
1038
|
`.execute(_),await q_`
|
|
@@ -1065,7 +1070,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1065
1070
|
EXCEPTION WHEN undefined_table THEN
|
|
1066
1071
|
NULL;
|
|
1067
1072
|
END; $$
|
|
1068
|
-
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function
|
|
1073
|
+
`.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function AJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
|
|
1069
1074
|
ALTER TABLE sandbox_runner_state
|
|
1070
1075
|
RENAME COLUMN sandbox_provider_kind TO runner_kind
|
|
1071
1076
|
`.execute(_),await q_`
|
|
@@ -1103,7 +1108,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1103
1108
|
EXCEPTION WHEN undefined_table THEN
|
|
1104
1109
|
NULL;
|
|
1105
1110
|
END; $$
|
|
1106
|
-
`.execute(_)}var
|
|
1111
|
+
`.execute(_)}var CK={};C(CK,{up:()=>fJ,down:()=>IJ});import{sql as VT}from"kysely";async function fJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await VT`
|
|
1107
1112
|
DO $$ BEGIN
|
|
1108
1113
|
UPDATE virtualmcps v
|
|
1109
1114
|
SET metadata = jsonb_set(
|
|
@@ -1142,7 +1147,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1142
1147
|
-- PGlite migration order: virtualmcps not yet created. Safe no-op.
|
|
1143
1148
|
NULL;
|
|
1144
1149
|
END; $$
|
|
1145
|
-
`.execute(_)}async function
|
|
1150
|
+
`.execute(_)}async function IJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await VT`
|
|
1146
1151
|
DO $$ BEGIN
|
|
1147
1152
|
UPDATE virtualmcps v
|
|
1148
1153
|
SET metadata = jsonb_set(
|
|
@@ -1175,7 +1180,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1175
1180
|
EXCEPTION WHEN undefined_table THEN
|
|
1176
1181
|
NULL;
|
|
1177
1182
|
END; $$
|
|
1178
|
-
`.execute(_)}var
|
|
1183
|
+
`.execute(_)}var KK={};C(KK,{up:()=>yJ,down:()=>VJ});import{sql as wT}from"kysely";async function yJ(_){await wT`
|
|
1179
1184
|
UPDATE connections c
|
|
1180
1185
|
SET metadata = (
|
|
1181
1186
|
jsonb_set(
|
|
@@ -1219,7 +1224,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1219
1224
|
JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
|
|
1220
1225
|
WHERE entry ? 'vmId'
|
|
1221
1226
|
);
|
|
1222
|
-
`.execute(_),await
|
|
1227
|
+
`.execute(_),await wT`
|
|
1223
1228
|
UPDATE connections c
|
|
1224
1229
|
SET metadata = (
|
|
1225
1230
|
jsonb_set(
|
|
@@ -1273,10 +1278,10 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1273
1278
|
JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
|
|
1274
1279
|
WHERE inner_entry ? 'runnerKind'
|
|
1275
1280
|
);
|
|
1276
|
-
`.execute(_)}async function
|
|
1281
|
+
`.execute(_)}async function VJ(_){}var NK={};C(NK,{up:()=>kJ,down:()=>nJ});import{sql as wJ}from"kysely";async function kJ(_){await wJ`
|
|
1277
1282
|
DELETE FROM ai_provider_keys
|
|
1278
1283
|
WHERE provider_id IN ('claude-code', 'codex')
|
|
1279
|
-
`.execute(_)}async function
|
|
1284
|
+
`.execute(_)}async function nJ(_){}var mK={};C(mK,{up:()=>vJ,down:()=>pJ});import{sql as i_}from"kysely";async function vJ(_){await i_`
|
|
1280
1285
|
UPDATE sandbox_runner_state
|
|
1281
1286
|
SET sandbox_provider_kind = 'desktop'
|
|
1282
1287
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
@@ -1374,13 +1379,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1374
1379
|
UPDATE threads
|
|
1375
1380
|
SET sandbox_provider_kind = 'desktop'
|
|
1376
1381
|
WHERE sandbox_provider_kind = 'remote-user'
|
|
1377
|
-
`.execute(_)}async function
|
|
1382
|
+
`.execute(_)}async function pJ(_){}var TK={};C(TK,{up:()=>gJ,down:()=>qJ});import{sql as W_}from"kysely";async function gJ(_){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 qJ(_){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 zK={};C(zK,{up:()=>iJ,down:()=>cJ});import{sql as kT}from"kysely";async function iJ(_){await kT`
|
|
1378
1383
|
ALTER TABLE organization_domains
|
|
1379
1384
|
DROP CONSTRAINT IF EXISTS organization_domains_domain_key
|
|
1380
|
-
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function
|
|
1385
|
+
`.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function cJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await kT`
|
|
1381
1386
|
ALTER TABLE organization_domains
|
|
1382
1387
|
ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
|
|
1383
|
-
`.execute(_)}var
|
|
1388
|
+
`.execute(_)}var EK={};C(EK,{up:()=>hJ,down:()=>tJ});import{sql as c_}from"kysely";async function hJ(_){await c_`
|
|
1384
1389
|
UPDATE sandbox_runner_state
|
|
1385
1390
|
SET sandbox_provider_kind = CASE sandbox_provider_kind
|
|
1386
1391
|
WHEN 'docker' THEN 'local-docker'
|
|
@@ -1469,19 +1474,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1469
1474
|
WHERE c.connection_type = 'VIRTUAL'
|
|
1470
1475
|
AND c.metadata IS NOT NULL
|
|
1471
1476
|
AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
|
|
1472
|
-
`.execute(_)}async function
|
|
1477
|
+
`.execute(_)}async function tJ(_){}var $K={};C($K,{up:()=>aJ,down:()=>rJ});import{sql as nT}from"kysely";var oJ=["GLOBAL_SEARCH"];async function aJ(_){let x=await nT`
|
|
1473
1478
|
SELECT id, permission FROM "organizationRole"
|
|
1474
|
-
`.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,...
|
|
1479
|
+
`.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,...oJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await nT`
|
|
1475
1480
|
UPDATE "organizationRole"
|
|
1476
1481
|
SET permission = ${z}
|
|
1477
1482
|
WHERE id = ${u.id}
|
|
1478
|
-
`.execute(_)}}async function
|
|
1483
|
+
`.execute(_)}}async function rJ(_){}var PK={};C(PK,{up:()=>lJ,down:()=>eJ});import{sql as UK}from"kysely";async function lJ(_){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(UK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await UK`
|
|
1479
1484
|
CREATE UNIQUE INDEX idx_org_file_configs_org_name
|
|
1480
1485
|
ON org_file_configs (organization_id, lower(name))
|
|
1481
|
-
`.execute(_)}async function
|
|
1486
|
+
`.execute(_)}async function eJ(_){await _.schema.dropTable("org_file_configs").execute()}var JK={};C(JK,{up:()=>dJ,down:()=>bJ});import{sql as v}from"kysely";async function dJ(_){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`
|
|
1482
1487
|
ALTER TABLE automations
|
|
1483
1488
|
ALTER COLUMN virtual_mcp_id SET NOT NULL
|
|
1484
|
-
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function
|
|
1489
|
+
`.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function bJ(_){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`
|
|
1485
1490
|
ALTER TABLE automations
|
|
1486
1491
|
ALTER COLUMN virtual_mcp_id DROP NOT NULL
|
|
1487
1492
|
`.execute(_),await v`
|
|
@@ -1503,83 +1508,83 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1503
1508
|
AND tool_input IS NOT NULL
|
|
1504
1509
|
)
|
|
1505
1510
|
)
|
|
1506
|
-
`.execute(_)}var
|
|
1511
|
+
`.execute(_)}var XK={};C(XK,{up:()=>sJ,down:()=>_X});async function sJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function _X(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ZK={};C(ZK,{up:()=>xX,down:()=>uX});import{sql as QK}from"kysely";var h_="local-docker";async function xX(_){await QK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await QK`
|
|
1507
1512
|
SELECT id, metadata FROM "connections"
|
|
1508
1513
|
WHERE connection_type = 'VIRTUAL'
|
|
1509
1514
|
AND metadata IS NOT NULL
|
|
1510
1515
|
AND metadata LIKE ${"%"+h_+"%"}
|
|
1511
|
-
`.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[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=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
|
|
1516
|
+
`.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[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=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 QK`
|
|
1512
1517
|
UPDATE "connections"
|
|
1513
1518
|
SET metadata = ${z}
|
|
1514
1519
|
WHERE id = ${u.id}
|
|
1515
|
-
`.execute(_)}}async function
|
|
1520
|
+
`.execute(_)}}async function uX(_){}var WK={};C(WK,{up:()=>CX,down:()=>KX});import{sql as t_}from"kysely";async function CX(_){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 t_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await t_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await t_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await t_`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 KX(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var jK={};C(jK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function mX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var LK={};C(LK,{up:()=>TX,down:()=>zX});async function TX(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function zX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var FK={};C(FK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function $X(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var YK={};C(YK,{up:()=>UX,down:()=>PX});async function UX(_){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 PX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var DK={};C(DK,{up:()=>JX,down:()=>XX});async function JX(_){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 XX(_){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 MK={};C(MK,{up:()=>ZX,down:()=>WX});import{sql as k}from"kysely";var A="cluster",f="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function HK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function o_(_){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!==A&&_.sandboxProviderKind!==f&&_.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 QX(_,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[j,Q]of Object.entries($)){if(j===x){if(N=!0,!(u in $))P[u]=HK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=HK(Q,x,u);continue}let y=HK(Q,x,u);if(y!==Q)N=!0;if(j===u&&j in P&&o_(P[j])&&!o_(y))continue;P[j]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function vT(_,x,u){let N=await k`
|
|
1516
1521
|
SELECT id, metadata FROM connections
|
|
1517
1522
|
WHERE connection_type = 'VIRTUAL'
|
|
1518
1523
|
AND metadata IS NOT NULL
|
|
1519
1524
|
AND metadata LIKE ${"%"+x+"%"}
|
|
1520
|
-
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=
|
|
1525
|
+
`.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=QX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
|
|
1521
1526
|
UPDATE connections
|
|
1522
1527
|
SET metadata = ${JSON.stringify(m)}
|
|
1523
1528
|
WHERE id = ${K.id}
|
|
1524
|
-
`.execute(_)}}async function
|
|
1529
|
+
`.execute(_)}}async function ZX(_){await k`
|
|
1525
1530
|
UPDATE threads
|
|
1526
|
-
SET sandbox_provider_kind = ${
|
|
1527
|
-
WHERE sandbox_provider_kind = ${
|
|
1531
|
+
SET sandbox_provider_kind = ${f}
|
|
1532
|
+
WHERE sandbox_provider_kind = ${A}
|
|
1528
1533
|
`.execute(_),await k`
|
|
1529
1534
|
UPDATE sandbox_runner_state canonical
|
|
1530
1535
|
SET handle = legacy.handle,
|
|
1531
1536
|
state = legacy.state,
|
|
1532
1537
|
updated_at = legacy.updated_at
|
|
1533
1538
|
FROM sandbox_runner_state legacy
|
|
1534
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1535
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1539
|
+
WHERE canonical.sandbox_provider_kind = ${f}
|
|
1540
|
+
AND legacy.sandbox_provider_kind = ${A}
|
|
1536
1541
|
AND canonical.user_id = legacy.user_id
|
|
1537
1542
|
AND canonical.project_ref = legacy.project_ref
|
|
1538
1543
|
AND legacy.updated_at > canonical.updated_at
|
|
1539
1544
|
`.execute(_),await k`
|
|
1540
1545
|
DELETE FROM sandbox_runner_state legacy
|
|
1541
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1546
|
+
WHERE legacy.sandbox_provider_kind = ${A}
|
|
1542
1547
|
AND EXISTS (
|
|
1543
1548
|
SELECT 1
|
|
1544
1549
|
FROM sandbox_runner_state canonical
|
|
1545
1550
|
WHERE canonical.user_id = legacy.user_id
|
|
1546
1551
|
AND canonical.project_ref = legacy.project_ref
|
|
1547
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1552
|
+
AND canonical.sandbox_provider_kind = ${f}
|
|
1548
1553
|
)
|
|
1549
1554
|
`.execute(_),await k`
|
|
1550
1555
|
UPDATE sandbox_runner_state
|
|
1551
|
-
SET sandbox_provider_kind = ${A}
|
|
1552
|
-
WHERE sandbox_provider_kind = ${f}
|
|
1553
|
-
`.execute(_),await kT(_,f,A)}async function JX(_){await k`
|
|
1554
|
-
UPDATE threads
|
|
1555
1556
|
SET sandbox_provider_kind = ${f}
|
|
1556
1557
|
WHERE sandbox_provider_kind = ${A}
|
|
1558
|
+
`.execute(_),await vT(_,A,f)}async function WX(_){await k`
|
|
1559
|
+
UPDATE threads
|
|
1560
|
+
SET sandbox_provider_kind = ${A}
|
|
1561
|
+
WHERE sandbox_provider_kind = ${f}
|
|
1557
1562
|
`.execute(_),await k`
|
|
1558
1563
|
UPDATE sandbox_runner_state legacy
|
|
1559
1564
|
SET handle = canonical.handle,
|
|
1560
1565
|
state = canonical.state,
|
|
1561
1566
|
updated_at = canonical.updated_at
|
|
1562
1567
|
FROM sandbox_runner_state canonical
|
|
1563
|
-
WHERE legacy.sandbox_provider_kind = ${
|
|
1564
|
-
AND canonical.sandbox_provider_kind = ${
|
|
1568
|
+
WHERE legacy.sandbox_provider_kind = ${A}
|
|
1569
|
+
AND canonical.sandbox_provider_kind = ${f}
|
|
1565
1570
|
AND legacy.user_id = canonical.user_id
|
|
1566
1571
|
AND legacy.project_ref = canonical.project_ref
|
|
1567
1572
|
AND canonical.updated_at > legacy.updated_at
|
|
1568
1573
|
`.execute(_),await k`
|
|
1569
1574
|
DELETE FROM sandbox_runner_state canonical
|
|
1570
|
-
WHERE canonical.sandbox_provider_kind = ${
|
|
1575
|
+
WHERE canonical.sandbox_provider_kind = ${f}
|
|
1571
1576
|
AND EXISTS (
|
|
1572
1577
|
SELECT 1
|
|
1573
1578
|
FROM sandbox_runner_state legacy
|
|
1574
1579
|
WHERE legacy.user_id = canonical.user_id
|
|
1575
1580
|
AND legacy.project_ref = canonical.project_ref
|
|
1576
|
-
AND legacy.sandbox_provider_kind = ${
|
|
1581
|
+
AND legacy.sandbox_provider_kind = ${A}
|
|
1577
1582
|
)
|
|
1578
1583
|
`.execute(_),await k`
|
|
1579
1584
|
UPDATE sandbox_runner_state
|
|
1580
|
-
SET sandbox_provider_kind = ${
|
|
1581
|
-
WHERE sandbox_provider_kind = ${
|
|
1582
|
-
`.execute(_),await
|
|
1585
|
+
SET sandbox_provider_kind = ${A}
|
|
1586
|
+
WHERE sandbox_provider_kind = ${f}
|
|
1587
|
+
`.execute(_),await vT(_,f,A)}var RK={};C(RK,{up:()=>jX,down:()=>LX});import{sql as g}from"kysely";async function jX(_){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`
|
|
1583
1588
|
CREATE INDEX idx_org_fs_entry_parent
|
|
1584
1589
|
ON org_fs_entry (organization_id, volume, parent)
|
|
1585
1590
|
WHERE deleted_at IS NULL
|
|
@@ -1587,7 +1592,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1587
1592
|
CREATE INDEX idx_org_fs_entry_usage
|
|
1588
1593
|
ON org_fs_entry (organization_id, volume, size)
|
|
1589
1594
|
WHERE kind = 'file' AND deleted_at IS NULL
|
|
1590
|
-
`.execute(_)}async function
|
|
1595
|
+
`.execute(_)}async function LX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var BK={};C(BK,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function YX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var GK={};C(GK,{up:()=>DX,down:()=>HX});import{sql as pT}from"kysely";async function DX(_){await pT`
|
|
1591
1596
|
INSERT INTO "organization" (id, name, slug, "createdAt")
|
|
1592
1597
|
SELECT
|
|
1593
1598
|
'org_orgfs_public_skills',
|
|
@@ -1601,13 +1606,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1601
1606
|
END,
|
|
1602
1607
|
now()
|
|
1603
1608
|
ON CONFLICT (id) DO NOTHING
|
|
1604
|
-
`.execute(_)}async function
|
|
1609
|
+
`.execute(_)}async function HX(_){await pT`
|
|
1605
1610
|
DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
|
|
1606
|
-
`.execute(_)}var
|
|
1611
|
+
`.execute(_)}var OK={};C(OK,{up:()=>MX,down:()=>RX});async function MX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function RX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var SK={};C(SK,{up:()=>BX,down:()=>GX});import{sql as gT}from"kysely";async function BX(_){await gT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function GX(_){await gT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var AK={};C(AK,{up:()=>SX,down:()=>AX});import{sql as OX}from"kysely";async function SX(_){await OX`
|
|
1607
1612
|
UPDATE downstream_tokens
|
|
1608
1613
|
SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
|
|
1609
1614
|
WHERE "expiresAt" IS NULL
|
|
1610
|
-
`.execute(_)}async function
|
|
1615
|
+
`.execute(_)}async function AX(_){}var fK={};C(fK,{up:()=>fX,down:()=>IX});async function fX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function IX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var IK={};C(IK,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function VX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var yK={};C(yK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function kX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var VK={};C(VK,{up:()=>nX,down:()=>vX});async function nX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function vX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var wK={};C(wK,{up:()=>pX,down:()=>gX});async function pX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function gX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var kK={};C(kK,{up:()=>qX,down:()=>iX});import{sql as qT}from"kysely";async function qX(_){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(qT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function iX(_){await _.schema.dropTable("org_sites").execute()}var nK={};C(nK,{up:()=>cX,down:()=>hX});async function cX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function hX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var vK={};C(vK,{up:()=>tX,down:()=>oX});import{sql as R}from"kysely";async function tX(_){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`
|
|
1611
1616
|
UPDATE organization_domains
|
|
1612
1617
|
SET
|
|
1613
1618
|
id = gen_random_uuid()::text,
|
|
@@ -1616,18 +1621,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1616
1621
|
verification_method = 'email',
|
|
1617
1622
|
verified_at = created_at
|
|
1618
1623
|
WHERE id IS NULL
|
|
1619
|
-
`.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
|
|
1624
|
+
`.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 oX(_){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`
|
|
1620
1625
|
UPDATE organization_domains
|
|
1621
1626
|
SET auto_join_enabled = (join_mode = 'auto')
|
|
1622
|
-
`.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
|
|
1627
|
+
`.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 pK={};C(pK,{up:()=>aX,down:()=>rX});import{sql as a_}from"kysely";async function aX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(a_`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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await a_`
|
|
1623
1628
|
CREATE UNIQUE INDEX organization_join_requests_pending_unique
|
|
1624
1629
|
ON organization_join_requests (organization_id, user_id)
|
|
1625
1630
|
WHERE status = 'pending'
|
|
1626
|
-
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function
|
|
1631
|
+
`.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function rX(_){await _.schema.dropTable("organization_join_requests").execute()}var gK={};C(gK,{up:()=>lX,down:()=>eX});async function lX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function eX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var qK={};C(qK,{up:()=>dX,down:()=>bX});async function dX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function bX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var hK={};C(hK,{up:()=>xQ,splitWebResearchTier:()=>cK,down:()=>uQ,__testing:()=>_Q});function sX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function iK(_){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 cK(_){if(!_||iK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(sX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var _Q={splitWebResearchTier:cK,isAlreadySplit:iK};async function xQ(_){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(iK(N))continue;let K=cK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function uQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var tK={};C(tK,{up:()=>CQ,down:()=>KQ});import{sql as j_}from"kysely";async function CQ(_){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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
|
|
1627
1632
|
CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
|
|
1628
1633
|
ON connection_workload_tokens (organization_id, subject_connection_id, name)
|
|
1629
1634
|
WHERE revoked_at IS NULL
|
|
1630
|
-
`.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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`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
|
|
1635
|
+
`.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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`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 KQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var oK={};C(oK,{up:()=>NQ,down:()=>mQ});async function NQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function mQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var aK={};C(aK,{up:()=>TQ,down:()=>zQ});import{sql as t}from"kysely";async function TQ(_){await t`
|
|
1631
1636
|
CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
|
|
1632
1637
|
RETURNS jsonb AS $fn$
|
|
1633
1638
|
BEGIN
|
|
@@ -1686,7 +1691,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1686
1691
|
BEFORE INSERT ON connection_aggregations
|
|
1687
1692
|
FOR EACH ROW
|
|
1688
1693
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1689
|
-
`.execute(_)}async function
|
|
1694
|
+
`.execute(_)}async function zQ(_){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 lK={};C(lK,{up:()=>EQ,down:()=>$Q});import{sql as rK}from"kysely";async function EQ(_){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(rK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(rK`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(rK`false`)).execute()}async function $Q(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var eK={};C(eK,{up:()=>UQ,down:()=>PQ});async function UQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function PQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var dK={};C(dK,{up:()=>JQ,down:()=>XQ});async function JQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function XQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var bK={};C(bK,{up:()=>QQ,down:()=>ZQ});async function QQ(_){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 sK={};C(sK,{up:()=>jQ,down:()=>LQ});import{sql as WQ}from"kysely";async function jQ(_){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(WQ`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 LQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var _N={};C(_N,{up:()=>FQ,down:()=>YQ});async function FQ(_){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 YQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var xN={};C(xN,{up:()=>HQ,down:()=>MQ});import{sql as DQ}from"kysely";async function HQ(_){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(DQ`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 MQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var uN={};C(uN,{up:()=>BQ,down:()=>GQ});import{sql as RQ}from"kysely";async function BQ(_){await RQ`
|
|
1690
1695
|
DELETE FROM member
|
|
1691
1696
|
WHERE id IN (
|
|
1692
1697
|
SELECT id FROM (
|
|
@@ -1705,38 +1710,38 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1705
1710
|
) ranked
|
|
1706
1711
|
WHERE ranked.rn > 1
|
|
1707
1712
|
)
|
|
1708
|
-
`.execute(_)}async function
|
|
1713
|
+
`.execute(_)}async function GQ(_){}var CN={};C(CN,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function SQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var KN={};C(KN,{up:()=>AQ,down:()=>fQ});async function AQ(_){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 fQ(_){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 NN={};C(NN,{up:()=>yQ,down:()=>VQ});import{sql as IQ}from"kysely";async function yQ(_){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(IQ`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 VQ(_){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 mN={};C(mN,{up:()=>kQ,down:()=>nQ});import{sql as wQ}from"kysely";async function kQ(_){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(wQ`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 nQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var TN={};C(TN,{up:()=>vQ,down:()=>pQ});import{sql as r_}from"kysely";async function vQ(_){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(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",r_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",r_`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 pQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var zN={};C(zN,{up:()=>gQ,down:()=>qQ});import{sql as l_}from"kysely";async function gQ(_){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(l_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(l_`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(l_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await l_`
|
|
1709
1714
|
insert into organization_billing (organization_id, legacy)
|
|
1710
1715
|
select id, true from organization
|
|
1711
1716
|
on conflict (organization_id) do nothing
|
|
1712
|
-
`.execute(_)}async function
|
|
1717
|
+
`.execute(_)}async function qQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var EN={};C(EN,{up:()=>iQ,down:()=>cQ});import{sql as iT}from"kysely";async function iQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(iT`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(iT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function cQ(_){await _.schema.dropTable("seat_change_log").execute()}var $N={};C($N,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function tQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var UN={};C(UN,{up:()=>oQ,down:()=>aQ});import{sql as cT}from"kysely";async function oQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await cT`
|
|
1713
1718
|
create unique index organization_billing_stripe_subscription_id_uq
|
|
1714
1719
|
on organization_billing (stripe_subscription_id)
|
|
1715
1720
|
where stripe_subscription_id is not null
|
|
1716
|
-
`.execute(_)}async function
|
|
1721
|
+
`.execute(_)}async function aQ(_){await cT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var PN={};C(PN,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function lQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var JN={};C(JN,{up:()=>eQ,down:()=>dQ});import{sql as hT}from"kysely";async function eQ(_){await hT`
|
|
1717
1722
|
create index idx_org_billing_benefits_pending
|
|
1718
1723
|
on organization_billing (updated_at)
|
|
1719
1724
|
where benefits_reference_id is not null
|
|
1720
|
-
`.execute(_)}async function
|
|
1725
|
+
`.execute(_)}async function dQ(_){await hT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var XN={};C(XN,{up:()=>bQ,down:()=>sQ});import{sql as tT}from"kysely";async function bQ(_){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(tT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tT`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 sQ(_){await _.schema.dropTable("user_model_preferences").execute()}var QN={};C(QN,{up:()=>_Z,down:()=>xZ});async function _Z(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function xZ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var ZN={};C(ZN,{up:()=>uZ,down:()=>CZ});async function uZ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function CZ(_){}var WN={};C(WN,{up:()=>KZ,down:()=>NZ});import{sql as oT}from"kysely";async function KZ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await oT`
|
|
1721
1726
|
UPDATE organization_settings
|
|
1722
1727
|
SET flags = jsonb_build_object('reports_only', reports_only)
|
|
1723
1728
|
WHERE reports_only IS NOT NULL
|
|
1724
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function
|
|
1729
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function NZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await oT`
|
|
1725
1730
|
UPDATE organization_settings
|
|
1726
1731
|
SET reports_only = (flags ->> 'reports_only')::boolean
|
|
1727
1732
|
WHERE flags ? 'reports_only'
|
|
1728
|
-
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var
|
|
1733
|
+
`.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var jN={};C(jN,{up:()=>TZ,down:()=>zZ});import{sql as mZ}from"kysely";async function TZ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await mZ`
|
|
1729
1734
|
update task_board_items
|
|
1730
1735
|
set sort_order = -extract(epoch from created_at)
|
|
1731
|
-
`.execute(_)}async function
|
|
1736
|
+
`.execute(_)}async function zZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var LN={};C(LN,{up:()=>EZ,down:()=>$Z,ACTIONS:()=>aT});import{sql as e_}from"kysely";var aT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function EZ(_){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(e_`now()`)).addCheckConstraint("chk_task_board_activity_action",e_`action IN (${e_.join(aT.map((x)=>e_.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 $Z(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var YN={};C(YN,{up:()=>UZ,down:()=>PZ,ACTIONS:()=>FN});import{sql as L_}from"kysely";var FN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function UZ(_){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(L_`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 rT(_,FN)}async function PZ(_){await rT(_,FN.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 rT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var HN={};C(HN,{up:()=>XZ,down:()=>QZ});import{sql as lT}from"kysely";function DN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function JZ(_){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 DN(N)}catch{return DN(_.connection_url)}if(_.title)return DN(_.title);return _.id}async function XZ(_){let x=await lT`
|
|
1732
1737
|
SELECT id, app_name, connection_url, title, slug
|
|
1733
1738
|
FROM connections
|
|
1734
1739
|
WHERE connection_type != 'VIRTUAL'
|
|
1735
|
-
`.execute(_),u=0;for(let N of x.rows){let K=
|
|
1740
|
+
`.execute(_),u=0;for(let N of x.rows){let K=JZ(N);if(K===N.slug)continue;await lT`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 QZ(){}var MN={};C(MN,{up:()=>WZ,down:()=>jZ});import{sql as ZZ}from"kysely";async function WZ(_){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 jZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var BN={};C(BN,{up:()=>FZ,down:()=>YZ,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"],LZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function FZ(_){await eT(_,RN)}async function YZ(_){await eT(_,RN.filter((x)=>!LZ.has(x)))}async function eT(_,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:()=>HZ,down:()=>MZ});import{sql as DZ}from"kysely";async function HZ(_){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(DZ`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 MZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var SN={};C(SN,{up:()=>BZ,down:()=>GZ,ACTIONS:()=>ON});import{sql as b_}from"kysely";var ON=["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"],RZ=new Set(["merge_conflict_resolution"]);async function BZ(_){await dT(_,ON)}async function GZ(_){await dT(_,ON.filter((x)=>!RZ.has(x)))}async function dT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var AN={};C(AN,{up:()=>OZ,down:()=>SZ});import{sql as F_}from"kysely";async function OZ(_){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 SZ(_){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_`
|
|
1736
1741
|
create index idx_org_billing_benefits_pending
|
|
1737
1742
|
on organization_billing (updated_at)
|
|
1738
1743
|
where benefits_reference_id is not null
|
|
1739
|
-
`.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 fN={};C(fN,{up:()=>
|
|
1744
|
+
`.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 fN={};C(fN,{up:()=>AZ,down:()=>fZ});import{sql as s_}from"kysely";async function AZ(_){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 fZ(_){await s_`
|
|
1740
1745
|
CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
|
|
1741
1746
|
RETURNS trigger AS $fn$
|
|
1742
1747
|
BEGIN
|
|
@@ -1762,23 +1767,23 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1762
1767
|
BEFORE INSERT ON connection_aggregations
|
|
1763
1768
|
FOR EACH ROW
|
|
1764
1769
|
EXECUTE FUNCTION enforce_repo_github_child_single_parent();
|
|
1765
|
-
`.execute(_)}var
|
|
1770
|
+
`.execute(_)}var IN={};C(IN,{up:()=>IZ,down:()=>yZ});import{sql as bT}from"kysely";async function IZ(_){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(bT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(bT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function yZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var yN={};C(yN,{up:()=>VZ,down:()=>wZ});import{sql as sT}from"kysely";async function VZ(_){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(sT`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(sT`now()`)).execute()}async function wZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var wN={};C(wN,{up:()=>kZ,down:()=>nZ});import{sql as VN}from"kysely";async function kZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(VN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await VN`
|
|
1766
1771
|
create index idx_task_quota_claims_org_period_live
|
|
1767
1772
|
on task_quota_claims (organization_id, period_key)
|
|
1768
1773
|
where state <> 'released'
|
|
1769
|
-
`.execute(_)}async function
|
|
1774
|
+
`.execute(_)}async function nZ(_){await VN`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 kN={};C(kN,{up:()=>vZ,down:()=>pZ});async function vZ(_){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 pZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var nN={};C(nN,{up:()=>gZ,down:()=>qZ});async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function qZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var vN={};C(vN,{up:()=>iZ,down:()=>cZ});import{sql as _z}from"kysely";async function iZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(_z`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(_z`monthly_task_executions > 0`)).execute()}async function cZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var pN={};C(pN,{up:()=>tZ,down:()=>oZ});import{sql as hZ}from"kysely";async function tZ(_){await hZ`
|
|
1770
1775
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1771
1776
|
ON task_board_items (updated_at, id)
|
|
1772
1777
|
WHERE status = 'in_review'
|
|
1773
1778
|
AND assignee_id = 'super-agent'
|
|
1774
1779
|
AND dismissed_at IS NULL
|
|
1775
|
-
`.execute(_)}async function
|
|
1780
|
+
`.execute(_)}async function oZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var gN={};C(gN,{up:()=>aZ,down:()=>rZ});import{sql as xz}from"kysely";async function aZ(_){await xz`
|
|
1776
1781
|
ALTER TABLE task_board_items
|
|
1777
1782
|
ADD COLUMN last_swept_at timestamptz
|
|
1778
|
-
`.execute(_)}async function
|
|
1783
|
+
`.execute(_)}async function rZ(_){await xz`
|
|
1779
1784
|
ALTER TABLE task_board_items
|
|
1780
1785
|
DROP COLUMN last_swept_at
|
|
1781
|
-
`.execute(_)}var
|
|
1786
|
+
`.execute(_)}var qN={};C(qN,{up:()=>lZ,down:()=>eZ});import{sql as _x}from"kysely";async function lZ(_){await _x`
|
|
1782
1787
|
ALTER TABLE task_board_items
|
|
1783
1788
|
ADD COLUMN retry_at timestamptz,
|
|
1784
1789
|
ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
|
|
@@ -1786,11 +1791,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1786
1791
|
CREATE INDEX idx_task_board_items_retry_due
|
|
1787
1792
|
ON task_board_items (retry_at)
|
|
1788
1793
|
WHERE retry_at IS NOT NULL
|
|
1789
|
-
`.execute(_)}async function
|
|
1794
|
+
`.execute(_)}async function eZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
|
|
1790
1795
|
ALTER TABLE task_board_items
|
|
1791
1796
|
DROP COLUMN retry_at,
|
|
1792
1797
|
DROP COLUMN retry_attempts
|
|
1793
|
-
`.execute(_)}var
|
|
1798
|
+
`.execute(_)}var cN={};C(cN,{up:()=>dZ,down:()=>bZ});import{sql as iN}from"kysely";async function dZ(_){await iN`
|
|
1794
1799
|
CREATE TABLE org_repo_sync (
|
|
1795
1800
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1796
1801
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1808,11 +1813,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1808
1813
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
1809
1814
|
UNIQUE (organization_id, volume)
|
|
1810
1815
|
)
|
|
1811
|
-
`.execute(_),await
|
|
1816
|
+
`.execute(_),await iN`
|
|
1812
1817
|
CREATE INDEX idx_org_repo_sync_enabled
|
|
1813
1818
|
ON org_repo_sync (organization_id)
|
|
1814
1819
|
WHERE enabled
|
|
1815
|
-
`.execute(_)}async function
|
|
1820
|
+
`.execute(_)}async function bZ(_){await iN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var tN={};C(tN,{up:()=>_6,down:()=>x6,ACTIONS:()=>hN});import{sql as xx}from"kysely";var hN=["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"],sZ=new Set(["merge_failed"]);async function _6(_){await uz(_,hN)}async function x6(_){await uz(_,hN.filter((x)=>!sZ.has(x)))}async function uz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var oN={};C(oN,{up:()=>u6,down:()=>C6});async function u6(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function C6(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var aN={};C(aN,{up:()=>K6,down:()=>N6});import{sql as x_}from"kysely";async function K6(_){await x_`
|
|
1816
1821
|
CREATE TABLE org_jira_integrations (
|
|
1817
1822
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
1818
1823
|
organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1851,7 +1856,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1851
1856
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
1852
1857
|
UNIQUE (organization_id, jira_comment_id)
|
|
1853
1858
|
)
|
|
1854
|
-
`.execute(_)}async function
|
|
1859
|
+
`.execute(_)}async function N6(_){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 rN={};C(rN,{up:()=>T6,down:()=>z6});import{sql as m6}from"kysely";async function T6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await m6`
|
|
1855
1860
|
update task_board_items as t
|
|
1856
1861
|
set key_seq = numbered.seq
|
|
1857
1862
|
from (
|
|
@@ -1864,25 +1869,25 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1864
1869
|
from task_board_items
|
|
1865
1870
|
) as numbered
|
|
1866
1871
|
where t.id = numbered.id
|
|
1867
|
-
`.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
|
|
1872
|
+
`.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 z6(_){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 lN={};C(lN,{up:()=>E6,down:()=>$6});import{sql as Cz}from"kysely";async function E6(_){await Cz`
|
|
1868
1873
|
CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
|
|
1869
1874
|
ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
|
|
1870
1875
|
WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
|
|
1871
|
-
`.execute(_)}async function
|
|
1876
|
+
`.execute(_)}async function $6(_){await Cz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var dN={};C(dN,{up:()=>U6,down:()=>P6});import{sql as eN}from"kysely";async function U6(_){await eN`
|
|
1872
1877
|
ALTER TABLE thread_message_parts
|
|
1873
1878
|
ADD COLUMN IF NOT EXISTS persisted_at timestamptz
|
|
1874
|
-
`.execute(_),await
|
|
1879
|
+
`.execute(_),await eN`
|
|
1875
1880
|
ALTER TABLE thread_message_parts
|
|
1876
1881
|
ALTER COLUMN persisted_at SET DEFAULT now()
|
|
1877
|
-
`.execute(_)}async function
|
|
1882
|
+
`.execute(_)}async function P6(_){await eN`
|
|
1878
1883
|
ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
|
|
1879
|
-
`.execute(_)}var
|
|
1884
|
+
`.execute(_)}var bN={};C(bN,{up:()=>J6,down:()=>X6});async function J6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function X6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var sN={};C(sN,{up:()=>Z6,down:()=>W6});import{sql as Q6}from"kysely";async function Z6(_){await Q6`
|
|
1880
1885
|
CREATE INDEX idx_task_board_items_done_sweep
|
|
1881
1886
|
ON task_board_items (updated_at)
|
|
1882
1887
|
WHERE status = 'done' AND dismissed_at IS NULL
|
|
1883
|
-
`.execute(_)}async function
|
|
1888
|
+
`.execute(_)}async function W6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var _m={};C(_m,{up:()=>j6,down:()=>L6,TYPES:()=>Kz});import{sql as q}from"kysely";var Kz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function j6(_){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(Kz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
|
|
1884
1889
|
(user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
|
|
1885
|
-
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function
|
|
1890
|
+
(created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function L6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var xm={};C(xm,{up:()=>F6,down:()=>Y6});import{sql as Nz}from"kysely";async function F6(_){await Nz`
|
|
1886
1891
|
UPDATE org_jira_integrations
|
|
1887
1892
|
SET status_mapping = (
|
|
1888
1893
|
SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
|
|
@@ -1897,7 +1902,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1897
1902
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1898
1903
|
WHERE jsonb_typeof(value) = 'array'
|
|
1899
1904
|
)
|
|
1900
|
-
`.execute(_)}async function
|
|
1905
|
+
`.execute(_)}async function Y6(_){await Nz`
|
|
1901
1906
|
UPDATE org_jira_integrations
|
|
1902
1907
|
SET status_mapping = (
|
|
1903
1908
|
SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
|
|
@@ -1912,7 +1917,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1912
1917
|
SELECT 1 FROM jsonb_each(status_mapping)
|
|
1913
1918
|
WHERE jsonb_typeof(value) = 'array'
|
|
1914
1919
|
)
|
|
1915
|
-
`.execute(_)}var
|
|
1920
|
+
`.execute(_)}var Cm={};C(Cm,{up:()=>H6,down:()=>M6,TYPES:()=>um});import{sql as ux}from"kysely";var um=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],D6=new Set(["mentioned"]);async function H6(_){await mz(_,um)}async function M6(_){await mz(_,um.filter((x)=>!D6.has(x)))}async function mz(_,x){await ux`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await ux`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Nm={};C(Nm,{up:()=>G6,down:()=>O6,ACTIONS:()=>Km});import{sql as i}from"kysely";var R6=["bug","feature","chore","spike","security"],Km=["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"],B6=new Set(["type_changed"]);async function G6(_){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(R6.map((x)=>i.lit(x)))}))`.execute(_),await Tz(_,Km)}async function O6(_){await Tz(_,Km.filter((x)=>!B6.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 Tz(_,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 mm={};C(mm,{up:()=>S6,down:()=>A6});import{sql as W}from"kysely";var Ez=["bug","feature","chore","spike","security"],zz="chore";async function S6(_){await W`UPDATE task_board_items SET type = ${W.lit(zz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(zz)}`.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(Ez.map((x)=>W.lit(x)))}))`.execute(_)}async function A6(_){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(Ez.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 Tm={};C(Tm,{up:()=>f6,down:()=>I6});import{sql as u_}from"kysely";async function f6(_){await u_`
|
|
1916
1921
|
CREATE TABLE task_board_sprints (
|
|
1917
1922
|
id text PRIMARY KEY,
|
|
1918
1923
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -1937,34 +1942,34 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1937
1942
|
CREATE INDEX idx_task_board_items_sprint
|
|
1938
1943
|
ON task_board_items (organization_id, sprint_id)
|
|
1939
1944
|
WHERE sprint_id IS NOT NULL
|
|
1940
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function
|
|
1945
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function I6(_){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 zm={};C(zm,{up:()=>V6,down:()=>w6});import{sql as y6}from"kysely";async function V6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function w6(_){await y6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Em={};C(Em,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await k6`
|
|
1941
1946
|
UPDATE org_jira_integrations
|
|
1942
1947
|
SET last_synced_at = NULL,
|
|
1943
1948
|
last_sync_error = NULL
|
|
1944
1949
|
WHERE last_synced_at IS NOT NULL
|
|
1945
|
-
`.execute(_)}async function
|
|
1950
|
+
`.execute(_)}async function v6(){}var $m={};C($m,{up:()=>g6,down:()=>q6});import{sql as p6}from"kysely";async function g6(_){await p6`
|
|
1946
1951
|
UPDATE org_jira_integrations
|
|
1947
1952
|
SET last_synced_at = NULL,
|
|
1948
1953
|
last_sync_error = NULL
|
|
1949
1954
|
WHERE last_synced_at IS NOT NULL
|
|
1950
|
-
`.execute(_)}async function
|
|
1955
|
+
`.execute(_)}async function q6(){}var Pm={};C(Pm,{up:()=>i6,down:()=>c6});import{sql as Um}from"kysely";async function i6(_){await Um`
|
|
1951
1956
|
ALTER TABLE org_jira_integrations
|
|
1952
1957
|
ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
|
|
1953
|
-
`.execute(_),await
|
|
1958
|
+
`.execute(_),await Um`
|
|
1954
1959
|
UPDATE org_jira_integrations
|
|
1955
1960
|
SET rescan_pending = true
|
|
1956
1961
|
WHERE last_synced_at IS NULL
|
|
1957
|
-
`.execute(_)}async function
|
|
1962
|
+
`.execute(_)}async function c6(_){await Um`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Jm={};C(Jm,{up:()=>h6,down:()=>t6});async function h6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function t6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Xm={};C(Xm,{up:()=>o6,down:()=>a6});import{sql as $z}from"kysely";async function o6(_){await $z`
|
|
1958
1963
|
ALTER TABLE invitation
|
|
1959
1964
|
ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
|
|
1960
|
-
`.execute(_)}async function
|
|
1965
|
+
`.execute(_)}async function a6(_){await $z`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Zm={};C(Zm,{up:()=>r6,down:()=>l6});import{sql as Qm}from"kysely";async function r6(_){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(Qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Qm`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 Qm`
|
|
1961
1966
|
INSERT INTO task_board_column_automations
|
|
1962
1967
|
(id, organization_id, column_key, prompt)
|
|
1963
1968
|
SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
|
|
1964
1969
|
FROM org_jira_integrations
|
|
1965
1970
|
WHERE auto_delegate = true
|
|
1966
1971
|
ON CONFLICT DO NOTHING
|
|
1967
|
-
`.execute(_)}async function
|
|
1972
|
+
`.execute(_)}async function l6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Wm={};C(Wm,{up:()=>e6,down:()=>d6});import{sql as Y_}from"kysely";async function e6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
|
|
1968
1973
|
UPDATE task_board_items i
|
|
1969
1974
|
SET review_cycle_started_at = (
|
|
1970
1975
|
SELECT max(a.occurred_at)
|
|
@@ -1980,13 +1985,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1980
1985
|
WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
|
|
1981
1986
|
AND assignee_id = 'super-agent'
|
|
1982
1987
|
AND dismissed_at IS NULL
|
|
1983
|
-
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function
|
|
1988
|
+
`.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function d6(_){await Y_`
|
|
1984
1989
|
CREATE INDEX idx_task_board_items_pending_review
|
|
1985
1990
|
ON task_board_items (updated_at, id)
|
|
1986
1991
|
WHERE status = 'in_review'
|
|
1987
1992
|
AND assignee_id = 'super-agent'
|
|
1988
1993
|
AND dismissed_at IS NULL
|
|
1989
|
-
`.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
|
|
1994
|
+
`.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 jm={};C(jm,{up:()=>b6,down:()=>s6});import{sql as Uz}from"kysely";async function b6(_){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(Uz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Uz`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 s6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Fm={};C(Fm,{up:()=>xW,down:()=>uW,ACTIONS:()=>Lm});import{sql as Cx}from"kysely";var Lm=["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"],_W=new Set(["review_verdict_requested"]);async function xW(_){await Pz(_,Lm)}async function uW(_){await Pz(_,Lm.filter((x)=>!_W.has(x)))}async function Pz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var Ym={};C(Ym,{up:()=>CW,down:()=>KW});import{sql as Kx}from"kysely";async function CW(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
|
|
1990
1995
|
ALTER TABLE task_board_items
|
|
1991
1996
|
ADD CONSTRAINT chk_task_board_items_column_org
|
|
1992
1997
|
CHECK (board_column_org IS NULL OR board_column_org = organization_id)
|
|
@@ -1996,13 +2001,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
1996
2001
|
FOREIGN KEY (board_column_org, status)
|
|
1997
2002
|
REFERENCES task_board_columns (organization_id, key)
|
|
1998
2003
|
ON DELETE RESTRICT
|
|
1999
|
-
`.execute(_)}async function
|
|
2004
|
+
`.execute(_)}async function KW(_){await Kx`
|
|
2000
2005
|
ALTER TABLE task_board_items
|
|
2001
2006
|
DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
|
|
2002
2007
|
`.execute(_),await Kx`
|
|
2003
2008
|
ALTER TABLE task_board_items
|
|
2004
2009
|
DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
|
|
2005
|
-
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var
|
|
2010
|
+
`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Dm={};C(Dm,{up:()=>NW,down:()=>mW});async function NW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function mW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Mm={};C(Mm,{up:()=>zW,down:()=>EW,ACTIONS:()=>Hm});import{sql as Nx}from"kysely";var Hm=["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"],TW=new Set(["sprint_changed"]);async function zW(_){await Jz(_,Hm)}async function EW(_){await Jz(_,Hm.filter((x)=>!TW.has(x)))}async function Jz(_,x){await Nx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Nx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Nx.join(x.map((u)=>Nx.lit(u)))}))`.execute(_)}var Rm={};C(Rm,{up:()=>UW,down:()=>PW});import{sql as $W}from"kysely";async function UW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo($W`'[]'::jsonb`)).execute()}async function PW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Bm={};C(Bm,{up:()=>JW,down:()=>XW});import{sql as Xz}from"kysely";async function JW(_){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(Xz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function XW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as QW}from"kysely";async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await QW`
|
|
2006
2011
|
UPDATE task_board_items i
|
|
2007
2012
|
SET external_url = t.url,
|
|
2008
2013
|
description = CASE
|
|
@@ -2021,11 +2026,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2021
2026
|
ON g.organization_id = l.organization_id
|
|
2022
2027
|
) t
|
|
2023
2028
|
WHERE t.item_id = i.id
|
|
2024
|
-
`.execute(_)}async function
|
|
2029
|
+
`.execute(_)}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Om={};C(Om,{up:()=>LW,down:()=>FW,ACTIONS:()=>Qz});import{sql as X}from"kysely";var jW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Qz=["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 LW(_){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`
|
|
2025
2030
|
UPDATE task_board_items
|
|
2026
2031
|
SET status = 'triage'
|
|
2027
|
-
WHERE status NOT IN (${X.join(
|
|
2028
|
-
`.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
|
|
2032
|
+
WHERE status NOT IN (${X.join(jW.map((x)=>X.lit(x)))})
|
|
2033
|
+
`.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 YW(_,Qz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
|
|
2029
2034
|
ALTER TABLE task_board_item_jira_links
|
|
2030
2035
|
DROP COLUMN IF EXISTS jira_updated_at,
|
|
2031
2036
|
DROP COLUMN IF EXISTS jira_status,
|
|
@@ -2037,7 +2042,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2037
2042
|
DROP COLUMN IF EXISTS last_synced_at,
|
|
2038
2043
|
DROP COLUMN IF EXISTS last_sync_error,
|
|
2039
2044
|
DROP COLUMN IF EXISTS rescan_pending
|
|
2040
|
-
`.execute(_)}async function
|
|
2045
|
+
`.execute(_)}async function FW(){}async function YW(_,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 Sm={};C(Sm,{up:()=>DW,down:()=>HW});import{sql as C_}from"kysely";async function DW(_){await C_`
|
|
2041
2046
|
ALTER TABLE task_board_items
|
|
2042
2047
|
ADD COLUMN IF NOT EXISTS source text
|
|
2043
2048
|
CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
|
|
@@ -2058,24 +2063,24 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2058
2063
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
2059
2064
|
PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
|
|
2060
2065
|
)
|
|
2061
|
-
`.execute(_)}async function
|
|
2066
|
+
`.execute(_)}async function HW(_){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 Am={};C(Am,{up:()=>MW,down:()=>RW});import{sql as D_}from"kysely";async function MW(_){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_`
|
|
2062
2067
|
CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
|
|
2063
2068
|
ON organization_notices (organization_id)
|
|
2064
2069
|
WHERE resolved_at IS NULL
|
|
2065
2070
|
`.execute(_),await D_`
|
|
2066
2071
|
CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
|
|
2067
2072
|
ON organization_notices (organization_id, created_at DESC)
|
|
2068
|
-
`.execute(_)}async function
|
|
2073
|
+
`.execute(_)}async function RW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Im={};C(Im,{up:()=>wW,down:()=>kW});import{sql as fm}from"kysely";import{sql as j5}from"kysely";var Zz=50000000,BW=1e5;function GW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>BW)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 OW=/\u0000/g,SW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,AW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,fW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,IW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function yW(_){return _.replace(OW,"").replace(SW,"\uFFFD").replace(AW,"$1***@").replace(fW,"$1***").replace(IW,"[base64 data omitted]")}function VW(_){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 Wz(_){if(GW(_,Zz)>Zz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return yW(u);if(VW(u))return{type:"text",text:"[image omitted]"};return u})}var jz=20;async function wW(_){let x=await fm`
|
|
2069
2074
|
SELECT id FROM thread_message_parts
|
|
2070
2075
|
WHERE pg_column_size(payload) > 8192
|
|
2071
2076
|
AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
|
|
2072
|
-
`.execute(_);for(let u=0;u<x.rows.length;u+=
|
|
2077
|
+
`.execute(_);for(let u=0;u<x.rows.length;u+=jz){let N=x.rows.slice(u,u+jz).map((m)=>m.id),K=await fm`
|
|
2073
2078
|
SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
|
|
2074
|
-
`.execute(_);for(let m of K.rows){let T=
|
|
2079
|
+
`.execute(_);for(let m of K.rows){let T=Wz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
|
|
2075
2080
|
UPDATE thread_message_parts
|
|
2076
2081
|
SET payload = ${T}::jsonb
|
|
2077
2082
|
WHERE id = ${m.id}
|
|
2078
|
-
`.execute(_)}}}async function
|
|
2083
|
+
`.execute(_)}}}async function kW(){}var ym={};C(ym,{up:()=>nW,down:()=>vW});async function nW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function vW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Vm={};C(Vm,{up:()=>pW,down:()=>gW});import{sql as U}from"kysely";async function pW(_){await U`
|
|
2079
2084
|
CREATE TABLE git_provider_accounts (
|
|
2080
2085
|
id text PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
2081
2086
|
organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
|
|
@@ -2319,11 +2324,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2319
2324
|
AND r.organization_id = s.organization_id
|
|
2320
2325
|
AND r.host = 'github.com'
|
|
2321
2326
|
AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
|
|
2322
|
-
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function
|
|
2327
|
+
`.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function gW(_){await U`
|
|
2323
2328
|
ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
|
|
2324
2329
|
`.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
|
|
2325
2330
|
ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
|
|
2326
|
-
`.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
|
|
2331
|
+
`.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 wm={};C(wm,{up:()=>iW,down:()=>cW});import{sql as I}from"kysely";var qW=I`
|
|
2327
2332
|
CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
|
|
2328
2333
|
RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
|
|
2329
2334
|
BEGIN
|
|
@@ -2332,7 +2337,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2332
2337
|
RETURN NULL;
|
|
2333
2338
|
END;
|
|
2334
2339
|
$$
|
|
2335
|
-
`;async function
|
|
2340
|
+
`;async function iW(_){await qW.execute(_),await I`
|
|
2336
2341
|
ALTER TABLE connections
|
|
2337
2342
|
ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
|
|
2338
2343
|
`.execute(_),await I`
|
|
@@ -2394,21 +2399,21 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2394
2399
|
AND r.host = 'github.com'
|
|
2395
2400
|
AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
|
|
2396
2401
|
ON CONFLICT (thread_id, repository_id) DO NOTHING
|
|
2397
|
-
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function
|
|
2402
|
+
`.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function cW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
|
|
2398
2403
|
ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
|
|
2399
|
-
`.execute(_)}var gW={"001-initial-schema":ju,"002-organization-settings":Lu,"003-connection-schema-align":Fu,"004-remove-models-binding":Yu,"005-connection-configuration":Du,"006-add-views-to-settings":Hu,"007-monitoring-logs":Mu,"008-event-bus":Ru,"009-drop-audit-logs":Bu,"010-gateways":Gu,"011-gateway-icon":Ou,"012-gateway-tool-selection-mode":Su,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Au,"015-monitoring-properties":Iu,"016-downstream-token-client-info":yu,"017-downstream-token-remove-userid":Vu,"018-drop-gateway-tool-selection-strategy":wu,"019-remove-gateway-is-default":ku,"020-enabled-plugins":nu,"021-threads":vu,"022-rename-gateway-to-virtual-mcp":pu,"023-optimize-thread-indexes":gu,"024-consolidate-virtual-mcp":qu,"025-add-monitoring-virtual-mcp-id":iu,"026-restrict-child-connection-delete":cu,"027-update-management-mcp-url":tu,"028-update-management-mcp-to-self":au,"029-add-updated-by-to-connections":ru,"030-member-tags":lu,"031-add-dependency-mode":eu,"032-projects":du,"033-thread-status":bu,"034-monitoring-dashboards":su,"035-project-connections":_C,"036-update-registry-url":xC,"037-ai-provider-keys":uC,"038-oauth-pkce-states":CC,"039-automations":KC,"040-replace-next-run-at-with-last-run-at":NC,"041-ai-provider-keys-unique-constraint":mC,"042-rename-mesh-mcp-to-cms-mcp":TC,"043-rename-cms-mcp-to-deco-cms":zC,"044-drop-connections-tools-column":EC,"045-thread-context-start-message":$C,"046-remove-object-storage-plugin":PC,"047-add-next-run-at":JC,"048-merge-projects-agents":QC,"049-remove-org-admin-projects":ZC,"050-durable-agent-runs":WC,"051-org-sso":LC,"052-thread-agent-ids":FC,"053-registry-config":YC,"054-connection-slug":HC,"055-spaces":MC,"056-automation-project-scope":RC,"057-thread-virtual-mcp-id":BC,"058-trigger-callback-tokens":GC,"059-kv":OC,"060-member-index":SC,"061-downstream-token-connection-index":fC,"062-private-registry":AC,"063-event-subscriptions-enabled-boolean":IC,"064-brand-context":yC,"065-organization-domains":VC,"066-brand-context-structured":wC,"067-threads-metadata":kC,"068-threads-branch":nC,"069-sandbox-runner-state":vC,"070-model-categories":pC,"071-default-home-agents":gC,"072-ai-provider-key-preset-id":qC,"073-backfill-basic-usage-roles":iC,"074-sandbox-runner-state-handle-nonunique":cC,"075-thread-inflight-async-jobs":hC,"076-automations-drop-agent-json":tC,"077-tier-only-model-selection":aC,"078-automation-tool-call-kind":rC,"079-strip-legacy-freestyle-vm-map-entries":lC,"080-async-research-jobs":eC,"081-async-research-jobs-result-content":dC,"082-secrets":bC,"083-thread-run-locally":sC,"084-drop-host-sandbox-rows":_K,"085-rename-runner-kind":xK,"086-thread-pins-and-vm-map-rekey":uK,"087-fix-vm-map-rekey":CK,"088-purge-cli-activate-keys":KK,"089-rename-remote-user-to-desktop":NK,"090-automation-webhook-triggers":mK,"091-organization-domains-allow-multi":TK,"092-sandbox-naming-uniformization":zK,"093-backfill-global-search-basic-usage":EK,"094-org-file-configs":UK,"095-remove-automation-tool-call-kind":PK,"096-org-file-configs-public-url-base":JK,"097-drop-local-docker-sandbox-state":QK,"098-thread-message-parts":ZK,"099-run-fence":WK,"100-link-transport":jK,"101-cancel-requested-at":LK,"102-observational-agent":FK,"103-revert-observational-agent":YK,"104-agent-sandbox-provider-kind":HK,"105-org-fs":MK,"106-automation-tools":RK,"107-org-fs-public-org":BK,"108-automation-max-agent-steps":GK,"109-thread-message-parts-per-message-seq":OK,"110-backfill-ghs-token-expiry":SK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":AK,"113-thread-failure-reason":IK,"114-run-acked-seq":yK,"115-thread-projected-seq":VK,"116-org-sites":wK,"117-org-file-configs-site-slug":kK,"118-organization-domains-multi-verify":nK,"119-organization-join-requests":vK,"120-org-fs-read-public":pK,"121-org-fs-share-password":gK,"122-split-web-research-tier":cK,"123-connection-credential-vault":hK,"124-drop-thread-projected-seq":tK,"125-github-child-single-parent":oK,"126-task-board":rK,"127-task-board-due-date":lK,"128-reports-only":eK,"129-task-board-assigned-by":dK,"130-task-board-thread-id":bK,"131-task-board-thread-link-cascade":sK,"132-task-board-item-prs":_N,"133-dedupe-duplicate-members":xN,"134-drop-task-board-enabled":uN,"135-task-board-item-fk-cascade":CN,"136-task-board-import-idempotency":KN,"137-agent-sandbox-runner-state":NN,"138-agent-sandbox-sessions":mN,"139-organization-billing":TN,"140-seat-change-log":zN,"141-benefits-sync-pending":EN,"142-stripe-event-watermark":$N,"143-armed-report-url":UN,"144-benefits-pending-index":PN,"145-user-model-preferences":JN,"146-organization-main-agent":XN,"147-drop-agent-sandbox-tables":QN,"148-org-flags":ZN,"149-task-board-item-sort-order":WN,"150-task-board-activity":jN,"151-task-board-tags":FN,"152-repair-connection-slug":DN,"153-task-board-latest-assistant-part-index":HN,"154-task-board-qa-activity":RN,"155-task-board-review-claims":BN,"156-task-board-conflict-activity":ON,"157-drop-seat-billing":SN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":AN,"160-task-quota-billing":IN,"161-task-quota-claim-state":VN,"162-claude-subscriptions":wN,"163-task-board-item-dismissed":kN,"164-per-org-task-quota":nN,"165-task-board-pending-review-index":vN,"166-task-board-last-swept-at":pN,"167-task-board-run-retry":gN,"168-org-repo-sync":iN,"169-task-board-merge-failed-activity":hN,"170-task-board-item-repo":tN,"171-jira-integration":oN,"172-task-board-item-key-seq":aN,"173-thread-github-repo-connection-index":rN,"174-thread-message-parts-persisted-at":eN,"175-task-board-sprints":dN,"176-task-board-done-sweep-index":bN,"177-notifications":sN,"178-jira-status-mapping-array":_m,"179-notification-mentioned":um,"180-task-board-item-type":Km,"181-task-board-item-type-required":Nm,"182-task-board-sprints-entities":mm,"183-drop-jira-jql-filter":Tm,"184-jira-rescan-after-scope-change":zm,"185-jira-rescan-existing-cards":Em,"186-jira-rescan-pending-flag":Um,"187-task-board-comment-thread":Pm,"188-invitation-auto-accept":Jm,"189-task-board-column-automations":Qm,"190-task-board-review-cycle-started-at":Zm,"191-task-board-columns":Wm,"192-task-board-verdict-nudge-activity":Lm,"193-task-board-status-column-fk":Fm,"194-jira-link-sprint":Ym,"195-task-board-sprint-activity":Hm,"196-task-board-column-tracker-statuses":Mm,"197-task-board-prompts":Rm,"198-task-board-external-url":Bm,"199-drop-jira-mirror-and-org-columns":Gm,"200-jira-run-trigger":Om,"201-organization-notices":Sm,"202-redact-base64-thread-parts":Am,"203-task-board-preview-routes":Im,"204-git-provider-accounts-and-repositories":ym,"205-repository-references":Vm,"206-repository-consumers":Wu,"207-task-board-prs-repo-idx":Zu,"208-github-connect-flows":Qu,"209-github-installation-authorization":Xu,"210-github-repository-authorization":mu,"211-user-fs-org":Nu,"212-coding-agent-mcp-excluded":Tu,"213-bitbucket-git-provider":zu,"214-connections-sanitized-id-idx":xu,"215-commerce-discovery-repository":uu,"216-github-cli-auth":Ku,"217-experiments":Eu,"218-thread-message-parts-error-idx":$u,"219-task-board-duplicate-reported-activity":Pu,"220-jira-automation-continue-pr":Ju,"221-remove-private-registry":Wx,"222-org-git-credentials":jx,"223-drop-org-main-agent-id":_u,"224-repository-sandbox-image":Lx,"225-thread-analytics-indexes":Yx,"226-deco-score-names":Hx,"227-task-board-finding-resolved-activity":Rx,"228-org-voice-config":Zx,"229-jira-automation-from":Bx,"230-project-sidebar":Gx,"231-jira-chat-agent":Ox,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":Ix,"234-task-board-comment-audience":yx,"235-prune-empty-thread-dirs":Vx,"236-task-board-sprints":kx,"237-org-sites-project-link":nx,"238-task-board-default-lanes":vx,"239-task-board-retire-old-lanes":px,"240-task-board-restore-todo":gx,"241-automation-board-column-transition":qx,"242-connection-url-slug":ix,"243-experiment-task-board-item":cx,"244-connection-url-slug-rollout-backfill":hx,"245-automation-system-key":tx,"246-automation-pr-ready-trigger":ox,"247-automation-jira-transition":ax,"248-drop-retired-rule-tables":rx,"249-task-board-item-project":lx,"250-github-copilot-subscriptions":ex,"251-org-shared-plans":dx,"252-automation-linked-chat-trigger":bx,"253-automation-pr-builtin-triggers":sx,"254-codex-subscriptions":Jx,"255-order-monitor":Qx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px},mx=gW;import{getMigrations as L9}from"better-auth/db";import{sso as F9}from"@better-auth/sso";import{organization as Y9}from"@decocms/better-auth/plugins";import{admin as D9,apiKey as H9,jwt as M9,magicLink as R9,mcp as B9,openAPI as G9}from"better-auth/plugins";import{emailOTP as O9}from"better-auth/plugins/email-otp";import{Kysely as U9,PostgresDialect as Bz}from"kysely";import{Pool as Gz}from"pg";import{homedir as qW}from"os";var iW=new Set(["all","worker","api"]);function cW(_){let x=(_??"").trim();return iW.has(x)?x:"all"}var hW=new Set(["production","development","test"]);function tW(_){let x=(_??"").trim();return hW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function km(_,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 km(_,x,N)??u}function oW(_){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 aW(_,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 wm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function rW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Wz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${qW()}/deco`,u=tW(_.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:km("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:oW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:aW("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:wm(_.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:wm(_.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:rW(_.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:km("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:cW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:wm(_.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 lW=null;function K_(){return lW??=Object.freeze(Wz(process.env))}import{createContextKey as x9,metrics as u9,propagation as I8,ROOT_CONTEXT as y8,SpanStatusCode as V8,trace as C9}from"@opentelemetry/api";import{logs as K9,SeverityNumber as nm}from"@opentelemetry/api-logs";import{OTLPLogExporter as n8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as N9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as g8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as i8}from"@opentelemetry/instrumentation-runtime-node";import{context as B5,propagation as G5,SpanKind as O5,SpanStatusCode as S5}from"@opentelemetry/api";var A5=globalThis.fetch;import{ExportResultCode as c5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as eW,rename as dW,writeFile as bW}from"fs/promises";import{join as zx}from"path";class Ex{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:Tx.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:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.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?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await eW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
|
|
2404
|
+
`.execute(_)}var hW={"001-initial-schema":Lu,"002-organization-settings":Fu,"003-connection-schema-align":Yu,"004-remove-models-binding":Du,"005-connection-configuration":Hu,"006-add-views-to-settings":Mu,"007-monitoring-logs":Ru,"008-event-bus":Bu,"009-drop-audit-logs":Gu,"010-gateways":Ou,"011-gateway-icon":Su,"012-gateway-tool-selection-mode":Au,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Iu,"015-monitoring-properties":yu,"016-downstream-token-client-info":Vu,"017-downstream-token-remove-userid":wu,"018-drop-gateway-tool-selection-strategy":ku,"019-remove-gateway-is-default":nu,"020-enabled-plugins":vu,"021-threads":pu,"022-rename-gateway-to-virtual-mcp":gu,"023-optimize-thread-indexes":qu,"024-consolidate-virtual-mcp":iu,"025-add-monitoring-virtual-mcp-id":cu,"026-restrict-child-connection-delete":hu,"027-update-management-mcp-url":ou,"028-update-management-mcp-to-self":ru,"029-add-updated-by-to-connections":lu,"030-member-tags":eu,"031-add-dependency-mode":du,"032-projects":bu,"033-thread-status":su,"034-monitoring-dashboards":_C,"035-project-connections":xC,"036-update-registry-url":uC,"037-ai-provider-keys":CC,"038-oauth-pkce-states":KC,"039-automations":NC,"040-replace-next-run-at-with-last-run-at":mC,"041-ai-provider-keys-unique-constraint":TC,"042-rename-mesh-mcp-to-cms-mcp":zC,"043-rename-cms-mcp-to-deco-cms":EC,"044-drop-connections-tools-column":$C,"045-thread-context-start-message":UC,"046-remove-object-storage-plugin":JC,"047-add-next-run-at":XC,"048-merge-projects-agents":ZC,"049-remove-org-admin-projects":WC,"050-durable-agent-runs":jC,"051-org-sso":FC,"052-thread-agent-ids":YC,"053-registry-config":DC,"054-connection-slug":MC,"055-spaces":RC,"056-automation-project-scope":BC,"057-thread-virtual-mcp-id":GC,"058-trigger-callback-tokens":OC,"059-kv":SC,"060-member-index":AC,"061-downstream-token-connection-index":fC,"062-private-registry":IC,"063-event-subscriptions-enabled-boolean":yC,"064-brand-context":VC,"065-organization-domains":wC,"066-brand-context-structured":kC,"067-threads-metadata":nC,"068-threads-branch":vC,"069-sandbox-runner-state":pC,"070-model-categories":gC,"071-default-home-agents":qC,"072-ai-provider-key-preset-id":iC,"073-backfill-basic-usage-roles":cC,"074-sandbox-runner-state-handle-nonunique":hC,"075-thread-inflight-async-jobs":tC,"076-automations-drop-agent-json":oC,"077-tier-only-model-selection":rC,"078-automation-tool-call-kind":lC,"079-strip-legacy-freestyle-vm-map-entries":eC,"080-async-research-jobs":dC,"081-async-research-jobs-result-content":bC,"082-secrets":sC,"083-thread-run-locally":_K,"084-drop-host-sandbox-rows":xK,"085-rename-runner-kind":uK,"086-thread-pins-and-vm-map-rekey":CK,"087-fix-vm-map-rekey":KK,"088-purge-cli-activate-keys":NK,"089-rename-remote-user-to-desktop":mK,"090-automation-webhook-triggers":TK,"091-organization-domains-allow-multi":zK,"092-sandbox-naming-uniformization":EK,"093-backfill-global-search-basic-usage":$K,"094-org-file-configs":PK,"095-remove-automation-tool-call-kind":JK,"096-org-file-configs-public-url-base":XK,"097-drop-local-docker-sandbox-state":ZK,"098-thread-message-parts":WK,"099-run-fence":jK,"100-link-transport":LK,"101-cancel-requested-at":FK,"102-observational-agent":YK,"103-revert-observational-agent":DK,"104-agent-sandbox-provider-kind":MK,"105-org-fs":RK,"106-automation-tools":BK,"107-org-fs-public-org":GK,"108-automation-max-agent-steps":OK,"109-thread-message-parts-per-message-seq":SK,"110-backfill-ghs-token-expiry":AK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":IK,"113-thread-failure-reason":yK,"114-run-acked-seq":VK,"115-thread-projected-seq":wK,"116-org-sites":kK,"117-org-file-configs-site-slug":nK,"118-organization-domains-multi-verify":vK,"119-organization-join-requests":pK,"120-org-fs-read-public":gK,"121-org-fs-share-password":qK,"122-split-web-research-tier":hK,"123-connection-credential-vault":tK,"124-drop-thread-projected-seq":oK,"125-github-child-single-parent":aK,"126-task-board":lK,"127-task-board-due-date":eK,"128-reports-only":dK,"129-task-board-assigned-by":bK,"130-task-board-thread-id":sK,"131-task-board-thread-link-cascade":_N,"132-task-board-item-prs":xN,"133-dedupe-duplicate-members":uN,"134-drop-task-board-enabled":CN,"135-task-board-item-fk-cascade":KN,"136-task-board-import-idempotency":NN,"137-agent-sandbox-runner-state":mN,"138-agent-sandbox-sessions":TN,"139-organization-billing":zN,"140-seat-change-log":EN,"141-benefits-sync-pending":$N,"142-stripe-event-watermark":UN,"143-armed-report-url":PN,"144-benefits-pending-index":JN,"145-user-model-preferences":XN,"146-organization-main-agent":QN,"147-drop-agent-sandbox-tables":ZN,"148-org-flags":WN,"149-task-board-item-sort-order":jN,"150-task-board-activity":LN,"151-task-board-tags":YN,"152-repair-connection-slug":HN,"153-task-board-latest-assistant-part-index":MN,"154-task-board-qa-activity":BN,"155-task-board-review-claims":GN,"156-task-board-conflict-activity":SN,"157-drop-seat-billing":AN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":IN,"160-task-quota-billing":yN,"161-task-quota-claim-state":wN,"162-claude-subscriptions":kN,"163-task-board-item-dismissed":nN,"164-per-org-task-quota":vN,"165-task-board-pending-review-index":pN,"166-task-board-last-swept-at":gN,"167-task-board-run-retry":qN,"168-org-repo-sync":cN,"169-task-board-merge-failed-activity":tN,"170-task-board-item-repo":oN,"171-jira-integration":aN,"172-task-board-item-key-seq":rN,"173-thread-github-repo-connection-index":lN,"174-thread-message-parts-persisted-at":dN,"175-task-board-sprints":bN,"176-task-board-done-sweep-index":sN,"177-notifications":_m,"178-jira-status-mapping-array":xm,"179-notification-mentioned":Cm,"180-task-board-item-type":Nm,"181-task-board-item-type-required":mm,"182-task-board-sprints-entities":Tm,"183-drop-jira-jql-filter":zm,"184-jira-rescan-after-scope-change":Em,"185-jira-rescan-existing-cards":$m,"186-jira-rescan-pending-flag":Pm,"187-task-board-comment-thread":Jm,"188-invitation-auto-accept":Xm,"189-task-board-column-automations":Zm,"190-task-board-review-cycle-started-at":Wm,"191-task-board-columns":jm,"192-task-board-verdict-nudge-activity":Fm,"193-task-board-status-column-fk":Ym,"194-jira-link-sprint":Dm,"195-task-board-sprint-activity":Mm,"196-task-board-column-tracker-statuses":Rm,"197-task-board-prompts":Bm,"198-task-board-external-url":Gm,"199-drop-jira-mirror-and-org-columns":Om,"200-jira-run-trigger":Sm,"201-organization-notices":Am,"202-redact-base64-thread-parts":Im,"203-task-board-preview-routes":ym,"204-git-provider-accounts-and-repositories":Vm,"205-repository-references":wm,"206-repository-consumers":ju,"207-task-board-prs-repo-idx":Wu,"208-github-connect-flows":Zu,"209-github-installation-authorization":Qu,"210-github-repository-authorization":Tu,"211-user-fs-org":mu,"212-coding-agent-mcp-excluded":zu,"213-bitbucket-git-provider":Eu,"214-connections-sanitized-id-idx":uu,"215-commerce-discovery-repository":Cu,"216-github-cli-auth":Nu,"217-experiments":$u,"218-thread-message-parts-error-idx":Uu,"219-task-board-duplicate-reported-activity":Ju,"220-jira-automation-continue-pr":Xu,"221-remove-private-registry":jx,"222-org-git-credentials":Lx,"223-drop-org-main-agent-id":xu,"224-repository-sandbox-image":Fx,"225-thread-analytics-indexes":Dx,"226-deco-score-names":Mx,"227-task-board-finding-resolved-activity":Bx,"228-org-voice-config":Wx,"229-jira-automation-from":Gx,"230-project-sidebar":Ox,"231-jira-chat-agent":Sx,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":yx,"234-task-board-comment-audience":Vx,"235-prune-empty-thread-dirs":wx,"236-task-board-sprints":nx,"237-org-sites-project-link":vx,"238-task-board-default-lanes":px,"239-task-board-retire-old-lanes":gx,"240-task-board-restore-todo":qx,"241-automation-board-column-transition":ix,"242-connection-url-slug":cx,"243-experiment-task-board-item":hx,"244-connection-url-slug-rollout-backfill":tx,"245-automation-system-key":ox,"246-automation-pr-ready-trigger":ax,"247-automation-jira-transition":rx,"248-drop-retired-rule-tables":lx,"249-task-board-item-project":ex,"250-github-copilot-subscriptions":dx,"251-org-shared-plans":bx,"252-automation-linked-chat-trigger":sx,"253-automation-pr-builtin-triggers":_u,"254-codex-subscriptions":Xx,"255-order-monitor":Zx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px,"259-repository-monitor-deploys":Jx},mx=hW;import{getMigrations as H9}from"better-auth/db";import{sso as M9}from"@better-auth/sso";import{organization as R9}from"@decocms/better-auth/plugins";import{admin as B9,apiKey as G9,jwt as O9,magicLink as S9,mcp as A9,openAPI as f9}from"better-auth/plugins";import{emailOTP as I9}from"better-auth/plugins/email-otp";import{Kysely as Q9,PostgresDialect as Oz}from"kysely";import{Pool as Sz}from"pg";import{homedir as tW}from"os";var oW=new Set(["all","worker","api"]);function aW(_){let x=(_??"").trim();return oW.has(x)?x:"all"}var rW=new Set(["production","development","test"]);function lW(_){let x=(_??"").trim();return rW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function nm(_,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 nm(_,x,N)??u}function eW(_){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 dW(_,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 km(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function bW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Lz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${tW()}/deco`,u=lW(_.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:nm("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:eW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:dW("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:km(_.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:km(_.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:bW(_.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:nm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:aW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:km(_.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 sW=null;function K_(){return sW??=Object.freeze(Lz(process.env))}import{createContextKey as N9,metrics as m9,propagation as n8,ROOT_CONTEXT as v8,SpanStatusCode as p8,trace as T9}from"@opentelemetry/api";import{logs as z9,SeverityNumber as vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as i8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as E9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as t8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as a8}from"@opentelemetry/instrumentation-runtime-node";import{context as f5,propagation as I5,SpanKind as y5,SpanStatusCode as V5}from"@opentelemetry/api";var k5=globalThis.fetch;import{ExportResultCode as r5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as _9,rename as x9,writeFile as u9}from"fs/promises";import{join as zx}from"path";class Ex{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:Tx.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:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.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?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await _9(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
|
|
2400
2405
|
`)+`
|
|
2401
|
-
`;await
|
|
2406
|
+
`;await u9(T,E,{mode:384}),await x9(T,z)}}import{ExportResultCode as s5}from"@opentelemetry/core";import{AggregationTemporality as x8,DataPointType as u8}from"@opentelemetry/sdk-metrics";import{ExportResultCode as z8}from"@opentelemetry/core";var P8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as u3,LoggerProvider as C3}from"@opentelemetry/sdk-logs";import{detectResources as N3,envDetector as m3,hostDetector as T3,osDetector as z3,processDetector as E3,resourceFromAttributes as $3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as P3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Q8}from"@opentelemetry/api-logs";import{NodeSDK as Q3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as W3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as F8}from"@opentelemetry/api";var $9="__d",U9=N9("Current request"),P9=1;var Yz=(_)=>{let u=new URL(_.url).searchParams.get($9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Dz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(U9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Yz(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 Hz{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 L3=new E9({preventServerStart:!0}),F3=new Dz(new Hz(P9));var Fz=T9.getTracer("studio","1.0.0"),M_=m9.getMeter("studio","1.0.0"),J9=z9.getLogger("studio","1.0.0"),pm=(_,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(" ");J9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},gm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{pm(vm.ERROR,"ERROR",_),gm.error(..._)};console.warn=(..._)=>{pm(vm.WARN,"WARN",_),gm.warn(..._)};console.debug=(..._)=>{pm(vm.DEBUG,"DEBUG",_),gm.debug(..._)};var qm,Mz=0,im=500;function X9(){if(qm)return;let _=performance.now()+im;qm=setInterval(()=>{let x=performance.now();Mz=Math.max(0,x-_),_=x+im},im),qm.unref?.()}function Rz(){return X9(),Mz}var Z9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Bz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Gz=400,W9=100,j9=(_)=>({"db.status":_.level==="error"?"error":"success"}),L9=(_)=>(x)=>{let u=j9(x);if(x.queryDurationMillis>Gz){let N=Rz(),K=N>Gz/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:$x()}})}if(Z9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function F9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=$x(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Bz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>W9)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 Bz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Az={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function fz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function Y9(_){let x=F9(new Sz({connectionString:_,max:$x(),ssl:fz(),...Az})),u=new Oz({pool:x});return{type:"postgres",db:new Q9({dialect:u,log:L9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Iz(_){let x=_||B_();return new Oz({pool:new Sz({connectionString:x,max:$x(),ssl:fz(),...Az})})}function D9(_){let x=_||B_();return Y9(x)}async function yz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function cm(){if(!R_)R_=D9(B_());return R_}async function Vz(_){let u={database:Iz(_||B_()),plugins:[R9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),B9(),G9(),O9(),f9(),A9({loginPage:"/login"}),M9(),S9({sendMagicLink:async()=>{}}),I9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await H9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function hm(_,x){return(await o`
|
|
2402
2407
|
SELECT table_name FROM information_schema.tables
|
|
2403
2408
|
WHERE table_schema='public' AND table_name=${x}
|
|
2404
|
-
`.execute(_)).rows.length>0}async function
|
|
2409
|
+
`.execute(_)).rows.length>0}async function y9(_){if(await hm(_,"plugin_migrations"))return;await o`
|
|
2405
2410
|
CREATE TABLE plugin_migrations (
|
|
2406
2411
|
plugin_id TEXT NOT NULL,
|
|
2407
2412
|
name TEXT NOT NULL,
|
|
2408
2413
|
timestamp TEXT NOT NULL,
|
|
2409
2414
|
PRIMARY KEY (plugin_id, name)
|
|
2410
2415
|
)
|
|
2411
|
-
`.execute(_)}async function
|
|
2416
|
+
`.execute(_)}async function V9(_){if(!await hm(_,"kysely_migration"))return;let x=await o`
|
|
2412
2417
|
SELECT name, timestamp FROM kysely_migration
|
|
2413
2418
|
WHERE name LIKE '%/%'
|
|
2414
2419
|
`.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`
|
|
@@ -2419,6 +2424,6 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
|
|
|
2419
2424
|
WHERE plugin_id = ${T} AND name = ${z}
|
|
2420
2425
|
`.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
|
|
2421
2426
|
DELETE FROM kysely_migration WHERE name = ${u}
|
|
2422
|
-
`.execute(_)}}async function
|
|
2427
|
+
`.execute(_)}}async function w9(_){if(!await hm(_,"kysely_migration"))return{};let{rows:x}=await o`
|
|
2423
2428
|
SELECT name FROM kysely_migration
|
|
2424
|
-
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,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
|
|
2429
|
+
`.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,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 k9(_){await y9(_),await V9(_);let x=new wz({db:_,provider:{getMigrations:async()=>({...await w9(_),...mx})}}),{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 n9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Vz();let m=u??cm(),T=async()=>{if(!x&&!u)await yz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await k9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function e3(){let _=cm(),x=new wz({db:_.db,provider:{getMigrations:()=>Promise.resolve(mx)}}),{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 n9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{k9 as runKyselyMigrations,n9 as migrateToLatest,e3 as migrateDown};
|