decocms 4.440.0 → 4.440.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/dist/client/assets/{AlertCircle-XXAWlcgx.js → AlertCircle-BRBGpzZA.js} +1 -1
  2. package/dist/client/assets/{AreaChart-KwdkpcdH.js → AreaChart-u6Mr5vHg.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-DI9NttEp.js → ArrowLeft-D_nqQ9tV.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-By9-vc-8.js → ArrowUp-DH2IataT.js} +1 -1
  5. package/dist/client/assets/{CartesianChart-a3R5Otrm.js → CartesianChart-BACZ_JVe.js} +1 -1
  6. package/dist/client/assets/{Check-BdObHRMl.js → Check-CO_ET4WO.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-DkWvJpfN.js → CheckCircle-RceYLcNO.js} +1 -1
  8. package/dist/client/assets/{ChevronUp--br7_cGI.js → ChevronUp-DnrzvZVs.js} +1 -1
  9. package/dist/client/assets/{Copy01-DFagqi8s.js → Copy01-BBbKMHlK.js} +1 -1
  10. package/dist/client/assets/{CreditCard01-cZe4LFh2.js → CreditCard01-D97_uv9-.js} +1 -1
  11. package/dist/client/assets/{DotsVertical-C3ILFYD8.js → DotsVertical-DA8jC7Sm.js} +1 -1
  12. package/dist/client/assets/{ErrorBarContext-DD5_v_f8.js → ErrorBarContext-B25cMhf0.js} +1 -1
  13. package/dist/client/assets/{Image01-C9BtItDq.js → Image01-AFCLWig4.js} +1 -1
  14. package/dist/client/assets/{Key01-ByeXvLue.js → Key01-DOFfyL8f.js} +1 -1
  15. package/dist/client/assets/{Line-BXlFmjqw.js → Line-ifQGqba-.js} +1 -1
  16. package/dist/client/assets/{Link01-Ca-PT5RE.js → Link01-7l6-kKGf.js} +1 -1
  17. package/dist/client/assets/{LinkBroken01-CbbXXlF9.js → LinkBroken01-t821Qpkz.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-DgOdwpZM.js → LinkExternal01-CGlBJ7ud.js} +1 -1
  19. package/dist/client/assets/{Monitor01-vZxChPKG.js → Monitor01-B8XQMd3B.js} +1 -1
  20. package/dist/client/assets/{Palette-DDgu7YQn.js → Palette-Dcur9L4v.js} +1 -1
  21. package/dist/client/assets/{Plus-Dc1-p3zJ.js → Plus-B0dyDF7l.js} +1 -1
  22. package/dist/client/assets/{SearchMd-Djuw3ygg.js → SearchMd-DWmqXOB3.js} +1 -1
  23. package/dist/client/assets/{Sector-TqT6X53T.js → Sector-CjACZniY.js} +1 -1
  24. package/dist/client/assets/{ShoppingBag01-CJPq-mn3.js → ShoppingBag01-CnpFPbsS.js} +1 -1
  25. package/dist/client/assets/{Sun-3gw5TBRM.js → Sun-CnfUJ0L6.js} +1 -1
  26. package/dist/client/assets/{Tool01-Dd7igGPM.js → Tool01-lC3aADL7.js} +1 -1
  27. package/dist/client/assets/{Trash01-5a67oVPj.js → Trash01-DV0azdbE.js} +1 -1
  28. package/dist/client/assets/{Upload01-B3VzWbAA.js → Upload01-DK8FpPmK.js} +1 -1
  29. package/dist/client/assets/{User01-DRLDcqZB.js → User01-BY20MgLM.js} +1 -1
  30. package/dist/client/assets/{UserSquare-EoQ6nRn7.js → UserSquare-bfdtEra2.js} +1 -1
  31. package/dist/client/assets/{Users01-MkVzddym.js → Users01-qvvwVlrt.js} +1 -1
  32. package/dist/client/assets/{X-OQ3vfwBp.js → X-CMwuaze4.js} +1 -1
  33. package/dist/client/assets/{XAxis-D1CIlAov.js → XAxis-WGIN87ND.js} +1 -1
  34. package/dist/client/assets/{XClose-CLkNA1fZ.js → XClose-CzlFjlez.js} +1 -1
  35. package/dist/client/assets/{ZoomOut-RxJ7nETy.js → ZoomOut-D_ifUcHu.js} +1 -1
  36. package/dist/client/assets/{access-gate-Dm0Y8BrA.js → access-gate-BOQqTHG4.js} +1 -1
  37. package/dist/client/assets/{add-connection-dialog-CohlF0gi.js → add-connection-dialog-BxahNv4G.js} +1 -1
  38. package/dist/client/assets/{agent-analytics-CwEFxGCv.js → agent-analytics-CGaZnDet.js} +1 -1
  39. package/dist/client/assets/agent-app-HRhkGt4e.js +1 -0
  40. package/dist/client/assets/{agent-assets-C0uPqf_o.js → agent-assets-DgwRmMX3.js} +1 -1
  41. package/dist/client/assets/{agent-automation-CI-90_Nr.js → agent-automation-Dmx4CuOb.js} +1 -1
  42. package/dist/client/assets/{agent-automations-DirERrY_.js → agent-automations-D49rFQFC.js} +1 -1
  43. package/dist/client/assets/{agent-connect-sources-8klTBWge.js → agent-connect-sources-C7wp22k7.js} +1 -1
  44. package/dist/client/assets/agent-deck-C3svsy7Z.js +1 -0
  45. package/dist/client/assets/{agent-e2e-65dyEHOi.js → agent-e2e-DNfKyrDH.js} +1 -1
  46. package/dist/client/assets/{agent-experiments-BkZ7OhO1.js → agent-experiments-CxFez-pk.js} +1 -1
  47. package/dist/client/assets/{agent-file-Cibn8hOj.js → agent-file-CeVg9xBG.js} +1 -1
  48. package/dist/client/assets/{agent-git-DE4S26JT.js → agent-git-CTSmRbRs.js} +1 -1
  49. package/dist/client/assets/{agent-hosting-DgICvzZz.js → agent-hosting-DKHsCemp.js} +1 -1
  50. package/dist/client/assets/{agent-icon-DMUppBcz.js → agent-icon-DV55KTHV.js} +1 -1
  51. package/dist/client/assets/agent-library-BseoXsKi.js +1 -0
  52. package/dist/client/assets/agent-library-file-D-k7ToJp.js +1 -0
  53. package/dist/client/assets/{agent-monitor-DIoua9I6.js → agent-monitor-CmWO_xKA.js} +1 -1
  54. package/dist/client/assets/{agent-overview-DYI1rW5v.js → agent-overview-QZEmtrKn.js} +1 -1
  55. package/dist/client/assets/agent-settings-DqFfgmc7.js +1 -0
  56. package/dist/client/assets/{agent-site-editor-DGkqvDIU.js → agent-site-editor-A-DuGZL1.js} +1 -1
  57. package/dist/client/assets/agent-site-editor-code-4yF8GVCZ.js +2 -0
  58. package/dist/client/assets/{agent-site-editor-content-BUVUdrTT.js → agent-site-editor-content-D1GHZfYW.js} +3 -3
  59. package/dist/client/assets/{agent-site-editor-preview-CNLEo6DL.js → agent-site-editor-preview-RNdb_aLF.js} +3 -3
  60. package/dist/client/assets/agent-view-CASURRu4.js +1 -0
  61. package/dist/client/assets/{agent-view-guard-DI25VnLM.js → agent-view-guard-C6pPHYLM.js} +1 -1
  62. package/dist/client/assets/{agents-list-ECR9La-G.js → agents-list-DrZwJdgg.js} +1 -1
  63. package/dist/client/assets/{ai-providers-CJ1m1BGV.js → ai-providers-C3SDK-es.js} +1 -1
  64. package/dist/client/assets/{alert-abom0PnI.js → alert-D3UeuoXv.js} +1 -1
  65. package/dist/client/assets/{alert-dialog-BlGQ5aR_.js → alert-dialog-D5ehbgbg.js} +1 -1
  66. package/dist/client/assets/{analytics-sections-DlIRabZK.js → analytics-sections-8tMy3NSb.js} +1 -1
  67. package/dist/client/assets/{api-keys-BCiRhzoE.js → api-keys-BGIqZi8b.js} +1 -1
  68. package/dist/client/assets/api-keys-DQMXRZDM.js +1 -0
  69. package/dist/client/assets/{app-editor-FvngsWxE.js → app-editor-BhQAjgpO.js} +1 -1
  70. package/dist/client/assets/{asset-utils-BN1s8bsE.js → asset-utils-CzXHTnwN.js} +1 -1
  71. package/dist/client/assets/{auth-zVBOuttQ.js → auth-D62PuyHX.js} +1 -1
  72. package/dist/client/assets/{auth-catchall-C5dIeWj7.js → auth-catchall-B3J-GACW.js} +1 -1
  73. package/dist/client/assets/{auth-entry-DDaeQ5qC.js → auth-entry-BWhEuRSI.js} +1 -1
  74. package/dist/client/assets/{auth-split-layout-BeDfpXyu.js → auth-split-layout-5urTf-8R.js} +1 -1
  75. package/dist/client/assets/{authenticate-and-persist-oauth-DTnPLNmp.js → authenticate-and-persist-oauth-DoNypqY8.js} +1 -1
  76. package/dist/client/assets/{automation-list-row-zeocUcRy.js → automation-list-row-6V6__o_w.js} +1 -1
  77. package/dist/client/assets/{automation-runs-HaKdOgSB.js → automation-runs-DJ3rlQae.js} +1 -1
  78. package/dist/client/assets/{automations-CRCGFkLf.js → automations-DNX-Z3mR.js} +1 -1
  79. package/dist/client/assets/{autosend-BMuGk3J_.js → autosend-_7Pn3AYs.js} +1 -1
  80. package/dist/client/assets/{avatar-Qof2vVxs.js → avatar-HeVuI3WS.js} +1 -1
  81. package/dist/client/assets/{badge-DlBGBPxK.js → badge-DLk0uZg2.js} +1 -1
  82. package/dist/client/assets/{block-document-B5zdti7F.js → block-document-HwHxH7Bn.js} +1 -1
  83. package/dist/client/assets/{blocks-preview-workspace-context-D3LL6lji.js → blocks-preview-workspace-context-0CY5kK_i.js} +1 -1
  84. package/dist/client/assets/{buckets-IXwR7i0v.js → buckets-DNXFJJmf.js} +1 -1
  85. package/dist/client/assets/{build-improve-prompt-doc-DaYmg433.js → build-improve-prompt-doc-DiiRh6vZ.js} +1 -1
  86. package/dist/client/assets/{calendar-D8H2edgl.js → calendar-Bs93rBUA.js} +1 -1
  87. package/dist/client/assets/{capability-load-error-MHa6jDJE.js → capability-load-error-C1opTYYa.js} +1 -1
  88. package/dist/client/assets/{category-editor-B3IqImuK.js → category-editor-BzSt35e8.js} +1 -1
  89. package/dist/client/assets/{chart-BUg0iLD-.js → chart-BswBR4td.js} +1 -1
  90. package/dist/client/assets/{chat-context-BT_fCIwJ.js → chat-context-CocIg825.js} +1 -1
  91. package/dist/client/assets/{chat-draft-BOf2ssWg.js → chat-draft-DVoUlwJ3.js} +1 -1
  92. package/dist/client/assets/{checkbox-9g6HUE3a.js → checkbox-C-jsWi4f.js} +1 -1
  93. package/dist/client/assets/{choose-editor-DR-Q9Tls.js → choose-editor-BmR7SGph.js} +1 -1
  94. package/dist/client/assets/{claim-phase-copy-Cxwhb3Ei.js → claim-phase-copy-DM-AWuNF.js} +1 -1
  95. package/dist/client/assets/{cli-auth-success-DIcIngZb.js → cli-auth-success-BB8BjOg-.js} +1 -1
  96. package/dist/client/assets/{client-icons-C-8n2EwW.js → client-icons-DLhmJ_Wc.js} +1 -1
  97. package/dist/client/assets/{collapsible-BOm0wEHE.js → collapsible-CuGEZkc7.js} +1 -1
  98. package/dist/client/assets/{collection-detail-Bk1USTX-.js → collection-detail-Df1t4CiZ.js} +1 -1
  99. package/dist/client/assets/{collection-display-button-jqsA8Fhq.js → collection-display-button-DcAXDLtF.js} +1 -1
  100. package/dist/client/assets/{collection-search-306OP2vT.js → collection-search-BVdAr8z7.js} +1 -1
  101. package/dist/client/assets/{collection-table-wrapper-BhV7xJ_P.js → collection-table-wrapper-qlvTDDfb.js} +1 -1
  102. package/dist/client/assets/{collection-tabs-B0KzfANL.js → collection-tabs-D--zl7tk.js} +1 -1
  103. package/dist/client/assets/{combobox-ZiooVuFh.js → combobox-CaxzDpIX.js} +1 -1
  104. package/dist/client/assets/{command-DdkhWyIl.js → command-C0uSVAHC.js} +1 -1
  105. package/dist/client/assets/{companion-mcps-section-UHFj7Oex.js → companion-mcps-section-tdKhwU79.js} +1 -1
  106. package/dist/client/assets/{config-BtdszJOe.js → config-BTAHIKaz.js} +1 -1
  107. package/dist/client/assets/{connect-CefYFLnb.js → connect-Bj2cQ3O8.js} +1 -1
  108. package/dist/client/assets/{connect-layout-6S5UXZM1.js → connect-layout-CbgMWnkc.js} +1 -1
  109. package/dist/client/assets/{connection-Bam5fQyG.js → connection-CWiycsnd.js} +1 -1
  110. package/dist/client/assets/{connection-card-zwY0dB-Z.js → connection-card-DINEZcyg.js} +1 -1
  111. package/dist/client/assets/{connection-detail-Cl8J0WoF.js → connection-detail-FkV9ORDZ.js} +1 -1
  112. package/dist/client/assets/{connection-form-helpers-BOQir9cM.js → connection-form-helpers-C825tgC1.js} +1 -1
  113. package/dist/client/assets/{connections-BUxB-KAl.js → connections-D8I3589k.js} +1 -1
  114. package/dist/client/assets/{context-9Q6zyGsg.js → context-DQeq5C_R.js} +1 -1
  115. package/dist/client/assets/{context-menu-DkHY6iSU.js → context-menu-BZtI-iYm.js} +1 -1
  116. package/dist/client/assets/{create-organization-dialog-rOUQf0Oy.js → create-organization-dialog-7qPWrl6e.js} +1 -1
  117. package/dist/client/assets/{daily-pulse-BrRUUREQ.js → daily-pulse-Bkk6WmeP.js} +1 -1
  118. package/dist/client/assets/{decopilot-BJE0q6o0.js → decopilot-2FFmwoNB.js} +1 -1
  119. package/dist/client/assets/{device-hint-C3jeUFCs.js → device-hint-DffcSqg_.js} +1 -1
  120. package/dist/client/assets/{dialog-CshkwPdi.js → dialog-Dw8xcjW3.js} +1 -1
  121. package/dist/client/assets/{discover-Dr7cCDLx.js → discover-DIOje2Ib.js} +1 -1
  122. package/dist/client/assets/{domain-settings-BqKmwW-G.js → domain-settings-8z8kLU4n.js} +1 -1
  123. package/dist/client/assets/{download-app-dialog-CNKP1j9Z.js → download-app-dialog-BSYwZSLo.js} +1 -1
  124. package/dist/client/assets/{drawer-CHF6n3YP.js → drawer-Dt1DFlEt.js} +1 -1
  125. package/dist/client/assets/{editor-Cbpxq8Y7.js → editor-CX3cazY1.js} +1 -1
  126. package/dist/client/assets/{empty-state-s5KfHMUL.js → empty-state-BE9_fazN.js} +1 -1
  127. package/dist/client/assets/{empty-state-DCZJyNOr.js → empty-state-Dt2YybO3.js} +1 -1
  128. package/dist/client/assets/{extract-connection-data-CcjZtPjH.js → extract-connection-data-Cb2jVjCO.js} +1 -1
  129. package/dist/client/assets/{feature-gate-DBAyKLUo.js → feature-gate-B0_tSsnV.js} +1 -1
  130. package/dist/client/assets/{feature-paywall-DjjdhYl3.js → feature-paywall-BgH7Ln-V.js} +1 -1
  131. package/dist/client/assets/{file-explorer-Cnv88ItB.js → file-explorer-Cbx1Ahiy.js} +1 -1
  132. package/dist/client/assets/{file-preview-AD02XtIo.js → file-preview-BiCTzlao.js} +1 -1
  133. package/dist/client/assets/{file-share-button-BvfvBfb3.js → file-share-button-nPArR5GT.js} +1 -1
  134. package/dist/client/assets/{file-type-icon-Ql8bNsbu.js → file-type-icon-DY-An3SA.js} +1 -1
  135. package/dist/client/assets/flat-project-D6pOpnSj.js +1 -0
  136. package/dist/client/assets/{folder-icon-yW_It0yE.js → folder-icon-BXdHDD5F.js} +1 -1
  137. package/dist/client/assets/{form-DC-OZkLI.js → form-CqyDHzdF.js} +1 -1
  138. package/dist/client/assets/{gateway-client-BGYFNhpz.js → gateway-client-Dv06lV8N.js} +1 -1
  139. package/dist/client/assets/{general-EkTQtKKI.js → general-m3RIl8ZM.js} +1 -1
  140. package/dist/client/assets/{home--qtejwp1.js → home-DP-XCZ30.js} +1 -1
  141. package/dist/client/assets/{icon-button-DznMa322.js → icon-button-CzDbjYoM.js} +1 -1
  142. package/dist/client/assets/{index-Ce5zRo1E.js → index-8hvPIbgz.js} +1 -1
  143. package/dist/client/assets/{index-Bj_mB4Z1.js → index-BBMPGKIn.js} +1 -1
  144. package/dist/client/assets/{index-DjWuJPor.js → index-BMb0J2ET.js} +1 -1
  145. package/dist/client/assets/{index-CYF4A_PA.js → index-B_4zzu3P.js} +1 -1
  146. package/dist/client/assets/{index-Du2WlkP0.js → index-Co-4sRnJ.js} +2 -2
  147. package/dist/client/assets/{index-qPYY6GgG.js → index-D0owq1f2.js} +1 -1
  148. package/dist/client/assets/{index-Be8XqOdc.js → index-D7VCPHbB.js} +3 -3
  149. package/dist/client/assets/{index-CmUTFx8q.js → index-DA-4uVv2.js} +1 -1
  150. package/dist/client/assets/{index-CpDmId9B.js → index-DcYvMhsA.js} +1 -1
  151. package/dist/client/assets/{index-DmFJLtCr.js → index-Dfk-aa2W.js} +1 -1
  152. package/dist/client/assets/{index-DEHZTLnD.js → index-DySHyK_e.js} +1 -1
  153. package/dist/client/assets/{index-D-UOMZZ_.js → index-DyphIbgX.js} +1 -1
  154. package/dist/client/assets/{index-DMbzNFov.js → index-MAF8_efg.js} +1 -1
  155. package/dist/client/assets/{index-igcUp6px.js → index-P52tuAKC.js} +1 -1
  156. package/dist/client/assets/{index-D57k3t6w.js → index-jL0svWh-.js} +1 -1
  157. package/dist/client/assets/{index-redirect-CHyGD5U8.js → index-redirect-CrmLnSSn.js} +1 -1
  158. package/dist/client/assets/{infiniteQueryObserver-CykMAwkD.js → infiniteQueryObserver-DJ3A-TdU.js} +1 -1
  159. package/dist/client/assets/{infra-billing-UsSMRdsv.js → infra-billing-D6q7wZ_0.js} +1 -1
  160. package/dist/client/assets/{input-DXtLlTqd.js → input-BxLUTBXU.js} +1 -1
  161. package/dist/client/assets/{input-BrdR9egr.js → input-CKfCW4iw.js} +1 -1
  162. package/dist/client/assets/{input-D-vTzgs2.js → input-COrt256w.js} +3 -3
  163. package/dist/client/assets/{integration-icon-CViStXoz.js → integration-icon-CNlbbwne.js} +1 -1
  164. package/dist/client/assets/{label-58Qw-JZE.js → label-DU_w-ckQ.js} +1 -1
  165. package/dist/client/assets/{layout-Dy2f9QXX.js → layout-DpzNGU1W.js} +1 -1
  166. package/dist/client/assets/{legacy-agents-deep-BmwavNSc.js → legacy-agents-deep-D0IhRF5B.js} +1 -1
  167. package/dist/client/assets/{legacy-main-redirect-DrJ-p-Kd.js → legacy-main-redirect-Bp-dMEE0.js} +1 -1
  168. package/dist/client/assets/{library-tab-BB_wHV8x.js → library-tab-B5SoCSuy.js} +1 -1
  169. package/dist/client/assets/library-zwZu2XHX.js +1 -0
  170. package/dist/client/assets/{login-CUQf3CCF.js → login-BabWcQ2i.js} +1 -1
  171. package/dist/client/assets/{markdown-DLKu3YBc.js → markdown-C9QLOL7g.js} +1 -1
  172. package/dist/client/assets/{mcp-app-renderer-4bIAEgtP.js → mcp-app-renderer-BUT4kPR2.js} +1 -1
  173. package/dist/client/assets/{mcp-oauth-Cnjp3DGr.js → mcp-oauth-BimxrF_f.js} +1 -1
  174. package/dist/client/assets/{members-DSkxtFMH.js → members-Bl784KGm.js} +1 -1
  175. package/dist/client/assets/{message-templates-B8x-h3FT.js → message-templates-QcL4DUmR.js} +1 -1
  176. package/dist/client/assets/{mini-report-page-hiIphID1.js → mini-report-page-c9TkUi0R.js} +1 -1
  177. package/dist/client/assets/{mock-board-BNVDzwoJ.js → mock-board-C0ZR6UK2.js} +1 -1
  178. package/dist/client/assets/{monaco-editor-B6rEE-o8.js → monaco-editor-CCbTu1Zq.js} +1 -1
  179. package/dist/client/assets/{monitoring-stats-row-BZIDgSPg.js → monitoring-stats-row-Cr6UHFNA.js} +1 -1
  180. package/dist/client/assets/{multi-select-CAetsNJk.js → multi-select-9oN2iBx_.js} +1 -1
  181. package/dist/client/assets/{mustache-C_Baug6A.js → mustache-CKo61BiR.js} +1 -1
  182. package/dist/client/assets/{new-project-dialog-Su3Gi1wb.js → new-project-dialog-CzRX3bqD.js} +1 -1
  183. package/dist/client/assets/{oauth-callback-DFgAmcry.js → oauth-callback-DXsrYo58.js} +1 -1
  184. package/dist/client/assets/{oauth-callback-ai-provider-B6MpHaz9.js → oauth-callback-ai-provider-COzXSgab.js} +1 -1
  185. package/dist/client/assets/{onboarding-YT3O5Ww5.js → onboarding-DOpWWbfX.js} +1 -1
  186. package/dist/client/assets/{openai-conversation-IgCPp4x2.js → openai-conversation-BQ0qlnvJ.js} +1 -1
  187. package/dist/client/assets/{optimistic-project-sidebar-views-Dtk6hOjd.js → optimistic-project-sidebar-views-D4Emai-D.js} +1 -1
  188. package/dist/client/assets/{org-file-open-context-BnLB4jSd.js → org-file-open-context-CgCmoW9s.js} +1 -1
  189. package/dist/client/assets/{organization-choice-B4gAqtuw.js → organization-choice-COxWAOgI.js} +1 -1
  190. package/dist/client/assets/{orgs-DRmr2z_c.js → orgs-DqUwa1rJ.js} +1 -1
  191. package/dist/client/assets/{page-seo-form-DcDcC29Z.js → page-seo-form-Bi__p_tv.js} +1 -1
  192. package/dist/client/assets/{pair-BOkfANVb.js → pair-BWDj_GIt.js} +1 -1
  193. package/dist/client/assets/{plan-ladder-DKUy9zvx.js → plan-ladder-PugCzyO6.js} +1 -1
  194. package/dist/client/assets/{popover-Co_XiyUD.js → popover-DmlD7L54.js} +1 -1
  195. package/dist/client/assets/{post-calendar-DiLnFXng.js → post-calendar-_G3C9FIJ.js} +1 -1
  196. package/dist/client/assets/{post-editor-lWAU23BO.js → post-editor-CQmc7dyT.js} +1 -1
  197. package/dist/client/assets/{preview-content-CicDgAha.js → preview-content-mZxKtDk3.js} +1 -1
  198. package/dist/client/assets/{preview-dialog-BV7MNp9u.js → preview-dialog-DBbT1IPw.js} +1 -1
  199. package/dist/client/assets/{profile-C_cvXn18.js → profile-BZHYLZQF.js} +1 -1
  200. package/dist/client/assets/{project-app-view-BgWpED_j.js → project-app-view-DHhfL06M.js} +1 -1
  201. package/dist/client/assets/{project-feed-wW0-SKIU.js → project-feed-BAQmClh0.js} +1 -1
  202. package/dist/client/assets/{project-icon-Dv5tiaQd.js → project-icon-CIt25m1v.js} +1 -1
  203. package/dist/client/assets/project-reports-BPgQePan.js +1 -0
  204. package/dist/client/assets/project-tasks-Bodr6bBn.js +1 -0
  205. package/dist/client/assets/{projects-Co9ht4r6.js → projects-DkzfKq0o.js} +1 -1
  206. package/dist/client/assets/{projects-empty-state-BHPOYJE0.js → projects-empty-state-CGWR-feW.js} +1 -1
  207. package/dist/client/assets/{prompts-CVWS3bwz.js → prompts-DnC6lyZl.js} +1 -1
  208. package/dist/client/assets/record-editor-CWa5kuX3.js +1 -0
  209. package/dist/client/assets/{redirect-editor-B6A9VxnV.js → redirect-editor-CchUa0et.js} +1 -1
  210. package/dist/client/assets/{reports-BKkJRR46.js → reports-CywIxjj0.js} +1 -1
  211. package/dist/client/assets/reports-DE_iinGQ.js +1 -0
  212. package/dist/client/assets/{reports-onboarding-BYe6k6j4.js → reports-onboarding-BwNbweYr.js} +1 -1
  213. package/dist/client/assets/{reports-tab-O2SVn8O7.js → reports-tab-E_94bQMh.js} +2 -2
  214. package/dist/client/assets/{repositories-CAb_k7u1.js → repositories-D18-e4Ht.js} +1 -1
  215. package/dist/client/assets/{repository-binding-1HKJG2dU.js → repository-binding-B0HdN6Lz.js} +1 -1
  216. package/dist/client/assets/{repository-import-picker-BMdxix12.js → repository-import-picker-DBLmxazs.js} +1 -1
  217. package/dist/client/assets/{repository-picker-Bnum34GQ.js → repository-picker-DIAetLTu.js} +1 -1
  218. package/dist/client/assets/{require-capability-CXxUD-ot.js → require-capability-ngDTKpk-.js} +1 -1
  219. package/dist/client/assets/{required-auth-layout-eWdAXpWY.js → required-auth-layout-miKcB0rt.js} +1 -1
  220. package/dist/client/assets/{reset-password-_vRZ9PJ3.js → reset-password-goI4AN3o.js} +1 -1
  221. package/dist/client/assets/{resizable-DjwgNCy-.js → resizable-CpyyJXRZ.js} +1 -1
  222. package/dist/client/assets/{resolve-tab-icon-Bak8BAHs.js → resolve-tab-icon-CRFTmUo8.js} +1 -1
  223. package/dist/client/assets/{review-settings-DrthTknh.js → review-settings-bh0EyH5K.js} +1 -1
  224. package/dist/client/assets/{rich-text-link-control-x-muwvTw.js → rich-text-link-control-Co6k6OlH.js} +1 -1
  225. package/dist/client/assets/{roles-BDQAmSdr.js → roles-Dfc6a85e.js} +1 -1
  226. package/dist/client/assets/{route-DpX8cahE.js → route-BUFpECc9.js} +1 -1
  227. package/dist/client/assets/{route-BiWPnB6n.js → route-CrrxgfJi.js} +1 -1
  228. package/dist/client/assets/route-DAkaBbdM.js +1 -0
  229. package/dist/client/assets/{runnable-block-editor-DSAD7aE-.js → runnable-block-editor-CDsWwzF6.js} +1 -1
  230. package/dist/client/assets/{sandbox-lifecycle-context--jotIhMM.js → sandbox-lifecycle-context-FrgKEa4u.js} +1 -1
  231. package/dist/client/assets/{schema-DOdBNr_5.js → schema-Bg7Z4WK1.js} +1 -1
  232. package/dist/client/assets/{scroll-area-lO44Io7n.js → scroll-area-B-lzB5tO.js} +1 -1
  233. package/dist/client/assets/{search-input-fvGBtM5d.js → search-input-DxispljN.js} +1 -1
  234. package/dist/client/assets/{search-toggle-BSZDhrIY.js → search-toggle-BUr7OpuE.js} +1 -1
  235. package/dist/client/assets/{secret-picker-DOB7eKqI.js → secret-picker-Cdibhh7U.js} +1 -1
  236. package/dist/client/assets/{secrets-DpyoMent.js → secrets-CConrVDh.js} +1 -1
  237. package/dist/client/assets/{sections-editor-CMuJbJDO.js → sections-editor-0i-naoBY.js} +1 -1
  238. package/dist/client/assets/{select-D1BEDRG_.js → select-CZTYe-RM.js} +1 -1
  239. package/dist/client/assets/{select-model-Bub7WoQJ.js → select-model-CTMl4DBk.js} +1 -1
  240. package/dist/client/assets/{seo-editor-B53rrMzz.js → seo-editor-Bu8hE-fM.js} +1 -1
  241. package/dist/client/assets/{separator-BkTX5fcO.js → separator-D1tnRKZk.js} +1 -1
  242. package/dist/client/assets/{settings-tab-DvpoIy1J.js → settings-tab-Bn1uHMT_.js} +1 -1
  243. package/dist/client/assets/{sheet-B4JDck22.js → sheet-DYXq70sZ.js} +1 -1
  244. package/dist/client/assets/{shell-layout-5_bP0b9R.js → shell-layout-HGSCI1cW.js} +1 -1
  245. package/dist/client/assets/{skills-nq0zSapq.js → skills-DiX3Wo9s.js} +1 -1
  246. package/dist/client/assets/{sso-DyEuvpFw.js → sso-B97iUHe5.js} +1 -1
  247. package/dist/client/assets/{suggestion-CEb70Zl1.js → suggestion-BkHBW1eO.js} +1 -1
  248. package/dist/client/assets/{switch-C4-fOrxd.js → switch-BGCsiekK.js} +1 -1
  249. package/dist/client/assets/{synced-repos-T4pMflc0.js → synced-repos-jTLgevgn.js} +1 -1
  250. package/dist/client/assets/{tab-icon-glyph-ClsFil2N.js → tab-icon-glyph--MlM4zGI.js} +1 -1
  251. package/dist/client/assets/{table-Dt9K5CoM.js → table-CPY_9uUo.js} +1 -1
  252. package/dist/client/assets/{tabs-CmlgRJbo.js → tabs-aXag5nk_.js} +1 -1
  253. package/dist/client/assets/{task-board-D6xVkaAN.js → task-board-DV8c5Zhu.js} +1 -1
  254. package/dist/client/assets/{task-route-DELc3WQr.js → task-route-DkUw5kJo.js} +1 -1
  255. package/dist/client/assets/{task-status-S7aOsKan.js → task-status-C1rdpmGX.js} +1 -1
  256. package/dist/client/assets/{taskboard-analytics-BzDyQ1Z-.js → taskboard-analytics-DXhKcjBe.js} +1 -1
  257. package/dist/client/assets/{tasks-BDF2zDVL.js → tasks-4av_39uG.js} +1 -1
  258. package/dist/client/assets/tasks-DMbENiIa.js +1 -0
  259. package/dist/client/assets/{textarea-0prb_Emi.js → textarea-BwFbzFhR.js} +1 -1
  260. package/dist/client/assets/{thread-analytics-Co_tbfAx.js → thread-analytics-ZZSgMAeG.js} +1 -1
  261. package/dist/client/assets/{thread-button-K3nnM2Jj.js → thread-button-D-dNsXV2.js} +1 -1
  262. package/dist/client/assets/{thread-intent-CzXA7HyL.js → thread-intent-B5r6uX01.js} +1 -1
  263. package/dist/client/assets/{thread-route-B_-rBMiW.js → thread-route-BAsLNDrI.js} +1 -1
  264. package/dist/client/assets/{thread-route-Cby7AcAM.js → thread-route-BtbKeVmC.js} +1 -1
  265. package/dist/client/assets/{thread-sheet-body-FH7CMgMX.js → thread-sheet-body-DITXlsnG.js} +1 -1
  266. package/dist/client/assets/{toggle-group-DcI3Rbbl.js → toggle-group-CSB3oZUC.js} +1 -1
  267. package/dist/client/assets/{toolbar-icon-button-BRDGqYqz.js → toolbar-icon-button-C8w8sPNx.js} +1 -1
  268. package/dist/client/assets/{tooltip-CBM_j-A9.js → tooltip-CYfkikaX.js} +1 -1
  269. package/dist/client/assets/{track-C8VihVBg.js → track-CsuwcppY.js} +1 -1
  270. package/dist/client/assets/{types-BXmxY_2k.js → types-FVrLJnQ_.js} +1 -1
  271. package/dist/client/assets/{usage-stats-CGc489dq.js → usage-stats-B5xe2MvZ.js} +1 -1
  272. package/dist/client/assets/{use-ai-providers-4MxbSPqM.js → use-ai-providers-zPZTeTn6.js} +1 -1
  273. package/dist/client/assets/{use-automations-DEGyd9it.js → use-automations-DBkOR8ED.js} +1 -1
  274. package/dist/client/assets/{use-autosave-BxBqL1Yt.js → use-autosave-xZ5zN50O.js} +1 -1
  275. package/dist/client/assets/{use-chat-layout-state-BiDmge4s.js → use-chat-layout-state-_hTo6qiX.js} +1 -1
  276. package/dist/client/assets/{use-connect-companion-OCXk3aJz.js → use-connect-companion-PwrgKsDQ.js} +1 -1
  277. package/dist/client/assets/{use-connection-BPxGVk9k.js → use-connection-DzHiClla.js} +1 -1
  278. package/dist/client/assets/{use-copy-C4UTClGi.js → use-copy-kTB71Cx6.js} +1 -1
  279. package/dist/client/assets/{use-create-virtual-mcp-Dlv5X9b4.js → use-create-virtual-mcp-BXXlVaJ1.js} +1 -1
  280. package/dist/client/assets/{use-date-fns-locale-Zd02y8z7.js → use-date-fns-locale-DmITod04.js} +1 -1
  281. package/dist/client/assets/{use-debounced-autosave-DSvIjd9B.js → use-debounced-autosave-8CpUK2dy.js} +1 -1
  282. package/dist/client/assets/{use-debounced-value-Hi5DwWll.js → use-debounced-value-DDoK_9IU.js} +1 -1
  283. package/dist/client/assets/{use-deco-credits-CGSwGByQ.js → use-deco-credits-DIzsZghd.js} +1 -1
  284. package/dist/client/assets/{use-decopilot-events-DtADALaV.js → use-decopilot-events-BZEZhg3r.js} +1 -1
  285. package/dist/client/assets/{use-delete-connection-DPp7GEJY.js → use-delete-connection-DDnKZtgg.js} +1 -1
  286. package/dist/client/assets/{use-deployment-admin-CfpfquDc.js → use-deployment-admin-ApUENcoe.js} +1 -1
  287. package/dist/client/assets/{use-fast-preview-draft-url-CLCZ4aVE.js → use-fast-preview-draft-url-BZzWJ74e.js} +1 -1
  288. package/dist/client/assets/{use-file-configs-D8tlssbt.js → use-file-configs-Dckq5B6h.js} +1 -1
  289. package/dist/client/assets/{use-infinite-scroll-C_Nczdx_.js → use-infinite-scroll-CaES8Ly6.js} +1 -1
  290. package/dist/client/assets/{use-join-requests-D8MKTYaJ.js → use-join-requests-CKlzLYmF.js} +1 -1
  291. package/dist/client/assets/{use-main-panel-tabs-BdN2kvAd.js → use-main-panel-tabs-BEaE1an6.js} +1 -1
  292. package/dist/client/assets/{use-mcp-auth-status-BhzPxq2U.js → use-mcp-auth-status-CEJ_jWCe.js} +1 -1
  293. package/dist/client/assets/{use-mcp-client-BGwc0_aG.js → use-mcp-client-huiboiuW.js} +1 -1
  294. package/dist/client/assets/{use-mcp-prompts-DAbiwecO.js → use-mcp-prompts-CK7nTCfz.js} +1 -1
  295. package/dist/client/assets/{use-mcp-tools-Bryi_4Hu.js → use-mcp-tools-DrNXuvH-.js} +1 -1
  296. package/dist/client/assets/{use-members-D1ReT2Rd.js → use-members-Czj8Or22.js} +1 -1
  297. package/dist/client/assets/{use-mobile-DW2X9sww.js → use-mobile-C_c7X_X9.js} +1 -1
  298. package/dist/client/assets/{use-navigate-to-agent-KxGV60Dd.js → use-navigate-to-agent-B8uYHMgO.js} +1 -1
  299. package/dist/client/assets/use-new-blocks-editor-DRI-powp.js +1 -0
  300. package/dist/client/assets/{use-open-billing-url-C-a_tMdF.js → use-open-billing-url-ClFzvK5L.js} +1 -1
  301. package/dist/client/assets/{use-org-auth-client-CP32u1RF.js → use-org-auth-client-DGMlZ1DJ.js} +1 -1
  302. package/dist/client/assets/{use-org-fs-DdUjMTXp.js → use-org-fs-Zkz7cnFM.js} +1 -1
  303. package/dist/client/assets/{use-org-repo-syncs-UqfziudL.js → use-org-repo-syncs-Bl-zLisR.js} +1 -1
  304. package/dist/client/assets/{use-org-sso-sCMMN9gF.js → use-org-sso-WomPaWOu.js} +1 -1
  305. package/dist/client/assets/{use-organization-roles-DSRTwXVY.js → use-organization-roles-D0rAtkDp.js} +1 -1
  306. package/dist/client/assets/{use-organization-settings-CFjSMs5I.js → use-organization-settings-BXIx1FLP.js} +1 -1
  307. package/dist/client/assets/{use-panel-navigate-CJDpCpnr.js → use-panel-navigate-9QHW-FCg.js} +1 -1
  308. package/dist/client/assets/{use-project-scope-DEPThRAR.js → use-project-scope-Bn-XeyFm.js} +1 -1
  309. package/dist/client/assets/{use-releases-BV_LgkCY.js → use-releases-DXjAp2xg.js} +1 -1
  310. package/dist/client/assets/{use-reports-diagnostic-CJOy6zdH.js → use-reports-diagnostic-MPgYdKXV.js} +1 -1
  311. package/dist/client/assets/{use-secrets-D5Eh5WEG.js → use-secrets-oQfbwqKQ.js} +1 -1
  312. package/dist/client/assets/{use-section-preview-base-BZUgxJo5.js → use-section-preview-base-CmEtoGbE.js} +1 -1
  313. package/dist/client/assets/{use-session-runtime-B4jHGSPb.js → use-session-runtime-Mt5i1NtG.js} +1 -1
  314. package/dist/client/assets/{use-tags-Ce2CBj-h.js → use-tags-Bbqw8zS9.js} +1 -1
  315. package/dist/client/assets/{use-task-board-analytics-gxAXUY4n.js → use-task-board-analytics-_GYuIvYU.js} +1 -1
  316. package/dist/client/assets/{use-task-board-events-ChPcPJPj.js → use-task-board-events-CHHrBRNs.js} +1 -1
  317. package/dist/client/assets/{use-task-metadata-Z9tkfxGE.js → use-task-metadata-Bwd62AhF.js} +1 -1
  318. package/dist/client/assets/{use-thread-analytics-CAtM9WJh.js → use-thread-analytics-BHXCrsPt.js} +1 -1
  319. package/dist/client/assets/{use-thread-outputs-ry0pTMEU.js → use-thread-outputs-DWqKD4Kd.js} +1 -1
  320. package/dist/client/assets/useInfiniteQuery-BbXVrX4k.js +1 -0
  321. package/dist/client/assets/{useQueries-C1ewKEuW.js → useQueries-P_HReZM-.js} +1 -1
  322. package/dist/client/assets/useSuspenseInfiniteQuery-Ddc-zVFy.js +1 -0
  323. package/dist/client/assets/{users-BAInrhZu.js → users-D7Dbr_DI.js} +1 -1
  324. package/dist/client/assets/{utils-Cr60QAw9.js → utils-v5cDdvER.js} +1 -1
  325. package/dist/client/assets/{variant-calendar-yPYIHLCQ.js → variant-calendar-ANwfNoin.js} +1 -1
  326. package/dist/client/assets/{variant-matcher-override-BOJuXXVB.js → variant-matcher-override-UcAv0Nhz.js} +1 -1
  327. package/dist/client/assets/{view-mode-toggle-Cl1lfkcd.js → view-mode-toggle-DDXXNR3I.js} +1 -1
  328. package/dist/client/assets/{virtual-mcp-1qZjCZ09.js → virtual-mcp-TWIqdaTw.js} +1 -1
  329. package/dist/client/index.html +1 -1
  330. package/dist/server/cli.js +597 -595
  331. package/dist/server/migrate.js +154 -152
  332. package/dist/server/server.js +1 -1
  333. package/package.json +1 -1
  334. package/dist/client/assets/agent-app-DmybRMFO.js +0 -1
  335. package/dist/client/assets/agent-deck-RbNL3hWr.js +0 -1
  336. package/dist/client/assets/agent-library-B8lG5UG4.js +0 -1
  337. package/dist/client/assets/agent-library-file-BuJKMH9G.js +0 -1
  338. package/dist/client/assets/agent-settings-w3GUGNeB.js +0 -1
  339. package/dist/client/assets/agent-site-editor-code-BQ6Om0-k.js +0 -2
  340. package/dist/client/assets/agent-view-CML0NpVU.js +0 -1
  341. package/dist/client/assets/api-keys-m0XumOHa.js +0 -1
  342. package/dist/client/assets/flat-project-BbIN24kZ.js +0 -1
  343. package/dist/client/assets/library-BeLpQASQ.js +0 -1
  344. package/dist/client/assets/project-reports-C4BJLBQR.js +0 -1
  345. package/dist/client/assets/project-tasks-CNbMF13P.js +0 -1
  346. package/dist/client/assets/record-editor-CpdffT8c.js +0 -1
  347. package/dist/client/assets/reports-BPHAKeLt.js +0 -1
  348. package/dist/client/assets/route-A5Z0zH-S.js +0 -1
  349. package/dist/client/assets/tasks-D8uwJLml.js +0 -1
  350. package/dist/client/assets/use-new-blocks-editor-B8T1CzFC.js +0 -1
  351. package/dist/client/assets/useInfiniteQuery-DBJEu0oi.js +0 -1
  352. package/dist/client/assets/useSuspenseInfiniteQuery-BSRD8Fs9.js +0 -1
@@ -1,33 +1,33 @@
1
1
  // @bun
2
- var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null,x)}var m=(_,x)=>{for(var u in x)fT(_,u,{get:x[u],enumerable:!0,configurable:!0,set:ST.bind(x,u)})};import{Migrator as GT,sql as l}from"kysely";var r_={};m(r_,{up:()=>AT,down:()=>IT});import{sql as dK}from"kysely";async function AT(_){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",dK`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",dK`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function IT(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var e_={};m(e_,{up:()=>nT,down:()=>wT});import{sql as q}from"kysely";async function nT(_){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 q`ALTER TABLE organization_settings
2
+ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null,x)}var m=(_,x)=>{for(var u in x)fT(_,u,{get:x[u],enumerable:!0,configurable:!0,set:ST.bind(x,u)})};import{Migrator as yT,sql as q}from"kysely";var e_={};m(e_,{up:()=>AT,down:()=>IT});import{sql as sK}from"kysely";async function AT(_){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",sK`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",sK`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function IT(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var l_={};m(l_,{up:()=>nT,down:()=>wT});import{sql as g}from"kysely";async function nT(_){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 g`ALTER TABLE organization_settings
3
3
  DROP COLUMN IF EXISTS registry_config,
4
- DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await q`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
4
+ DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await g`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
5
5
  BEGIN RETURN value::jsonb;
6
6
  EXCEPTION WHEN invalid_text_representation THEN RETURN NULL;
7
7
  END;
8
- $fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await q`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
9
- WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await q`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await q`DELETE FROM connection_aggregations WHERE child_connection_id IN (
8
+ $fn$ LANGUAGE plpgsql IMMUTABLE`.execute(_),await g`UPDATE connections SET metadata = (registry_try_jsonb(metadata) - 'enabled_plugins')::text
9
+ WHERE registry_try_jsonb(metadata) ? 'enabled_plugins'`.execute(_),await g`DROP FUNCTION registry_try_jsonb(text)`.execute(_),await g`DELETE FROM connection_aggregations WHERE child_connection_id IN (
10
10
  SELECT id FROM connections
11
11
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
12
12
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
13
13
  OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')
14
- )`.execute(_),await q`DELETE FROM connections
14
+ )`.execute(_),await g`DELETE FROM connections
15
15
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
16
16
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
17
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function wT(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var l_={};m(l_,{up:()=>VT,down:()=>kT});import{sql as sK}from"kysely";async function VT(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await sK`
17
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function wT(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var d_={};m(d_,{up:()=>VT,down:()=>kT});import{sql as bK}from"kysely";async function VT(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await bK`
18
18
  select organization_id, metadata
19
19
  from connections
20
20
  where connection_type = 'VIRTUAL'
21
21
  and metadata like '%submoduleCredentials%'
22
22
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(N))continue;for(let z of N){let T=z?.host,E=z?.secretId;if(typeof T!=="string"||!T)continue;if(typeof E!=="string"||!E)continue;let $=u.get(C.organization_id)??new Map;$.set(T,E),u.set(C.organization_id,$)}}let K=new Date().toISOString();for(let[C,N]of u){let z=JSON.stringify([...N].map(([T,E])=>({host:T,secretId:E})));await sK`
23
+ `.execute(_),u=new Map;for(let C of x.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(N))continue;for(let z of N){let T=z?.host,E=z?.secretId;if(typeof T!=="string"||!T)continue;if(typeof E!=="string"||!E)continue;let $=u.get(C.organization_id)??new Map;$.set(T,E),u.set(C.organization_id,$)}}let K=new Date().toISOString();for(let[C,N]of u){let z=JSON.stringify([...N].map(([T,E])=>({host:T,secretId:E})));await bK`
24
24
  insert into organization_settings
25
25
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
26
  values (${C}, ${z}, ${K}, ${K})
27
27
  on conflict ("organizationId") do update
28
28
  set submodule_credentials = excluded.submodule_credentials,
29
29
  "updatedAt" = excluded."updatedAt"
30
- `.execute(_)}}async function kT(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var d_={};m(d_,{up:()=>pT,down:()=>vT});async function pT(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function vT(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var b_={};m(b_,{up:()=>qT,down:()=>gT});import{sql as s_}from"kysely";async function qT(_){await s_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await s_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await s_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function gT(_){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 xx={};m(xx,{up:()=>cT,down:()=>hT});import{sql as L}from"kysely";var iT={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"}},tT={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"}},_x={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function bK(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function _N(_,x){for(let[C,N]of[[L`organization_id || '_commerce-discovery'`,iT],[L`'commerce-discovery_' || organization_id`,tT]])for(let z of["title","description"]){let{from:T,to:E}=bK(N[z],x);await L`
30
+ `.execute(_)}}async function kT(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var s_={};m(s_,{up:()=>pT,down:()=>vT});async function pT(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function vT(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var _x={};m(_x,{up:()=>qT,down:()=>gT});import{sql as b_}from"kysely";async function qT(_){await b_`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await b_`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await b_`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function gT(_){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 ux={};m(ux,{up:()=>cT,down:()=>hT});import{sql as L}from"kysely";var iT={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"}},tT={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},xx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function _N(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function xN(_,x){for(let[C,N]of[[L`organization_id || '_commerce-discovery'`,iT],[L`'commerce-discovery_' || organization_id`,tT]])for(let z of["title","description"]){let{from:T,to:E}=_N(N[z],x);await L`
31
31
  UPDATE connections
32
32
  SET ${L.ref(z)} = ${E}
33
33
  WHERE id = ${C}
@@ -41,7 +41,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
41
41
  RETURN NULL;
42
42
  END;
43
43
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:K}=bK(_x.label,x);await L`
44
+ `.execute(_);let{from:u,to:K}=_N(xx.label,x);await L`
45
45
  WITH agents AS (
46
46
  SELECT id, deco_score_try_jsonb(metadata) AS m
47
47
  FROM connections
@@ -56,7 +56,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
56
56
  (
57
57
  SELECT jsonb_agg(
58
58
  CASE
59
- WHEN v ->> 'toolName' = ${_x.toolName}
59
+ WHEN v ->> 'toolName' = ${xx.toolName}
60
60
  AND v ->> 'label' = ANY(${L.val(u)}::text[])
61
61
  THEN v || jsonb_build_object('label', ${K}::text)
62
62
  ELSE v
@@ -72,7 +72,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
72
72
  AND EXISTS (
73
73
  SELECT 1
74
74
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
75
- WHERE v ->> 'toolName' = ${_x.toolName}
75
+ WHERE v ->> 'toolName' = ${xx.toolName}
76
76
  AND v ->> 'label' = ANY(${L.val(u)}::text[])
77
77
  )
78
78
  )
@@ -80,7 +80,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
80
80
  SET metadata = r.m::text
81
81
  FROM relabeled r
82
82
  WHERE c.id = r.id
83
- `.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cT(_){await _N(_,"up")}async function hT(_){await _N(_,"down")}var mx={};m(mx,{up:()=>aT,down:()=>rT,ACTIONS:()=>ux});import{sql as d}from"kysely";var ux=["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"],oT=ux.filter((_)=>_!=="finding_resolved");async function aT(_){await xN(_,ux)}async function rT(_){await d`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await xN(_,oT)}async function xN(_,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 Cx={};m(Cx,{up:()=>eT,down:()=>lT});import{sql as Z_}from"kysely";async function eT(_){await Z_`
83
+ `.execute(_),await L`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function cT(_){await xN(_,"up")}async function hT(_){await xN(_,"down")}var Cx={};m(Cx,{up:()=>aT,down:()=>rT,ACTIONS:()=>mx});import{sql as d}from"kysely";var mx=["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"],oT=mx.filter((_)=>_!=="finding_resolved");async function aT(_){await uN(_,mx)}async function rT(_){await d`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await uN(_,oT)}async function uN(_,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 Kx={};m(Kx,{up:()=>eT,down:()=>lT});import{sql as Z_}from"kysely";async function eT(_){await Z_`
84
84
  ALTER TABLE org_jira_column_automations
85
85
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
86
86
  CONSTRAINT chk_org_jira_column_automations_from_kind
@@ -100,7 +100,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
100
100
  DROP COLUMN from_key,
101
101
  DROP COLUMN from_statuses,
102
102
  DROP COLUMN from_kind
103
- `.execute(_)}var Kx={};m(Kx,{up:()=>dT,down:()=>sT});import{sql as uN}from"kysely";async function dT(_){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(uN`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(uN`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 sT(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Nx={};m(Nx,{up:()=>uz,down:()=>mz});import{sql as s}from"kysely";import{webcrypto as CN}from"crypto";var mN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var bT=128,p,g;function _z(_){if(!p||p.length<_)p=Buffer.allocUnsafe(_*bT),CN.getRandomValues(p),g=0;else if(g+_>p.length)CN.getRandomValues(p),g=0;g+=_}function I(_=21){_z(_|=0);let x="";for(let u=g-_;u<g;u++)x+=mN[p[u]&63];return x}var xz=["JIRA_ISSUE_SEARCH","JIRA_ISSUE_GET","JIRA_COMMENT_ADD","JIRA_ISSUE_TRANSITION","JIRA_REMOTE_LINK_ADD","JIRA_ISSUE_CREATE","JIRA_ATTACHMENT_DOWNLOAD","JIRA_BOARD_COLUMNS_LIST","JIRA_AUTOMATION_LIST","JIRA_RUN_START"];async function uz(_){let{rows:x}=await s`
103
+ `.execute(_)}var Nx={};m(Nx,{up:()=>dT,down:()=>sT});import{sql as mN}from"kysely";async function dT(_){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(mN`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(mN`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 sT(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Tx={};m(Tx,{up:()=>uz,down:()=>mz});import{sql as s}from"kysely";import{webcrypto as KN}from"crypto";var CN="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var bT=128,p,i;function _z(_){if(!p||p.length<_)p=Buffer.allocUnsafe(_*bT),KN.getRandomValues(p),i=0;else if(i+_>p.length)KN.getRandomValues(p),i=0;i+=_}function I(_=21){_z(_|=0);let x="";for(let u=i-_;u<i;u++)x+=CN[p[u]&63];return x}var xz=["JIRA_ISSUE_SEARCH","JIRA_ISSUE_GET","JIRA_COMMENT_ADD","JIRA_ISSUE_TRANSITION","JIRA_REMOTE_LINK_ADD","JIRA_ISSUE_CREATE","JIRA_ATTACHMENT_DOWNLOAD","JIRA_BOARD_COLUMNS_LIST","JIRA_AUTOMATION_LIST","JIRA_RUN_START"];async function uz(_){let{rows:x}=await s`
104
104
  SELECT i.organization_id, i.created_by
105
105
  FROM org_jira_integrations i
106
106
  WHERE i.enabled = true
@@ -137,8 +137,8 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
137
137
  `.execute(_)}}async function mz(_){await s`
138
138
  DELETE FROM connection_aggregations
139
139
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
140
- `.execute(_),await s`DELETE FROM connections WHERE id LIKE 'studio-jira\\_%'`.execute(_)}var Tx={};m(Tx,{up:()=>Kz,down:()=>Nz});import{sql as Cz}from"kysely";async function Kz(_){await Cz`ALTER TABLE organization_settings
141
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Nz(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var zx={};m(zx,{up:()=>Tz,down:()=>zz});import{sql as KN}from"kysely";async function Tz(_){await KN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function zz(_){await KN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Ex={};m(Ex,{up:()=>Ez,down:()=>Pz});import{sql as F}from"kysely";async function Ez(_){await F`
140
+ `.execute(_),await s`DELETE FROM connections WHERE id LIKE 'studio-jira\\_%'`.execute(_)}var zx={};m(zx,{up:()=>Kz,down:()=>Nz});import{sql as Cz}from"kysely";async function Kz(_){await Cz`ALTER TABLE organization_settings
141
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Nz(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var Ex={};m(Ex,{up:()=>Tz,down:()=>zz});import{sql as NN}from"kysely";async function Tz(_){await NN`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function zz(_){await NN`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Px={};m(Px,{up:()=>Ez,down:()=>Pz});import{sql as F}from"kysely";async function Ez(_){await F`
142
142
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
143
143
  RETURNS jsonb AS $fn$
144
144
  BEGIN
@@ -239,17 +239,17 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
239
239
  )::text
240
240
  WHERE a.id = 'commerce-discovery_' || a.organization_id
241
241
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
242
- `.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var $x={};m($x,{up:()=>$z,down:()=>Uz});import{sql as Px}from"kysely";async function $z(_){await Px`ALTER TABLE git_provider_accounts
242
+ `.execute(_),await F`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Ux={};m(Ux,{up:()=>$z,down:()=>Uz});import{sql as $x}from"kysely";async function $z(_){await $x`ALTER TABLE git_provider_accounts
243
243
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
244
244
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
245
245
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
246
246
  ADD CONSTRAINT git_provider_accounts_cli_check
247
247
  CHECK (auth_kind <> 'github_cli' OR
248
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Uz(_){await Px`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Px`ALTER TABLE git_provider_accounts
248
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Uz(_){await $x`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await $x`ALTER TABLE git_provider_accounts
249
249
  DROP CONSTRAINT git_provider_accounts_cli_check,
250
250
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
251
251
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
252
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Ux={};m(Ux,{up:()=>Xz,down:()=>jz});import{sql as NN}from"kysely";async function Xz(_){await NN`
252
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Xx={};m(Xx,{up:()=>Xz,down:()=>jz});import{sql as TN}from"kysely";async function Xz(_){await TN`
253
253
  INSERT INTO "organization" (id, name, slug, "createdAt")
254
254
  SELECT
255
255
  'org_user_fs',
@@ -263,9 +263,9 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
263
263
  END,
264
264
  now()
265
265
  ON CONFLICT (id) DO NOTHING
266
- `.execute(_)}async function jz(_){await NN`
266
+ `.execute(_)}async function jz(_){await TN`
267
267
  DELETE FROM "organization" WHERE id = 'org_user_fs'
268
- `.execute(_)}var Xx={};m(Xx,{up:()=>Qz,down:()=>Zz});async function Qz(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function Zz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var jx={};m(jx,{up:()=>Jz,down:()=>Wz});async function Jz(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function Wz(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Qx={};m(Qx,{up:()=>Lz,down:()=>Fz});import{sql as b}from"kysely";var Dz=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function TN(_,x){for(let{table:u,column:K}of Dz){let C=`${u}_${K}_check`,N=x.map((z)=>`'${z}'`).join(", ");await b.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await b.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${K} IN (${N}))`).execute(_)}}async function Lz(_){await TN(_,["github","gitlab","bitbucket"])}async function Fz(_){await b`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await TN(_,["github","gitlab"])}var Zx={};m(Zx,{up:()=>Yz,down:()=>Hz});import{sql as J_}from"kysely";async function Yz(_){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(J_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(J_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(J_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(J_`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 Hz(_){await _.schema.dropTable("experiments").execute()}var Jx={};m(Jx,{up:()=>Mz,down:()=>Bz});import{sql as Rz}from"kysely";async function Mz(_){await Rz`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function Bz(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Dx={};m(Dx,{up:()=>yz,down:()=>fz,ACTIONS:()=>Wx});import{sql as __}from"kysely";var Wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],Gz=Wx.filter((_)=>_!=="duplicate_reported");async function yz(_){await zN(_,Wx)}async function fz(_){await __`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await zN(_,Gz)}async function zN(_,x){await __`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await __`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${__.join(x.map((u)=>__.lit(u)))}))`.execute(_)}var Lx={};m(Lx,{up:()=>Oz,down:()=>Sz});async function Oz(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function Sz(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Fx={};m(Fx,{up:()=>Az,down:()=>Iz});async function Az(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function Iz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Yx={};m(Yx,{up:()=>wz,down:()=>Vz});import{sql as nz}from"kysely";async function wz(_){await nz`
268
+ `.execute(_)}var jx={};m(jx,{up:()=>Qz,down:()=>Zz});async function Qz(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function Zz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Qx={};m(Qx,{up:()=>Jz,down:()=>Wz});async function Jz(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function Wz(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Zx={};m(Zx,{up:()=>Lz,down:()=>Fz});import{sql as b}from"kysely";var Dz=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function zN(_,x){for(let{table:u,column:K}of Dz){let C=`${u}_${K}_check`,N=x.map((z)=>`'${z}'`).join(", ");await b.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await b.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${K} IN (${N}))`).execute(_)}}async function Lz(_){await zN(_,["github","gitlab","bitbucket"])}async function Fz(_){await b`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await b`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await zN(_,["github","gitlab"])}var Jx={};m(Jx,{up:()=>Yz,down:()=>Hz});import{sql as J_}from"kysely";async function Yz(_){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(J_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(J_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(J_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(J_`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 Hz(_){await _.schema.dropTable("experiments").execute()}var Wx={};m(Wx,{up:()=>Mz,down:()=>Bz});import{sql as Rz}from"kysely";async function Mz(_){await Rz`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function Bz(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Lx={};m(Lx,{up:()=>yz,down:()=>fz,ACTIONS:()=>Dx});import{sql as __}from"kysely";var Dx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],Gz=Dx.filter((_)=>_!=="duplicate_reported");async function yz(_){await EN(_,Dx)}async function fz(_){await __`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await EN(_,Gz)}async function EN(_,x){await __`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await __`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${__.join(x.map((u)=>__.lit(u)))}))`.execute(_)}var Fx={};m(Fx,{up:()=>Oz,down:()=>Sz});async function Oz(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function Sz(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Yx={};m(Yx,{up:()=>Az,down:()=>Iz});async function Az(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function Iz(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Hx={};m(Hx,{up:()=>wz,down:()=>Vz});import{sql as nz}from"kysely";async function wz(_){await nz`
269
269
  CREATE TABLE github_connect_flows (
270
270
  id text PRIMARY KEY,
271
271
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -275,7 +275,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
275
275
  );
276
276
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
277
277
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
278
- `.execute(_)}async function Vz(_){await _.schema.dropTable("github_connect_flows").execute()}var Hx={};m(Hx,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function pz(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Rx={};m(Rx,{up:()=>vz,down:()=>qz});import{sql as W_}from"kysely";async function vz(_){await W_`
278
+ `.execute(_)}async function Vz(_){await _.schema.dropTable("github_connect_flows").execute()}var Rx={};m(Rx,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function pz(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Mx={};m(Mx,{up:()=>vz,down:()=>qz});import{sql as W_}from"kysely";async function vz(_){await W_`
279
279
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
280
280
  DECLARE
281
281
  metadata_json jsonb;
@@ -331,7 +331,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
331
331
  FROM repositories r WHERE s.repository_id IS NULL
332
332
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
333
333
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
334
- `.execute(_)}async function qz(_){await W_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await W_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Mx={};m(Mx,{up:()=>gz,down:()=>iz});import{sql as y}from"kysely";async function gz(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 iz(_){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 Bx={};m(Bx,{up:()=>tz,down:()=>cz});import{sql as EN}from"kysely";async function tz(_){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(EN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(EN`CURRENT_TIMESTAMP`)).execute()}async function cz(_){await _.schema.dropTable("organization_settings").execute()}var Gx={};m(Gx,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){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 yx={};m(yx,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){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 fx={};m(fx,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function lz(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Ox={};m(Ox,{up:()=>sz,down:()=>bz});import{sql as dz}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",dz`text`).execute()}async function bz(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Sx={};m(Sx,{up:()=>_E,down:()=>xE});async function _E(_){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 xE(_){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 Ax={};m(Ax,{up:()=>uE,down:()=>mE});import{sql as x_}from"kysely";async function uE(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`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 mE(_){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 Ix={};m(Ix,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function NE(_){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(CE`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 nx={};m(nx,{up:()=>TE,down:()=>zE});import{sql as D_}from"kysely";async function TE(_){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(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`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(D_`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 D_`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 zE(_){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 wx={};m(wx,{up:()=>EE,down:()=>PE});async function EE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function PE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Vx={};m(Vx,{up:()=>$E,down:()=>UE});import{sql as L_}from"kysely";async function $E(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await L_`
334
+ `.execute(_)}async function qz(_){await W_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await W_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Bx={};m(Bx,{up:()=>gz,down:()=>iz});import{sql as y}from"kysely";async function gz(_){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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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(y`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(y`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(y`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(y`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(y`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(y`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 iz(_){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 Gx={};m(Gx,{up:()=>tz,down:()=>cz});import{sql as PN}from"kysely";async function tz(_){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(PN`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PN`CURRENT_TIMESTAMP`)).execute()}async function cz(_){await _.schema.dropTable("organization_settings").execute()}var yx={};m(yx,{up:()=>hz,down:()=>oz});async function hz(_){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 oz(_){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 fx={};m(fx,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){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 Ox={};m(Ox,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function lz(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Sx={};m(Sx,{up:()=>sz,down:()=>bz});import{sql as dz}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",dz`text`).execute()}async function bz(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ax={};m(Ax,{up:()=>_E,down:()=>xE});async function _E(_){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 xE(_){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 Ix={};m(Ix,{up:()=>uE,down:()=>mE});import{sql as x_}from"kysely";async function uE(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(x_`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(x_`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 mE(_){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 nx={};m(nx,{up:()=>KE,down:()=>NE});import{sql as CE}from"kysely";async function KE(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function NE(_){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(CE`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 wx={};m(wx,{up:()=>TE,down:()=>zE});import{sql as D_}from"kysely";async function TE(_){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(D_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D_`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(D_`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 D_`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 zE(_){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 Vx={};m(Vx,{up:()=>EE,down:()=>PE});async function EE(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function PE(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var kx={};m(kx,{up:()=>$E,down:()=>UE});import{sql as L_}from"kysely";async function $E(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await L_`
335
335
  UPDATE gateways
336
336
  SET tool_selection_mode = CASE
337
337
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
@@ -343,7 +343,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
343
343
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
344
344
  ELSE NULL
345
345
  END
346
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var kx={};m(kx,{up:()=>XE,down:()=>jE});async function XE(_){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 jE(_){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 px={};m(px,{up:()=>QE,down:()=>ZE});async function QE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function ZE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var vx={};m(vx,{up:()=>JE,down:()=>WE});async function JE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function WE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var qx={};m(qx,{up:()=>DE,down:()=>LE});async function DE(_){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 LE(_){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 gx={};m(gx,{up:()=>YE,down:()=>HE});import{sql as FE}from"kysely";async function YE(_){await FE`
346
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var px={};m(px,{up:()=>XE,down:()=>jE});async function XE(_){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 jE(_){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 vx={};m(vx,{up:()=>QE,down:()=>ZE});async function QE(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function ZE(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var qx={};m(qx,{up:()=>JE,down:()=>WE});async function JE(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function WE(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var gx={};m(gx,{up:()=>DE,down:()=>LE});async function DE(_){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 LE(_){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 ix={};m(ix,{up:()=>YE,down:()=>HE});import{sql as FE}from"kysely";async function YE(_){await FE`
347
347
  DELETE FROM downstream_tokens
348
348
  WHERE id NOT IN (
349
349
  SELECT id FROM (
@@ -353,7 +353,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
353
353
  ) ranked
354
354
  WHERE rn = 1
355
355
  )
356
- `.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 HE(_){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 ix={};m(ix,{up:()=>RE,down:()=>ME});async function RE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function ME(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var tx={};m(tx,{up:()=>BE,down:()=>GE});import{sql as PN}from"kysely";async function BE(_){await PN`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function GE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await PN`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var cx={};m(cx,{up:()=>yE,down:()=>fE});async function yE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function fE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var hx={};m(hx,{up:()=>OE,down:()=>SE});import{sql as F_}from"kysely";async function OE(_){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(F_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F_`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(F_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F_`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 SE(_){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 ox={};m(ox,{up:()=>AE,down:()=>IE});async function AE(_){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 IE(_){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 ax={};m(ax,{up:()=>nE,down:()=>wE});async function nE(_){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 wE(_){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 rx={};m(rx,{up:()=>VE,down:()=>kE});import{sql as W}from"kysely";async function VE(_){await W`
356
+ `.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 HE(_){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 tx={};m(tx,{up:()=>RE,down:()=>ME});async function RE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function ME(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var cx={};m(cx,{up:()=>BE,down:()=>GE});import{sql as $N}from"kysely";async function BE(_){await $N`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function GE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await $N`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var hx={};m(hx,{up:()=>yE,down:()=>fE});async function yE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function fE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ox={};m(ox,{up:()=>OE,down:()=>SE});import{sql as F_}from"kysely";async function OE(_){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(F_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F_`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(F_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F_`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 SE(_){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 ax={};m(ax,{up:()=>AE,down:()=>IE});async function AE(_){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 IE(_){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 rx={};m(rx,{up:()=>nE,down:()=>wE});async function nE(_){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 wE(_){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 ex={};m(ex,{up:()=>VE,down:()=>kE});import{sql as W}from"kysely";async function VE(_){await W`
357
357
  INSERT INTO connections (
358
358
  id,
359
359
  organization_id,
@@ -410,7 +410,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
410
410
  created_at, updated_at, created_by, NULL, 'inclusion'
411
411
  FROM connections
412
412
  WHERE connection_type = 'VIRTUAL'
413
- `.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 W`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 ex={};m(ex,{up:()=>pE,down:()=>vE});async function pE(_){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 vE(_){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 lx={};m(lx,{up:()=>qE,down:()=>gE});import{sql as f}from"kysely";async function qE(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
413
+ `.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 W`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 lx={};m(lx,{up:()=>pE,down:()=>vE});async function pE(_){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 vE(_){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 dx={};m(dx,{up:()=>qE,down:()=>gE});import{sql as f}from"kysely";async function qE(_){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(f`CURRENT_TIMESTAMP`)).execute(),await f`
414
414
  INSERT INTO connection_aggregations_new (
415
415
  id, parent_connection_id, child_connection_id,
416
416
  selected_tools, selected_resources, selected_prompts, created_at
@@ -428,7 +428,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
428
428
  id, parent_connection_id, child_connection_id,
429
429
  selected_tools, selected_resources, selected_prompts, created_at
430
430
  FROM connection_aggregations
431
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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 sx={};m(sx,{up:()=>iE,down:()=>tE});import{sql as dx}from"kysely";async function iE(_){await dx`
431
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await f`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await f`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await f`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 bx={};m(bx,{up:()=>iE,down:()=>tE});import{sql as sx}from"kysely";async function iE(_){await sx`
432
432
  UPDATE connections
433
433
  SET connection_url = connection_url || '/management',
434
434
  tools = NULL,
@@ -436,39 +436,39 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
436
436
  WHERE connection_url LIKE '%/mcp'
437
437
  AND connection_url NOT LIKE '%/mcp/management'
438
438
  AND app_name = '@deco/management-mcp'
439
- `.execute(_),await dx`
439
+ `.execute(_),await sx`
440
440
  UPDATE connections
441
441
  SET tools = NULL,
442
442
  updated_at = CURRENT_TIMESTAMP
443
443
  WHERE app_name = '@deco/management-mcp'
444
444
  AND tools IS NOT NULL
445
- `.execute(_)}async function tE(_){await dx`
445
+ `.execute(_)}async function tE(_){await sx`
446
446
  UPDATE connections
447
447
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
448
448
  updated_at = CURRENT_TIMESTAMP
449
449
  WHERE connection_url LIKE '%/mcp/management'
450
450
  AND app_name = '@deco/management-mcp'
451
- `.execute(_)}var _u={};m(_u,{up:()=>cE,down:()=>hE});import{sql as bx}from"kysely";async function cE(_){await bx`
451
+ `.execute(_)}var xu={};m(xu,{up:()=>cE,down:()=>hE});import{sql as _u}from"kysely";async function cE(_){await _u`
452
452
  UPDATE connections
453
453
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
454
454
  tools = NULL,
455
455
  updated_at = CURRENT_TIMESTAMP
456
456
  WHERE connection_url LIKE '%/mcp/management'
457
457
  AND app_name = '@deco/management-mcp'
458
- `.execute(_),await bx`
458
+ `.execute(_),await _u`
459
459
  UPDATE connections
460
460
  SET tools = NULL,
461
461
  updated_at = CURRENT_TIMESTAMP
462
462
  WHERE connection_url LIKE '%/mcp/self'
463
463
  AND app_name = '@deco/management-mcp'
464
464
  AND tools IS NOT NULL
465
- `.execute(_)}async function hE(_){await bx`
465
+ `.execute(_)}async function hE(_){await _u`
466
466
  UPDATE connections
467
467
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
468
468
  updated_at = CURRENT_TIMESTAMP
469
469
  WHERE connection_url LIKE '%/mcp/self'
470
470
  AND app_name = '@deco/management-mcp'
471
- `.execute(_)}var xu={};m(xu,{up:()=>oE,down:()=>aE});async function oE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function aE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var uu={};m(uu,{up:()=>rE,down:()=>eE});import{sql as $N}from"kysely";async function rE(_){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($N`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($N`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 eE(_){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 mu={};m(mu,{up:()=>lE,down:()=>dE});import{sql as u_}from"kysely";async function lE(_){await u_`
471
+ `.execute(_)}var uu={};m(uu,{up:()=>oE,down:()=>aE});async function oE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function aE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var mu={};m(mu,{up:()=>rE,down:()=>eE});import{sql as UN}from"kysely";async function rE(_){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(UN`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(UN`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 eE(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var Cu={};m(Cu,{up:()=>lE,down:()=>dE});import{sql as u_}from"kysely";async function lE(_){await u_`
472
472
  ALTER TABLE connection_aggregations
473
473
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
474
474
  `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function dE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await u_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await u_`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(u_`CURRENT_TIMESTAMP`)).execute(),await u_`
@@ -480,42 +480,42 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
480
480
  id, parent_connection_id, child_connection_id,
481
481
  selected_tools, selected_resources, selected_prompts, created_at
482
482
  FROM connection_aggregations
483
- `.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 Cu={};m(Cu,{up:()=>_0,down:()=>x0});var sE="org-admin",bE="Organization Admin";async function _0(_){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 K=new Date().toISOString(),C=`proj_${I()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:sE,name:bE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:K,updated_at:K}).execute()}}async function x0(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Ku={};m(Ku,{up:()=>u0,down:()=>m0});async function u0(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function m0(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Nu={};m(Nu,{up:()=>C0,down:()=>K0});async function C0(_){}async function K0(_){}var Tu={};m(Tu,{up:()=>N0,down:()=>T0});async function N0(_){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 T0(_){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 zu={};m(zu,{up:()=>z0,down:()=>E0});import{sql as UN}from"kysely";async function z0(_){await UN`
483
+ `.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 Ku={};m(Ku,{up:()=>_0,down:()=>x0});var sE="org-admin",bE="Organization Admin";async function _0(_){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 K=new Date().toISOString(),C=`proj_${I()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:sE,name:bE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:K,updated_at:K}).execute()}}async function x0(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Nu={};m(Nu,{up:()=>u0,down:()=>m0});async function u0(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function m0(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Tu={};m(Tu,{up:()=>C0,down:()=>K0});async function C0(_){}async function K0(_){}var zu={};m(zu,{up:()=>N0,down:()=>T0});async function N0(_){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 T0(_){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 Eu={};m(Eu,{up:()=>z0,down:()=>E0});import{sql as XN}from"kysely";async function z0(_){await XN`
484
484
  UPDATE connections
485
485
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
486
486
  tools = NULL,
487
487
  updated_at = CURRENT_TIMESTAMP
488
488
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
489
489
  AND app_name = 'deco-registry'
490
- `.execute(_)}async function E0(_){await UN`
490
+ `.execute(_)}async function E0(_){await XN`
491
491
  UPDATE connections
492
492
  SET connection_url = 'https://api.decocms.com/mcp/registry',
493
493
  updated_at = CURRENT_TIMESTAMP
494
494
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
495
495
  AND app_name = 'deco-registry'
496
- `.execute(_)}var Eu={};m(Eu,{up:()=>$0,down:()=>U0});import{sql as P0}from"kysely";async function $0(_){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(P0`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 U0(_){await _.schema.dropTable("ai_provider_keys").execute()}var Pu={};m(Pu,{up:()=>j0,down:()=>Q0});import{sql as X0}from"kysely";async function j0(_){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(X0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Q0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var $u={};m($u,{up:()=>Z0,down:()=>J0});import{sql as n}from"kysely";async function Z0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`CURRENT_TIMESTAMP`)).execute(),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await n`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 J0(_){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 Uu={};m(Uu,{up:()=>W0,down:()=>D0});async function W0(_){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 D0(_){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 Xu={};m(Xu,{up:()=>L0,down:()=>F0});async function L0(_){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 F0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var ju={};m(ju,{up:()=>Y0,down:()=>H0});import{sql as XN}from"kysely";async function Y0(_){await XN`
496
+ `.execute(_)}var Pu={};m(Pu,{up:()=>$0,down:()=>U0});import{sql as P0}from"kysely";async function $0(_){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(P0`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 U0(_){await _.schema.dropTable("ai_provider_keys").execute()}var $u={};m($u,{up:()=>j0,down:()=>Q0});import{sql as X0}from"kysely";async function j0(_){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(X0`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function Q0(_){await _.schema.dropTable("oauth_pkce_states").execute()}var Uu={};m(Uu,{up:()=>Z0,down:()=>J0});import{sql as n}from"kysely";async function Z0(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`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(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`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(n`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(n`CURRENT_TIMESTAMP`)).execute(),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await n`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 J0(_){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 Xu={};m(Xu,{up:()=>W0,down:()=>D0});async function W0(_){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 D0(_){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 ju={};m(ju,{up:()=>L0,down:()=>F0});async function L0(_){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 F0(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Qu={};m(Qu,{up:()=>Y0,down:()=>H0});import{sql as jN}from"kysely";async function Y0(_){await jN`
497
497
  UPDATE connections
498
498
  SET title = 'CMS MCP',
499
499
  tools = NULL,
500
500
  updated_at = CURRENT_TIMESTAMP
501
501
  WHERE app_name = '@deco/management-mcp'
502
- `.execute(_)}async function H0(_){await XN`
502
+ `.execute(_)}async function H0(_){await jN`
503
503
  UPDATE connections
504
504
  SET title = 'Mesh MCP',
505
505
  updated_at = CURRENT_TIMESTAMP
506
506
  WHERE app_name = '@deco/management-mcp'
507
- `.execute(_)}var Qu={};m(Qu,{up:()=>R0,down:()=>M0});import{sql as jN}from"kysely";async function R0(_){await jN`
507
+ `.execute(_)}var Zu={};m(Zu,{up:()=>R0,down:()=>M0});import{sql as QN}from"kysely";async function R0(_){await QN`
508
508
  UPDATE connections
509
509
  SET title = 'Deco CMS',
510
510
  tools = NULL,
511
511
  updated_at = CURRENT_TIMESTAMP
512
512
  WHERE app_name = '@deco/management-mcp'
513
- `.execute(_)}async function M0(_){await jN`
513
+ `.execute(_)}async function M0(_){await QN`
514
514
  UPDATE connections
515
515
  SET title = 'CMS MCP',
516
516
  updated_at = CURRENT_TIMESTAMP
517
517
  WHERE app_name = '@deco/management-mcp'
518
- `.execute(_)}var Zu={};m(Zu,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function G0(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Ju={};m(Ju,{up:()=>y0,down:()=>f0});async function y0(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function f0(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Du={};m(Du,{up:()=>O0,down:()=>S0});import{sql as Wu}from"kysely";async function O0(_){await Wu`
518
+ `.execute(_)}var Ju={};m(Ju,{up:()=>B0,down:()=>G0});async function B0(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function G0(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Wu={};m(Wu,{up:()=>y0,down:()=>f0});async function y0(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function f0(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Lu={};m(Lu,{up:()=>O0,down:()=>S0});import{sql as Du}from"kysely";async function O0(_){await Du`
519
519
  UPDATE organization_settings
520
520
  SET enabled_plugins = (
521
521
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -524,7 +524,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
524
524
  )
525
525
  WHERE enabled_plugins IS NOT NULL
526
526
  AND enabled_plugins LIKE '%object-storage%'
527
- `.execute(_),await Wu`
527
+ `.execute(_),await Du`
528
528
  UPDATE projects
529
529
  SET enabled_plugins = (
530
530
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -533,28 +533,28 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
533
533
  )
534
534
  WHERE enabled_plugins IS NOT NULL
535
535
  AND enabled_plugins LIKE '%object-storage%'
536
- `.execute(_),await Wu`
536
+ `.execute(_),await Du`
537
537
  DELETE FROM project_plugin_configs
538
538
  WHERE plugin_id = 'object-storage'
539
- `.execute(_)}async function S0(_){}var Lu={};m(Lu,{up:()=>A0,down:()=>I0});import{sql as QN}from"kysely";async function A0(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await QN`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function I0(_){await QN`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Yu={};m(Yu,{up:()=>n0,down:()=>w0});import{sql as Fu}from"kysely";async function n0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Fu`
539
+ `.execute(_)}async function S0(_){}var Fu={};m(Fu,{up:()=>A0,down:()=>I0});import{sql as ZN}from"kysely";async function A0(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await ZN`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function I0(_){await ZN`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Hu={};m(Hu,{up:()=>n0,down:()=>w0});import{sql as Yu}from"kysely";async function n0(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Yu`
540
540
  ALTER TABLE connections
541
541
  ADD CONSTRAINT chk_connections_subtype
542
542
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
543
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await Fu`
543
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await Yu`
544
544
  UPDATE connections
545
545
  SET subtype = 'agent'
546
546
  WHERE connection_type = 'VIRTUAL'
547
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.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(),K=new Map;for(let T of u)K.set(T.organizationId,T.userId);let C=new Map;for(let T of x){let E=`vir_${I()}`;C.set(T.id,E);let $=T.ui?JSON.parse(T.ui):null,U=JSON.stringify({enabled_plugins:T.enabled_plugins?JSON.parse(T.enabled_plugins):null,ui:$,migrated_from_project:T.id,migrated_project_slug:T.slug}),Z=K.get(T.organization_id);if(!Z)continue;await _.insertInto("connections").values({id:E,organization_id:T.organization_id,created_by:Z,updated_by:null,title:T.name,description:T.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:U,bindings:null,status:"active",subtype:"project",created_at:T.created_at,updated_at:T.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let T of N){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${I()}`,parent_connection_id:E,child_connection_id:T.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:T.created_at}).onConflict(($)=>$.doNothing()).execute()}let z=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let T of z){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${I()}`,virtual_mcp_id:E,plugin_id:T.plugin_id,connection_id:T.connection_id,settings:T.settings,created_at:T.created_at,updated_at:T.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function w0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Fu`
547
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(T)=>T.primaryKey()).addColumn("virtual_mcp_id","text",(T)=>T.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(T)=>T.notNull()).addColumn("connection_id","text",(T)=>T.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(T)=>T.notNull()).addColumn("updated_at","text",(T)=>T.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(),K=new Map;for(let T of u)K.set(T.organizationId,T.userId);let C=new Map;for(let T of x){let E=`vir_${I()}`;C.set(T.id,E);let $=T.ui?JSON.parse(T.ui):null,U=JSON.stringify({enabled_plugins:T.enabled_plugins?JSON.parse(T.enabled_plugins):null,ui:$,migrated_from_project:T.id,migrated_project_slug:T.slug}),Z=K.get(T.organization_id);if(!Z)continue;await _.insertInto("connections").values({id:E,organization_id:T.organization_id,created_by:Z,updated_by:null,title:T.name,description:T.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:U,bindings:null,status:"active",subtype:"project",created_at:T.created_at,updated_at:T.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let T of N){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${I()}`,parent_connection_id:E,child_connection_id:T.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:T.created_at}).onConflict(($)=>$.doNothing()).execute()}let z=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let T of z){let E=C.get(T.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${I()}`,virtual_mcp_id:E,plugin_id:T.plugin_id,connection_id:T.connection_id,settings:T.settings,created_at:T.created_at,updated_at:T.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function w0(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Yu`
548
548
  ALTER TABLE connections
549
549
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
550
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Hu={};m(Hu,{up:()=>k0,down:()=>p0});import{sql as V0}from"kysely";async function k0(_){await V0`
550
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Ru={};m(Ru,{up:()=>k0,down:()=>p0});import{sql as V0}from"kysely";async function k0(_){await V0`
551
551
  DELETE FROM connections
552
552
  WHERE connection_type = 'VIRTUAL'
553
553
  AND subtype = 'project'
554
554
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
555
- `.execute(_)}async function p0(_){}var Ru={};m(Ru,{up:()=>q0,down:()=>g0});import{sql as v0}from"kysely";async function q0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await v0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function g0(_){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 Bu={};m(Bu,{up:()=>i0,down:()=>t0});import{sql as Mu}from"kysely";async function i0(_){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(Mu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Mu`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(Mu`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 t0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Gu={};m(Gu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function h0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var yu={};m(yu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function a0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Ou={};m(Ou,{up:()=>e0,down:()=>l0});import{sql as ZN}from"kysely";function fu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function r0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return fu(K)}catch{return fu(_.connection_url)}if(_.title)return fu(_.title);return _.id}async function e0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await ZN`
555
+ `.execute(_)}async function p0(_){}var Mu={};m(Mu,{up:()=>q0,down:()=>g0});import{sql as v0}from"kysely";async function q0(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await v0`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function g0(_){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 Gu={};m(Gu,{up:()=>i0,down:()=>t0});import{sql as Bu}from"kysely";async function i0(_){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(Bu`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Bu`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(Bu`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 t0(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var yu={};m(yu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function h0(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var fu={};m(fu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function a0(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Su={};m(Su,{up:()=>e0,down:()=>l0});import{sql as JN}from"kysely";function Ou(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function r0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Ou(K)}catch{return Ou(_.connection_url)}if(_.title)return Ou(_.title);return _.id}async function e0(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await JN`
556
556
  SELECT id, app_name, connection_url, title FROM connections
557
- `.execute(_);for(let u of x.rows){let K=r0(u);await ZN`UPDATE connections SET slug = ${K} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function l0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Su={};m(Su,{up:()=>d0,down:()=>s0});import{sql as m_}from"kysely";async function d0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await m_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await m_`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 s0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await m_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await m_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await m_`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 Au={};m(Au,{up:()=>b0,down:()=>_P});async function b0(_){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 _P(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Iu={};m(Iu,{up:()=>xP,down:()=>uP});import{sql as Y_}from"kysely";async function xP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Y_`
557
+ `.execute(_);for(let u of x.rows){let K=r0(u);await JN`UPDATE connections SET slug = ${K} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function l0(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Au={};m(Au,{up:()=>d0,down:()=>s0});import{sql as m_}from"kysely";async function d0(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await m_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await m_`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 s0(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await m_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await m_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await m_`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 Iu={};m(Iu,{up:()=>b0,down:()=>_P});async function b0(_){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 _P(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var nu={};m(nu,{up:()=>xP,down:()=>uP});import{sql as Y_}from"kysely";async function xP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Y_`
558
558
  UPDATE threads
559
559
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
560
560
  WHERE agent_ids IS NOT NULL
@@ -571,27 +571,27 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
571
571
  THEN jsonb_build_array(virtual_mcp_id)::text
572
572
  ELSE '[]'
573
573
  END
574
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var nu={};m(nu,{up:()=>mP,down:()=>CP});async function mP(_){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 CP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var wu={};m(wu,{up:()=>KP,down:()=>NP});async function KP(_){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 NP(_){await _.schema.dropTable("kv").execute()}var Vu={};m(Vu,{up:()=>TP,down:()=>zP});async function TP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function zP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var ku={};m(ku,{up:()=>EP,down:()=>PP});async function EP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function PP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var pu={};m(pu,{up:()=>$P,down:()=>UP});import{sql as Y}from"kysely";async function $P(_){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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`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(Y`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(Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 UP(_){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 vu={};m(vu,{up:()=>XP,down:()=>jP});import{sql as i}from"kysely";async function XP(_){await i`
574
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var wu={};m(wu,{up:()=>mP,down:()=>CP});async function mP(_){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 CP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Vu={};m(Vu,{up:()=>KP,down:()=>NP});async function KP(_){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 NP(_){await _.schema.dropTable("kv").execute()}var ku={};m(ku,{up:()=>TP,down:()=>zP});async function TP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function zP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var pu={};m(pu,{up:()=>EP,down:()=>PP});async function EP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function PP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var vu={};m(vu,{up:()=>$P,down:()=>UP});import{sql as Y}from"kysely";async function $P(_){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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 Y`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(Y`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(Y`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(Y`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(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Y`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 UP(_){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 qu={};m(qu,{up:()=>XP,down:()=>jP});import{sql as t}from"kysely";async function XP(_){await t`
575
575
  ALTER TABLE event_subscriptions
576
576
  ALTER COLUMN enabled DROP DEFAULT
577
- `.execute(_),await i`
577
+ `.execute(_),await t`
578
578
  ALTER TABLE event_subscriptions
579
579
  ALTER COLUMN enabled TYPE boolean
580
580
  USING enabled::boolean
581
- `.execute(_),await i`
581
+ `.execute(_),await t`
582
582
  ALTER TABLE event_subscriptions
583
583
  ALTER COLUMN enabled SET DEFAULT true
584
- `.execute(_)}async function jP(_){await i`
584
+ `.execute(_)}async function jP(_){await t`
585
585
  ALTER TABLE event_subscriptions
586
586
  ALTER COLUMN enabled DROP DEFAULT
587
- `.execute(_),await i`
587
+ `.execute(_),await t`
588
588
  ALTER TABLE event_subscriptions
589
589
  ALTER COLUMN enabled TYPE integer
590
590
  USING enabled::integer
591
- `.execute(_),await i`
591
+ `.execute(_),await t`
592
592
  ALTER TABLE event_subscriptions
593
593
  ALTER COLUMN enabled SET DEFAULT 1
594
- `.execute(_)}var qu={};m(qu,{up:()=>QP,down:()=>ZP});import{sql as JN}from"kysely";async function QP(_){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(JN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(JN`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function ZP(_){await _.schema.dropTable("brand_context").execute()}var gu={};m(gu,{up:()=>JP,down:()=>WP});import{sql as WN}from"kysely";async function JP(_){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(WN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WN`now()`)).execute()}async function WP(_){await _.schema.dropTable("organization_domains").execute()}var iu={};m(iu,{up:()=>YP,down:()=>HP});import{sql as DN}from"kysely";var H_=new Set(["primary","secondary","accent","background","foreground"]),DP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function LP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>H_.has(C))){let C={};for(let[N,z]of Object.entries(u)){if(typeof z!=="string")continue;if(H_.has(N))C[N]=z;else x[N]=z}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let K={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(H_.has(C.toLowerCase()))K[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}if(Array.isArray(_)){let u={};for(let K of _){let C=K,N=C.label?.toLowerCase?.(),z=C.value;if(!N||!z)continue;if(H_.has(N))u[N]=z;else x[N]=z}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function FP(_){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 K of _){let C=K,N=C.name??C.family??void 0,z=C.role?.toLowerCase?.()??"";if(!N)continue;let T=DP[z];if(T&&!x[T])x[T]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function YP(_){let x=await DN`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let K=!1,C=!1,N=!1,z=u.colors,T=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 U=LP($);if(z=U.structured,K=!0,Object.keys(U.extra).length>0)E.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))T=FP($),C=!0}catch{}if(K||C||N){let $=N?JSON.stringify(E):u.metadata;await DN`
594
+ `.execute(_)}var gu={};m(gu,{up:()=>QP,down:()=>ZP});import{sql as WN}from"kysely";async function QP(_){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(WN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WN`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function ZP(_){await _.schema.dropTable("brand_context").execute()}var iu={};m(iu,{up:()=>JP,down:()=>WP});import{sql as DN}from"kysely";async function JP(_){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(DN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DN`now()`)).execute()}async function WP(_){await _.schema.dropTable("organization_domains").execute()}var tu={};m(tu,{up:()=>YP,down:()=>HP});import{sql as LN}from"kysely";var H_=new Set(["primary","secondary","accent","background","foreground"]),DP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function LP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>H_.has(C))){let C={};for(let[N,z]of Object.entries(u)){if(typeof z!=="string")continue;if(H_.has(N))C[N]=z;else x[N]=z}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let K={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(H_.has(C.toLowerCase()))K[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}if(Array.isArray(_)){let u={};for(let K of _){let C=K,N=C.label?.toLowerCase?.(),z=C.value;if(!N||!z)continue;if(H_.has(N))u[N]=z;else x[N]=z}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function FP(_){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 K of _){let C=K,N=C.name??C.family??void 0,z=C.role?.toLowerCase?.()??"";if(!N)continue;let T=DP[z];if(T&&!x[T])x[T]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function YP(_){let x=await LN`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let K=!1,C=!1,N=!1,z=u.colors,T=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 U=LP($);if(z=U.structured,K=!0,Object.keys(U.extra).length>0)E.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))T=FP($),C=!0}catch{}if(K||C||N){let $=N?JSON.stringify(E):u.metadata;await LN`
595
595
  UPDATE brand_context
596
596
  SET
597
597
  colors = ${z},
@@ -599,13 +599,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
599
599
  metadata = ${$},
600
600
  updated_at = NOW()
601
601
  WHERE id = ${u.id}
602
- `.execute(_)}}}async function HP(_){}var tu={};m(tu,{up:()=>MP,down:()=>BP});import{sql as RP}from"kysely";async function MP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(RP`'{}'::jsonb`)).execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var cu={};m(cu,{up:()=>GP,down:()=>yP});async function GP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function yP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var hu={};m(hu,{up:()=>fP,down:()=>OP});async function fP(_){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 ou={};m(ou,{up:()=>SP,down:()=>AP});async function SP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function AP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var au={};m(au,{up:()=>IP,down:()=>nP});async function IP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function nP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var ru={};m(ru,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function VP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var eu={};m(eu,{up:()=>pP,down:()=>vP});import{sql as LN}from"kysely";var kP=["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 pP(_){let x=await LN`
602
+ `.execute(_)}}}async function HP(_){}var cu={};m(cu,{up:()=>MP,down:()=>BP});import{sql as RP}from"kysely";async function MP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(RP`'{}'::jsonb`)).execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var hu={};m(hu,{up:()=>GP,down:()=>yP});async function GP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function yP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var ou={};m(ou,{up:()=>fP,down:()=>OP});async function fP(_){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 au={};m(au,{up:()=>SP,down:()=>AP});async function SP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function AP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var ru={};m(ru,{up:()=>IP,down:()=>nP});async function IP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function nP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var eu={};m(eu,{up:()=>wP,down:()=>VP});async function wP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function VP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var lu={};m(lu,{up:()=>pP,down:()=>vP});import{sql as FN}from"kysely";var kP=["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 pP(_){let x=await FN`
603
603
  SELECT id, permission FROM "organizationRole"
604
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...kP]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await LN`
604
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...kP]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await FN`
605
605
  UPDATE "organizationRole"
606
606
  SET permission = ${T}
607
607
  WHERE id = ${u.id}
608
- `.execute(_)}}async function vP(_){}var lu={};m(lu,{up:()=>qP,down:()=>gP});async function qP(_){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 gP(_){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 du={};m(du,{up:()=>iP,down:()=>tP});async function iP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function tP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var su={};m(su,{up:()=>cP,down:()=>hP});import{sql as C_}from"kysely";async function cP(_){await C_`
608
+ `.execute(_)}}async function vP(_){}var du={};m(du,{up:()=>qP,down:()=>gP});async function qP(_){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 gP(_){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 su={};m(su,{up:()=>iP,down:()=>tP});async function iP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function tP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var bu={};m(bu,{up:()=>cP,down:()=>hP});import{sql as C_}from"kysely";async function cP(_){await C_`
609
609
  UPDATE automations
610
610
  SET virtual_mcp_id = (agent::json ->> 'id')
611
611
  WHERE virtual_mcp_id IS NULL
@@ -621,7 +621,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
621
621
  `.execute(_),await C_`
622
622
  ALTER TABLE automations
623
623
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
624
- `.execute(_)}var _m={};m(_m,{up:()=>eP,reshapeSimpleMode:()=>FN,inferAutomationTier:()=>YN,down:()=>lP,__testing:()=>rP});var oP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},aP=["fast","smart","thinking","image","web_research"];function bu(_){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 aP.some((K)=>(K in u))}function FN(_){if(bu(_))return _;let x=_,u=x?.enabled===!0,K=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return oP;return{tiers:{fast:K(x?.chat?.fast),smart:K(x?.chat?.smart),thinking:K(x?.chat?.thinking),image:K(x?.image),web_research:K(x?.webResearch)}}}function YN(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function HN(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((K)=>_[K]===void 0)}var rP={isAlreadyReshapedSimpleMode:bu,isAlreadyReshapedAutomationModels:HN};async function eP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let K of x){let C=K.simple_mode?typeof K.simple_mode==="string"?JSON.parse(K.simple_mode):K.simple_mode:null;if(bu(C))continue;let N=FN(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",K.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let K of u){let C;try{C=typeof K.models==="string"?JSON.parse(K.models):K.models}catch{C={}}if(HN(C))continue;let N=YN(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",K.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${K.id} previously used an image-only model; mapped to "${N}"`)}}async function lP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var xm={};m(xm,{up:()=>dP,down:()=>sP});import{sql as S}from"kysely";async function dP(_){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 S`
624
+ `.execute(_)}var xm={};m(xm,{up:()=>eP,reshapeSimpleMode:()=>YN,inferAutomationTier:()=>HN,down:()=>lP,__testing:()=>rP});var oP={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},aP=["fast","smart","thinking","image","web_research"];function _m(_){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 aP.some((K)=>(K in u))}function YN(_){if(_m(_))return _;let x=_,u=x?.enabled===!0,K=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return oP;return{tiers:{fast:K(x?.chat?.fast),smart:K(x?.chat?.smart),thinking:K(x?.chat?.thinking),image:K(x?.image),web_research:K(x?.webResearch)}}}function HN(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function RN(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((K)=>_[K]===void 0)}var rP={isAlreadyReshapedSimpleMode:_m,isAlreadyReshapedAutomationModels:RN};async function eP(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let K of x){let C=K.simple_mode?typeof K.simple_mode==="string"?JSON.parse(K.simple_mode):K.simple_mode:null;if(_m(C))continue;let N=YN(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",K.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let K of u){let C;try{C=typeof K.models==="string"?JSON.parse(K.models):K.models}catch{C={}}if(RN(C))continue;let N=HN(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",K.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${K.id} previously used an image-only model; mapped to "${N}"`)}}async function lP(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var um={};m(um,{up:()=>dP,down:()=>sP});import{sql as S}from"kysely";async function dP(_){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 S`
625
625
  ALTER TABLE automations
626
626
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
627
627
  `.execute(_),await S`
@@ -646,16 +646,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
646
646
  `.execute(_)}async function sP(_){await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await S`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await S`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await S`
647
647
  ALTER TABLE automations
648
648
  ALTER COLUMN virtual_mcp_id SET NOT NULL
649
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var um={};m(um,{up:()=>_$,down:()=>x$});import{sql as RN}from"kysely";var bP=new Set(["host","docker","agent-sandbox"]);async function _$(_){let x=await RN`
649
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var mm={};m(mm,{up:()=>_$,down:()=>x$});import{sql as MN}from"kysely";var bP=new Set(["host","docker","agent-sandbox"]);async function _$(_){let x=await MN`
650
650
  SELECT id, metadata FROM "connections"
651
651
  WHERE connection_type = 'VIRTUAL'
652
652
  AND metadata IS NOT NULL
653
653
  AND metadata LIKE '%vmMap%'
654
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.vmMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}let G=j.runnerKind;if(G!==void 0&&!bP.has(G)){N=!0;continue}U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.vmMap=z;let T=JSON.stringify(K);await RN`
654
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.vmMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}let G=j.runnerKind;if(G!==void 0&&!bP.has(G)){N=!0;continue}U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.vmMap=z;let T=JSON.stringify(K);await MN`
655
655
  UPDATE "connections"
656
656
  SET metadata = ${T}
657
657
  WHERE id = ${u.id}
658
- `.execute(_)}}async function x$(_){}var mm={};m(mm,{up:()=>u$,down:()=>m$});import{sql as K_}from"kysely";async function u$(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(K_`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(K_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`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 K_`
658
+ `.execute(_)}}async function x$(_){}var Cm={};m(Cm,{up:()=>u$,down:()=>m$});import{sql as K_}from"kysely";async function u$(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(K_`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(K_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(K_`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 K_`
659
659
  CREATE INDEX async_research_jobs_active_idx
660
660
  ON async_research_jobs (status, last_polled_at)
661
661
  WHERE status IN ('pending', 'polling')
@@ -663,24 +663,24 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
663
663
  ALTER TABLE async_research_jobs
664
664
  ADD CONSTRAINT chk_async_research_jobs_status
665
665
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
666
- `.execute(_)}async function m$(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Cm={};m(Cm,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function K$(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Km={};m(Km,{up:()=>N$,down:()=>T$});import{sql as t}from"kysely";async function N$(_){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(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
666
+ `.execute(_)}async function m$(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Km={};m(Km,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function K$(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Nm={};m(Nm,{up:()=>N$,down:()=>T$});import{sql as c}from"kysely";async function N$(_){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(c`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await c`
667
667
  ALTER TABLE secrets
668
668
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
669
- `.execute(_),await t`
669
+ `.execute(_),await c`
670
670
  ALTER TABLE secrets
671
671
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
672
672
  (scope = 'user' AND user_id IS NOT NULL)
673
673
  OR (scope = 'organization' AND user_id IS NULL)
674
674
  )
675
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await t`
675
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await c`
676
676
  CREATE UNIQUE INDEX idx_secrets_user_name
677
677
  ON secrets (organization_id, user_id, lower(name))
678
678
  WHERE scope = 'user'
679
- `.execute(_),await t`
679
+ `.execute(_),await c`
680
680
  CREATE UNIQUE INDEX idx_secrets_org_name
681
681
  ON secrets (organization_id, lower(name))
682
682
  WHERE scope = 'organization'
683
- `.execute(_)}async function T$(_){await _.schema.dropTable("secrets").execute()}var Nm={};m(Nm,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function E$(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Tm={};m(Tm,{up:()=>$$,down:()=>U$});import{sql as P$}from"kysely";async function $$(_){await P$`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function U$(_){}var zm={};m(zm,{up:()=>X$,down:()=>j$});import{sql as R_}from"kysely";async function X$(_){await R_`
683
+ `.execute(_)}async function T$(_){await _.schema.dropTable("secrets").execute()}var Tm={};m(Tm,{up:()=>z$,down:()=>E$});async function z$(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function E$(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var zm={};m(zm,{up:()=>$$,down:()=>U$});import{sql as P$}from"kysely";async function $$(_){await P$`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function U$(_){}var Em={};m(Em,{up:()=>X$,down:()=>j$});import{sql as R_}from"kysely";async function X$(_){await R_`
684
684
  ALTER TABLE sandbox_runner_state
685
685
  RENAME COLUMN runner_kind TO sandbox_provider_kind
686
686
  `.execute(_),await R_`
@@ -756,7 +756,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
756
756
  EXCEPTION WHEN undefined_table THEN
757
757
  NULL;
758
758
  END; $$
759
- `.execute(_)}var Em={};m(Em,{up:()=>Q$,down:()=>Z$});import{sql as MN}from"kysely";async function Q$(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await MN`
759
+ `.execute(_)}var Pm={};m(Pm,{up:()=>Q$,down:()=>Z$});import{sql as BN}from"kysely";async function Q$(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await BN`
760
760
  DO $$ BEGIN
761
761
  UPDATE virtualmcps v
762
762
  SET metadata = jsonb_set(
@@ -795,7 +795,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
795
795
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
796
796
  NULL;
797
797
  END; $$
798
- `.execute(_)}async function Z$(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await MN`
798
+ `.execute(_)}async function Z$(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await BN`
799
799
  DO $$ BEGIN
800
800
  UPDATE virtualmcps v
801
801
  SET metadata = jsonb_set(
@@ -828,7 +828,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
828
828
  EXCEPTION WHEN undefined_table THEN
829
829
  NULL;
830
830
  END; $$
831
- `.execute(_)}var Pm={};m(Pm,{up:()=>J$,down:()=>W$});import{sql as BN}from"kysely";async function J$(_){await BN`
831
+ `.execute(_)}var $m={};m($m,{up:()=>J$,down:()=>W$});import{sql as GN}from"kysely";async function J$(_){await GN`
832
832
  UPDATE connections c
833
833
  SET metadata = (
834
834
  jsonb_set(
@@ -872,7 +872,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
872
872
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
873
873
  WHERE entry ? 'vmId'
874
874
  );
875
- `.execute(_),await BN`
875
+ `.execute(_),await GN`
876
876
  UPDATE connections c
877
877
  SET metadata = (
878
878
  jsonb_set(
@@ -926,10 +926,10 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
926
926
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
927
927
  WHERE inner_entry ? 'runnerKind'
928
928
  );
929
- `.execute(_)}async function W$(_){}var $m={};m($m,{up:()=>L$,down:()=>F$});import{sql as D$}from"kysely";async function L$(_){await D$`
929
+ `.execute(_)}async function W$(_){}var Um={};m(Um,{up:()=>L$,down:()=>F$});import{sql as D$}from"kysely";async function L$(_){await D$`
930
930
  DELETE FROM ai_provider_keys
931
931
  WHERE provider_id IN ('claude-code', 'codex')
932
- `.execute(_)}async function F$(_){}var Um={};m(Um,{up:()=>Y$,down:()=>H$});import{sql as M_}from"kysely";async function Y$(_){await M_`
932
+ `.execute(_)}async function F$(_){}var Xm={};m(Xm,{up:()=>Y$,down:()=>H$});import{sql as M_}from"kysely";async function Y$(_){await M_`
933
933
  UPDATE sandbox_runner_state
934
934
  SET sandbox_provider_kind = 'desktop'
935
935
  WHERE sandbox_provider_kind = 'remote-user'
@@ -1027,13 +1027,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1027
1027
  UPDATE threads
1028
1028
  SET sandbox_provider_kind = 'desktop'
1029
1029
  WHERE sandbox_provider_kind = 'remote-user'
1030
- `.execute(_)}async function H$(_){}var Xm={};m(Xm,{up:()=>R$,down:()=>M$});import{sql as N_}from"kysely";async function R$(_){await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`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 M$(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await N_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var jm={};m(jm,{up:()=>B$,down:()=>G$});import{sql as GN}from"kysely";async function B$(_){await GN`
1030
+ `.execute(_)}async function H$(_){}var jm={};m(jm,{up:()=>R$,down:()=>M$});import{sql as N_}from"kysely";async function R$(_){await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`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 M$(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await N_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await N_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await N_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Qm={};m(Qm,{up:()=>B$,down:()=>G$});import{sql as yN}from"kysely";async function B$(_){await yN`
1031
1031
  ALTER TABLE organization_domains
1032
1032
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1033
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function G$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await GN`
1033
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function G$(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await yN`
1034
1034
  ALTER TABLE organization_domains
1035
1035
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1036
- `.execute(_)}var Qm={};m(Qm,{up:()=>y$,down:()=>f$});import{sql as B_}from"kysely";async function y$(_){await B_`
1036
+ `.execute(_)}var Zm={};m(Zm,{up:()=>y$,down:()=>f$});import{sql as B_}from"kysely";async function y$(_){await B_`
1037
1037
  UPDATE sandbox_runner_state
1038
1038
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1039
1039
  WHEN 'docker' THEN 'local-docker'
@@ -1122,16 +1122,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1122
1122
  WHERE c.connection_type = 'VIRTUAL'
1123
1123
  AND c.metadata IS NOT NULL
1124
1124
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1125
- `.execute(_)}async function f$(_){}var Zm={};m(Zm,{up:()=>S$,down:()=>A$});import{sql as yN}from"kysely";var O$=["GLOBAL_SEARCH"];async function S$(_){let x=await yN`
1125
+ `.execute(_)}async function f$(_){}var Jm={};m(Jm,{up:()=>S$,down:()=>A$});import{sql as fN}from"kysely";var O$=["GLOBAL_SEARCH"];async function S$(_){let x=await fN`
1126
1126
  SELECT id, permission FROM "organizationRole"
1127
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...O$]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await yN`
1127
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let K;try{K=JSON.parse(u.permission)}catch{continue}let C=K.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,z=Array.from(new Set([...N,...O$]));if(z.length===N.length)continue;K.self=z;let T=JSON.stringify(K);await fN`
1128
1128
  UPDATE "organizationRole"
1129
1129
  SET permission = ${T}
1130
1130
  WHERE id = ${u.id}
1131
- `.execute(_)}}async function A$(_){}var Wm={};m(Wm,{up:()=>I$,down:()=>n$});import{sql as Jm}from"kysely";async function I$(_){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(Jm`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Jm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Jm`
1131
+ `.execute(_)}}async function A$(_){}var Dm={};m(Dm,{up:()=>I$,down:()=>n$});import{sql as Wm}from"kysely";async function I$(_){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(Wm`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Wm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Wm`
1132
1132
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1133
1133
  ON org_file_configs (organization_id, lower(name))
1134
- `.execute(_)}async function n$(_){await _.schema.dropTable("org_file_configs").execute()}var Dm={};m(Dm,{up:()=>w$,down:()=>V$});import{sql as A}from"kysely";async function w$(_){await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await A`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await A`
1134
+ `.execute(_)}async function n$(_){await _.schema.dropTable("org_file_configs").execute()}var Lm={};m(Lm,{up:()=>w$,down:()=>V$});import{sql as A}from"kysely";async function w$(_){await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await A`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await A`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await A`
1135
1135
  ALTER TABLE automations
1136
1136
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1137
1137
  `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function V$(_){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 A`
@@ -1156,16 +1156,16 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1156
1156
  AND tool_input IS NOT NULL
1157
1157
  )
1158
1158
  )
1159
- `.execute(_)}var Lm={};m(Lm,{up:()=>k$,down:()=>p$});async function k$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function p$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Ym={};m(Ym,{up:()=>v$,down:()=>q$});import{sql as Fm}from"kysely";var G_="local-docker";async function v$(_){await Fm`delete from sandbox_runner_state where sandbox_provider_kind = ${G_}`.execute(_);let x=await Fm`
1159
+ `.execute(_)}var Fm={};m(Fm,{up:()=>k$,down:()=>p$});async function k$(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function p$(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Hm={};m(Hm,{up:()=>v$,down:()=>q$});import{sql as Ym}from"kysely";var G_="local-docker";async function v$(_){await Ym`delete from sandbox_runner_state where sandbox_provider_kind = ${G_}`.execute(_);let x=await Ym`
1160
1160
  SELECT id, metadata FROM "connections"
1161
1161
  WHERE connection_type = 'VIRTUAL'
1162
1162
  AND metadata IS NOT NULL
1163
1163
  AND metadata LIKE ${"%"+G_+"%"}
1164
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}if(G_ in j){N=!0;let G={...j};if(delete G[G_],Object.keys(G).length>0)U[Z]=G}else U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.sandboxMap=z;let T=JSON.stringify(K);await Fm`
1164
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let K;try{K=JSON.parse(u.metadata)}catch{continue}let C=K.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,z={};for(let[E,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[Z,j]of Object.entries($)){if(!j||typeof j!=="object"){N=!0;continue}if(G_ in j){N=!0;let G={...j};if(delete G[G_],Object.keys(G).length>0)U[Z]=G}else U[Z]=j}if(Object.keys(U).length>0)z[E]=U;else N=!0}if(!N)continue;K.sandboxMap=z;let T=JSON.stringify(K);await Ym`
1165
1165
  UPDATE "connections"
1166
1166
  SET metadata = ${T}
1167
1167
  WHERE id = ${u.id}
1168
- `.execute(_)}}async function q$(_){}var Hm={};m(Hm,{up:()=>g$,down:()=>i$});import{sql as y_}from"kysely";async function g$(_){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 y_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await y_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await y_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await y_`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 i$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Rm={};m(Rm,{up:()=>t$,down:()=>c$});async function t$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function c$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Mm={};m(Mm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function o$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Bm={};m(Bm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function r$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Gm={};m(Gm,{up:()=>e$,down:()=>l$});async function e$(_){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 l$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var ym={};m(ym,{up:()=>d$,down:()=>s$});async function d$(_){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 s$(_){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 Om={};m(Om,{up:()=>_U,down:()=>xU});import{sql as O}from"kysely";var H="cluster",R="agent-sandbox";function c(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function fm(_,x,u){if(!c(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function f_(_){if(!c(_))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!==H&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!c(_.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 b$(_,x,u){if(!c(_))return null;let K=!1,C={};for(let[N,z]of Object.entries(_)){if(!c(z)){C[N]=z;continue}let T={};for(let[E,$]of Object.entries(z)){if(!c($)){T[E]=$;continue}let U={};for(let[Z,j]of Object.entries($)){if(Z===x){if(K=!0,!(u in $))U[u]=fm(j,x,u);else if(!f_($[u])&&f_(j))U[u]=fm(j,x,u);continue}let G=fm(j,x,u);if(G!==j)K=!0;if(Z===u&&Z in U&&f_(U[Z])&&!f_(G))continue;U[Z]=G}T[E]=U}C[N]=T}return{sandboxMap:C,changed:K}}async function fN(_,x,u){let K=await O`
1168
+ `.execute(_)}}async function q$(_){}var Rm={};m(Rm,{up:()=>g$,down:()=>i$});import{sql as y_}from"kysely";async function g$(_){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 y_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await y_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await y_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await y_`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 i$(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Mm={};m(Mm,{up:()=>t$,down:()=>c$});async function t$(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function c$(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Bm={};m(Bm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function o$(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Gm={};m(Gm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function r$(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var ym={};m(ym,{up:()=>e$,down:()=>l$});async function e$(_){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 l$(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var fm={};m(fm,{up:()=>d$,down:()=>s$});async function d$(_){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 s$(_){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 Sm={};m(Sm,{up:()=>_U,down:()=>xU});import{sql as O}from"kysely";var H="cluster",R="agent-sandbox";function h(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Om(_,x,u){if(!h(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function f_(_){if(!h(_))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!==H&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!h(_.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 b$(_,x,u){if(!h(_))return null;let K=!1,C={};for(let[N,z]of Object.entries(_)){if(!h(z)){C[N]=z;continue}let T={};for(let[E,$]of Object.entries(z)){if(!h($)){T[E]=$;continue}let U={};for(let[Z,j]of Object.entries($)){if(Z===x){if(K=!0,!(u in $))U[u]=Om(j,x,u);else if(!f_($[u])&&f_(j))U[u]=Om(j,x,u);continue}let G=Om(j,x,u);if(G!==j)K=!0;if(Z===u&&Z in U&&f_(U[Z])&&!f_(G))continue;U[Z]=G}T[E]=U}C[N]=T}return{sandboxMap:C,changed:K}}async function ON(_,x,u){let K=await O`
1169
1169
  SELECT id, metadata FROM connections
1170
1170
  WHERE connection_type = 'VIRTUAL'
1171
1171
  AND metadata IS NOT NULL
@@ -1203,7 +1203,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1203
1203
  UPDATE sandbox_runner_state
1204
1204
  SET sandbox_provider_kind = ${R}
1205
1205
  WHERE sandbox_provider_kind = ${H}
1206
- `.execute(_),await fN(_,H,R)}async function xU(_){await O`
1206
+ `.execute(_),await ON(_,H,R)}async function xU(_){await O`
1207
1207
  UPDATE threads
1208
1208
  SET sandbox_provider_kind = ${H}
1209
1209
  WHERE sandbox_provider_kind = ${R}
@@ -1232,7 +1232,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1232
1232
  UPDATE sandbox_runner_state
1233
1233
  SET sandbox_provider_kind = ${H}
1234
1234
  WHERE sandbox_provider_kind = ${R}
1235
- `.execute(_),await fN(_,R,H)}var Sm={};m(Sm,{up:()=>uU,down:()=>mU});import{sql as w}from"kysely";async function uU(_){await w`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(w`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(w`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(w`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 w`
1235
+ `.execute(_),await ON(_,R,H)}var Am={};m(Am,{up:()=>uU,down:()=>mU});import{sql as w}from"kysely";async function uU(_){await w`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(w`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(w`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(w`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 w`
1236
1236
  CREATE INDEX idx_org_fs_entry_parent
1237
1237
  ON org_fs_entry (organization_id, volume, parent)
1238
1238
  WHERE deleted_at IS NULL
@@ -1240,7 +1240,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1240
1240
  CREATE INDEX idx_org_fs_entry_usage
1241
1241
  ON org_fs_entry (organization_id, volume, size)
1242
1242
  WHERE kind = 'file' AND deleted_at IS NULL
1243
- `.execute(_)}async function mU(_){await _.schema.dropTable("org_fs_entry").execute(),await w`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Am={};m(Am,{up:()=>CU,down:()=>KU});async function CU(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function KU(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Im={};m(Im,{up:()=>NU,down:()=>TU});import{sql as ON}from"kysely";async function NU(_){await ON`
1243
+ `.execute(_)}async function mU(_){await _.schema.dropTable("org_fs_entry").execute(),await w`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Im={};m(Im,{up:()=>CU,down:()=>KU});async function CU(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function KU(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var nm={};m(nm,{up:()=>NU,down:()=>TU});import{sql as SN}from"kysely";async function NU(_){await SN`
1244
1244
  INSERT INTO "organization" (id, name, slug, "createdAt")
1245
1245
  SELECT
1246
1246
  'org_orgfs_public_skills',
@@ -1254,13 +1254,13 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1254
1254
  END,
1255
1255
  now()
1256
1256
  ON CONFLICT (id) DO NOTHING
1257
- `.execute(_)}async function TU(_){await ON`
1257
+ `.execute(_)}async function TU(_){await SN`
1258
1258
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1259
- `.execute(_)}var nm={};m(nm,{up:()=>zU,down:()=>EU});async function zU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function EU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var wm={};m(wm,{up:()=>PU,down:()=>$U});import{sql as SN}from"kysely";async function PU(_){await SN`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function $U(_){await SN`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Vm={};m(Vm,{up:()=>XU,down:()=>jU});import{sql as UU}from"kysely";async function XU(_){await UU`
1259
+ `.execute(_)}var wm={};m(wm,{up:()=>zU,down:()=>EU});async function zU(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function EU(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Vm={};m(Vm,{up:()=>PU,down:()=>$U});import{sql as AN}from"kysely";async function PU(_){await AN`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function $U(_){await AN`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var km={};m(km,{up:()=>XU,down:()=>jU});import{sql as UU}from"kysely";async function XU(_){await UU`
1260
1260
  UPDATE downstream_tokens
1261
1261
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1262
1262
  WHERE "expiresAt" IS NULL
1263
- `.execute(_)}async function jU(_){}var km={};m(km,{up:()=>QU,down:()=>ZU});async function QU(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function ZU(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var pm={};m(pm,{up:()=>JU,down:()=>WU});async function JU(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function WU(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var vm={};m(vm,{up:()=>DU,down:()=>LU});async function DU(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function LU(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var qm={};m(qm,{up:()=>FU,down:()=>YU});async function FU(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function YU(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var gm={};m(gm,{up:()=>HU,down:()=>RU});async function HU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function RU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var im={};m(im,{up:()=>MU,down:()=>BU});import{sql as AN}from"kysely";async function MU(_){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(AN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(AN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function BU(_){await _.schema.dropTable("org_sites").execute()}var tm={};m(tm,{up:()=>GU,down:()=>yU});async function GU(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function yU(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var cm={};m(cm,{up:()=>fU,down:()=>OU});import{sql as D}from"kysely";async function fU(_){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 D`
1263
+ `.execute(_)}async function jU(_){}var pm={};m(pm,{up:()=>QU,down:()=>ZU});async function QU(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function ZU(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var vm={};m(vm,{up:()=>JU,down:()=>WU});async function JU(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function WU(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var qm={};m(qm,{up:()=>DU,down:()=>LU});async function DU(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function LU(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var gm={};m(gm,{up:()=>FU,down:()=>YU});async function FU(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function YU(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var im={};m(im,{up:()=>HU,down:()=>RU});async function HU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function RU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var tm={};m(tm,{up:()=>MU,down:()=>BU});import{sql as IN}from"kysely";async function MU(_){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(IN`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IN`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function BU(_){await _.schema.dropTable("org_sites").execute()}var cm={};m(cm,{up:()=>GU,down:()=>yU});async function GU(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function yU(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var hm={};m(hm,{up:()=>fU,down:()=>OU});import{sql as D}from"kysely";async function fU(_){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 D`
1264
1264
  UPDATE organization_domains
1265
1265
  SET
1266
1266
  id = gen_random_uuid()::text,
@@ -1272,15 +1272,15 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1272
1272
  `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await D`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await D`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await D`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 OU(_){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 D`
1273
1273
  UPDATE organization_domains
1274
1274
  SET auto_join_enabled = (join_mode = 'auto')
1275
- `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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 hm={};m(hm,{up:()=>SU,down:()=>AU});import{sql as O_}from"kysely";async function SU(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).execute(),await O_`
1275
+ `.execute(_),await D`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await D`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 om={};m(om,{up:()=>SU,down:()=>AU});import{sql as O_}from"kysely";async function SU(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(O_`now()`)).execute(),await O_`
1276
1276
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1277
1277
  ON organization_join_requests (organization_id, user_id)
1278
1278
  WHERE status = 'pending'
1279
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function AU(_){await _.schema.dropTable("organization_join_requests").execute()}var om={};m(om,{up:()=>IU,down:()=>nU});async function IU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function nU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var am={};m(am,{up:()=>wU,down:()=>VU});async function wU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function VU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var lm={};m(lm,{up:()=>vU,splitWebResearchTier:()=>em,down:()=>qU,__testing:()=>pU});function kU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function rm(_){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 em(_){if(!_||rm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:K,...C}=x,N=null,z=null;if(u)if(kU(u.modelId))z=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:z}}}var pU={splitWebResearchTier:em,isAlreadySplit:rm};async function vU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let K=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(rm(K))continue;let C=em(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function qU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var dm={};m(dm,{up:()=>gU,down:()=>iU});import{sql as T_}from"kysely";async function gU(_){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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await T_`
1279
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function AU(_){await _.schema.dropTable("organization_join_requests").execute()}var am={};m(am,{up:()=>IU,down:()=>nU});async function IU(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function nU(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var rm={};m(rm,{up:()=>wU,down:()=>VU});async function wU(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function VU(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var dm={};m(dm,{up:()=>vU,splitWebResearchTier:()=>lm,down:()=>qU,__testing:()=>pU});function kU(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function em(_){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 lm(_){if(!_||em(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:K,...C}=x,N=null,z=null;if(u)if(kU(u.modelId))z=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:z}}}var pU={splitWebResearchTier:lm,isAlreadySplit:em};async function vU(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let K=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(em(K))continue;let C=lm(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function qU(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var sm={};m(sm,{up:()=>gU,down:()=>iU});import{sql as T_}from"kysely";async function gU(_){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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await T_`
1280
1280
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1281
1281
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1282
1282
  WHERE revoked_at IS NULL
1283
- `.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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`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 iU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var sm={};m(sm,{up:()=>tU,down:()=>cU});async function tU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function cU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var bm={};m(bm,{up:()=>hU,down:()=>oU});import{sql as v}from"kysely";async function hU(_){await v`
1283
+ `.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(T_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`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 iU(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var bm={};m(bm,{up:()=>tU,down:()=>cU});async function tU(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function cU(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var _C={};m(_C,{up:()=>hU,down:()=>oU});import{sql as v}from"kysely";async function hU(_){await v`
1284
1284
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1285
1285
  RETURNS jsonb AS $fn$
1286
1286
  BEGIN
@@ -1339,7 +1339,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1339
1339
  BEFORE INSERT ON connection_aggregations
1340
1340
  FOR EACH ROW
1341
1341
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1342
- `.execute(_)}async function oU(_){await v`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await v`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await v`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var xC={};m(xC,{up:()=>aU,down:()=>rU});import{sql as _C}from"kysely";async function aU(_){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(_C`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(_C`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(_C`false`)).execute()}async function rU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var uC={};m(uC,{up:()=>eU,down:()=>lU});async function eU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function lU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var mC={};m(mC,{up:()=>dU,down:()=>sU});async function dU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function sU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var CC={};m(CC,{up:()=>bU,down:()=>_X});async function bU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var KC={};m(KC,{up:()=>uX,down:()=>mX});import{sql as xX}from"kysely";async function uX(_){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(xX`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 mX(_){await _.schema.dropTable("task_board_item_threads").execute()}var NC={};m(NC,{up:()=>CX,down:()=>KX});async function CX(_){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 KX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var TC={};m(TC,{up:()=>TX,down:()=>zX});import{sql as NX}from"kysely";async function TX(_){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(NX`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 zX(_){await _.schema.dropTable("task_board_item_prs").execute()}var zC={};m(zC,{up:()=>PX,down:()=>$X});import{sql as EX}from"kysely";async function PX(_){await EX`
1342
+ `.execute(_)}async function oU(_){await v`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await v`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await v`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var uC={};m(uC,{up:()=>aU,down:()=>rU});import{sql as xC}from"kysely";async function aU(_){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(xC`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xC`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(xC`false`)).execute()}async function rU(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var mC={};m(mC,{up:()=>eU,down:()=>lU});async function eU(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function lU(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var CC={};m(CC,{up:()=>dU,down:()=>sU});async function dU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function sU(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var KC={};m(KC,{up:()=>bU,down:()=>_X});async function bU(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var NC={};m(NC,{up:()=>uX,down:()=>mX});import{sql as xX}from"kysely";async function uX(_){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(xX`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 mX(_){await _.schema.dropTable("task_board_item_threads").execute()}var TC={};m(TC,{up:()=>CX,down:()=>KX});async function CX(_){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 KX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var zC={};m(zC,{up:()=>TX,down:()=>zX});import{sql as NX}from"kysely";async function TX(_){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(NX`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 zX(_){await _.schema.dropTable("task_board_item_prs").execute()}var EC={};m(EC,{up:()=>PX,down:()=>$X});import{sql as EX}from"kysely";async function PX(_){await EX`
1343
1343
  DELETE FROM member
1344
1344
  WHERE id IN (
1345
1345
  SELECT id FROM (
@@ -1358,38 +1358,38 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1358
1358
  ) ranked
1359
1359
  WHERE ranked.rn > 1
1360
1360
  )
1361
- `.execute(_)}async function $X(_){}var EC={};m(EC,{up:()=>UX,down:()=>XX});async function UX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function XX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var PC={};m(PC,{up:()=>jX,down:()=>QX});async function jX(_){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 QX(_){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 $C={};m($C,{up:()=>JX,down:()=>WX});import{sql as ZX}from"kysely";async function JX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ZX`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 WX(_){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 UC={};m(UC,{up:()=>LX,down:()=>FX});import{sql as DX}from"kysely";async function LX(_){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(DX`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 FX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var XC={};m(XC,{up:()=>YX,down:()=>HX});import{sql as S_}from"kysely";async function YX(_){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(S_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",S_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",S_`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 HX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var jC={};m(jC,{up:()=>RX,down:()=>MX});import{sql as A_}from"kysely";async function RX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await A_`
1361
+ `.execute(_)}async function $X(_){}var PC={};m(PC,{up:()=>UX,down:()=>XX});async function UX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function XX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var $C={};m($C,{up:()=>jX,down:()=>QX});async function jX(_){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 QX(_){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 UC={};m(UC,{up:()=>JX,down:()=>WX});import{sql as ZX}from"kysely";async function JX(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ZX`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 WX(_){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 XC={};m(XC,{up:()=>LX,down:()=>FX});import{sql as DX}from"kysely";async function LX(_){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(DX`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 FX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var jC={};m(jC,{up:()=>YX,down:()=>HX});import{sql as S_}from"kysely";async function YX(_){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(S_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",S_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",S_`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 HX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var QC={};m(QC,{up:()=>RX,down:()=>MX});import{sql as A_}from"kysely";async function RX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await A_`
1362
1362
  insert into organization_billing (organization_id, legacy)
1363
1363
  select id, true from organization
1364
1364
  on conflict (organization_id) do nothing
1365
- `.execute(_)}async function MX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var QC={};m(QC,{up:()=>BX,down:()=>GX});import{sql as IN}from"kysely";async function BX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(IN`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(IN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function GX(_){await _.schema.dropTable("seat_change_log").execute()}var ZC={};m(ZC,{up:()=>yX,down:()=>fX});async function yX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function fX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var JC={};m(JC,{up:()=>OX,down:()=>SX});import{sql as nN}from"kysely";async function OX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await nN`
1365
+ `.execute(_)}async function MX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var ZC={};m(ZC,{up:()=>BX,down:()=>GX});import{sql as nN}from"kysely";async function BX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(nN`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(nN`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function GX(_){await _.schema.dropTable("seat_change_log").execute()}var JC={};m(JC,{up:()=>yX,down:()=>fX});async function yX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function fX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var WC={};m(WC,{up:()=>OX,down:()=>SX});import{sql as wN}from"kysely";async function OX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await wN`
1366
1366
  create unique index organization_billing_stripe_subscription_id_uq
1367
1367
  on organization_billing (stripe_subscription_id)
1368
1368
  where stripe_subscription_id is not null
1369
- `.execute(_)}async function SX(_){await nN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var WC={};m(WC,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function IX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var DC={};m(DC,{up:()=>nX,down:()=>wX});import{sql as wN}from"kysely";async function nX(_){await wN`
1369
+ `.execute(_)}async function SX(_){await wN`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var DC={};m(DC,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function IX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var LC={};m(LC,{up:()=>nX,down:()=>wX});import{sql as VN}from"kysely";async function nX(_){await VN`
1370
1370
  create index idx_org_billing_benefits_pending
1371
1371
  on organization_billing (updated_at)
1372
1372
  where benefits_reference_id is not null
1373
- `.execute(_)}async function wX(_){await wN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var LC={};m(LC,{up:()=>VX,down:()=>kX});import{sql as VN}from"kysely";async function VX(_){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(VN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(VN`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 kX(_){await _.schema.dropTable("user_model_preferences").execute()}var FC={};m(FC,{up:()=>pX,down:()=>vX});async function pX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function vX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var YC={};m(YC,{up:()=>qX,down:()=>gX});async function qX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function gX(_){}var HC={};m(HC,{up:()=>iX,down:()=>tX});import{sql as kN}from"kysely";async function iX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await kN`
1373
+ `.execute(_)}async function wX(_){await VN`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var FC={};m(FC,{up:()=>VX,down:()=>kX});import{sql as kN}from"kysely";async function VX(_){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(kN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(kN`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 kX(_){await _.schema.dropTable("user_model_preferences").execute()}var YC={};m(YC,{up:()=>pX,down:()=>vX});async function pX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function vX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var HC={};m(HC,{up:()=>qX,down:()=>gX});async function qX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function gX(_){}var RC={};m(RC,{up:()=>iX,down:()=>tX});import{sql as pN}from"kysely";async function iX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await pN`
1374
1374
  UPDATE organization_settings
1375
1375
  SET flags = jsonb_build_object('reports_only', reports_only)
1376
1376
  WHERE reports_only IS NOT NULL
1377
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function tX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await kN`
1377
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function tX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await pN`
1378
1378
  UPDATE organization_settings
1379
1379
  SET reports_only = (flags ->> 'reports_only')::boolean
1380
1380
  WHERE flags ? 'reports_only'
1381
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var RC={};m(RC,{up:()=>hX,down:()=>oX});import{sql as cX}from"kysely";async function hX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await cX`
1381
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var MC={};m(MC,{up:()=>hX,down:()=>oX});import{sql as cX}from"kysely";async function hX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await cX`
1382
1382
  update task_board_items
1383
1383
  set sort_order = -extract(epoch from created_at)
1384
- `.execute(_)}async function oX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var MC={};m(MC,{up:()=>aX,down:()=>rX,ACTIONS:()=>pN});import{sql as I_}from"kysely";var pN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function aX(_){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(I_`now()`)).addCheckConstraint("chk_task_board_activity_action",I_`action IN (${I_.join(pN.map((x)=>I_.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 rX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var GC={};m(GC,{up:()=>eX,down:()=>lX,ACTIONS:()=>BC});import{sql as z_}from"kysely";var BC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function eX(_){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(z_`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 vN(_,BC)}async function lX(_){await vN(_,BC.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 vN(_,x){await z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${z_.join(x.map((u)=>z_.lit(u)))}))`.execute(_)}var fC={};m(fC,{up:()=>sX,down:()=>bX});import{sql as qN}from"kysely";function yC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function dX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return yC(K)}catch{return yC(_.connection_url)}if(_.title)return yC(_.title);return _.id}async function sX(_){let x=await qN`
1384
+ `.execute(_)}async function oX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var BC={};m(BC,{up:()=>aX,down:()=>rX,ACTIONS:()=>vN});import{sql as I_}from"kysely";var vN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function aX(_){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(I_`now()`)).addCheckConstraint("chk_task_board_activity_action",I_`action IN (${I_.join(vN.map((x)=>I_.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 rX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var yC={};m(yC,{up:()=>eX,down:()=>lX,ACTIONS:()=>GC});import{sql as z_}from"kysely";var GC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function eX(_){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(z_`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 qN(_,GC)}async function lX(_){await qN(_,GC.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 qN(_,x){await z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${z_.join(x.map((u)=>z_.lit(u)))}))`.execute(_)}var OC={};m(OC,{up:()=>sX,down:()=>bX});import{sql as gN}from"kysely";function fC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function dX(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),K=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return fC(K)}catch{return fC(_.connection_url)}if(_.title)return fC(_.title);return _.id}async function sX(_){let x=await gN`
1385
1385
  SELECT id, app_name, connection_url, title, slug
1386
1386
  FROM connections
1387
1387
  WHERE connection_type != 'VIRTUAL'
1388
- `.execute(_),u=0;for(let K of x.rows){let C=dX(K);if(C===K.slug)continue;await qN`UPDATE connections SET slug = ${C} WHERE id = ${K.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function bX(){}var OC={};m(OC,{up:()=>xj,down:()=>uj});import{sql as _j}from"kysely";async function xj(_){await _j`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 uj(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var AC={};m(AC,{up:()=>Cj,down:()=>Kj,ACTIONS:()=>SC});import{sql as n_}from"kysely";var SC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],mj=new Set(["review_requested","review_approved","review_changes_requested"]);async function Cj(_){await gN(_,SC)}async function Kj(_){await gN(_,SC.filter((x)=>!mj.has(x)))}async function gN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var IC={};m(IC,{up:()=>Tj,down:()=>zj});import{sql as Nj}from"kysely";async function Tj(_){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(Nj`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 zj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var wC={};m(wC,{up:()=>Pj,down:()=>$j,ACTIONS:()=>nC});import{sql as w_}from"kysely";var nC=["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"],Ej=new Set(["merge_conflict_resolution"]);async function Pj(_){await iN(_,nC)}async function $j(_){await iN(_,nC.filter((x)=>!Ej.has(x)))}async function iN(_,x){await w_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var VC={};m(VC,{up:()=>Uj,down:()=>Xj});import{sql as E_}from"kysely";async function Uj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`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 Xj(_){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 E_`
1388
+ `.execute(_),u=0;for(let K of x.rows){let C=dX(K);if(C===K.slug)continue;await gN`UPDATE connections SET slug = ${C} WHERE id = ${K.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function bX(){}var SC={};m(SC,{up:()=>xj,down:()=>uj});import{sql as _j}from"kysely";async function xj(_){await _j`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 uj(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var IC={};m(IC,{up:()=>Cj,down:()=>Kj,ACTIONS:()=>AC});import{sql as n_}from"kysely";var AC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],mj=new Set(["review_requested","review_approved","review_changes_requested"]);async function Cj(_){await iN(_,AC)}async function Kj(_){await iN(_,AC.filter((x)=>!mj.has(x)))}async function iN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var nC={};m(nC,{up:()=>Tj,down:()=>zj});import{sql as Nj}from"kysely";async function Tj(_){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(Nj`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 zj(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var VC={};m(VC,{up:()=>Pj,down:()=>$j,ACTIONS:()=>wC});import{sql as w_}from"kysely";var wC=["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"],Ej=new Set(["merge_conflict_resolution"]);async function Pj(_){await tN(_,wC)}async function $j(_){await tN(_,wC.filter((x)=>!Ej.has(x)))}async function tN(_,x){await w_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var kC={};m(kC,{up:()=>Uj,down:()=>Xj});import{sql as E_}from"kysely";async function Uj(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await E_`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 Xj(_){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 E_`
1389
1389
  create index idx_org_billing_benefits_pending
1390
1390
  on organization_billing (updated_at)
1391
1391
  where benefits_reference_id is not null
1392
- `.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(E_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(E_`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(E_`now()`)).execute()}var kC={};m(kC,{up:()=>jj,down:()=>Qj});import{sql as V_}from"kysely";async function jj(_){await V_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function Qj(_){await V_`
1392
+ `.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(E_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(E_`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(E_`now()`)).execute()}var pC={};m(pC,{up:()=>jj,down:()=>Qj});import{sql as V_}from"kysely";async function jj(_){await V_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function Qj(_){await V_`
1393
1393
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1394
1394
  RETURNS trigger AS $fn$
1395
1395
  BEGIN
@@ -1415,23 +1415,23 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1415
1415
  BEFORE INSERT ON connection_aggregations
1416
1416
  FOR EACH ROW
1417
1417
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1418
- `.execute(_)}var pC={};m(pC,{up:()=>Zj,down:()=>Jj});import{sql as tN}from"kysely";async function Zj(_){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(tN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function Jj(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var vC={};m(vC,{up:()=>Wj,down:()=>Dj});import{sql as cN}from"kysely";async function Wj(_){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(cN`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(cN`now()`)).execute()}async function Dj(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var gC={};m(gC,{up:()=>Lj,down:()=>Fj});import{sql as qC}from"kysely";async function Lj(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(qC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await qC`
1418
+ `.execute(_)}var vC={};m(vC,{up:()=>Zj,down:()=>Jj});import{sql as cN}from"kysely";async function Zj(_){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(cN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function Jj(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var qC={};m(qC,{up:()=>Wj,down:()=>Dj});import{sql as hN}from"kysely";async function Wj(_){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(hN`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(hN`now()`)).execute()}async function Dj(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var iC={};m(iC,{up:()=>Lj,down:()=>Fj});import{sql as gC}from"kysely";async function Lj(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(gC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await gC`
1419
1419
  create index idx_task_quota_claims_org_period_live
1420
1420
  on task_quota_claims (organization_id, period_key)
1421
1421
  where state <> 'released'
1422
- `.execute(_)}async function Fj(_){await qC`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 iC={};m(iC,{up:()=>Yj,down:()=>Hj});async function Yj(_){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 Hj(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var tC={};m(tC,{up:()=>Rj,down:()=>Mj});async function Rj(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function Mj(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var cC={};m(cC,{up:()=>Bj,down:()=>Gj});import{sql as hN}from"kysely";async function Bj(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(hN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(hN`monthly_task_executions > 0`)).execute()}async function Gj(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var hC={};m(hC,{up:()=>fj,down:()=>Oj});import{sql as yj}from"kysely";async function fj(_){await yj`
1422
+ `.execute(_)}async function Fj(_){await gC`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 tC={};m(tC,{up:()=>Yj,down:()=>Hj});async function Yj(_){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 Hj(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var cC={};m(cC,{up:()=>Rj,down:()=>Mj});async function Rj(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function Mj(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var hC={};m(hC,{up:()=>Bj,down:()=>Gj});import{sql as oN}from"kysely";async function Bj(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(oN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(oN`monthly_task_executions > 0`)).execute()}async function Gj(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var oC={};m(oC,{up:()=>fj,down:()=>Oj});import{sql as yj}from"kysely";async function fj(_){await yj`
1423
1423
  CREATE INDEX idx_task_board_items_pending_review
1424
1424
  ON task_board_items (updated_at, id)
1425
1425
  WHERE status = 'in_review'
1426
1426
  AND assignee_id = 'super-agent'
1427
1427
  AND dismissed_at IS NULL
1428
- `.execute(_)}async function Oj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var oC={};m(oC,{up:()=>Sj,down:()=>Aj});import{sql as oN}from"kysely";async function Sj(_){await oN`
1428
+ `.execute(_)}async function Oj(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var aC={};m(aC,{up:()=>Sj,down:()=>Aj});import{sql as aN}from"kysely";async function Sj(_){await aN`
1429
1429
  ALTER TABLE task_board_items
1430
1430
  ADD COLUMN last_swept_at timestamptz
1431
- `.execute(_)}async function Aj(_){await oN`
1431
+ `.execute(_)}async function Aj(_){await aN`
1432
1432
  ALTER TABLE task_board_items
1433
1433
  DROP COLUMN last_swept_at
1434
- `.execute(_)}var aC={};m(aC,{up:()=>Ij,down:()=>nj});import{sql as k_}from"kysely";async function Ij(_){await k_`
1434
+ `.execute(_)}var rC={};m(rC,{up:()=>Ij,down:()=>nj});import{sql as k_}from"kysely";async function Ij(_){await k_`
1435
1435
  ALTER TABLE task_board_items
1436
1436
  ADD COLUMN retry_at timestamptz,
1437
1437
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1443,7 +1443,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1443
1443
  ALTER TABLE task_board_items
1444
1444
  DROP COLUMN retry_at,
1445
1445
  DROP COLUMN retry_attempts
1446
- `.execute(_)}var eC={};m(eC,{up:()=>wj,down:()=>Vj});import{sql as rC}from"kysely";async function wj(_){await rC`
1446
+ `.execute(_)}var lC={};m(lC,{up:()=>wj,down:()=>Vj});import{sql as eC}from"kysely";async function wj(_){await eC`
1447
1447
  CREATE TABLE org_repo_sync (
1448
1448
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1449
1449
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1461,11 +1461,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1461
1461
  updated_at timestamptz NOT NULL DEFAULT now(),
1462
1462
  UNIQUE (organization_id, volume)
1463
1463
  )
1464
- `.execute(_),await rC`
1464
+ `.execute(_),await eC`
1465
1465
  CREATE INDEX idx_org_repo_sync_enabled
1466
1466
  ON org_repo_sync (organization_id)
1467
1467
  WHERE enabled
1468
- `.execute(_)}async function Vj(_){await rC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var dC={};m(dC,{up:()=>pj,down:()=>vj,ACTIONS:()=>lC});import{sql as p_}from"kysely";var lC=["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"],kj=new Set(["merge_failed"]);async function pj(_){await aN(_,lC)}async function vj(_){await aN(_,lC.filter((x)=>!kj.has(x)))}async function aN(_,x){await p_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await p_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${p_.join(x.map((u)=>p_.lit(u)))}))`.execute(_)}var sC={};m(sC,{up:()=>qj,down:()=>gj});async function qj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function gj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var bC={};m(bC,{up:()=>ij,down:()=>tj});import{sql as h}from"kysely";async function ij(_){await h`
1468
+ `.execute(_)}async function Vj(_){await eC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var sC={};m(sC,{up:()=>pj,down:()=>vj,ACTIONS:()=>dC});import{sql as p_}from"kysely";var dC=["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"],kj=new Set(["merge_failed"]);async function pj(_){await rN(_,dC)}async function vj(_){await rN(_,dC.filter((x)=>!kj.has(x)))}async function rN(_,x){await p_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await p_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${p_.join(x.map((u)=>p_.lit(u)))}))`.execute(_)}var bC={};m(bC,{up:()=>qj,down:()=>gj});async function qj(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function gj(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var _K={};m(_K,{up:()=>ij,down:()=>tj});import{sql as o}from"kysely";async function ij(_){await o`
1469
1469
  CREATE TABLE org_jira_integrations (
1470
1470
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1471
1471
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1485,7 +1485,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1485
1485
  created_at timestamptz NOT NULL DEFAULT now(),
1486
1486
  updated_at timestamptz NOT NULL DEFAULT now()
1487
1487
  )
1488
- `.execute(_),await h`
1488
+ `.execute(_),await o`
1489
1489
  CREATE TABLE task_board_item_jira_links (
1490
1490
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1491
1491
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1496,7 +1496,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1496
1496
  created_at timestamptz NOT NULL DEFAULT now(),
1497
1497
  UNIQUE (organization_id, jira_issue_id)
1498
1498
  )
1499
- `.execute(_),await h`
1499
+ `.execute(_),await o`
1500
1500
  CREATE TABLE task_board_comment_jira_links (
1501
1501
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1502
1502
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1504,7 +1504,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1504
1504
  created_at timestamptz NOT NULL DEFAULT now(),
1505
1505
  UNIQUE (organization_id, jira_comment_id)
1506
1506
  )
1507
- `.execute(_)}async function tj(_){await h`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await h`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await h`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var _K={};m(_K,{up:()=>hj,down:()=>oj});import{sql as cj}from"kysely";async function hj(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await cj`
1507
+ `.execute(_)}async function tj(_){await o`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await o`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await o`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var xK={};m(xK,{up:()=>hj,down:()=>oj});import{sql as cj}from"kysely";async function hj(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await cj`
1508
1508
  update task_board_items as t
1509
1509
  set key_seq = numbered.seq
1510
1510
  from (
@@ -1517,25 +1517,25 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1517
1517
  from task_board_items
1518
1518
  ) as numbered
1519
1519
  where t.id = numbered.id
1520
- `.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 oj(_){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 xK={};m(xK,{up:()=>aj,down:()=>rj});import{sql as rN}from"kysely";async function aj(_){await rN`
1520
+ `.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 oj(_){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 uK={};m(uK,{up:()=>aj,down:()=>rj});import{sql as eN}from"kysely";async function aj(_){await eN`
1521
1521
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1522
1522
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1523
1523
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1524
- `.execute(_)}async function rj(_){await rN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var mK={};m(mK,{up:()=>ej,down:()=>lj});import{sql as uK}from"kysely";async function ej(_){await uK`
1524
+ `.execute(_)}async function rj(_){await eN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var CK={};m(CK,{up:()=>ej,down:()=>lj});import{sql as mK}from"kysely";async function ej(_){await mK`
1525
1525
  ALTER TABLE thread_message_parts
1526
1526
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1527
- `.execute(_),await uK`
1527
+ `.execute(_),await mK`
1528
1528
  ALTER TABLE thread_message_parts
1529
1529
  ALTER COLUMN persisted_at SET DEFAULT now()
1530
- `.execute(_)}async function lj(_){await uK`
1530
+ `.execute(_)}async function lj(_){await mK`
1531
1531
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1532
- `.execute(_)}var CK={};m(CK,{up:()=>dj,down:()=>sj});async function dj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function sj(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var KK={};m(KK,{up:()=>_Q,down:()=>xQ});import{sql as bj}from"kysely";async function _Q(_){await bj`
1532
+ `.execute(_)}var KK={};m(KK,{up:()=>dj,down:()=>sj});async function dj(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function sj(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var NK={};m(NK,{up:()=>_Q,down:()=>xQ});import{sql as bj}from"kysely";async function _Q(_){await bj`
1533
1533
  CREATE INDEX idx_task_board_items_done_sweep
1534
1534
  ON task_board_items (updated_at)
1535
1535
  WHERE status = 'done' AND dismissed_at IS NULL
1536
- `.execute(_)}async function xQ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var NK={};m(NK,{up:()=>uQ,down:()=>mQ,TYPES:()=>eN});import{sql as V}from"kysely";var eN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function uQ(_){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(V`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V`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(V`now()`)).addCheckConstraint("notifications_type_check",V`type IN (${V.join(eN.map((x)=>V.lit(x)))})`).execute(),await V`CREATE INDEX notifications_user_unread ON notifications
1536
+ `.execute(_)}async function xQ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var TK={};m(TK,{up:()=>uQ,down:()=>mQ,TYPES:()=>lN});import{sql as V}from"kysely";var lN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function uQ(_){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(V`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V`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(V`now()`)).addCheckConstraint("notifications_type_check",V`type IN (${V.join(lN.map((x)=>V.lit(x)))})`).execute(),await V`CREATE INDEX notifications_user_unread ON notifications
1537
1537
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await V`CREATE INDEX notifications_digest ON notifications
1538
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function mQ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var TK={};m(TK,{up:()=>CQ,down:()=>KQ});import{sql as lN}from"kysely";async function CQ(_){await lN`
1538
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function mQ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var zK={};m(zK,{up:()=>CQ,down:()=>KQ});import{sql as dN}from"kysely";async function CQ(_){await dN`
1539
1539
  UPDATE org_jira_integrations
1540
1540
  SET status_mapping = (
1541
1541
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1550,7 +1550,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1550
1550
  SELECT 1 FROM jsonb_each(status_mapping)
1551
1551
  WHERE jsonb_typeof(value) = 'array'
1552
1552
  )
1553
- `.execute(_)}async function KQ(_){await lN`
1553
+ `.execute(_)}async function KQ(_){await dN`
1554
1554
  UPDATE org_jira_integrations
1555
1555
  SET status_mapping = (
1556
1556
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1565,7 +1565,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1565
1565
  SELECT 1 FROM jsonb_each(status_mapping)
1566
1566
  WHERE jsonb_typeof(value) = 'array'
1567
1567
  )
1568
- `.execute(_)}var EK={};m(EK,{up:()=>TQ,down:()=>zQ,TYPES:()=>zK});import{sql as v_}from"kysely";var zK=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],NQ=new Set(["mentioned"]);async function TQ(_){await dN(_,zK)}async function zQ(_){await dN(_,zK.filter((x)=>!NQ.has(x)))}async function dN(_,x){await v_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await v_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var $K={};m($K,{up:()=>$Q,down:()=>UQ,ACTIONS:()=>PK});import{sql as k}from"kysely";var EQ=["bug","feature","chore","spike","security"],PK=["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"],PQ=new Set(["type_changed"]);async function $Q(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await k`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${k.join(EQ.map((x)=>k.lit(x)))}))`.execute(_),await sN(_,PK)}async function UQ(_){await sN(_,PK.filter((x)=>!PQ.has(x))),await k`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function sN(_,x){await k`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k.join(x.map((u)=>k.lit(u)))}))`.execute(_)}var UK={};m(UK,{up:()=>XQ,down:()=>jQ});import{sql as Q}from"kysely";var _T=["bug","feature","chore","spike","security"],bN="chore";async function XQ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(bN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(bN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(_T.map((x)=>Q.lit(x)))}))`.execute(_)}async function jQ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(_T.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var XK={};m(XK,{up:()=>QQ,down:()=>ZQ});import{sql as o}from"kysely";async function QQ(_){await o`
1568
+ `.execute(_)}var PK={};m(PK,{up:()=>TQ,down:()=>zQ,TYPES:()=>EK});import{sql as v_}from"kysely";var EK=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],NQ=new Set(["mentioned"]);async function TQ(_){await sN(_,EK)}async function zQ(_){await sN(_,EK.filter((x)=>!NQ.has(x)))}async function sN(_,x){await v_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await v_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${v_.join(x.map((u)=>v_.lit(u)))}))`.execute(_)}var UK={};m(UK,{up:()=>$Q,down:()=>UQ,ACTIONS:()=>$K});import{sql as k}from"kysely";var EQ=["bug","feature","chore","spike","security"],$K=["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"],PQ=new Set(["type_changed"]);async function $Q(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await k`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${k.join(EQ.map((x)=>k.lit(x)))}))`.execute(_),await bN(_,$K)}async function UQ(_){await bN(_,$K.filter((x)=>!PQ.has(x))),await k`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function bN(_,x){await k`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await k`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${k.join(x.map((u)=>k.lit(u)))}))`.execute(_)}var XK={};m(XK,{up:()=>XQ,down:()=>jQ});import{sql as Q}from"kysely";var xT=["bug","feature","chore","spike","security"],_T="chore";async function XQ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(_T)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(_T)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(xT.map((x)=>Q.lit(x)))}))`.execute(_)}async function jQ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(xT.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var jK={};m(jK,{up:()=>QQ,down:()=>ZQ});import{sql as a}from"kysely";async function QQ(_){await a`
1569
1569
  CREATE TABLE task_board_sprints (
1570
1570
  id text PRIMARY KEY,
1571
1571
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1580,44 +1580,44 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1580
1580
  CHECK (state IN ('active', 'future', 'closed')),
1581
1581
  UNIQUE (organization_id, jira_sprint_id)
1582
1582
  )
1583
- `.execute(_),await o`
1583
+ `.execute(_),await a`
1584
1584
  CREATE INDEX idx_task_board_sprints_org
1585
1585
  ON task_board_sprints (organization_id, starts_at)
1586
- `.execute(_),await o`
1586
+ `.execute(_),await a`
1587
1587
  ALTER TABLE task_board_items
1588
1588
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1589
- `.execute(_),await o`
1589
+ `.execute(_),await a`
1590
1590
  CREATE INDEX idx_task_board_items_sprint
1591
1591
  ON task_board_items (organization_id, sprint_id)
1592
1592
  WHERE sprint_id IS NOT NULL
1593
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await o`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await o`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var jK={};m(jK,{up:()=>WQ,down:()=>DQ});import{sql as JQ}from"kysely";async function WQ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function DQ(_){await JQ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var QK={};m(QK,{up:()=>FQ,down:()=>YQ});import{sql as LQ}from"kysely";async function FQ(_){await LQ`
1593
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await a`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await a`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var QK={};m(QK,{up:()=>WQ,down:()=>DQ});import{sql as JQ}from"kysely";async function WQ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function DQ(_){await JQ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var ZK={};m(ZK,{up:()=>FQ,down:()=>YQ});import{sql as LQ}from"kysely";async function FQ(_){await LQ`
1594
1594
  UPDATE org_jira_integrations
1595
1595
  SET last_synced_at = NULL,
1596
1596
  last_sync_error = NULL
1597
1597
  WHERE last_synced_at IS NOT NULL
1598
- `.execute(_)}async function YQ(){}var ZK={};m(ZK,{up:()=>RQ,down:()=>MQ});import{sql as HQ}from"kysely";async function RQ(_){await HQ`
1598
+ `.execute(_)}async function YQ(){}var JK={};m(JK,{up:()=>RQ,down:()=>MQ});import{sql as HQ}from"kysely";async function RQ(_){await HQ`
1599
1599
  UPDATE org_jira_integrations
1600
1600
  SET last_synced_at = NULL,
1601
1601
  last_sync_error = NULL
1602
1602
  WHERE last_synced_at IS NOT NULL
1603
- `.execute(_)}async function MQ(){}var WK={};m(WK,{up:()=>BQ,down:()=>GQ});import{sql as JK}from"kysely";async function BQ(_){await JK`
1603
+ `.execute(_)}async function MQ(){}var DK={};m(DK,{up:()=>BQ,down:()=>GQ});import{sql as WK}from"kysely";async function BQ(_){await WK`
1604
1604
  ALTER TABLE org_jira_integrations
1605
1605
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1606
- `.execute(_),await JK`
1606
+ `.execute(_),await WK`
1607
1607
  UPDATE org_jira_integrations
1608
1608
  SET rescan_pending = true
1609
1609
  WHERE last_synced_at IS NULL
1610
- `.execute(_)}async function GQ(_){await JK`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var DK={};m(DK,{up:()=>yQ,down:()=>fQ});async function yQ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function fQ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var LK={};m(LK,{up:()=>OQ,down:()=>SQ});import{sql as xT}from"kysely";async function OQ(_){await xT`
1610
+ `.execute(_)}async function GQ(_){await WK`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var LK={};m(LK,{up:()=>yQ,down:()=>fQ});async function yQ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function fQ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var FK={};m(FK,{up:()=>OQ,down:()=>SQ});import{sql as uT}from"kysely";async function OQ(_){await uT`
1611
1611
  ALTER TABLE invitation
1612
1612
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1613
- `.execute(_)}async function SQ(_){await xT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var YK={};m(YK,{up:()=>AQ,down:()=>IQ});import{sql as FK}from"kysely";async function AQ(_){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(FK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FK`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 FK`
1613
+ `.execute(_)}async function SQ(_){await uT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var HK={};m(HK,{up:()=>AQ,down:()=>IQ});import{sql as YK}from"kysely";async function AQ(_){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(YK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YK`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 YK`
1614
1614
  INSERT INTO task_board_column_automations
1615
1615
  (id, organization_id, column_key, prompt)
1616
1616
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1617
1617
  FROM org_jira_integrations
1618
1618
  WHERE auto_delegate = true
1619
1619
  ON CONFLICT DO NOTHING
1620
- `.execute(_)}async function IQ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var HK={};m(HK,{up:()=>nQ,down:()=>wQ});import{sql as P_}from"kysely";async function nQ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await P_`
1620
+ `.execute(_)}async function IQ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var RK={};m(RK,{up:()=>nQ,down:()=>wQ});import{sql as P_}from"kysely";async function nQ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await P_`
1621
1621
  UPDATE task_board_items i
1622
1622
  SET review_cycle_started_at = (
1623
1623
  SELECT max(a.occurred_at)
@@ -1639,7 +1639,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1639
1639
  WHERE status = 'in_review'
1640
1640
  AND assignee_id = 'super-agent'
1641
1641
  AND dismissed_at IS NULL
1642
- `.execute(_),await P_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var RK={};m(RK,{up:()=>VQ,down:()=>kQ});import{sql as uT}from"kysely";async function VQ(_){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(uT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(uT`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 kQ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var BK={};m(BK,{up:()=>vQ,down:()=>qQ,ACTIONS:()=>MK});import{sql as q_}from"kysely";var MK=["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"],pQ=new Set(["review_verdict_requested"]);async function vQ(_){await mT(_,MK)}async function qQ(_){await mT(_,MK.filter((x)=>!pQ.has(x)))}async function mT(_,x){await q_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await q_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${q_.join(x.map((u)=>q_.lit(u)))}))`.execute(_)}var GK={};m(GK,{up:()=>gQ,down:()=>iQ});import{sql as g_}from"kysely";async function gQ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
1642
+ `.execute(_),await P_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var MK={};m(MK,{up:()=>VQ,down:()=>kQ});import{sql as mT}from"kysely";async function VQ(_){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(mT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(mT`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 kQ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var GK={};m(GK,{up:()=>vQ,down:()=>qQ,ACTIONS:()=>BK});import{sql as q_}from"kysely";var BK=["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"],pQ=new Set(["review_verdict_requested"]);async function vQ(_){await CT(_,BK)}async function qQ(_){await CT(_,BK.filter((x)=>!pQ.has(x)))}async function CT(_,x){await q_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await q_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${q_.join(x.map((u)=>q_.lit(u)))}))`.execute(_)}var yK={};m(yK,{up:()=>gQ,down:()=>iQ});import{sql as g_}from"kysely";async function gQ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await g_`
1643
1643
  ALTER TABLE task_board_items
1644
1644
  ADD CONSTRAINT chk_task_board_items_column_org
1645
1645
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1655,7 +1655,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1655
1655
  `.execute(_),await g_`
1656
1656
  ALTER TABLE task_board_items
1657
1657
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1658
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var yK={};m(yK,{up:()=>tQ,down:()=>cQ});async function tQ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function cQ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var OK={};m(OK,{up:()=>oQ,down:()=>aQ,ACTIONS:()=>fK});import{sql as i_}from"kysely";var fK=["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"],hQ=new Set(["sprint_changed"]);async function oQ(_){await CT(_,fK)}async function aQ(_){await CT(_,fK.filter((x)=>!hQ.has(x)))}async function CT(_,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 SK={};m(SK,{up:()=>eQ,down:()=>lQ});import{sql as rQ}from"kysely";async function eQ(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(rQ`'[]'::jsonb`)).execute()}async function lQ(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var AK={};m(AK,{up:()=>dQ,down:()=>sQ});import{sql as KT}from"kysely";async function dQ(_){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(KT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(KT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function sQ(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var IK={};m(IK,{up:()=>_Z,down:()=>xZ});import{sql as bQ}from"kysely";async function _Z(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await bQ`
1658
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var fK={};m(fK,{up:()=>tQ,down:()=>cQ});async function tQ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function cQ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var SK={};m(SK,{up:()=>oQ,down:()=>aQ,ACTIONS:()=>OK});import{sql as i_}from"kysely";var OK=["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"],hQ=new Set(["sprint_changed"]);async function oQ(_){await KT(_,OK)}async function aQ(_){await KT(_,OK.filter((x)=>!hQ.has(x)))}async function KT(_,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 AK={};m(AK,{up:()=>eQ,down:()=>lQ});import{sql as rQ}from"kysely";async function eQ(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(rQ`'[]'::jsonb`)).execute()}async function lQ(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var IK={};m(IK,{up:()=>dQ,down:()=>sQ});import{sql as NT}from"kysely";async function dQ(_){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(NT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NT`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function sQ(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var nK={};m(nK,{up:()=>_Z,down:()=>xZ});import{sql as bQ}from"kysely";async function _Z(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await bQ`
1659
1659
  UPDATE task_board_items i
1660
1660
  SET external_url = t.url,
1661
1661
  description = CASE
@@ -1674,11 +1674,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1674
1674
  ON g.organization_id = l.organization_id
1675
1675
  ) t
1676
1676
  WHERE t.item_id = i.id
1677
- `.execute(_)}async function xZ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var nK={};m(nK,{up:()=>mZ,down:()=>CZ,ACTIONS:()=>NT});import{sql as X}from"kysely";var uZ=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],NT=["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 mZ(_){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`
1677
+ `.execute(_)}async function xZ(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var wK={};m(wK,{up:()=>mZ,down:()=>CZ,ACTIONS:()=>TT});import{sql as X}from"kysely";var uZ=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],TT=["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 mZ(_){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`
1678
1678
  UPDATE task_board_items
1679
1679
  SET status = 'triage'
1680
1680
  WHERE status NOT IN (${X.join(uZ.map((x)=>X.lit(x)))})
1681
- `.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 KZ(_,NT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
1681
+ `.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 KZ(_,TT),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
1682
1682
  ALTER TABLE task_board_item_jira_links
1683
1683
  DROP COLUMN IF EXISTS jira_updated_at,
1684
1684
  DROP COLUMN IF EXISTS jira_status,
@@ -1690,11 +1690,11 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1690
1690
  DROP COLUMN IF EXISTS last_synced_at,
1691
1691
  DROP COLUMN IF EXISTS last_sync_error,
1692
1692
  DROP COLUMN IF EXISTS rescan_pending
1693
- `.execute(_)}async function CZ(){}async function KZ(_,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 wK={};m(wK,{up:()=>NZ,down:()=>TZ});import{sql as a}from"kysely";async function NZ(_){await a`
1693
+ `.execute(_)}async function CZ(){}async function KZ(_,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 VK={};m(VK,{up:()=>NZ,down:()=>TZ});import{sql as r}from"kysely";async function NZ(_){await r`
1694
1694
  ALTER TABLE task_board_items
1695
1695
  ADD COLUMN IF NOT EXISTS source text
1696
1696
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
1697
- `.execute(_),await a`
1697
+ `.execute(_),await r`
1698
1698
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
1699
1699
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1700
1700
  jira_status text NOT NULL,
@@ -1703,7 +1703,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1703
1703
  updated_at timestamptz NOT NULL DEFAULT now(),
1704
1704
  PRIMARY KEY (organization_id, jira_status)
1705
1705
  )
1706
- `.execute(_),await a`
1706
+ `.execute(_),await r`
1707
1707
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
1708
1708
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1709
1709
  jira_issue_id text NOT NULL,
@@ -1711,24 +1711,24 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1711
1711
  created_at timestamptz NOT NULL DEFAULT now(),
1712
1712
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1713
1713
  )
1714
- `.execute(_)}async function TZ(_){await a`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await a`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await a`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var VK={};m(VK,{up:()=>zZ,down:()=>EZ});import{sql as $_}from"kysely";async function zZ(_){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($_`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($_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).execute(),await $_`
1714
+ `.execute(_)}async function TZ(_){await r`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await r`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await r`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var kK={};m(kK,{up:()=>zZ,down:()=>EZ});import{sql as $_}from"kysely";async function zZ(_){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($_`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($_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).execute(),await $_`
1715
1715
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1716
1716
  ON organization_notices (organization_id)
1717
1717
  WHERE resolved_at IS NULL
1718
1718
  `.execute(_),await $_`
1719
1719
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1720
1720
  ON organization_notices (organization_id, created_at DESC)
1721
- `.execute(_)}async function EZ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var pK={};m(pK,{up:()=>DZ,down:()=>LZ});import{sql as kK}from"kysely";import{sql as IW}from"kysely";var TT=50000000,PZ=1e5;function $Z(_,x){let u=0,K=0,C=[_];while(C.length>0){if(u>x||++K>PZ)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let z of N)C.push(z);else if(N!==null&&typeof N==="object")for(let z of Object.values(N))C.push(z)}return u}var UZ=/\u0000/g,XZ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jZ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,QZ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,ZZ=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JZ(_){return _.replace(UZ,"").replace(XZ,"\uFFFD").replace(jZ,"$1***@").replace(QZ,"$1***").replace(ZZ,"[base64 data omitted]")}function WZ(_){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 zT(_){if($Z(_,TT)>TT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JZ(u);if(WZ(u))return{type:"text",text:"[image omitted]"};return u})}var ET=20;async function DZ(_){let x=await kK`
1721
+ `.execute(_)}async function EZ(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var vK={};m(vK,{up:()=>DZ,down:()=>LZ});import{sql as pK}from"kysely";import{sql as nW}from"kysely";var zT=50000000,PZ=1e5;function $Z(_,x){let u=0,K=0,C=[_];while(C.length>0){if(u>x||++K>PZ)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let z of N)C.push(z);else if(N!==null&&typeof N==="object")for(let z of Object.values(N))C.push(z)}return u}var UZ=/\u0000/g,XZ=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jZ=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,QZ=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,ZZ=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function JZ(_){return _.replace(UZ,"").replace(XZ,"\uFFFD").replace(jZ,"$1***@").replace(QZ,"$1***").replace(ZZ,"[base64 data omitted]")}function WZ(_){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 ET(_){if($Z(_,zT)>zT)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return JZ(u);if(WZ(u))return{type:"text",text:"[image omitted]"};return u})}var PT=20;async function DZ(_){let x=await pK`
1722
1722
  SELECT id FROM thread_message_parts
1723
1723
  WHERE pg_column_size(payload) > 8192
1724
1724
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1725
- `.execute(_);for(let u=0;u<x.rows.length;u+=ET){let K=x.rows.slice(u,u+ET).map((N)=>N.id),C=await kK`
1725
+ `.execute(_);for(let u=0;u<x.rows.length;u+=PT){let K=x.rows.slice(u,u+PT).map((N)=>N.id),C=await pK`
1726
1726
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${K})
1727
- `.execute(_);for(let N of C.rows){let z=zT(N.payload);if(z===JSON.stringify(N.payload))continue;await kK`
1727
+ `.execute(_);for(let N of C.rows){let z=ET(N.payload);if(z===JSON.stringify(N.payload))continue;await pK`
1728
1728
  UPDATE thread_message_parts
1729
1729
  SET payload = ${z}::jsonb
1730
1730
  WHERE id = ${N.id}
1731
- `.execute(_)}}}async function LZ(){}var vK={};m(vK,{up:()=>FZ,down:()=>YZ});async function FZ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function YZ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var qK={};m(qK,{up:()=>HZ,down:()=>RZ});import{sql as P}from"kysely";async function HZ(_){await P`
1731
+ `.execute(_)}}}async function LZ(){}var qK={};m(qK,{up:()=>FZ,down:()=>YZ});async function FZ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function YZ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var gK={};m(gK,{up:()=>HZ,down:()=>RZ});import{sql as P}from"kysely";async function HZ(_){await P`
1732
1732
  CREATE TABLE git_provider_accounts (
1733
1733
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1734
1734
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1976,7 +1976,7 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
1976
1976
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1977
1977
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1978
1978
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1979
- `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var gK={};m(gK,{up:()=>BZ,down:()=>GZ});import{sql as M}from"kysely";var MZ=M`
1979
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var iK={};m(iK,{up:()=>BZ,down:()=>GZ});import{sql as M}from"kysely";var MZ=M`
1980
1980
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1981
1981
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1982
1982
  BEGIN
@@ -2049,27 +2049,29 @@ var fT=Object.defineProperty;var OT=(_)=>_;function ST(_,x){this[_]=OT.bind(null
2049
2049
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2050
2050
  `.execute(_),await M`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function GZ(_){await M`DROP TABLE IF EXISTS thread_repositories`.execute(_),await M`
2051
2051
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2052
- `.execute(_)}var yZ={"001-initial-schema":Mx,"002-organization-settings":Bx,"003-connection-schema-align":Gx,"004-remove-models-binding":yx,"005-connection-configuration":fx,"006-add-views-to-settings":Ox,"007-monitoring-logs":Sx,"008-event-bus":Ax,"009-drop-audit-logs":Ix,"010-gateways":nx,"011-gateway-icon":wx,"012-gateway-tool-selection-mode":Vx,"013-monitoring-user-agent-gateway":kx,"014-gateway-resources-prompts":px,"015-monitoring-properties":vx,"016-downstream-token-client-info":qx,"017-downstream-token-remove-userid":gx,"018-drop-gateway-tool-selection-strategy":ix,"019-remove-gateway-is-default":tx,"020-enabled-plugins":cx,"021-threads":hx,"022-rename-gateway-to-virtual-mcp":ox,"023-optimize-thread-indexes":ax,"024-consolidate-virtual-mcp":rx,"025-add-monitoring-virtual-mcp-id":ex,"026-restrict-child-connection-delete":lx,"027-update-management-mcp-url":sx,"028-update-management-mcp-to-self":_u,"029-add-updated-by-to-connections":xu,"030-member-tags":uu,"031-add-dependency-mode":mu,"032-projects":Cu,"033-thread-status":Ku,"034-monitoring-dashboards":Nu,"035-project-connections":Tu,"036-update-registry-url":zu,"037-ai-provider-keys":Eu,"038-oauth-pkce-states":Pu,"039-automations":$u,"040-replace-next-run-at-with-last-run-at":Uu,"041-ai-provider-keys-unique-constraint":Xu,"042-rename-mesh-mcp-to-cms-mcp":ju,"043-rename-cms-mcp-to-deco-cms":Qu,"044-drop-connections-tools-column":Zu,"045-thread-context-start-message":Ju,"046-remove-object-storage-plugin":Du,"047-add-next-run-at":Lu,"048-merge-projects-agents":Yu,"049-remove-org-admin-projects":Hu,"050-durable-agent-runs":Ru,"051-org-sso":Bu,"052-thread-agent-ids":Gu,"053-registry-config":yu,"054-connection-slug":Ou,"055-spaces":Su,"056-automation-project-scope":Au,"057-thread-virtual-mcp-id":Iu,"058-trigger-callback-tokens":nu,"059-kv":wu,"060-member-index":Vu,"061-downstream-token-connection-index":ku,"062-private-registry":pu,"063-event-subscriptions-enabled-boolean":vu,"064-brand-context":qu,"065-organization-domains":gu,"066-brand-context-structured":iu,"067-threads-metadata":tu,"068-threads-branch":cu,"069-sandbox-runner-state":hu,"070-model-categories":ou,"071-default-home-agents":au,"072-ai-provider-key-preset-id":ru,"073-backfill-basic-usage-roles":eu,"074-sandbox-runner-state-handle-nonunique":lu,"075-thread-inflight-async-jobs":du,"076-automations-drop-agent-json":su,"077-tier-only-model-selection":_m,"078-automation-tool-call-kind":xm,"079-strip-legacy-freestyle-vm-map-entries":um,"080-async-research-jobs":mm,"081-async-research-jobs-result-content":Cm,"082-secrets":Km,"083-thread-run-locally":Nm,"084-drop-host-sandbox-rows":Tm,"085-rename-runner-kind":zm,"086-thread-pins-and-vm-map-rekey":Em,"087-fix-vm-map-rekey":Pm,"088-purge-cli-activate-keys":$m,"089-rename-remote-user-to-desktop":Um,"090-automation-webhook-triggers":Xm,"091-organization-domains-allow-multi":jm,"092-sandbox-naming-uniformization":Qm,"093-backfill-global-search-basic-usage":Zm,"094-org-file-configs":Wm,"095-remove-automation-tool-call-kind":Dm,"096-org-file-configs-public-url-base":Lm,"097-drop-local-docker-sandbox-state":Ym,"098-thread-message-parts":Hm,"099-run-fence":Rm,"100-link-transport":Mm,"101-cancel-requested-at":Bm,"102-observational-agent":Gm,"103-revert-observational-agent":ym,"104-agent-sandbox-provider-kind":Om,"105-org-fs":Sm,"106-automation-tools":Am,"107-org-fs-public-org":Im,"108-automation-max-agent-steps":nm,"109-thread-message-parts-per-message-seq":wm,"110-backfill-ghs-token-expiry":Vm,"111-org-fs-thread-id":km,"112-org-file-configs-credential-type":pm,"113-thread-failure-reason":vm,"114-run-acked-seq":qm,"115-thread-projected-seq":gm,"116-org-sites":im,"117-org-file-configs-site-slug":tm,"118-organization-domains-multi-verify":cm,"119-organization-join-requests":hm,"120-org-fs-read-public":om,"121-org-fs-share-password":am,"122-split-web-research-tier":lm,"123-connection-credential-vault":dm,"124-drop-thread-projected-seq":sm,"125-github-child-single-parent":bm,"126-task-board":xC,"127-task-board-due-date":uC,"128-reports-only":mC,"129-task-board-assigned-by":CC,"130-task-board-thread-id":KC,"131-task-board-thread-link-cascade":NC,"132-task-board-item-prs":TC,"133-dedupe-duplicate-members":zC,"134-drop-task-board-enabled":EC,"135-task-board-item-fk-cascade":PC,"136-task-board-import-idempotency":$C,"137-agent-sandbox-runner-state":UC,"138-agent-sandbox-sessions":XC,"139-organization-billing":jC,"140-seat-change-log":QC,"141-benefits-sync-pending":ZC,"142-stripe-event-watermark":JC,"143-armed-report-url":WC,"144-benefits-pending-index":DC,"145-user-model-preferences":LC,"146-organization-main-agent":FC,"147-drop-agent-sandbox-tables":YC,"148-org-flags":HC,"149-task-board-item-sort-order":RC,"150-task-board-activity":MC,"151-task-board-tags":GC,"152-repair-connection-slug":fC,"153-task-board-latest-assistant-part-index":OC,"154-task-board-qa-activity":AC,"155-task-board-review-claims":IC,"156-task-board-conflict-activity":wC,"157-drop-seat-billing":VC,"158-drop-github-child-single-parent":kC,"159-task-board-comments":pC,"160-task-quota-billing":vC,"161-task-quota-claim-state":gC,"162-claude-subscriptions":iC,"163-task-board-item-dismissed":tC,"164-per-org-task-quota":cC,"165-task-board-pending-review-index":hC,"166-task-board-last-swept-at":oC,"167-task-board-run-retry":aC,"168-org-repo-sync":eC,"169-task-board-merge-failed-activity":dC,"170-task-board-item-repo":sC,"171-jira-integration":bC,"172-task-board-item-key-seq":_K,"173-thread-github-repo-connection-index":xK,"174-thread-message-parts-persisted-at":mK,"175-task-board-sprints":CK,"176-task-board-done-sweep-index":KK,"177-notifications":NK,"178-jira-status-mapping-array":TK,"179-notification-mentioned":EK,"180-task-board-item-type":$K,"181-task-board-item-type-required":UK,"182-task-board-sprints-entities":XK,"183-drop-jira-jql-filter":jK,"184-jira-rescan-after-scope-change":QK,"185-jira-rescan-existing-cards":ZK,"186-jira-rescan-pending-flag":WK,"187-task-board-comment-thread":DK,"188-invitation-auto-accept":LK,"189-task-board-column-automations":YK,"190-task-board-review-cycle-started-at":HK,"191-task-board-columns":RK,"192-task-board-verdict-nudge-activity":BK,"193-task-board-status-column-fk":GK,"194-jira-link-sprint":yK,"195-task-board-sprint-activity":OK,"196-task-board-column-tracker-statuses":SK,"197-task-board-prompts":AK,"198-task-board-external-url":IK,"199-drop-jira-mirror-and-org-columns":nK,"200-jira-run-trigger":wK,"201-organization-notices":VK,"202-redact-base64-thread-parts":pK,"203-task-board-preview-routes":vK,"204-git-provider-accounts-and-repositories":qK,"205-repository-references":gK,"206-repository-consumers":Rx,"207-task-board-prs-repo-idx":Hx,"208-github-connect-flows":Yx,"209-github-installation-authorization":Fx,"210-github-repository-authorization":Xx,"211-user-fs-org":Ux,"212-coding-agent-mcp-excluded":jx,"213-bitbucket-git-provider":Qx,"214-connections-sanitized-id-idx":zx,"215-commerce-discovery-repository":Ex,"216-github-cli-auth":$x,"217-experiments":Zx,"218-thread-message-parts-error-idx":Jx,"219-task-board-duplicate-reported-activity":Dx,"220-jira-automation-continue-pr":Lx,"221-remove-private-registry":e_,"222-org-git-credentials":l_,"223-drop-org-main-agent-id":Tx,"224-repository-sandbox-image":d_,"225-thread-analytics-indexes":b_,"226-deco-score-names":xx,"227-task-board-finding-resolved-activity":mx,"228-org-voice-config":r_,"229-jira-automation-from":Cx,"230-project-sidebar":Kx,"231-jira-chat-agent":Nx},iK=yZ;import{getMigrations as T6}from"better-auth/db";import{sso as z6}from"@better-auth/sso";import{organization as E6}from"@decocms/better-auth/plugins";import{admin as P6,apiKey as $6,jwt as U6,magicLink as X6,mcp as j6,openAPI as Q6}from"better-auth/plugins";import{emailOTP as Z6}from"better-auth/plugins/email-otp";import{Kysely as bZ,PostgresDialect as LT}from"kysely";import{Pool as FT}from"pg";import{homedir as fZ}from"os";var OZ=new Set(["all","worker","api"]);function SZ(_){let x=(_??"").trim();return OZ.has(x)?x:"all"}var AZ=new Set(["production","development","test"]);function IZ(_){let x=(_??"").trim();return AZ.has(x)?x:"development"}function J(_){return _==="true"||_==="1"}function cK(_,x,u){if(x===void 0||x==="")return;let K=Number(x);if(!Number.isSafeInteger(K)||K<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&K>u)throw Error(`${_} must be at most ${u}`);return K}function B(_,x,u,K){return cK(_,x,K)??u}function nZ(_){let x={};for(let u of(_??"").split(",")){let K=u.trim();if(!K)continue;let C=K.indexOf("="),N=C>0?K.slice(0,C).trim():"",z=C>0?K.slice(C+1).trim():"";if(!N||!z){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${K}" \u2014 expected price_xxx=planId`);continue}x[N]=z}return x}function wZ(_,x,u,K){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(K!==void 0&&C>K)throw Error(`${_} must be at most ${K}`);return C}function tK(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function PT(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function VZ(_){return _===void 0||_===""||_==="true"||_==="1"}function U_(_,x){return _||x}function $T(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${fZ()}/deco`,K=_.localMode,C=_.nodeEnv||IZ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",z=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",T={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:U_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:z==="elevenlabs"||z==="openai"?z:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:J(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:U_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:K,disableRateLimit:J(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:J(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((E)=>E.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((E)=>E.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:cK("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nZ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:wZ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:J(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:J(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:J(x.HOSTING_CONTROL_PLANE_GA),monitorGa:J(x.MONITOR_GA),plansEnabled:J(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:tK(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:tK(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:VZ(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:cK("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:SZ(U_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:J(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:J(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:tK(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:J(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:U_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:U_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>0&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>1&&!T.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{settings:T,externalDatabaseUrl:PT(x.DATABASE_URL),externalNatsUrl:PT(N),skipMigrations:_.skipMigrations}}var t_=null;function r(){if(!t_)kZ();return t_}function kZ(){if(t_)return;let _={...process.env},x=$T({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);t_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as tZ,metrics as cZ,propagation as s2,ROOT_CONTEXT as b2,SpanStatusCode as _7,trace as hZ}from"@opentelemetry/api";import{logs as oZ,SeverityNumber as hK}from"@opentelemetry/api-logs";import{OTLPLogExporter as m7}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as aZ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as N7}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as z7}from"@opentelemetry/instrumentation-runtime-node";import{context as oW,propagation as aW,SpanKind as rW,SpanStatusCode as eW}from"@opentelemetry/api";var dW=globalThis.fetch;import{ExportResultCode as E2}from"@opentelemetry/core";import{ExportResultCode as c_}from"@opentelemetry/core";import{mkdir as pZ,rename as vZ,writeFile as qZ}from"fs/promises";import{join as h_}from"path";class o_{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:c_.FAILED});for(let x of _){let u=JSON.stringify(x),K=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:K,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:c_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:c_.FAILED}});return Promise.resolve({code:c_.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 C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),K=u.find((C)=>C.status==="rejected");if(K){let C=new Set;for(let z of u)if(z.status==="fulfilled")C.add(z.value);let N=_.filter((z)=>!C.has(z.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let z of this.bufferItems)this.bufferBytes+=Buffer.byteLength(z.json,"utf8")+1;throw K.reason}}async writeNDJSON(_,x){let u=new Date,K=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?h_(this.basePath,x,...K):h_(this.basePath,...K);if(!this.knownDirs.has(C))await pZ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,z=h_(C,`.${N}.tmp`),T=h_(C,N),E=_.join(`
2052
+ `.execute(_)}var yZ={"001-initial-schema":Bx,"002-organization-settings":Gx,"003-connection-schema-align":yx,"004-remove-models-binding":fx,"005-connection-configuration":Ox,"006-add-views-to-settings":Sx,"007-monitoring-logs":Ax,"008-event-bus":Ix,"009-drop-audit-logs":nx,"010-gateways":wx,"011-gateway-icon":Vx,"012-gateway-tool-selection-mode":kx,"013-monitoring-user-agent-gateway":px,"014-gateway-resources-prompts":vx,"015-monitoring-properties":qx,"016-downstream-token-client-info":gx,"017-downstream-token-remove-userid":ix,"018-drop-gateway-tool-selection-strategy":tx,"019-remove-gateway-is-default":cx,"020-enabled-plugins":hx,"021-threads":ox,"022-rename-gateway-to-virtual-mcp":ax,"023-optimize-thread-indexes":rx,"024-consolidate-virtual-mcp":ex,"025-add-monitoring-virtual-mcp-id":lx,"026-restrict-child-connection-delete":dx,"027-update-management-mcp-url":bx,"028-update-management-mcp-to-self":xu,"029-add-updated-by-to-connections":uu,"030-member-tags":mu,"031-add-dependency-mode":Cu,"032-projects":Ku,"033-thread-status":Nu,"034-monitoring-dashboards":Tu,"035-project-connections":zu,"036-update-registry-url":Eu,"037-ai-provider-keys":Pu,"038-oauth-pkce-states":$u,"039-automations":Uu,"040-replace-next-run-at-with-last-run-at":Xu,"041-ai-provider-keys-unique-constraint":ju,"042-rename-mesh-mcp-to-cms-mcp":Qu,"043-rename-cms-mcp-to-deco-cms":Zu,"044-drop-connections-tools-column":Ju,"045-thread-context-start-message":Wu,"046-remove-object-storage-plugin":Lu,"047-add-next-run-at":Fu,"048-merge-projects-agents":Hu,"049-remove-org-admin-projects":Ru,"050-durable-agent-runs":Mu,"051-org-sso":Gu,"052-thread-agent-ids":yu,"053-registry-config":fu,"054-connection-slug":Su,"055-spaces":Au,"056-automation-project-scope":Iu,"057-thread-virtual-mcp-id":nu,"058-trigger-callback-tokens":wu,"059-kv":Vu,"060-member-index":ku,"061-downstream-token-connection-index":pu,"062-private-registry":vu,"063-event-subscriptions-enabled-boolean":qu,"064-brand-context":gu,"065-organization-domains":iu,"066-brand-context-structured":tu,"067-threads-metadata":cu,"068-threads-branch":hu,"069-sandbox-runner-state":ou,"070-model-categories":au,"071-default-home-agents":ru,"072-ai-provider-key-preset-id":eu,"073-backfill-basic-usage-roles":lu,"074-sandbox-runner-state-handle-nonunique":du,"075-thread-inflight-async-jobs":su,"076-automations-drop-agent-json":bu,"077-tier-only-model-selection":xm,"078-automation-tool-call-kind":um,"079-strip-legacy-freestyle-vm-map-entries":mm,"080-async-research-jobs":Cm,"081-async-research-jobs-result-content":Km,"082-secrets":Nm,"083-thread-run-locally":Tm,"084-drop-host-sandbox-rows":zm,"085-rename-runner-kind":Em,"086-thread-pins-and-vm-map-rekey":Pm,"087-fix-vm-map-rekey":$m,"088-purge-cli-activate-keys":Um,"089-rename-remote-user-to-desktop":Xm,"090-automation-webhook-triggers":jm,"091-organization-domains-allow-multi":Qm,"092-sandbox-naming-uniformization":Zm,"093-backfill-global-search-basic-usage":Jm,"094-org-file-configs":Dm,"095-remove-automation-tool-call-kind":Lm,"096-org-file-configs-public-url-base":Fm,"097-drop-local-docker-sandbox-state":Hm,"098-thread-message-parts":Rm,"099-run-fence":Mm,"100-link-transport":Bm,"101-cancel-requested-at":Gm,"102-observational-agent":ym,"103-revert-observational-agent":fm,"104-agent-sandbox-provider-kind":Sm,"105-org-fs":Am,"106-automation-tools":Im,"107-org-fs-public-org":nm,"108-automation-max-agent-steps":wm,"109-thread-message-parts-per-message-seq":Vm,"110-backfill-ghs-token-expiry":km,"111-org-fs-thread-id":pm,"112-org-file-configs-credential-type":vm,"113-thread-failure-reason":qm,"114-run-acked-seq":gm,"115-thread-projected-seq":im,"116-org-sites":tm,"117-org-file-configs-site-slug":cm,"118-organization-domains-multi-verify":hm,"119-organization-join-requests":om,"120-org-fs-read-public":am,"121-org-fs-share-password":rm,"122-split-web-research-tier":dm,"123-connection-credential-vault":sm,"124-drop-thread-projected-seq":bm,"125-github-child-single-parent":_C,"126-task-board":uC,"127-task-board-due-date":mC,"128-reports-only":CC,"129-task-board-assigned-by":KC,"130-task-board-thread-id":NC,"131-task-board-thread-link-cascade":TC,"132-task-board-item-prs":zC,"133-dedupe-duplicate-members":EC,"134-drop-task-board-enabled":PC,"135-task-board-item-fk-cascade":$C,"136-task-board-import-idempotency":UC,"137-agent-sandbox-runner-state":XC,"138-agent-sandbox-sessions":jC,"139-organization-billing":QC,"140-seat-change-log":ZC,"141-benefits-sync-pending":JC,"142-stripe-event-watermark":WC,"143-armed-report-url":DC,"144-benefits-pending-index":LC,"145-user-model-preferences":FC,"146-organization-main-agent":YC,"147-drop-agent-sandbox-tables":HC,"148-org-flags":RC,"149-task-board-item-sort-order":MC,"150-task-board-activity":BC,"151-task-board-tags":yC,"152-repair-connection-slug":OC,"153-task-board-latest-assistant-part-index":SC,"154-task-board-qa-activity":IC,"155-task-board-review-claims":nC,"156-task-board-conflict-activity":VC,"157-drop-seat-billing":kC,"158-drop-github-child-single-parent":pC,"159-task-board-comments":vC,"160-task-quota-billing":qC,"161-task-quota-claim-state":iC,"162-claude-subscriptions":tC,"163-task-board-item-dismissed":cC,"164-per-org-task-quota":hC,"165-task-board-pending-review-index":oC,"166-task-board-last-swept-at":aC,"167-task-board-run-retry":rC,"168-org-repo-sync":lC,"169-task-board-merge-failed-activity":sC,"170-task-board-item-repo":bC,"171-jira-integration":_K,"172-task-board-item-key-seq":xK,"173-thread-github-repo-connection-index":uK,"174-thread-message-parts-persisted-at":CK,"175-task-board-sprints":KK,"176-task-board-done-sweep-index":NK,"177-notifications":TK,"178-jira-status-mapping-array":zK,"179-notification-mentioned":PK,"180-task-board-item-type":UK,"181-task-board-item-type-required":XK,"182-task-board-sprints-entities":jK,"183-drop-jira-jql-filter":QK,"184-jira-rescan-after-scope-change":ZK,"185-jira-rescan-existing-cards":JK,"186-jira-rescan-pending-flag":DK,"187-task-board-comment-thread":LK,"188-invitation-auto-accept":FK,"189-task-board-column-automations":HK,"190-task-board-review-cycle-started-at":RK,"191-task-board-columns":MK,"192-task-board-verdict-nudge-activity":GK,"193-task-board-status-column-fk":yK,"194-jira-link-sprint":fK,"195-task-board-sprint-activity":SK,"196-task-board-column-tracker-statuses":AK,"197-task-board-prompts":IK,"198-task-board-external-url":nK,"199-drop-jira-mirror-and-org-columns":wK,"200-jira-run-trigger":VK,"201-organization-notices":kK,"202-redact-base64-thread-parts":vK,"203-task-board-preview-routes":qK,"204-git-provider-accounts-and-repositories":gK,"205-repository-references":iK,"206-repository-consumers":Mx,"207-task-board-prs-repo-idx":Rx,"208-github-connect-flows":Hx,"209-github-installation-authorization":Yx,"210-github-repository-authorization":jx,"211-user-fs-org":Xx,"212-coding-agent-mcp-excluded":Qx,"213-bitbucket-git-provider":Zx,"214-connections-sanitized-id-idx":Ex,"215-commerce-discovery-repository":Px,"216-github-cli-auth":Ux,"217-experiments":Jx,"218-thread-message-parts-error-idx":Wx,"219-task-board-duplicate-reported-activity":Lx,"220-jira-automation-continue-pr":Fx,"221-remove-private-registry":l_,"222-org-git-credentials":d_,"223-drop-org-main-agent-id":zx,"224-repository-sandbox-image":s_,"225-thread-analytics-indexes":_x,"226-deco-score-names":ux,"227-task-board-finding-resolved-activity":Cx,"228-org-voice-config":e_,"229-jira-automation-from":Kx,"230-project-sidebar":Nx,"231-jira-chat-agent":Tx},t_=yZ;import{getMigrations as T6}from"better-auth/db";import{sso as z6}from"@better-auth/sso";import{organization as E6}from"@decocms/better-auth/plugins";import{admin as P6,apiKey as $6,jwt as U6,magicLink as X6,mcp as j6,openAPI as Q6}from"better-auth/plugins";import{emailOTP as Z6}from"better-auth/plugins/email-otp";import{Kysely as bZ,PostgresDialect as FT}from"kysely";import{Pool as YT}from"pg";import{homedir as fZ}from"os";var OZ=new Set(["all","worker","api"]);function SZ(_){let x=(_??"").trim();return OZ.has(x)?x:"all"}var AZ=new Set(["production","development","test"]);function IZ(_){let x=(_??"").trim();return AZ.has(x)?x:"development"}function J(_){return _==="true"||_==="1"}function cK(_,x,u){if(x===void 0||x==="")return;let K=Number(x);if(!Number.isSafeInteger(K)||K<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&K>u)throw Error(`${_} must be at most ${u}`);return K}function B(_,x,u,K){return cK(_,x,K)??u}function nZ(_){let x={};for(let u of(_??"").split(",")){let K=u.trim();if(!K)continue;let C=K.indexOf("="),N=C>0?K.slice(0,C).trim():"",z=C>0?K.slice(C+1).trim():"";if(!N||!z){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${K}" \u2014 expected price_xxx=planId`);continue}x[N]=z}return x}function wZ(_,x,u,K){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(K!==void 0&&C>K)throw Error(`${_} must be at most ${K}`);return C}function tK(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function $T(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function VZ(_){return _===void 0||_===""||_==="true"||_==="1"}function U_(_,x){return _||x}function UT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${fZ()}/deco`,K=_.localMode,C=_.nodeEnv||IZ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222",z=x.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",T={nodeEnv:C,port:B("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:U_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,voiceConversationProvider:z==="elevenlabs"||z==="openai"?z:null,openaiLiveApiKey:x.OPENAI_LIVE_API_KEY,openaiLiveModel:x.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:x.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:x.ELEVENLABS_API_KEY,elevenlabsVoiceId:x.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:x.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:x.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databasePgSsl:J(x.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:U_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:K,disableRateLimit:J(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:J(x.JIRA_ALLOW_LOCAL_SITE_URL),jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",x.JIRA_SETTLE_SECONDS,60,3600),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((E)=>E.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(x.STUDIO_ADMIN_ORG_IDS??"").split(",").map((E)=>E.trim()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:cK("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:nZ(x.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:x.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:wZ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:J(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:J(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:J(x.HOSTING_CONTROL_PLANE_GA),monitorGa:J(x.MONITOR_GA),plansEnabled:J(x.STUDIO_PLANS_ENABLED),mcpCacheEnabled:tK(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:tK(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:VZ(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:cK("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:SZ(U_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:J(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:J(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:tK(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:J(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:U_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:U_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY};if(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>0&&!T.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(T.plansEnabled&&Object.keys(T.stripePlanPriceIds).length>1&&!T.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{settings:T,externalDatabaseUrl:$T(x.DATABASE_URL),externalNatsUrl:$T(N),skipMigrations:_.skipMigrations}}var c_=null;function e(){if(!c_)kZ();return c_}function kZ(){if(c_)return;let _={...process.env},x=UT({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);c_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as tZ,metrics as cZ,propagation as b2,ROOT_CONTEXT as _7,SpanStatusCode as x7,trace as hZ}from"@opentelemetry/api";import{logs as oZ,SeverityNumber as hK}from"@opentelemetry/api-logs";import{OTLPLogExporter as C7}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as aZ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as T7}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as E7}from"@opentelemetry/instrumentation-runtime-node";import{context as aW,propagation as rW,SpanKind as eW,SpanStatusCode as lW}from"@opentelemetry/api";var sW=globalThis.fetch;import{ExportResultCode as P2}from"@opentelemetry/core";import{ExportResultCode as h_}from"@opentelemetry/core";import{mkdir as pZ,rename as vZ,writeFile as qZ}from"fs/promises";import{join as o_}from"path";class a_{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:h_.FAILED});for(let x of _){let u=JSON.stringify(x),K=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:K,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:h_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:h_.FAILED}});return Promise.resolve({code:h_.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 C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),K=u.find((C)=>C.status==="rejected");if(K){let C=new Set;for(let z of u)if(z.status==="fulfilled")C.add(z.value);let N=_.filter((z)=>!C.has(z.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let z of this.bufferItems)this.bufferBytes+=Buffer.byteLength(z.json,"utf8")+1;throw K.reason}}async writeNDJSON(_,x){let u=new Date,K=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?o_(this.basePath,x,...K):o_(this.basePath,...K);if(!this.knownDirs.has(C))await pZ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,z=o_(C,`.${N}.tmp`),T=o_(C,N),E=_.join(`
2053
2053
  `)+`
2054
- `;await qZ(z,E,{mode:384}),await vZ(z,T)}}import{ExportResultCode as j2}from"@opentelemetry/core";import{AggregationTemporality as Z2,DataPointType as J2}from"@opentelemetry/sdk-metrics";import{ExportResultCode as H2}from"@opentelemetry/core";var G2=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as J7,LoggerProvider as W7}from"@opentelemetry/sdk-logs";import{detectResources as L7,envDetector as F7,hostDetector as Y7,osDetector as H7,processDetector as R7,resourceFromAttributes as M7}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as G7}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as O2}from"@opentelemetry/api-logs";import{NodeSDK as O7}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as A7,SamplingDecision as e}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as w2}from"@opentelemetry/api";var rZ="__d",eZ=tZ("Current request"),lZ=1;var XT=(_)=>{let u=new URL(_.url).searchParams.get(rZ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class jT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,K,C,N){let z=_.getValue(eZ);if(!z){if(this.inner)return this.inner.shouldSample(_,x,u,K,C,N);return{decision:e.RECORD_AND_SAMPLED}}let T=XT(z);if(T)return{decision:e.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let E=this.inner.shouldSample(_,x,u,K,C,N);if(E.decision===e.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:e.NOT_RECORD}}toString(){return"DebugSampler"}}class QT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:e.RECORD_AND_SAMPLED};return{decision:e.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var n7=new aZ({preventServerStart:!0}),w7=new jT(new QT(lZ));var UT=hZ.getTracer("studio","1.0.0"),X_=cZ.getMeter("studio","1.0.0"),dZ=oZ.getLogger("studio","1.0.0"),oK=(_,x,u)=>{let K={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)K=N,C=u.slice(0,-1);let z=C.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");dZ.emit({severityNumber:_,severityText:x,body:z,attributes:{"log.source":"console",...K}})},aK={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{oK(hK.ERROR,"ERROR",_),aK.error(..._)};console.warn=(..._)=>{oK(hK.WARN,"WARN",_),aK.warn(..._)};console.debug=(..._)=>{oK(hK.DEBUG,"DEBUG",_),aK.debug(..._)};var rK,ZT=0,eK=500;function sZ(){if(rK)return;let _=performance.now()+eK;rK=setInterval(()=>{let x=performance.now();ZT=Math.max(0,x-_),_=x+eK},eK),rK.unref?.()}function JT(){return sZ(),ZT}var _6=()=>X_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),WT=()=>X_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),DT=400,x6=100,u6=(_)=>({"db.status":_.level==="error"?"error":"success"}),m6=(_)=>(x)=>{let u=u6(x);if(x.queryDurationMillis>DT){let K=JT(),C=K>DT/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(K),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:a_()}})}if(_6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function C6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let K=performance.now(),C=a_(),N=_.idleCount===0&&_.totalCount>=C,z=_.idleCount;return x().then((T)=>{let E=performance.now()-K;if(WT().record(E,{"db.pool.outcome":N?"contended":"available"}),E>x6)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:z,total:_.totalCount,max:C});return T},(T)=>{throw WT().record(performance.now()-K,{"db.pool.outcome":"error"}),T})},_}var YT={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function HT(){try{return r().databasePgSsl}catch{return!1}}function a_(){try{return r().databasePoolMax}catch{return 10}}function K6(_){let x=C6(new FT({connectionString:_,max:a_(),ssl:HT(),...YT})),u=new LT({pool:x});return{type:"postgres",db:new bZ({dialect:u,log:m6(x)}),pool:x}}function Q_(){return r().databaseUrl}function RT(_){let x=_||Q_();return new LT({pool:new FT({connectionString:x,max:a_(),ssl:HT(),...YT})})}function N6(_){let x=_||Q_();return K6(x)}async function MT(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===j_)j_=null}var j_=null;function lK(){if(!j_)j_=N6(Q_());return j_}async function BT(_){let u={database:RT(_||Q_()),plugins:[E6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),P6(),$6(),U6(),Q6(),j6({loginPage:"/login"}),z6(),X6({sendMagicLink:async()=>{}}),Z6({sendVerificationOTP:async()=>{}})]},{toBeAdded:K,toBeCreated:C,runMigrations:N}=await T6(u);if(!K.length&&!C.length)return"up to date";return await N(),`${C.length+K.length} table(s) migrated`}async function yT(_,x){return(await l`
2054
+ `;await qZ(z,E,{mode:384}),await vZ(z,T)}}import{ExportResultCode as Q2}from"@opentelemetry/core";import{AggregationTemporality as J2,DataPointType as W2}from"@opentelemetry/sdk-metrics";import{ExportResultCode as R2}from"@opentelemetry/core";var y2=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as W7,LoggerProvider as D7}from"@opentelemetry/sdk-logs";import{detectResources as F7,envDetector as Y7,hostDetector as H7,osDetector as R7,processDetector as M7,resourceFromAttributes as B7}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as y7}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as S2}from"@opentelemetry/api-logs";import{NodeSDK as S7}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as I7,SamplingDecision as l}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as V2}from"@opentelemetry/api";var rZ="__d",eZ=tZ("Current request"),lZ=1;var jT=(_)=>{let u=new URL(_.url).searchParams.get(rZ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class QT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,K,C,N){let z=_.getValue(eZ);if(!z){if(this.inner)return this.inner.shouldSample(_,x,u,K,C,N);return{decision:l.RECORD_AND_SAMPLED}}let T=jT(z);if(T)return{decision:l.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let E=this.inner.shouldSample(_,x,u,K,C,N);if(E.decision===l.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:l.NOT_RECORD}}toString(){return"DebugSampler"}}class ZT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:l.RECORD_AND_SAMPLED};return{decision:l.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var w7=new aZ({preventServerStart:!0}),V7=new QT(new ZT(lZ));var XT=hZ.getTracer("studio","1.0.0"),X_=cZ.getMeter("studio","1.0.0"),dZ=oZ.getLogger("studio","1.0.0"),oK=(_,x,u)=>{let K={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)K=N,C=u.slice(0,-1);let z=C.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");dZ.emit({severityNumber:_,severityText:x,body:z,attributes:{"log.source":"console",...K}})},aK={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{oK(hK.ERROR,"ERROR",_),aK.error(..._)};console.warn=(..._)=>{oK(hK.WARN,"WARN",_),aK.warn(..._)};console.debug=(..._)=>{oK(hK.DEBUG,"DEBUG",_),aK.debug(..._)};var rK,JT=0,eK=500;function sZ(){if(rK)return;let _=performance.now()+eK;rK=setInterval(()=>{let x=performance.now();JT=Math.max(0,x-_),_=x+eK},eK),rK.unref?.()}function WT(){return sZ(),JT}var _6=()=>X_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),DT=()=>X_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),LT=400,x6=100,u6=(_)=>({"db.status":_.level==="error"?"error":"success"}),m6=(_)=>(x)=>{let u=u6(x);if(x.queryDurationMillis>LT){let K=WT(),C=K>LT/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(K),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:r_()}})}if(_6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function C6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let K=performance.now(),C=r_(),N=_.idleCount===0&&_.totalCount>=C,z=_.idleCount;return x().then((T)=>{let E=performance.now()-K;if(DT().record(E,{"db.pool.outcome":N?"contended":"available"}),E>x6)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:z,total:_.totalCount,max:C});return T},(T)=>{throw DT().record(performance.now()-K,{"db.pool.outcome":"error"}),T})},_}var HT={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function RT(){try{return e().databasePgSsl}catch{return!1}}function r_(){try{return e().databasePoolMax}catch{return 10}}function K6(_){let x=C6(new YT({connectionString:_,max:r_(),ssl:RT(),...HT})),u=new FT({pool:x});return{type:"postgres",db:new bZ({dialect:u,log:m6(x)}),pool:x}}function Q_(){return e().databaseUrl}function MT(_){let x=_||Q_();return new FT({pool:new YT({connectionString:x,max:r_(),ssl:RT(),...HT})})}function N6(_){let x=_||Q_();return K6(x)}async function BT(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===j_)j_=null}var j_=null;function lK(){if(!j_)j_=N6(Q_());return j_}async function GT(_){let u={database:MT(_||Q_()),plugins:[E6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),P6(),$6(),U6(),Q6(),j6({loginPage:"/login"}),z6(),X6({sendMagicLink:async()=>{}}),Z6({sendVerificationOTP:async()=>{}})]},{toBeAdded:K,toBeCreated:C,runMigrations:N}=await T6(u);if(!K.length&&!C.length)return"up to date";return await N(),`${C.length+K.length} table(s) migrated`}async function dK(_,x){return(await q`
2055
2055
  SELECT table_name FROM information_schema.tables
2056
2056
  WHERE table_schema='public' AND table_name=${x}
2057
- `.execute(_)).rows.length>0}async function J6(_){if(await yT(_,"plugin_migrations"))return;await l`
2057
+ `.execute(_)).rows.length>0}async function J6(_){if(await dK(_,"plugin_migrations"))return;await q`
2058
2058
  CREATE TABLE plugin_migrations (
2059
2059
  plugin_id TEXT NOT NULL,
2060
2060
  name TEXT NOT NULL,
2061
2061
  timestamp TEXT NOT NULL,
2062
2062
  PRIMARY KEY (plugin_id, name)
2063
2063
  )
2064
- `.execute(_)}async function W6(_){if(!await yT(_,"kysely_migration"))return;let x=await l`
2064
+ `.execute(_)}async function W6(_){if(!await dK(_,"kysely_migration"))return;let x=await q`
2065
2065
  SELECT name, timestamp FROM kysely_migration
2066
2066
  WHERE name LIKE '%/%'
2067
- `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:K}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let z=C.substring(0,N),T=C.substring(N+1);try{await l`
2067
+ `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:K}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let z=C.substring(0,N),T=C.substring(N+1);try{await q`
2068
2068
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
2069
2069
  VALUES (${z}, ${T}, ${K})
2070
- `.execute(_)}catch{let E=await l`
2070
+ `.execute(_)}catch{let E=await q`
2071
2071
  SELECT COUNT(*) as cnt FROM plugin_migrations
2072
2072
  WHERE plugin_id = ${z} AND name = ${T}
2073
- `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${z}/${T}, keeping in old table`);continue}}await l`
2073
+ `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${z}/${T}, keeping in old table`);continue}}await q`
2074
2074
  DELETE FROM kysely_migration WHERE name = ${u}
2075
- `.execute(_)}}async function D6(_){await J6(_),await W6(_);let x=new GT({db:_,provider:{getMigrations:()=>Promise.resolve(iK)}}),{error:u,results:K}=await x.migrateToLatest(),C=0;if(K?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function L6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:K=!1}=_??{},C="skipped";if(!K&&!u)C=await BT();let N=u??lK(),z=async()=>{if(!x&&!u)await MT(N).catch((T)=>{console.warn("Warning: Error closing database:",T)})};try{let T=await D6(N.db);return await z(),{betterAuth:C,kysely:T}}catch(T){throw await z(),T}}async function $D(){let _=lK(),x=new GT({db:_.db,provider:{getMigrations:()=>Promise.resolve(iK)}}),{error:u,results:K}=await x.migrateDown();if(K?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await L6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{D6 as runKyselyMigrations,L6 as migrateToLatest,$D as migrateDown};
2075
+ `.execute(_)}}async function D6(_){if(!await dK(_,"kysely_migration"))return{};let{rows:x}=await q`
2076
+ SELECT name FROM kysely_migration
2077
+ `.execute(_),u=x.map((K)=>K.name).filter((K)=>!Object.hasOwn(t_,K));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((K)=>[K,{up:async()=>{}}]))}async function L6(_){await J6(_),await W6(_);let x=new yT({db:_,provider:{getMigrations:async()=>({...await D6(_),...t_})}}),{error:u,results:K}=await x.migrateToLatest(),C=0;if(K?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function F6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:K=!1}=_??{},C="skipped";if(!K&&!u)C=await GT();let N=u??lK(),z=async()=>{if(!x&&!u)await BT(N).catch((T)=>{console.warn("Warning: Error closing database:",T)})};try{let T=await L6(N.db);return await z(),{betterAuth:C,kysely:T}}catch(T){throw await z(),T}}async function UD(){let _=lK(),x=new yT({db:_.db,provider:{getMigrations:()=>Promise.resolve(t_)}}),{error:u,results:K}=await x.migrateDown();if(K?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await F6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{L6 as runKyselyMigrations,F6 as migrateToLatest,UD as migrateDown};