decocms 4.358.8 → 4.358.10

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 (261) hide show
  1. package/dist/client/assets/{AlertCircle-BDGgDdnU.js → AlertCircle-CGv2LagT.js} +1 -1
  2. package/dist/client/assets/{AreaChart-iCDv15_j.js → AreaChart-C8jz28H2.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-DcYZMYcp.js → ArrowLeft-CrqXhP5Q.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-C-JKgzzW.js → ArrowRight-PtPDnQeO.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-Xs8btF3m.js → ArrowUp-DWMH94N-.js} +1 -1
  6. package/dist/client/assets/{Check-Bum7-gpx.js → Check-OrdEpHh8.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-CGCTggu0.js → CheckCircle-ZifqNZkG.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-C307yAT0.js → ChevronRight-CLj2ZqtT.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-KvgVrvOl.js → ChevronSelectorVertical-CpUm5l1j.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-CZ5ILA-E.js → ChevronUp-DwN4CSvk.js} +1 -1
  11. package/dist/client/assets/{Copy01-AMwHi9CR.js → Copy01-iyRTWREU.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-9F1qqx5d.js → CreditCard01-CoUWna_2.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-BCEQFCLt.js → DotsVertical-C05jEl8q.js} +1 -1
  14. package/dist/client/assets/{Download01-DmH-thwp.js → Download01-CzfGo2fl.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-HqNwclqo.js → ErrorBarContext-DxG-Gwqv.js} +1 -1
  16. package/dist/client/assets/{Eye-C9BK0WpO.js → Eye-Cz2-nV7m.js} +1 -1
  17. package/dist/client/assets/{GitBranch01-8UQB0WNt.js → GitBranch01-G4Xokeyr.js} +1 -1
  18. package/dist/client/assets/{Globe01-66hYLRXC.js → Globe01-c3fEChsS.js} +1 -1
  19. package/dist/client/assets/{HardDrive-B1Me-FOx.js → HardDrive-CjWNQ53c.js} +1 -1
  20. package/dist/client/assets/{Image01-DVxIiG0a.js → Image01-CijeoW_8.js} +1 -1
  21. package/dist/client/assets/{Key01-eG7JQJD3.js → Key01-j6qNNGjk.js} +1 -1
  22. package/dist/client/assets/{Link01-D-2P1k10.js → Link01-CtsE0R0D.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-CMl1UKVD.js → LinkExternal01-DRhSoo2W.js} +1 -1
  24. package/dist/client/assets/{Monitor01-Dx2IHfNm.js → Monitor01-ASpw1r2B.js} +1 -1
  25. package/dist/client/assets/{Package-fd_l_BiE.js → Package-Co40SS3v.js} +1 -1
  26. package/dist/client/assets/{Palette-CFejZrzA.js → Palette-l-bW1Jj5.js} +1 -1
  27. package/dist/client/assets/{Play-DWGn9jzY.js → Play-DPtsotun.js} +1 -1
  28. package/dist/client/assets/{Plus-BB9moQlk.js → Plus-Db5S94rk.js} +1 -1
  29. package/dist/client/assets/{SearchLg-Dx_5UJpu.js → SearchLg-BKpVdtSc.js} +1 -1
  30. package/dist/client/assets/{SearchMd-DRTW6Eci.js → SearchMd-5J9ZvzPt.js} +1 -1
  31. package/dist/client/assets/{Sector-BLukRuC0.js → Sector-CEDNUVBW.js} +1 -1
  32. package/dist/client/assets/{Settings02-CxNahSF6.js → Settings02-CX9GU2_h.js} +1 -1
  33. package/dist/client/assets/{Share07-D21XeGjn.js → Share07-ajbW_r5c.js} +1 -1
  34. package/dist/client/assets/{Shield01-CTgru1Go.js → Shield01-DKmYeZMQ.js} +1 -1
  35. package/dist/client/assets/{Stars01-CEq_MKrs.js → Stars01-Bx4pQeLg.js} +1 -1
  36. package/dist/client/assets/{Sun-BnzNJ9ph.js → Sun-B0zPFK-z.js} +1 -1
  37. package/dist/client/assets/{Tool01-CuyN3PCD.js → Tool01-C97w77mt.js} +1 -1
  38. package/dist/client/assets/{Tool02-BASbnym5.js → Tool02-Rgho6xFo.js} +1 -1
  39. package/dist/client/assets/{Trash01-BhSt7amx.js → Trash01-BnoaysZr.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-DO4mZNHN.js → TrendUp01-B2IK8kp9.js} +1 -1
  41. package/dist/client/assets/{Upload01-BlXZHJIt.js → Upload01-QLEKcflz.js} +1 -1
  42. package/dist/client/assets/{User01-BHYLCtnk.js → User01-BYx93o00.js} +1 -1
  43. package/dist/client/assets/{UserSquare-B7oSdaaK.js → UserSquare-D121VNlC.js} +1 -1
  44. package/dist/client/assets/{Users01-QsT1MVSH.js → Users01-DxZpgNMB.js} +1 -1
  45. package/dist/client/assets/{Users03-BwXNg2js.js → Users03-BH7DTuey.js} +1 -1
  46. package/dist/client/assets/{XCircle-C2-e12le.js → XCircle-CZewIPeW.js} +1 -1
  47. package/dist/client/assets/{XClose-Dt5lNjhR.js → XClose-DPz14YDo.js} +1 -1
  48. package/dist/client/assets/{Zap-D1eUhlLV.js → Zap-PhE6JDGE.js} +1 -1
  49. package/dist/client/assets/{ZoomOut-6XJtTBIm.js → ZoomOut-DsYyutbV.js} +1 -1
  50. package/dist/client/assets/{access-gate-C9n3qFMJ.js → access-gate-BtnmxIIZ.js} +1 -1
  51. package/dist/client/assets/{agent-icon-CvRN2kIe.js → agent-icon-CqZT47B5.js} +1 -1
  52. package/dist/client/assets/{agents-list-7P-FBRl3.js → agents-list-BaWHdEgp.js} +1 -1
  53. package/dist/client/assets/{ai-providers-C7AEeTUw.js → ai-providers-BLwMpXNz.js} +1 -1
  54. package/dist/client/assets/{alert-Hw0kjni-.js → alert-Ziy_5z2J.js} +1 -1
  55. package/dist/client/assets/{alert-dialog-B99tFCPN.js → alert-dialog-DPc_fzyi.js} +1 -1
  56. package/dist/client/assets/{analytics-tab-B7tes2Gc.js → analytics-tab-N1p2Xs04.js} +1 -1
  57. package/dist/client/assets/api-keys-C6t-kS4-.js +1 -0
  58. package/dist/client/assets/{api-keys-Dfjx7xoL.js → api-keys-y8GYCxeE.js} +1 -1
  59. package/dist/client/assets/{app-editor-Dc7_2kRP.js → app-editor-BFFbsBfB.js} +1 -1
  60. package/dist/client/assets/{auth-CA9YH-f3.js → auth-XEUSFe4G.js} +1 -1
  61. package/dist/client/assets/{auth-catchall-Dv36CPjo.js → auth-catchall-rTdEtfmw.js} +1 -1
  62. package/dist/client/assets/{auth-entry-Dzg61dx3.js → auth-entry-BPySrhTo.js} +1 -1
  63. package/dist/client/assets/{auth-split-layout-CP-gPGo1.js → auth-split-layout-BONfi2Rj.js} +1 -1
  64. package/dist/client/assets/{authenticate-and-persist-oauth-BvkyzpZN.js → authenticate-and-persist-oauth-DRVJSg4u.js} +1 -1
  65. package/dist/client/assets/{automation-list-row-DNckdHdK.js → automation-list-row-pWHxlUwn.js} +1 -1
  66. package/dist/client/assets/{automation-runs-Cam7zjTB.js → automation-runs-CAJKg5F2.js} +1 -1
  67. package/dist/client/assets/{automations-CWYrhHD5.js → automations-CdiuzHyh.js} +1 -1
  68. package/dist/client/assets/{autosend-DonDFhf5.js → autosend-DXSzImGH.js} +1 -1
  69. package/dist/client/assets/{avatar-eSpZRnCw.js → avatar-2SmZuxZ8.js} +1 -1
  70. package/dist/client/assets/{badge-XewurO2c.js → badge-CsdSFwUS.js} +1 -1
  71. package/dist/client/assets/{block-document-DXkP4s-G.js → block-document-nZbGlStM.js} +1 -1
  72. package/dist/client/assets/{breadcrumb-BOorO6tz.js → breadcrumb-BDNhTm3V.js} +1 -1
  73. package/dist/client/assets/{buckets-BwnIpmT9.js → buckets-eTPri2zC.js} +1 -1
  74. package/dist/client/assets/{bulk-category-panel-BOGUZvpe.js → bulk-category-panel-BF6YfBVd.js} +1 -1
  75. package/dist/client/assets/{capability-load-error-C2MVQTkh.js → capability-load-error-x5n-DlZV.js} +1 -1
  76. package/dist/client/assets/{cards-JFqjIjqN.js → cards-C4c8buka.js} +1 -1
  77. package/dist/client/assets/{category-editor-D5y2bsYp.js → category-editor-D3Mu7OT9.js} +1 -1
  78. package/dist/client/assets/{cdn-tab-BKnxL2B5.js → cdn-tab-LzJwiBk6.js} +1 -1
  79. package/dist/client/assets/{chart-mE2TkzW3.js → chart-CRg8heLY.js} +1 -1
  80. package/dist/client/assets/{chat-context-BoK19tyJ.js → chat-context-BF1udRnT.js} +1 -1
  81. package/dist/client/assets/{checkbox-rGQPVLlM.js → checkbox-D5qaWCp0.js} +1 -1
  82. package/dist/client/assets/{choose-editor-CVBix5FG.js → choose-editor-kI07w4JH.js} +1 -1
  83. package/dist/client/assets/{cli-auth-success-BEN_pMrR.js → cli-auth-success-DHYJ8HFe.js} +1 -1
  84. package/dist/client/assets/{client-icons-D58J4srx.js → client-icons-C0PnsTTH.js} +1 -1
  85. package/dist/client/assets/{collection-detail-B9CbvuqZ.js → collection-detail-DjaMsxtF.js} +1 -1
  86. package/dist/client/assets/{collection-display-button-BeuXG52n.js → collection-display-button-C48rlblm.js} +1 -1
  87. package/dist/client/assets/{collection-search-DmicjHft.js → collection-search-BpTPwhoI.js} +1 -1
  88. package/dist/client/assets/{collection-table-wrapper-DgYJhm5y.js → collection-table-wrapper-CJiI6Ia-.js} +1 -1
  89. package/dist/client/assets/{collection-tabs-C6YGoh8i.js → collection-tabs-DJD19Xj2.js} +1 -1
  90. package/dist/client/assets/{command-C3gabQe3.js → command-185_z6Zw.js} +1 -1
  91. package/dist/client/assets/{commerce-onboarding-Bnqmsl3-.js → commerce-onboarding-RNJRITMx.js} +1 -1
  92. package/dist/client/assets/{connect-Q5DfFzFD.js → connect-D8bUIAHy.js} +1 -1
  93. package/dist/client/assets/{connect-layout-DWE0huJK.js → connect-layout-RZifaua7.js} +1 -1
  94. package/dist/client/assets/{connection-Bncsv4WN.js → connection-CrGg2u4l.js} +1 -1
  95. package/dist/client/assets/{connection-card-u8mXK_Ll.js → connection-card-BClWqucN.js} +1 -1
  96. package/dist/client/assets/{connection-detail-CwFWu0EH.js → connection-detail-DE1Qgr5A.js} +1 -1
  97. package/dist/client/assets/{connection-form-helpers-j2xch7QZ.js → connection-form-helpers-DUW9T-b4.js} +1 -1
  98. package/dist/client/assets/{connections-BhiGlSzc.js → connections-Du71jGOQ.js} +1 -1
  99. package/dist/client/assets/{create-organization-dialog-Bg1s74p9.js → create-organization-dialog-C54vb_Vq.js} +1 -1
  100. package/dist/client/assets/{decopilot-sse-pool-CdA-XfpC.js → decopilot-sse-pool-BdZvUT3v.js} +1 -1
  101. package/dist/client/assets/{dialog-Cb73HT1O.js → dialog-ChihYhwF.js} +1 -1
  102. package/dist/client/assets/{domain-settings-C8SUp69p.js → domain-settings-CKGbXxzq.js} +1 -1
  103. package/dist/client/assets/{drawer-CrnZ4v7V.js → drawer-CzXVcBN1.js} +1 -1
  104. package/dist/client/assets/{dropdown-menu-D5sP40Bh.js → dropdown-menu-DWuIuZTX.js} +1 -1
  105. package/dist/client/assets/{e2e-tab-D7wjbQ-q.js → e2e-tab-DDD6AJwF.js} +1 -1
  106. package/dist/client/assets/{editor-M0xQdBHV.js → editor-H7C8lNIT.js} +1 -1
  107. package/dist/client/assets/{empty-state-Bq5_azuW.js → empty-state-01NavnmO.js} +1 -1
  108. package/dist/client/assets/{empty-state-CGgojVAN.js → empty-state-DbicIg3-.js} +1 -1
  109. package/dist/client/assets/{extract-connection-data-CtGZSOXf.js → extract-connection-data-BAxq3n70.js} +1 -1
  110. package/dist/client/assets/{file-explorer-CTNRxawe.js → file-explorer-DVbI9hET.js} +1 -1
  111. package/dist/client/assets/{file-type-icon-oPj2x3Y3.js → file-type-icon-BlQUrQtA.js} +1 -1
  112. package/dist/client/assets/{folder-icon-DA126rB1.js → folder-icon-B6ia37fF.js} +1 -1
  113. package/dist/client/assets/{form-CNnCCWV8.js → form-BDJs5Qvh.js} +1 -1
  114. package/dist/client/assets/{general-DzDT6Vv2.js → general-CzDQYiv4.js} +1 -1
  115. package/dist/client/assets/{github-icon-DuVGJXID.js → github-icon-B2p3RHo5.js} +1 -1
  116. package/dist/client/assets/{hooks-CtKQL1uv.js → hooks-D33Qgg2F.js} +1 -1
  117. package/dist/client/assets/{index-CqNk88Pi.js → index-B-aYhG_e.js} +1 -1
  118. package/dist/client/assets/{index-C6UY0_k7.js → index-B6i4XsT7.js} +1 -1
  119. package/dist/client/assets/{index-DCVrdvYW.js → index-BE0X_WUs.js} +1 -1
  120. package/dist/client/assets/{index-DLFnfvCI.js → index-BJjb-RrB.js} +1 -1
  121. package/dist/client/assets/{index-DmMXAqxC.js → index-COKDKMgK.js} +2 -2
  122. package/dist/client/assets/{index-B7H8NK5d.js → index-CYM4KmAb.js} +1 -1
  123. package/dist/client/assets/{index-DnBcUKLj.js → index-Ceh367CC.js} +1 -1
  124. package/dist/client/assets/{index-BV8Tpaci.js → index-Cvaj1kBq.js} +1 -1
  125. package/dist/client/assets/{index-DMb7eqOB.js → index-D_Xfdeox.js} +6 -6
  126. package/dist/client/assets/{index-DmJNeh4D.js → index-DurnJcnQ.js} +1 -1
  127. package/dist/client/assets/index-HwmJeFgi.js +1 -0
  128. package/dist/client/assets/{index-DdHi1L3X.js → index-iV4FO7D4.js} +1 -1
  129. package/dist/client/assets/{index-redirect-BKtKAVbY.js → index-redirect-CA8ApUBF.js} +1 -1
  130. package/dist/client/assets/{infiniteQueryObserver-Dz5h94ot.js → infiniteQueryObserver-B2p8wz-k.js} +1 -1
  131. package/dist/client/assets/{infra-billing-CN-tK9zM.js → infra-billing-CP45pBlh.js} +1 -1
  132. package/dist/client/assets/{input-CgZSXYN4.js → input-6ZRoOsiB.js} +1 -1
  133. package/dist/client/assets/{integration-icon-BGwxObnE.js → integration-icon-pfLnYyjw.js} +1 -1
  134. package/dist/client/assets/{invite-member-dialog-CBjqBdax.js → invite-member-dialog-BLPYvues.js} +1 -1
  135. package/dist/client/assets/{label-C_Rf5I6_.js → label-Cgkh_1r3.js} +1 -1
  136. package/dist/client/assets/{layout-O0yDVNRV.js → layout-DZ0ScegO.js} +1 -1
  137. package/dist/client/assets/{login-dKW57zF9.js → login-CRmRFTIo.js} +1 -1
  138. package/dist/client/assets/{markdown-BKkWa5ul.js → markdown-Ba4606EI.js} +1 -1
  139. package/dist/client/assets/{mcp-app-renderer-BV6YR8SP.js → mcp-app-renderer-Wq2ZjTNw.js} +1 -1
  140. package/dist/client/assets/{mcp-oauth-CoSFRw9a.js → mcp-oauth-Dln_4wHe.js} +1 -1
  141. package/dist/client/assets/{members-C_HRSlhu.js → members-C62QA17c.js} +1 -1
  142. package/dist/client/assets/{monaco-editor-BtpiUfB5.js → monaco-editor-BdWxRxtU.js} +1 -1
  143. package/dist/client/assets/{monitoring-stats-row-Bdfr5UQN.js → monitoring-stats-row-B7g_eBc2.js} +1 -1
  144. package/dist/client/assets/{multi-select-DJ-Hbkxa.js → multi-select-DykJphEQ.js} +1 -1
  145. package/dist/client/assets/{oauth-callback-ai-provider-BTo8Dyys.js → oauth-callback-ai-provider-CacdgFwn.js} +1 -1
  146. package/dist/client/assets/{oauth-callback-s1eKXd1l.js → oauth-callback-wIu9v975.js} +1 -1
  147. package/dist/client/assets/{onboarding-Bnp9L2J4.js → onboarding-DbeL77sR.js} +1 -1
  148. package/dist/client/assets/{org-layout-CVOWyCRt.js → org-layout-BYvlasFg.js} +1 -1
  149. package/dist/client/assets/{organization-choice-CsoNwB5T.js → organization-choice-CVRJOb6w.js} +1 -1
  150. package/dist/client/assets/{orgs-C_WFB3ks.js → orgs-Dh2fj-vC.js} +1 -1
  151. package/dist/client/assets/{page-seo-form-D3PfSoRb.js → page-seo-form-smCDVfuh.js} +1 -1
  152. package/dist/client/assets/{popover-Da7smhdB.js → popover-BZalCRl4.js} +1 -1
  153. package/dist/client/assets/{post-calendar-BafS84ox.js → post-calendar-7D_MpmDL.js} +1 -1
  154. package/dist/client/assets/{post-editor-A7Y4rsBW.js → post-editor-DqXlddhs.js} +1 -1
  155. package/dist/client/assets/{primitives-B6oOpGSj.js → primitives-C1VlMQCy.js} +1 -1
  156. package/dist/client/assets/{profile-BmlhR-8h.js → profile-BQBBmEO4.js} +1 -1
  157. package/dist/client/assets/{project-app-view-BEgtCKq4.js → project-app-view-DNqnzR4P.js} +1 -1
  158. package/dist/client/assets/{project-icon-D745WVE6.js → project-icon-waYb9qf2.js} +1 -1
  159. package/dist/client/assets/{prompts-RnqO9xa8.js → prompts-C55rB_QX.js} +1 -1
  160. package/dist/client/assets/record-editor-kVrAelg9.js +1 -0
  161. package/dist/client/assets/redirect-editor-CUGhYigu.js +1 -0
  162. package/dist/client/assets/registry-Gg3kXYVK.js +2 -0
  163. package/dist/client/assets/{registry-layout-D8JQlcrg.js → registry-layout-BoH5DyRY.js} +1 -1
  164. package/dist/client/assets/{reports-BRPdFcRT.js → reports-CajbWTc2.js} +1 -1
  165. package/dist/client/assets/{repositories-BOf2hJSY.js → repositories-DSL102aD.js} +1 -1
  166. package/dist/client/assets/{repository-import-picker-2oY7vjq9.js → repository-import-picker-DZRr44iG.js} +1 -1
  167. package/dist/client/assets/{repository-picker--o_9En2b.js → repository-picker-BUxhbBbj.js} +1 -1
  168. package/dist/client/assets/{require-capability-rulhqizd.js → require-capability-B_9ys7EC.js} +1 -1
  169. package/dist/client/assets/{required-auth-layout-QwpJ5qZ8.js → required-auth-layout-DOxD4Y6H.js} +1 -1
  170. package/dist/client/assets/{reset-password-CAwnTD8T.js → reset-password-DWsVyW70.js} +1 -1
  171. package/dist/client/assets/{review-settings-C-5ihZ_2.js → review-settings-Di6D-8hx.js} +1 -1
  172. package/dist/client/assets/{roles-DviSZSJQ.js → roles-Dfp9hUTm.js} +1 -1
  173. package/dist/client/assets/{schema-CSGmlZMm.js → schema-jzUpa2jr.js} +1 -1
  174. package/dist/client/assets/{scroll-area-BhnxS9kb.js → scroll-area-DbragFMD.js} +1 -1
  175. package/dist/client/assets/{search-input-BCcfzUeH.js → search-input-DNu9Ocbc.js} +1 -1
  176. package/dist/client/assets/{secrets-CMYZfMLJ.js → secrets-CMBWyHaD.js} +1 -1
  177. package/dist/client/assets/{sections-editor-C7DU0S-p.js → sections-editor-D6ajNoWD.js} +1 -1
  178. package/dist/client/assets/{select-model-B6qnse1n.js → select-model-BXG1SRJJ.js} +1 -1
  179. package/dist/client/assets/{select-DQCnroeo.js → select-zab8WvKE.js} +1 -1
  180. package/dist/client/assets/{self-tool-result-XF_UID6C.js → self-tool-result-CyjCFi1v.js} +1 -1
  181. package/dist/client/assets/{seo-editor-IqwFAmtD.js → seo-editor-CNF0Icj0.js} +1 -1
  182. package/dist/client/assets/settings-layout-CspCvfER.js +1 -0
  183. package/dist/client/assets/{settings-sidebar-zCLDCwg0.js → settings-sidebar-B4oRDPXI.js} +1 -1
  184. package/dist/client/assets/{shell-controls-C61EWaK-.js → shell-controls-sbGWoJVI.js} +1 -1
  185. package/dist/client/assets/{shell-layout-km320KvY.js → shell-layout-Ccj_SXnk.js} +1 -1
  186. package/dist/client/assets/{skill-preview-3aJvIC4k.js → skill-preview-CJaOSWIY.js} +1 -1
  187. package/dist/client/assets/{skills--2BPNJVe.js → skills-D7ISxlba.js} +1 -1
  188. package/dist/client/assets/{sso-BsKl-6Al.js → sso-D43Y1aDt.js} +1 -1
  189. package/dist/client/assets/{store-BaCcJ63F.js → store-B0nI88-L.js} +1 -1
  190. package/dist/client/assets/store-registry-DhrI2BH7.js +2 -0
  191. package/dist/client/assets/{switch-QikprZ0C.js → switch-BlMtLJob.js} +1 -1
  192. package/dist/client/assets/{synced-repos-vqYxShY1.js → synced-repos-adBCVhN0.js} +1 -1
  193. package/dist/client/assets/{table-DZ15ysLv.js → table-Dmi8ccp7.js} +1 -1
  194. package/dist/client/assets/{tabs-Cq_qXG8d.js → tabs-B7ntmQTT.js} +1 -1
  195. package/dist/client/assets/{task-board-CpzOUqzD.js → task-board-y-SZtT16.js} +1 -1
  196. package/dist/client/assets/{task-route-C97W4nQK.js → task-route-APkjt4_d.js} +1 -1
  197. package/dist/client/assets/{tasks-Cj4SpjUW.js → tasks-xw7VotyX.js} +1 -1
  198. package/dist/client/assets/{textarea-DYMqdBZW.js → textarea-CYk__hb-.js} +1 -1
  199. package/dist/client/assets/{thread-intent-tfoIKTGL.js → thread-intent-BSwSc5Rc.js} +1 -1
  200. package/dist/client/assets/thread-route-BE_MFJTK.js +1 -0
  201. package/dist/client/assets/{toggle-group-C7s16zsy.js → toggle-group-0CywZwEp.js} +1 -1
  202. package/dist/client/assets/{toolbar-DsbPhHR2.js → toolbar-ChEtWcxo.js} +1 -1
  203. package/dist/client/assets/{toolbar-icon-button-4cTuMznu.js → toolbar-icon-button-DqEYlO40.js} +1 -1
  204. package/dist/client/assets/{track-Dp42ADCp.js → track-fOdfQ32P.js} +1 -1
  205. package/dist/client/assets/{types-C1-e4QHU.js → types-D2LkW7tm.js} +1 -1
  206. package/dist/client/assets/{use-ai-providers-D0MFnnnJ.js → use-ai-providers-B9zLoSLV.js} +1 -1
  207. package/dist/client/assets/{use-automations-Bxct96j5.js → use-automations-BGTeAVZt.js} +1 -1
  208. package/dist/client/assets/{use-autosave-Cf6m0nb3.js → use-autosave-GN52u-oI.js} +1 -1
  209. package/dist/client/assets/{use-connection-BL1yhZNp.js → use-connection-CsJuNLSb.js} +1 -1
  210. package/dist/client/assets/{use-copy-BpfelOsR.js → use-copy-s3gq1I2J.js} +1 -1
  211. package/dist/client/assets/{use-create-virtual-mcp-DEgqlG_P.js → use-create-virtual-mcp-BWTGIrto.js} +1 -1
  212. package/dist/client/assets/{use-date-fns-locale-Cz3dTPVf.js → use-date-fns-locale-CpaiyFeb.js} +1 -1
  213. package/dist/client/assets/{use-debounced-autosave-17VyC1_9.js → use-debounced-autosave-e48SLqgk.js} +1 -1
  214. package/dist/client/assets/{use-debounced-value-3lIFyc-B.js → use-debounced-value-snJET5z8.js} +1 -1
  215. package/dist/client/assets/{use-decopilot-events-CfnA_2wd.js → use-decopilot-events-tVpJUj13.js} +1 -1
  216. package/dist/client/assets/{use-delete-connection-CC4DEP5M.js → use-delete-connection-CNKkzHsp.js} +1 -1
  217. package/dist/client/assets/{use-deployment-admin-fCU-735J.js → use-deployment-admin-B1Q1KExf.js} +1 -1
  218. package/dist/client/assets/{use-destination-route-B73D_eIZ.js → use-destination-route-BLm-BAwC.js} +1 -1
  219. package/dist/client/assets/{use-file-configs-DbiVAtd9.js → use-file-configs-B7_VvtS_.js} +1 -1
  220. package/dist/client/assets/{use-infinite-scroll-CGrWQV9m.js → use-infinite-scroll-Cra9MhHK.js} +1 -1
  221. package/dist/client/assets/{use-join-requests-IU_EaGLg.js → use-join-requests-D_W99iIR.js} +1 -1
  222. package/dist/client/assets/{use-mcp-auth-status-23LCqBdd.js → use-mcp-auth-status-DDOAmttd.js} +1 -1
  223. package/dist/client/assets/{use-mcp-client-Dc7ilQkt.js → use-mcp-client-Cr62uIBo.js} +1 -1
  224. package/dist/client/assets/{use-mcp-prompts-DIloFBQg.js → use-mcp-prompts-Dvu7jADE.js} +1 -1
  225. package/dist/client/assets/{use-mcp-tools-yVPLqbTC.js → use-mcp-tools-CguGG2Ni.js} +1 -1
  226. package/dist/client/assets/{use-members-B-wX7jR_.js → use-members-B2SCOKsl.js} +1 -1
  227. package/dist/client/assets/{use-navigate-to-agent-DC_OOIzX.js → use-navigate-to-agent-BYYtuwrx.js} +1 -1
  228. package/dist/client/assets/{use-org-auth-client-CReY2uqU.js → use-org-auth-client-BGHwjU8g.js} +1 -1
  229. package/dist/client/assets/{use-org-notice-DyChybv5.js → use-org-notice-BX_9nz7z.js} +1 -1
  230. package/dist/client/assets/{use-org-sso-Dg6nqD1f.js → use-org-sso-eOUYuNMl.js} +1 -1
  231. package/dist/client/assets/{use-organization-roles-C55Ep3O6.js → use-organization-roles-BVZrkWLM.js} +1 -1
  232. package/dist/client/assets/{use-organization-settings-CwqtDA4J.js → use-organization-settings-DuZuLm7F.js} +1 -1
  233. package/dist/client/assets/{use-panel-navigate-DEpXw5wF.js → use-panel-navigate-Cd7zoDqa.js} +1 -1
  234. package/dist/client/assets/{use-registry-connections-B2DiSYUv.js → use-registry-connections-tJD8w0Y7.js} +1 -1
  235. package/dist/client/assets/{use-secrets-CXHV-_4u.js → use-secrets-BqOvXvNx.js} +1 -1
  236. package/dist/client/assets/{use-section-preview-base-D6hQ90tl.js → use-section-preview-base-c_3hslet.js} +1 -1
  237. package/dist/client/assets/{use-status-sounds-BElO3PMV.js → use-status-sounds-Bw_PDFm1.js} +1 -1
  238. package/dist/client/assets/{use-tags-DZUN-1Ut.js → use-tags-DGhJYs5v.js} +1 -1
  239. package/dist/client/assets/{use-view-mode-B3NLddU0.js → use-view-mode-BmArn4WI.js} +1 -1
  240. package/dist/client/assets/{use-virtual-mcp-CQsLZfmK.js → use-virtual-mcp-0ZIPz8eH.js} +1 -1
  241. package/dist/client/assets/useInfiniteQuery-1kKiN9aZ.js +1 -0
  242. package/dist/client/assets/useSuspenseInfiniteQuery-C4h4CiTA.js +1 -0
  243. package/dist/client/assets/{users-Bug3AdLE.js → users-CzFESlcK.js} +1 -1
  244. package/dist/client/assets/{variant-calendar-C3HqmQB-.js → variant-calendar-_o_Wke_W.js} +1 -1
  245. package/dist/client/assets/{view-mode-toggle-8QAhZAUM.js → view-mode-toggle-Dq1Higa9.js} +1 -1
  246. package/dist/client/index.html +1 -1
  247. package/dist/server/cli.js +568 -568
  248. package/dist/server/migrate-dbos.js +1 -1
  249. package/dist/server/migrate.js +168 -168
  250. package/dist/server/server.js +363 -363
  251. package/package.json +1 -1
  252. package/dist/client/assets/api-keys-CNyKDa-z.js +0 -1
  253. package/dist/client/assets/index-CLhec1d0.js +0 -1
  254. package/dist/client/assets/record-editor-B29B1sLg.js +0 -1
  255. package/dist/client/assets/redirect-editor-VT1SstB-.js +0 -1
  256. package/dist/client/assets/registry-C5al6BLo.js +0 -2
  257. package/dist/client/assets/settings-layout-CU40hjbA.js +0 -1
  258. package/dist/client/assets/store-registry-DQqHtnqc.js +0 -2
  259. package/dist/client/assets/thread-route-C9DY5m1F.js +0 -1
  260. package/dist/client/assets/useInfiniteQuery-DvifJ2DA.js +0 -1
  261. package/dist/client/assets/useSuspenseInfiniteQuery-DL3cGDzg.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null,x)}var m=(_,x)=>{for(var u in x)cK(_,u,{get:x[u],enumerable:!0,configurable:!0,set:oK.bind(x,u)})};import{Migrator as qK,sql as a}from"kysely";var t_={};m(t_,{up:()=>aK,down:()=>rK});import{sql as DT}from"kysely";async function aK(_){await DT`
2
+ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null,x)}var m=(_,x)=>{for(var u in x)oN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:rN.bind(x,u)})};import{Migrator as cN,sql as a}from"kysely";var t_={};m(t_,{up:()=>eN,down:()=>lN});import{sql as FT}from"kysely";async function eN(_){await FT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function lN(_){await FT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var v_={};m(v_,{up:()=>dN,down:()=>sN});import{sql as RT}from"kysely";async function dN(_){await RT`
3
3
  INSERT INTO "organization" (id, name, slug, "createdAt")
4
4
  SELECT
5
5
  'org_user_fs',
@@ -13,9 +13,9 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
13
13
  END,
14
14
  now()
15
15
  ON CONFLICT (id) DO NOTHING
16
- `.execute(_)}async function rK(_){await DT`
16
+ `.execute(_)}async function sN(_){await RT`
17
17
  DELETE FROM "organization" WHERE id = 'org_user_fs'
18
- `.execute(_)}var i_={};m(i_,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function lK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var q_={};m(q_,{up:()=>dK,down:()=>sK});async function dK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function sK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var g_={};m(g_,{up:()=>_N,down:()=>xN});import{sql as r}from"kysely";var bK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function FT(_,x){for(let{table:u,column:T}of bK){let C=`${u}_${T}_check`,K=x.map((E)=>`'${E}'`).join(", ");await r.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await r.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${K}))`).execute(_)}}async function _N(_){await FT(_,["github","gitlab","bitbucket"])}async function xN(_){await r`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await FT(_,["github","gitlab"])}var c_={};m(c_,{up:()=>uN,down:()=>mN});async function uN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function mN(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var h_={};m(h_,{up:()=>TN,down:()=>KN});import{sql as CN}from"kysely";async function TN(_){await CN`
18
+ `.execute(_)}var q_={};m(q_,{up:()=>bN,down:()=>_K});async function bN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function _K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var g_={};m(g_,{up:()=>xK,down:()=>uK});async function xK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function uK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var c_={};m(c_,{up:()=>CK,down:()=>TK});import{sql as r}from"kysely";var mK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function YT(_,x){for(let{table:u,column:T}of mK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await r.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await r.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function CK(_){await YT(_,["github","gitlab","bitbucket"])}async function TK(_){await r`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await YT(_,["github","gitlab"])}var h_={};m(h_,{up:()=>NK,down:()=>KK});async function NK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function KK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var o_={};m(o_,{up:()=>zK,down:()=>PK});import{sql as EK}from"kysely";async function zK(_){await EK`
19
19
  CREATE TABLE github_connect_flows (
20
20
  id text PRIMARY KEY,
21
21
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -25,7 +25,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
25
25
  );
26
26
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
27
27
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
28
- `.execute(_)}async function KN(_){await _.schema.dropTable("github_connect_flows").execute()}var o_={};m(o_,{up:()=>NN,down:()=>EN});async function NN(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function EN(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var a_={};m(a_,{up:()=>zN,down:()=>PN});import{sql as P_}from"kysely";async function zN(_){await P_`
28
+ `.execute(_)}async function PK(_){await _.schema.dropTable("github_connect_flows").execute()}var a_={};m(a_,{up:()=>$K,down:()=>UK});async function $K(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function UK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var r_={};m(r_,{up:()=>JK,down:()=>XK});import{sql as P_}from"kysely";async function JK(_){await P_`
29
29
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
30
30
  DECLARE
31
31
  metadata_json jsonb;
@@ -81,19 +81,19 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
81
81
  FROM repositories r WHERE s.repository_id IS NULL
82
82
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
83
83
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
84
- `.execute(_)}async function PN(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var r_={};m(r_,{up:()=>$N,down:()=>UN});import{sql as M}from"kysely";async function $N(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`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(M`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(M`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(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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 UN(_){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 e_={};m(e_,{up:()=>JN,down:()=>XN});import{sql as RT}from"kysely";async function JN(_){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(RT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(RT`CURRENT_TIMESTAMP`)).execute()}async function XN(_){await _.schema.dropTable("organization_settings").execute()}var l_={};m(l_,{up:()=>jN,down:()=>QN});async function jN(_){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 QN(_){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 d_={};m(d_,{up:()=>WN,down:()=>ZN});async function WN(_){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 ZN(_){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 s_={};m(s_,{up:()=>LN,down:()=>DN});async function LN(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function DN(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var b_={};m(b_,{up:()=>RN,down:()=>YN});import{sql as FN}from"kysely";async function RN(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",FN`text`).execute()}async function YN(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var _x={};m(_x,{up:()=>HN,down:()=>MN});async function HN(_){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 MN(_){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 xx={};m(xx,{up:()=>BN,down:()=>GN});import{sql as e}from"kysely";async function BN(_){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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`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 GN(_){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 ux={};m(ux,{up:()=>fN,down:()=>ON});import{sql as yN}from"kysely";async function fN(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function ON(_){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(yN`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 mx={};m(mx,{up:()=>nN,down:()=>AN});import{sql as $_}from"kysely";async function nN(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 $_`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 AN(_){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 Cx={};m(Cx,{up:()=>SN,down:()=>IN});async function SN(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function IN(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Tx={};m(Tx,{up:()=>wN,down:()=>VN});import{sql as U_}from"kysely";async function wN(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
84
+ `.execute(_)}async function XK(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var e_={};m(e_,{up:()=>QK,down:()=>jK});import{sql as M}from"kysely";async function QK(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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(M`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(M`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(M`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(M`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(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`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 jK(_){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 l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as HT}from"kysely";async function WK(_){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(HT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).execute()}async function ZK(_){await _.schema.dropTable("organization_settings").execute()}var d_={};m(d_,{up:()=>LK,down:()=>DK});async function LK(_){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 DK(_){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 s_={};m(s_,{up:()=>FK,down:()=>RK});async function FK(_){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 RK(_){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 b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var _x={};m(_x,{up:()=>nK,down:()=>BK});import{sql as MK}from"kysely";async function nK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",MK`text`).execute()}async function BK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var xx={};m(xx,{up:()=>GK,down:()=>yK});async function GK(_){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 yK(_){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 ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as e}from"kysely";async function fK(_){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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`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(e`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 OK(_){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 mx={};m(mx,{up:()=>SK,down:()=>IK});import{sql as AK}from"kysely";async function SK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function IK(_){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(AK`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 Cx={};m(Cx,{up:()=>wK,down:()=>VK});import{sql as $_}from"kysely";async function wK(_){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($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`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($_`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 $_`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 VK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
85
85
  UPDATE gateways
86
86
  SET tool_selection_mode = CASE
87
87
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
88
88
  ELSE 'inclusion'
89
89
  END
90
- `.execute(_),await U_`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 VN(_){await U_`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 U_`
90
+ `.execute(_),await U_`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 tK(_){await U_`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 U_`
91
91
  UPDATE gateways
92
92
  SET tool_selection_strategy = CASE
93
93
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
94
94
  ELSE NULL
95
95
  END
96
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Kx={};m(Kx,{up:()=>kN,down:()=>pN});async function kN(_){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 pN(_){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 Nx={};m(Nx,{up:()=>vN,down:()=>tN});async function vN(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function tN(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Ex={};m(Ex,{up:()=>iN,down:()=>qN});async function iN(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function qN(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var zx={};m(zx,{up:()=>gN,down:()=>cN});async function gN(_){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 cN(_){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 Px={};m(Px,{up:()=>oN,down:()=>aN});import{sql as hN}from"kysely";async function oN(_){await hN`
96
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Kx={};m(Kx,{up:()=>vK,down:()=>qK});async function vK(_){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 qK(_){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 Ex={};m(Ex,{up:()=>gK,down:()=>cK});async function gK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function cK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var zx={};m(zx,{up:()=>hK,down:()=>oK});async function hK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function oK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Px={};m(Px,{up:()=>aK,down:()=>rK});async function aK(_){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 rK(_){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 $x={};m($x,{up:()=>lK,down:()=>dK});import{sql as eK}from"kysely";async function lK(_){await eK`
97
97
  DELETE FROM downstream_tokens
98
98
  WHERE id NOT IN (
99
99
  SELECT id FROM (
@@ -103,7 +103,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
103
103
  ) ranked
104
104
  WHERE rn = 1
105
105
  )
106
- `.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 aN(_){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 $x={};m($x,{up:()=>rN,down:()=>eN});async function rN(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function eN(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Ux={};m(Ux,{up:()=>lN,down:()=>dN});import{sql as YT}from"kysely";async function lN(_){await YT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function dN(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await YT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Jx={};m(Jx,{up:()=>sN,down:()=>bN});async function sN(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function bN(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Xx={};m(Xx,{up:()=>_E,down:()=>xE});import{sql as J_}from"kysely";async function _E(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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 xE(_){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 jx={};m(jx,{up:()=>uE,down:()=>mE});async function uE(_){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 mE(_){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 Qx={};m(Qx,{up:()=>CE,down:()=>TE});async function CE(_){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 TE(_){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 Wx={};m(Wx,{up:()=>KE,down:()=>NE});import{sql as W}from"kysely";async function KE(_){await W`
106
+ `.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 dK(_){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 Ux={};m(Ux,{up:()=>sK,down:()=>bK});async function sK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function bK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Jx={};m(Jx,{up:()=>_E,down:()=>xE});import{sql as MT}from"kysely";async function _E(_){await MT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function xE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await MT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Xx={};m(Xx,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function mE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Qx={};m(Qx,{up:()=>CE,down:()=>TE});import{sql as J_}from"kysely";async function CE(_){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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`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 TE(_){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 jx={};m(jx,{up:()=>NE,down:()=>KE});async function NE(_){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 KE(_){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 Wx={};m(Wx,{up:()=>EE,down:()=>zE});async function EE(_){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 zE(_){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 Zx={};m(Zx,{up:()=>PE,down:()=>$E});import{sql as W}from"kysely";async function PE(_){await W`
107
107
  INSERT INTO connections (
108
108
  id,
109
109
  organization_id,
@@ -150,7 +150,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
150
150
  created_at,
151
151
  updated_at
152
152
  FROM virtual_mcps
153
- `.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 NE(_){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(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 W`
153
+ `.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 W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`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 W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`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 $E(_){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(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 W`
154
154
  INSERT INTO virtual_mcps (
155
155
  id, organization_id, title, description, icon, status,
156
156
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -160,7 +160,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
160
160
  created_at, updated_at, created_by, NULL, 'inclusion'
161
161
  FROM connections
162
162
  WHERE connection_type = 'VIRTUAL'
163
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Zx={};m(Zx,{up:()=>EE,down:()=>zE});async function EE(_){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 zE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var Lx={};m(Lx,{up:()=>PE,down:()=>$E});import{sql as B}from"kysely";async function PE(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
163
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Lx={};m(Lx,{up:()=>UE,down:()=>JE});async function UE(_){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 JE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var Dx={};m(Dx,{up:()=>XE,down:()=>QE});import{sql as n}from"kysely";async function XE(_){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(n`CURRENT_TIMESTAMP`)).execute(),await n`
164
164
  INSERT INTO connection_aggregations_new (
165
165
  id, parent_connection_id, child_connection_id,
166
166
  selected_tools, selected_resources, selected_prompts, created_at
@@ -169,7 +169,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
169
169
  id, parent_connection_id, child_connection_id,
170
170
  selected_tools, selected_resources, selected_prompts, created_at
171
171
  FROM connection_aggregations
172
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 $E(_){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(B`CURRENT_TIMESTAMP`)).execute(),await B`
172
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 QE(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).execute(),await n`
173
173
  INSERT INTO connection_aggregations_new (
174
174
  id, parent_connection_id, child_connection_id,
175
175
  selected_tools, selected_resources, selected_prompts, created_at
@@ -178,7 +178,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
178
178
  id, parent_connection_id, child_connection_id,
179
179
  selected_tools, selected_resources, selected_prompts, created_at
180
180
  FROM connection_aggregations
181
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await B`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await B`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await B`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 Fx={};m(Fx,{up:()=>UE,down:()=>JE});import{sql as Dx}from"kysely";async function UE(_){await Dx`
181
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`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 Rx={};m(Rx,{up:()=>jE,down:()=>WE});import{sql as Fx}from"kysely";async function jE(_){await Fx`
182
182
  UPDATE connections
183
183
  SET connection_url = connection_url || '/management',
184
184
  tools = NULL,
@@ -186,42 +186,42 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
186
186
  WHERE connection_url LIKE '%/mcp'
187
187
  AND connection_url NOT LIKE '%/mcp/management'
188
188
  AND app_name = '@deco/management-mcp'
189
- `.execute(_),await Dx`
189
+ `.execute(_),await Fx`
190
190
  UPDATE connections
191
191
  SET tools = NULL,
192
192
  updated_at = CURRENT_TIMESTAMP
193
193
  WHERE app_name = '@deco/management-mcp'
194
194
  AND tools IS NOT NULL
195
- `.execute(_)}async function JE(_){await Dx`
195
+ `.execute(_)}async function WE(_){await Fx`
196
196
  UPDATE connections
197
197
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
198
198
  updated_at = CURRENT_TIMESTAMP
199
199
  WHERE connection_url LIKE '%/mcp/management'
200
200
  AND app_name = '@deco/management-mcp'
201
- `.execute(_)}var Yx={};m(Yx,{up:()=>XE,down:()=>jE});import{sql as Rx}from"kysely";async function XE(_){await Rx`
201
+ `.execute(_)}var Hx={};m(Hx,{up:()=>ZE,down:()=>LE});import{sql as Yx}from"kysely";async function ZE(_){await Yx`
202
202
  UPDATE connections
203
203
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
204
204
  tools = NULL,
205
205
  updated_at = CURRENT_TIMESTAMP
206
206
  WHERE connection_url LIKE '%/mcp/management'
207
207
  AND app_name = '@deco/management-mcp'
208
- `.execute(_),await Rx`
208
+ `.execute(_),await Yx`
209
209
  UPDATE connections
210
210
  SET tools = NULL,
211
211
  updated_at = CURRENT_TIMESTAMP
212
212
  WHERE connection_url LIKE '%/mcp/self'
213
213
  AND app_name = '@deco/management-mcp'
214
214
  AND tools IS NOT NULL
215
- `.execute(_)}async function jE(_){await Rx`
215
+ `.execute(_)}async function LE(_){await Yx`
216
216
  UPDATE connections
217
217
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
218
218
  updated_at = CURRENT_TIMESTAMP
219
219
  WHERE connection_url LIKE '%/mcp/self'
220
220
  AND app_name = '@deco/management-mcp'
221
- `.execute(_)}var Hx={};m(Hx,{up:()=>QE,down:()=>WE});async function QE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function WE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Mx={};m(Mx,{up:()=>ZE,down:()=>LE});import{sql as HT}from"kysely";async function ZE(_){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(HT`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(HT`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 LE(_){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 Bx={};m(Bx,{up:()=>DE,down:()=>FE});import{sql as l}from"kysely";async function DE(_){await l`
221
+ `.execute(_)}var Mx={};m(Mx,{up:()=>DE,down:()=>FE});async function DE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function FE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var nx={};m(nx,{up:()=>RE,down:()=>YE});import{sql as nT}from"kysely";async function RE(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(nT`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(nT`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 YE(_){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 Bx={};m(Bx,{up:()=>HE,down:()=>ME});import{sql as l}from"kysely";async function HE(_){await l`
222
222
  ALTER TABLE connection_aggregations
223
223
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
224
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function FE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await l`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await l`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(l`CURRENT_TIMESTAMP`)).execute(),await l`
224
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function ME(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await l`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await l`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(l`CURRENT_TIMESTAMP`)).execute(),await l`
225
225
  INSERT INTO connection_aggregations_new (
226
226
  id, parent_connection_id, child_connection_id,
227
227
  selected_tools, selected_resources, selected_prompts, created_at
@@ -230,42 +230,42 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
230
230
  id, parent_connection_id, child_connection_id,
231
231
  selected_tools, selected_resources, selected_prompts, created_at
232
232
  FROM connection_aggregations
233
- `.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 Gx={};m(Gx,{up:()=>BE,down:()=>GE});import{webcrypto as BT}from"crypto";var MT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var RE=128,w,k;function YE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*RE),BT.getRandomValues(w),k=0;else if(k+_>w.length)BT.getRandomValues(w),k=0;k+=_}function p(_=21){YE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=MT[w[u]&63];return x}var HE="org-admin",ME="Organization Admin";async function BE(_){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 T=new Date().toISOString(),C=`proj_${p()}`,K=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:HE,name:ME,description:null,enabled_plugins:K?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function GE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var yx={};m(yx,{up:()=>yE,down:()=>fE});async function yE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function fE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var fx={};m(fx,{up:()=>OE,down:()=>nE});async function OE(_){}async function nE(_){}var Ox={};m(Ox,{up:()=>AE,down:()=>SE});async function AE(_){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 SE(_){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 nx={};m(nx,{up:()=>IE,down:()=>wE});import{sql as GT}from"kysely";async function IE(_){await GT`
233
+ `.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 Gx={};m(Gx,{up:()=>fE,down:()=>OE});import{webcrypto as GT}from"crypto";var BT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var nE=128,w,k;function BE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*nE),GT.getRandomValues(w),k=0;else if(k+_>w.length)GT.getRandomValues(w),k=0;k+=_}function p(_=21){BE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=BT[w[u]&63];return x}var GE="org-admin",yE="Organization Admin";async function fE(_){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 T=new Date().toISOString(),C=`proj_${p()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:GE,name:yE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function OE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var yx={};m(yx,{up:()=>AE,down:()=>SE});async function AE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function SE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var fx={};m(fx,{up:()=>IE,down:()=>wE});async function IE(_){}async function wE(_){}var Ox={};m(Ox,{up:()=>VE,down:()=>kE});async function VE(_){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 kE(_){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 Ax={};m(Ax,{up:()=>pE,down:()=>iE});import{sql as yT}from"kysely";async function pE(_){await yT`
234
234
  UPDATE connections
235
235
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
236
236
  tools = NULL,
237
237
  updated_at = CURRENT_TIMESTAMP
238
238
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
239
239
  AND app_name = 'deco-registry'
240
- `.execute(_)}async function wE(_){await GT`
240
+ `.execute(_)}async function iE(_){await yT`
241
241
  UPDATE connections
242
242
  SET connection_url = 'https://api.decocms.com/mcp/registry',
243
243
  updated_at = CURRENT_TIMESTAMP
244
244
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
245
245
  AND app_name = 'deco-registry'
246
- `.execute(_)}var Ax={};m(Ax,{up:()=>kE,down:()=>pE});import{sql as VE}from"kysely";async function kE(_){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(VE`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 pE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Sx={};m(Sx,{up:()=>tE,down:()=>iE});import{sql as vE}from"kysely";async function tE(_){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(vE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function iE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var Ix={};m(Ix,{up:()=>qE,down:()=>gE});import{sql as n}from"kysely";async function qE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(n`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).execute(),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await n`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function gE(_){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 wx={};m(wx,{up:()=>cE,down:()=>hE});async function cE(_){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 hE(_){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 Vx={};m(Vx,{up:()=>oE,down:()=>aE});async function oE(_){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 aE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var kx={};m(kx,{up:()=>rE,down:()=>eE});import{sql as yT}from"kysely";async function rE(_){await yT`
246
+ `.execute(_)}var Sx={};m(Sx,{up:()=>vE,down:()=>qE});import{sql as tE}from"kysely";async function vE(_){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(tE`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 qE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Ix={};m(Ix,{up:()=>cE,down:()=>hE});import{sql as gE}from"kysely";async function cE(_){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(gE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function hE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var wx={};m(wx,{up:()=>oE,down:()=>aE});import{sql as O}from"kysely";async function oE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`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(O`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(O`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(O`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(O`CURRENT_TIMESTAMP`)).execute(),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await O`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 aE(_){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 Vx={};m(Vx,{up:()=>rE,down:()=>eE});async function rE(_){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 eE(_){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 kx={};m(kx,{up:()=>lE,down:()=>dE});async function lE(_){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 dE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var px={};m(px,{up:()=>sE,down:()=>bE});import{sql as fT}from"kysely";async function sE(_){await fT`
247
247
  UPDATE connections
248
248
  SET title = 'CMS MCP',
249
249
  tools = NULL,
250
250
  updated_at = CURRENT_TIMESTAMP
251
251
  WHERE app_name = '@deco/management-mcp'
252
- `.execute(_)}async function eE(_){await yT`
252
+ `.execute(_)}async function bE(_){await fT`
253
253
  UPDATE connections
254
254
  SET title = 'Mesh MCP',
255
255
  updated_at = CURRENT_TIMESTAMP
256
256
  WHERE app_name = '@deco/management-mcp'
257
- `.execute(_)}var px={};m(px,{up:()=>lE,down:()=>dE});import{sql as fT}from"kysely";async function lE(_){await fT`
257
+ `.execute(_)}var ix={};m(ix,{up:()=>_z,down:()=>xz});import{sql as OT}from"kysely";async function _z(_){await OT`
258
258
  UPDATE connections
259
259
  SET title = 'Deco CMS',
260
260
  tools = NULL,
261
261
  updated_at = CURRENT_TIMESTAMP
262
262
  WHERE app_name = '@deco/management-mcp'
263
- `.execute(_)}async function dE(_){await fT`
263
+ `.execute(_)}async function xz(_){await OT`
264
264
  UPDATE connections
265
265
  SET title = 'CMS MCP',
266
266
  updated_at = CURRENT_TIMESTAMP
267
267
  WHERE app_name = '@deco/management-mcp'
268
- `.execute(_)}var vx={};m(vx,{up:()=>sE,down:()=>bE});async function sE(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function bE(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var tx={};m(tx,{up:()=>_z,down:()=>xz});async function _z(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function xz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var qx={};m(qx,{up:()=>uz,down:()=>mz});import{sql as ix}from"kysely";async function uz(_){await ix`
268
+ `.execute(_)}var tx={};m(tx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function mz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});async function Cz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Tz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var gx={};m(gx,{up:()=>Nz,down:()=>Kz});import{sql as qx}from"kysely";async function Nz(_){await qx`
269
269
  UPDATE organization_settings
270
270
  SET enabled_plugins = (
271
271
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -274,7 +274,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
274
274
  )
275
275
  WHERE enabled_plugins IS NOT NULL
276
276
  AND enabled_plugins LIKE '%object-storage%'
277
- `.execute(_),await ix`
277
+ `.execute(_),await qx`
278
278
  UPDATE projects
279
279
  SET enabled_plugins = (
280
280
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -283,28 +283,28 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
283
283
  )
284
284
  WHERE enabled_plugins IS NOT NULL
285
285
  AND enabled_plugins LIKE '%object-storage%'
286
- `.execute(_),await ix`
286
+ `.execute(_),await qx`
287
287
  DELETE FROM project_plugin_configs
288
288
  WHERE plugin_id = 'object-storage'
289
- `.execute(_)}async function mz(_){}var gx={};m(gx,{up:()=>Cz,down:()=>Tz});import{sql as OT}from"kysely";async function Cz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await OT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function Tz(_){await OT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var hx={};m(hx,{up:()=>Kz,down:()=>Nz});import{sql as cx}from"kysely";async function Kz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await cx`
289
+ `.execute(_)}async function Kz(_){}var cx={};m(cx,{up:()=>Ez,down:()=>zz});import{sql as AT}from"kysely";async function Ez(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await AT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function zz(_){await AT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ox={};m(ox,{up:()=>Pz,down:()=>$z});import{sql as hx}from"kysely";async function Pz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await hx`
290
290
  ALTER TABLE connections
291
291
  ADD CONSTRAINT chk_connections_subtype
292
292
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
293
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await cx`
293
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await hx`
294
294
  UPDATE connections
295
295
  SET subtype = 'agent'
296
296
  WHERE connection_type = 'VIRTUAL'
297
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(N)=>N.primaryKey()).addColumn("virtual_mcp_id","text",(N)=>N.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(N)=>N.notNull()).addColumn("connection_id","text",(N)=>N.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(N)=>N.notNull()).addColumn("updated_at","text",(N)=>N.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(),T=new Map;for(let N of u)T.set(N.organizationId,N.userId);let C=new Map;for(let N of x){let z=`vir_${p()}`;C.set(N.id,z);let $=N.ui?JSON.parse(N.ui):null,U=JSON.stringify({enabled_plugins:N.enabled_plugins?JSON.parse(N.enabled_plugins):null,ui:$,migrated_from_project:N.id,migrated_project_slug:N.slug}),Q=T.get(N.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:N.organization_id,created_by:Q,updated_by:null,title:N.name,description:N.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:N.created_at,updated_at:N.updated_at}).execute()}let K=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let N of K){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${p()}`,parent_connection_id:z,child_connection_id:N.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:N.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let N of E){let z=C.get(N.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${p()}`,virtual_mcp_id:z,plugin_id:N.plugin_id,connection_id:N.connection_id,settings:N.settings,created_at:N.created_at,updated_at:N.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Nz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await cx`
297
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.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(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${p()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),j=T.get(K.organization_id);if(!j)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:j,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${p()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${p()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function $z(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await hx`
298
298
  ALTER TABLE connections
299
299
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
300
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ox={};m(ox,{up:()=>zz,down:()=>Pz});import{sql as Ez}from"kysely";async function zz(_){await Ez`
300
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ax={};m(ax,{up:()=>Jz,down:()=>Xz});import{sql as Uz}from"kysely";async function Jz(_){await Uz`
301
301
  DELETE FROM connections
302
302
  WHERE connection_type = 'VIRTUAL'
303
303
  AND subtype = 'project'
304
304
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
305
- `.execute(_)}async function Pz(_){}var ax={};m(ax,{up:()=>Uz,down:()=>Jz});import{sql as $z}from"kysely";async function Uz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await $z`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Jz(_){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 ex={};m(ex,{up:()=>Xz,down:()=>jz});import{sql as rx}from"kysely";async function Xz(_){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(rx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(rx`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(rx`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 jz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var lx={};m(lx,{up:()=>Qz,down:()=>Wz});async function Qz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Wz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var dx={};m(dx,{up:()=>Zz,down:()=>Lz});async function Zz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Lz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var bx={};m(bx,{up:()=>Fz,down:()=>Rz});import{sql as nT}from"kysely";function sx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Dz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return sx(T)}catch{return sx(_.connection_url)}if(_.title)return sx(_.title);return _.id}async function Fz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await nT`
305
+ `.execute(_)}async function Xz(_){}var rx={};m(rx,{up:()=>jz,down:()=>Wz});import{sql as Qz}from"kysely";async function jz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Qz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Wz(_){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 lx={};m(lx,{up:()=>Zz,down:()=>Lz});import{sql as ex}from"kysely";async function Zz(_){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(ex`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ex`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(ex`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 Lz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var dx={};m(dx,{up:()=>Dz,down:()=>Fz});async function Dz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Fz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var sx={};m(sx,{up:()=>Rz,down:()=>Yz});async function Rz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Yz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var _u={};m(_u,{up:()=>Mz,down:()=>nz});import{sql as ST}from"kysely";function bx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Hz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return bx(T)}catch{return bx(_.connection_url)}if(_.title)return bx(_.title);return _.id}async function Mz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await ST`
306
306
  SELECT id, app_name, connection_url, title FROM connections
307
- `.execute(_);for(let u of x.rows){let T=Dz(u);await nT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function Rz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var _u={};m(_u,{up:()=>Yz,down:()=>Hz});import{sql as d}from"kysely";async function Yz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await d`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await d`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 Hz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await d`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await d`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await d`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 xu={};m(xu,{up:()=>Mz,down:()=>Bz});async function Mz(_){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 Bz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var uu={};m(uu,{up:()=>Gz,down:()=>yz});import{sql as X_}from"kysely";async function Gz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await X_`
307
+ `.execute(_);for(let u of x.rows){let T=Hz(u);await ST`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function nz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var xu={};m(xu,{up:()=>Bz,down:()=>Gz});import{sql as d}from"kysely";async function Bz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await d`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await d`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 Gz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await d`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await d`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await d`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 uu={};m(uu,{up:()=>yz,down:()=>fz});async function yz(_){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 fz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var mu={};m(mu,{up:()=>Oz,down:()=>Az});import{sql as X_}from"kysely";async function Oz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await X_`
308
308
  UPDATE threads
309
309
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
310
310
  WHERE agent_ids IS NOT NULL
@@ -314,55 +314,55 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
314
314
  `.execute(_),await X_`
315
315
  CREATE INDEX idx_threads_virtual_mcp_id
316
316
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
317
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function yz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await X_`
317
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Az(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await X_`
318
318
  UPDATE threads
319
319
  SET agent_ids = CASE
320
320
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
321
321
  THEN jsonb_build_array(virtual_mcp_id)::text
322
322
  ELSE '[]'
323
323
  END
324
- `.execute(_),await X_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var mu={};m(mu,{up:()=>fz,down:()=>Oz});async function fz(_){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 Oz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Cu={};m(Cu,{up:()=>nz,down:()=>Az});async function nz(_){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 Az(_){await _.schema.dropTable("kv").execute()}var Tu={};m(Tu,{up:()=>Sz,down:()=>Iz});async function Sz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function Iz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Ku={};m(Ku,{up:()=>wz,down:()=>Vz});async function wz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function Vz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});import{sql as D}from"kysely";async function kz(_){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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`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(D`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(D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 pz(_){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 Eu={};m(Eu,{up:()=>vz,down:()=>tz});import{sql as v}from"kysely";async function vz(_){await v`
324
+ `.execute(_),await X_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Cu={};m(Cu,{up:()=>Sz,down:()=>Iz});async function Sz(_){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 Iz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Tu={};m(Tu,{up:()=>wz,down:()=>Vz});async function wz(_){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 Vz(_){await _.schema.dropTable("kv").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function pz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Ku={};m(Ku,{up:()=>iz,down:()=>tz});async function iz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function tz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Eu={};m(Eu,{up:()=>vz,down:()=>qz});import{sql as D}from"kysely";async function vz(_){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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 D`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(D`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(D`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(D`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(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`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 qz(_){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 zu={};m(zu,{up:()=>gz,down:()=>cz});import{sql as i}from"kysely";async function gz(_){await i`
325
325
  ALTER TABLE event_subscriptions
326
326
  ALTER COLUMN enabled DROP DEFAULT
327
- `.execute(_),await v`
327
+ `.execute(_),await i`
328
328
  ALTER TABLE event_subscriptions
329
329
  ALTER COLUMN enabled TYPE boolean
330
330
  USING enabled::boolean
331
- `.execute(_),await v`
331
+ `.execute(_),await i`
332
332
  ALTER TABLE event_subscriptions
333
333
  ALTER COLUMN enabled SET DEFAULT true
334
- `.execute(_)}async function tz(_){await v`
334
+ `.execute(_)}async function cz(_){await i`
335
335
  ALTER TABLE event_subscriptions
336
336
  ALTER COLUMN enabled DROP DEFAULT
337
- `.execute(_),await v`
337
+ `.execute(_),await i`
338
338
  ALTER TABLE event_subscriptions
339
339
  ALTER COLUMN enabled TYPE integer
340
340
  USING enabled::integer
341
- `.execute(_),await v`
341
+ `.execute(_),await i`
342
342
  ALTER TABLE event_subscriptions
343
343
  ALTER COLUMN enabled SET DEFAULT 1
344
- `.execute(_)}var zu={};m(zu,{up:()=>iz,down:()=>qz});import{sql as AT}from"kysely";async function iz(_){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(AT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(AT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function qz(_){await _.schema.dropTable("brand_context").execute()}var Pu={};m(Pu,{up:()=>gz,down:()=>cz});import{sql as ST}from"kysely";async function gz(_){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(ST`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).execute()}async function cz(_){await _.schema.dropTable("organization_domains").execute()}var $u={};m($u,{up:()=>rz,down:()=>ez});import{sql as IT}from"kysely";var j_=new Set(["primary","secondary","accent","background","foreground"]),hz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function oz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>j_.has(C))){let C={};for(let[K,E]of Object.entries(u)){if(typeof E!=="string")continue;if(j_.has(K))C[K]=E;else x[K]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,K]of Object.entries(u)){if(typeof K!=="string")continue;if(j_.has(C.toLowerCase()))T[C.toLowerCase()]=K;else x[C]=K}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,K=C.label?.toLowerCase?.(),E=C.value;if(!K||!E)continue;if(j_.has(K))u[K]=E;else x[K]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function az(_){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 T of _){let C=T,K=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!K)continue;let N=hz[E];if(N&&!x[N])x[N]=K;else u.push(K)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function rz(_){let x=await IT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,K=!1,E=u.colors,N=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=oz($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,K=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))N=az($),C=!0}catch{}if(T||C||K){let $=K?JSON.stringify(z):u.metadata;await IT`
344
+ `.execute(_)}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});import{sql as IT}from"kysely";async function hz(_){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(IT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function oz(_){await _.schema.dropTable("brand_context").execute()}var $u={};m($u,{up:()=>az,down:()=>rz});import{sql as wT}from"kysely";async function az(_){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(wT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute()}async function rz(_){await _.schema.dropTable("organization_domains").execute()}var Uu={};m(Uu,{up:()=>sz,down:()=>bz});import{sql as VT}from"kysely";var Q_=new Set(["primary","secondary","accent","background","foreground"]),ez={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function lz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>Q_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(Q_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(Q_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(Q_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function dz(_){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 T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=ez[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function sz(_){let x=await VT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=lz($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=dz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await VT`
345
345
  UPDATE brand_context
346
346
  SET
347
347
  colors = ${E},
348
- fonts = ${N},
348
+ fonts = ${K},
349
349
  metadata = ${$},
350
350
  updated_at = NOW()
351
351
  WHERE id = ${u.id}
352
- `.execute(_)}}}async function ez(_){}var Uu={};m(Uu,{up:()=>dz,down:()=>sz});import{sql as lz}from"kysely";async function dz(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(lz`'{}'::jsonb`)).execute()}async function sz(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Ju={};m(Ju,{up:()=>bz,down:()=>_0});async function bz(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function _0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Xu={};m(Xu,{up:()=>x0,down:()=>u0});async function x0(_){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 u0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ju={};m(ju,{up:()=>m0,down:()=>C0});async function m0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function C0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Qu={};m(Qu,{up:()=>T0,down:()=>K0});async function T0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function K0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Wu={};m(Wu,{up:()=>N0,down:()=>E0});async function N0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function E0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Zu={};m(Zu,{up:()=>P0,down:()=>$0});import{sql as wT}from"kysely";var z0=["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 P0(_){let x=await wT`
352
+ `.execute(_)}}}async function bz(_){}var Ju={};m(Ju,{up:()=>x0,down:()=>u0});import{sql as _0}from"kysely";async function x0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(_0`'{}'::jsonb`)).execute()}async function u0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Xu={};m(Xu,{up:()=>m0,down:()=>C0});async function m0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function C0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Qu={};m(Qu,{up:()=>T0,down:()=>N0});async function T0(_){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 N0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ju={};m(ju,{up:()=>K0,down:()=>E0});async function K0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function E0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Wu={};m(Wu,{up:()=>z0,down:()=>P0});async function z0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function P0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Zu={};m(Zu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function U0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Lu={};m(Lu,{up:()=>X0,down:()=>Q0});import{sql as kT}from"kysely";var J0=["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 X0(_){let x=await kT`
353
353
  SELECT id, permission FROM "organizationRole"
354
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let K=C,E=Array.from(new Set([...K,...z0]));if(E.length===K.length)continue;T.self=E;let N=JSON.stringify(T);await wT`
354
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...J0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await kT`
355
355
  UPDATE "organizationRole"
356
- SET permission = ${N}
356
+ SET permission = ${K}
357
357
  WHERE id = ${u.id}
358
- `.execute(_)}}async function $0(_){}var Lu={};m(Lu,{up:()=>U0,down:()=>J0});async function U0(_){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 J0(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var Du={};m(Du,{up:()=>X0,down:()=>j0});async function X0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function j0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Fu={};m(Fu,{up:()=>Q0,down:()=>W0});import{sql as s}from"kysely";async function Q0(_){await s`
358
+ `.execute(_)}}async function Q0(_){}var Du={};m(Du,{up:()=>j0,down:()=>W0});async function j0(_){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 W0(_){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 Fu={};m(Fu,{up:()=>Z0,down:()=>L0});async function Z0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Ru={};m(Ru,{up:()=>D0,down:()=>F0});import{sql as s}from"kysely";async function D0(_){await s`
359
359
  UPDATE automations
360
360
  SET virtual_mcp_id = (agent::json ->> 'id')
361
361
  WHERE virtual_mcp_id IS NULL
362
362
  `.execute(_),await s`
363
363
  ALTER TABLE automations
364
364
  ALTER COLUMN virtual_mcp_id SET NOT NULL
365
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function W0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
365
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function F0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
366
366
  UPDATE automations
367
367
  SET agent = json_build_object('id', virtual_mcp_id)::text
368
368
  `.execute(_),await s`
@@ -371,18 +371,18 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
371
371
  `.execute(_),await s`
372
372
  ALTER TABLE automations
373
373
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
374
- `.execute(_)}var Yu={};m(Yu,{up:()=>F0,reshapeSimpleMode:()=>VT,inferAutomationTier:()=>kT,down:()=>R0,__testing:()=>D0});var Z0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},L0=["fast","smart","thinking","image","web_research"];function Ru(_){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 L0.some((T)=>(T in u))}function VT(_){if(Ru(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return Z0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function kT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function pT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var D0={isAlreadyReshapedSimpleMode:Ru,isAlreadyReshapedAutomationModels:pT};async function F0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Ru(C))continue;let K=VT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(pT(C))continue;let K=kT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:K})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${K}"`)}}async function R0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Hu={};m(Hu,{up:()=>Y0,down:()=>H0});import{sql as f}from"kysely";async function Y0(_){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 f`
374
+ `.execute(_)}var Hu={};m(Hu,{up:()=>M0,reshapeSimpleMode:()=>pT,inferAutomationTier:()=>iT,down:()=>n0,__testing:()=>H0});var R0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Y0=["fast","smart","thinking","image","web_research"];function Yu(_){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 Y0.some((T)=>(T in u))}function pT(_){if(Yu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return R0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function iT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function tT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var H0={isAlreadyReshapedSimpleMode:Yu,isAlreadyReshapedAutomationModels:tT};async function M0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Yu(C))continue;let N=pT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(tT(C))continue;let N=iT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function n0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});import{sql as y}from"kysely";async function B0(_){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 y`
375
375
  ALTER TABLE automations
376
376
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
377
- `.execute(_),await f`
377
+ `.execute(_),await y`
378
378
  ALTER TABLE automations
379
379
  ADD CONSTRAINT chk_automation_kind
380
380
  CHECK (kind IN ('agent', 'tool_call'))
381
- `.execute(_),await f`
381
+ `.execute(_),await y`
382
382
  ALTER TABLE automations
383
383
  ADD CONSTRAINT chk_automation_agent_fields
384
384
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
385
- `.execute(_),await f`
385
+ `.execute(_),await y`
386
386
  ALTER TABLE automations
387
387
  ADD CONSTRAINT chk_automation_tool_call_fields
388
388
  CHECK (
@@ -393,19 +393,19 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
393
393
  AND tool_input IS NOT NULL
394
394
  )
395
395
  )
396
- `.execute(_)}async function H0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
396
+ `.execute(_)}async function G0(_){await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await y`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await y`
397
397
  ALTER TABLE automations
398
398
  ALTER COLUMN virtual_mcp_id SET NOT NULL
399
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});import{sql as vT}from"kysely";var M0=new Set(["host","docker","agent-sandbox"]);async function B0(_){let x=await vT`
399
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>f0,down:()=>O0});import{sql as vT}from"kysely";var y0=new Set(["host","docker","agent-sandbox"]);async function f0(_){let x=await vT`
400
400
  SELECT id, metadata FROM "connections"
401
401
  WHERE connection_type = 'VIRTUAL'
402
402
  AND metadata IS NOT NULL
403
403
  AND metadata LIKE '%vmMap%'
404
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let K=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){K=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){K=!0;continue}let H=X.runnerKind;if(H!==void 0&&!M0.has(H)){K=!0;continue}U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else K=!0}if(!K)continue;T.vmMap=E;let N=JSON.stringify(T);await vT`
404
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let H=X.runnerKind;if(H!==void 0&&!y0.has(H)){N=!0;continue}U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await vT`
405
405
  UPDATE "connections"
406
- SET metadata = ${N}
406
+ SET metadata = ${K}
407
407
  WHERE id = ${u.id}
408
- `.execute(_)}}async function G0(_){}var Bu={};m(Bu,{up:()=>y0,down:()=>f0});import{sql as b}from"kysely";async function y0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(b`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(b`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`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 b`
408
+ `.execute(_)}}async function O0(_){}var Bu={};m(Bu,{up:()=>A0,down:()=>S0});import{sql as b}from"kysely";async function A0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(b`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(b`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`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 b`
409
409
  CREATE INDEX async_research_jobs_active_idx
410
410
  ON async_research_jobs (status, last_polled_at)
411
411
  WHERE status IN ('pending', 'polling')
@@ -413,7 +413,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
413
413
  ALTER TABLE async_research_jobs
414
414
  ADD CONSTRAINT chk_async_research_jobs_status
415
415
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
416
- `.execute(_)}async function f0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Gu={};m(Gu,{up:()=>O0,down:()=>n0});async function O0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function n0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var yu={};m(yu,{up:()=>A0,down:()=>S0});import{sql as t}from"kysely";async function A0(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
416
+ `.execute(_)}async function S0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Gu={};m(Gu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function w0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as t}from"kysely";async function V0(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
417
417
  ALTER TABLE secrets
418
418
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
419
419
  `.execute(_),await t`
@@ -430,10 +430,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
430
430
  CREATE UNIQUE INDEX idx_secrets_org_name
431
431
  ON secrets (organization_id, lower(name))
432
432
  WHERE scope = 'organization'
433
- `.execute(_)}async function S0(_){await _.schema.dropTable("secrets").execute()}var fu={};m(fu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function w0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Ou={};m(Ou,{up:()=>k0,down:()=>p0});import{sql as V0}from"kysely";async function k0(_){await V0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function p0(_){}var nu={};m(nu,{up:()=>v0,down:()=>t0});import{sql as Q_}from"kysely";async function v0(_){await Q_`
433
+ `.execute(_)}async function k0(_){await _.schema.dropTable("secrets").execute()}var fu={};m(fu,{up:()=>p0,down:()=>i0});async function p0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function i0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Ou={};m(Ou,{up:()=>v0,down:()=>q0});import{sql as t0}from"kysely";async function v0(_){await t0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function q0(_){}var Au={};m(Au,{up:()=>g0,down:()=>c0});import{sql as j_}from"kysely";async function g0(_){await j_`
434
434
  ALTER TABLE sandbox_runner_state
435
435
  RENAME COLUMN runner_kind TO sandbox_provider_kind
436
- `.execute(_),await Q_`
436
+ `.execute(_),await j_`
437
437
  DO $$ BEGIN
438
438
  UPDATE virtualmcps v
439
439
  SET metadata = jsonb_set(
@@ -468,10 +468,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
468
468
  EXCEPTION WHEN undefined_table THEN
469
469
  NULL;
470
470
  END; $$
471
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function t0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Q_`
471
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function c0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
472
472
  ALTER TABLE sandbox_runner_state
473
473
  RENAME COLUMN sandbox_provider_kind TO runner_kind
474
- `.execute(_),await Q_`
474
+ `.execute(_),await j_`
475
475
  DO $$ BEGIN
476
476
  UPDATE virtualmcps v
477
477
  SET metadata = jsonb_set(
@@ -506,7 +506,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
506
506
  EXCEPTION WHEN undefined_table THEN
507
507
  NULL;
508
508
  END; $$
509
- `.execute(_)}var Au={};m(Au,{up:()=>i0,down:()=>q0});import{sql as tT}from"kysely";async function i0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await tT`
509
+ `.execute(_)}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as qT}from"kysely";async function h0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await qT`
510
510
  DO $$ BEGIN
511
511
  UPDATE virtualmcps v
512
512
  SET metadata = jsonb_set(
@@ -545,7 +545,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
545
545
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
546
546
  NULL;
547
547
  END; $$
548
- `.execute(_)}async function q0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await tT`
548
+ `.execute(_)}async function o0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await qT`
549
549
  DO $$ BEGIN
550
550
  UPDATE virtualmcps v
551
551
  SET metadata = jsonb_set(
@@ -578,7 +578,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
578
578
  EXCEPTION WHEN undefined_table THEN
579
579
  NULL;
580
580
  END; $$
581
- `.execute(_)}var Su={};m(Su,{up:()=>g0,down:()=>c0});import{sql as iT}from"kysely";async function g0(_){await iT`
581
+ `.execute(_)}var Iu={};m(Iu,{up:()=>a0,down:()=>r0});import{sql as gT}from"kysely";async function a0(_){await gT`
582
582
  UPDATE connections c
583
583
  SET metadata = (
584
584
  jsonb_set(
@@ -622,7 +622,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
622
622
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
623
623
  WHERE entry ? 'vmId'
624
624
  );
625
- `.execute(_),await iT`
625
+ `.execute(_),await gT`
626
626
  UPDATE connections c
627
627
  SET metadata = (
628
628
  jsonb_set(
@@ -676,10 +676,10 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
676
676
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
677
677
  WHERE inner_entry ? 'runnerKind'
678
678
  );
679
- `.execute(_)}async function c0(_){}var Iu={};m(Iu,{up:()=>o0,down:()=>a0});import{sql as h0}from"kysely";async function o0(_){await h0`
679
+ `.execute(_)}async function r0(_){}var wu={};m(wu,{up:()=>l0,down:()=>d0});import{sql as e0}from"kysely";async function l0(_){await e0`
680
680
  DELETE FROM ai_provider_keys
681
681
  WHERE provider_id IN ('claude-code', 'codex')
682
- `.execute(_)}async function a0(_){}var wu={};m(wu,{up:()=>r0,down:()=>e0});import{sql as W_}from"kysely";async function r0(_){await W_`
682
+ `.execute(_)}async function d0(_){}var Vu={};m(Vu,{up:()=>s0,down:()=>b0});import{sql as W_}from"kysely";async function s0(_){await W_`
683
683
  UPDATE sandbox_runner_state
684
684
  SET sandbox_provider_kind = 'desktop'
685
685
  WHERE sandbox_provider_kind = 'remote-user'
@@ -777,13 +777,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
777
777
  UPDATE threads
778
778
  SET sandbox_provider_kind = 'desktop'
779
779
  WHERE sandbox_provider_kind = 'remote-user'
780
- `.execute(_)}async function e0(_){}var Vu={};m(Vu,{up:()=>l0,down:()=>d0});import{sql as __}from"kysely";async function l0(_){await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`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 d0(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await __`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var ku={};m(ku,{up:()=>s0,down:()=>b0});import{sql as qT}from"kysely";async function s0(_){await qT`
780
+ `.execute(_)}async function b0(_){}var ku={};m(ku,{up:()=>_P,down:()=>xP});import{sql as __}from"kysely";async function _P(_){await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`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 xP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await __`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var pu={};m(pu,{up:()=>uP,down:()=>mP});import{sql as cT}from"kysely";async function uP(_){await cT`
781
781
  ALTER TABLE organization_domains
782
782
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
783
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function b0(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await qT`
783
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function mP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await cT`
784
784
  ALTER TABLE organization_domains
785
785
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
786
- `.execute(_)}var pu={};m(pu,{up:()=>_P,down:()=>xP});import{sql as Z_}from"kysely";async function _P(_){await Z_`
786
+ `.execute(_)}var iu={};m(iu,{up:()=>CP,down:()=>TP});import{sql as Z_}from"kysely";async function CP(_){await Z_`
787
787
  UPDATE sandbox_runner_state
788
788
  SET sandbox_provider_kind = CASE sandbox_provider_kind
789
789
  WHEN 'docker' THEN 'local-docker'
@@ -872,30 +872,30 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
872
872
  WHERE c.connection_type = 'VIRTUAL'
873
873
  AND c.metadata IS NOT NULL
874
874
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
875
- `.execute(_)}async function xP(_){}var vu={};m(vu,{up:()=>mP,down:()=>CP});import{sql as gT}from"kysely";var uP=["GLOBAL_SEARCH"];async function mP(_){let x=await gT`
875
+ `.execute(_)}async function TP(_){}var tu={};m(tu,{up:()=>KP,down:()=>EP});import{sql as hT}from"kysely";var NP=["GLOBAL_SEARCH"];async function KP(_){let x=await hT`
876
876
  SELECT id, permission FROM "organizationRole"
877
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let K=C,E=Array.from(new Set([...K,...uP]));if(E.length===K.length)continue;T.self=E;let N=JSON.stringify(T);await gT`
877
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...NP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await hT`
878
878
  UPDATE "organizationRole"
879
- SET permission = ${N}
879
+ SET permission = ${K}
880
880
  WHERE id = ${u.id}
881
- `.execute(_)}}async function CP(_){}var iu={};m(iu,{up:()=>TP,down:()=>KP});import{sql as tu}from"kysely";async function TP(_){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(tu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await tu`
881
+ `.execute(_)}}async function EP(_){}var qu={};m(qu,{up:()=>zP,down:()=>PP});import{sql as vu}from"kysely";async function zP(_){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(vu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await vu`
882
882
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
883
883
  ON org_file_configs (organization_id, lower(name))
884
- `.execute(_)}async function KP(_){await _.schema.dropTable("org_file_configs").execute()}var qu={};m(qu,{up:()=>NP,down:()=>EP});import{sql as O}from"kysely";async function NP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
884
+ `.execute(_)}async function PP(_){await _.schema.dropTable("org_file_configs").execute()}var gu={};m(gu,{up:()=>$P,down:()=>UP});import{sql as f}from"kysely";async function $P(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
885
885
  ALTER TABLE automations
886
886
  ALTER COLUMN virtual_mcp_id SET NOT NULL
887
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function EP(_){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 O`
887
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function UP(_){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 f`
888
888
  ALTER TABLE automations
889
889
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
890
- `.execute(_),await O`
890
+ `.execute(_),await f`
891
891
  ALTER TABLE automations
892
892
  ADD CONSTRAINT chk_automation_kind
893
893
  CHECK (kind IN ('agent', 'tool_call'))
894
- `.execute(_),await O`
894
+ `.execute(_),await f`
895
895
  ALTER TABLE automations
896
896
  ADD CONSTRAINT chk_automation_agent_fields
897
897
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
898
- `.execute(_),await O`
898
+ `.execute(_),await f`
899
899
  ALTER TABLE automations
900
900
  ADD CONSTRAINT chk_automation_tool_call_fields
901
901
  CHECK (
@@ -906,29 +906,29 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
906
906
  AND tool_input IS NOT NULL
907
907
  )
908
908
  )
909
- `.execute(_)}var gu={};m(gu,{up:()=>zP,down:()=>PP});async function zP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function PP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var hu={};m(hu,{up:()=>$P,down:()=>UP});import{sql as cu}from"kysely";var L_="local-docker";async function $P(_){await cu`delete from sandbox_runner_state where sandbox_provider_kind = ${L_}`.execute(_);let x=await cu`
909
+ `.execute(_)}var cu={};m(cu,{up:()=>JP,down:()=>XP});async function JP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function XP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ou={};m(ou,{up:()=>QP,down:()=>jP});import{sql as hu}from"kysely";var L_="local-docker";async function QP(_){await hu`delete from sandbox_runner_state where sandbox_provider_kind = ${L_}`.execute(_);let x=await hu`
910
910
  SELECT id, metadata FROM "connections"
911
911
  WHERE connection_type = 'VIRTUAL'
912
912
  AND metadata IS NOT NULL
913
913
  AND metadata LIKE ${"%"+L_+"%"}
914
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let K=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){K=!0;continue}let U={};for(let[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){K=!0;continue}if(L_ in X){K=!0;let H={...X};if(delete H[L_],Object.keys(H).length>0)U[Q]=H}else U[Q]=X}if(Object.keys(U).length>0)E[z]=U;else K=!0}if(!K)continue;T.sandboxMap=E;let N=JSON.stringify(T);await cu`
914
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(L_ in X){N=!0;let H={...X};if(delete H[L_],Object.keys(H).length>0)U[j]=H}else U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await hu`
915
915
  UPDATE "connections"
916
- SET metadata = ${N}
916
+ SET metadata = ${K}
917
917
  WHERE id = ${u.id}
918
- `.execute(_)}}async function UP(_){}var ou={};m(ou,{up:()=>JP,down:()=>XP});import{sql as D_}from"kysely";async function JP(_){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 D_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await D_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await D_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await D_`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 XP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var au={};m(au,{up:()=>jP,down:()=>QP});async function jP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function QP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var ru={};m(ru,{up:()=>WP,down:()=>ZP});async function WP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function ZP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var eu={};m(eu,{up:()=>LP,down:()=>DP});async function LP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function DP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var lu={};m(lu,{up:()=>FP,down:()=>RP});async function FP(_){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 RP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var du={};m(du,{up:()=>YP,down:()=>HP});async function YP(_){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 HP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var bu={};m(bu,{up:()=>BP,down:()=>GP});import{sql as G}from"kysely";var F="cluster",R="agent-sandbox";function i(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function su(_,x,u){if(!i(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function F_(_){if(!i(_))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!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!i(_.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 MP(_,x,u){if(!i(_))return null;let T=!1,C={};for(let[K,E]of Object.entries(_)){if(!i(E)){C[K]=E;continue}let N={};for(let[z,$]of Object.entries(E)){if(!i($)){N[z]=$;continue}let U={};for(let[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=su(X,x,u);else if(!F_($[u])&&F_(X))U[u]=su(X,x,u);continue}let H=su(X,x,u);if(H!==X)T=!0;if(Q===u&&Q in U&&F_(U[Q])&&!F_(H))continue;U[Q]=H}N[z]=U}C[K]=N}return{sandboxMap:C,changed:T}}async function cT(_,x,u){let T=await G`
918
+ `.execute(_)}}async function jP(_){}var au={};m(au,{up:()=>WP,down:()=>ZP});import{sql as D_}from"kysely";async function WP(_){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 D_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await D_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await D_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await D_`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 ZP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var ru={};m(ru,{up:()=>LP,down:()=>DP});async function LP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function DP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var eu={};m(eu,{up:()=>FP,down:()=>RP});async function FP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function RP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var lu={};m(lu,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function HP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var du={};m(du,{up:()=>MP,down:()=>nP});async function MP(_){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 nP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var su={};m(su,{up:()=>BP,down:()=>GP});async function BP(_){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 GP(_){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 _m={};m(_m,{up:()=>fP,down:()=>OP});import{sql as B}from"kysely";var F="cluster",R="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function bu(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function F_(_){if(!v(_))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!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!v(_.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 yP(_,x,u){if(!v(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!v(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!v($)){K[z]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(T=!0,!(u in $))U[u]=bu(X,x,u);else if(!F_($[u])&&F_(X))U[u]=bu(X,x,u);continue}let H=bu(X,x,u);if(H!==X)T=!0;if(j===u&&j in U&&F_(U[j])&&!F_(H))continue;U[j]=H}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function oT(_,x,u){let T=await B`
919
919
  SELECT id, metadata FROM connections
920
920
  WHERE connection_type = 'VIRTUAL'
921
921
  AND metadata IS NOT NULL
922
922
  AND metadata LIKE ${"%"+x+"%"}
923
- `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let K;try{K=JSON.parse(C.metadata)}catch{continue}let E=MP(K.sandboxMap,x,u);if(!E?.changed)continue;K.sandboxMap=E.sandboxMap,await G`
923
+ `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=yP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
924
924
  UPDATE connections
925
- SET metadata = ${JSON.stringify(K)}
925
+ SET metadata = ${JSON.stringify(N)}
926
926
  WHERE id = ${C.id}
927
- `.execute(_)}}async function BP(_){await G`
927
+ `.execute(_)}}async function fP(_){await B`
928
928
  UPDATE threads
929
929
  SET sandbox_provider_kind = ${R}
930
930
  WHERE sandbox_provider_kind = ${F}
931
- `.execute(_),await G`
931
+ `.execute(_),await B`
932
932
  UPDATE sandbox_runner_state canonical
933
933
  SET handle = legacy.handle,
934
934
  state = legacy.state,
@@ -939,7 +939,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
939
939
  AND canonical.user_id = legacy.user_id
940
940
  AND canonical.project_ref = legacy.project_ref
941
941
  AND legacy.updated_at > canonical.updated_at
942
- `.execute(_),await G`
942
+ `.execute(_),await B`
943
943
  DELETE FROM sandbox_runner_state legacy
944
944
  WHERE legacy.sandbox_provider_kind = ${F}
945
945
  AND EXISTS (
@@ -949,15 +949,15 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
949
949
  AND canonical.project_ref = legacy.project_ref
950
950
  AND canonical.sandbox_provider_kind = ${R}
951
951
  )
952
- `.execute(_),await G`
952
+ `.execute(_),await B`
953
953
  UPDATE sandbox_runner_state
954
954
  SET sandbox_provider_kind = ${R}
955
955
  WHERE sandbox_provider_kind = ${F}
956
- `.execute(_),await cT(_,F,R)}async function GP(_){await G`
956
+ `.execute(_),await oT(_,F,R)}async function OP(_){await B`
957
957
  UPDATE threads
958
958
  SET sandbox_provider_kind = ${F}
959
959
  WHERE sandbox_provider_kind = ${R}
960
- `.execute(_),await G`
960
+ `.execute(_),await B`
961
961
  UPDATE sandbox_runner_state legacy
962
962
  SET handle = canonical.handle,
963
963
  state = canonical.state,
@@ -968,7 +968,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
968
968
  AND legacy.user_id = canonical.user_id
969
969
  AND legacy.project_ref = canonical.project_ref
970
970
  AND canonical.updated_at > legacy.updated_at
971
- `.execute(_),await G`
971
+ `.execute(_),await B`
972
972
  DELETE FROM sandbox_runner_state canonical
973
973
  WHERE canonical.sandbox_provider_kind = ${R}
974
974
  AND EXISTS (
@@ -978,11 +978,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
978
978
  AND legacy.project_ref = canonical.project_ref
979
979
  AND legacy.sandbox_provider_kind = ${F}
980
980
  )
981
- `.execute(_),await G`
981
+ `.execute(_),await B`
982
982
  UPDATE sandbox_runner_state
983
983
  SET sandbox_provider_kind = ${F}
984
984
  WHERE sandbox_provider_kind = ${R}
985
- `.execute(_),await cT(_,R,F)}var _m={};m(_m,{up:()=>yP,down:()=>fP});import{sql as A}from"kysely";async function yP(_){await A`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(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`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 A`
985
+ `.execute(_),await oT(_,R,F)}var xm={};m(xm,{up:()=>AP,down:()=>SP});import{sql as A}from"kysely";async function AP(_){await A`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(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`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 A`
986
986
  CREATE INDEX idx_org_fs_entry_parent
987
987
  ON org_fs_entry (organization_id, volume, parent)
988
988
  WHERE deleted_at IS NULL
@@ -990,7 +990,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
990
990
  CREATE INDEX idx_org_fs_entry_usage
991
991
  ON org_fs_entry (organization_id, volume, size)
992
992
  WHERE kind = 'file' AND deleted_at IS NULL
993
- `.execute(_)}async function fP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var xm={};m(xm,{up:()=>OP,down:()=>nP});async function OP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function nP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var um={};m(um,{up:()=>AP,down:()=>SP});import{sql as hT}from"kysely";async function AP(_){await hT`
993
+ `.execute(_)}async function SP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var um={};m(um,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function wP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var mm={};m(mm,{up:()=>VP,down:()=>kP});import{sql as aT}from"kysely";async function VP(_){await aT`
994
994
  INSERT INTO "organization" (id, name, slug, "createdAt")
995
995
  SELECT
996
996
  'org_orgfs_public_skills',
@@ -1004,13 +1004,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1004
1004
  END,
1005
1005
  now()
1006
1006
  ON CONFLICT (id) DO NOTHING
1007
- `.execute(_)}async function SP(_){await hT`
1007
+ `.execute(_)}async function kP(_){await aT`
1008
1008
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1009
- `.execute(_)}var mm={};m(mm,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function wP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Cm={};m(Cm,{up:()=>VP,down:()=>kP});import{sql as oT}from"kysely";async function VP(_){await oT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function kP(_){await oT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Tm={};m(Tm,{up:()=>vP,down:()=>tP});import{sql as pP}from"kysely";async function vP(_){await pP`
1009
+ `.execute(_)}var Cm={};m(Cm,{up:()=>pP,down:()=>iP});async function pP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function iP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Tm={};m(Tm,{up:()=>tP,down:()=>vP});import{sql as rT}from"kysely";async function tP(_){await rT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function vP(_){await rT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Nm={};m(Nm,{up:()=>gP,down:()=>cP});import{sql as qP}from"kysely";async function gP(_){await qP`
1010
1010
  UPDATE downstream_tokens
1011
1011
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1012
1012
  WHERE "expiresAt" IS NULL
1013
- `.execute(_)}async function tP(_){}var Km={};m(Km,{up:()=>iP,down:()=>qP});async function iP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function qP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Nm={};m(Nm,{up:()=>gP,down:()=>cP});async function gP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function cP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var Em={};m(Em,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function oP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var zm={};m(zm,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function rP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Pm={};m(Pm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function lP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var $m={};m($m,{up:()=>dP,down:()=>sP});import{sql as aT}from"kysely";async function dP(_){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(aT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function sP(_){await _.schema.dropTable("org_sites").execute()}var Um={};m(Um,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function _$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Jm={};m(Jm,{up:()=>x$,down:()=>u$});import{sql as Z}from"kysely";async function x$(_){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 Z`
1013
+ `.execute(_)}async function cP(_){}var Km={};m(Km,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function oP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Em={};m(Em,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function rP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var zm={};m(zm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function lP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Pm={};m(Pm,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function sP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var $m={};m($m,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function _$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Um={};m(Um,{up:()=>x$,down:()=>u$});import{sql as eT}from"kysely";async function x$(_){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(eT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function u$(_){await _.schema.dropTable("org_sites").execute()}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function C$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});import{sql as Z}from"kysely";async function T$(_){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 Z`
1014
1014
  UPDATE organization_domains
1015
1015
  SET
1016
1016
  id = gen_random_uuid()::text,
@@ -1019,18 +1019,18 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1019
1019
  verification_method = 'email',
1020
1020
  verified_at = created_at
1021
1021
  WHERE id IS NULL
1022
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 u$(_){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 Z`
1022
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`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 N$(_){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 Z`
1023
1023
  UPDATE organization_domains
1024
1024
  SET auto_join_enabled = (join_mode = 'auto')
1025
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 Xm={};m(Xm,{up:()=>m$,down:()=>C$});import{sql as R_}from"kysely";async function m$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(R_`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(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await R_`
1025
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`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 Qm={};m(Qm,{up:()=>K$,down:()=>E$});import{sql as R_}from"kysely";async function K$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(R_`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(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await R_`
1026
1026
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1027
1027
  ON organization_join_requests (organization_id, user_id)
1028
1028
  WHERE status = 'pending'
1029
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function C$(_){await _.schema.dropTable("organization_join_requests").execute()}var jm={};m(jm,{up:()=>T$,down:()=>K$});async function T$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function K$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Qm={};m(Qm,{up:()=>N$,down:()=>E$});async function N$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function E$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Lm={};m(Lm,{up:()=>$$,splitWebResearchTier:()=>Zm,down:()=>U$,__testing:()=>P$});function z$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Wm(_){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 Zm(_){if(!_||Wm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,K=null,E=null;if(u)if(z$(u.modelId))E=u;else K=u;return{..._,tiers:{...C,web_search:K,deep_research:E}}}var P$={splitWebResearchTier:Zm,isAlreadySplit:Wm};async function $$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Wm(T))continue;let C=Zm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function U$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Dm={};m(Dm,{up:()=>J$,down:()=>X$});import{sql as x_}from"kysely";async function J$(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await x_`
1029
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function E$(_){await _.schema.dropTable("organization_join_requests").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function P$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Wm={};m(Wm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function U$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Dm={};m(Dm,{up:()=>Q$,splitWebResearchTier:()=>Lm,down:()=>j$,__testing:()=>X$});function J$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Zm(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function Lm(_){if(!_||Zm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(J$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var X$={splitWebResearchTier:Lm,isAlreadySplit:Zm};async function Q$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Zm(T))continue;let C=Lm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function j$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Fm={};m(Fm,{up:()=>W$,down:()=>Z$});import{sql as x_}from"kysely";async function W$(_){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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await x_`
1030
1030
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1031
1031
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1032
1032
  WHERE revoked_at IS NULL
1033
- `.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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`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 X$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Fm={};m(Fm,{up:()=>j$,down:()=>Q$});async function j$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function Q$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Rm={};m(Rm,{up:()=>W$,down:()=>Z$});import{sql as V}from"kysely";async function W$(_){await V`
1033
+ `.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(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`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 Z$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Rm={};m(Rm,{up:()=>L$,down:()=>D$});async function L$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function D$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Ym={};m(Ym,{up:()=>F$,down:()=>R$});import{sql as V}from"kysely";async function F$(_){await V`
1034
1034
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1035
1035
  RETURNS jsonb AS $fn$
1036
1036
  BEGIN
@@ -1089,7 +1089,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1089
1089
  BEFORE INSERT ON connection_aggregations
1090
1090
  FOR EACH ROW
1091
1091
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1092
- `.execute(_)}async function Z$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Hm={};m(Hm,{up:()=>L$,down:()=>D$});import{sql as Ym}from"kysely";async function L$(_){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(Ym`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Ym`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(Ym`false`)).execute()}async function D$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Mm={};m(Mm,{up:()=>F$,down:()=>R$});async function F$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function R$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Bm={};m(Bm,{up:()=>Y$,down:()=>H$});async function Y$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function H$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Gm={};m(Gm,{up:()=>M$,down:()=>B$});async function M$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function B$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var ym={};m(ym,{up:()=>y$,down:()=>f$});import{sql as G$}from"kysely";async function y$(_){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(G$`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 f$(_){await _.schema.dropTable("task_board_item_threads").execute()}var fm={};m(fm,{up:()=>O$,down:()=>n$});async function O$(_){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 n$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Om={};m(Om,{up:()=>S$,down:()=>I$});import{sql as A$}from"kysely";async function S$(_){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(A$`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 I$(_){await _.schema.dropTable("task_board_item_prs").execute()}var nm={};m(nm,{up:()=>V$,down:()=>k$});import{sql as w$}from"kysely";async function V$(_){await w$`
1092
+ `.execute(_)}async function R$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Mm={};m(Mm,{up:()=>Y$,down:()=>H$});import{sql as Hm}from"kysely";async function Y$(_){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(Hm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Hm`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(Hm`false`)).execute()}async function H$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var nm={};m(nm,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function n$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Bm={};m(Bm,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function G$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Gm={};m(Gm,{up:()=>y$,down:()=>f$});async function y$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function f$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var ym={};m(ym,{up:()=>A$,down:()=>S$});import{sql as O$}from"kysely";async function A$(_){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(O$`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 S$(_){await _.schema.dropTable("task_board_item_threads").execute()}var fm={};m(fm,{up:()=>I$,down:()=>w$});async function I$(_){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 w$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Om={};m(Om,{up:()=>k$,down:()=>p$});import{sql as V$}from"kysely";async function k$(_){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(V$`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 p$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Am={};m(Am,{up:()=>t$,down:()=>v$});import{sql as i$}from"kysely";async function t$(_){await i$`
1093
1093
  DELETE FROM member
1094
1094
  WHERE id IN (
1095
1095
  SELECT id FROM (
@@ -1108,38 +1108,38 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1108
1108
  ) ranked
1109
1109
  WHERE ranked.rn > 1
1110
1110
  )
1111
- `.execute(_)}async function k$(_){}var Am={};m(Am,{up:()=>p$,down:()=>v$});async function p$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function v$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Sm={};m(Sm,{up:()=>t$,down:()=>i$});async function t$(_){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 i$(_){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 Im={};m(Im,{up:()=>g$,down:()=>c$});import{sql as q$}from"kysely";async function g$(_){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(q$`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 c$(_){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 wm={};m(wm,{up:()=>o$,down:()=>a$});import{sql as h$}from"kysely";async function o$(_){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(h$`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 a$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Vm={};m(Vm,{up:()=>r$,down:()=>e$});import{sql as Y_}from"kysely";async function r$(_){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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",Y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",Y_`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 e$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var km={};m(km,{up:()=>l$,down:()=>d$});import{sql as H_}from"kysely";async function l$(_){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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`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(H_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await H_`
1111
+ `.execute(_)}async function v$(_){}var Sm={};m(Sm,{up:()=>q$,down:()=>g$});async function q$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function g$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Im={};m(Im,{up:()=>c$,down:()=>h$});async function c$(_){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 h$(_){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 wm={};m(wm,{up:()=>a$,down:()=>r$});import{sql as o$}from"kysely";async function a$(_){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(o$`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 r$(_){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 Vm={};m(Vm,{up:()=>l$,down:()=>d$});import{sql as e$}from"kysely";async function l$(_){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(e$`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 d$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var km={};m(km,{up:()=>s$,down:()=>b$});import{sql as Y_}from"kysely";async function s$(_){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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",Y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",Y_`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 b$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var pm={};m(pm,{up:()=>_U,down:()=>xU});import{sql as H_}from"kysely";async function _U(_){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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`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(H_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await H_`
1112
1112
  insert into organization_billing (organization_id, legacy)
1113
1113
  select id, true from organization
1114
1114
  on conflict (organization_id) do nothing
1115
- `.execute(_)}async function d$(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var pm={};m(pm,{up:()=>s$,down:()=>b$});import{sql as rT}from"kysely";async function s$(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(rT`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(rT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function b$(_){await _.schema.dropTable("seat_change_log").execute()}var vm={};m(vm,{up:()=>_U,down:()=>xU});async function _U(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function xU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var tm={};m(tm,{up:()=>uU,down:()=>mU});import{sql as eT}from"kysely";async function uU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await eT`
1115
+ `.execute(_)}async function xU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var im={};m(im,{up:()=>uU,down:()=>mU});import{sql as lT}from"kysely";async function uU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(lT`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(lT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function mU(_){await _.schema.dropTable("seat_change_log").execute()}var tm={};m(tm,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function TU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});import{sql as dT}from"kysely";async function NU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await dT`
1116
1116
  create unique index organization_billing_stripe_subscription_id_uq
1117
1117
  on organization_billing (stripe_subscription_id)
1118
1118
  where stripe_subscription_id is not null
1119
- `.execute(_)}async function mU(_){await eT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var im={};m(im,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function TU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var qm={};m(qm,{up:()=>KU,down:()=>NU});import{sql as lT}from"kysely";async function KU(_){await lT`
1119
+ `.execute(_)}async function KU(_){await dT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var qm={};m(qm,{up:()=>EU,down:()=>zU});async function EU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function zU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as sT}from"kysely";async function PU(_){await sT`
1120
1120
  create index idx_org_billing_benefits_pending
1121
1121
  on organization_billing (updated_at)
1122
1122
  where benefits_reference_id is not null
1123
- `.execute(_)}async function NU(_){await lT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var gm={};m(gm,{up:()=>EU,down:()=>zU});import{sql as dT}from"kysely";async function EU(_){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(dT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dT`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 zU(_){await _.schema.dropTable("user_model_preferences").execute()}var cm={};m(cm,{up:()=>PU,down:()=>$U});async function PU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function $U(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var hm={};m(hm,{up:()=>UU,down:()=>JU});async function UU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function JU(_){}var om={};m(om,{up:()=>XU,down:()=>jU});import{sql as sT}from"kysely";async function XU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await sT`
1123
+ `.execute(_)}async function $U(_){await sT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var cm={};m(cm,{up:()=>UU,down:()=>JU});import{sql as bT}from"kysely";async function UU(_){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(bT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(bT`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 JU(_){await _.schema.dropTable("user_model_preferences").execute()}var hm={};m(hm,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function QU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var om={};m(om,{up:()=>jU,down:()=>WU});async function jU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function WU(_){}var am={};m(am,{up:()=>ZU,down:()=>LU});import{sql as _N}from"kysely";async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await _N`
1124
1124
  UPDATE organization_settings
1125
1125
  SET flags = jsonb_build_object('reports_only', reports_only)
1126
1126
  WHERE reports_only IS NOT NULL
1127
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function jU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await sT`
1127
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function LU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await _N`
1128
1128
  UPDATE organization_settings
1129
1129
  SET reports_only = (flags ->> 'reports_only')::boolean
1130
1130
  WHERE flags ? 'reports_only'
1131
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var am={};m(am,{up:()=>WU,down:()=>ZU});import{sql as QU}from"kysely";async function WU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await QU`
1131
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var rm={};m(rm,{up:()=>FU,down:()=>RU});import{sql as DU}from"kysely";async function FU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await DU`
1132
1132
  update task_board_items
1133
1133
  set sort_order = -extract(epoch from created_at)
1134
- `.execute(_)}async function ZU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var rm={};m(rm,{up:()=>LU,down:()=>DU,ACTIONS:()=>bT});import{sql as M_}from"kysely";var bT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function LU(_){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(M_`now()`)).addCheckConstraint("chk_task_board_activity_action",M_`action IN (${M_.join(bT.map((x)=>M_.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 DU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var lm={};m(lm,{up:()=>FU,down:()=>RU,ACTIONS:()=>em});import{sql as u_}from"kysely";var em=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function FU(_){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(u_`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 _K(_,em)}async function RU(_){await _K(_,em.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 _K(_,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 sm={};m(sm,{up:()=>HU,down:()=>MU});import{sql as xK}from"kysely";function dm(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function YU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return dm(T)}catch{return dm(_.connection_url)}if(_.title)return dm(_.title);return _.id}async function HU(_){let x=await xK`
1134
+ `.execute(_)}async function RU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var em={};m(em,{up:()=>YU,down:()=>HU,ACTIONS:()=>xN});import{sql as M_}from"kysely";var xN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function YU(_){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(M_`now()`)).addCheckConstraint("chk_task_board_activity_action",M_`action IN (${M_.join(xN.map((x)=>M_.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 HU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var dm={};m(dm,{up:()=>MU,down:()=>nU,ACTIONS:()=>lm});import{sql as u_}from"kysely";var lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function MU(_){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(u_`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 uN(_,lm)}async function nU(_){await uN(_,lm.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 uN(_,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 bm={};m(bm,{up:()=>GU,down:()=>yU});import{sql as mN}from"kysely";function sm(_){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),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return sm(T)}catch{return sm(_.connection_url)}if(_.title)return sm(_.title);return _.id}async function GU(_){let x=await mN`
1135
1135
  SELECT id, app_name, connection_url, title, slug
1136
1136
  FROM connections
1137
1137
  WHERE connection_type != 'VIRTUAL'
1138
- `.execute(_),u=0;for(let T of x.rows){let C=YU(T);if(C===T.slug)continue;await xK`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function MU(){}var bm={};m(bm,{up:()=>GU,down:()=>yU});import{sql as BU}from"kysely";async function GU(_){await BU`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 yU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var xC={};m(xC,{up:()=>OU,down:()=>nU,ACTIONS:()=>_C});import{sql as B_}from"kysely";var _C=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],fU=new Set(["review_requested","review_approved","review_changes_requested"]);async function OU(_){await uK(_,_C)}async function nU(_){await uK(_,_C.filter((x)=>!fU.has(x)))}async function uK(_,x){await B_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await B_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${B_.join(x.map((u)=>B_.lit(u)))}))`.execute(_)}var uC={};m(uC,{up:()=>SU,down:()=>IU});import{sql as AU}from"kysely";async function SU(_){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(AU`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 IU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var CC={};m(CC,{up:()=>VU,down:()=>kU,ACTIONS:()=>mC});import{sql as G_}from"kysely";var mC=["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"],wU=new Set(["merge_conflict_resolution"]);async function VU(_){await mK(_,mC)}async function kU(_){await mK(_,mC.filter((x)=>!wU.has(x)))}async function mK(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var TC={};m(TC,{up:()=>pU,down:()=>vU});import{sql as m_}from"kysely";async function pU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await m_`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 vU(_){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 m_`
1138
+ `.execute(_),u=0;for(let T of x.rows){let C=BU(T);if(C===T.slug)continue;await mN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function yU(){}var _C={};m(_C,{up:()=>OU,down:()=>AU});import{sql as fU}from"kysely";async function OU(_){await fU`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 AU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var uC={};m(uC,{up:()=>IU,down:()=>wU,ACTIONS:()=>xC});import{sql as n_}from"kysely";var xC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],SU=new Set(["review_requested","review_approved","review_changes_requested"]);async function IU(_){await CN(_,xC)}async function wU(_){await CN(_,xC.filter((x)=>!SU.has(x)))}async function CN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var mC={};m(mC,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){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(VU`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 pU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var TC={};m(TC,{up:()=>tU,down:()=>vU,ACTIONS:()=>CC});import{sql as B_}from"kysely";var CC=["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"],iU=new Set(["merge_conflict_resolution"]);async function tU(_){await TN(_,CC)}async function vU(_){await TN(_,CC.filter((x)=>!iU.has(x)))}async function TN(_,x){await B_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await B_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${B_.join(x.map((u)=>B_.lit(u)))}))`.execute(_)}var NC={};m(NC,{up:()=>qU,down:()=>gU});import{sql as m_}from"kysely";async function qU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await m_`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 gU(_){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 m_`
1139
1139
  create index idx_org_billing_benefits_pending
1140
1140
  on organization_billing (updated_at)
1141
1141
  where benefits_reference_id is not null
1142
- `.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(m_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`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(m_`now()`)).execute()}var KC={};m(KC,{up:()=>tU,down:()=>iU});import{sql as y_}from"kysely";async function tU(_){await y_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await y_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function iU(_){await y_`
1142
+ `.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(m_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`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(m_`now()`)).execute()}var KC={};m(KC,{up:()=>cU,down:()=>hU});import{sql as G_}from"kysely";async function cU(_){await G_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await G_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function hU(_){await G_`
1143
1143
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1144
1144
  RETURNS trigger AS $fn$
1145
1145
  BEGIN
@@ -1160,40 +1160,40 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1160
1160
  RETURN NEW;
1161
1161
  END;
1162
1162
  $fn$ LANGUAGE plpgsql;
1163
- `.execute(_),await y_`
1163
+ `.execute(_),await G_`
1164
1164
  CREATE TRIGGER trg_repo_github_child_single_parent
1165
1165
  BEFORE INSERT ON connection_aggregations
1166
1166
  FOR EACH ROW
1167
1167
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1168
- `.execute(_)}var NC={};m(NC,{up:()=>qU,down:()=>gU});import{sql as CK}from"kysely";async function qU(_){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(CK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(CK`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function gU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var EC={};m(EC,{up:()=>cU,down:()=>hU});import{sql as TK}from"kysely";async function cU(_){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(TK`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(TK`now()`)).execute()}async function hU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var PC={};m(PC,{up:()=>oU,down:()=>aU});import{sql as zC}from"kysely";async function oU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(zC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await zC`
1168
+ `.execute(_)}var EC={};m(EC,{up:()=>oU,down:()=>aU});import{sql as NN}from"kysely";async function oU(_){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(NN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function aU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var zC={};m(zC,{up:()=>rU,down:()=>eU});import{sql as KN}from"kysely";async function rU(_){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(KN`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(KN`now()`)).execute()}async function eU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var $C={};m($C,{up:()=>lU,down:()=>dU});import{sql as PC}from"kysely";async function lU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(PC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await PC`
1169
1169
  create index idx_task_quota_claims_org_period_live
1170
1170
  on task_quota_claims (organization_id, period_key)
1171
1171
  where state <> 'released'
1172
- `.execute(_)}async function aU(_){await zC`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 $C={};m($C,{up:()=>rU,down:()=>eU});async function rU(_){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 eU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var UC={};m(UC,{up:()=>lU,down:()=>dU});async function lU(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function dU(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var JC={};m(JC,{up:()=>sU,down:()=>bU});import{sql as KK}from"kysely";async function sU(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(KK`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(KK`monthly_task_executions > 0`)).execute()}async function bU(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var XC={};m(XC,{up:()=>xJ,down:()=>uJ});import{sql as _J}from"kysely";async function xJ(_){await _J`
1172
+ `.execute(_)}async function dU(_){await PC`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 UC={};m(UC,{up:()=>sU,down:()=>bU});async function sU(_){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 bU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var JC={};m(JC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function xJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var XC={};m(XC,{up:()=>uJ,down:()=>mJ});import{sql as EN}from"kysely";async function uJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(EN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(EN`monthly_task_executions > 0`)).execute()}async function mJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var QC={};m(QC,{up:()=>TJ,down:()=>NJ});import{sql as CJ}from"kysely";async function TJ(_){await CJ`
1173
1173
  CREATE INDEX idx_task_board_items_pending_review
1174
1174
  ON task_board_items (updated_at, id)
1175
1175
  WHERE status = 'in_review'
1176
1176
  AND assignee_id = 'super-agent'
1177
1177
  AND dismissed_at IS NULL
1178
- `.execute(_)}async function uJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var jC={};m(jC,{up:()=>mJ,down:()=>CJ});import{sql as NK}from"kysely";async function mJ(_){await NK`
1178
+ `.execute(_)}async function NJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var jC={};m(jC,{up:()=>KJ,down:()=>EJ});import{sql as zN}from"kysely";async function KJ(_){await zN`
1179
1179
  ALTER TABLE task_board_items
1180
1180
  ADD COLUMN last_swept_at timestamptz
1181
- `.execute(_)}async function CJ(_){await NK`
1181
+ `.execute(_)}async function EJ(_){await zN`
1182
1182
  ALTER TABLE task_board_items
1183
1183
  DROP COLUMN last_swept_at
1184
- `.execute(_)}var QC={};m(QC,{up:()=>TJ,down:()=>KJ});import{sql as f_}from"kysely";async function TJ(_){await f_`
1184
+ `.execute(_)}var WC={};m(WC,{up:()=>zJ,down:()=>PJ});import{sql as y_}from"kysely";async function zJ(_){await y_`
1185
1185
  ALTER TABLE task_board_items
1186
1186
  ADD COLUMN retry_at timestamptz,
1187
1187
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1188
- `.execute(_),await f_`
1188
+ `.execute(_),await y_`
1189
1189
  CREATE INDEX idx_task_board_items_retry_due
1190
1190
  ON task_board_items (retry_at)
1191
1191
  WHERE retry_at IS NOT NULL
1192
- `.execute(_)}async function KJ(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await f_`
1192
+ `.execute(_)}async function PJ(_){await y_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await y_`
1193
1193
  ALTER TABLE task_board_items
1194
1194
  DROP COLUMN retry_at,
1195
1195
  DROP COLUMN retry_attempts
1196
- `.execute(_)}var ZC={};m(ZC,{up:()=>NJ,down:()=>EJ});import{sql as WC}from"kysely";async function NJ(_){await WC`
1196
+ `.execute(_)}var LC={};m(LC,{up:()=>$J,down:()=>UJ});import{sql as ZC}from"kysely";async function $J(_){await ZC`
1197
1197
  CREATE TABLE org_repo_sync (
1198
1198
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1199
1199
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1211,11 +1211,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1211
1211
  updated_at timestamptz NOT NULL DEFAULT now(),
1212
1212
  UNIQUE (organization_id, volume)
1213
1213
  )
1214
- `.execute(_),await WC`
1214
+ `.execute(_),await ZC`
1215
1215
  CREATE INDEX idx_org_repo_sync_enabled
1216
1216
  ON org_repo_sync (organization_id)
1217
1217
  WHERE enabled
1218
- `.execute(_)}async function EJ(_){await WC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var DC={};m(DC,{up:()=>PJ,down:()=>$J,ACTIONS:()=>LC});import{sql as O_}from"kysely";var LC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],zJ=new Set(["merge_failed"]);async function PJ(_){await EK(_,LC)}async function $J(_){await EK(_,LC.filter((x)=>!zJ.has(x)))}async function EK(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var FC={};m(FC,{up:()=>UJ,down:()=>JJ});async function UJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function JJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var RC={};m(RC,{up:()=>XJ,down:()=>jJ});import{sql as q}from"kysely";async function XJ(_){await q`
1218
+ `.execute(_)}async function UJ(_){await ZC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var FC={};m(FC,{up:()=>XJ,down:()=>QJ,ACTIONS:()=>DC});import{sql as f_}from"kysely";var DC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],JJ=new Set(["merge_failed"]);async function XJ(_){await PN(_,DC)}async function QJ(_){await PN(_,DC.filter((x)=>!JJ.has(x)))}async function PN(_,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 RC={};m(RC,{up:()=>jJ,down:()=>WJ});async function jJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function WJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var YC={};m(YC,{up:()=>ZJ,down:()=>LJ});import{sql as q}from"kysely";async function ZJ(_){await q`
1219
1219
  CREATE TABLE org_jira_integrations (
1220
1220
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1221
1221
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1254,7 +1254,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1254
1254
  created_at timestamptz NOT NULL DEFAULT now(),
1255
1255
  UNIQUE (organization_id, jira_comment_id)
1256
1256
  )
1257
- `.execute(_)}async function jJ(_){await q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await q`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await q`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var YC={};m(YC,{up:()=>WJ,down:()=>ZJ});import{sql as QJ}from"kysely";async function WJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await QJ`
1257
+ `.execute(_)}async function LJ(_){await q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await q`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await q`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var HC={};m(HC,{up:()=>FJ,down:()=>RJ});import{sql as DJ}from"kysely";async function FJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await DJ`
1258
1258
  update task_board_items as t
1259
1259
  set key_seq = numbered.seq
1260
1260
  from (
@@ -1267,25 +1267,25 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1267
1267
  from task_board_items
1268
1268
  ) as numbered
1269
1269
  where t.id = numbered.id
1270
- `.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 ZJ(_){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 HC={};m(HC,{up:()=>LJ,down:()=>DJ});import{sql as zK}from"kysely";async function LJ(_){await zK`
1270
+ `.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 RJ(_){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 MC={};m(MC,{up:()=>YJ,down:()=>HJ});import{sql as $N}from"kysely";async function YJ(_){await $N`
1271
1271
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1272
1272
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1273
1273
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1274
- `.execute(_)}async function DJ(_){await zK`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var BC={};m(BC,{up:()=>FJ,down:()=>RJ});import{sql as MC}from"kysely";async function FJ(_){await MC`
1274
+ `.execute(_)}async function HJ(_){await $N`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>nJ});import{sql as nC}from"kysely";async function MJ(_){await nC`
1275
1275
  ALTER TABLE thread_message_parts
1276
1276
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1277
- `.execute(_),await MC`
1277
+ `.execute(_),await nC`
1278
1278
  ALTER TABLE thread_message_parts
1279
1279
  ALTER COLUMN persisted_at SET DEFAULT now()
1280
- `.execute(_)}async function RJ(_){await MC`
1280
+ `.execute(_)}async function nJ(_){await nC`
1281
1281
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1282
- `.execute(_)}var GC={};m(GC,{up:()=>YJ,down:()=>HJ});async function YJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function HJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var yC={};m(yC,{up:()=>BJ,down:()=>GJ});import{sql as MJ}from"kysely";async function BJ(_){await MJ`
1282
+ `.execute(_)}var GC={};m(GC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function GJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var yC={};m(yC,{up:()=>fJ,down:()=>OJ});import{sql as yJ}from"kysely";async function fJ(_){await yJ`
1283
1283
  CREATE INDEX idx_task_board_items_done_sweep
1284
1284
  ON task_board_items (updated_at)
1285
1285
  WHERE status = 'done' AND dismissed_at IS NULL
1286
- `.execute(_)}async function GJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var fC={};m(fC,{up:()=>yJ,down:()=>fJ,TYPES:()=>PK});import{sql as S}from"kysely";var PK=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function yJ(_){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(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`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(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(PK.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1286
+ `.execute(_)}async function OJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var fC={};m(fC,{up:()=>AJ,down:()=>SJ,TYPES:()=>UN});import{sql as S}from"kysely";var UN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function AJ(_){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(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`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(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(UN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1287
1287
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await S`CREATE INDEX notifications_digest ON notifications
1288
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function fJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var OC={};m(OC,{up:()=>OJ,down:()=>nJ});import{sql as $K}from"kysely";async function OJ(_){await $K`
1288
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function SJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var OC={};m(OC,{up:()=>IJ,down:()=>wJ});import{sql as JN}from"kysely";async function IJ(_){await JN`
1289
1289
  UPDATE org_jira_integrations
1290
1290
  SET status_mapping = (
1291
1291
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1300,7 +1300,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1300
1300
  SELECT 1 FROM jsonb_each(status_mapping)
1301
1301
  WHERE jsonb_typeof(value) = 'array'
1302
1302
  )
1303
- `.execute(_)}async function nJ(_){await $K`
1303
+ `.execute(_)}async function wJ(_){await JN`
1304
1304
  UPDATE org_jira_integrations
1305
1305
  SET status_mapping = (
1306
1306
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1315,7 +1315,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1315
1315
  SELECT 1 FROM jsonb_each(status_mapping)
1316
1316
  WHERE jsonb_typeof(value) = 'array'
1317
1317
  )
1318
- `.execute(_)}var AC={};m(AC,{up:()=>SJ,down:()=>IJ,TYPES:()=>nC});import{sql as n_}from"kysely";var nC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],AJ=new Set(["mentioned"]);async function SJ(_){await UK(_,nC)}async function IJ(_){await UK(_,nC.filter((x)=>!AJ.has(x)))}async function UK(_,x){await n_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await n_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var IC={};m(IC,{up:()=>kJ,down:()=>pJ,ACTIONS:()=>SC});import{sql as I}from"kysely";var wJ=["bug","feature","chore","spike","security"],SC=["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"],VJ=new Set(["type_changed"]);async function kJ(_){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(wJ.map((x)=>I.lit(x)))}))`.execute(_),await JK(_,SC)}async function pJ(_){await JK(_,SC.filter((x)=>!VJ.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 JK(_,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 wC={};m(wC,{up:()=>vJ,down:()=>tJ});import{sql as j}from"kysely";var jK=["bug","feature","chore","spike","security"],XK="chore";async function vJ(_){await j`UPDATE task_board_items SET type = ${j.lit(XK)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(XK)}`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${j.join(jK.map((x)=>j.lit(x)))}))`.execute(_)}async function tJ(_){await j`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await j`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${j.join(jK.map((x)=>j.lit(x)))}))`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var VC={};m(VC,{up:()=>iJ,down:()=>qJ});import{sql as g}from"kysely";async function iJ(_){await g`
1318
+ `.execute(_)}var SC={};m(SC,{up:()=>kJ,down:()=>pJ,TYPES:()=>AC});import{sql as O_}from"kysely";var AC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],VJ=new Set(["mentioned"]);async function kJ(_){await XN(_,AC)}async function pJ(_){await XN(_,AC.filter((x)=>!VJ.has(x)))}async function XN(_,x){await O_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await O_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var wC={};m(wC,{up:()=>vJ,down:()=>qJ,ACTIONS:()=>IC});import{sql as I}from"kysely";var iJ=["bug","feature","chore","spike","security"],IC=["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"],tJ=new Set(["type_changed"]);async function vJ(_){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(iJ.map((x)=>I.lit(x)))}))`.execute(_),await QN(_,IC)}async function qJ(_){await QN(_,IC.filter((x)=>!tJ.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 QN(_,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 VC={};m(VC,{up:()=>gJ,down:()=>cJ});import{sql as Q}from"kysely";var WN=["bug","feature","chore","spike","security"],jN="chore";async function gJ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(jN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(jN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_)}async function cJ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var kC={};m(kC,{up:()=>hJ,down:()=>oJ});import{sql as g}from"kysely";async function hJ(_){await g`
1319
1319
  CREATE TABLE task_board_sprints (
1320
1320
  id text PRIMARY KEY,
1321
1321
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1340,34 +1340,34 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1340
1340
  CREATE INDEX idx_task_board_items_sprint
1341
1341
  ON task_board_items (organization_id, sprint_id)
1342
1342
  WHERE sprint_id IS NOT NULL
1343
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function qJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await g`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await g`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var kC={};m(kC,{up:()=>cJ,down:()=>hJ});import{sql as gJ}from"kysely";async function cJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function hJ(_){await gJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var pC={};m(pC,{up:()=>aJ,down:()=>rJ});import{sql as oJ}from"kysely";async function aJ(_){await oJ`
1343
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function oJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await g`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await g`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var pC={};m(pC,{up:()=>rJ,down:()=>eJ});import{sql as aJ}from"kysely";async function rJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function eJ(_){await aJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var iC={};m(iC,{up:()=>dJ,down:()=>sJ});import{sql as lJ}from"kysely";async function dJ(_){await lJ`
1344
1344
  UPDATE org_jira_integrations
1345
1345
  SET last_synced_at = NULL,
1346
1346
  last_sync_error = NULL
1347
1347
  WHERE last_synced_at IS NOT NULL
1348
- `.execute(_)}async function rJ(){}var vC={};m(vC,{up:()=>lJ,down:()=>dJ});import{sql as eJ}from"kysely";async function lJ(_){await eJ`
1348
+ `.execute(_)}async function sJ(){}var tC={};m(tC,{up:()=>_X,down:()=>xX});import{sql as bJ}from"kysely";async function _X(_){await bJ`
1349
1349
  UPDATE org_jira_integrations
1350
1350
  SET last_synced_at = NULL,
1351
1351
  last_sync_error = NULL
1352
1352
  WHERE last_synced_at IS NOT NULL
1353
- `.execute(_)}async function dJ(){}var iC={};m(iC,{up:()=>sJ,down:()=>bJ});import{sql as tC}from"kysely";async function sJ(_){await tC`
1353
+ `.execute(_)}async function xX(){}var qC={};m(qC,{up:()=>uX,down:()=>mX});import{sql as vC}from"kysely";async function uX(_){await vC`
1354
1354
  ALTER TABLE org_jira_integrations
1355
1355
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1356
- `.execute(_),await tC`
1356
+ `.execute(_),await vC`
1357
1357
  UPDATE org_jira_integrations
1358
1358
  SET rescan_pending = true
1359
1359
  WHERE last_synced_at IS NULL
1360
- `.execute(_)}async function bJ(_){await tC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var qC={};m(qC,{up:()=>_X,down:()=>xX});async function _X(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function xX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var gC={};m(gC,{up:()=>uX,down:()=>mX});import{sql as QK}from"kysely";async function uX(_){await QK`
1360
+ `.execute(_)}async function mX(_){await vC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var gC={};m(gC,{up:()=>CX,down:()=>TX});async function CX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function TX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as ZN}from"kysely";async function NX(_){await ZN`
1361
1361
  ALTER TABLE invitation
1362
1362
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1363
- `.execute(_)}async function mX(_){await QK`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var hC={};m(hC,{up:()=>CX,down:()=>TX});import{sql as cC}from"kysely";async function CX(_){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(cC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cC`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 cC`
1363
+ `.execute(_)}async function KX(_){await ZN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var oC={};m(oC,{up:()=>EX,down:()=>zX});import{sql as hC}from"kysely";async function EX(_){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(hC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hC`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 hC`
1364
1364
  INSERT INTO task_board_column_automations
1365
1365
  (id, organization_id, column_key, prompt)
1366
1366
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1367
1367
  FROM org_jira_integrations
1368
1368
  WHERE auto_delegate = true
1369
1369
  ON CONFLICT DO NOTHING
1370
- `.execute(_)}async function TX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var oC={};m(oC,{up:()=>KX,down:()=>NX});import{sql as C_}from"kysely";async function KX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await C_`
1370
+ `.execute(_)}async function zX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var aC={};m(aC,{up:()=>PX,down:()=>$X});import{sql as C_}from"kysely";async function PX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await C_`
1371
1371
  UPDATE task_board_items i
1372
1372
  SET review_cycle_started_at = (
1373
1373
  SELECT max(a.occurred_at)
@@ -1383,13 +1383,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1383
1383
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1384
1384
  AND assignee_id = 'super-agent'
1385
1385
  AND dismissed_at IS NULL
1386
- `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function NX(_){await C_`
1386
+ `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function $X(_){await C_`
1387
1387
  CREATE INDEX idx_task_board_items_pending_review
1388
1388
  ON task_board_items (updated_at, id)
1389
1389
  WHERE status = 'in_review'
1390
1390
  AND assignee_id = 'super-agent'
1391
1391
  AND dismissed_at IS NULL
1392
- `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var aC={};m(aC,{up:()=>EX,down:()=>zX});import{sql as WK}from"kysely";async function EX(_){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(WK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(WK`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 zX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var eC={};m(eC,{up:()=>$X,down:()=>UX,ACTIONS:()=>rC});import{sql as A_}from"kysely";var rC=["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"],PX=new Set(["review_verdict_requested"]);async function $X(_){await ZK(_,rC)}async function UX(_){await ZK(_,rC.filter((x)=>!PX.has(x)))}async function ZK(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var lC={};m(lC,{up:()=>JX,down:()=>XX});import{sql as S_}from"kysely";async function JX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await S_`
1392
+ `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var rC={};m(rC,{up:()=>UX,down:()=>JX});import{sql as LN}from"kysely";async function UX(_){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(LN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(LN`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 JX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var lC={};m(lC,{up:()=>QX,down:()=>jX,ACTIONS:()=>eC});import{sql as A_}from"kysely";var eC=["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"],XX=new Set(["review_verdict_requested"]);async function QX(_){await DN(_,eC)}async function jX(_){await DN(_,eC.filter((x)=>!XX.has(x)))}async function DN(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var dC={};m(dC,{up:()=>WX,down:()=>ZX});import{sql as S_}from"kysely";async function WX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await S_`
1393
1393
  ALTER TABLE task_board_items
1394
1394
  ADD CONSTRAINT chk_task_board_items_column_org
1395
1395
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1399,13 +1399,13 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1399
1399
  FOREIGN KEY (board_column_org, status)
1400
1400
  REFERENCES task_board_columns (organization_id, key)
1401
1401
  ON DELETE RESTRICT
1402
- `.execute(_)}async function XX(_){await S_`
1402
+ `.execute(_)}async function ZX(_){await S_`
1403
1403
  ALTER TABLE task_board_items
1404
1404
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1405
1405
  `.execute(_),await S_`
1406
1406
  ALTER TABLE task_board_items
1407
1407
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1408
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var dC={};m(dC,{up:()=>jX,down:()=>QX});async function jX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function QX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var bC={};m(bC,{up:()=>ZX,down:()=>LX,ACTIONS:()=>sC});import{sql as I_}from"kysely";var sC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],WX=new Set(["sprint_changed"]);async function ZX(_){await LK(_,sC)}async function LX(_){await LK(_,sC.filter((x)=>!WX.has(x)))}async function LK(_,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 _T={};m(_T,{up:()=>FX,down:()=>RX});import{sql as DX}from"kysely";async function FX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(DX`'[]'::jsonb`)).execute()}async function RX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var xT={};m(xT,{up:()=>YX,down:()=>HX});import{sql as DK}from"kysely";async function YX(_){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(DK`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DK`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function HX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX});import{sql as MX}from"kysely";async function BX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await MX`
1408
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var sC={};m(sC,{up:()=>LX,down:()=>DX});async function LX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function DX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var _T={};m(_T,{up:()=>RX,down:()=>YX,ACTIONS:()=>bC});import{sql as I_}from"kysely";var bC=["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"],FX=new Set(["sprint_changed"]);async function RX(_){await FN(_,bC)}async function YX(_){await FN(_,bC.filter((x)=>!FX.has(x)))}async function FN(_,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 xT={};m(xT,{up:()=>MX,down:()=>nX});import{sql as HX}from"kysely";async function MX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(HX`'[]'::jsonb`)).execute()}async function nX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX});import{sql as RN}from"kysely";async function BX(_){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(RN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function GX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var mT={};m(mT,{up:()=>fX,down:()=>OX});import{sql as yX}from"kysely";async function fX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await yX`
1409
1409
  UPDATE task_board_items i
1410
1410
  SET external_url = t.url,
1411
1411
  description = CASE
@@ -1424,11 +1424,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1424
1424
  ON g.organization_id = l.organization_id
1425
1425
  ) t
1426
1426
  WHERE t.item_id = i.id
1427
- `.execute(_)}async function GX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var mT={};m(mT,{up:()=>fX,down:()=>OX,ACTIONS:()=>FK});import{sql as J}from"kysely";var yX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],FK=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function fX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1427
+ `.execute(_)}async function OX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var CT={};m(CT,{up:()=>SX,down:()=>IX,ACTIONS:()=>YN});import{sql as J}from"kysely";var AX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],YN=["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 SX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1428
1428
  UPDATE task_board_items
1429
1429
  SET status = 'triage'
1430
- WHERE status NOT IN (${J.join(yX.map((x)=>J.lit(x)))})
1431
- `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await nX(_,FK),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1430
+ WHERE status NOT IN (${J.join(AX.map((x)=>J.lit(x)))})
1431
+ `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await wX(_,YN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1432
1432
  ALTER TABLE task_board_item_jira_links
1433
1433
  DROP COLUMN IF EXISTS jira_updated_at,
1434
1434
  DROP COLUMN IF EXISTS jira_status,
@@ -1440,7 +1440,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1440
1440
  DROP COLUMN IF EXISTS last_synced_at,
1441
1441
  DROP COLUMN IF EXISTS last_sync_error,
1442
1442
  DROP COLUMN IF EXISTS rescan_pending
1443
- `.execute(_)}async function OX(){}async function nX(_,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 CT={};m(CT,{up:()=>AX,down:()=>SX});import{sql as c}from"kysely";async function AX(_){await c`
1443
+ `.execute(_)}async function IX(){}async function wX(_,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 TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as c}from"kysely";async function VX(_){await c`
1444
1444
  ALTER TABLE task_board_items
1445
1445
  ADD COLUMN IF NOT EXISTS source text
1446
1446
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -1461,24 +1461,24 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1461
1461
  created_at timestamptz NOT NULL DEFAULT now(),
1462
1462
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1463
1463
  )
1464
- `.execute(_)}async function SX(_){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 TT={};m(TT,{up:()=>IX,down:()=>wX});import{sql as T_}from"kysely";async function IX(_){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(T_`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(T_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).execute(),await T_`
1464
+ `.execute(_)}async function kX(_){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 NT={};m(NT,{up:()=>pX,down:()=>iX});import{sql as T_}from"kysely";async function pX(_){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(T_`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(T_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).execute(),await T_`
1465
1465
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1466
1466
  ON organization_notices (organization_id)
1467
1467
  WHERE resolved_at IS NULL
1468
1468
  `.execute(_),await T_`
1469
1469
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1470
1470
  ON organization_notices (organization_id, created_at DESC)
1471
- `.execute(_)}async function wX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var NT={};m(NT,{up:()=>hX,down:()=>oX});import{sql as KT}from"kysely";import{sql as vW}from"kysely";var RK=50000000,VX=1e5;function kX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>VX)return 1/0;let K=C.pop();if(typeof K==="string")u+=K.length;else if(Array.isArray(K))for(let E of K)C.push(E);else if(K!==null&&typeof K==="object")for(let E of Object.values(K))C.push(E)}return u}var pX=/\u0000/g,vX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,tX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,iX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,qX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function gX(_){return _.replace(pX,"").replace(vX,"\uFFFD").replace(tX,"$1***@").replace(iX,"$1***").replace(qX,"[base64 data omitted]")}function cX(_){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 YK(_){if(kX(_,RK)>RK)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return gX(u);if(cX(u))return{type:"text",text:"[image omitted]"};return u})}var HK=20;async function hX(_){let x=await KT`
1471
+ `.execute(_)}async function iX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var ET={};m(ET,{up:()=>eX,down:()=>lX});import{sql as KT}from"kysely";import{sql as hW}from"kysely";var HN=50000000,tX=1e5;function vX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>tX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var qX=/\u0000/g,gX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,cX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,hX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,oX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function aX(_){return _.replace(qX,"").replace(gX,"\uFFFD").replace(cX,"$1***@").replace(hX,"$1***").replace(oX,"[base64 data omitted]")}function rX(_){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 MN(_){if(vX(_,HN)>HN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return aX(u);if(rX(u))return{type:"text",text:"[image omitted]"};return u})}var nN=20;async function eX(_){let x=await KT`
1472
1472
  SELECT id FROM thread_message_parts
1473
1473
  WHERE pg_column_size(payload) > 8192
1474
1474
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1475
- `.execute(_);for(let u=0;u<x.rows.length;u+=HK){let T=x.rows.slice(u,u+HK).map((K)=>K.id),C=await KT`
1475
+ `.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await KT`
1476
1476
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
1477
- `.execute(_);for(let K of C.rows){let E=YK(K.payload);if(E===JSON.stringify(K.payload))continue;await KT`
1477
+ `.execute(_);for(let N of C.rows){let E=MN(N.payload);if(E===JSON.stringify(N.payload))continue;await KT`
1478
1478
  UPDATE thread_message_parts
1479
1479
  SET payload = ${E}::jsonb
1480
- WHERE id = ${K.id}
1481
- `.execute(_)}}}async function oX(){}var ET={};m(ET,{up:()=>aX,down:()=>rX});async function aX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function rX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var zT={};m(zT,{up:()=>eX,down:()=>lX});import{sql as P}from"kysely";async function eX(_){await P`
1480
+ WHERE id = ${N.id}
1481
+ `.execute(_)}}}async function lX(){}var zT={};m(zT,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function sX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var PT={};m(PT,{up:()=>bX,down:()=>_Q});import{sql as P}from"kysely";async function bX(_){await P`
1482
1482
  CREATE TABLE git_provider_accounts (
1483
1483
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1484
1484
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1722,11 +1722,11 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1722
1722
  AND r.organization_id = s.organization_id
1723
1723
  AND r.host = 'github.com'
1724
1724
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1725
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function lX(_){await P`
1725
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function _Q(_){await P`
1726
1726
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1727
1727
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1728
1728
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1729
- `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var PT={};m(PT,{up:()=>sX,down:()=>bX});import{sql as Y}from"kysely";var dX=Y`
1729
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var $T={};m($T,{up:()=>uQ,down:()=>mQ});import{sql as Y}from"kysely";var xQ=Y`
1730
1730
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1731
1731
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1732
1732
  BEGIN
@@ -1735,7 +1735,7 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1735
1735
  RETURN NULL;
1736
1736
  END;
1737
1737
  $$
1738
- `;async function sX(_){await dX.execute(_),await Y`
1738
+ `;async function uQ(_){await xQ.execute(_),await Y`
1739
1739
  ALTER TABLE connections
1740
1740
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1741
1741
  `.execute(_),await Y`
@@ -1797,29 +1797,29 @@ var cK=Object.defineProperty;var hK=(_)=>_;function oK(_,x){this[_]=hK.bind(null
1797
1797
  AND r.host = 'github.com'
1798
1798
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1799
1799
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1800
- `.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function bX(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
1800
+ `.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function mQ(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
1801
1801
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1802
- `.execute(_)}var _6={"001-initial-schema":r_,"002-organization-settings":e_,"003-connection-schema-align":l_,"004-remove-models-binding":d_,"005-connection-configuration":s_,"006-add-views-to-settings":b_,"007-monitoring-logs":_x,"008-event-bus":xx,"009-drop-audit-logs":ux,"010-gateways":mx,"011-gateway-icon":Cx,"012-gateway-tool-selection-mode":Tx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Nx,"015-monitoring-properties":Ex,"016-downstream-token-client-info":zx,"017-downstream-token-remove-userid":Px,"018-drop-gateway-tool-selection-strategy":$x,"019-remove-gateway-is-default":Ux,"020-enabled-plugins":Jx,"021-threads":Xx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Qx,"024-consolidate-virtual-mcp":Wx,"025-add-monitoring-virtual-mcp-id":Zx,"026-restrict-child-connection-delete":Lx,"027-update-management-mcp-url":Fx,"028-update-management-mcp-to-self":Yx,"029-add-updated-by-to-connections":Hx,"030-member-tags":Mx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":nx,"037-ai-provider-keys":Ax,"038-oauth-pkce-states":Sx,"039-automations":Ix,"040-replace-next-run-at-with-last-run-at":wx,"041-ai-provider-keys-unique-constraint":Vx,"042-rename-mesh-mcp-to-cms-mcp":kx,"043-rename-cms-mcp-to-deco-cms":px,"044-drop-connections-tools-column":vx,"045-thread-context-start-message":tx,"046-remove-object-storage-plugin":qx,"047-add-next-run-at":gx,"048-merge-projects-agents":hx,"049-remove-org-admin-projects":ox,"050-durable-agent-runs":ax,"051-org-sso":ex,"052-thread-agent-ids":lx,"053-registry-config":dx,"054-connection-slug":bx,"055-spaces":_u,"056-automation-project-scope":xu,"057-thread-virtual-mcp-id":uu,"058-trigger-callback-tokens":mu,"059-kv":Cu,"060-member-index":Tu,"061-downstream-token-connection-index":Ku,"062-private-registry":Nu,"063-event-subscriptions-enabled-boolean":Eu,"064-brand-context":zu,"065-organization-domains":Pu,"066-brand-context-structured":$u,"067-threads-metadata":Uu,"068-threads-branch":Ju,"069-sandbox-runner-state":Xu,"070-model-categories":ju,"071-default-home-agents":Qu,"072-ai-provider-key-preset-id":Wu,"073-backfill-basic-usage-roles":Zu,"074-sandbox-runner-state-handle-nonunique":Lu,"075-thread-inflight-async-jobs":Du,"076-automations-drop-agent-json":Fu,"077-tier-only-model-selection":Yu,"078-automation-tool-call-kind":Hu,"079-strip-legacy-freestyle-vm-map-entries":Mu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":nu,"086-thread-pins-and-vm-map-rekey":Au,"087-fix-vm-map-rekey":Su,"088-purge-cli-activate-keys":Iu,"089-rename-remote-user-to-desktop":wu,"090-automation-webhook-triggers":Vu,"091-organization-domains-allow-multi":ku,"092-sandbox-naming-uniformization":pu,"093-backfill-global-search-basic-usage":vu,"094-org-file-configs":iu,"095-remove-automation-tool-call-kind":qu,"096-org-file-configs-public-url-base":gu,"097-drop-local-docker-sandbox-state":hu,"098-thread-message-parts":ou,"099-run-fence":au,"100-link-transport":ru,"101-cancel-requested-at":eu,"102-observational-agent":lu,"103-revert-observational-agent":du,"104-agent-sandbox-provider-kind":bu,"105-org-fs":_m,"106-automation-tools":xm,"107-org-fs-public-org":um,"108-automation-max-agent-steps":mm,"109-thread-message-parts-per-message-seq":Cm,"110-backfill-ghs-token-expiry":Tm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Nm,"113-thread-failure-reason":Em,"114-run-acked-seq":zm,"115-thread-projected-seq":Pm,"116-org-sites":$m,"117-org-file-configs-site-slug":Um,"118-organization-domains-multi-verify":Jm,"119-organization-join-requests":Xm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Qm,"122-split-web-research-tier":Lm,"123-connection-credential-vault":Dm,"124-drop-thread-projected-seq":Fm,"125-github-child-single-parent":Rm,"126-task-board":Hm,"127-task-board-due-date":Mm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":nm,"134-drop-task-board-enabled":Am,"135-task-board-item-fk-cascade":Sm,"136-task-board-import-idempotency":Im,"137-agent-sandbox-runner-state":wm,"138-agent-sandbox-sessions":Vm,"139-organization-billing":km,"140-seat-change-log":pm,"141-benefits-sync-pending":vm,"142-stripe-event-watermark":tm,"143-armed-report-url":im,"144-benefits-pending-index":qm,"145-user-model-preferences":gm,"146-organization-main-agent":cm,"147-drop-agent-sandbox-tables":hm,"148-org-flags":om,"149-task-board-item-sort-order":am,"150-task-board-activity":rm,"151-task-board-tags":lm,"152-repair-connection-slug":sm,"153-task-board-latest-assistant-part-index":bm,"154-task-board-qa-activity":xC,"155-task-board-review-claims":uC,"156-task-board-conflict-activity":CC,"157-drop-seat-billing":TC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":NC,"160-task-quota-billing":EC,"161-task-quota-claim-state":PC,"162-claude-subscriptions":$C,"163-task-board-item-dismissed":UC,"164-per-org-task-quota":JC,"165-task-board-pending-review-index":XC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":QC,"168-org-repo-sync":ZC,"169-task-board-merge-failed-activity":DC,"170-task-board-item-repo":FC,"171-jira-integration":RC,"172-task-board-item-key-seq":YC,"173-thread-github-repo-connection-index":HC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":AC,"180-task-board-item-type":IC,"181-task-board-item-type-required":wC,"182-task-board-sprints-entities":VC,"183-drop-jira-jql-filter":kC,"184-jira-rescan-after-scope-change":pC,"185-jira-rescan-existing-cards":vC,"186-jira-rescan-pending-flag":iC,"187-task-board-comment-thread":qC,"188-invitation-auto-accept":gC,"189-task-board-column-automations":hC,"190-task-board-review-cycle-started-at":oC,"191-task-board-columns":aC,"192-task-board-verdict-nudge-activity":eC,"193-task-board-status-column-fk":lC,"194-jira-link-sprint":dC,"195-task-board-sprint-activity":bC,"196-task-board-column-tracker-statuses":_T,"197-task-board-prompts":xT,"198-task-board-external-url":uT,"199-drop-jira-mirror-and-org-columns":mT,"200-jira-run-trigger":CT,"201-organization-notices":TT,"202-redact-base64-thread-parts":NT,"203-task-board-preview-routes":ET,"204-git-provider-accounts-and-repositories":zT,"205-repository-references":PT,"206-repository-consumers":a_,"207-task-board-prs-repo-idx":o_,"208-github-connect-flows":h_,"209-github-installation-authorization":c_,"210-github-repository-authorization":i_,"211-user-fs-org":t_,"212-coding-agent-mcp-excluded":q_,"213-bitbucket-git-provider":g_},$T=_6;import{getMigrations as n6}from"better-auth/db";import{sso as A6}from"@better-auth/sso";import{organization as S6}from"@decocms/better-auth/plugins";import{admin as I6,apiKey as w6,jwt as V6,magicLink as k6,mcp as p6,openAPI as v6}from"better-auth/plugins";import{emailOTP as t6}from"better-auth/plugins/email-otp";import{Kysely as H6,PostgresDialect as wK}from"kysely";import{Pool as VK}from"pg";import{homedir as x6}from"os";var u6=new Set(["all","worker","api"]);function m6(_){let x=(_??"").trim();return u6.has(x)?x:"all"}var C6=new Set(["production","development","test"]);function T6(_){let x=(_??"").trim();return C6.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function JT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return JT(_,x,T)??u}function K6(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function UT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function MK(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function N6(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function BK(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${x6()}/deco`,T=_.localMode,C=_.nodeEnv||T6(x.NODE_ENV),K=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((N)=>N.trim().toLowerCase()).filter(Boolean),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:JT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:K6("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:UT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:UT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:N6(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:JT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:m6(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:UT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:MK(x.DATABASE_URL),externalNatsUrl:MK(K),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)E6();return w_}function E6(){if(w_)return;let _={...process.env},x=BK({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);w_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as X6,metrics as j6,propagation as C4,ROOT_CONTEXT as T4,SpanStatusCode as K4,trace as Q6}from"@opentelemetry/api";import{logs as W6,SeverityNumber as XT}from"@opentelemetry/api-logs";import{OTLPLogExporter as z4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as Z6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as U4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as X4}from"@opentelemetry/instrumentation-runtime-node";import{context as sW,propagation as bW,SpanKind as _Z,SpanStatusCode as xZ}from"@opentelemetry/api";var mZ=globalThis.fetch;import{ExportResultCode as jZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as z6,rename as P6,writeFile as $6}from"fs/promises";import{join as k_}from"path";class p_{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:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let K=x.get(C.partition);if(!K)K=[],x.set(C.partition,K);K.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,K])=>this.writeNDJSON(K,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let K=_.filter((E)=>!C.has(E.partition));this.bufferItems=K.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await z6(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let K=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${K}.tmp`),N=k_(C,K),z=_.join(`
1802
+ `.execute(_)}var CQ={"001-initial-schema":e_,"002-organization-settings":l_,"003-connection-schema-align":d_,"004-remove-models-binding":s_,"005-connection-configuration":b_,"006-add-views-to-settings":_x,"007-monitoring-logs":xx,"008-event-bus":ux,"009-drop-audit-logs":mx,"010-gateways":Cx,"011-gateway-icon":Tx,"012-gateway-tool-selection-mode":Nx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Ex,"015-monitoring-properties":zx,"016-downstream-token-client-info":Px,"017-downstream-token-remove-userid":$x,"018-drop-gateway-tool-selection-strategy":Ux,"019-remove-gateway-is-default":Jx,"020-enabled-plugins":Xx,"021-threads":Qx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Wx,"024-consolidate-virtual-mcp":Zx,"025-add-monitoring-virtual-mcp-id":Lx,"026-restrict-child-connection-delete":Dx,"027-update-management-mcp-url":Rx,"028-update-management-mcp-to-self":Hx,"029-add-updated-by-to-connections":Mx,"030-member-tags":nx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":Ax,"037-ai-provider-keys":Sx,"038-oauth-pkce-states":Ix,"039-automations":wx,"040-replace-next-run-at-with-last-run-at":Vx,"041-ai-provider-keys-unique-constraint":kx,"042-rename-mesh-mcp-to-cms-mcp":px,"043-rename-cms-mcp-to-deco-cms":ix,"044-drop-connections-tools-column":tx,"045-thread-context-start-message":vx,"046-remove-object-storage-plugin":gx,"047-add-next-run-at":cx,"048-merge-projects-agents":ox,"049-remove-org-admin-projects":ax,"050-durable-agent-runs":rx,"051-org-sso":lx,"052-thread-agent-ids":dx,"053-registry-config":sx,"054-connection-slug":_u,"055-spaces":xu,"056-automation-project-scope":uu,"057-thread-virtual-mcp-id":mu,"058-trigger-callback-tokens":Cu,"059-kv":Tu,"060-member-index":Nu,"061-downstream-token-connection-index":Ku,"062-private-registry":Eu,"063-event-subscriptions-enabled-boolean":zu,"064-brand-context":Pu,"065-organization-domains":$u,"066-brand-context-structured":Uu,"067-threads-metadata":Ju,"068-threads-branch":Xu,"069-sandbox-runner-state":Qu,"070-model-categories":ju,"071-default-home-agents":Wu,"072-ai-provider-key-preset-id":Zu,"073-backfill-basic-usage-roles":Lu,"074-sandbox-runner-state-handle-nonunique":Du,"075-thread-inflight-async-jobs":Fu,"076-automations-drop-agent-json":Ru,"077-tier-only-model-selection":Hu,"078-automation-tool-call-kind":Mu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":Au,"086-thread-pins-and-vm-map-rekey":Su,"087-fix-vm-map-rekey":Iu,"088-purge-cli-activate-keys":wu,"089-rename-remote-user-to-desktop":Vu,"090-automation-webhook-triggers":ku,"091-organization-domains-allow-multi":pu,"092-sandbox-naming-uniformization":iu,"093-backfill-global-search-basic-usage":tu,"094-org-file-configs":qu,"095-remove-automation-tool-call-kind":gu,"096-org-file-configs-public-url-base":cu,"097-drop-local-docker-sandbox-state":ou,"098-thread-message-parts":au,"099-run-fence":ru,"100-link-transport":eu,"101-cancel-requested-at":lu,"102-observational-agent":du,"103-revert-observational-agent":su,"104-agent-sandbox-provider-kind":_m,"105-org-fs":xm,"106-automation-tools":um,"107-org-fs-public-org":mm,"108-automation-max-agent-steps":Cm,"109-thread-message-parts-per-message-seq":Tm,"110-backfill-ghs-token-expiry":Nm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Em,"113-thread-failure-reason":zm,"114-run-acked-seq":Pm,"115-thread-projected-seq":$m,"116-org-sites":Um,"117-org-file-configs-site-slug":Jm,"118-organization-domains-multi-verify":Xm,"119-organization-join-requests":Qm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Wm,"122-split-web-research-tier":Dm,"123-connection-credential-vault":Fm,"124-drop-thread-projected-seq":Rm,"125-github-child-single-parent":Ym,"126-task-board":Mm,"127-task-board-due-date":nm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":Am,"134-drop-task-board-enabled":Sm,"135-task-board-item-fk-cascade":Im,"136-task-board-import-idempotency":wm,"137-agent-sandbox-runner-state":Vm,"138-agent-sandbox-sessions":km,"139-organization-billing":pm,"140-seat-change-log":im,"141-benefits-sync-pending":tm,"142-stripe-event-watermark":vm,"143-armed-report-url":qm,"144-benefits-pending-index":gm,"145-user-model-preferences":cm,"146-organization-main-agent":hm,"147-drop-agent-sandbox-tables":om,"148-org-flags":am,"149-task-board-item-sort-order":rm,"150-task-board-activity":em,"151-task-board-tags":dm,"152-repair-connection-slug":bm,"153-task-board-latest-assistant-part-index":_C,"154-task-board-qa-activity":uC,"155-task-board-review-claims":mC,"156-task-board-conflict-activity":TC,"157-drop-seat-billing":NC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":EC,"160-task-quota-billing":zC,"161-task-quota-claim-state":$C,"162-claude-subscriptions":UC,"163-task-board-item-dismissed":JC,"164-per-org-task-quota":XC,"165-task-board-pending-review-index":QC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":WC,"168-org-repo-sync":LC,"169-task-board-merge-failed-activity":FC,"170-task-board-item-repo":RC,"171-jira-integration":YC,"172-task-board-item-key-seq":HC,"173-thread-github-repo-connection-index":MC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":SC,"180-task-board-item-type":wC,"181-task-board-item-type-required":VC,"182-task-board-sprints-entities":kC,"183-drop-jira-jql-filter":pC,"184-jira-rescan-after-scope-change":iC,"185-jira-rescan-existing-cards":tC,"186-jira-rescan-pending-flag":qC,"187-task-board-comment-thread":gC,"188-invitation-auto-accept":cC,"189-task-board-column-automations":oC,"190-task-board-review-cycle-started-at":aC,"191-task-board-columns":rC,"192-task-board-verdict-nudge-activity":lC,"193-task-board-status-column-fk":dC,"194-jira-link-sprint":sC,"195-task-board-sprint-activity":_T,"196-task-board-column-tracker-statuses":xT,"197-task-board-prompts":uT,"198-task-board-external-url":mT,"199-drop-jira-mirror-and-org-columns":CT,"200-jira-run-trigger":TT,"201-organization-notices":NT,"202-redact-base64-thread-parts":ET,"203-task-board-preview-routes":zT,"204-git-provider-accounts-and-repositories":PT,"205-repository-references":$T,"206-repository-consumers":r_,"207-task-board-prs-repo-idx":a_,"208-github-connect-flows":o_,"209-github-installation-authorization":h_,"210-github-repository-authorization":q_,"211-user-fs-org":v_,"212-coding-agent-mcp-excluded":g_,"213-bitbucket-git-provider":c_,"214-connections-sanitized-id-idx":t_},UT=CQ;import{getMigrations as wQ}from"better-auth/db";import{sso as VQ}from"@better-auth/sso";import{organization as kQ}from"@decocms/better-auth/plugins";import{admin as pQ,apiKey as iQ,jwt as tQ,magicLink as vQ,mcp as qQ,openAPI as gQ}from"better-auth/plugins";import{emailOTP as cQ}from"better-auth/plugins/email-otp";import{Kysely as GQ,PostgresDialect as kN}from"kysely";import{Pool as pN}from"pg";import{homedir as TQ}from"os";var NQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return NQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function XT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return XT(_,x,T)??u}function PQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function JT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function BN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function $Q(_){return _===void 0||_===""||_==="true"||_==="1"}function N_(_,x){return _||x}function GN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${TQ()}/deco`,T=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:N_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:N_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:XT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:PQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:JT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:JT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:$Q(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:XT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(N_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:JT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:N_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:N_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:BN(x.DATABASE_URL),externalNatsUrl:BN(N),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)UQ();return w_}function UQ(){if(w_)return;let _={...process.env},x=GN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);w_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as ZQ,metrics as LQ,propagation as P4,ROOT_CONTEXT as $4,SpanStatusCode as U4,trace as DQ}from"@opentelemetry/api";import{logs as FQ,SeverityNumber as QT}from"@opentelemetry/api-logs";import{OTLPLogExporter as Q4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as RQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Z4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D4}from"@opentelemetry/instrumentation-runtime-node";import{context as CZ,propagation as TZ,SpanKind as NZ,SpanStatusCode as KZ}from"@opentelemetry/api";var zZ=globalThis.fetch;import{ExportResultCode as FZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as JQ,rename as XQ,writeFile as QQ}from"fs/promises";import{join as k_}from"path";class p_{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:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await JQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${N}.tmp`),K=k_(C,N),z=_.join(`
1803
1803
  `)+`
1804
- `;await $6(E,z,{mode:384}),await P6(E,N)}}import{ExportResultCode as DZ}from"@opentelemetry/core";import{AggregationTemporality as RZ,DataPointType as YZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as fZ}from"@opentelemetry/core";var SZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Y4,LoggerProvider as H4}from"@opentelemetry/sdk-logs";import{detectResources as B4,envDetector as G4,hostDetector as y4,osDetector as f4,processDetector as O4,resourceFromAttributes as n4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as S4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as VZ}from"@opentelemetry/api-logs";import{NodeSDK as V4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as p4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as iZ}from"@opentelemetry/api";var L6="__d",D6=X6("Current request"),F6=1;var yK=(_)=>{let u=new URL(_.url).searchParams.get(L6);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class fK{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,K){let E=_.getValue(D6);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,K);return{decision:o.RECORD_AND_SAMPLED}}let N=yK(E);if(N)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,K);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class OK{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var t4=new Z6({preventServerStart:!0}),i4=new fK(new OK(F6));var GK=Q6.getTracer("studio","1.0.0"),N_=j6.getMeter("studio","1.0.0"),R6=W6.getLogger("studio","1.0.0"),jT=(_,x,u)=>{let T={},C=u,K=u[u.length-1];if(K!==null&&typeof K==="object"&&!Array.isArray(K)&&!(K instanceof Error)&&Object.getPrototypeOf(K)===Object.prototype)T=K,C=u.slice(0,-1);let E=C.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");R6.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},QT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{jT(XT.ERROR,"ERROR",_),QT.error(..._)};console.warn=(..._)=>{jT(XT.WARN,"WARN",_),QT.warn(..._)};console.debug=(..._)=>{jT(XT.DEBUG,"DEBUG",_),QT.debug(..._)};var WT,nK=0,ZT=500;function Y6(){if(WT)return;let _=performance.now()+ZT;WT=setInterval(()=>{let x=performance.now();nK=Math.max(0,x-_),_=x+ZT},ZT),WT.unref?.()}function AK(){return Y6(),nK}var M6=()=>N_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),SK=()=>N_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),IK=400,B6=100,G6=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>IK){let T=AK(),C=T>IK/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:v_()}})}if(M6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function y6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=v_(),K=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((N)=>{let z=performance.now()-T;if(SK().record(z,{"db.pool.outcome":K?"contended":"available"}),z>B6)if(K)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return N},(N)=>{throw SK().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var kK={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function pK(){try{return h().databasePgSsl}catch{return!1}}function v_(){try{return h().databasePoolMax}catch{return 10}}function f6(_){let x=y6(new VK({connectionString:_,max:v_(),ssl:pK(),...kK})),u=new wK({pool:x});return{type:"postgres",db:new H6({dialect:u,log:G6(x)}),pool:x}}function z_(){return h().databaseUrl}function vK(_){let x=_||z_();return new wK({pool:new VK({connectionString:x,max:v_(),ssl:pK(),...kK})})}function O6(_){let x=_||z_();return f6(x)}async function tK(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===E_)E_=null}var E_=null;function LT(){if(!E_)E_=O6(z_());return E_}async function iK(_){let u={database:vK(_||z_()),plugins:[S6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),I6(),w6(),V6(),v6(),p6({loginPage:"/login"}),A6(),k6({sendMagicLink:async()=>{}}),t6({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:K}=await n6(u);if(!T.length&&!C.length)return"up to date";return await K(),`${C.length+T.length} table(s) migrated`}async function gK(_,x){return(await a`
1804
+ `;await QQ(E,z,{mode:384}),await XQ(E,K)}}import{ExportResultCode as nZ}from"@opentelemetry/core";import{AggregationTemporality as GZ,DataPointType as yZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as wZ}from"@opentelemetry/core";var iZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as y4,LoggerProvider as f4}from"@opentelemetry/sdk-logs";import{detectResources as A4,envDetector as S4,hostDetector as I4,osDetector as w4,processDetector as V4,resourceFromAttributes as k4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as i4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as qZ}from"@opentelemetry/api-logs";import{NodeSDK as q4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as c4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as aZ}from"@opentelemetry/api";var YQ="__d",HQ=ZQ("Current request"),MQ=1;var fN=(_)=>{let u=new URL(_.url).searchParams.get(YQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class ON{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(HQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=fN(E);if(K)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class AN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var o4=new RQ({preventServerStart:!0}),a4=new ON(new AN(MQ));var yN=DQ.getTracer("studio","1.0.0"),K_=LQ.getMeter("studio","1.0.0"),nQ=FQ.getLogger("studio","1.0.0"),jT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");nQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},WT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{jT(QT.ERROR,"ERROR",_),WT.error(..._)};console.warn=(..._)=>{jT(QT.WARN,"WARN",_),WT.warn(..._)};console.debug=(..._)=>{jT(QT.DEBUG,"DEBUG",_),WT.debug(..._)};var ZT,SN=0,LT=500;function BQ(){if(ZT)return;let _=performance.now()+LT;ZT=setInterval(()=>{let x=performance.now();SN=Math.max(0,x-_),_=x+LT},LT),ZT.unref?.()}function IN(){return BQ(),SN}var yQ=()=>K_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),wN=()=>K_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),VN=400,fQ=100,OQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>VN){let T=IN(),C=T>VN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:i_()}})}if(yQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function AQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=i_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(wN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>fQ)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw wN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var iN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function tN(){try{return h().databasePgSsl}catch{return!1}}function i_(){try{return h().databasePoolMax}catch{return 10}}function SQ(_){let x=AQ(new pN({connectionString:_,max:i_(),ssl:tN(),...iN})),u=new kN({pool:x});return{type:"postgres",db:new GQ({dialect:u,log:OQ(x)}),pool:x}}function z_(){return h().databaseUrl}function vN(_){let x=_||z_();return new kN({pool:new pN({connectionString:x,max:i_(),ssl:tN(),...iN})})}function IQ(_){let x=_||z_();return SQ(x)}async function qN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===E_)E_=null}var E_=null;function DT(){if(!E_)E_=IQ(z_());return E_}async function gN(_){let u={database:vN(_||z_()),plugins:[kQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),pQ(),iQ(),tQ(),gQ(),qQ({loginPage:"/login"}),VQ(),vQ({sendMagicLink:async()=>{}}),cQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await wQ(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function hN(_,x){return(await a`
1805
1805
  SELECT table_name FROM information_schema.tables
1806
1806
  WHERE table_schema='public' AND table_name=${x}
1807
- `.execute(_)).rows.length>0}async function i6(_){if(await gK(_,"plugin_migrations"))return;await a`
1807
+ `.execute(_)).rows.length>0}async function hQ(_){if(await hN(_,"plugin_migrations"))return;await a`
1808
1808
  CREATE TABLE plugin_migrations (
1809
1809
  plugin_id TEXT NOT NULL,
1810
1810
  name TEXT NOT NULL,
1811
1811
  timestamp TEXT NOT NULL,
1812
1812
  PRIMARY KEY (plugin_id, name)
1813
1813
  )
1814
- `.execute(_)}async function q6(_){if(!await gK(_,"kysely_migration"))return;let x=await a`
1814
+ `.execute(_)}async function oQ(_){if(!await hN(_,"kysely_migration"))return;let x=await a`
1815
1815
  SELECT name, timestamp FROM kysely_migration
1816
1816
  WHERE name LIKE '%/%'
1817
- `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let K=C.indexOf("/");if(K===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,K),N=C.substring(K+1);try{await a`
1817
+ `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await a`
1818
1818
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
1819
- VALUES (${E}, ${N}, ${T})
1819
+ VALUES (${E}, ${K}, ${T})
1820
1820
  `.execute(_)}catch{let z=await a`
1821
1821
  SELECT COUNT(*) as cnt FROM plugin_migrations
1822
- WHERE plugin_id = ${E} AND name = ${N}
1823
- `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${N}, keeping in old table`);continue}}await a`
1822
+ WHERE plugin_id = ${E} AND name = ${K}
1823
+ `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await a`
1824
1824
  DELETE FROM kysely_migration WHERE name = ${u}
1825
- `.execute(_)}}async function g6(_){await i6(_),await q6(_);let x=new qK({db:_,provider:{getMigrations:()=>Promise.resolve($T)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((K)=>{if(K.status==="Success")C++;else if(K.status==="Error")console.error(`Failed to execute migration "${K.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function c6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await iK();let K=u??LT(),E=async()=>{if(!x&&!u)await tK(K).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await g6(K.db);return await E(),{betterAuth:C,kysely:N}}catch(N){throw await E(),N}}async function W2(){let _=LT(),x=new qK({db:_.db,provider:{getMigrations:()=>Promise.resolve($T)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await c6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{g6 as runKyselyMigrations,c6 as migrateToLatest,W2 as migrateDown};
1825
+ `.execute(_)}}async function aQ(_){await hQ(_),await oQ(_);let x=new cN({db:_,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function rQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await gN();let N=u??DT(),E=async()=>{if(!x&&!u)await qN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await aQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function YL(){let _=DT(),x=new cN({db:_.db,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await rQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{aQ as runKyselyMigrations,rQ as migrateToLatest,YL as migrateDown};