decocms 4.506.0 → 4.507.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-YBOj2cK0.js → ActiveShapeUtils-qG-AEsLH.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-SlWthUo-.js → AlertCircle-DZq02EzT.js} +1 -1
  3. package/dist/client/assets/{AreaChart-D7jrbsmW.js → AreaChart-BtdW-Fy2.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-KHwg-gY7.js → ArrowLeft-C_qdjo3L.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-DcS4NtQu.js → ArrowUp-B_lKPC5O.js} +1 -1
  6. package/dist/client/assets/{BarChart-C_clG8Ob.js → BarChart-4XWgQXi5.js} +1 -1
  7. package/dist/client/assets/{Building02-CNZjLCzO.js → Building02-LYkR_QXB.js} +1 -1
  8. package/dist/client/assets/{CategoricalChart-DlYOL7Yr.js → CategoricalChart-CHtvdKKv.js} +1 -1
  9. package/dist/client/assets/{CheckCircle-BmoiDiMI.js → CheckCircle-B9QHilAa.js} +1 -1
  10. package/dist/client/assets/{ChevronSelectorVertical-DKuBdQt_.js → ChevronSelectorVertical-0ysVIDar.js} +1 -1
  11. package/dist/client/assets/{ChevronUp-BZdHrdSa.js → ChevronUp-D4PiHnN0.js} +1 -1
  12. package/dist/client/assets/{Copy01-CuZQqOx0.js → Copy01-DJEr7OLy.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-Dy-cJWaD.js → CreditCard01-b36fqa11.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-BRx6WGDK.js → DotsVertical-CV1b1y4C.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-C_eBf_yb.js → ErrorBarContext-UL-jymXX.js} +1 -1
  16. package/dist/client/assets/{Globe04-C14EHEAN.js → Globe04-DKUCyty7.js} +1 -1
  17. package/dist/client/assets/{Image01-B4ADQjw6.js → Image01-CyRCJwXT.js} +1 -1
  18. package/dist/client/assets/{Key01-DFRkR5rw.js → Key01-DWXRgH6w.js} +1 -1
  19. package/dist/client/assets/{Link01-HNlOmSEO.js → Link01-CNb9DW_9.js} +1 -1
  20. package/dist/client/assets/{LinkBroken01-ZJSQiUDy.js → LinkBroken01-BU-4AKfc.js} +1 -1
  21. package/dist/client/assets/{Monitor01-D6P0fhgC.js → Monitor01-yE6iFgVP.js} +1 -1
  22. package/dist/client/assets/{Play-BUzibowQ.js → Play-ChRMrCTB.js} +1 -1
  23. package/dist/client/assets/{Plus-DMw0rYpl.js → Plus-DtZhz_pb.js} +1 -1
  24. package/dist/client/assets/{SearchMd-5zzeWTKY.js → SearchMd-BQTuqO8x.js} +1 -1
  25. package/dist/client/assets/{Sector-DhHL2rjm.js → Sector-DeEfQN_u.js} +1 -1
  26. package/dist/client/assets/{ShoppingBag01-JCO9eh6X.js → ShoppingBag01-CQIeNQm_.js} +1 -1
  27. package/dist/client/assets/{Sun-CZj_t7ip.js → Sun-kLYmwsq0.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-DFdRxYUn.js → SwitchHorizontal01-DGImzN1R.js} +1 -1
  29. package/dist/client/assets/{Tool01-BM2irxFF.js → Tool01-BRVvW2LV.js} +1 -1
  30. package/dist/client/assets/{Trash01-DCBnmu5P.js → Trash01-Bt3rK1ka.js} +1 -1
  31. package/dist/client/assets/{Upload01-CGS2ebmt.js → Upload01-s7SnRMvp.js} +1 -1
  32. package/dist/client/assets/{User01-Cs-eJ-Db.js → User01-BmCbB_zb.js} +1 -1
  33. package/dist/client/assets/{UserSquare-DwswTgw8.js → UserSquare-DL7MdeuL.js} +1 -1
  34. package/dist/client/assets/{Users01-B4Uysmrx.js → Users01-BVggEmV6.js} +1 -1
  35. package/dist/client/assets/{XAxis-Bq2-riEp.js → XAxis-CDuxbcPP.js} +1 -1
  36. package/dist/client/assets/{XClose-B6X-WQEL.js → XClose-UWi3HSZE.js} +1 -1
  37. package/dist/client/assets/{ZoomOut-CPMInjM1.js → ZoomOut-B4Rw_R2z.js} +1 -1
  38. package/dist/client/assets/{access-gate-CHtG4vI8.js → access-gate-D3L-T38D.js} +1 -1
  39. package/dist/client/assets/{add-connection-dialog-gHKHol-P.js → add-connection-dialog-8k8OTwPv.js} +1 -1
  40. package/dist/client/assets/{agent-analytics-DXbNELON.js → agent-analytics-bu3kFNJu.js} +1 -1
  41. package/dist/client/assets/agent-app-BMA5upH5.js +1 -0
  42. package/dist/client/assets/{agent-assets-DMv6anfA.js → agent-assets-DJjZB71J.js} +1 -1
  43. package/dist/client/assets/{agent-automation-ClB242hY.js → agent-automation-5jRP2Yu0.js} +1 -1
  44. package/dist/client/assets/{agent-automations-BfSWMz7r.js → agent-automations-DBSfm1Um.js} +1 -1
  45. package/dist/client/assets/{agent-connect-sources-1y7VsJ7D.js → agent-connect-sources-C1dugrdG.js} +1 -1
  46. package/dist/client/assets/agent-deck-BJf1WFap.js +1 -0
  47. package/dist/client/assets/{agent-e2e-VfJQEaZF.js → agent-e2e-PI2OzWvI.js} +1 -1
  48. package/dist/client/assets/{agent-experiments-BIloXgen.js → agent-experiments-DRdlymR5.js} +1 -1
  49. package/dist/client/assets/{agent-file-DHb7VoiQ.js → agent-file-BzADFUid.js} +1 -1
  50. package/dist/client/assets/{agent-hosting-Dd3LktbV.js → agent-hosting-CPH-NeL_.js} +1 -1
  51. package/dist/client/assets/{agent-icon-DPEjJB4e.js → agent-icon-Blcoi2NV.js} +1 -1
  52. package/dist/client/assets/agent-library-BqFtXY1m.js +1 -0
  53. package/dist/client/assets/agent-library-file-CQDlY3Yr.js +1 -0
  54. package/dist/client/assets/{agent-monitor-Bqq_5OKe.js → agent-monitor-PGLXk9dq.js} +1 -1
  55. package/dist/client/assets/{agent-overview-CzK1M8k2.js → agent-overview-D278LRIL.js} +1 -1
  56. package/dist/client/assets/{agent-releases-CycYtkVh.js → agent-releases-CwPpC6Zn.js} +1 -1
  57. package/dist/client/assets/agent-settings-DeB5MuX_.js +1 -0
  58. package/dist/client/assets/{agent-site-editor-DHhqBK5P.js → agent-site-editor-BSI5T3i7.js} +1 -1
  59. package/dist/client/assets/agent-site-editor-code-Dq4KRDBk.js +2 -0
  60. package/dist/client/assets/agent-site-editor-content-Blm2auu-.js +1 -0
  61. package/dist/client/assets/agent-site-editor-preview-CCk80iIG.js +1 -0
  62. package/dist/client/assets/agent-view-Cl8uWNJN.js +1 -0
  63. package/dist/client/assets/{agent-view-guard-D6GUEcFf.js → agent-view-guard-CVWBSVAR.js} +1 -1
  64. package/dist/client/assets/{agents-list-BEIvacYR.js → agents-list-DYmELJk-.js} +1 -1
  65. package/dist/client/assets/{ai-providers-0X1DCh96.js → ai-providers-B3x7urKU.js} +1 -1
  66. package/dist/client/assets/{alert-BpZ59_Gc.js → alert-Dp8EatFO.js} +1 -1
  67. package/dist/client/assets/{alert-dialog-DOc9sMK7.js → alert-dialog-qlQC4zlU.js} +1 -1
  68. package/dist/client/assets/{analytics-sections-ShUUJbGz.js → analytics-sections-BirEZrZQ.js} +1 -1
  69. package/dist/client/assets/{api-keys-BDfZvFu9.js → api-keys-7UDmxa_w.js} +1 -1
  70. package/dist/client/assets/api-keys-DSwUfsL4.js +1 -0
  71. package/dist/client/assets/{app-editor-BWwoXiez.js → app-editor-tLSj0Sjg.js} +1 -1
  72. package/dist/client/assets/{asset-utils-BpRYKiOA.js → asset-utils-DYZVbDw1.js} +1 -1
  73. package/dist/client/assets/{auth-Bew9bJSh.js → auth-CLglKqB6.js} +1 -1
  74. package/dist/client/assets/{auth-catchall-BZM_DFXE.js → auth-catchall-CrJHPLPw.js} +1 -1
  75. package/dist/client/assets/{auth-entry-C0pPXrpQ.js → auth-entry-CD3L2RvS.js} +1 -1
  76. package/dist/client/assets/{auth-split-layout-D4mHxU2I.js → auth-split-layout-UjhzYVxM.js} +1 -1
  77. package/dist/client/assets/{authenticate-and-persist-oauth-Bg2qSKP5.js → authenticate-and-persist-oauth-ClVBgGv4.js} +1 -1
  78. package/dist/client/assets/{automation-list-row-Du_X7bLQ.js → automation-list-row-CAEPQbgy.js} +1 -1
  79. package/dist/client/assets/{automation-runs-K0640sJi.js → automation-runs-dUM-MaiP.js} +1 -1
  80. package/dist/client/assets/{automations-1ZKwiBVj.js → automations-megKF7It.js} +1 -1
  81. package/dist/client/assets/{autosend-BM8Gkro6.js → autosend-CE_yiNtR.js} +1 -1
  82. package/dist/client/assets/{avatar-Cf8ensdm.js → avatar-B8cS3VPt.js} +1 -1
  83. package/dist/client/assets/{badge-u-FEcB1F.js → badge-Qzxf6tet.js} +1 -1
  84. package/dist/client/assets/{block-document-rnpU1D6O.js → block-document-AKpwbifj.js} +1 -1
  85. package/dist/client/assets/{blocks-preview-workspace-context-Dz4R0igJ.js → blocks-preview-workspace-context-VkiPmc8G.js} +1 -1
  86. package/dist/client/assets/{blocks-tab-states-Dbou5tyV.js → blocks-tab-states-BbjL1qhZ.js} +3 -3
  87. package/dist/client/assets/{blog-schema-BLwhAB4M.js → blog-schema-DL-wxhkE.js} +1 -1
  88. package/dist/client/assets/{board-analytics-vn1KvhHP.js → board-analytics-C1pwywOy.js} +1 -1
  89. package/dist/client/assets/{buckets-CkiliZPf.js → buckets-DZKIT9DY.js} +1 -1
  90. package/dist/client/assets/{build-improve-prompt-doc-BGKwjyz_.js → build-improve-prompt-doc-1VLAf1m8.js} +1 -1
  91. package/dist/client/assets/{calendar-Cms_t32w.js → calendar-BuSRVV5D.js} +1 -1
  92. package/dist/client/assets/{capability-load-error-Btsxhikd.js → capability-load-error-DBmMi5Hs.js} +1 -1
  93. package/dist/client/assets/{category-editor-BIFxkSOg.js → category-editor-DVRF9hj1.js} +1 -1
  94. package/dist/client/assets/{chart-WIORlSk5.js → chart-NrDAd4pe.js} +1 -1
  95. package/dist/client/assets/{chat-context-CXuTB4t_.js → chat-context-Ch-VpD9W.js} +1 -1
  96. package/dist/client/assets/{chat-draft-BfZZImrW.js → chat-draft-B2p2B6Yw.js} +1 -1
  97. package/dist/client/assets/{checkbox-39Y4Yvzb.js → checkbox-C0-Eo7G1.js} +1 -1
  98. package/dist/client/assets/{choose-editor-A6KbDeMD.js → choose-editor-BeLyDWVx.js} +1 -1
  99. package/dist/client/assets/{cli-auth-success-CBQcY2ti.js → cli-auth-success-DUKgfRgt.js} +1 -1
  100. package/dist/client/assets/{client-icons-CkJbp7Kf.js → client-icons-DtQhx8-x.js} +1 -1
  101. package/dist/client/assets/cms-settings-editor-Dxh-Mvqb.js +1 -0
  102. package/dist/client/assets/{collapsible-DQScoiBp.js → collapsible-EpmgpNpi.js} +1 -1
  103. package/dist/client/assets/{collection-detail-CTj1twku.js → collection-detail-BTHodnm7.js} +1 -1
  104. package/dist/client/assets/{collection-display-button-2k7Qd1eY.js → collection-display-button-__Pm6Nmn.js} +1 -1
  105. package/dist/client/assets/{collection-search-BvWeMsnW.js → collection-search-ehqGBK_4.js} +1 -1
  106. package/dist/client/assets/{collection-table-wrapper-KHKDw1rQ.js → collection-table-wrapper-BBPmRt9r.js} +1 -1
  107. package/dist/client/assets/{collection-tabs-DMN1FKAg.js → collection-tabs-iTmpvLeT.js} +1 -1
  108. package/dist/client/assets/{column-rules-J5zEqDKI.js → column-rules-adUN8XvK.js} +1 -1
  109. package/dist/client/assets/{combobox-BbEIMkIW.js → combobox-BUo7EBrO.js} +1 -1
  110. package/dist/client/assets/{command-bEQWkHWl.js → command-BAgcQ2fh.js} +1 -1
  111. package/dist/client/assets/{companion-mcps-section-C9zrMUWG.js → companion-mcps-section-CAn17bJY.js} +1 -1
  112. package/dist/client/assets/{config-oRqWYZBw.js → config-BDu66MgM.js} +1 -1
  113. package/dist/client/assets/{connect-CpChXP6m.js → connect-2yc9-JJp.js} +1 -1
  114. package/dist/client/assets/{connect-layout-7yNDEshW.js → connect-layout-DtIoh422.js} +1 -1
  115. package/dist/client/assets/{connection-DE10KgqA.js → connection-B8e9uIdy.js} +1 -1
  116. package/dist/client/assets/{connection-card-f5vHryIM.js → connection-card-CLVSIR42.js} +1 -1
  117. package/dist/client/assets/{connection-detail-BvxmL1lP.js → connection-detail-DN36Ozvh.js} +1 -1
  118. package/dist/client/assets/{connection-form-helpers-iXh508wY.js → connection-form-helpers-CSZF_TQx.js} +1 -1
  119. package/dist/client/assets/{connections-uyNi3ziJ.js → connections-DC5XESZs.js} +1 -1
  120. package/dist/client/assets/{content-tab-DbhBHZG2.js → content-tab-DUe9Pk3L.js} +3 -3
  121. package/dist/client/assets/{context-RzldR5hI.js → context-DdNfBAMU.js} +1 -1
  122. package/dist/client/assets/{context-menu-Bu-wDHbx.js → context-menu-DJ87apJ2.js} +1 -1
  123. package/dist/client/assets/{core.esm-BOurIsL2.js → core.esm-C7s0VVJH.js} +1 -1
  124. package/dist/client/assets/{create-organization-dialog-BYS8yCkD.js → create-organization-dialog-DoF61er3.js} +1 -1
  125. package/dist/client/assets/{daily-pulse-B0nm37Wk.js → daily-pulse-C775e_y-.js} +1 -1
  126. package/dist/client/assets/{discover-C3-2Xsml.js → discover-C_Que9Au.js} +1 -1
  127. package/dist/client/assets/{domain-settings-DJWETZdb.js → domain-settings-CT-S0BOV.js} +1 -1
  128. package/dist/client/assets/{drawer-SYkf9S3t.js → drawer-CixpU7n-.js} +1 -1
  129. package/dist/client/assets/{editor-50pL9wJq.js → editor-BKRP2Iwc.js} +1 -1
  130. package/dist/client/assets/{editor-classes-tT6DS3c0.js → editor-classes-DZByr-lI.js} +1 -1
  131. package/dist/client/assets/{empty-state-BBRtoH8X.js → empty-state-BZZcWHI_.js} +1 -1
  132. package/dist/client/assets/{empty-state-BEo1idJ2.js → empty-state-DQLm0d5k.js} +1 -1
  133. package/dist/client/assets/{extract-connection-data-BXwLKN9Y.js → extract-connection-data-DJs0gTBx.js} +1 -1
  134. package/dist/client/assets/{feature-gate-CmK7hW3c.js → feature-gate-CgRSy5_Q.js} +1 -1
  135. package/dist/client/assets/{feature-paywall-B6WYRGmt.js → feature-paywall-EueGiC9A.js} +1 -1
  136. package/dist/client/assets/{file-explorer-BmA6nLXP.js → file-explorer-cu0ZoZ2i.js} +1 -1
  137. package/dist/client/assets/{file-preview-navJIo3Y.js → file-preview-BJ_PkL7X.js} +1 -1
  138. package/dist/client/assets/{file-share-button-By02TUaE.js → file-share-button-rEinR-qh.js} +1 -1
  139. package/dist/client/assets/{file-type-icon-CXYODp5S.js → file-type-icon-C2JXE2hG.js} +1 -1
  140. package/dist/client/assets/flat-project-fhJMf2Fo.js +1 -0
  141. package/dist/client/assets/{folder-icon-CPUJWTIk.js → folder-icon-Cayf6XFB.js} +1 -1
  142. package/dist/client/assets/{form-CSMe0Xu2.js → form-BivWj0r6.js} +1 -1
  143. package/dist/client/assets/{general-BCOJVftC.js → general-BQtDTtDD.js} +1 -1
  144. package/dist/client/assets/{home-rN3gPNj9.js → home-DncG44Vc.js} +1 -1
  145. package/dist/client/assets/{hosted-publish-feedback-cq97qRwz.js → hosted-publish-feedback-CfrjUALv.js} +1 -1
  146. package/dist/client/assets/{icon-button-jj21Pfs7.js → icon-button-DxqkkLQj.js} +1 -1
  147. package/dist/client/assets/{index-DKVv-34T.js → index-5vR8G6oj.js} +1 -1
  148. package/dist/client/assets/{index-D_zg5lyX.js → index-B26ImUL7.js} +1 -1
  149. package/dist/client/assets/{index-9Jrp3KlM.js → index-BF64aC--.js} +1 -1
  150. package/dist/client/assets/{index-BFoj7reh.js → index-BYmaAL9a.js} +1 -1
  151. package/dist/client/assets/{index-6vyUSmHY.js → index-BmYzltjg.js} +1 -1
  152. package/dist/client/assets/{index-BaYKytFu.js → index-BtcVoJOD.js} +1 -1
  153. package/dist/client/assets/{index-Yt-1DNw6.js → index-BvuLMeCw.js} +3 -3
  154. package/dist/client/assets/{index-lvmhjtam.js → index-C-gf76Hu.js} +1 -1
  155. package/dist/client/assets/{index-DEDDgDGK.js → index-C47EvNjt.js} +1 -1
  156. package/dist/client/assets/{index-Dz84h2Uh.js → index-CZciUUmu.js} +1 -1
  157. package/dist/client/assets/{index-Du7SnZ-C.js → index-CvK4-KP3.js} +1 -1
  158. package/dist/client/assets/{index-B7U88B6N.js → index-DV6FL3mH.js} +1 -1
  159. package/dist/client/assets/{index-DRz4ZqDU.js → index-NRMbjvM1.js} +1 -1
  160. package/dist/client/assets/{index-DmJJi5Aj.js → index-TD9q6ZAx.js} +2 -2
  161. package/dist/client/assets/{index-redirect-CPDHoWP-.js → index-redirect-CCsqcmui.js} +1 -1
  162. package/dist/client/assets/{index-CnqqaukI.js → index-xlh3U8dq.js} +1 -1
  163. package/dist/client/assets/{infiniteQueryObserver-DMUM7SCu.js → infiniteQueryObserver-X8qh_Va6.js} +1 -1
  164. package/dist/client/assets/{infra-billing-DNOr1seX.js → infra-billing-fufjpAYz.js} +1 -1
  165. package/dist/client/assets/{input-YsTzlSvU.js → input-BSUErVvJ.js} +3 -3
  166. package/dist/client/assets/{input-BH4Oxr1L.js → input-h8042dl0.js} +1 -1
  167. package/dist/client/assets/{integration-icon-DQxxCK04.js → integration-icon-DJtlg_0w.js} +1 -1
  168. package/dist/client/assets/{jira-icon-CPUmww9A.js → jira-icon-D0XL00z9.js} +1 -1
  169. package/dist/client/assets/{label-DXaPh7Je.js → label-B-SEr3Fs.js} +1 -1
  170. package/dist/client/assets/{layout-DQ66qmO9.js → layout-BI2BIstR.js} +1 -1
  171. package/dist/client/assets/{legacy-agents-deep-BNVqjDv8.js → legacy-agents-deep-jcGaNAHc.js} +1 -1
  172. package/dist/client/assets/{legacy-main-redirect-Np53PuYT.js → legacy-main-redirect-D6tF7agn.js} +1 -1
  173. package/dist/client/assets/library-DntM1dnS.js +1 -0
  174. package/dist/client/assets/{library-tab-Bq6k_3IG.js → library-tab-BZkqrpuT.js} +1 -1
  175. package/dist/client/assets/{login-DBsx92_o.js → login-C9lgbiSh.js} +1 -1
  176. package/dist/client/assets/{markdown-CF_EwD8u.js → markdown-B-jDeUMA.js} +1 -1
  177. package/dist/client/assets/{mcp-app-renderer-SLcpw_GO.js → mcp-app-renderer-Bk4hyaxU.js} +1 -1
  178. package/dist/client/assets/{mcp-oauth-CzbNzM03.js → mcp-oauth-CaxV9wcl.js} +1 -1
  179. package/dist/client/assets/{mcp-oauth-BPsTeQb9.js → mcp-oauth-V-o-AEQP.js} +1 -1
  180. package/dist/client/assets/{members-BNplg4tN.js → members-BLeFrNm9.js} +1 -1
  181. package/dist/client/assets/{memory-Be-EH5Kw.js → memory-BsNDNxr2.js} +1 -1
  182. package/dist/client/assets/{mini-report-page-MmikJINJ.js → mini-report-page-B0fqOWnH.js} +1 -1
  183. package/dist/client/assets/mock-board-BFTY4RvG.js +1 -0
  184. package/dist/client/assets/{monaco-editor-dPYi6L5q.js → monaco-editor-D49CJi8U.js} +1 -1
  185. package/dist/client/assets/{monitoring-stats-row-C8PGI7z7.js → monitoring-stats-row-BB3CDHWN.js} +1 -1
  186. package/dist/client/assets/{multi-select-BzwMWM94.js → multi-select-BvMK4932.js} +1 -1
  187. package/dist/client/assets/{mustache-DhZHK7zV.js → mustache-HTehKKTG.js} +1 -1
  188. package/dist/client/assets/{new-project-dialog-x3CgBcBd.js → new-project-dialog-DoLb5YVK.js} +1 -1
  189. package/dist/client/assets/{oauth-callback-DwnwB6UW.js → oauth-callback-Blwmfj1R.js} +1 -1
  190. package/dist/client/assets/{oauth-callback-ai-provider-Cq1iMkGk.js → oauth-callback-ai-provider-Dc9onjjw.js} +1 -1
  191. package/dist/client/assets/{onboarding-fQG5r2FK.js → onboarding-K-cgEcDl.js} +1 -1
  192. package/dist/client/assets/{openai-conversation-KVcfBBc6.js → openai-conversation-R6WmtJ5r.js} +1 -1
  193. package/dist/client/assets/{optimistic-project-sidebar-views-DNYS7Cn_.js → optimistic-project-sidebar-views-Bmh9CacI.js} +1 -1
  194. package/dist/client/assets/{order-monitor-day-CIjpWX2N.js → order-monitor-day-CZfhLaiW.js} +1 -1
  195. package/dist/client/assets/{organization-choice-CLkvC5Cb.js → organization-choice-dC-onaYV.js} +1 -1
  196. package/dist/client/assets/{orgs-CMEfgf3N.js → orgs-BOJwmOLw.js} +1 -1
  197. package/dist/client/assets/{page-seo-form-BlD1QdAg.js → page-seo-form-CrsEBL3M.js} +1 -1
  198. package/dist/client/assets/{pair-DP5ED0n_.js → pair-CYYi6JKh.js} +1 -1
  199. package/dist/client/assets/{plan-ladder-zWIPqL-O.js → plan-ladder-Okx-KzN5.js} +1 -1
  200. package/dist/client/assets/{popover-fYvCFbz-.js → popover-gJO3R5Ii.js} +1 -1
  201. package/dist/client/assets/{post-calendar-D1yzYd4M.js → post-calendar-BgDWtRgx.js} +1 -1
  202. package/dist/client/assets/{post-editor-BXUHohyr.js → post-editor-CxINLeRV.js} +1 -1
  203. package/dist/client/assets/{preview-content-CmfLKt3D.js → preview-content-Cfi8bwXI.js} +1 -1
  204. package/dist/client/assets/{preview-dialog-C5CJFtZe.js → preview-dialog-jZ9sRQON.js} +1 -1
  205. package/dist/client/assets/{preview-panel-16KeEdoG.js → preview-panel-CN8PRsYc.js} +1 -1
  206. package/dist/client/assets/{preview-tab-DhgHL0WN.js → preview-tab-DRuTgCNI.js} +3 -3
  207. package/dist/client/assets/{product-picker-dialog-tVZq0CDa.js → product-picker-dialog-DB4JPBCA.js} +1 -1
  208. package/dist/client/assets/{profile-CIMiHvG6.js → profile-DEiIcjHZ.js} +1 -1
  209. package/dist/client/assets/{project-app-view-CWtv42hH.js → project-app-view-Ml2wH3iy.js} +1 -1
  210. package/dist/client/assets/{project-feed-DMV42khD.js → project-feed-CfssvHDQ.js} +1 -1
  211. package/dist/client/assets/{project-icon-DijKHVuo.js → project-icon-BlJz5cOI.js} +1 -1
  212. package/dist/client/assets/project-reports-CsI0AQuY.js +1 -0
  213. package/dist/client/assets/project-tasks-DLi14b92.js +1 -0
  214. package/dist/client/assets/{projects-BVF2wGAY.js → projects-Dzy3_FXd.js} +1 -1
  215. package/dist/client/assets/{projects-empty-state-CdfFkgo9.js → projects-empty-state-BDYeDrMv.js} +1 -1
  216. package/dist/client/assets/{prompts-D8lBj64B.js → prompts-DV4Kjfa5.js} +1 -1
  217. package/dist/client/assets/record-editor-wOnCkFPK.js +1 -0
  218. package/dist/client/assets/{redirect-editor-D6GG3gU8.js → redirect-editor-DFCv83sL.js} +1 -1
  219. package/dist/client/assets/reports-AMpsYdUr.js +1 -0
  220. package/dist/client/assets/{reports-DzFUAAe9.js → reports-DXYrq_BO.js} +1 -1
  221. package/dist/client/assets/{reports-onboarding-CtCpWMWq.js → reports-onboarding-1VulbTO6.js} +1 -1
  222. package/dist/client/assets/{reports-tab-DdjqXd-P.js → reports-tab-DmNt_T04.js} +2 -2
  223. package/dist/client/assets/{repositories-DvZv22_y.js → repositories-D6jC23CW.js} +1 -1
  224. package/dist/client/assets/{repository-binding-CteZmIva.js → repository-binding-BnejFX7t.js} +1 -1
  225. package/dist/client/assets/{repository-import-picker-DdjluiGQ.js → repository-import-picker-h-r8nnEf.js} +1 -1
  226. package/dist/client/assets/{repository-picker-BHG_Q3_Y.js → repository-picker-FTAXO4Nx.js} +1 -1
  227. package/dist/client/assets/{require-capability-DfMvVRIs.js → require-capability-BewAou1A.js} +1 -1
  228. package/dist/client/assets/{required-auth-layout-B4Pt2844.js → required-auth-layout-gIZfj42y.js} +1 -1
  229. package/dist/client/assets/{reset-password-CoG-TCPT.js → reset-password-Bq09blPf.js} +1 -1
  230. package/dist/client/assets/{resizable-QOT7XwbA.js → resizable-CGzf0YCQ.js} +1 -1
  231. package/dist/client/assets/{resolve-tab-icon-BDl2h0Dq.js → resolve-tab-icon-Daxo01Gi.js} +1 -1
  232. package/dist/client/assets/{review-settings-CuM9As5T.js → review-settings-DR_kj-Ru.js} +1 -1
  233. package/dist/client/assets/{roles-B6Agdrhz.js → roles-DWOkvlO_.js} +1 -1
  234. package/dist/client/assets/{route-DCzETavQ.js → route-B-p6J_u6.js} +1 -1
  235. package/dist/client/assets/route-G0-ZvPpf.js +1 -0
  236. package/dist/client/assets/{route-t5GwjFKP.js → route-UiPRedfp.js} +1 -1
  237. package/dist/client/assets/{sandbox-lifecycle-context-BcfEFMah.js → sandbox-lifecycle-context-rc29IhVV.js} +1 -1
  238. package/dist/client/assets/{schema-C_Twe2CR.js → schema-BGirdKR7.js} +1 -1
  239. package/dist/client/assets/schema-DTvMW5Bj.js +1 -0
  240. package/dist/client/assets/{scroll-area-DWfW8PPp.js → scroll-area-D0jo1bkt.js} +1 -1
  241. package/dist/client/assets/{search-input-iONBjTDn.js → search-input-DIOUBltI.js} +1 -1
  242. package/dist/client/assets/{search-toggle-DNrxid9T.js → search-toggle-BWyMsPKk.js} +1 -1
  243. package/dist/client/assets/{secret-ciphertext-DQJA6LTs.js → secret-ciphertext-ANOQlePB.js} +1 -1
  244. package/dist/client/assets/{secret-picker-RTqlv_mw.js → secret-picker--4BFyqbe.js} +1 -1
  245. package/dist/client/assets/{secrets-CT-Ix4aE.js → secrets-BxBi0DW0.js} +1 -1
  246. package/dist/client/assets/{sections-editor-BbVsm3CC.js → sections-editor-cLAvYqLX.js} +1 -1
  247. package/dist/client/assets/{select-model-MsH0R9Xj.js → select-model-Dqb1K6bc.js} +1 -1
  248. package/dist/client/assets/{select-7a9WvaWj.js → select-vip2MDSn.js} +1 -1
  249. package/dist/client/assets/{seo-editor-0ZcLNYXq.js → seo-editor-DDZSfwYW.js} +1 -1
  250. package/dist/client/assets/{separator-DVSdXQ2O.js → separator-BQ3AM4Ug.js} +1 -1
  251. package/dist/client/assets/{settings-tab-D-_nS2xd.js → settings-tab-eia9Fz-X.js} +1 -1
  252. package/dist/client/assets/{sheet-C2JlOlpD.js → sheet-IYrYpc2B.js} +1 -1
  253. package/dist/client/assets/{shell-layout-BDxZg9_K.js → shell-layout-BM51_FIv.js} +1 -1
  254. package/dist/client/assets/site-editor-C5iX5zAy.js +1 -0
  255. package/dist/client/assets/{site-editor-toast-DISsODHI.js → site-editor-toast-DbJhMk7V.js} +1 -1
  256. package/dist/client/assets/{skills-CWjsrGc5.js → skills-D2FiXzGW.js} +1 -1
  257. package/dist/client/assets/{slider-04lpm0v_.js → slider-CwnL3HRa.js} +1 -1
  258. package/dist/client/assets/{sortable.esm-BP__-BL2.js → sortable.esm-BmwNKHYn.js} +1 -1
  259. package/dist/client/assets/{sso-B5Zn_6ZD.js → sso-DMQ-B__P.js} +1 -1
  260. package/dist/client/assets/{suggestion-DFoIyeE9.js → suggestion-B_X9vnmO.js} +1 -1
  261. package/dist/client/assets/{switch-CFiGUTOP.js → switch-B9eCMptF.js} +1 -1
  262. package/dist/client/assets/{symbol-7m9tSCCw.js → symbol-BnsdD8oy.js} +1 -1
  263. package/dist/client/assets/{synced-repos-C4fTRc_O.js → synced-repos-VO9uiFX2.js} +1 -1
  264. package/dist/client/assets/{tab-icon-glyph-DrR3rVhf.js → tab-icon-glyph-D53P8msf.js} +1 -1
  265. package/dist/client/assets/{table-BTn9QLXW.js → table-D9fzXIkZ.js} +1 -1
  266. package/dist/client/assets/{tabs-gZYZCgK2.js → tabs-BawejvDB.js} +1 -1
  267. package/dist/client/assets/task-board-ouLvp423.js +1 -0
  268. package/dist/client/assets/{task-route-Du0a6oFo.js → task-route-CjHIKjev.js} +1 -1
  269. package/dist/client/assets/{task-status-CZXBctHo.js → task-status-Buh7B1MG.js} +1 -1
  270. package/dist/client/assets/taskboard-analytics-DhwjY7M5.js +1 -0
  271. package/dist/client/assets/tasks-Ds4uIhX_.js +1 -0
  272. package/dist/client/assets/{tasks-DbnjSqj8.js → tasks-FmvKs9d3.js} +1 -1
  273. package/dist/client/assets/{textarea-Bej_HjJx.js → textarea-B-TS083j.js} +1 -1
  274. package/dist/client/assets/{thread-analytics-DlZSGBPY.js → thread-analytics-ykgOvgFb.js} +1 -1
  275. package/dist/client/assets/{thread-intent-D56tMIbL.js → thread-intent-S-gJClOG.js} +1 -1
  276. package/dist/client/assets/{thread-route-BNBBewOp.js → thread-route-CQmCTEyn.js} +1 -1
  277. package/dist/client/assets/{thread-route-Ch_UFE8H.js → thread-route-DtCL8-V4.js} +1 -1
  278. package/dist/client/assets/{thread-sheet-body-BGZjdiWy.js → thread-sheet-body-DacE2e8a.js} +1 -1
  279. package/dist/client/assets/{time-range-picker-DFRYI5yT.js → time-range-picker-BIBoZiWJ.js} +1 -1
  280. package/dist/client/assets/{toggle-group-DZg8BqTb.js → toggle-group-DI4ttUmk.js} +1 -1
  281. package/dist/client/assets/{tool-namespace-DHnrXl8N.js → tool-namespace-DSuLhjHC.js} +1 -1
  282. package/dist/client/assets/{toolbar-icon-button-UMKCT0Ua.js → toolbar-icon-button-UylaJSAo.js} +1 -1
  283. package/dist/client/assets/{tooltip-yZHJwZ0_.js → tooltip-D3Lno7Sd.js} +1 -1
  284. package/dist/client/assets/{tooltipContext-BYBEDJBX.js → tooltipContext-BF4YYYQ4.js} +1 -1
  285. package/dist/client/assets/{track-Cmqq1NGv.js → track-9gnPqqM1.js} +1 -1
  286. package/dist/client/assets/{types-CfDTYsf_.js → types-oDc7dHni.js} +1 -1
  287. package/dist/client/assets/{url-slug-CF34E0UB.js → url-slug-CzRjxv-k.js} +1 -1
  288. package/dist/client/assets/{usage-stats-DK61cAbW.js → usage-stats-DadTD3M-.js} +1 -1
  289. package/dist/client/assets/{use-ai-providers-CdtssKYb.js → use-ai-providers-AcvGe9-V.js} +1 -1
  290. package/dist/client/assets/{use-app-takeover-D6c6GrNl.js → use-app-takeover-BEzFC8oO.js} +1 -1
  291. package/dist/client/assets/{use-automations-DuQ94ezs.js → use-automations-CN350YMB.js} +1 -1
  292. package/dist/client/assets/{use-autosave-Cw2uAKzO.js → use-autosave-Dav7fRBX.js} +1 -1
  293. package/dist/client/assets/{use-chat-navigation-DXGdGkgT.js → use-chat-navigation-DlxbS2Ir.js} +1 -1
  294. package/dist/client/assets/{use-clock-tick-BtNyF77k.js → use-clock-tick-Biiz8lzy.js} +1 -1
  295. package/dist/client/assets/{use-connect-companion-BklKatzN.js → use-connect-companion-VKAyFcK2.js} +1 -1
  296. package/dist/client/assets/{use-connection-Bdiz2xzR.js → use-connection-OOD0tHd7.js} +1 -1
  297. package/dist/client/assets/{use-content-sync-gPUq66Q_.js → use-content-sync-BQvWp4_o.js} +1 -1
  298. package/dist/client/assets/{use-copy-Cy4qf6se.js → use-copy-Cn4Z57YH.js} +1 -1
  299. package/dist/client/assets/{use-create-virtual-mcp-C3RgOrG7.js → use-create-virtual-mcp-CZW2rCq7.js} +1 -1
  300. package/dist/client/assets/{use-date-fns-locale-mq2zvQEQ.js → use-date-fns-locale-ZV1qLyjT.js} +1 -1
  301. package/dist/client/assets/{use-debounced-autosave-69_37K6A.js → use-debounced-autosave-DoWWmWzG.js} +1 -1
  302. package/dist/client/assets/{use-debounced-value-hKuOSnf8.js → use-debounced-value-WEbEbeed.js} +1 -1
  303. package/dist/client/assets/{use-deco-credits-BM65ruxD.js → use-deco-credits-D1idFaA8.js} +1 -1
  304. package/dist/client/assets/{use-decopilot-events-CDGgmpnF.js → use-decopilot-events-BITSrHb-.js} +1 -1
  305. package/dist/client/assets/{use-delete-connection-Cf3UUyQ4.js → use-delete-connection-KMdMK-5V.js} +1 -1
  306. package/dist/client/assets/{use-deployment-admin-BQKTAPvq.js → use-deployment-admin-B_soKFRv.js} +1 -1
  307. package/dist/client/assets/{use-ensure-project-folder-D6FwKelb.js → use-ensure-project-folder-BUN6VVAV.js} +1 -1
  308. package/dist/client/assets/{use-fast-preview-draft-url-Dl_wew24.js → use-fast-preview-draft-url-CSXqCUZ_.js} +1 -1
  309. package/dist/client/assets/{use-file-configs-DEeSzk9H.js → use-file-configs-DMVCBG-z.js} +1 -1
  310. package/dist/client/assets/{use-infinite-scroll-jQz1UxrT.js → use-infinite-scroll-DjYaDj_j.js} +1 -1
  311. package/dist/client/assets/{use-join-requests-B0uJBWtr.js → use-join-requests-Be-FCByX.js} +1 -1
  312. package/dist/client/assets/{use-main-panel-tabs-BcqmbIv8.js → use-main-panel-tabs-Cloon3zW.js} +1 -1
  313. package/dist/client/assets/{use-mcp-auth-status-BSYgNstS.js → use-mcp-auth-status-Bv4IbKQl.js} +1 -1
  314. package/dist/client/assets/{use-mcp-client-Cmf3kYdA.js → use-mcp-client-fTyLcuiX.js} +1 -1
  315. package/dist/client/assets/{use-mcp-prompts-Dk9LHUFW.js → use-mcp-prompts-CyqOUVUD.js} +1 -1
  316. package/dist/client/assets/{use-mcp-tools-DzF7PfOd.js → use-mcp-tools-sv7pv5ex.js} +1 -1
  317. package/dist/client/assets/{use-members-Bq6wseSf.js → use-members-CvY21L2Q.js} +1 -1
  318. package/dist/client/assets/{use-mobile-C56EQrK9.js → use-mobile-2T0aye5I.js} +1 -1
  319. package/dist/client/assets/{use-navigate-to-agent-BdY7K2gs.js → use-navigate-to-agent-BpeT4fqu.js} +1 -1
  320. package/dist/client/assets/{use-open-billing-url-ctn8rgn5.js → use-open-billing-url-Db0e3guK.js} +1 -1
  321. package/dist/client/assets/{use-org-auth-client-BQKXCp53.js → use-org-auth-client-CWA2hWCM.js} +1 -1
  322. package/dist/client/assets/{use-org-fs-DpBvFsJy.js → use-org-fs-CPNJqv-N.js} +1 -1
  323. package/dist/client/assets/{use-org-repo-syncs-BGbiDUhK.js → use-org-repo-syncs-MWiNxGjz.js} +1 -1
  324. package/dist/client/assets/{use-org-sso-By1UBOKy.js → use-org-sso-BMLNRQyf.js} +1 -1
  325. package/dist/client/assets/{use-organization-roles-DAM-KEoH.js → use-organization-roles-DwFJmstu.js} +1 -1
  326. package/dist/client/assets/{use-organization-settings-BbPuWdeO.js → use-organization-settings-lug340cj.js} +1 -1
  327. package/dist/client/assets/{use-panel-navigate-DdMcNzfR.js → use-panel-navigate-CfJ9Qf-l.js} +1 -1
  328. package/dist/client/assets/{use-project-native-view-presence-sPhh7BGC.js → use-project-native-view-presence-DdsfKci4.js} +1 -1
  329. package/dist/client/assets/{use-project-scope-D1tA1r10.js → use-project-scope-C99MQSqi.js} +1 -1
  330. package/dist/client/assets/{use-recent-apps-DQQGGtQF.js → use-recent-apps-BumxbfgY.js} +1 -1
  331. package/dist/client/assets/{use-releases-D_4OhIZK.js → use-releases-CRk_-gGM.js} +1 -1
  332. package/dist/client/assets/{use-reports-diagnostic-DmNOWdgE.js → use-reports-diagnostic-WXyHMxuT.js} +1 -1
  333. package/dist/client/assets/{use-secrets-DVHGHbWn.js → use-secrets-nvhTtgV_.js} +1 -1
  334. package/dist/client/assets/{use-section-preview-base-EEIQI4Ik.js → use-section-preview-base-BBIzI-Pc.js} +1 -1
  335. package/dist/client/assets/{use-tags-wkF8OlfB.js → use-tags-Dawb8nJP.js} +1 -1
  336. package/dist/client/assets/{use-task-board-analytics-CeChyUNV.js → use-task-board-analytics-BaDTyaMf.js} +1 -1
  337. package/dist/client/assets/{use-task-board-events-HM8tkd7K.js → use-task-board-events-viqZq2i-.js} +1 -1
  338. package/dist/client/assets/{use-task-board-item-prs-BrZLlBFN.js → use-task-board-item-prs-BTOeRNoi.js} +1 -1
  339. package/dist/client/assets/{use-task-board-items-AkUs4SCp.js → use-task-board-items-Dp3mGHSl.js} +1 -1
  340. package/dist/client/assets/{use-task-metadata-BYWnl_Dc.js → use-task-metadata-Buvn0eAk.js} +1 -1
  341. package/dist/client/assets/{use-thread-analytics-C-mFzjx5.js → use-thread-analytics-DOC2eb9z.js} +1 -1
  342. package/dist/client/assets/{use-thread-outputs-B1zzKutX.js → use-thread-outputs-Bmumw8UE.js} +1 -1
  343. package/dist/client/assets/useInfiniteQuery-CQY9cAw7.js +1 -0
  344. package/dist/client/assets/{useQueries-BlBb4paf.js → useQueries-4Zja_Hbg.js} +1 -1
  345. package/dist/client/assets/useSuspenseInfiniteQuery-XqqzZbmr.js +1 -0
  346. package/dist/client/assets/{users-C2_RmXbp.js → users-Cbsspkn2.js} +1 -1
  347. package/dist/client/assets/{utils-BdpWMmUt.js → utils-zbsUBoHt.js} +1 -1
  348. package/dist/client/assets/{variant-calendar-CpdfrWzd.js → variant-calendar-BnIxTRkB.js} +1 -1
  349. package/dist/client/assets/{variant-draft-pointer-UfH0PPCK.js → variant-draft-pointer-DEL-ZLWj.js} +1 -1
  350. package/dist/client/assets/{view-mode-toggle-BuPOaLfD.js → view-mode-toggle-CGu3ANob.js} +1 -1
  351. package/dist/client/assets/{virtual-mcp-DEzWx_Zp.js → virtual-mcp-DQFtuDZf.js} +1 -1
  352. package/dist/client/assets/{watch-sse-pool-DatmHsge.js → watch-sse-pool-C7fmCtIy.js} +1 -1
  353. package/dist/client/index.html +1 -1
  354. package/dist/server/migrate.js +218 -214
  355. package/dist/server/server.js +703 -703
  356. package/package.json +1 -1
  357. package/dist/client/assets/agent-app-Cv__AOVM.js +0 -1
  358. package/dist/client/assets/agent-deck-Du1mMR-E.js +0 -1
  359. package/dist/client/assets/agent-library-file-vb-6Hjtp.js +0 -1
  360. package/dist/client/assets/agent-library-pAGySVEX.js +0 -1
  361. package/dist/client/assets/agent-settings-6lU0Rtg1.js +0 -1
  362. package/dist/client/assets/agent-site-editor-code-C0sVCVRO.js +0 -2
  363. package/dist/client/assets/agent-site-editor-content-DuKM0OyF.js +0 -1
  364. package/dist/client/assets/agent-site-editor-preview-QBPik_OC.js +0 -1
  365. package/dist/client/assets/agent-view-DcW4UHjt.js +0 -1
  366. package/dist/client/assets/api-keys-CX0eTNjr.js +0 -1
  367. package/dist/client/assets/cms-settings-editor-CCE6WfjP.js +0 -1
  368. package/dist/client/assets/flat-project-CVEZo8Pd.js +0 -1
  369. package/dist/client/assets/library-D66pbYEa.js +0 -1
  370. package/dist/client/assets/mock-board-BaHvboTU.js +0 -1
  371. package/dist/client/assets/project-reports-BXZYOXjl.js +0 -1
  372. package/dist/client/assets/project-tasks-JG50DV7s.js +0 -1
  373. package/dist/client/assets/record-editor-Q4r6DK6y.js +0 -1
  374. package/dist/client/assets/reports-Dp6RE3Y_.js +0 -1
  375. package/dist/client/assets/route-GZy5TvX0.js +0 -1
  376. package/dist/client/assets/schema-B5twZahU.js +0 -1
  377. package/dist/client/assets/site-editor-C6vYIwH1.js +0 -1
  378. package/dist/client/assets/task-board-CieGpcMy.js +0 -1
  379. package/dist/client/assets/taskboard-analytics-C-ASxw6x.js +0 -1
  380. package/dist/client/assets/tasks-UazvBHEg.js +0 -1
  381. package/dist/client/assets/useInfiniteQuery-Z1h_BzmN.js +0 -1
  382. package/dist/client/assets/useSuspenseInfiniteQuery--UgGWd1x.js +0 -1
@@ -1,5 +1,9 @@
1
1
  // @bun
2
- var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null,x)}var C=(_,x)=>{for(var u in x)fz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Iz.bind(x,u)})};import{Migrator as Sz,sql as o}from"kysely";var $x={};C($x,{up:()=>yz,down:()=>Vz});async function yz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function Vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>wz,down:()=>kz,TYPES:()=>Ux});import{sql as m_}from"kysely";var Ux=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function wz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await qm(_,Ux)}async function kz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await qm(_,Ux.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function qm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Px={};C(Px,{up:()=>nz,down:()=>vz});import{sql as im}from"kysely";async function nz(_){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",im`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",im`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function vz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>pz,down:()=>gz});import{sql as a}from"kysely";async function pz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
2
+ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null,x)}var C=(_,x)=>{for(var u in x)Iz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Vz.bind(x,u)})};import{Migrator as Az,sql as o}from"kysely";var $x={};C($x,{up:()=>wz,down:()=>kz});import{sql as im}from"kysely";async function wz(_){await im`
3
+ ALTER TABLE task_board_items
4
+ ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
5
+ CHECK (harness_id IN ('claude-code', 'codex'))
6
+ `.execute(_)}async function kz(_){await im`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Ux={};C(Ux,{up:()=>nz,down:()=>vz});async function nz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>pz,down:()=>gz,TYPES:()=>Px});import{sql as m_}from"kysely";var Px=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function pz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await cm(_,Px)}async function gz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await cm(_,Px.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function cm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as hm}from"kysely";async function qz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",hm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",hm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz});import{sql as a}from"kysely";async function cz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
3
7
  DROP COLUMN IF EXISTS registry_config,
4
8
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
5
9
  BEGIN RETURN value::jsonb;
@@ -14,20 +18,20 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
14
18
  )`.execute(_),await a`DELETE FROM connections
15
19
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
16
20
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
17
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function gz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as cm}from"kysely";async function qz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await cm`
21
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function hz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as tm}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await tm`
18
22
  select organization_id, metadata
19
23
  from connections
20
24
  where connection_type = 'VIRTUAL'
21
25
  and metadata like '%submoduleCredentials%'
22
26
  order by updated_at asc
23
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await cm`
27
+ `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await tm`
24
28
  insert into organization_settings
25
29
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
26
30
  values (${K}, ${T}, ${N}, ${N})
27
31
  on conflict ("organizationId") do update
28
32
  set submodule_credentials = excluded.submodule_credentials,
29
33
  "updatedAt" = excluded."updatedAt"
30
- `.execute(_)}}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Zx={};C(Zx,{up:()=>cz,down:()=>hz});async function cz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function hz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>tz,down:()=>oz});import{sql as Wx}from"kysely";async function tz(_){await Wx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Wx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Wx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function oz(_){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 Fx={};C(Fx,{up:()=>lz,down:()=>ez});import{sql as G}from"kysely";var az={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"}},rz={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"}},Lx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function hm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function tm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,az],[G`'commerce-discovery_' || organization_id`,rz]])for(let T of["title","description"]){let{from:z,to:E}=hm(m[T],x);await G`
34
+ `.execute(_)}}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});async function az(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function rz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as Lx}from"kysely";async function lz(_){await Lx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Lx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Lx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function ez(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Yx={};C(Yx,{up:()=>bz,down:()=>_E});import{sql as G}from"kysely";var dz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},sz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Fx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function om(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function am(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,dz],[G`'commerce-discovery_' || organization_id`,sz]])for(let T of["title","description"]){let{from:z,to:E}=om(m[T],x);await G`
31
35
  UPDATE connections
32
36
  SET ${G.ref(T)} = ${E}
33
37
  WHERE id = ${K}
@@ -41,7 +45,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
41
45
  RETURN NULL;
42
46
  END;
43
47
  $fn$ LANGUAGE plpgsql IMMUTABLE;
44
- `.execute(_);let{from:u,to:N}=hm(Lx.label,x);await G`
48
+ `.execute(_);let{from:u,to:N}=om(Fx.label,x);await G`
45
49
  WITH agents AS (
46
50
  SELECT id, deco_score_try_jsonb(metadata) AS m
47
51
  FROM connections
@@ -56,7 +60,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
56
60
  (
57
61
  SELECT jsonb_agg(
58
62
  CASE
59
- WHEN v ->> 'toolName' = ${Lx.toolName}
63
+ WHEN v ->> 'toolName' = ${Fx.toolName}
60
64
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
61
65
  THEN v || jsonb_build_object('label', ${N}::text)
62
66
  ELSE v
@@ -72,7 +76,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
72
76
  AND EXISTS (
73
77
  SELECT 1
74
78
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
75
- WHERE v ->> 'toolName' = ${Lx.toolName}
79
+ WHERE v ->> 'toolName' = ${Fx.toolName}
76
80
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
77
81
  )
78
82
  )
@@ -80,7 +84,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
80
84
  SET metadata = r.m::text
81
85
  FROM relabeled r
82
86
  WHERE c.id = r.id
83
- `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function lz(_){await tm(_,"up")}async function ez(_){await tm(_,"down")}var Dx={};C(Dx,{up:()=>bz,down:()=>sz,ACTIONS:()=>Yx});import{sql as T_}from"kysely";var Yx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],dz=Yx.filter((_)=>_!=="finding_resolved");async function bz(_){await om(_,Yx)}async function sz(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await om(_,dz)}async function om(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Hx={};C(Hx,{up:()=>_E,down:()=>xE});import{sql as G_}from"kysely";async function _E(_){await G_`
87
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function bz(_){await am(_,"up")}async function _E(_){await am(_,"down")}var Hx={};C(Hx,{up:()=>uE,down:()=>CE,ACTIONS:()=>Dx});import{sql as T_}from"kysely";var Dx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],xE=Dx.filter((_)=>_!=="finding_resolved");async function uE(_){await rm(_,Dx)}async function CE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await rm(_,xE)}async function rm(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Mx={};C(Mx,{up:()=>KE,down:()=>NE});import{sql as G_}from"kysely";async function KE(_){await G_`
84
88
  ALTER TABLE org_jira_column_automations
85
89
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
86
90
  CONSTRAINT chk_org_jira_column_automations_from_kind
@@ -91,7 +95,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
91
95
  ALTER TABLE org_jira_column_automations
92
96
  DROP CONSTRAINT org_jira_column_automations_pkey,
93
97
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
94
- `.execute(_)}async function xE(_){await G_`
98
+ `.execute(_)}async function NE(_){await G_`
95
99
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
96
100
  `.execute(_),await G_`
97
101
  ALTER TABLE org_jira_column_automations
@@ -100,18 +104,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
100
104
  DROP COLUMN from_key,
101
105
  DROP COLUMN from_statuses,
102
106
  DROP COLUMN from_kind
103
- `.execute(_)}var Mx={};C(Mx,{up:()=>uE,down:()=>CE});import{sql as am}from"kysely";async function uE(_){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(am`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(am`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 CE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Rx={};C(Rx,{up:()=>KE,down:()=>NE});async function KE(){}async function NE(){}var Gx={};C(Gx,{up:()=>mE,down:()=>TE});import{sql as Bx}from"kysely";async function mE(_){await Bx`
107
+ `.execute(_)}var Rx={};C(Rx,{up:()=>mE,down:()=>TE});import{sql as lm}from"kysely";async function mE(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function TE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Bx={};C(Bx,{up:()=>zE,down:()=>EE});async function zE(){}async function EE(){}var Ox={};C(Ox,{up:()=>$E,down:()=>UE});import{sql as Gx}from"kysely";async function $E(_){await Gx`
104
108
  ALTER TABLE task_board_prompts
105
109
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
106
- `.execute(_)}async function TE(_){await Bx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Bx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Sx={};C(Sx,{up:()=>zE,down:()=>EE});import{sql as Ox}from"kysely";async function zE(_){await Ox`
110
+ `.execute(_)}async function UE(_){await Gx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Gx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var fx={};C(fx,{up:()=>PE,down:()=>JE});import{sql as Sx}from"kysely";async function PE(_){await Sx`
107
111
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
108
- `.execute(_),await Ox`
112
+ `.execute(_),await Sx`
109
113
  DELETE FROM connection_aggregations
110
114
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
111
- `.execute(_),await Ox`
115
+ `.execute(_),await Sx`
112
116
  DELETE FROM connections
113
117
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
114
- `.execute(_)}async function EE(){}var fx={};C(fx,{up:()=>$E,down:()=>UE});import{sql as rm}from"kysely";async function $E(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(rm`audience in ('human', 'internal')`)).execute(),await rm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function UE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ax={};C(Ax,{up:()=>PE,down:()=>QE});import{sql as JE}from"kysely";async function PE(_){await JE`
118
+ `.execute(_)}async function JE(){}var Ax={};C(Ax,{up:()=>XE,down:()=>QE});import{sql as em}from"kysely";async function XE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(em`audience in ('human', 'internal')`)).execute(),await em`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function QE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ix={};C(Ix,{up:()=>WE,down:()=>LE});import{sql as ZE}from"kysely";async function WE(_){await ZE`
115
119
  UPDATE org_fs_entry AS d
116
120
  SET deleted_at = now(),
117
121
  updated_at = now(),
@@ -130,7 +134,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
130
134
  AND c.parent = d.path
131
135
  AND c.deleted_at IS NULL
132
136
  )
133
- `.execute(_)}async function QE(){}var yx={};C(yx,{up:()=>ZE,down:()=>WE,ACTIONS:()=>Ix});import{sql as F}from"kysely";var Ix=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],XE=Ix.filter((_)=>_!=="sprint_changed");async function ZE(_){await F`
137
+ `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE,ACTIONS:()=>yx});import{sql as F}from"kysely";var yx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],jE=yx.filter((_)=>_!=="sprint_changed");async function FE(_){await F`
134
138
  CREATE TABLE task_board_sprints (
135
139
  id text PRIMARY KEY,
136
140
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -156,64 +160,64 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
156
160
  CREATE INDEX idx_task_board_items_sprint
157
161
  ON task_board_items (organization_id, sprint_id)
158
162
  WHERE sprint_id IS NOT NULL
159
- `.execute(_),await lm(_,Ix)}async function WE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await lm(_,XE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function lm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var Vx={};C(Vx,{up:()=>LE,planOrgSiteProjectLinks:()=>bm,down:()=>FE,applyOrgSiteProjectLinks:()=>sm});import{sql as P}from"kysely";var jE="migration-237",em=1000;async function dm(_){return(await P`
163
+ `.execute(_),await dm(_,yx)}async function YE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await dm(_,jE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function dm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var wx={};C(wx,{up:()=>HE,planOrgSiteProjectLinks:()=>_T,down:()=>ME,applyOrgSiteProjectLinks:()=>xT});import{sql as J}from"kysely";var DE="migration-237",sm=1000;async function bm(_){return(await J`
160
164
  SELECT conname FROM pg_constraint
161
165
  WHERE conrelid = 'org_sites'::regclass
162
166
  AND confrelid = 'organization'::regclass
163
167
  AND contype = 'f'
164
- `.execute(_)).rows[0]?.conname??null}async function bm(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await P`
168
+ `.execute(_)).rows[0]?.conname??null}async function _T(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
165
169
  SELECT slug, organization_id FROM org_sites
166
170
  WHERE organization_id IS NOT NULL
167
171
  ORDER BY organization_id, slug
168
- `.execute(_);if(u.rows.length===0)return x;let N=await P`
172
+ `.execute(_);if(u.rows.length===0)return x;let N=await J`
169
173
  SELECT id, organization_id, metadata FROM connections
170
174
  WHERE connection_type = 'VIRTUAL'
171
175
  AND organization_id IN (
172
176
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
173
177
  )
174
178
  ORDER BY organization_id, id
175
- `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function sm(_,x){let u=0;for(let N=0;N<x.length;N+=em){let K=P.join(x.slice(N,N+em).map((T)=>P`(${T.slug}::text, ${T.projectId}::text)`)),m=await P`
179
+ `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function xT(_,x){let u=0;for(let N=0;N<x.length;N+=sm){let K=J.join(x.slice(N,N+sm).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
176
180
  UPDATE org_sites o
177
181
  SET project_id = v.pid,
178
182
  linked_at = now(),
179
- updated_by = ${jE},
183
+ updated_by = ${DE},
180
184
  updated_at = now()
181
185
  FROM (VALUES ${K}) AS v(slug, pid)
182
186
  WHERE o.slug = v.slug
183
187
  AND o.project_id IS NULL
184
188
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
185
- `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function LE(_){await P`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await bm(_);await P`
189
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function HE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await _T(_);await J`
186
190
  ALTER TABLE org_sites
187
191
  ADD COLUMN project_id text NULL
188
192
  REFERENCES connections(id) ON DELETE SET NULL,
189
193
  ADD COLUMN linked_at timestamptz NULL
190
- `.execute(_),await P`
194
+ `.execute(_),await J`
191
195
  CREATE UNIQUE INDEX org_sites_project_id_uq
192
196
  ON org_sites (project_id) WHERE project_id IS NOT NULL
193
- `.execute(_);let u=await dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
197
+ `.execute(_);let u=await bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
194
198
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
195
- `.execute(_),await P`
199
+ `.execute(_),await J`
196
200
  ALTER TABLE org_sites
197
201
  ADD CONSTRAINT org_sites_organization_id_fkey
198
202
  FOREIGN KEY (organization_id) REFERENCES organization(id)
199
203
  ON DELETE SET NULL NOT VALID
200
- `.execute(_),await P`
204
+ `.execute(_),await J`
201
205
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
202
- `.execute(_);let N=await sm(_,x.links),K=await P`
206
+ `.execute(_);let N=await xT(_,x.links),K=await J`
203
207
  UPDATE org_sites SET linked_at = created_at
204
208
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
205
- `.execute(_);await P`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function FE(_){if((await P`
209
+ `.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function ME(_){if((await J`
206
210
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
207
- `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await dm(_);if(u)await P`ALTER TABLE org_sites DROP CONSTRAINT ${P.id(u)}`.execute(_);await P`
211
+ `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
208
212
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
209
- `.execute(_),await P`
213
+ `.execute(_),await J`
210
214
  ALTER TABLE org_sites
211
215
  ADD CONSTRAINT org_sites_organization_id_fkey
212
216
  FOREIGN KEY (organization_id) REFERENCES organization(id)
213
217
  ON DELETE CASCADE
214
- `.execute(_),await P`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await P`
218
+ `.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
215
219
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
216
- `.execute(_)}var wx={};C(wx,{up:()=>YE,moveRules:()=>Y,down:()=>DE});import{sql as c}from"kysely";async function YE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
220
+ `.execute(_)}var kx={};C(kx,{up:()=>RE,moveRules:()=>Y,down:()=>BE});import{sql as c}from"kysely";async function RE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
217
221
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
218
222
  `.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
219
223
  WITH moved AS (
@@ -241,7 +245,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
241
245
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
242
246
  now()
243
247
  FROM moved
244
- `.execute(_)}async function DE(){}async function Y(_,x,u,N,K){await c`
248
+ `.execute(_)}async function BE(){}async function Y(_,x,u,N,K){await c`
245
249
  DELETE FROM ${c.table(x)} AS src
246
250
  WHERE src.column_key = ${N}
247
251
  AND EXISTS (
@@ -255,7 +259,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
255
259
  id = ${u} || organization_id || '_' || ${K},
256
260
  updated_at = now()
257
261
  WHERE column_key = ${N}
258
- `.execute(_)}var kx={};C(kx,{up:()=>ME,down:()=>RE});import{sql as HE}from"kysely";async function ME(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await HE`
262
+ `.execute(_)}var nx={};C(nx,{up:()=>OE,down:()=>SE});import{sql as GE}from"kysely";async function OE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await GE`
259
263
  WITH moved AS (
260
264
  UPDATE task_board_items AS i
261
265
  SET status = CASE prev.status
@@ -279,7 +283,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
279
283
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
280
284
  now()
281
285
  FROM moved
282
- `.execute(_)}async function RE(){}var nx={};C(nx,{up:()=>GE,down:()=>OE});import{sql as BE}from"kysely";async function GE(_){await BE`
286
+ `.execute(_)}async function SE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as fE}from"kysely";async function AE(_){await fE`
283
287
  WITH restored AS (
284
288
  UPDATE task_board_items AS i
285
289
  SET status = 'todo', updated_at = now()
@@ -306,45 +310,45 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
306
310
  jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
307
311
  now()
308
312
  FROM restored
309
- `.execute(_)}async function OE(){}var vx={};C(vx,{up:()=>SE,down:()=>fE});import{sql as L}from"kysely";async function SE(_){await L`
313
+ `.execute(_)}async function IE(){}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as j}from"kysely";async function yE(_){await j`
310
314
  ALTER TABLE automation_triggers
311
315
  ADD COLUMN column_key text,
312
316
  ADD COLUMN from_kind text,
313
317
  ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
314
- `.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
318
+ `.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
315
319
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
316
320
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
317
- `.execute(_),await L`
321
+ `.execute(_),await j`
318
322
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
319
323
  CHECK (
320
324
  type != 'board_column_transition'
321
325
  OR (column_key IS NOT NULL
322
326
  AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
323
327
  )
324
- `.execute(_),await L`
328
+ `.execute(_),await j`
325
329
  CREATE TABLE automation_trigger_fires (
326
330
  trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
327
331
  event_key text NOT NULL,
328
332
  created_at timestamptz NOT NULL DEFAULT now(),
329
333
  PRIMARY KEY (trigger_id, event_key)
330
334
  )
331
- `.execute(_),await L`
335
+ `.execute(_),await j`
332
336
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
333
337
  ON task_board_activity (occurred_at)
334
338
  WHERE action = 'status_changed'
335
- `.execute(_)}async function fE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
339
+ `.execute(_)}async function VE(_){await j`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await j`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await j`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
336
340
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
337
341
  CHECK (type IN ('cron', 'event', 'webhook'))
338
- `.execute(_),await L`
342
+ `.execute(_),await j`
339
343
  ALTER TABLE automation_triggers
340
344
  DROP COLUMN IF EXISTS column_key,
341
345
  DROP COLUMN IF EXISTS from_kind,
342
346
  DROP COLUMN IF EXISTS from_statuses
343
- `.execute(_)}var px={};C(px,{up:()=>VE,down:()=>wE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var xT=64,AE=new Set(["new","edit","settings","apps","projects","connections"]);function IE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function yE(_,x){let u=IE(_??"").slice(0,xT).replace(/-+$/,"");return u.length>=2&&!AE.has(u)?u:x}function _T(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,xT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){let{rows:x}=await D`
347
+ `.execute(_)}var gx={};C(gx,{up:()=>vE,down:()=>pE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var CT=64,wE=new Set(["new","edit","settings","apps","projects","connections"]);function kE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function nE(_,x){let u=kE(_??"").slice(0,CT).replace(/-+$/,"");return u.length>=2&&!wE.has(u)?u:x}function uT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,CT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){let{rows:x}=await D`
344
348
  SELECT id, organization_id, title, connection_type, url_slug
345
349
  FROM connections
346
350
  ORDER BY organization_id, created_at, id
347
- `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=yE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(_T(E,$)))$++;let J=_T(E,$);z.add(J),m.push({id:T.id,slug:J})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
351
+ `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=nE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(uT(E,$)))$++;let P=uT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
348
352
  UPDATE connections c
349
353
  SET url_slug = v.slug
350
354
  FROM unnest(
@@ -352,7 +356,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
352
356
  ${D.val(z.map((E)=>E.slug))}::text[]
353
357
  ) AS v(id, slug)
354
358
  WHERE c.id = v.id AND c.url_slug IS NULL
355
- `.execute(_)}}async function VE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
359
+ `.execute(_)}}async function vE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
356
360
  CREATE TABLE connection_slug_aliases (
357
361
  organization_id text NOT NULL,
358
362
  slug text NOT NULL,
@@ -366,18 +370,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
366
370
  `.execute(_),await O_(_),await D`
367
371
  CREATE UNIQUE INDEX idx_connections_org_url_slug
368
372
  ON connections (organization_id, url_slug)
369
- `.execute(_)}async function wE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});async function kE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function nE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var qx={};C(qx,{up:()=>vE,down:()=>pE});async function vE(_){await O_(_)}async function pE(){}var ix={};C(ix,{up:()=>gE,down:()=>qE});import{sql as S_}from"kysely";async function gE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
373
+ `.execute(_)}async function pE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var qx={};C(qx,{up:()=>gE,down:()=>qE});async function gE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function qE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var ix={};C(ix,{up:()=>iE,down:()=>cE});async function iE(_){await O_(_)}async function cE(){}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
370
374
  CREATE UNIQUE INDEX idx_automations_org_system_key
371
375
  ON automations (organization_id, system_key)
372
376
  WHERE system_key IS NOT NULL
373
- `.execute(_)}async function qE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var cx={};C(cx,{up:()=>iE,down:()=>cE});import{sql as z_}from"kysely";async function iE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
377
+ `.execute(_)}async function tE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var hx={};C(hx,{up:()=>oE,down:()=>aE});import{sql as z_}from"kysely";async function oE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
374
378
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
375
379
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
376
380
  'board_pr_ready'))
377
- `.execute(_)}async function cE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
381
+ `.execute(_)}async function aE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
378
382
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
379
383
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
380
- `.execute(_)}var hx={};C(hx,{up:()=>hE,down:()=>aE});import{sql as H}from"kysely";async function hE(_){let{rows:x}=await H`
384
+ `.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>dE});import{sql as H}from"kysely";async function rE(_){let{rows:x}=await H`
381
385
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
382
386
  WHERE conname = 'chk_trigger_type'
383
387
  AND conrelid = 'automation_triggers'::regclass
@@ -404,8 +408,8 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
404
408
  INSERT INTO automations
405
409
  (id, organization_id, name, active, created_by, messages, models,
406
410
  virtual_mcp_id)
407
- VALUES (${T}, ${K.organization_id}, ${tE(K)}, true,
408
- ${K.created_by}, ${JSON.stringify(oE(K.prompt))},
411
+ VALUES (${T}, ${K.organization_id}, ${lE(K)}, true,
412
+ ${K.created_by}, ${JSON.stringify(eE(K.prompt))},
409
413
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
410
414
  ON CONFLICT (id) DO NOTHING
411
415
  `.execute(_),await H`
@@ -414,11 +418,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
414
418
  VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
415
419
  ${K.from_kind}, ${K.from_statuses})
416
420
  ON CONFLICT (id) DO NOTHING
417
- `.execute(_)}}function tE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function oE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
418
- `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function aE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
421
+ `.execute(_)}}function lE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function eE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
422
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function dE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
419
423
  ALTER TABLE automation_triggers
420
424
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
421
- `.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as E_}from"kysely";async function rE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function lE(_){await E_`
425
+ `.execute(_)}var ox={};C(ox,{up:()=>sE,down:()=>bE});import{sql as E_}from"kysely";async function sE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function bE(_){await E_`
422
426
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
423
427
  id text PRIMARY KEY,
424
428
  organization_id text NOT NULL,
@@ -445,7 +449,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
445
449
  updated_at timestamptz NOT NULL DEFAULT now(),
446
450
  PRIMARY KEY (organization_id, jira_status, from_key)
447
451
  )
448
- `.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as f_}from"kysely";async function eE(_){await f_`
452
+ `.execute(_)}var ax={};C(ax,{up:()=>_0,down:()=>x0});import{sql as f_}from"kysely";async function _0(_){await f_`
449
453
  ALTER TABLE task_board_items
450
454
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
451
455
  REFERENCES connections(id) ON DELETE SET NULL
@@ -453,22 +457,22 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
453
457
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
454
458
  ON task_board_items (virtual_mcp_id)
455
459
  WHERE virtual_mcp_id IS NOT NULL
456
- `.execute(_)}async function dE(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var ax={};C(ax,{up:()=>bE,down:()=>sE});async function bE(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function sE(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var rx={};C(rx,{up:()=>_0,down:()=>x0});async function _0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function x0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var lx={};C(lx,{up:()=>u0,down:()=>C0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function uT(_){let{rows:x}=await r`
460
+ `.execute(_)}async function x0(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});async function u0(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function C0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var lx={};C(lx,{up:()=>K0,down:()=>N0});async function K0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function N0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var ex={};C(ex,{up:()=>m0,down:()=>T0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function KT(_){let{rows:x}=await r`
457
461
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
458
462
  WHERE conname = 'chk_trigger_type'
459
463
  AND conrelid = 'automation_triggers'::regclass
460
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function CT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
464
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function NT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
461
465
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
462
466
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
463
- `.execute(_)}async function u0(_){let x=await uT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await CT(_,x)}async function C0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await uT(_);for(let u of A_)x.delete(u);await CT(_,x)}var ex={};C(ex,{up:()=>K0,down:()=>N0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function KT(_){let{rows:x}=await l`
467
+ `.execute(_)}async function m0(_){let x=await KT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await NT(_,x)}async function T0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await KT(_);for(let u of A_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>z0,down:()=>E0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function mT(_){let{rows:x}=await l`
464
468
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
465
469
  WHERE conname = 'chk_trigger_type'
466
470
  AND conrelid = 'automation_triggers'::regclass
467
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function NT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
471
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
468
472
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
469
473
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
470
- `.execute(_)}async function K0(_){let x=await KT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await NT(_,x)}async function N0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await KT(_);for(let u of I_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>T0,down:()=>z0});import{sql as m0}from"kysely";async function T0(_){await m0`ALTER TABLE organization_settings
471
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>E0,down:()=>$0});import{sql as mT}from"kysely";async function E0(_){await mT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function $0(_){await mT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var sx={};C(sx,{up:()=>U0,down:()=>J0});import{sql as O}from"kysely";async function U0(_){await O`
474
+ `.execute(_)}async function z0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function E0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>U0,down:()=>P0});import{sql as $0}from"kysely";async function U0(_){await $0`ALTER TABLE organization_settings
475
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function P0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>J0,down:()=>X0});import{sql as zT}from"kysely";async function J0(_){await zT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function X0(_){await zT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as O}from"kysely";async function Q0(_){await O`
472
476
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
473
477
  RETURNS jsonb AS $fn$
474
478
  BEGIN
@@ -542,7 +546,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
542
546
  || '/' ||
543
547
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
544
548
  ) = lower(p.path)
545
- `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function J0(_){await O`
549
+ `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function Z0(_){await O`
546
550
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
547
551
  RETURNS jsonb AS $fn$
548
552
  BEGIN
@@ -569,17 +573,17 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
569
573
  )::text
570
574
  WHERE a.id = 'commerce-discovery_' || a.organization_id
571
575
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
572
- `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var xu={};C(xu,{up:()=>P0,down:()=>Q0});import{sql as _u}from"kysely";async function P0(_){await _u`ALTER TABLE git_provider_accounts
576
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var uu={};C(uu,{up:()=>W0,down:()=>L0});import{sql as xu}from"kysely";async function W0(_){await xu`ALTER TABLE git_provider_accounts
573
577
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
574
578
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
575
579
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
576
580
  ADD CONSTRAINT git_provider_accounts_cli_check
577
581
  CHECK (auth_kind <> 'github_cli' OR
578
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function Q0(_){await _u`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await _u`ALTER TABLE git_provider_accounts
582
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function L0(_){await xu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await xu`ALTER TABLE git_provider_accounts
579
583
  DROP CONSTRAINT git_provider_accounts_cli_check,
580
584
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
581
585
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
582
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var uu={};C(uu,{up:()=>X0,down:()=>Z0});import{sql as TT}from"kysely";async function X0(_){await TT`
586
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Cu={};C(Cu,{up:()=>j0,down:()=>F0});import{sql as ET}from"kysely";async function j0(_){await ET`
583
587
  INSERT INTO "organization" (id, name, slug, "createdAt")
584
588
  SELECT
585
589
  'org_user_fs',
@@ -593,9 +597,9 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
593
597
  END,
594
598
  now()
595
599
  ON CONFLICT (id) DO NOTHING
596
- `.execute(_)}async function Z0(_){await TT`
600
+ `.execute(_)}async function F0(_){await ET`
597
601
  DELETE FROM "organization" WHERE id = 'org_user_fs'
598
- `.execute(_)}var Cu={};C(Cu,{up:()=>W0,down:()=>j0});async function W0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function j0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Ku={};C(Ku,{up:()=>L0,down:()=>F0});async function L0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function F0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Nu={};C(Nu,{up:()=>D0,down:()=>H0});import{sql as $_}from"kysely";var Y0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function zT(_,x){for(let{table:u,column:N}of Y0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function D0(_){await zT(_,["github","gitlab","bitbucket"])}async function H0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await zT(_,["github","gitlab"])}var mu={};C(mu,{up:()=>M0,down:()=>R0});import{sql as y_}from"kysely";async function M0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function R0(_){await _.schema.dropTable("experiments").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});import{sql as B0}from"kysely";async function G0(_){await B0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function O0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Eu={};C(Eu,{up:()=>f0,down:()=>A0,ACTIONS:()=>zu});import{sql as U_}from"kysely";var zu=["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"],S0=zu.filter((_)=>_!=="duplicate_reported");async function f0(_){await ET(_,zu)}async function A0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await ET(_,S0)}async function ET(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var $u={};C($u,{up:()=>I0,down:()=>y0});async function I0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function y0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Uu={};C(Uu,{up:()=>V0,down:()=>w0});async function V0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function w0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>n0,down:()=>v0});import{sql as k0}from"kysely";async function n0(_){await k0`
602
+ `.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});async function Y0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function D0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function M0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var mu={};C(mu,{up:()=>B0,down:()=>G0});import{sql as $_}from"kysely";var R0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function $T(_,x){for(let{table:u,column:N}of R0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function B0(_){await $T(_,["github","gitlab","bitbucket"])}async function G0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await $T(_,["github","gitlab"])}var Tu={};C(Tu,{up:()=>O0,down:()=>S0});import{sql as y_}from"kysely";async function O0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function S0(_){await _.schema.dropTable("experiments").execute()}var zu={};C(zu,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await f0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function I0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var $u={};C($u,{up:()=>V0,down:()=>w0,ACTIONS:()=>Eu});import{sql as U_}from"kysely";var Eu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],y0=Eu.filter((_)=>_!=="duplicate_reported");async function V0(_){await UT(_,Eu)}async function w0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await UT(_,y0)}async function UT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Uu={};C(Uu,{up:()=>k0,down:()=>n0});async function k0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function n0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function p0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>q0,down:()=>i0});import{sql as g0}from"kysely";async function q0(_){await g0`
599
603
  CREATE TABLE github_connect_flows (
600
604
  id text PRIMARY KEY,
601
605
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -605,7 +609,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
605
609
  );
606
610
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
607
611
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
608
- `.execute(_)}async function v0(_){await _.schema.dropTable("github_connect_flows").execute()}var Pu={};C(Pu,{up:()=>p0,down:()=>g0});async function p0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function g0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>q0,down:()=>i0});import{sql as V_}from"kysely";async function q0(_){await V_`
612
+ `.execute(_)}async function i0(_){await _.schema.dropTable("github_connect_flows").execute()}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function h0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as V_}from"kysely";async function t0(_){await V_`
609
613
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
610
614
  DECLARE
611
615
  metadata_json jsonb;
@@ -661,19 +665,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
661
665
  FROM repositories r WHERE s.repository_id IS NULL
662
666
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
663
667
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
664
- `.execute(_)}async function i0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});import{sql as V}from"kysely";async function c0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function h0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Zu={};C(Zu,{up:()=>t0,down:()=>o0});import{sql as $T}from"kysely";async function t0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo($T`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo($T`CURRENT_TIMESTAMP`)).execute()}async function o0(_){await _.schema.dropTable("organization_settings").execute()}var Wu={};C(Wu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function r0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ju={};C(ju,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function e0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function b0(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Fu={};C(Fu,{up:()=>_$,down:()=>x$});import{sql as s0}from"kysely";async function _$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",s0`text`).execute()}async function x$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Yu={};C(Yu,{up:()=>u$,down:()=>C$});async function u$(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function C$(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Du={};C(Du,{up:()=>K$,down:()=>N$});import{sql as J_}from"kysely";async function K$(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function N$(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Hu={};C(Hu,{up:()=>T$,down:()=>z$});import{sql as m$}from"kysely";async function T$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function z$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(m$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Mu={};C(Mu,{up:()=>E$,down:()=>$$});import{sql as w_}from"kysely";async function E$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await w_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function $$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Ru={};C(Ru,{up:()=>U$,down:()=>J$});async function U$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function J$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Bu={};C(Bu,{up:()=>P$,down:()=>Q$});import{sql as k_}from"kysely";async function P$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
668
+ `.execute(_)}async function o0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});import{sql as V}from"kysely";async function a0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function r0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as PT}from"kysely";async function l0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(PT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PT`CURRENT_TIMESTAMP`)).execute()}async function e0(_){await _.schema.dropTable("organization_settings").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});async function d0(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function s0(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ju={};C(ju,{up:()=>b0,down:()=>_$});async function b0(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function _$(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function u$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Yu={};C(Yu,{up:()=>K$,down:()=>N$});import{sql as C$}from"kysely";async function K$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",C$`text`).execute()}async function N$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Du={};C(Du,{up:()=>m$,down:()=>T$});async function m$(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function T$(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as P_}from"kysely";async function z$(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function E$(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Mu={};C(Mu,{up:()=>U$,down:()=>P$});import{sql as $$}from"kysely";async function U$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function P$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo($$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ru={};C(Ru,{up:()=>J$,down:()=>X$});import{sql as w_}from"kysely";async function J$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(w_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await w_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function X$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});async function Q$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Z$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gu={};C(Gu,{up:()=>W$,down:()=>L$});import{sql as k_}from"kysely";async function W$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
665
669
  UPDATE gateways
666
670
  SET tool_selection_mode = CASE
667
671
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
668
672
  ELSE 'inclusion'
669
673
  END
670
- `.execute(_),await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function Q$(_){await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await k_`
674
+ `.execute(_),await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function L$(_){await k_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await k_`
671
675
  UPDATE gateways
672
676
  SET tool_selection_strategy = CASE
673
677
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
674
678
  ELSE NULL
675
679
  END
676
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Gu={};C(Gu,{up:()=>X$,down:()=>Z$});async function X$(_){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 Z$(_){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 Ou={};C(Ou,{up:()=>W$,down:()=>j$});async function W$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function j$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Su={};C(Su,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function F$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var fu={};C(fu,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function D$(_){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 Au={};C(Au,{up:()=>M$,down:()=>R$});import{sql as H$}from"kysely";async function M$(_){await H$`
680
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Ou={};C(Ou,{up:()=>j$,down:()=>F$});async function j$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function F$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Su={};C(Su,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function D$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function M$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function B$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var Iu={};C(Iu,{up:()=>O$,down:()=>S$});import{sql as G$}from"kysely";async function O$(_){await G$`
677
681
  DELETE FROM downstream_tokens
678
682
  WHERE id NOT IN (
679
683
  SELECT id FROM (
@@ -683,7 +687,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
683
687
  ) ranked
684
688
  WHERE rn = 1
685
689
  )
686
- `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function R$(_){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 Iu={};C(Iu,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function G$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var yu={};C(yu,{up:()=>O$,down:()=>S$});import{sql as UT}from"kysely";async function O$(_){await UT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function S$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await UT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Vu={};C(Vu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function A$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var wu={};C(wu,{up:()=>I$,down:()=>y$});import{sql as n_}from"kysely";async function I$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function y$(_){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 ku={};C(ku,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function w$(_){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 nu={};C(nu,{up:()=>k$,down:()=>n$});async function k$(_){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 n$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var vu={};C(vu,{up:()=>v$,down:()=>p$});import{sql as M}from"kysely";async function v$(_){await M`
690
+ `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function S$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var yu={};C(yu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function A$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as JT}from"kysely";async function I$(_){await JT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function y$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await JT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function w$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as n_}from"kysely";async function k$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function n$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function p$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var vu={};C(vu,{up:()=>g$,down:()=>q$});async function g$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function q$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var pu={};C(pu,{up:()=>i$,down:()=>c$});import{sql as M}from"kysely";async function i$(_){await M`
687
691
  INSERT INTO connections (
688
692
  id,
689
693
  organization_id,
@@ -730,7 +734,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
730
734
  created_at,
731
735
  updated_at
732
736
  FROM virtual_mcps
733
- `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function p$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
737
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function c$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
734
738
  INSERT INTO virtual_mcps (
735
739
  id, organization_id, title, description, icon, status,
736
740
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -740,7 +744,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
740
744
  created_at, updated_at, created_by, NULL, 'inclusion'
741
745
  FROM connections
742
746
  WHERE connection_type = 'VIRTUAL'
743
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var pu={};C(pu,{up:()=>g$,down:()=>q$});async function g$(_){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 q$(_){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 gu={};C(gu,{up:()=>i$,down:()=>c$});import{sql as w}from"kysely";async function i$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
747
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function t$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as w}from"kysely";async function o$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
744
748
  INSERT INTO connection_aggregations_new (
745
749
  id, parent_connection_id, child_connection_id,
746
750
  selected_tools, selected_resources, selected_prompts, created_at
@@ -749,7 +753,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
749
753
  id, parent_connection_id, child_connection_id,
750
754
  selected_tools, selected_resources, selected_prompts, created_at
751
755
  FROM connection_aggregations
752
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function c$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
756
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function a$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
753
757
  INSERT INTO connection_aggregations_new (
754
758
  id, parent_connection_id, child_connection_id,
755
759
  selected_tools, selected_resources, selected_prompts, created_at
@@ -758,7 +762,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
758
762
  id, parent_connection_id, child_connection_id,
759
763
  selected_tools, selected_resources, selected_prompts, created_at
760
764
  FROM connection_aggregations
761
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var iu={};C(iu,{up:()=>h$,down:()=>t$});import{sql as qu}from"kysely";async function h$(_){await qu`
765
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var cu={};C(cu,{up:()=>r$,down:()=>l$});import{sql as iu}from"kysely";async function r$(_){await iu`
762
766
  UPDATE connections
763
767
  SET connection_url = connection_url || '/management',
764
768
  tools = NULL,
@@ -766,42 +770,42 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
766
770
  WHERE connection_url LIKE '%/mcp'
767
771
  AND connection_url NOT LIKE '%/mcp/management'
768
772
  AND app_name = '@deco/management-mcp'
769
- `.execute(_),await qu`
773
+ `.execute(_),await iu`
770
774
  UPDATE connections
771
775
  SET tools = NULL,
772
776
  updated_at = CURRENT_TIMESTAMP
773
777
  WHERE app_name = '@deco/management-mcp'
774
778
  AND tools IS NOT NULL
775
- `.execute(_)}async function t$(_){await qu`
779
+ `.execute(_)}async function l$(_){await iu`
776
780
  UPDATE connections
777
781
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
778
782
  updated_at = CURRENT_TIMESTAMP
779
783
  WHERE connection_url LIKE '%/mcp/management'
780
784
  AND app_name = '@deco/management-mcp'
781
- `.execute(_)}var hu={};C(hu,{up:()=>o$,down:()=>a$});import{sql as cu}from"kysely";async function o$(_){await cu`
785
+ `.execute(_)}var tu={};C(tu,{up:()=>e$,down:()=>d$});import{sql as hu}from"kysely";async function e$(_){await hu`
782
786
  UPDATE connections
783
787
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
784
788
  tools = NULL,
785
789
  updated_at = CURRENT_TIMESTAMP
786
790
  WHERE connection_url LIKE '%/mcp/management'
787
791
  AND app_name = '@deco/management-mcp'
788
- `.execute(_),await cu`
792
+ `.execute(_),await hu`
789
793
  UPDATE connections
790
794
  SET tools = NULL,
791
795
  updated_at = CURRENT_TIMESTAMP
792
796
  WHERE connection_url LIKE '%/mcp/self'
793
797
  AND app_name = '@deco/management-mcp'
794
798
  AND tools IS NOT NULL
795
- `.execute(_)}async function a$(_){await cu`
799
+ `.execute(_)}async function d$(_){await hu`
796
800
  UPDATE connections
797
801
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
798
802
  updated_at = CURRENT_TIMESTAMP
799
803
  WHERE connection_url LIKE '%/mcp/self'
800
804
  AND app_name = '@deco/management-mcp'
801
- `.execute(_)}var tu={};C(tu,{up:()=>r$,down:()=>l$});async function r$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function l$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var ou={};C(ou,{up:()=>e$,down:()=>d$});import{sql as JT}from"kysely";async function e$(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(JT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(JT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function d$(_){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 au={};C(au,{up:()=>b$,down:()=>s$});import{sql as P_}from"kysely";async function b$(_){await P_`
805
+ `.execute(_)}var ou={};C(ou,{up:()=>s$,down:()=>b$});async function s$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function b$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as XT}from"kysely";async function _U(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function xU(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var ru={};C(ru,{up:()=>uU,down:()=>CU});import{sql as J_}from"kysely";async function uU(_){await J_`
802
806
  ALTER TABLE connection_aggregations
803
807
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
804
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function s$(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await P_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await P_`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(P_`CURRENT_TIMESTAMP`)).execute(),await P_`
808
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function CU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
805
809
  INSERT INTO connection_aggregations_new (
806
810
  id, parent_connection_id, child_connection_id,
807
811
  selected_tools, selected_resources, selected_prompts, created_at
@@ -810,42 +814,42 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
810
814
  id, parent_connection_id, child_connection_id,
811
815
  selected_tools, selected_resources, selected_prompts, created_at
812
816
  FROM connection_aggregations
813
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{webcrypto as QT}from"crypto";var PT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var _U=128,h,e;function xU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*_U),QT.getRandomValues(h),e=0;else if(e+_>h.length)QT.getRandomValues(h),e=0;e+=_}function d(_=21){xU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=PT[h[u]&63];return x}var uU="org-admin",CU="Organization Admin";async function KU(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:uU,name:CU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function NU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var lu={};C(lu,{up:()=>mU,down:()=>TU});async function mU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function TU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var eu={};C(eu,{up:()=>zU,down:()=>EU});async function zU(_){}async function EU(_){}var du={};C(du,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function UU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var bu={};C(bu,{up:()=>JU,down:()=>PU});import{sql as XT}from"kysely";async function JU(_){await XT`
817
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var lu={};C(lu,{up:()=>zU,down:()=>EU});import{webcrypto as ZT}from"crypto";var QT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var KU=128,h,e;function NU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*KU),ZT.getRandomValues(h),e=0;else if(e+_>h.length)ZT.getRandomValues(h),e=0;e+=_}function d(_=21){NU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=QT[h[u]&63];return x}var mU="org-admin",TU="Organization Admin";async function zU(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:mU,name:TU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function EU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var eu={};C(eu,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function UU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var du={};C(du,{up:()=>PU,down:()=>JU});async function PU(_){}async function JU(_){}var su={};C(su,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function QU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var bu={};C(bu,{up:()=>ZU,down:()=>WU});import{sql as WT}from"kysely";async function ZU(_){await WT`
814
818
  UPDATE connections
815
819
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
816
820
  tools = NULL,
817
821
  updated_at = CURRENT_TIMESTAMP
818
822
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
819
823
  AND app_name = 'deco-registry'
820
- `.execute(_)}async function PU(_){await XT`
824
+ `.execute(_)}async function WU(_){await WT`
821
825
  UPDATE connections
822
826
  SET connection_url = 'https://api.decocms.com/mcp/registry',
823
827
  updated_at = CURRENT_TIMESTAMP
824
828
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
825
829
  AND app_name = 'deco-registry'
826
- `.execute(_)}var su={};C(su,{up:()=>XU,down:()=>ZU});import{sql as QU}from"kysely";async function XU(_){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(QU`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 ZU(_){await _.schema.dropTable("ai_provider_keys").execute()}var _C={};C(_C,{up:()=>jU,down:()=>LU});import{sql as WU}from"kysely";async function jU(_){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(WU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function LU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as p}from"kysely";async function FU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function YU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var uC={};C(uC,{up:()=>DU,down:()=>HU});async function DU(_){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 HU(_){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 CC={};C(CC,{up:()=>MU,down:()=>RU});async function MU(_){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 RU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var KC={};C(KC,{up:()=>BU,down:()=>GU});import{sql as ZT}from"kysely";async function BU(_){await ZT`
830
+ `.execute(_)}var _C={};C(_C,{up:()=>jU,down:()=>FU});import{sql as LU}from"kysely";async function jU(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(LU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function FU(_){await _.schema.dropTable("ai_provider_keys").execute()}var xC={};C(xC,{up:()=>DU,down:()=>HU});import{sql as YU}from"kysely";async function DU(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(YU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function HU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var uC={};C(uC,{up:()=>MU,down:()=>RU});import{sql as p}from"kysely";async function MU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function RU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var CC={};C(CC,{up:()=>BU,down:()=>GU});async function BU(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function GU(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var KC={};C(KC,{up:()=>OU,down:()=>SU});async function OU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function SU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var NC={};C(NC,{up:()=>fU,down:()=>AU});import{sql as LT}from"kysely";async function fU(_){await LT`
827
831
  UPDATE connections
828
832
  SET title = 'CMS MCP',
829
833
  tools = NULL,
830
834
  updated_at = CURRENT_TIMESTAMP
831
835
  WHERE app_name = '@deco/management-mcp'
832
- `.execute(_)}async function GU(_){await ZT`
836
+ `.execute(_)}async function AU(_){await LT`
833
837
  UPDATE connections
834
838
  SET title = 'Mesh MCP',
835
839
  updated_at = CURRENT_TIMESTAMP
836
840
  WHERE app_name = '@deco/management-mcp'
837
- `.execute(_)}var NC={};C(NC,{up:()=>OU,down:()=>SU});import{sql as WT}from"kysely";async function OU(_){await WT`
841
+ `.execute(_)}var mC={};C(mC,{up:()=>IU,down:()=>yU});import{sql as jT}from"kysely";async function IU(_){await jT`
838
842
  UPDATE connections
839
843
  SET title = 'Deco CMS',
840
844
  tools = NULL,
841
845
  updated_at = CURRENT_TIMESTAMP
842
846
  WHERE app_name = '@deco/management-mcp'
843
- `.execute(_)}async function SU(_){await WT`
847
+ `.execute(_)}async function yU(_){await jT`
844
848
  UPDATE connections
845
849
  SET title = 'CMS MCP',
846
850
  updated_at = CURRENT_TIMESTAMP
847
851
  WHERE app_name = '@deco/management-mcp'
848
- `.execute(_)}var mC={};C(mC,{up:()=>fU,down:()=>AU});async function fU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function AU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var TC={};C(TC,{up:()=>IU,down:()=>yU});async function IU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function yU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var EC={};C(EC,{up:()=>VU,down:()=>wU});import{sql as zC}from"kysely";async function VU(_){await zC`
852
+ `.execute(_)}var TC={};C(TC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function wU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var zC={};C(zC,{up:()=>kU,down:()=>nU});async function kU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function nU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var $C={};C($C,{up:()=>vU,down:()=>pU});import{sql as EC}from"kysely";async function vU(_){await EC`
849
853
  UPDATE organization_settings
850
854
  SET enabled_plugins = (
851
855
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -854,7 +858,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
854
858
  )
855
859
  WHERE enabled_plugins IS NOT NULL
856
860
  AND enabled_plugins LIKE '%object-storage%'
857
- `.execute(_),await zC`
861
+ `.execute(_),await EC`
858
862
  UPDATE projects
859
863
  SET enabled_plugins = (
860
864
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -863,28 +867,28 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
863
867
  )
864
868
  WHERE enabled_plugins IS NOT NULL
865
869
  AND enabled_plugins LIKE '%object-storage%'
866
- `.execute(_),await zC`
870
+ `.execute(_),await EC`
867
871
  DELETE FROM project_plugin_configs
868
872
  WHERE plugin_id = 'object-storage'
869
- `.execute(_)}async function wU(_){}var $C={};C($C,{up:()=>kU,down:()=>nU});import{sql as jT}from"kysely";async function kU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await jT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function nU(_){await jT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>vU,down:()=>pU});import{sql as UC}from"kysely";async function vU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await UC`
873
+ `.execute(_)}async function pU(_){}var UC={};C(UC,{up:()=>gU,down:()=>qU});import{sql as FT}from"kysely";async function gU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await FT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function qU(_){await FT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>iU,down:()=>cU});import{sql as PC}from"kysely";async function iU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await PC`
870
874
  ALTER TABLE connections
871
875
  ADD CONSTRAINT chk_connections_subtype
872
876
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
873
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await UC`
877
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await PC`
874
878
  UPDATE connections
875
879
  SET subtype = 'agent'
876
880
  WHERE connection_type = 'VIRTUAL'
877
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,J=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:J,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function pU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await UC`
881
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),L=N.get(z.organization_id);if(!L)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:L,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function cU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await PC`
878
882
  ALTER TABLE connections
879
883
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
880
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var PC={};C(PC,{up:()=>qU,down:()=>iU});import{sql as gU}from"kysely";async function qU(_){await gU`
884
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var XC={};C(XC,{up:()=>tU,down:()=>oU});import{sql as hU}from"kysely";async function tU(_){await hU`
881
885
  DELETE FROM connections
882
886
  WHERE connection_type = 'VIRTUAL'
883
887
  AND subtype = 'project'
884
888
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
885
- `.execute(_)}async function iU(_){}var QC={};C(QC,{up:()=>hU,down:()=>tU});import{sql as cU}from"kysely";async function hU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await cU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function tU(_){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 ZC={};C(ZC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){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(XC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(XC`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(XC`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 aU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var WC={};C(WC,{up:()=>rU,down:()=>lU});async function rU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function lU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>eU,down:()=>dU});async function eU(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function dU(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var FC={};C(FC,{up:()=>sU,down:()=>_J});import{sql as LT}from"kysely";function LC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function bU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return LC(N)}catch{return LC(_.connection_url)}if(_.title)return LC(_.title);return _.id}async function sU(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await LT`
889
+ `.execute(_)}async function oU(_){}var QC={};C(QC,{up:()=>rU,down:()=>lU});import{sql as aU}from"kysely";async function rU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await aU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function lU(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var WC={};C(WC,{up:()=>eU,down:()=>dU});import{sql as ZC}from"kysely";async function eU(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ZC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ZC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function dU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var LC={};C(LC,{up:()=>sU,down:()=>bU});async function sU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function bU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function xP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var YC={};C(YC,{up:()=>CP,down:()=>KP});import{sql as YT}from"kysely";function FC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function uP(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return FC(N)}catch{return FC(_.connection_url)}if(_.title)return FC(_.title);return _.id}async function CP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await YT`
886
890
  SELECT id, app_name, connection_url, title FROM connections
887
- `.execute(_);for(let u of x.rows){let N=bU(u);await LT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function _J(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var YC={};C(YC,{up:()=>xJ,down:()=>uJ});import{sql as Q_}from"kysely";async function xJ(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Q_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Q_`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 uJ(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Q_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await Q_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await Q_`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 DC={};C(DC,{up:()=>CJ,down:()=>KJ});async function CJ(_){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 KJ(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var HC={};C(HC,{up:()=>NJ,down:()=>mJ});import{sql as v_}from"kysely";async function NJ(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
891
+ `.execute(_);for(let u of x.rows){let N=uP(u);await YT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function KP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var DC={};C(DC,{up:()=>NP,down:()=>mP});import{sql as X_}from"kysely";async function NP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function mP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var HC={};C(HC,{up:()=>TP,down:()=>zP});async function TP(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function zP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as v_}from"kysely";async function EP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
888
892
  UPDATE threads
889
893
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
890
894
  WHERE agent_ids IS NOT NULL
@@ -894,34 +898,34 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
894
898
  `.execute(_),await v_`
895
899
  CREATE INDEX idx_threads_virtual_mcp_id
896
900
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
897
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function mJ(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
901
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function $P(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
898
902
  UPDATE threads
899
903
  SET agent_ids = CASE
900
904
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
901
905
  THEN jsonb_build_array(virtual_mcp_id)::text
902
906
  ELSE '[]'
903
907
  END
904
- `.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>TJ,down:()=>zJ});async function TJ(_){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 zJ(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var RC={};C(RC,{up:()=>EJ,down:()=>$J});async function EJ(_){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 $J(_){await _.schema.dropTable("kv").execute()}var BC={};C(BC,{up:()=>UJ,down:()=>JJ});async function UJ(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function JJ(_){await _.schema.dropIndex("idx_member_user_org").execute()}var GC={};C(GC,{up:()=>PJ,down:()=>QJ});async function PJ(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function QJ(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var OC={};C(OC,{up:()=>XJ,down:()=>ZJ});import{sql as S}from"kysely";async function XJ(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function ZJ(_){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 SC={};C(SC,{up:()=>WJ,down:()=>jJ});import{sql as b}from"kysely";async function WJ(_){await b`
908
+ `.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function PP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});async function JP(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function XP(_){await _.schema.dropTable("kv").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function ZP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var OC={};C(OC,{up:()=>WP,down:()=>LP});async function WP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function LP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var SC={};C(SC,{up:()=>jP,down:()=>FP});import{sql as S}from"kysely";async function jP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function FP(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var fC={};C(fC,{up:()=>YP,down:()=>DP});import{sql as s}from"kysely";async function YP(_){await s`
905
909
  ALTER TABLE event_subscriptions
906
910
  ALTER COLUMN enabled DROP DEFAULT
907
- `.execute(_),await b`
911
+ `.execute(_),await s`
908
912
  ALTER TABLE event_subscriptions
909
913
  ALTER COLUMN enabled TYPE boolean
910
914
  USING enabled::boolean
911
- `.execute(_),await b`
915
+ `.execute(_),await s`
912
916
  ALTER TABLE event_subscriptions
913
917
  ALTER COLUMN enabled SET DEFAULT true
914
- `.execute(_)}async function jJ(_){await b`
918
+ `.execute(_)}async function DP(_){await s`
915
919
  ALTER TABLE event_subscriptions
916
920
  ALTER COLUMN enabled DROP DEFAULT
917
- `.execute(_),await b`
921
+ `.execute(_),await s`
918
922
  ALTER TABLE event_subscriptions
919
923
  ALTER COLUMN enabled TYPE integer
920
924
  USING enabled::integer
921
- `.execute(_),await b`
925
+ `.execute(_),await s`
922
926
  ALTER TABLE event_subscriptions
923
927
  ALTER COLUMN enabled SET DEFAULT 1
924
- `.execute(_)}var fC={};C(fC,{up:()=>LJ,down:()=>FJ});import{sql as FT}from"kysely";async function LJ(_){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(FT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function FJ(_){await _.schema.dropTable("brand_context").execute()}var AC={};C(AC,{up:()=>YJ,down:()=>DJ});import{sql as YT}from"kysely";async function YJ(_){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(YT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YT`now()`)).execute()}async function DJ(_){await _.schema.dropTable("organization_domains").execute()}var IC={};C(IC,{up:()=>BJ,down:()=>GJ});import{sql as DT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),HJ={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function MJ(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(p_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(p_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function RJ(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=HJ[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function BJ(_){let x=await DT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let J=MJ($);if(T=J.structured,N=!0,Object.keys(J.extra).length>0)E.extraColors=J.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=RJ($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await DT`
928
+ `.execute(_)}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as DT}from"kysely";async function HP(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function MP(_){await _.schema.dropTable("brand_context").execute()}var IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as HT}from"kysely";async function RP(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute()}async function BP(_){await _.schema.dropTable("organization_domains").execute()}var yC={};C(yC,{up:()=>fP,down:()=>AP});import{sql as MT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),GP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function OP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(p_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(p_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function SP(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=GP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function fP(_){let x=await MT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=OP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=SP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await MT`
925
929
  UPDATE brand_context
926
930
  SET
927
931
  colors = ${T},
@@ -929,29 +933,29 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
929
933
  metadata = ${$},
930
934
  updated_at = NOW()
931
935
  WHERE id = ${u.id}
932
- `.execute(_)}}}async function GJ(_){}var yC={};C(yC,{up:()=>SJ,down:()=>fJ});import{sql as OJ}from"kysely";async function SJ(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(OJ`'{}'::jsonb`)).execute()}async function fJ(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var VC={};C(VC,{up:()=>AJ,down:()=>IJ});async function AJ(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function IJ(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var wC={};C(wC,{up:()=>yJ,down:()=>VJ});async function yJ(_){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 VJ(_){await _.schema.dropTable("sandbox_runner_state").execute()}var kC={};C(kC,{up:()=>wJ,down:()=>kJ});async function wJ(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function kJ(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var nC={};C(nC,{up:()=>nJ,down:()=>vJ});async function nJ(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function vJ(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var vC={};C(vC,{up:()=>pJ,down:()=>gJ});async function pJ(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function gJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var pC={};C(pC,{up:()=>iJ,down:()=>cJ});import{sql as HT}from"kysely";var qJ=["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 iJ(_){let x=await HT`
936
+ `.execute(_)}}}async function AP(_){}var VC={};C(VC,{up:()=>yP,down:()=>VP});import{sql as IP}from"kysely";async function yP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(IP`'{}'::jsonb`)).execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var wC={};C(wC,{up:()=>wP,down:()=>kP});async function wP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var kC={};C(kC,{up:()=>nP,down:()=>vP});async function nP(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function vP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function gP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function iP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function hP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var gC={};C(gC,{up:()=>oP,down:()=>aP});import{sql as RT}from"kysely";var tP=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function oP(_){let x=await RT`
933
937
  SELECT id, permission FROM "organizationRole"
934
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...qJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await HT`
938
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...tP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await RT`
935
939
  UPDATE "organizationRole"
936
940
  SET permission = ${z}
937
941
  WHERE id = ${u.id}
938
- `.execute(_)}}async function cJ(_){}var gC={};C(gC,{up:()=>hJ,down:()=>tJ});async function hJ(_){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 tJ(_){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 qC={};C(qC,{up:()=>oJ,down:()=>aJ});async function oJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function aJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var iC={};C(iC,{up:()=>rJ,down:()=>lJ});import{sql as X_}from"kysely";async function rJ(_){await X_`
942
+ `.execute(_)}}async function aP(_){}var qC={};C(qC,{up:()=>rP,down:()=>lP});async function rP(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function lP(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var iC={};C(iC,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function dP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var cC={};C(cC,{up:()=>sP,down:()=>bP});import{sql as Q_}from"kysely";async function sP(_){await Q_`
939
943
  UPDATE automations
940
944
  SET virtual_mcp_id = (agent::json ->> 'id')
941
945
  WHERE virtual_mcp_id IS NULL
942
- `.execute(_),await X_`
946
+ `.execute(_),await Q_`
943
947
  ALTER TABLE automations
944
948
  ALTER COLUMN virtual_mcp_id SET NOT NULL
945
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function lJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await X_`
949
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function bP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
946
950
  UPDATE automations
947
951
  SET agent = json_build_object('id', virtual_mcp_id)::text
948
- `.execute(_),await X_`
952
+ `.execute(_),await Q_`
949
953
  ALTER TABLE automations
950
954
  ALTER COLUMN agent SET NOT NULL
951
- `.execute(_),await X_`
955
+ `.execute(_),await Q_`
952
956
  ALTER TABLE automations
953
957
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
954
- `.execute(_)}var hC={};C(hC,{up:()=>sJ,reshapeSimpleMode:()=>MT,inferAutomationTier:()=>RT,down:()=>_P,__testing:()=>bJ});var eJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},dJ=["fast","smart","thinking","image","web_research"];function cC(_){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 dJ.some((N)=>(N in u))}function MT(_){if(cC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return eJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function RT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function BT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var bJ={isAlreadyReshapedSimpleMode:cC,isAlreadyReshapedAutomationModels:BT};async function sJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(cC(K))continue;let m=MT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(BT(K))continue;let m=RT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function _P(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var tC={};C(tC,{up:()=>xP,down:()=>uP});import{sql as n}from"kysely";async function xP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
958
+ `.execute(_)}var tC={};C(tC,{up:()=>CJ,reshapeSimpleMode:()=>BT,inferAutomationTier:()=>GT,down:()=>KJ,__testing:()=>uJ});var _J={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},xJ=["fast","smart","thinking","image","web_research"];function hC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return xJ.some((N)=>(N in u))}function BT(_){if(hC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return _J;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function GT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function OT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var uJ={isAlreadyReshapedSimpleMode:hC,isAlreadyReshapedAutomationModels:OT};async function CJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(hC(K))continue;let m=BT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(OT(K))continue;let m=GT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function KJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var oC={};C(oC,{up:()=>NJ,down:()=>mJ});import{sql as n}from"kysely";async function NJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
955
959
  ALTER TABLE automations
956
960
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
957
961
  `.execute(_),await n`
@@ -973,19 +977,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
973
977
  AND tool_input IS NOT NULL
974
978
  )
975
979
  )
976
- `.execute(_)}async function uP(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
980
+ `.execute(_)}async function mJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
977
981
  ALTER TABLE automations
978
982
  ALTER COLUMN virtual_mcp_id SET NOT NULL
979
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var oC={};C(oC,{up:()=>KP,down:()=>NP});import{sql as GT}from"kysely";var CP=new Set(["host","docker","agent-sandbox"]);async function KP(_){let x=await GT`
983
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var aC={};C(aC,{up:()=>zJ,down:()=>EJ});import{sql as ST}from"kysely";var TJ=new Set(["host","docker","agent-sandbox"]);async function zJ(_){let x=await ST`
980
984
  SELECT id, metadata FROM "connections"
981
985
  WHERE connection_type = 'VIRTUAL'
982
986
  AND metadata IS NOT NULL
983
987
  AND metadata LIKE '%vmMap%'
984
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}let y=X.runnerKind;if(y!==void 0&&!CP.has(y)){m=!0;continue}J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await GT`
988
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!TJ.has(y)){m=!0;continue}P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await ST`
985
989
  UPDATE "connections"
986
990
  SET metadata = ${z}
987
991
  WHERE id = ${u.id}
988
- `.execute(_)}}async function NP(_){}var aC={};C(aC,{up:()=>mP,down:()=>TP});import{sql as Z_}from"kysely";async function mP(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await Z_`
992
+ `.execute(_)}}async function EJ(_){}var rC={};C(rC,{up:()=>$J,down:()=>UJ});import{sql as Z_}from"kysely";async function $J(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await Z_`
989
993
  CREATE INDEX async_research_jobs_active_idx
990
994
  ON async_research_jobs (status, last_polled_at)
991
995
  WHERE status IN ('pending', 'polling')
@@ -993,24 +997,24 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
993
997
  ALTER TABLE async_research_jobs
994
998
  ADD CONSTRAINT chk_async_research_jobs_status
995
999
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
996
- `.execute(_)}async function TP(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var rC={};C(rC,{up:()=>zP,down:()=>EP});async function zP(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function EP(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var lC={};C(lC,{up:()=>$P,down:()=>UP});import{sql as s}from"kysely";async function $P(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
1000
+ `.execute(_)}async function UJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});async function PJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function JJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as b}from"kysely";async function XJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).execute(),await b`
997
1001
  ALTER TABLE secrets
998
1002
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
999
- `.execute(_),await s`
1003
+ `.execute(_),await b`
1000
1004
  ALTER TABLE secrets
1001
1005
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
1002
1006
  (scope = 'user' AND user_id IS NOT NULL)
1003
1007
  OR (scope = 'organization' AND user_id IS NULL)
1004
1008
  )
1005
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
1009
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await b`
1006
1010
  CREATE UNIQUE INDEX idx_secrets_user_name
1007
1011
  ON secrets (organization_id, user_id, lower(name))
1008
1012
  WHERE scope = 'user'
1009
- `.execute(_),await s`
1013
+ `.execute(_),await b`
1010
1014
  CREATE UNIQUE INDEX idx_secrets_org_name
1011
1015
  ON secrets (organization_id, lower(name))
1012
1016
  WHERE scope = 'organization'
1013
- `.execute(_)}async function UP(_){await _.schema.dropTable("secrets").execute()}var eC={};C(eC,{up:()=>JP,down:()=>PP});async function JP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function PP(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var dC={};C(dC,{up:()=>XP,down:()=>ZP});import{sql as QP}from"kysely";async function XP(_){await QP`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function ZP(_){}var bC={};C(bC,{up:()=>WP,down:()=>jP});import{sql as g_}from"kysely";async function WP(_){await g_`
1017
+ `.execute(_)}async function QJ(_){await _.schema.dropTable("secrets").execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function WJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var sC={};C(sC,{up:()=>jJ,down:()=>FJ});import{sql as LJ}from"kysely";async function jJ(_){await LJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function FJ(_){}var bC={};C(bC,{up:()=>YJ,down:()=>DJ});import{sql as g_}from"kysely";async function YJ(_){await g_`
1014
1018
  ALTER TABLE sandbox_runner_state
1015
1019
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1016
1020
  `.execute(_),await g_`
@@ -1048,7 +1052,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1048
1052
  EXCEPTION WHEN undefined_table THEN
1049
1053
  NULL;
1050
1054
  END; $$
1051
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function jP(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
1055
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function DJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
1052
1056
  ALTER TABLE sandbox_runner_state
1053
1057
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1054
1058
  `.execute(_),await g_`
@@ -1086,7 +1090,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1086
1090
  EXCEPTION WHEN undefined_table THEN
1087
1091
  NULL;
1088
1092
  END; $$
1089
- `.execute(_)}var sC={};C(sC,{up:()=>LP,down:()=>FP});import{sql as OT}from"kysely";async function LP(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await OT`
1093
+ `.execute(_)}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as fT}from"kysely";async function HJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await fT`
1090
1094
  DO $$ BEGIN
1091
1095
  UPDATE virtualmcps v
1092
1096
  SET metadata = jsonb_set(
@@ -1125,7 +1129,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1125
1129
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1126
1130
  NULL;
1127
1131
  END; $$
1128
- `.execute(_)}async function FP(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await OT`
1132
+ `.execute(_)}async function MJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await fT`
1129
1133
  DO $$ BEGIN
1130
1134
  UPDATE virtualmcps v
1131
1135
  SET metadata = jsonb_set(
@@ -1158,7 +1162,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1158
1162
  EXCEPTION WHEN undefined_table THEN
1159
1163
  NULL;
1160
1164
  END; $$
1161
- `.execute(_)}var _K={};C(_K,{up:()=>YP,down:()=>DP});import{sql as ST}from"kysely";async function YP(_){await ST`
1165
+ `.execute(_)}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as AT}from"kysely";async function RJ(_){await AT`
1162
1166
  UPDATE connections c
1163
1167
  SET metadata = (
1164
1168
  jsonb_set(
@@ -1202,7 +1206,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1202
1206
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1203
1207
  WHERE entry ? 'vmId'
1204
1208
  );
1205
- `.execute(_),await ST`
1209
+ `.execute(_),await AT`
1206
1210
  UPDATE connections c
1207
1211
  SET metadata = (
1208
1212
  jsonb_set(
@@ -1256,10 +1260,10 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1256
1260
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1257
1261
  WHERE inner_entry ? 'runnerKind'
1258
1262
  );
1259
- `.execute(_)}async function DP(_){}var xK={};C(xK,{up:()=>MP,down:()=>RP});import{sql as HP}from"kysely";async function MP(_){await HP`
1263
+ `.execute(_)}async function BJ(_){}var uK={};C(uK,{up:()=>OJ,down:()=>SJ});import{sql as GJ}from"kysely";async function OJ(_){await GJ`
1260
1264
  DELETE FROM ai_provider_keys
1261
1265
  WHERE provider_id IN ('claude-code', 'codex')
1262
- `.execute(_)}async function RP(_){}var uK={};C(uK,{up:()=>BP,down:()=>GP});import{sql as q_}from"kysely";async function BP(_){await q_`
1266
+ `.execute(_)}async function SJ(_){}var CK={};C(CK,{up:()=>fJ,down:()=>AJ});import{sql as q_}from"kysely";async function fJ(_){await q_`
1263
1267
  UPDATE sandbox_runner_state
1264
1268
  SET sandbox_provider_kind = 'desktop'
1265
1269
  WHERE sandbox_provider_kind = 'remote-user'
@@ -1357,13 +1361,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1357
1361
  UPDATE threads
1358
1362
  SET sandbox_provider_kind = 'desktop'
1359
1363
  WHERE sandbox_provider_kind = 'remote-user'
1360
- `.execute(_)}async function GP(_){}var CK={};C(CK,{up:()=>OP,down:()=>SP});import{sql as W_}from"kysely";async function OP(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function SP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var KK={};C(KK,{up:()=>fP,down:()=>AP});import{sql as fT}from"kysely";async function fP(_){await fT`
1364
+ `.execute(_)}async function AJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as W_}from"kysely";async function IJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function yJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as IT}from"kysely";async function VJ(_){await IT`
1361
1365
  ALTER TABLE organization_domains
1362
1366
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1363
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function AP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await fT`
1367
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function wJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await IT`
1364
1368
  ALTER TABLE organization_domains
1365
1369
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1366
- `.execute(_)}var NK={};C(NK,{up:()=>IP,down:()=>yP});import{sql as i_}from"kysely";async function IP(_){await i_`
1370
+ `.execute(_)}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as i_}from"kysely";async function kJ(_){await i_`
1367
1371
  UPDATE sandbox_runner_state
1368
1372
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1369
1373
  WHEN 'docker' THEN 'local-docker'
@@ -1452,19 +1456,19 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1452
1456
  WHERE c.connection_type = 'VIRTUAL'
1453
1457
  AND c.metadata IS NOT NULL
1454
1458
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1455
- `.execute(_)}async function yP(_){}var mK={};C(mK,{up:()=>wP,down:()=>kP});import{sql as AT}from"kysely";var VP=["GLOBAL_SEARCH"];async function wP(_){let x=await AT`
1459
+ `.execute(_)}async function nJ(_){}var TK={};C(TK,{up:()=>pJ,down:()=>gJ});import{sql as yT}from"kysely";var vJ=["GLOBAL_SEARCH"];async function pJ(_){let x=await yT`
1456
1460
  SELECT id, permission FROM "organizationRole"
1457
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...VP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await AT`
1461
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...vJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await yT`
1458
1462
  UPDATE "organizationRole"
1459
1463
  SET permission = ${z}
1460
1464
  WHERE id = ${u.id}
1461
- `.execute(_)}}async function kP(_){}var zK={};C(zK,{up:()=>nP,down:()=>vP});import{sql as TK}from"kysely";async function nP(_){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(TK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(TK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await TK`
1465
+ `.execute(_)}}async function gJ(_){}var EK={};C(EK,{up:()=>qJ,down:()=>iJ});import{sql as zK}from"kysely";async function qJ(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await zK`
1462
1466
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1463
1467
  ON org_file_configs (organization_id, lower(name))
1464
- `.execute(_)}async function vP(_){await _.schema.dropTable("org_file_configs").execute()}var EK={};C(EK,{up:()=>pP,down:()=>gP});import{sql as v}from"kysely";async function pP(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1468
+ `.execute(_)}async function iJ(_){await _.schema.dropTable("org_file_configs").execute()}var $K={};C($K,{up:()=>cJ,down:()=>hJ});import{sql as v}from"kysely";async function cJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1465
1469
  ALTER TABLE automations
1466
1470
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1467
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function gP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1471
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function hJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1468
1472
  ALTER TABLE automations
1469
1473
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1470
1474
  `.execute(_),await v`
@@ -1486,25 +1490,25 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1486
1490
  AND tool_input IS NOT NULL
1487
1491
  )
1488
1492
  )
1489
- `.execute(_)}var $K={};C($K,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function iP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>cP,down:()=>hP});import{sql as UK}from"kysely";var c_="local-docker";async function cP(_){await UK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await UK`
1493
+ `.execute(_)}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});async function tJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function oJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>aJ,down:()=>rJ});import{sql as PK}from"kysely";var c_="local-docker";async function aJ(_){await PK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await PK`
1490
1494
  SELECT id, metadata FROM "connections"
1491
1495
  WHERE connection_type = 'VIRTUAL'
1492
1496
  AND metadata IS NOT NULL
1493
1497
  AND metadata LIKE ${"%"+c_+"%"}
1494
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let J={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){m=!0;continue}if(c_ in X){m=!0;let y={...X};if(delete y[c_],Object.keys(y).length>0)J[j]=y}else J[j]=X}if(Object.keys(J).length>0)T[E]=J;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await UK`
1498
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(c_ in Q){m=!0;let y={...Q};if(delete y[c_],Object.keys(y).length>0)P[L]=y}else P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await PK`
1495
1499
  UPDATE "connections"
1496
1500
  SET metadata = ${z}
1497
1501
  WHERE id = ${u.id}
1498
- `.execute(_)}}async function hP(_){}var PK={};C(PK,{up:()=>tP,down:()=>oP});import{sql as h_}from"kysely";async function tP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function oP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function rP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var XK={};C(XK,{up:()=>lP,down:()=>eP});async function lP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function eP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var ZK={};C(ZK,{up:()=>dP,down:()=>bP});async function dP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function bP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var WK={};C(WK,{up:()=>sP,down:()=>_Q});async function sP(_){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 _Q(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>xQ,down:()=>uQ});async function xQ(_){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 uQ(_){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 FK={};C(FK,{up:()=>KQ,down:()=>NQ});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function LK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function CQ(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let J={};for(let[j,X]of Object.entries($)){if(j===x){if(N=!0,!(u in $))J[u]=LK(X,x,u);else if(!t_($[u])&&t_(X))J[u]=LK(X,x,u);continue}let y=LK(X,x,u);if(y!==X)N=!0;if(j===u&&j in J&&t_(J[j])&&!t_(y))continue;J[j]=y}z[E]=J}K[m]=z}return{sandboxMap:K,changed:N}}async function IT(_,x,u){let N=await k`
1502
+ `.execute(_)}}async function rJ(_){}var XK={};C(XK,{up:()=>lJ,down:()=>eJ});import{sql as h_}from"kysely";async function lJ(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function eJ(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>dJ,down:()=>sJ});async function dJ(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function sJ(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var ZK={};C(ZK,{up:()=>bJ,down:()=>_X});async function bJ(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function _X(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var LK={};C(LK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function KX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function mX(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var YK={};C(YK,{up:()=>zX,down:()=>EX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function FK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function TX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[L,Q]of Object.entries($)){if(L===x){if(N=!0,!(u in $))P[u]=FK(Q,x,u);else if(!t_($[u])&&t_(Q))P[u]=FK(Q,x,u);continue}let y=FK(Q,x,u);if(y!==Q)N=!0;if(L===u&&L in P&&t_(P[L])&&!t_(y))continue;P[L]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function VT(_,x,u){let N=await k`
1499
1503
  SELECT id, metadata FROM connections
1500
1504
  WHERE connection_type = 'VIRTUAL'
1501
1505
  AND metadata IS NOT NULL
1502
1506
  AND metadata LIKE ${"%"+x+"%"}
1503
- `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=CQ(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1507
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=TX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1504
1508
  UPDATE connections
1505
1509
  SET metadata = ${JSON.stringify(m)}
1506
1510
  WHERE id = ${K.id}
1507
- `.execute(_)}}async function KQ(_){await k`
1511
+ `.execute(_)}}async function zX(_){await k`
1508
1512
  UPDATE threads
1509
1513
  SET sandbox_provider_kind = ${A}
1510
1514
  WHERE sandbox_provider_kind = ${f}
@@ -1533,7 +1537,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1533
1537
  UPDATE sandbox_runner_state
1534
1538
  SET sandbox_provider_kind = ${A}
1535
1539
  WHERE sandbox_provider_kind = ${f}
1536
- `.execute(_),await IT(_,f,A)}async function NQ(_){await k`
1540
+ `.execute(_),await VT(_,f,A)}async function EX(_){await k`
1537
1541
  UPDATE threads
1538
1542
  SET sandbox_provider_kind = ${f}
1539
1543
  WHERE sandbox_provider_kind = ${A}
@@ -1562,7 +1566,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1562
1566
  UPDATE sandbox_runner_state
1563
1567
  SET sandbox_provider_kind = ${f}
1564
1568
  WHERE sandbox_provider_kind = ${A}
1565
- `.execute(_),await IT(_,A,f)}var YK={};C(YK,{up:()=>mQ,down:()=>TQ});import{sql as g}from"kysely";async function mQ(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1569
+ `.execute(_),await VT(_,A,f)}var DK={};C(DK,{up:()=>$X,down:()=>UX});import{sql as g}from"kysely";async function $X(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1566
1570
  CREATE INDEX idx_org_fs_entry_parent
1567
1571
  ON org_fs_entry (organization_id, volume, parent)
1568
1572
  WHERE deleted_at IS NULL
@@ -1570,7 +1574,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1570
1574
  CREATE INDEX idx_org_fs_entry_usage
1571
1575
  ON org_fs_entry (organization_id, volume, size)
1572
1576
  WHERE kind = 'file' AND deleted_at IS NULL
1573
- `.execute(_)}async function TQ(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var DK={};C(DK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function EQ(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var HK={};C(HK,{up:()=>$Q,down:()=>UQ});import{sql as yT}from"kysely";async function $Q(_){await yT`
1577
+ `.execute(_)}async function UX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var HK={};C(HK,{up:()=>PX,down:()=>JX});async function PX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function JX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as wT}from"kysely";async function XX(_){await wT`
1574
1578
  INSERT INTO "organization" (id, name, slug, "createdAt")
1575
1579
  SELECT
1576
1580
  'org_orgfs_public_skills',
@@ -1584,13 +1588,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1584
1588
  END,
1585
1589
  now()
1586
1590
  ON CONFLICT (id) DO NOTHING
1587
- `.execute(_)}async function UQ(_){await yT`
1591
+ `.execute(_)}async function QX(_){await wT`
1588
1592
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1589
- `.execute(_)}var MK={};C(MK,{up:()=>JQ,down:()=>PQ});async function JQ(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function PQ(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var RK={};C(RK,{up:()=>QQ,down:()=>XQ});import{sql as VT}from"kysely";async function QQ(_){await VT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function XQ(_){await VT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var BK={};C(BK,{up:()=>WQ,down:()=>jQ});import{sql as ZQ}from"kysely";async function WQ(_){await ZQ`
1593
+ `.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var BK={};C(BK,{up:()=>LX,down:()=>jX});import{sql as kT}from"kysely";async function LX(_){await kT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function jX(_){await kT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var GK={};C(GK,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){await FX`
1590
1594
  UPDATE downstream_tokens
1591
1595
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1592
1596
  WHERE "expiresAt" IS NULL
1593
- `.execute(_)}async function jQ(_){}var GK={};C(GK,{up:()=>LQ,down:()=>FQ});async function LQ(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function FQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var OK={};C(OK,{up:()=>YQ,down:()=>DQ});async function YQ(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function DQ(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var SK={};C(SK,{up:()=>HQ,down:()=>MQ});async function HQ(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function MQ(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var fK={};C(fK,{up:()=>RQ,down:()=>BQ});async function RQ(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function BQ(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var AK={};C(AK,{up:()=>GQ,down:()=>OQ});async function GQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function OQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var IK={};C(IK,{up:()=>SQ,down:()=>fQ});import{sql as wT}from"kysely";async function SQ(_){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(wT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function fQ(_){await _.schema.dropTable("org_sites").execute()}var yK={};C(yK,{up:()=>AQ,down:()=>IQ});async function AQ(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function IQ(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var VK={};C(VK,{up:()=>yQ,down:()=>VQ});import{sql as R}from"kysely";async function yQ(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1597
+ `.execute(_)}async function DX(_){}var OK={};C(OK,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function MX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var SK={};C(SK,{up:()=>RX,down:()=>BX});async function RX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function BX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function OX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function fX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});import{sql as nT}from"kysely";async function yX(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(nT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function VX(_){await _.schema.dropTable("org_sites").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function kX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as R}from"kysely";async function nX(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1594
1598
  UPDATE organization_domains
1595
1599
  SET
1596
1600
  id = gen_random_uuid()::text,
@@ -1599,18 +1603,18 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1599
1603
  verification_method = 'email',
1600
1604
  verified_at = created_at
1601
1605
  WHERE id IS NULL
1602
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function VQ(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1606
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function vX(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1603
1607
  UPDATE organization_domains
1604
1608
  SET auto_join_enabled = (join_mode = 'auto')
1605
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var wK={};C(wK,{up:()=>wQ,down:()=>kQ});import{sql as o_}from"kysely";async function wQ(_){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_`
1609
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var kK={};C(kK,{up:()=>pX,down:()=>gX});import{sql as o_}from"kysely";async function pX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(o_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).execute(),await o_`
1606
1610
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1607
1611
  ON organization_join_requests (organization_id, user_id)
1608
1612
  WHERE status = 'pending'
1609
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function kQ(_){await _.schema.dropTable("organization_join_requests").execute()}var kK={};C(kK,{up:()=>nQ,down:()=>vQ});async function nQ(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var nK={};C(nK,{up:()=>pQ,down:()=>gQ});async function pQ(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function gQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var gK={};C(gK,{up:()=>cQ,splitWebResearchTier:()=>pK,down:()=>hQ,__testing:()=>iQ});function qQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function vK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function pK(_){if(!_||vK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(qQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var iQ={splitWebResearchTier:pK,isAlreadySplit:vK};async function cQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(vK(N))continue;let K=pK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function hQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var qK={};C(qK,{up:()=>tQ,down:()=>oQ});import{sql as j_}from"kysely";async function tQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
1613
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function gX(_){await _.schema.dropTable("organization_join_requests").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});async function qX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function iX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var vK={};C(vK,{up:()=>cX,down:()=>hX});async function cX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function hX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var qK={};C(qK,{up:()=>aX,splitWebResearchTier:()=>gK,down:()=>rX,__testing:()=>oX});function tX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function pK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function gK(_){if(!_||pK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(tX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var oX={splitWebResearchTier:gK,isAlreadySplit:pK};async function aX(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(pK(N))continue;let K=gK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function rX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var iK={};C(iK,{up:()=>lX,down:()=>eX});import{sql as L_}from"kysely";async function lX(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await L_`
1610
1614
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1611
1615
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1612
1616
  WHERE revoked_at IS NULL
1613
- `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function oQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var iK={};C(iK,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function rQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var cK={};C(cK,{up:()=>lQ,down:()=>eQ});import{sql as t}from"kysely";async function lQ(_){await t`
1617
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function eX(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var cK={};C(cK,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function sX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var hK={};C(hK,{up:()=>bX,down:()=>_Q});import{sql as t}from"kysely";async function bX(_){await t`
1614
1618
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1615
1619
  RETURNS jsonb AS $fn$
1616
1620
  BEGIN
@@ -1669,7 +1673,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1669
1673
  BEFORE INSERT ON connection_aggregations
1670
1674
  FOR EACH ROW
1671
1675
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1672
- `.execute(_)}async function eQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var tK={};C(tK,{up:()=>dQ,down:()=>bQ});import{sql as hK}from"kysely";async function dQ(_){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(hK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hK`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(hK`false`)).execute()}async function bQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var oK={};C(oK,{up:()=>sQ,down:()=>_X});async function sQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function _X(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var aK={};C(aK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function uX(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var rK={};C(rK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function KX(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var lK={};C(lK,{up:()=>mX,down:()=>TX});import{sql as NX}from"kysely";async function mX(_){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(NX`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 TX(_){await _.schema.dropTable("task_board_item_threads").execute()}var eK={};C(eK,{up:()=>zX,down:()=>EX});async function zX(_){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 EX(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var dK={};C(dK,{up:()=>UX,down:()=>JX});import{sql as $X}from"kysely";async function UX(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($X`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 JX(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>QX,down:()=>XX});import{sql as PX}from"kysely";async function QX(_){await PX`
1676
+ `.execute(_)}async function _Q(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var oK={};C(oK,{up:()=>xQ,down:()=>uQ});import{sql as tK}from"kysely";async function xQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(tK`false`)).execute()}async function uQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var aK={};C(aK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function KQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});async function NQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var eK={};C(eK,{up:()=>$Q,down:()=>UQ});import{sql as EQ}from"kysely";async function $Q(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(EQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function UQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var dK={};C(dK,{up:()=>PQ,down:()=>JQ});async function PQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function JQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var sK={};C(sK,{up:()=>QQ,down:()=>ZQ});import{sql as XQ}from"kysely";async function QQ(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(XQ`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function ZQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>LQ,down:()=>jQ});import{sql as WQ}from"kysely";async function LQ(_){await WQ`
1673
1677
  DELETE FROM member
1674
1678
  WHERE id IN (
1675
1679
  SELECT id FROM (
@@ -1688,38 +1692,38 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1688
1692
  ) ranked
1689
1693
  WHERE ranked.rn > 1
1690
1694
  )
1691
- `.execute(_)}async function XX(_){}var sK={};C(sK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function WX(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var _N={};C(_N,{up:()=>jX,down:()=>LX});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 LX(_){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 xN={};C(xN,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){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(FX`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 DX(_){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 uN={};C(uN,{up:()=>MX,down:()=>RX});import{sql as HX}from"kysely";async function MX(_){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(HX`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 RX(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var CN={};C(CN,{up:()=>BX,down:()=>GX});import{sql as a_}from"kysely";async function BX(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function GX(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var KN={};C(KN,{up:()=>OX,down:()=>SX});import{sql as r_}from"kysely";async function OX(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
1695
+ `.execute(_)}async function jQ(_){}var _N={};C(_N,{up:()=>FQ,down:()=>YQ});async function FQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function YQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});async function DQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function HQ(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var uN={};C(uN,{up:()=>RQ,down:()=>BQ});import{sql as MQ}from"kysely";async function RQ(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(MQ`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function BQ(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var CN={};C(CN,{up:()=>OQ,down:()=>SQ});import{sql as GQ}from"kysely";async function OQ(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(GQ`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function SQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var KN={};C(KN,{up:()=>fQ,down:()=>AQ});import{sql as a_}from"kysely";async function fQ(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function AQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as r_}from"kysely";async function IQ(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
1692
1696
  insert into organization_billing (organization_id, legacy)
1693
1697
  select id, true from organization
1694
1698
  on conflict (organization_id) do nothing
1695
- `.execute(_)}async function SX(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var NN={};C(NN,{up:()=>fX,down:()=>AX});import{sql as kT}from"kysely";async function fX(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(kT`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(kT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function AX(_){await _.schema.dropTable("seat_change_log").execute()}var mN={};C(mN,{up:()=>IX,down:()=>yX});async function IX(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function yX(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var TN={};C(TN,{up:()=>VX,down:()=>wX});import{sql as nT}from"kysely";async function VX(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await nT`
1699
+ `.execute(_)}async function yQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as vT}from"kysely";async function VQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(vT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function wQ(_){await _.schema.dropTable("seat_change_log").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});async function kQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function nQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as pT}from"kysely";async function vQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await pT`
1696
1700
  create unique index organization_billing_stripe_subscription_id_uq
1697
1701
  on organization_billing (stripe_subscription_id)
1698
1702
  where stripe_subscription_id is not null
1699
- `.execute(_)}async function wX(_){await nT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var zN={};C(zN,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function nX(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var EN={};C(EN,{up:()=>vX,down:()=>pX});import{sql as vT}from"kysely";async function vX(_){await vT`
1703
+ `.execute(_)}async function pQ(_){await pT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as gT}from"kysely";async function iQ(_){await gT`
1700
1704
  create index idx_org_billing_benefits_pending
1701
1705
  on organization_billing (updated_at)
1702
1706
  where benefits_reference_id is not null
1703
- `.execute(_)}async function pX(_){await vT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var $N={};C($N,{up:()=>gX,down:()=>qX});import{sql as pT}from"kysely";async function gX(_){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(pT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`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 qX(_){await _.schema.dropTable("user_model_preferences").execute()}var UN={};C(UN,{up:()=>iX,down:()=>cX});async function iX(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function cX(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>hX,down:()=>tX});async function hX(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function tX(_){}var PN={};C(PN,{up:()=>oX,down:()=>aX});import{sql as gT}from"kysely";async function oX(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await gT`
1707
+ `.execute(_)}async function cQ(_){await gT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});import{sql as qT}from"kysely";async function hQ(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function tQ(_){await _.schema.dropTable("user_model_preferences").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function lQ(_){}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});import{sql as iT}from"kysely";async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await iT`
1704
1708
  UPDATE organization_settings
1705
1709
  SET flags = jsonb_build_object('reports_only', reports_only)
1706
1710
  WHERE reports_only IS NOT NULL
1707
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function aX(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await gT`
1711
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await iT`
1708
1712
  UPDATE organization_settings
1709
1713
  SET reports_only = (flags ->> 'reports_only')::boolean
1710
1714
  WHERE flags ? 'reports_only'
1711
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>lX,down:()=>eX});import{sql as rX}from"kysely";async function lX(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await rX`
1715
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>_Z});import{sql as sQ}from"kysely";async function bQ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await sQ`
1712
1716
  update task_board_items
1713
1717
  set sort_order = -extract(epoch from created_at)
1714
- `.execute(_)}async function eX(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var XN={};C(XN,{up:()=>dX,down:()=>bX,ACTIONS:()=>qT});import{sql as l_}from"kysely";var qT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function dX(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(qT.map((x)=>l_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function bX(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var WN={};C(WN,{up:()=>sX,down:()=>_Z,ACTIONS:()=>ZN});import{sql as L_}from"kysely";var ZN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function sX(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await iT(_,ZN)}async function _Z(_){await iT(_,ZN.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 iT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var LN={};C(LN,{up:()=>uZ,down:()=>CZ});import{sql as cT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function xZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function uZ(_){let x=await cT`
1718
+ `.execute(_)}async function _Z(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var ZN={};C(ZN,{up:()=>xZ,down:()=>uZ,ACTIONS:()=>cT});import{sql as l_}from"kysely";var cT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function xZ(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(cT.map((x)=>l_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function uZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var LN={};C(LN,{up:()=>CZ,down:()=>KZ,ACTIONS:()=>WN});import{sql as j_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function CZ(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await hT(_,WN)}async function KZ(_){await hT(_,WN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function hT(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var FN={};C(FN,{up:()=>mZ,down:()=>TZ});import{sql as tT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function NZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function mZ(_){let x=await tT`
1715
1719
  SELECT id, app_name, connection_url, title, slug
1716
1720
  FROM connections
1717
1721
  WHERE connection_type != 'VIRTUAL'
1718
- `.execute(_),u=0;for(let N of x.rows){let K=xZ(N);if(K===N.slug)continue;await cT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function CZ(){}var FN={};C(FN,{up:()=>NZ,down:()=>mZ});import{sql as KZ}from"kysely";async function NZ(_){await KZ`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 mZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var DN={};C(DN,{up:()=>zZ,down:()=>EZ,ACTIONS:()=>YN});import{sql as e_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],TZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function zZ(_){await hT(_,YN)}async function EZ(_){await hT(_,YN.filter((x)=>!TZ.has(x)))}async function hT(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var HN={};C(HN,{up:()=>UZ,down:()=>JZ});import{sql as $Z}from"kysely";async function UZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($Z`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 JZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var RN={};C(RN,{up:()=>QZ,down:()=>XZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["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"],PZ=new Set(["merge_conflict_resolution"]);async function QZ(_){await tT(_,MN)}async function XZ(_){await tT(_,MN.filter((x)=>!PZ.has(x)))}async function tT(_,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 BN={};C(BN,{up:()=>ZZ,down:()=>WZ});import{sql as F_}from"kysely";async function ZZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function WZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await F_`
1722
+ `.execute(_),u=0;for(let N of x.rows){let K=NZ(N);if(K===N.slug)continue;await tT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function TZ(){}var YN={};C(YN,{up:()=>EZ,down:()=>$Z});import{sql as zZ}from"kysely";async function EZ(_){await zZ`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function $Z(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var HN={};C(HN,{up:()=>PZ,down:()=>JZ,ACTIONS:()=>DN});import{sql as e_}from"kysely";var DN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],UZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function PZ(_){await oT(_,DN)}async function JZ(_){await oT(_,DN.filter((x)=>!UZ.has(x)))}async function oT(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var MN={};C(MN,{up:()=>QZ,down:()=>ZZ});import{sql as XZ}from"kysely";async function QZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(XZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function ZZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var BN={};C(BN,{up:()=>LZ,down:()=>jZ,ACTIONS:()=>RN});import{sql as d_}from"kysely";var RN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],WZ=new Set(["merge_conflict_resolution"]);async function LZ(_){await aT(_,RN)}async function jZ(_){await aT(_,RN.filter((x)=>!WZ.has(x)))}async function aT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var GN={};C(GN,{up:()=>FZ,down:()=>YZ});import{sql as F_}from"kysely";async function FZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function YZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await F_`
1719
1723
  create index idx_org_billing_benefits_pending
1720
1724
  on organization_billing (updated_at)
1721
1725
  where benefits_reference_id is not null
1722
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute()}var GN={};C(GN,{up:()=>jZ,down:()=>LZ});import{sql as b_}from"kysely";async function jZ(_){await b_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await b_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function LZ(_){await b_`
1726
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ});import{sql as s_}from"kysely";async function DZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function HZ(_){await s_`
1723
1727
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1724
1728
  RETURNS trigger AS $fn$
1725
1729
  BEGIN
@@ -1740,40 +1744,40 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1740
1744
  RETURN NEW;
1741
1745
  END;
1742
1746
  $fn$ LANGUAGE plpgsql;
1743
- `.execute(_),await b_`
1747
+ `.execute(_),await s_`
1744
1748
  CREATE TRIGGER trg_repo_github_child_single_parent
1745
1749
  BEFORE INSERT ON connection_aggregations
1746
1750
  FOR EACH ROW
1747
1751
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1748
- `.execute(_)}var ON={};C(ON,{up:()=>FZ,down:()=>YZ});import{sql as oT}from"kysely";async function FZ(_){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(oT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(oT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function YZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var SN={};C(SN,{up:()=>DZ,down:()=>HZ});import{sql as aT}from"kysely";async function DZ(_){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(aT`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(aT`now()`)).execute()}async function HZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var AN={};C(AN,{up:()=>MZ,down:()=>RZ});import{sql as fN}from"kysely";async function MZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(fN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await fN`
1752
+ `.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as rT}from"kysely";async function MZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(rT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(rT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function RZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as lT}from"kysely";async function BZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(lT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(lT`now()`)).execute()}async function GZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var IN={};C(IN,{up:()=>OZ,down:()=>SZ});import{sql as AN}from"kysely";async function OZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(AN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await AN`
1749
1753
  create index idx_task_quota_claims_org_period_live
1750
1754
  on task_quota_claims (organization_id, period_key)
1751
1755
  where state <> 'released'
1752
- `.execute(_)}async function RZ(_){await fN`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 IN={};C(IN,{up:()=>BZ,down:()=>GZ});async function BZ(_){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 GZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var yN={};C(yN,{up:()=>OZ,down:()=>SZ});async function OZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function SZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var VN={};C(VN,{up:()=>fZ,down:()=>AZ});import{sql as rT}from"kysely";async function fZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(rT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(rT`monthly_task_executions > 0`)).execute()}async function AZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var wN={};C(wN,{up:()=>yZ,down:()=>VZ});import{sql as IZ}from"kysely";async function yZ(_){await IZ`
1756
+ `.execute(_)}async function SZ(_){await AN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var yN={};C(yN,{up:()=>fZ,down:()=>AZ});async function fZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function AZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});async function IZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function yZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var wN={};C(wN,{up:()=>VZ,down:()=>wZ});import{sql as eT}from"kysely";async function VZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(eT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(eT`monthly_task_executions > 0`)).execute()}async function wZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var kN={};C(kN,{up:()=>nZ,down:()=>vZ});import{sql as kZ}from"kysely";async function nZ(_){await kZ`
1753
1757
  CREATE INDEX idx_task_board_items_pending_review
1754
1758
  ON task_board_items (updated_at, id)
1755
1759
  WHERE status = 'in_review'
1756
1760
  AND assignee_id = 'super-agent'
1757
1761
  AND dismissed_at IS NULL
1758
- `.execute(_)}async function VZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var kN={};C(kN,{up:()=>wZ,down:()=>kZ});import{sql as lT}from"kysely";async function wZ(_){await lT`
1762
+ `.execute(_)}async function vZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var nN={};C(nN,{up:()=>pZ,down:()=>gZ});import{sql as dT}from"kysely";async function pZ(_){await dT`
1759
1763
  ALTER TABLE task_board_items
1760
1764
  ADD COLUMN last_swept_at timestamptz
1761
- `.execute(_)}async function kZ(_){await lT`
1765
+ `.execute(_)}async function gZ(_){await dT`
1762
1766
  ALTER TABLE task_board_items
1763
1767
  DROP COLUMN last_swept_at
1764
- `.execute(_)}var nN={};C(nN,{up:()=>nZ,down:()=>vZ});import{sql as s_}from"kysely";async function nZ(_){await s_`
1768
+ `.execute(_)}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as b_}from"kysely";async function qZ(_){await b_`
1765
1769
  ALTER TABLE task_board_items
1766
1770
  ADD COLUMN retry_at timestamptz,
1767
1771
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1768
- `.execute(_),await s_`
1772
+ `.execute(_),await b_`
1769
1773
  CREATE INDEX idx_task_board_items_retry_due
1770
1774
  ON task_board_items (retry_at)
1771
1775
  WHERE retry_at IS NOT NULL
1772
- `.execute(_)}async function vZ(_){await s_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await s_`
1776
+ `.execute(_)}async function iZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1773
1777
  ALTER TABLE task_board_items
1774
1778
  DROP COLUMN retry_at,
1775
1779
  DROP COLUMN retry_attempts
1776
- `.execute(_)}var pN={};C(pN,{up:()=>pZ,down:()=>gZ});import{sql as vN}from"kysely";async function pZ(_){await vN`
1780
+ `.execute(_)}var gN={};C(gN,{up:()=>cZ,down:()=>hZ});import{sql as pN}from"kysely";async function cZ(_){await pN`
1777
1781
  CREATE TABLE org_repo_sync (
1778
1782
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1779
1783
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1791,11 +1795,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1791
1795
  updated_at timestamptz NOT NULL DEFAULT now(),
1792
1796
  UNIQUE (organization_id, volume)
1793
1797
  )
1794
- `.execute(_),await vN`
1798
+ `.execute(_),await pN`
1795
1799
  CREATE INDEX idx_org_repo_sync_enabled
1796
1800
  ON org_repo_sync (organization_id)
1797
1801
  WHERE enabled
1798
- `.execute(_)}async function gZ(_){await vN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var qN={};C(qN,{up:()=>iZ,down:()=>cZ,ACTIONS:()=>gN});import{sql as _x}from"kysely";var gN=["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"],qZ=new Set(["merge_failed"]);async function iZ(_){await eT(_,gN)}async function cZ(_){await eT(_,gN.filter((x)=>!qZ.has(x)))}async function eT(_,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 iN={};C(iN,{up:()=>hZ,down:()=>tZ});async function hZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function tZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var cN={};C(cN,{up:()=>oZ,down:()=>aZ});import{sql as x_}from"kysely";async function oZ(_){await x_`
1802
+ `.execute(_)}async function hZ(_){await pN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var iN={};C(iN,{up:()=>oZ,down:()=>aZ,ACTIONS:()=>qN});import{sql as _x}from"kysely";var qN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],tZ=new Set(["merge_failed"]);async function oZ(_){await sT(_,qN)}async function aZ(_){await sT(_,qN.filter((x)=>!tZ.has(x)))}async function sT(_,x){await _x`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await _x`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${_x.join(x.map((u)=>_x.lit(u)))}))`.execute(_)}var cN={};C(cN,{up:()=>rZ,down:()=>lZ});async function rZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function lZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var hN={};C(hN,{up:()=>eZ,down:()=>dZ});import{sql as x_}from"kysely";async function eZ(_){await x_`
1799
1803
  CREATE TABLE org_jira_integrations (
1800
1804
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1801
1805
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1834,7 +1838,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1834
1838
  created_at timestamptz NOT NULL DEFAULT now(),
1835
1839
  UNIQUE (organization_id, jira_comment_id)
1836
1840
  )
1837
- `.execute(_)}async function aZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var hN={};C(hN,{up:()=>lZ,down:()=>eZ});import{sql as rZ}from"kysely";async function lZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await rZ`
1841
+ `.execute(_)}async function dZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var tN={};C(tN,{up:()=>bZ,down:()=>_6});import{sql as sZ}from"kysely";async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await sZ`
1838
1842
  update task_board_items as t
1839
1843
  set key_seq = numbered.seq
1840
1844
  from (
@@ -1847,25 +1851,25 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1847
1851
  from task_board_items
1848
1852
  ) as numbered
1849
1853
  where t.id = numbered.id
1850
- `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function eZ(_){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 tN={};C(tN,{up:()=>dZ,down:()=>bZ});import{sql as dT}from"kysely";async function dZ(_){await dT`
1854
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function _6(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var oN={};C(oN,{up:()=>x6,down:()=>u6});import{sql as bT}from"kysely";async function x6(_){await bT`
1851
1855
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1852
1856
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1853
1857
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1854
- `.execute(_)}async function bZ(_){await dT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var aN={};C(aN,{up:()=>sZ,down:()=>_6});import{sql as oN}from"kysely";async function sZ(_){await oN`
1858
+ `.execute(_)}async function u6(_){await bT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var rN={};C(rN,{up:()=>C6,down:()=>K6});import{sql as aN}from"kysely";async function C6(_){await aN`
1855
1859
  ALTER TABLE thread_message_parts
1856
1860
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1857
- `.execute(_),await oN`
1861
+ `.execute(_),await aN`
1858
1862
  ALTER TABLE thread_message_parts
1859
1863
  ALTER COLUMN persisted_at SET DEFAULT now()
1860
- `.execute(_)}async function _6(_){await oN`
1864
+ `.execute(_)}async function K6(_){await aN`
1861
1865
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1862
- `.execute(_)}var rN={};C(rN,{up:()=>x6,down:()=>u6});async function x6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function u6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var lN={};C(lN,{up:()=>K6,down:()=>N6});import{sql as C6}from"kysely";async function K6(_){await C6`
1866
+ `.execute(_)}var lN={};C(lN,{up:()=>N6,down:()=>m6});async function N6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function m6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var eN={};C(eN,{up:()=>z6,down:()=>E6});import{sql as T6}from"kysely";async function z6(_){await T6`
1863
1867
  CREATE INDEX idx_task_board_items_done_sweep
1864
1868
  ON task_board_items (updated_at)
1865
1869
  WHERE status = 'done' AND dismissed_at IS NULL
1866
- `.execute(_)}async function N6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var eN={};C(eN,{up:()=>m6,down:()=>T6,TYPES:()=>bT});import{sql as q}from"kysely";var bT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function m6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(bT.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1870
+ `.execute(_)}async function E6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var dN={};C(dN,{up:()=>$6,down:()=>U6,TYPES:()=>_z});import{sql as q}from"kysely";var _z=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function $6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(_z.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1867
1871
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
1868
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function T6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var dN={};C(dN,{up:()=>z6,down:()=>E6});import{sql as sT}from"kysely";async function z6(_){await sT`
1872
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function U6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var sN={};C(sN,{up:()=>P6,down:()=>J6});import{sql as xz}from"kysely";async function P6(_){await xz`
1869
1873
  UPDATE org_jira_integrations
1870
1874
  SET status_mapping = (
1871
1875
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1880,7 +1884,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1880
1884
  SELECT 1 FROM jsonb_each(status_mapping)
1881
1885
  WHERE jsonb_typeof(value) = 'array'
1882
1886
  )
1883
- `.execute(_)}async function E6(_){await sT`
1887
+ `.execute(_)}async function J6(_){await xz`
1884
1888
  UPDATE org_jira_integrations
1885
1889
  SET status_mapping = (
1886
1890
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1895,7 +1899,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1895
1899
  SELECT 1 FROM jsonb_each(status_mapping)
1896
1900
  WHERE jsonb_typeof(value) = 'array'
1897
1901
  )
1898
- `.execute(_)}var sN={};C(sN,{up:()=>U6,down:()=>J6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],$6=new Set(["mentioned"]);async function U6(_){await _z(_,bN)}async function J6(_){await _z(_,bN.filter((x)=>!$6.has(x)))}async function _z(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var xm={};C(xm,{up:()=>X6,down:()=>Z6,ACTIONS:()=>_m});import{sql as i}from"kysely";var P6=["bug","feature","chore","spike","security"],_m=["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"],Q6=new Set(["type_changed"]);async function X6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(P6.map((x)=>i.lit(x)))}))`.execute(_),await xz(_,_m)}async function Z6(_){await xz(_,_m.filter((x)=>!Q6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function xz(_,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 um={};C(um,{up:()=>W6,down:()=>j6});import{sql as W}from"kysely";var Cz=["bug","feature","chore","spike","security"],uz="chore";async function W6(_){await W`UPDATE task_board_items SET type = ${W.lit(uz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(uz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Cz.map((x)=>W.lit(x)))}))`.execute(_)}async function j6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Cz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Cm={};C(Cm,{up:()=>L6,down:()=>F6});import{sql as u_}from"kysely";async function L6(_){await u_`
1902
+ `.execute(_)}var _m={};C(_m,{up:()=>Q6,down:()=>Z6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],X6=new Set(["mentioned"]);async function Q6(_){await uz(_,bN)}async function Z6(_){await uz(_,bN.filter((x)=>!X6.has(x)))}async function uz(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var um={};C(um,{up:()=>j6,down:()=>F6,ACTIONS:()=>xm});import{sql as i}from"kysely";var W6=["bug","feature","chore","spike","security"],xm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],L6=new Set(["type_changed"]);async function j6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(W6.map((x)=>i.lit(x)))}))`.execute(_),await Cz(_,xm)}async function F6(_){await Cz(_,xm.filter((x)=>!L6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function Cz(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var Cm={};C(Cm,{up:()=>Y6,down:()=>D6});import{sql as W}from"kysely";var Nz=["bug","feature","chore","spike","security"],Kz="chore";async function Y6(_){await W`UPDATE task_board_items SET type = ${W.lit(Kz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(Kz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Nz.map((x)=>W.lit(x)))}))`.execute(_)}async function D6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Nz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Km={};C(Km,{up:()=>H6,down:()=>M6});import{sql as u_}from"kysely";async function H6(_){await u_`
1899
1903
  CREATE TABLE task_board_sprints (
1900
1904
  id text PRIMARY KEY,
1901
1905
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1920,34 +1924,34 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1920
1924
  CREATE INDEX idx_task_board_items_sprint
1921
1925
  ON task_board_items (organization_id, sprint_id)
1922
1926
  WHERE sprint_id IS NOT NULL
1923
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function F6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Km={};C(Km,{up:()=>D6,down:()=>H6});import{sql as Y6}from"kysely";async function D6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function H6(_){await Y6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as M6}from"kysely";async function R6(_){await M6`
1927
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function M6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Nm={};C(Nm,{up:()=>B6,down:()=>G6});import{sql as R6}from"kysely";async function B6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function G6(_){await R6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var mm={};C(mm,{up:()=>S6,down:()=>f6});import{sql as O6}from"kysely";async function S6(_){await O6`
1924
1928
  UPDATE org_jira_integrations
1925
1929
  SET last_synced_at = NULL,
1926
1930
  last_sync_error = NULL
1927
1931
  WHERE last_synced_at IS NOT NULL
1928
- `.execute(_)}async function B6(){}var mm={};C(mm,{up:()=>O6,down:()=>S6});import{sql as G6}from"kysely";async function O6(_){await G6`
1932
+ `.execute(_)}async function f6(){}var Tm={};C(Tm,{up:()=>I6,down:()=>y6});import{sql as A6}from"kysely";async function I6(_){await A6`
1929
1933
  UPDATE org_jira_integrations
1930
1934
  SET last_synced_at = NULL,
1931
1935
  last_sync_error = NULL
1932
1936
  WHERE last_synced_at IS NOT NULL
1933
- `.execute(_)}async function S6(){}var zm={};C(zm,{up:()=>f6,down:()=>A6});import{sql as Tm}from"kysely";async function f6(_){await Tm`
1937
+ `.execute(_)}async function y6(){}var Em={};C(Em,{up:()=>V6,down:()=>w6});import{sql as zm}from"kysely";async function V6(_){await zm`
1934
1938
  ALTER TABLE org_jira_integrations
1935
1939
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1936
- `.execute(_),await Tm`
1940
+ `.execute(_),await zm`
1937
1941
  UPDATE org_jira_integrations
1938
1942
  SET rescan_pending = true
1939
1943
  WHERE last_synced_at IS NULL
1940
- `.execute(_)}async function A6(_){await Tm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Em={};C(Em,{up:()=>I6,down:()=>y6});async function I6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function y6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var $m={};C($m,{up:()=>V6,down:()=>w6});import{sql as Kz}from"kysely";async function V6(_){await Kz`
1944
+ `.execute(_)}async function w6(_){await zm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var $m={};C($m,{up:()=>k6,down:()=>n6});async function k6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function n6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as mz}from"kysely";async function v6(_){await mz`
1941
1945
  ALTER TABLE invitation
1942
1946
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1943
- `.execute(_)}async function w6(_){await Kz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>k6,down:()=>n6});import{sql as Um}from"kysely";async function k6(_){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(Um`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Um`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 Um`
1947
+ `.execute(_)}async function p6(_){await mz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>g6,down:()=>q6});import{sql as Pm}from"kysely";async function g6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Pm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pm`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await Pm`
1944
1948
  INSERT INTO task_board_column_automations
1945
1949
  (id, organization_id, column_key, prompt)
1946
1950
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1947
1951
  FROM org_jira_integrations
1948
1952
  WHERE auto_delegate = true
1949
1953
  ON CONFLICT DO NOTHING
1950
- `.execute(_)}async function n6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Pm={};C(Pm,{up:()=>v6,down:()=>p6});import{sql as Y_}from"kysely";async function v6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1954
+ `.execute(_)}async function q6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Xm={};C(Xm,{up:()=>i6,down:()=>c6});import{sql as Y_}from"kysely";async function i6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1951
1955
  UPDATE task_board_items i
1952
1956
  SET review_cycle_started_at = (
1953
1957
  SELECT max(a.occurred_at)
@@ -1963,13 +1967,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1963
1967
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1964
1968
  AND assignee_id = 'super-agent'
1965
1969
  AND dismissed_at IS NULL
1966
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function p6(_){await Y_`
1970
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function c6(_){await Y_`
1967
1971
  CREATE INDEX idx_task_board_items_pending_review
1968
1972
  ON task_board_items (updated_at, id)
1969
1973
  WHERE status = 'in_review'
1970
1974
  AND assignee_id = 'super-agent'
1971
1975
  AND dismissed_at IS NULL
1972
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>g6,down:()=>q6});import{sql as Nz}from"kysely";async function g6(_){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(Nz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Nz`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 q6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Zm={};C(Zm,{up:()=>c6,down:()=>h6,ACTIONS:()=>Xm});import{sql as ux}from"kysely";var Xm=["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"],i6=new Set(["review_verdict_requested"]);async function c6(_){await mz(_,Xm)}async function h6(_){await mz(_,Xm.filter((x)=>!i6.has(x)))}async function mz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Wm={};C(Wm,{up:()=>t6,down:()=>o6});import{sql as Cx}from"kysely";async function t6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
1976
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Tz}from"kysely";async function h6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Tz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tz`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function t6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Wm={};C(Wm,{up:()=>a6,down:()=>r6,ACTIONS:()=>Zm});import{sql as ux}from"kysely";var Zm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],o6=new Set(["review_verdict_requested"]);async function a6(_){await zz(_,Zm)}async function r6(_){await zz(_,Zm.filter((x)=>!o6.has(x)))}async function zz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Lm={};C(Lm,{up:()=>l6,down:()=>e6});import{sql as Cx}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
1973
1977
  ALTER TABLE task_board_items
1974
1978
  ADD CONSTRAINT chk_task_board_items_column_org
1975
1979
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1979,13 +1983,13 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
1979
1983
  FOREIGN KEY (board_column_org, status)
1980
1984
  REFERENCES task_board_columns (organization_id, key)
1981
1985
  ON DELETE RESTRICT
1982
- `.execute(_)}async function o6(_){await Cx`
1986
+ `.execute(_)}async function e6(_){await Cx`
1983
1987
  ALTER TABLE task_board_items
1984
1988
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1985
1989
  `.execute(_),await Cx`
1986
1990
  ALTER TABLE task_board_items
1987
1991
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1988
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>a6,down:()=>r6});async function a6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function r6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Fm={};C(Fm,{up:()=>e6,down:()=>d6,ACTIONS:()=>Lm});import{sql as Kx}from"kysely";var Lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],l6=new Set(["sprint_changed"]);async function e6(_){await Tz(_,Lm)}async function d6(_){await Tz(_,Lm.filter((x)=>!l6.has(x)))}async function Tz(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Ym={};C(Ym,{up:()=>s6,down:()=>_W});import{sql as b6}from"kysely";async function s6(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(b6`'[]'::jsonb`)).execute()}async function _W(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Dm={};C(Dm,{up:()=>xW,down:()=>uW});import{sql as zz}from"kysely";async function xW(_){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(zz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function uW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW});import{sql as CW}from"kysely";async function KW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await CW`
1992
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>d6,down:()=>s6});async function d6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function s6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Ym={};C(Ym,{up:()=>_W,down:()=>xW,ACTIONS:()=>Fm});import{sql as Kx}from"kysely";var Fm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],b6=new Set(["sprint_changed"]);async function _W(_){await Ez(_,Fm)}async function xW(_){await Ez(_,Fm.filter((x)=>!b6.has(x)))}async function Ez(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Dm={};C(Dm,{up:()=>CW,down:()=>KW});import{sql as uW}from"kysely";async function CW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(uW`'[]'::jsonb`)).execute()}async function KW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Hm={};C(Hm,{up:()=>NW,down:()=>mW});import{sql as $z}from"kysely";async function NW(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($z`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function mW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Mm={};C(Mm,{up:()=>zW,down:()=>EW});import{sql as TW}from"kysely";async function zW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await TW`
1989
1993
  UPDATE task_board_items i
1990
1994
  SET external_url = t.url,
1991
1995
  description = CASE
@@ -2004,23 +2008,23 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2004
2008
  ON g.organization_id = l.organization_id
2005
2009
  ) t
2006
2010
  WHERE t.item_id = i.id
2007
- `.execute(_)}async function NW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Mm={};C(Mm,{up:()=>TW,down:()=>zW,ACTIONS:()=>Ez});import{sql as Q}from"kysely";var mW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Ez=["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 TW(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await Q`DROP TABLE IF EXISTS task_board_columns`.execute(_),await Q`
2011
+ `.execute(_)}async function EW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Rm={};C(Rm,{up:()=>UW,down:()=>PW,ACTIONS:()=>Uz});import{sql as X}from"kysely";var $W=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Uz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function UW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
2008
2012
  UPDATE task_board_items
2009
2013
  SET status = 'triage'
2010
- WHERE status NOT IN (${Q.join(mW.map((x)=>Q.lit(x)))})
2011
- `.execute(_),await Q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await Q`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await Q`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await EW(_,Ez),await Q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await Q`
2014
+ WHERE status NOT IN (${X.join($W.map((x)=>X.lit(x)))})
2015
+ `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await JW(_,Uz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2012
2016
  ALTER TABLE task_board_item_jira_links
2013
2017
  DROP COLUMN IF EXISTS jira_updated_at,
2014
2018
  DROP COLUMN IF EXISTS jira_status,
2015
2019
  DROP COLUMN IF EXISTS jira_sprint_id
2016
- `.execute(_),await Q`
2020
+ `.execute(_),await X`
2017
2021
  ALTER TABLE org_jira_integrations
2018
2022
  DROP COLUMN IF EXISTS status_mapping,
2019
2023
  DROP COLUMN IF EXISTS auto_delegate,
2020
2024
  DROP COLUMN IF EXISTS last_synced_at,
2021
2025
  DROP COLUMN IF EXISTS last_sync_error,
2022
2026
  DROP COLUMN IF EXISTS rescan_pending
2023
- `.execute(_)}async function zW(){}async function EW(_,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 Rm={};C(Rm,{up:()=>$W,down:()=>UW});import{sql as C_}from"kysely";async function $W(_){await C_`
2027
+ `.execute(_)}async function PW(){}async function JW(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var Bm={};C(Bm,{up:()=>XW,down:()=>QW});import{sql as C_}from"kysely";async function XW(_){await C_`
2024
2028
  ALTER TABLE task_board_items
2025
2029
  ADD COLUMN IF NOT EXISTS source text
2026
2030
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -2041,24 +2045,24 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2041
2045
  created_at timestamptz NOT NULL DEFAULT now(),
2042
2046
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2043
2047
  )
2044
- `.execute(_)}async function UW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Bm={};C(Bm,{up:()=>JW,down:()=>PW});import{sql as D_}from"kysely";async function JW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2048
+ `.execute(_)}async function QW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as D_}from"kysely";async function ZW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2045
2049
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2046
2050
  ON organization_notices (organization_id)
2047
2051
  WHERE resolved_at IS NULL
2048
2052
  `.execute(_),await D_`
2049
2053
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2050
2054
  ON organization_notices (organization_id, created_at DESC)
2051
- `.execute(_)}async function PW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Om={};C(Om,{up:()=>HW,down:()=>MW});import{sql as Gm}from"kysely";import{sql as C5}from"kysely";var $z=50000000,QW=1e5;function XW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>QW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var ZW=/\u0000/g,WW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,jW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,LW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,FW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function YW(_){return _.replace(ZW,"").replace(WW,"\uFFFD").replace(jW,"$1***@").replace(LW,"$1***").replace(FW,"[base64 data omitted]")}function DW(_){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 Uz(_){if(XW(_,$z)>$z)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return YW(u);if(DW(u))return{type:"text",text:"[image omitted]"};return u})}var Jz=20;async function HW(_){let x=await Gm`
2055
+ `.execute(_)}async function WW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Sm={};C(Sm,{up:()=>GW,down:()=>OW});import{sql as Om}from"kysely";import{sql as zj}from"kysely";var Pz=50000000,LW=1e5;function jW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>LW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var FW=/\u0000/g,YW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,DW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,HW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,MW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function RW(_){return _.replace(FW,"").replace(YW,"\uFFFD").replace(DW,"$1***@").replace(HW,"$1***").replace(MW,"[base64 data omitted]")}function BW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Jz(_){if(jW(_,Pz)>Pz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return RW(u);if(BW(u))return{type:"text",text:"[image omitted]"};return u})}var Xz=20;async function GW(_){let x=await Om`
2052
2056
  SELECT id FROM thread_message_parts
2053
2057
  WHERE pg_column_size(payload) > 8192
2054
2058
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
2055
- `.execute(_);for(let u=0;u<x.rows.length;u+=Jz){let N=x.rows.slice(u,u+Jz).map((m)=>m.id),K=await Gm`
2059
+ `.execute(_);for(let u=0;u<x.rows.length;u+=Xz){let N=x.rows.slice(u,u+Xz).map((m)=>m.id),K=await Om`
2056
2060
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2057
- `.execute(_);for(let m of K.rows){let T=Uz(m.payload);if(T===JSON.stringify(m.payload))continue;await Gm`
2061
+ `.execute(_);for(let m of K.rows){let T=Jz(m.payload);if(T===JSON.stringify(m.payload))continue;await Om`
2058
2062
  UPDATE thread_message_parts
2059
2063
  SET payload = ${T}::jsonb
2060
2064
  WHERE id = ${m.id}
2061
- `.execute(_)}}}async function MW(){}var Sm={};C(Sm,{up:()=>RW,down:()=>BW});async function RW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function BW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var fm={};C(fm,{up:()=>GW,down:()=>OW});import{sql as U}from"kysely";async function GW(_){await U`
2065
+ `.execute(_)}}}async function OW(){}var fm={};C(fm,{up:()=>SW,down:()=>fW});async function SW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function fW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as U}from"kysely";async function AW(_){await U`
2062
2066
  CREATE TABLE git_provider_accounts (
2063
2067
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2064
2068
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2302,11 +2306,11 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2302
2306
  AND r.organization_id = s.organization_id
2303
2307
  AND r.host = 'github.com'
2304
2308
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2305
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function OW(_){await U`
2309
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function IW(_){await U`
2306
2310
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2307
2311
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2308
2312
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
2309
- `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Am={};C(Am,{up:()=>fW,down:()=>AW});import{sql as I}from"kysely";var SW=I`
2313
+ `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Im={};C(Im,{up:()=>VW,down:()=>wW});import{sql as I}from"kysely";var yW=I`
2310
2314
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2311
2315
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2312
2316
  BEGIN
@@ -2315,7 +2319,7 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2315
2319
  RETURN NULL;
2316
2320
  END;
2317
2321
  $$
2318
- `;async function fW(_){await SW.execute(_),await I`
2322
+ `;async function VW(_){await yW.execute(_),await I`
2319
2323
  ALTER TABLE connections
2320
2324
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2321
2325
  `.execute(_),await I`
@@ -2377,21 +2381,21 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2377
2381
  AND r.host = 'github.com'
2378
2382
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2379
2383
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2380
- `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function AW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2384
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function wW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2381
2385
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2382
- `.execute(_)}var IW={"001-initial-schema":Xu,"002-organization-settings":Zu,"003-connection-schema-align":Wu,"004-remove-models-binding":ju,"005-connection-configuration":Lu,"006-add-views-to-settings":Fu,"007-monitoring-logs":Yu,"008-event-bus":Du,"009-drop-audit-logs":Hu,"010-gateways":Mu,"011-gateway-icon":Ru,"012-gateway-tool-selection-mode":Bu,"013-monitoring-user-agent-gateway":Gu,"014-gateway-resources-prompts":Ou,"015-monitoring-properties":Su,"016-downstream-token-client-info":fu,"017-downstream-token-remove-userid":Au,"018-drop-gateway-tool-selection-strategy":Iu,"019-remove-gateway-is-default":yu,"020-enabled-plugins":Vu,"021-threads":wu,"022-rename-gateway-to-virtual-mcp":ku,"023-optimize-thread-indexes":nu,"024-consolidate-virtual-mcp":vu,"025-add-monitoring-virtual-mcp-id":pu,"026-restrict-child-connection-delete":gu,"027-update-management-mcp-url":iu,"028-update-management-mcp-to-self":hu,"029-add-updated-by-to-connections":tu,"030-member-tags":ou,"031-add-dependency-mode":au,"032-projects":ru,"033-thread-status":lu,"034-monitoring-dashboards":eu,"035-project-connections":du,"036-update-registry-url":bu,"037-ai-provider-keys":su,"038-oauth-pkce-states":_C,"039-automations":xC,"040-replace-next-run-at-with-last-run-at":uC,"041-ai-provider-keys-unique-constraint":CC,"042-rename-mesh-mcp-to-cms-mcp":KC,"043-rename-cms-mcp-to-deco-cms":NC,"044-drop-connections-tools-column":mC,"045-thread-context-start-message":TC,"046-remove-object-storage-plugin":EC,"047-add-next-run-at":$C,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":PC,"050-durable-agent-runs":QC,"051-org-sso":ZC,"052-thread-agent-ids":WC,"053-registry-config":jC,"054-connection-slug":FC,"055-spaces":YC,"056-automation-project-scope":DC,"057-thread-virtual-mcp-id":HC,"058-trigger-callback-tokens":MC,"059-kv":RC,"060-member-index":BC,"061-downstream-token-connection-index":GC,"062-private-registry":OC,"063-event-subscriptions-enabled-boolean":SC,"064-brand-context":fC,"065-organization-domains":AC,"066-brand-context-structured":IC,"067-threads-metadata":yC,"068-threads-branch":VC,"069-sandbox-runner-state":wC,"070-model-categories":kC,"071-default-home-agents":nC,"072-ai-provider-key-preset-id":vC,"073-backfill-basic-usage-roles":pC,"074-sandbox-runner-state-handle-nonunique":gC,"075-thread-inflight-async-jobs":qC,"076-automations-drop-agent-json":iC,"077-tier-only-model-selection":hC,"078-automation-tool-call-kind":tC,"079-strip-legacy-freestyle-vm-map-entries":oC,"080-async-research-jobs":aC,"081-async-research-jobs-result-content":rC,"082-secrets":lC,"083-thread-run-locally":eC,"084-drop-host-sandbox-rows":dC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":sC,"087-fix-vm-map-rekey":_K,"088-purge-cli-activate-keys":xK,"089-rename-remote-user-to-desktop":uK,"090-automation-webhook-triggers":CK,"091-organization-domains-allow-multi":KK,"092-sandbox-naming-uniformization":NK,"093-backfill-global-search-basic-usage":mK,"094-org-file-configs":zK,"095-remove-automation-tool-call-kind":EK,"096-org-file-configs-public-url-base":$K,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":PK,"099-run-fence":QK,"100-link-transport":XK,"101-cancel-requested-at":ZK,"102-observational-agent":WK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":FK,"105-org-fs":YK,"106-automation-tools":DK,"107-org-fs-public-org":HK,"108-automation-max-agent-steps":MK,"109-thread-message-parts-per-message-seq":RK,"110-backfill-ghs-token-expiry":BK,"111-org-fs-thread-id":GK,"112-org-file-configs-credential-type":OK,"113-thread-failure-reason":SK,"114-run-acked-seq":fK,"115-thread-projected-seq":AK,"116-org-sites":IK,"117-org-file-configs-site-slug":yK,"118-organization-domains-multi-verify":VK,"119-organization-join-requests":wK,"120-org-fs-read-public":kK,"121-org-fs-share-password":nK,"122-split-web-research-tier":gK,"123-connection-credential-vault":qK,"124-drop-thread-projected-seq":iK,"125-github-child-single-parent":cK,"126-task-board":tK,"127-task-board-due-date":oK,"128-reports-only":aK,"129-task-board-assigned-by":rK,"130-task-board-thread-id":lK,"131-task-board-thread-link-cascade":eK,"132-task-board-item-prs":dK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":sK,"135-task-board-item-fk-cascade":_N,"136-task-board-import-idempotency":xN,"137-agent-sandbox-runner-state":uN,"138-agent-sandbox-sessions":CN,"139-organization-billing":KN,"140-seat-change-log":NN,"141-benefits-sync-pending":mN,"142-stripe-event-watermark":TN,"143-armed-report-url":zN,"144-benefits-pending-index":EN,"145-user-model-preferences":$N,"146-organization-main-agent":UN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":PN,"149-task-board-item-sort-order":QN,"150-task-board-activity":XN,"151-task-board-tags":WN,"152-repair-connection-slug":LN,"153-task-board-latest-assistant-part-index":FN,"154-task-board-qa-activity":DN,"155-task-board-review-claims":HN,"156-task-board-conflict-activity":RN,"157-drop-seat-billing":BN,"158-drop-github-child-single-parent":GN,"159-task-board-comments":ON,"160-task-quota-billing":SN,"161-task-quota-claim-state":AN,"162-claude-subscriptions":IN,"163-task-board-item-dismissed":yN,"164-per-org-task-quota":VN,"165-task-board-pending-review-index":wN,"166-task-board-last-swept-at":kN,"167-task-board-run-retry":nN,"168-org-repo-sync":pN,"169-task-board-merge-failed-activity":qN,"170-task-board-item-repo":iN,"171-jira-integration":cN,"172-task-board-item-key-seq":hN,"173-thread-github-repo-connection-index":tN,"174-thread-message-parts-persisted-at":aN,"175-task-board-sprints":rN,"176-task-board-done-sweep-index":lN,"177-notifications":eN,"178-jira-status-mapping-array":dN,"179-notification-mentioned":sN,"180-task-board-item-type":xm,"181-task-board-item-type-required":um,"182-task-board-sprints-entities":Cm,"183-drop-jira-jql-filter":Km,"184-jira-rescan-after-scope-change":Nm,"185-jira-rescan-existing-cards":mm,"186-jira-rescan-pending-flag":zm,"187-task-board-comment-thread":Em,"188-invitation-auto-accept":$m,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Pm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Zm,"193-task-board-status-column-fk":Wm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Fm,"196-task-board-column-tracker-statuses":Ym,"197-task-board-prompts":Dm,"198-task-board-external-url":Hm,"199-drop-jira-mirror-and-org-columns":Mm,"200-jira-run-trigger":Rm,"201-organization-notices":Bm,"202-redact-base64-thread-parts":Om,"203-task-board-preview-routes":Sm,"204-git-provider-accounts-and-repositories":fm,"205-repository-references":Am,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Pu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Uu,"210-github-repository-authorization":Cu,"211-user-fs-org":uu,"212-coding-agent-mcp-excluded":Ku,"213-bitbucket-git-provider":Nu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":sx,"216-github-cli-auth":xu,"217-experiments":mu,"218-thread-message-parts-error-idx":Tu,"219-task-board-duplicate-reported-activity":Eu,"220-jira-automation-continue-pr":$u,"221-remove-private-registry":Qx,"222-org-git-credentials":Xx,"223-drop-org-main-agent-id":dx,"224-repository-sandbox-image":Zx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Fx,"227-task-board-finding-resolved-activity":Dx,"228-org-voice-config":Px,"229-jira-automation-from":Hx,"230-project-sidebar":Mx,"231-jira-chat-agent":Rx,"232-task-board-prompt-skills":Gx,"233-remove-jira-chat-agent":Sx,"234-task-board-comment-audience":fx,"235-prune-empty-thread-dirs":Ax,"236-task-board-sprints":yx,"237-org-sites-project-link":Vx,"238-task-board-default-lanes":wx,"239-task-board-retire-old-lanes":kx,"240-task-board-restore-todo":nx,"241-automation-board-column-transition":vx,"242-connection-url-slug":px,"243-experiment-task-board-item":gx,"244-connection-url-slug-rollout-backfill":qx,"245-automation-system-key":ix,"246-automation-pr-ready-trigger":cx,"247-automation-jira-transition":hx,"248-drop-retired-rule-tables":tx,"249-task-board-item-project":ox,"250-github-copilot-subscriptions":ax,"251-org-shared-plans":rx,"252-automation-linked-chat-trigger":lx,"253-automation-pr-builtin-triggers":ex,"254-codex-subscriptions":$x,"255-order-monitor":Jx},Nx=IW;import{getMigrations as U9}from"better-auth/db";import{sso as J9}from"@better-auth/sso";import{organization as P9}from"@decocms/better-auth/plugins";import{admin as Q9,apiKey as X9,jwt as Z9,magicLink as W9,mcp as j9,openAPI as L9}from"better-auth/plugins";import{emailOTP as F9}from"better-auth/plugins/email-otp";import{Kysely as C9,PostgresDialect as Dz}from"kysely";import{Pool as Hz}from"pg";import{homedir as yW}from"os";var VW=new Set(["all","worker","api"]);function wW(_){let x=(_??"").trim();return VW.has(x)?x:"all"}var kW=new Set(["production","development","test"]);function nW(_){let x=(_??"").trim();return kW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function ym(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return ym(_,x,N)??u}function vW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function pW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function Im(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function gW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Pz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${yW()}/deco`,u=nW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ym("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:vW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:pW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:Im(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Im(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:gW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:ym("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:wW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Im(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var qW=null;function K_(){return qW??=Object.freeze(Pz(process.env))}import{createContextKey as aW,metrics as rW,propagation as D8,ROOT_CONTEXT as H8,SpanStatusCode as M8,trace as lW}from"@opentelemetry/api";import{logs as eW,SeverityNumber as Vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as G8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as dW}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as f8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as I8}from"@opentelemetry/instrumentation-runtime-node";import{context as Z5,propagation as W5,SpanKind as j5,SpanStatusCode as L5}from"@opentelemetry/api";var Y5=globalThis.fetch;import{ExportResultCode as y5}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as iW,rename as cW,writeFile as hW}from"fs/promises";import{join as Tx}from"path";class zx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:mx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await iW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
2386
+ `.execute(_)}var kW={"001-initial-schema":Zu,"002-organization-settings":Wu,"003-connection-schema-align":Lu,"004-remove-models-binding":ju,"005-connection-configuration":Fu,"006-add-views-to-settings":Yu,"007-monitoring-logs":Du,"008-event-bus":Hu,"009-drop-audit-logs":Mu,"010-gateways":Ru,"011-gateway-icon":Bu,"012-gateway-tool-selection-mode":Gu,"013-monitoring-user-agent-gateway":Ou,"014-gateway-resources-prompts":Su,"015-monitoring-properties":fu,"016-downstream-token-client-info":Au,"017-downstream-token-remove-userid":Iu,"018-drop-gateway-tool-selection-strategy":yu,"019-remove-gateway-is-default":Vu,"020-enabled-plugins":wu,"021-threads":ku,"022-rename-gateway-to-virtual-mcp":nu,"023-optimize-thread-indexes":vu,"024-consolidate-virtual-mcp":pu,"025-add-monitoring-virtual-mcp-id":gu,"026-restrict-child-connection-delete":qu,"027-update-management-mcp-url":cu,"028-update-management-mcp-to-self":tu,"029-add-updated-by-to-connections":ou,"030-member-tags":au,"031-add-dependency-mode":ru,"032-projects":lu,"033-thread-status":eu,"034-monitoring-dashboards":du,"035-project-connections":su,"036-update-registry-url":bu,"037-ai-provider-keys":_C,"038-oauth-pkce-states":xC,"039-automations":uC,"040-replace-next-run-at-with-last-run-at":CC,"041-ai-provider-keys-unique-constraint":KC,"042-rename-mesh-mcp-to-cms-mcp":NC,"043-rename-cms-mcp-to-deco-cms":mC,"044-drop-connections-tools-column":TC,"045-thread-context-start-message":zC,"046-remove-object-storage-plugin":$C,"047-add-next-run-at":UC,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":XC,"050-durable-agent-runs":QC,"051-org-sso":WC,"052-thread-agent-ids":LC,"053-registry-config":jC,"054-connection-slug":YC,"055-spaces":DC,"056-automation-project-scope":HC,"057-thread-virtual-mcp-id":MC,"058-trigger-callback-tokens":RC,"059-kv":BC,"060-member-index":GC,"061-downstream-token-connection-index":OC,"062-private-registry":SC,"063-event-subscriptions-enabled-boolean":fC,"064-brand-context":AC,"065-organization-domains":IC,"066-brand-context-structured":yC,"067-threads-metadata":VC,"068-threads-branch":wC,"069-sandbox-runner-state":kC,"070-model-categories":nC,"071-default-home-agents":vC,"072-ai-provider-key-preset-id":pC,"073-backfill-basic-usage-roles":gC,"074-sandbox-runner-state-handle-nonunique":qC,"075-thread-inflight-async-jobs":iC,"076-automations-drop-agent-json":cC,"077-tier-only-model-selection":tC,"078-automation-tool-call-kind":oC,"079-strip-legacy-freestyle-vm-map-entries":aC,"080-async-research-jobs":rC,"081-async-research-jobs-result-content":lC,"082-secrets":eC,"083-thread-run-locally":dC,"084-drop-host-sandbox-rows":sC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":_K,"087-fix-vm-map-rekey":xK,"088-purge-cli-activate-keys":uK,"089-rename-remote-user-to-desktop":CK,"090-automation-webhook-triggers":KK,"091-organization-domains-allow-multi":NK,"092-sandbox-naming-uniformization":mK,"093-backfill-global-search-basic-usage":TK,"094-org-file-configs":EK,"095-remove-automation-tool-call-kind":$K,"096-org-file-configs-public-url-base":UK,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":XK,"099-run-fence":QK,"100-link-transport":ZK,"101-cancel-requested-at":WK,"102-observational-agent":LK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":YK,"105-org-fs":DK,"106-automation-tools":HK,"107-org-fs-public-org":MK,"108-automation-max-agent-steps":RK,"109-thread-message-parts-per-message-seq":BK,"110-backfill-ghs-token-expiry":GK,"111-org-fs-thread-id":OK,"112-org-file-configs-credential-type":SK,"113-thread-failure-reason":fK,"114-run-acked-seq":AK,"115-thread-projected-seq":IK,"116-org-sites":yK,"117-org-file-configs-site-slug":VK,"118-organization-domains-multi-verify":wK,"119-organization-join-requests":kK,"120-org-fs-read-public":nK,"121-org-fs-share-password":vK,"122-split-web-research-tier":qK,"123-connection-credential-vault":iK,"124-drop-thread-projected-seq":cK,"125-github-child-single-parent":hK,"126-task-board":oK,"127-task-board-due-date":aK,"128-reports-only":rK,"129-task-board-assigned-by":lK,"130-task-board-thread-id":eK,"131-task-board-thread-link-cascade":dK,"132-task-board-item-prs":sK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":_N,"135-task-board-item-fk-cascade":xN,"136-task-board-import-idempotency":uN,"137-agent-sandbox-runner-state":CN,"138-agent-sandbox-sessions":KN,"139-organization-billing":NN,"140-seat-change-log":mN,"141-benefits-sync-pending":TN,"142-stripe-event-watermark":zN,"143-armed-report-url":EN,"144-benefits-pending-index":$N,"145-user-model-preferences":UN,"146-organization-main-agent":PN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":XN,"149-task-board-item-sort-order":QN,"150-task-board-activity":ZN,"151-task-board-tags":LN,"152-repair-connection-slug":FN,"153-task-board-latest-assistant-part-index":YN,"154-task-board-qa-activity":HN,"155-task-board-review-claims":MN,"156-task-board-conflict-activity":BN,"157-drop-seat-billing":GN,"158-drop-github-child-single-parent":ON,"159-task-board-comments":SN,"160-task-quota-billing":fN,"161-task-quota-claim-state":IN,"162-claude-subscriptions":yN,"163-task-board-item-dismissed":VN,"164-per-org-task-quota":wN,"165-task-board-pending-review-index":kN,"166-task-board-last-swept-at":nN,"167-task-board-run-retry":vN,"168-org-repo-sync":gN,"169-task-board-merge-failed-activity":iN,"170-task-board-item-repo":cN,"171-jira-integration":hN,"172-task-board-item-key-seq":tN,"173-thread-github-repo-connection-index":oN,"174-thread-message-parts-persisted-at":rN,"175-task-board-sprints":lN,"176-task-board-done-sweep-index":eN,"177-notifications":dN,"178-jira-status-mapping-array":sN,"179-notification-mentioned":_m,"180-task-board-item-type":um,"181-task-board-item-type-required":Cm,"182-task-board-sprints-entities":Km,"183-drop-jira-jql-filter":Nm,"184-jira-rescan-after-scope-change":mm,"185-jira-rescan-existing-cards":Tm,"186-jira-rescan-pending-flag":Em,"187-task-board-comment-thread":$m,"188-invitation-auto-accept":Um,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Xm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Wm,"193-task-board-status-column-fk":Lm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Ym,"196-task-board-column-tracker-statuses":Dm,"197-task-board-prompts":Hm,"198-task-board-external-url":Mm,"199-drop-jira-mirror-and-org-columns":Rm,"200-jira-run-trigger":Bm,"201-organization-notices":Gm,"202-redact-base64-thread-parts":Sm,"203-task-board-preview-routes":fm,"204-git-provider-accounts-and-repositories":Am,"205-repository-references":Im,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Xu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Pu,"210-github-repository-authorization":Ku,"211-user-fs-org":Cu,"212-coding-agent-mcp-excluded":Nu,"213-bitbucket-git-provider":mu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":_u,"216-github-cli-auth":uu,"217-experiments":Tu,"218-thread-message-parts-error-idx":zu,"219-task-board-duplicate-reported-activity":$u,"220-jira-automation-continue-pr":Uu,"221-remove-private-registry":Qx,"222-org-git-credentials":Zx,"223-drop-org-main-agent-id":sx,"224-repository-sandbox-image":Wx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Yx,"227-task-board-finding-resolved-activity":Hx,"228-org-voice-config":Xx,"229-jira-automation-from":Mx,"230-project-sidebar":Rx,"231-jira-chat-agent":Bx,"232-task-board-prompt-skills":Ox,"233-remove-jira-chat-agent":fx,"234-task-board-comment-audience":Ax,"235-prune-empty-thread-dirs":Ix,"236-task-board-sprints":Vx,"237-org-sites-project-link":wx,"238-task-board-default-lanes":kx,"239-task-board-retire-old-lanes":nx,"240-task-board-restore-todo":vx,"241-automation-board-column-transition":px,"242-connection-url-slug":gx,"243-experiment-task-board-item":qx,"244-connection-url-slug-rollout-backfill":ix,"245-automation-system-key":cx,"246-automation-pr-ready-trigger":hx,"247-automation-jira-transition":tx,"248-drop-retired-rule-tables":ox,"249-task-board-item-project":ax,"250-github-copilot-subscriptions":rx,"251-org-shared-plans":lx,"252-automation-linked-chat-trigger":ex,"253-automation-pr-builtin-triggers":dx,"254-codex-subscriptions":Ux,"255-order-monitor":Jx,"256-task-board-harness":$x},Nx=kW;import{getMigrations as Q9}from"better-auth/db";import{sso as Z9}from"@better-auth/sso";import{organization as W9}from"@decocms/better-auth/plugins";import{admin as L9,apiKey as j9,jwt as F9,magicLink as Y9,mcp as D9,openAPI as H9}from"better-auth/plugins";import{emailOTP as M9}from"better-auth/plugins/email-otp";import{Kysely as T9,PostgresDialect as Mz}from"kysely";import{Pool as Rz}from"pg";import{homedir as nW}from"os";var vW=new Set(["all","worker","api"]);function pW(_){let x=(_??"").trim();return vW.has(x)?x:"all"}var gW=new Set(["production","development","test"]);function qW(_){let x=(_??"").trim();return gW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function Vm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return Vm(_,x,N)??u}function iW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function cW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function ym(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function hW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Qz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${nW()}/deco`,u=qW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Vm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:iW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:cW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:ym(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:ym(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:hW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:Vm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:pW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:ym(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var tW=null;function K_(){return tW??=Object.freeze(Qz(process.env))}import{createContextKey as dW,metrics as sW,propagation as G5,ROOT_CONTEXT as O5,SpanStatusCode as S5,trace as bW}from"@opentelemetry/api";import{logs as _9,SeverityNumber as wm}from"@opentelemetry/api-logs";import{OTLPLogExporter as I5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as x9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as w5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as n5}from"@opentelemetry/instrumentation-runtime-node";import{context as Yj,propagation as Dj,SpanKind as Hj,SpanStatusCode as Mj}from"@opentelemetry/api";var Bj=globalThis.fetch;import{ExportResultCode as vj}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as oW,rename as aW,writeFile as rW}from"fs/promises";import{join as Tx}from"path";class zx{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:mx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await oW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
2383
2387
  `)+`
2384
- `;await hW(T,E,{mode:384}),await cW(T,z)}}import{ExportResultCode as v5}from"@opentelemetry/core";import{AggregationTemporality as g5,DataPointType as q5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as a5}from"@opentelemetry/core";var d5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as q8,LoggerProvider as i8}from"@opentelemetry/sdk-logs";import{detectResources as h8,envDetector as t8,hostDetector as o8,osDetector as a8,processDetector as r8,resourceFromAttributes as l8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as d8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as _8}from"@opentelemetry/api-logs";import{NodeSDK as _3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as u3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as N8}from"@opentelemetry/api";var bW="__d",sW=aW("Current request"),_9=1;var Xz=(_)=>{let u=new URL(_.url).searchParams.get(bW);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Zz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(sW);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Xz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Wz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var K3=new dW({preventServerStart:!0}),N3=new Zz(new Wz(_9));var Qz=lW.getTracer("studio","1.0.0"),M_=rW.getMeter("studio","1.0.0"),x9=eW.getLogger("studio","1.0.0"),wm=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");x9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},km={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{wm(Vm.ERROR,"ERROR",_),km.error(..._)};console.warn=(..._)=>{wm(Vm.WARN,"WARN",_),km.warn(..._)};console.debug=(..._)=>{wm(Vm.DEBUG,"DEBUG",_),km.debug(..._)};var nm,jz=0,vm=500;function u9(){if(nm)return;let _=performance.now()+vm;nm=setInterval(()=>{let x=performance.now();jz=Math.max(0,x-_),_=x+vm},vm),nm.unref?.()}function Lz(){return u9(),jz}var K9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Fz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Yz=400,N9=100,m9=(_)=>({"db.status":_.level==="error"?"error":"success"}),T9=(_)=>(x)=>{let u=m9(x);if(x.queryDurationMillis>Yz){let N=Lz(),K=N>Yz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:Ex()}})}if(K9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Fz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>N9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Fz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Mz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Rz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function E9(_){let x=z9(new Hz({connectionString:_,max:Ex(),ssl:Rz(),...Mz})),u=new Dz({pool:x});return{type:"postgres",db:new C9({dialect:u,log:T9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Bz(_){let x=_||B_();return new Dz({pool:new Hz({connectionString:x,max:Ex(),ssl:Rz(),...Mz})})}function $9(_){let x=_||B_();return E9(x)}async function Gz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function pm(){if(!R_)R_=$9(B_());return R_}async function Oz(_){let u={database:Bz(_||B_()),plugins:[P9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Q9(),X9(),Z9(),L9(),j9({loginPage:"/login"}),J9(),W9({sendMagicLink:async()=>{}}),F9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await U9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function gm(_,x){return(await o`
2388
+ `;await rW(T,E,{mode:384}),await aW(T,z)}}import{ExportResultCode as cj}from"@opentelemetry/core";import{AggregationTemporality as tj,DataPointType as oj}from"@opentelemetry/sdk-metrics";import{ExportResultCode as sj}from"@opentelemetry/core";var u5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as o5,LoggerProvider as a5}from"@opentelemetry/sdk-logs";import{detectResources as l5,envDetector as e5,hostDetector as d5,osDetector as s5,processDetector as b5,resourceFromAttributes as _8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as u8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as N5}from"@opentelemetry/api-logs";import{NodeSDK as N8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as T8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as $5}from"@opentelemetry/api";var u9="__d",C9=dW("Current request"),K9=1;var Wz=(_)=>{let u=new URL(_.url).searchParams.get(u9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Lz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(C9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Wz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var E8=new x9({preventServerStart:!0}),$8=new Lz(new jz(K9));var Zz=bW.getTracer("studio","1.0.0"),M_=sW.getMeter("studio","1.0.0"),N9=_9.getLogger("studio","1.0.0"),km=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");N9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},nm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{km(wm.ERROR,"ERROR",_),nm.error(..._)};console.warn=(..._)=>{km(wm.WARN,"WARN",_),nm.warn(..._)};console.debug=(..._)=>{km(wm.DEBUG,"DEBUG",_),nm.debug(..._)};var vm,Fz=0,pm=500;function m9(){if(vm)return;let _=performance.now()+pm;vm=setInterval(()=>{let x=performance.now();Fz=Math.max(0,x-_),_=x+pm},pm),vm.unref?.()}function Yz(){return m9(),Fz}var z9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Dz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Hz=400,E9=100,$9=(_)=>({"db.status":_.level==="error"?"error":"success"}),U9=(_)=>(x)=>{let u=$9(x);if(x.queryDurationMillis>Hz){let N=Yz(),K=N>Hz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:Ex()}})}if(z9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function P9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Dz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>E9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Dz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Bz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Gz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function J9(_){let x=P9(new Rz({connectionString:_,max:Ex(),ssl:Gz(),...Bz})),u=new Mz({pool:x});return{type:"postgres",db:new T9({dialect:u,log:U9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Oz(_){let x=_||B_();return new Mz({pool:new Rz({connectionString:x,max:Ex(),ssl:Gz(),...Bz})})}function X9(_){let x=_||B_();return J9(x)}async function Sz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function gm(){if(!R_)R_=X9(B_());return R_}async function fz(_){let u={database:Oz(_||B_()),plugins:[W9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),L9(),j9(),F9(),H9(),D9({loginPage:"/login"}),Z9(),Y9({sendMagicLink:async()=>{}}),M9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await Q9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function qm(_,x){return(await o`
2385
2389
  SELECT table_name FROM information_schema.tables
2386
2390
  WHERE table_schema='public' AND table_name=${x}
2387
- `.execute(_)).rows.length>0}async function Y9(_){if(await gm(_,"plugin_migrations"))return;await o`
2391
+ `.execute(_)).rows.length>0}async function R9(_){if(await qm(_,"plugin_migrations"))return;await o`
2388
2392
  CREATE TABLE plugin_migrations (
2389
2393
  plugin_id TEXT NOT NULL,
2390
2394
  name TEXT NOT NULL,
2391
2395
  timestamp TEXT NOT NULL,
2392
2396
  PRIMARY KEY (plugin_id, name)
2393
2397
  )
2394
- `.execute(_)}async function D9(_){if(!await gm(_,"kysely_migration"))return;let x=await o`
2398
+ `.execute(_)}async function B9(_){if(!await qm(_,"kysely_migration"))return;let x=await o`
2395
2399
  SELECT name, timestamp FROM kysely_migration
2396
2400
  WHERE name LIKE '%/%'
2397
2401
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
@@ -2402,6 +2406,6 @@ var fz=Object.defineProperty;var Az=(_)=>_;function Iz(_,x){this[_]=Az.bind(null
2402
2406
  WHERE plugin_id = ${T} AND name = ${z}
2403
2407
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
2404
2408
  DELETE FROM kysely_migration WHERE name = ${u}
2405
- `.execute(_)}}async function H9(_){if(!await gm(_,"kysely_migration"))return{};let{rows:x}=await o`
2409
+ `.execute(_)}}async function G9(_){if(!await qm(_,"kysely_migration"))return{};let{rows:x}=await o`
2406
2410
  SELECT name FROM kysely_migration
2407
- `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function M9(_){await Y9(_),await D9(_);let x=new Sz({db:_,provider:{getMigrations:async()=>({...await H9(_),...Nx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function R9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Oz();let m=u??pm(),T=async()=>{if(!x&&!u)await Gz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await M9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function w3(){let _=pm(),x=new Sz({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await R9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{M9 as runKyselyMigrations,R9 as migrateToLatest,w3 as migrateDown};
2411
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function O9(_){await R9(_),await B9(_);let x=new Az({db:_,provider:{getMigrations:async()=>({...await G9(_),...Nx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function S9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await fz();let m=u??gm(),T=async()=>{if(!x&&!u)await Sz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await O9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function g8(){let _=gm(),x=new Az({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await S9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{O9 as runKyselyMigrations,S9 as migrateToLatest,g8 as migrateDown};