decocms 4.344.6 → 4.344.7

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 (257) hide show
  1. package/dist/client/assets/{AlertCircle-tmlf170X.js → AlertCircle-CUcQGJWg.js} +1 -1
  2. package/dist/client/assets/{AreaChart-CMltqinO.js → AreaChart-Bjc6phYY.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-UW8QSIYv.js → ArrowLeft-CSPpZjix.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-oW2ppAKR.js → ArrowRight-CpVx9ViU.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-C4N1jv5C.js → ArrowUp-DSGIlxLY.js} +1 -1
  6. package/dist/client/assets/{Check-D43QXlgi.js → Check-1zXE7wWA.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-CzwwsIjX.js → CheckCircle-DgtK-Ftc.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-BGzR3MPV.js → ChevronRight-DprZKKxq.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-D2JHLnW-.js → ChevronSelectorVertical-Bva6hXFn.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-BMcx5g6h.js → ChevronUp-DwjhbMCo.js} +1 -1
  11. package/dist/client/assets/{Copy01-gQD663SC.js → Copy01-BVJCFNfp.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-C7POY4ij.js → CreditCard01-DJQ89VL7.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-T5KAvZex.js → DotsVertical-B1zgMGCf.js} +1 -1
  14. package/dist/client/assets/{Download01-C5xZFRgI.js → Download01-d7QlNeIi.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-MyCHVq51.js → ErrorBarContext-DjQRwN1B.js} +1 -1
  16. package/dist/client/assets/{Eye-Brx0T7sd.js → Eye-sLXfRAsu.js} +1 -1
  17. package/dist/client/assets/{GitBranch01-BXJjzFHM.js → GitBranch01-Cevd7IY5.js} +1 -1
  18. package/dist/client/assets/{Globe01-COOcKemB.js → Globe01-YMmGLMrH.js} +1 -1
  19. package/dist/client/assets/{HardDrive-WnPyGvYA.js → HardDrive-CBNkuV5p.js} +1 -1
  20. package/dist/client/assets/{Image01-Cetk23Gg.js → Image01-_jew13y9.js} +1 -1
  21. package/dist/client/assets/{Key01-CTPGBIuS.js → Key01-DxL7RaRt.js} +1 -1
  22. package/dist/client/assets/{Link01-CRhSvCpz.js → Link01-BsnNRJbd.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-B71u24kv.js → LinkExternal01-CHynaVJX.js} +1 -1
  24. package/dist/client/assets/{Monitor01-C4tpFrFH.js → Monitor01-D384tcCL.js} +1 -1
  25. package/dist/client/assets/{Package-BMpeE28g.js → Package-CICmKbed.js} +1 -1
  26. package/dist/client/assets/{Palette-DbLDcKQl.js → Palette-C3wV8GbF.js} +1 -1
  27. package/dist/client/assets/{Play-CX-1pcs-.js → Play-DyY4uqsk.js} +1 -1
  28. package/dist/client/assets/{Plus-q_spJwnV.js → Plus-BtzuFXpa.js} +1 -1
  29. package/dist/client/assets/{SearchMd-B_sSHt1j.js → SearchMd-RzdqOTz6.js} +1 -1
  30. package/dist/client/assets/{Sector-6YzDicdd.js → Sector-BbXsKxpS.js} +1 -1
  31. package/dist/client/assets/{Settings02-BQeN72sP.js → Settings02-Czze_bb5.js} +1 -1
  32. package/dist/client/assets/{Share07-n-3fSUdL.js → Share07-DDpIIfsq.js} +1 -1
  33. package/dist/client/assets/{Shield01-WuyF7MO2.js → Shield01-B4pGOGci.js} +1 -1
  34. package/dist/client/assets/{Stars01-B_a7_AvS.js → Stars01-CjHCSDX3.js} +1 -1
  35. package/dist/client/assets/{Sun-DcqY__ZL.js → Sun-Dq3o46U_.js} +1 -1
  36. package/dist/client/assets/{Tool01-BP77SoXO.js → Tool01-DVKwxNl0.js} +1 -1
  37. package/dist/client/assets/{Tool02-EHcFfjL7.js → Tool02-DDmfltgM.js} +1 -1
  38. package/dist/client/assets/{Trash01-uEgLHTb-.js → Trash01-LsgvHH60.js} +1 -1
  39. package/dist/client/assets/{TrendUp01-Cz7gaxLj.js → TrendUp01-DioIZ0XZ.js} +1 -1
  40. package/dist/client/assets/{Upload01-BIWfPTvJ.js → Upload01-9qmJgRWz.js} +1 -1
  41. package/dist/client/assets/{User01-CiJaeywX.js → User01-AzXDuWJx.js} +1 -1
  42. package/dist/client/assets/{UserSquare-BATVnS3x.js → UserSquare-BVL5WuNS.js} +1 -1
  43. package/dist/client/assets/{Users01-CWN5RUiZ.js → Users01-twdbMWRY.js} +1 -1
  44. package/dist/client/assets/{Users03-DFR7fqkO.js → Users03-B9ZuJ2UL.js} +1 -1
  45. package/dist/client/assets/{XCircle-ByMu8jAG.js → XCircle-BCL9MwCk.js} +1 -1
  46. package/dist/client/assets/{XClose-BUiWkR3f.js → XClose-CeiPTewB.js} +1 -1
  47. package/dist/client/assets/{Zap-Cul-MTXM.js → Zap-CKLZSOSt.js} +1 -1
  48. package/dist/client/assets/{ZoomOut-ENcKaGzb.js → ZoomOut-BIvjfxkI.js} +1 -1
  49. package/dist/client/assets/{access-gate-0ydYV0aM.js → access-gate-Co7Qfch9.js} +1 -1
  50. package/dist/client/assets/{agent-icon-B5YynjqW.js → agent-icon-BpEwOiGV.js} +1 -1
  51. package/dist/client/assets/{agents-list-BXNl_cxc.js → agents-list-Cwvzogc_.js} +1 -1
  52. package/dist/client/assets/{ai-providers-DTM0VaHo.js → ai-providers-DxCToBOI.js} +1 -1
  53. package/dist/client/assets/{alert-CEb4xO5-.js → alert-C2fyV676.js} +1 -1
  54. package/dist/client/assets/{alert-dialog-bPhnZuBF.js → alert-dialog-DNgGWz87.js} +1 -1
  55. package/dist/client/assets/{analytics-tab-FZwL75da.js → analytics-tab-PHu6l59L.js} +1 -1
  56. package/dist/client/assets/api-keys-Bc76I_rG.js +1 -0
  57. package/dist/client/assets/{api-keys-DcL2_qib.js → api-keys-BhwK48l0.js} +1 -1
  58. package/dist/client/assets/app-editor-U_AVP6OL.js +1 -0
  59. package/dist/client/assets/{auth-TNUQ-R7b.js → auth-Dgy_FfAZ.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-yDb6dG_y.js → auth-catchall-ekkwg0sn.js} +1 -1
  61. package/dist/client/assets/{auth-entry-CWvWuaXU.js → auth-entry-CIwP8Rqn.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-DHAKSgor.js → auth-split-layout-inykjGhF.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-BEiz2fLb.js → authenticate-and-persist-oauth-CHh3ra8X.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-BXs_Ogmi.js → automation-list-row-BZVMG0s5.js} +1 -1
  65. package/dist/client/assets/{automation-runs-D0qsHVPj.js → automation-runs-DuP-wdLK.js} +1 -1
  66. package/dist/client/assets/{automations-BlUIhpog.js → automations-Bi1i3HXW.js} +1 -1
  67. package/dist/client/assets/{autosend-BYSImvIy.js → autosend-DQFcN1uS.js} +1 -1
  68. package/dist/client/assets/{avatar-BAfh7dfM.js → avatar-p5OetRNi.js} +1 -1
  69. package/dist/client/assets/{badge-CF8t3kFT.js → badge-DpkiDIOC.js} +1 -1
  70. package/dist/client/assets/{block-document-CbJActTO.js → block-document-DobdtgLr.js} +1 -1
  71. package/dist/client/assets/{breadcrumb-Dt4POIrJ.js → breadcrumb-C8vZ3frM.js} +1 -1
  72. package/dist/client/assets/{buckets-cQPujbXt.js → buckets-Dr-obDzL.js} +1 -1
  73. package/dist/client/assets/{bulk-category-panel-L3wZRASt.js → bulk-category-panel-BD6uCEcf.js} +1 -1
  74. package/dist/client/assets/{capability-load-error-fkYMRkNu.js → capability-load-error-DzIqZGl0.js} +1 -1
  75. package/dist/client/assets/{cards-Bew32vSA.js → cards-Bzy1Xtvb.js} +1 -1
  76. package/dist/client/assets/{category-editor-Bm5Mlq8U.js → category-editor-DERpB4vz.js} +1 -1
  77. package/dist/client/assets/{cdn-tab-GRD3AIjn.js → cdn-tab-C9cGMfIc.js} +1 -1
  78. package/dist/client/assets/{chart-VKcsR9La.js → chart-rcdPf4fQ.js} +1 -1
  79. package/dist/client/assets/{chat-context-DilDlwEk.js → chat-context-avJOfrtu.js} +1 -1
  80. package/dist/client/assets/{checkbox-DHBigI1P.js → checkbox-D9o3_hf-.js} +1 -1
  81. package/dist/client/assets/{choose-editor-BP8m7OAm.js → choose-editor-Cx_Q-V5I.js} +1 -1
  82. package/dist/client/assets/{cli-auth-success-CfTa5xBk.js → cli-auth-success-BD12raYd.js} +1 -1
  83. package/dist/client/assets/{client-icons-CpQxSG6O.js → client-icons-BgRgSWI4.js} +1 -1
  84. package/dist/client/assets/{collection-detail-BTxWiDBI.js → collection-detail-DHMLnwRz.js} +1 -1
  85. package/dist/client/assets/{collection-display-button-uSlq9nXL.js → collection-display-button-D7uyuLOA.js} +1 -1
  86. package/dist/client/assets/{collection-search-4OWVO2by.js → collection-search-Dn7QEyUJ.js} +1 -1
  87. package/dist/client/assets/{collection-table-wrapper-DniL_pIl.js → collection-table-wrapper-apDDwogq.js} +1 -1
  88. package/dist/client/assets/{collection-tabs-C7YylUDr.js → collection-tabs-5dU7fGdE.js} +1 -1
  89. package/dist/client/assets/{command-qoguNyQb.js → command-CENaHYOX.js} +1 -1
  90. package/dist/client/assets/{commerce-onboarding-DKZfIC95.js → commerce-onboarding-CyPVgfTY.js} +1 -1
  91. package/dist/client/assets/{connect-wv5sge3U.js → connect-2lJ0CWwS.js} +1 -1
  92. package/dist/client/assets/{connect-layout-BZH3VWOf.js → connect-layout-DHtZKhj-.js} +1 -1
  93. package/dist/client/assets/{connection-DDLYJx4M.js → connection-BXj1lf6L.js} +1 -1
  94. package/dist/client/assets/{connection-card-CT-PAzWh.js → connection-card-xtbTrH0z.js} +1 -1
  95. package/dist/client/assets/{connection-detail-CfkbPeoN.js → connection-detail-_tAXd69l.js} +1 -1
  96. package/dist/client/assets/{connection-form-helpers-D0QJiE6z.js → connection-form-helpers-DbWPqpmc.js} +1 -1
  97. package/dist/client/assets/{connections-DAkHJJnc.js → connections-LDx4JE2z.js} +1 -1
  98. package/dist/client/assets/{create-organization-dialog-DADjHn9s.js → create-organization-dialog-CkEoogzg.js} +1 -1
  99. package/dist/client/assets/{decopilot-sse-pool-Bc0jSHS4.js → decopilot-sse-pool-DIjPP0nf.js} +1 -1
  100. package/dist/client/assets/{dialog-BZhwZpkj.js → dialog-BGZ5Hg3Q.js} +1 -1
  101. package/dist/client/assets/{domain-settings-DGBy5i1e.js → domain-settings-Co45KpqJ.js} +1 -1
  102. package/dist/client/assets/{drawer-D2KyUzEM.js → drawer-3JQ45fRR.js} +1 -1
  103. package/dist/client/assets/{dropdown-menu-DRmaugfH.js → dropdown-menu-CTqjAJHc.js} +1 -1
  104. package/dist/client/assets/{e2e-tab-D1XNI3nb.js → e2e-tab-CVeKwP0K.js} +1 -1
  105. package/dist/client/assets/{editor-Ds1FbC2-.js → editor-yboX_q5K.js} +1 -1
  106. package/dist/client/assets/{empty-state-BrAzdRf-.js → empty-state-BlkGmg_f.js} +1 -1
  107. package/dist/client/assets/{empty-state-ClRvEbll.js → empty-state-DNkmU35f.js} +1 -1
  108. package/dist/client/assets/{extract-connection-data-D78kSWFE.js → extract-connection-data-C6uzSv1P.js} +1 -1
  109. package/dist/client/assets/{file-explorer-i9mvkKr3.js → file-explorer-BLjo6fOf.js} +1 -1
  110. package/dist/client/assets/{file-type-icon-CRkeI-TW.js → file-type-icon-BLgP8JAi.js} +1 -1
  111. package/dist/client/assets/{folder-icon-CQEOL9D6.js → folder-icon-75w1BOQR.js} +1 -1
  112. package/dist/client/assets/{form-hHdEspGG.js → form-BQfZ_wMX.js} +1 -1
  113. package/dist/client/assets/{general-CTo9aABA.js → general-CEPG7r1N.js} +1 -1
  114. package/dist/client/assets/{github-icon-quUu4aVj.js → github-icon-BfYLFe-E.js} +1 -1
  115. package/dist/client/assets/{hooks-BqtNxB1V.js → hooks-Dtkl47gt.js} +1 -1
  116. package/dist/client/assets/{hosting-tab-CyasLnZ9.js → hosting-tab-DA0OMdEY.js} +1 -1
  117. package/dist/client/assets/{index-C1ptY-us.js → index-A8aKaNa1.js} +1 -1
  118. package/dist/client/assets/{index-Bh6XNvc7.js → index-C6TPg4UC.js} +6 -6
  119. package/dist/client/assets/{index-BRMxGRts.js → index-C7-k65cq.js} +1 -1
  120. package/dist/client/assets/{index-BtlUOIgR.js → index-CFc50fBU.js} +4 -4
  121. package/dist/client/assets/{index-CCnt8Ha0.js → index-CZn7QLbC.js} +1 -1
  122. package/dist/client/assets/{index-DWp5Jluj.js → index-Dr4MBhJ_.js} +1 -1
  123. package/dist/client/assets/{index-BYBiZ6IV.js → index-DwEbGAs2.js} +1 -1
  124. package/dist/client/assets/{index-CNDBtRKj.js → index-HrCtDpMK.js} +1 -1
  125. package/dist/client/assets/{index-Czh__YM5.js → index-aGsG7oyA.js} +1 -1
  126. package/dist/client/assets/{index-BoJcLg5E.js → index-qHW_5WLU.js} +1 -1
  127. package/dist/client/assets/{index-redirect-n6RfO4dh.js → index-redirect-Cr7P0vqQ.js} +1 -1
  128. package/dist/client/assets/{infiniteQueryObserver-Cq1oMNof.js → infiniteQueryObserver-C2474thX.js} +1 -1
  129. package/dist/client/assets/{infra-billing-Bv3CJksv.js → infra-billing-BmtbdCGi.js} +1 -1
  130. package/dist/client/assets/{input-DVhzkeDU.js → input-DzyddHML.js} +1 -1
  131. package/dist/client/assets/{integration-icon-W7q1QwrY.js → integration-icon-CBipnYKk.js} +1 -1
  132. package/dist/client/assets/{invite-member-dialog-DdkdEZWp.js → invite-member-dialog-CR-r4ixW.js} +1 -1
  133. package/dist/client/assets/{label-DVQH5HfM.js → label-BNKcfQJl.js} +1 -1
  134. package/dist/client/assets/{layout-D9BGYUpz.js → layout-DFxnRLE_.js} +1 -1
  135. package/dist/client/assets/{login-C2PsNRO0.js → login-BP4-jfy7.js} +1 -1
  136. package/dist/client/assets/{markdown-DRT9KRNa.js → markdown-CtZT5hKm.js} +1 -1
  137. package/dist/client/assets/{mcp-app-renderer-CgF9tJk8.js → mcp-app-renderer-CCUBqyqA.js} +1 -1
  138. package/dist/client/assets/{mcp-oauth-B0ZK0THI.js → mcp-oauth-DZRe9Xrr.js} +1 -1
  139. package/dist/client/assets/{members-YTm_zSPA.js → members-DopbgyyL.js} +1 -1
  140. package/dist/client/assets/{monaco-editor-B0196ei4.js → monaco-editor-DS9r540U.js} +1 -1
  141. package/dist/client/assets/{monitoring-stats-row-DN2tDpM2.js → monitoring-stats-row-CI8-MHz1.js} +1 -1
  142. package/dist/client/assets/{multi-select-D98fbeiJ.js → multi-select-BAWuWZsA.js} +1 -1
  143. package/dist/client/assets/{oauth-callback-Dx4YoSv4.js → oauth-callback-CRBq17FH.js} +1 -1
  144. package/dist/client/assets/{oauth-callback-ai-provider-Co1X_4K1.js → oauth-callback-ai-provider-BpnHSb_f.js} +1 -1
  145. package/dist/client/assets/{onboarding-DGQT_Sfz.js → onboarding-CDIl2VPN.js} +1 -1
  146. package/dist/client/assets/{org-layout-DN_qRhjs.js → org-layout-UBcPgsMB.js} +1 -1
  147. package/dist/client/assets/{organization-choice-DUkMQPpO.js → organization-choice-DL8LmN_P.js} +1 -1
  148. package/dist/client/assets/{orgs-BbVpzVfI.js → orgs-rQ-2EkJt.js} +1 -1
  149. package/dist/client/assets/{page-seo-form-B3ECm2z2.js → page-seo-form-BqNS5DgU.js} +1 -1
  150. package/dist/client/assets/{popover-CXzsLJLQ.js → popover-BBlLuKf7.js} +1 -1
  151. package/dist/client/assets/{post-calendar-VzuxCaB9.js → post-calendar-BD_Aoold.js} +1 -1
  152. package/dist/client/assets/{post-editor-CTE0Ny-s.js → post-editor-1A12IdOK.js} +1 -1
  153. package/dist/client/assets/{primitives-CHBnIb1h.js → primitives-iFjsEhaw.js} +1 -1
  154. package/dist/client/assets/{profile-BAX8XJ0q.js → profile-DgSLrn8k.js} +1 -1
  155. package/dist/client/assets/{project-app-view-_pt7eBEE.js → project-app-view-79YOW9gG.js} +1 -1
  156. package/dist/client/assets/{project-icon-C_Y9lQqb.js → project-icon-BY6IQTkk.js} +1 -1
  157. package/dist/client/assets/{prompts-CUc7KVI6.js → prompts-DMZfJhvl.js} +1 -1
  158. package/dist/client/assets/record-editor-BcCUO4IF.js +1 -0
  159. package/dist/client/assets/redirect-editor-L5GxxHxY.js +1 -0
  160. package/dist/client/assets/registry-CBnPiUVh.js +2 -0
  161. package/dist/client/assets/{registry-layout-D93-hFqA.js → registry-layout-BZ5XxgHX.js} +1 -1
  162. package/dist/client/assets/{reports-Db_kNTwo.js → reports-CPPm416A.js} +1 -1
  163. package/dist/client/assets/{repositories-D4avHisP.js → repositories-XRBoZAlQ.js} +1 -1
  164. package/dist/client/assets/{repository-import-picker-UuFyRapE.js → repository-import-picker-RSPbbE4k.js} +1 -1
  165. package/dist/client/assets/{repository-picker-C0sEORMq.js → repository-picker-biyctM_B.js} +1 -1
  166. package/dist/client/assets/{require-capability-CVGq5FAY.js → require-capability-BRFbNz3Q.js} +1 -1
  167. package/dist/client/assets/{required-auth-layout-DiWJho_6.js → required-auth-layout-B9X15pWP.js} +1 -1
  168. package/dist/client/assets/{reset-password-D97T0kGE.js → reset-password-BEQWew2k.js} +1 -1
  169. package/dist/client/assets/{review-settings-DiOL3p8x.js → review-settings-B8jUIsy8.js} +1 -1
  170. package/dist/client/assets/{roles-BiRHciZQ.js → roles-DHyBcYNG.js} +1 -1
  171. package/dist/client/assets/{schema-BqenfAhL.js → schema-D92LbIMM.js} +1 -1
  172. package/dist/client/assets/{scroll-area-Ca3wuyBa.js → scroll-area-B-ln5xLH.js} +1 -1
  173. package/dist/client/assets/{search-input-BMRJF5PT.js → search-input-D9YW35Vs.js} +1 -1
  174. package/dist/client/assets/{secrets-WCD--wKB.js → secrets-BloGTEAu.js} +1 -1
  175. package/dist/client/assets/{sections-editor-CdzZDcnU.js → sections-editor-BZEfeGQC.js} +1 -1
  176. package/dist/client/assets/{select-Cyj_p8d5.js → select-BaouCTwA.js} +1 -1
  177. package/dist/client/assets/{select-model-DAb9T8kG.js → select-model-HYeKeaT4.js} +1 -1
  178. package/dist/client/assets/{self-tool-result-4wUrYSY4.js → self-tool-result-BbupoY5Z.js} +1 -1
  179. package/dist/client/assets/{seo-editor-CaD3hjuZ.js → seo-editor-FnjL-Vzx.js} +1 -1
  180. package/dist/client/assets/settings-layout-DBS_ejWk.js +1 -0
  181. package/dist/client/assets/{settings-sidebar-C2AMxvTf.js → settings-sidebar-z3qYuGo6.js} +1 -1
  182. package/dist/client/assets/{shell-controls-vx3WbyyZ.js → shell-controls-CfSHSeBw.js} +1 -1
  183. package/dist/client/assets/{shell-layout-Cw_Zv8KH.js → shell-layout-eEmjDldg.js} +1 -1
  184. package/dist/client/assets/{skill-preview-CW8imphI.js → skill-preview-D76FKEy1.js} +1 -1
  185. package/dist/client/assets/{skills-E9aS_ABb.js → skills-CXrKoyD0.js} +1 -1
  186. package/dist/client/assets/{sso-DrTiu7pv.js → sso-D310rMfh.js} +1 -1
  187. package/dist/client/assets/{store-CS1P8DFG.js → store-BDrmnwCb.js} +1 -1
  188. package/dist/client/assets/store-registry-BKZeS0UB.js +2 -0
  189. package/dist/client/assets/{switch-Do8kG-W6.js → switch-Caly0pjz.js} +1 -1
  190. package/dist/client/assets/{synced-repos-BAJNSBJM.js → synced-repos-BuP48XMW.js} +1 -1
  191. package/dist/client/assets/{table-DP9ciP81.js → table-CJqB3MCP.js} +1 -1
  192. package/dist/client/assets/{tabs-DjyEdY-W.js → tabs-BZq41GwT.js} +1 -1
  193. package/dist/client/assets/{task-board-Bx3cqwAZ.js → task-board-3nbsbA9F.js} +1 -1
  194. package/dist/client/assets/{task-route-Bv_q5i--.js → task-route-CxNYrjWE.js} +1 -1
  195. package/dist/client/assets/{tasks-GWbkl06R.js → tasks-BcAM9xVw.js} +1 -1
  196. package/dist/client/assets/{textarea-Cdferp0K.js → textarea-Bt1l-v-4.js} +1 -1
  197. package/dist/client/assets/{thread-intent-CKqHlMow.js → thread-intent-Dvv1EpiP.js} +1 -1
  198. package/dist/client/assets/{thread-route-AbWdgotm.js → thread-route-CvNO1pt5.js} +1 -1
  199. package/dist/client/assets/{toggle-group-6AKnVxn8.js → toggle-group-BIHRiejF.js} +1 -1
  200. package/dist/client/assets/{toolbar-icon-button-RJfMkoLQ.js → toolbar-icon-button-HUU3DeDv.js} +1 -1
  201. package/dist/client/assets/{toolbar-D6LmlQ1e.js → toolbar-wrA0hnju.js} +1 -1
  202. package/dist/client/assets/{track-Bcic1GaS.js → track-BFy8EZMU.js} +1 -1
  203. package/dist/client/assets/{types-CxO7wOk-.js → types-BbudkrCP.js} +1 -1
  204. package/dist/client/assets/{use-ai-providers-BzFij6Yg.js → use-ai-providers-CygbvKpH.js} +1 -1
  205. package/dist/client/assets/{use-automations-3EGHGpk2.js → use-automations-Dq9Ujnel.js} +1 -1
  206. package/dist/client/assets/{use-autosave-BHVh7zSP.js → use-autosave-D-Inw3HB.js} +1 -1
  207. package/dist/client/assets/{use-connection-C9LH9ktZ.js → use-connection-De6kXusM.js} +1 -1
  208. package/dist/client/assets/{use-copy-C_RcJrvS.js → use-copy-CVL8ezCn.js} +1 -1
  209. package/dist/client/assets/{use-create-virtual-mcp-C-ROTiiG.js → use-create-virtual-mcp-R1xLoNkw.js} +1 -1
  210. package/dist/client/assets/{use-date-fns-locale-DBpL-xm-.js → use-date-fns-locale-DaHZoCLk.js} +1 -1
  211. package/dist/client/assets/{use-debounced-autosave-B9WM09s6.js → use-debounced-autosave-BMhSKDju.js} +1 -1
  212. package/dist/client/assets/{use-debounced-value-DiDBNIsK.js → use-debounced-value-D0HOX65a.js} +1 -1
  213. package/dist/client/assets/{use-decopilot-events-D9KhoRE_.js → use-decopilot-events-CayI0kWz.js} +1 -1
  214. package/dist/client/assets/{use-delete-connection-BljsV651.js → use-delete-connection-CnWS9tSJ.js} +1 -1
  215. package/dist/client/assets/{use-deployment-admin-Cd6Vlilx.js → use-deployment-admin-BmIOGiCV.js} +1 -1
  216. package/dist/client/assets/{use-destination-route-CUHeljX2.js → use-destination-route-CSS03xNU.js} +1 -1
  217. package/dist/client/assets/{use-file-configs-C1cw7bWX.js → use-file-configs-U1N7vmMJ.js} +1 -1
  218. package/dist/client/assets/{use-infinite-scroll-DsxXi1ne.js → use-infinite-scroll-BxDzsK0q.js} +1 -1
  219. package/dist/client/assets/{use-join-requests-JyaSOQjy.js → use-join-requests-BfxTPvq1.js} +1 -1
  220. package/dist/client/assets/{use-mcp-auth-status-BeaI0e3q.js → use-mcp-auth-status-Dzn7LvyX.js} +1 -1
  221. package/dist/client/assets/{use-mcp-client-DBIpUR_Q.js → use-mcp-client-BSfC7B4l.js} +1 -1
  222. package/dist/client/assets/{use-mcp-prompts-y2MtSMBD.js → use-mcp-prompts-QVLv6nAF.js} +1 -1
  223. package/dist/client/assets/{use-mcp-tools-BsEDXwD6.js → use-mcp-tools-BsEArfgg.js} +1 -1
  224. package/dist/client/assets/{use-members-Fuly6XlY.js → use-members-wJ4JxWh4.js} +1 -1
  225. package/dist/client/assets/{use-navigate-to-agent-Kl6EnJy1.js → use-navigate-to-agent-CP-K3KIR.js} +1 -1
  226. package/dist/client/assets/{use-org-auth-client-D5yIq9Gk.js → use-org-auth-client-DWK2XwV1.js} +1 -1
  227. package/dist/client/assets/{use-org-notice-DUyOhPa4.js → use-org-notice-B5aH6jEO.js} +1 -1
  228. package/dist/client/assets/{use-org-sso-Ce8zUd7K.js → use-org-sso-C-CIgBnX.js} +1 -1
  229. package/dist/client/assets/{use-organization-roles-CbR5UjbP.js → use-organization-roles-BB-gdlQ0.js} +1 -1
  230. package/dist/client/assets/{use-organization-settings-DV6zKCpV.js → use-organization-settings-BL3ZQVJG.js} +1 -1
  231. package/dist/client/assets/{use-panel-navigate-BDsIsCi2.js → use-panel-navigate-DtIO2LK2.js} +1 -1
  232. package/dist/client/assets/{use-registry-connections-C_zIH2sX.js → use-registry-connections-Chb8MZQ9.js} +1 -1
  233. package/dist/client/assets/{use-secrets-B3oN2LCY.js → use-secrets-bCQiMi0L.js} +1 -1
  234. package/dist/client/assets/{use-section-preview-base-XWFQsTnE.js → use-section-preview-base-DylvTrFU.js} +1 -1
  235. package/dist/client/assets/{use-status-sounds-JH-_0XAZ.js → use-status-sounds-DlTpiOV2.js} +1 -1
  236. package/dist/client/assets/{use-tags-Cih5ZXdl.js → use-tags-3pJUBLb_.js} +1 -1
  237. package/dist/client/assets/{use-view-mode-C2-ECVBt.js → use-view-mode-054OP7Xj.js} +1 -1
  238. package/dist/client/assets/{use-virtual-mcp-DrMRB2eS.js → use-virtual-mcp-DZn4-6Z9.js} +1 -1
  239. package/dist/client/assets/useInfiniteQuery-Uy7lOi7c.js +1 -0
  240. package/dist/client/assets/useSuspenseInfiniteQuery-BvETpOBx.js +1 -0
  241. package/dist/client/assets/{users-rpRsp_BS.js → users-ClG9LEpP.js} +1 -1
  242. package/dist/client/assets/{variant-calendar-DuJfg-z-.js → variant-calendar-a4eYe0no.js} +1 -1
  243. package/dist/client/assets/{view-mode-toggle-D9gNMAcP.js → view-mode-toggle-CmvSb5ck.js} +1 -1
  244. package/dist/client/index.html +1 -1
  245. package/dist/server/cli.js +600 -600
  246. package/dist/server/migrate.js +135 -135
  247. package/dist/server/server.js +396 -396
  248. package/package.json +1 -1
  249. package/dist/client/assets/api-keys-eLOtXH3i.js +0 -1
  250. package/dist/client/assets/app-editor-TTUJgVhd.js +0 -1
  251. package/dist/client/assets/record-editor-ssFhFAja.js +0 -1
  252. package/dist/client/assets/redirect-editor-Ct31zDHf.js +0 -1
  253. package/dist/client/assets/registry-DXRoDTIU.js +0 -2
  254. package/dist/client/assets/settings-layout-DLtg2QOW.js +0 -1
  255. package/dist/client/assets/store-registry-BAbAyhdE.js +0 -2
  256. package/dist/client/assets/useInfiniteQuery-BvtmxOq6.js +0 -1
  257. package/dist/client/assets/useSuspenseInfiniteQuery-D9bH4tUz.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null,x)}var m=(_,x)=>{for(var u in x)VN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:pN.bind(x,u)})};import{Migrator as IN,sql as a}from"kysely";var t_={};m(t_,{up:()=>iN,down:()=>vN});import{sql as tN}from"kysely";async function iN(_){await tN`
2
+ var kN=Object.defineProperty;var pN=(_)=>_;function tN(_,x){this[_]=pN.bind(null,x)}var m=(_,x)=>{for(var u in x)kN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:tN.bind(x,u)})};import{Migrator as wN,sql as a}from"kysely";var t_={};m(t_,{up:()=>iN,down:()=>vN});async function iN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function vN(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var i_={};m(i_,{up:()=>qN,down:()=>cN});import{sql as gN}from"kysely";async function qN(_){await gN`
3
3
  CREATE TABLE github_connect_flows (
4
4
  id text PRIMARY KEY,
5
5
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -9,7 +9,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
9
9
  );
10
10
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
11
11
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
12
- `.execute(_)}async function vN(_){await _.schema.dropTable("github_connect_flows").execute()}var i_={};m(i_,{up:()=>gN,down:()=>qN});async function gN(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function qN(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var v_={};m(v_,{up:()=>cN,down:()=>hN});import{sql as z_}from"kysely";async function cN(_){await z_`
12
+ `.execute(_)}async function cN(_){await _.schema.dropTable("github_connect_flows").execute()}var v_={};m(v_,{up:()=>hN,down:()=>oN});async function hN(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function oN(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var g_={};m(g_,{up:()=>aN,down:()=>rN});import{sql as z_}from"kysely";async function aN(_){await z_`
13
13
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
14
14
  DECLARE
15
15
  metadata_json jsonb;
@@ -65,19 +65,19 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
65
65
  FROM repositories r WHERE s.repository_id IS NULL
66
66
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
67
67
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
68
- `.execute(_)}async function hN(_){await z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var g_={};m(g_,{up:()=>oN,down:()=>aN});import{sql as H}from"kysely";async function oN(_){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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`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(H`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(H`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(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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 aN(_){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 q_={};m(q_,{up:()=>rN,down:()=>eN});import{sql as XT}from"kysely";async function rN(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute()}async function eN(_){await _.schema.dropTable("organization_settings").execute()}var c_={};m(c_,{up:()=>lN,down:()=>sN});async function lN(_){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 sN(_){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 h_={};m(h_,{up:()=>dN,down:()=>bN});async function dN(_){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 bN(_){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 o_={};m(o_,{up:()=>_K,down:()=>xK});async function _K(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function xK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var a_={};m(a_,{up:()=>mK,down:()=>CK});import{sql as uK}from"kysely";async function mK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",uK`text`).execute()}async function CK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var r_={};m(r_,{up:()=>TK,down:()=>NK});async function TK(_){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 NK(_){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 e_={};m(e_,{up:()=>KK,down:()=>EK});import{sql as r}from"kysely";async function KK(_){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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`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 EK(_){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 l_={};m(l_,{up:()=>PK,down:()=>$K});import{sql as zK}from"kysely";async function PK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function $K(_){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(zK`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 s_={};m(s_,{up:()=>UK,down:()=>JK});import{sql as P_}from"kysely";async function UK(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 P_`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 JK(_){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 d_={};m(d_,{up:()=>XK,down:()=>jK});async function XK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function jK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var b_={};m(b_,{up:()=>QK,down:()=>WK});import{sql as $_}from"kysely";async function QK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await $_`
68
+ `.execute(_)}async function rN(_){await z_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await z_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var q_={};m(q_,{up:()=>eN,down:()=>lN});import{sql as H}from"kysely";async function eN(_){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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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(H`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(H`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(H`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(H`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(H`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(H`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 lN(_){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 c_={};m(c_,{up:()=>sN,down:()=>dN});import{sql as jT}from"kysely";async function sN(_){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(jT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(jT`CURRENT_TIMESTAMP`)).execute()}async function dN(_){await _.schema.dropTable("organization_settings").execute()}var h_={};m(h_,{up:()=>bN,down:()=>_K});async function bN(_){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 _K(_){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 o_={};m(o_,{up:()=>xK,down:()=>uK});async function xK(_){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 uK(_){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 a_={};m(a_,{up:()=>mK,down:()=>CK});async function mK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function CK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var r_={};m(r_,{up:()=>NK,down:()=>KK});import{sql as TK}from"kysely";async function NK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",TK`text`).execute()}async function KK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var e_={};m(e_,{up:()=>EK,down:()=>zK});async function EK(_){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 zK(_){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 l_={};m(l_,{up:()=>PK,down:()=>$K});import{sql as r}from"kysely";async function PK(_){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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(r`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(r`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 $K(_){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 s_={};m(s_,{up:()=>JK,down:()=>XK});import{sql as UK}from"kysely";async function JK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function XK(_){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(UK`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 d_={};m(d_,{up:()=>jK,down:()=>QK});import{sql as P_}from"kysely";async function jK(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 P_`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 QK(_){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 b_={};m(b_,{up:()=>WK,down:()=>ZK});async function WK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function ZK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var _x={};m(_x,{up:()=>LK,down:()=>DK});import{sql as $_}from"kysely";async function LK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await $_`
69
69
  UPDATE gateways
70
70
  SET tool_selection_mode = CASE
71
71
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
72
72
  ELSE 'inclusion'
73
73
  END
74
- `.execute(_),await $_`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 WK(_){await $_`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 $_`
74
+ `.execute(_),await $_`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 DK(_){await $_`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 $_`
75
75
  UPDATE gateways
76
76
  SET tool_selection_strategy = CASE
77
77
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
78
78
  ELSE NULL
79
79
  END
80
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var _x={};m(_x,{up:()=>ZK,down:()=>LK});async function ZK(_){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 LK(_){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 xx={};m(xx,{up:()=>DK,down:()=>FK});async function DK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function FK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var ux={};m(ux,{up:()=>nK,down:()=>RK});async function nK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function RK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var mx={};m(mx,{up:()=>YK,down:()=>HK});async function YK(_){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 HK(_){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 Cx={};m(Cx,{up:()=>BK,down:()=>GK});import{sql as MK}from"kysely";async function BK(_){await MK`
80
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var xx={};m(xx,{up:()=>FK,down:()=>nK});async function FK(_){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 nK(_){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 ux={};m(ux,{up:()=>RK,down:()=>YK});async function RK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function YK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var mx={};m(mx,{up:()=>HK,down:()=>MK});async function HK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function MK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Cx={};m(Cx,{up:()=>BK,down:()=>GK});async function BK(_){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 GK(_){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 Tx={};m(Tx,{up:()=>fK,down:()=>OK});import{sql as yK}from"kysely";async function fK(_){await yK`
81
81
  DELETE FROM downstream_tokens
82
82
  WHERE id NOT IN (
83
83
  SELECT id FROM (
@@ -87,7 +87,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
87
87
  ) ranked
88
88
  WHERE rn = 1
89
89
  )
90
- `.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 GK(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Tx={};m(Tx,{up:()=>yK,down:()=>fK});async function yK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function fK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Nx={};m(Nx,{up:()=>OK,down:()=>AK});import{sql as jT}from"kysely";async function OK(_){await jT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function AK(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await jT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Kx={};m(Kx,{up:()=>SK,down:()=>IK});async function SK(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function IK(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ex={};m(Ex,{up:()=>wK,down:()=>VK});import{sql as U_}from"kysely";async function wK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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 VK(_){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 zx={};m(zx,{up:()=>kK,down:()=>pK});async function kK(_){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 pK(_){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 Px={};m(Px,{up:()=>tK,down:()=>iK});async function tK(_){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 iK(_){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 $x={};m($x,{up:()=>vK,down:()=>gK});import{sql as W}from"kysely";async function vK(_){await W`
90
+ `.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 OK(_){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 Nx={};m(Nx,{up:()=>AK,down:()=>SK});async function AK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function SK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Kx={};m(Kx,{up:()=>IK,down:()=>wK});import{sql as QT}from"kysely";async function IK(_){await QT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function wK(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await QT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Ex={};m(Ex,{up:()=>VK,down:()=>kK});async function VK(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function kK(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var zx={};m(zx,{up:()=>pK,down:()=>tK});import{sql as U_}from"kysely";async function pK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`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 tK(_){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 Px={};m(Px,{up:()=>iK,down:()=>vK});async function iK(_){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 vK(_){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 $x={};m($x,{up:()=>gK,down:()=>qK});async function gK(_){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 qK(_){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 Ux={};m(Ux,{up:()=>cK,down:()=>hK});import{sql as W}from"kysely";async function cK(_){await W`
91
91
  INSERT INTO connections (
92
92
  id,
93
93
  organization_id,
@@ -134,7 +134,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
134
134
  created_at,
135
135
  updated_at
136
136
  FROM virtual_mcps
137
- `.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 gK(_){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`
137
+ `.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 hK(_){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`
138
138
  INSERT INTO virtual_mcps (
139
139
  id, organization_id, title, description, icon, status,
140
140
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -144,7 +144,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
144
144
  created_at, updated_at, created_by, NULL, 'inclusion'
145
145
  FROM connections
146
146
  WHERE connection_type = 'VIRTUAL'
147
- `.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 Ux={};m(Ux,{up:()=>qK,down:()=>cK});async function qK(_){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 cK(_){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 Jx={};m(Jx,{up:()=>hK,down:()=>oK});import{sql as M}from"kysely";async function hK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
147
+ `.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 Jx={};m(Jx,{up:()=>oK,down:()=>aK});async function oK(_){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 aK(_){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 Xx={};m(Xx,{up:()=>rK,down:()=>eK});import{sql as M}from"kysely";async function rK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
148
148
  INSERT INTO connection_aggregations_new (
149
149
  id, parent_connection_id, child_connection_id,
150
150
  selected_tools, selected_resources, selected_prompts, created_at
@@ -153,7 +153,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
153
153
  id, parent_connection_id, child_connection_id,
154
154
  selected_tools, selected_resources, selected_prompts, created_at
155
155
  FROM connection_aggregations
156
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 oK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
156
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 eK(_){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(M`CURRENT_TIMESTAMP`)).execute(),await M`
157
157
  INSERT INTO connection_aggregations_new (
158
158
  id, parent_connection_id, child_connection_id,
159
159
  selected_tools, selected_resources, selected_prompts, created_at
@@ -162,7 +162,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
162
162
  id, parent_connection_id, child_connection_id,
163
163
  selected_tools, selected_resources, selected_prompts, created_at
164
164
  FROM connection_aggregations
165
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 jx={};m(jx,{up:()=>aK,down:()=>rK});import{sql as Xx}from"kysely";async function aK(_){await Xx`
165
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await M`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await M`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 Qx={};m(Qx,{up:()=>lK,down:()=>sK});import{sql as jx}from"kysely";async function lK(_){await jx`
166
166
  UPDATE connections
167
167
  SET connection_url = connection_url || '/management',
168
168
  tools = NULL,
@@ -170,42 +170,42 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
170
170
  WHERE connection_url LIKE '%/mcp'
171
171
  AND connection_url NOT LIKE '%/mcp/management'
172
172
  AND app_name = '@deco/management-mcp'
173
- `.execute(_),await Xx`
173
+ `.execute(_),await jx`
174
174
  UPDATE connections
175
175
  SET tools = NULL,
176
176
  updated_at = CURRENT_TIMESTAMP
177
177
  WHERE app_name = '@deco/management-mcp'
178
178
  AND tools IS NOT NULL
179
- `.execute(_)}async function rK(_){await Xx`
179
+ `.execute(_)}async function sK(_){await jx`
180
180
  UPDATE connections
181
181
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
182
182
  updated_at = CURRENT_TIMESTAMP
183
183
  WHERE connection_url LIKE '%/mcp/management'
184
184
  AND app_name = '@deco/management-mcp'
185
- `.execute(_)}var Wx={};m(Wx,{up:()=>eK,down:()=>lK});import{sql as Qx}from"kysely";async function eK(_){await Qx`
185
+ `.execute(_)}var Zx={};m(Zx,{up:()=>dK,down:()=>bK});import{sql as Wx}from"kysely";async function dK(_){await Wx`
186
186
  UPDATE connections
187
187
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
188
188
  tools = NULL,
189
189
  updated_at = CURRENT_TIMESTAMP
190
190
  WHERE connection_url LIKE '%/mcp/management'
191
191
  AND app_name = '@deco/management-mcp'
192
- `.execute(_),await Qx`
192
+ `.execute(_),await Wx`
193
193
  UPDATE connections
194
194
  SET tools = NULL,
195
195
  updated_at = CURRENT_TIMESTAMP
196
196
  WHERE connection_url LIKE '%/mcp/self'
197
197
  AND app_name = '@deco/management-mcp'
198
198
  AND tools IS NOT NULL
199
- `.execute(_)}async function lK(_){await Qx`
199
+ `.execute(_)}async function bK(_){await Wx`
200
200
  UPDATE connections
201
201
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
202
202
  updated_at = CURRENT_TIMESTAMP
203
203
  WHERE connection_url LIKE '%/mcp/self'
204
204
  AND app_name = '@deco/management-mcp'
205
- `.execute(_)}var Zx={};m(Zx,{up:()=>sK,down:()=>dK});async function sK(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function dK(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Lx={};m(Lx,{up:()=>bK,down:()=>_E});import{sql as QT}from"kysely";async function bK(_){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(QT`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(QT`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 _E(_){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 Dx={};m(Dx,{up:()=>xE,down:()=>uE});import{sql as e}from"kysely";async function xE(_){await e`
205
+ `.execute(_)}var Lx={};m(Lx,{up:()=>_E,down:()=>xE});async function _E(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function xE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Dx={};m(Dx,{up:()=>uE,down:()=>mE});import{sql as WT}from"kysely";async function uE(_){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(WT`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(WT`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 mE(_){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 Fx={};m(Fx,{up:()=>CE,down:()=>TE});import{sql as e}from"kysely";async function CE(_){await e`
206
206
  ALTER TABLE connection_aggregations
207
207
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
208
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function uE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await e`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await e`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(e`CURRENT_TIMESTAMP`)).execute(),await e`
208
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function TE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await e`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await e`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(e`CURRENT_TIMESTAMP`)).execute(),await e`
209
209
  INSERT INTO connection_aggregations_new (
210
210
  id, parent_connection_id, child_connection_id,
211
211
  selected_tools, selected_resources, selected_prompts, created_at
@@ -214,42 +214,42 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
214
214
  id, parent_connection_id, child_connection_id,
215
215
  selected_tools, selected_resources, selected_prompts, created_at
216
216
  FROM connection_aggregations
217
- `.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 Fx={};m(Fx,{up:()=>KE,down:()=>EE});import{webcrypto as ZT}from"crypto";var WT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var mE=128,w,k;function CE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*mE),ZT.getRandomValues(w),k=0;else if(k+_>w.length)ZT.getRandomValues(w),k=0;k+=_}function p(_=21){CE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=WT[w[u]&63];return x}var TE="org-admin",NE="Organization Admin";async function KE(_){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:TE,name:NE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function EE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var nx={};m(nx,{up:()=>zE,down:()=>PE});async function zE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function PE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Rx={};m(Rx,{up:()=>$E,down:()=>UE});async function $E(_){}async function UE(_){}var Yx={};m(Yx,{up:()=>JE,down:()=>XE});async function JE(_){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 XE(_){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 Hx={};m(Hx,{up:()=>jE,down:()=>QE});import{sql as LT}from"kysely";async function jE(_){await LT`
217
+ `.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 nx={};m(nx,{up:()=>PE,down:()=>$E});import{webcrypto as LT}from"crypto";var ZT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var NE=128,w,k;function KE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*NE),LT.getRandomValues(w),k=0;else if(k+_>w.length)LT.getRandomValues(w),k=0;k+=_}function p(_=21){KE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=ZT[w[u]&63];return x}var EE="org-admin",zE="Organization Admin";async function PE(_){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:EE,name:zE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function $E(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Rx={};m(Rx,{up:()=>UE,down:()=>JE});async function UE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function JE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Yx={};m(Yx,{up:()=>XE,down:()=>jE});async function XE(_){}async function jE(_){}var Hx={};m(Hx,{up:()=>QE,down:()=>WE});async function QE(_){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 WE(_){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 Mx={};m(Mx,{up:()=>ZE,down:()=>LE});import{sql as DT}from"kysely";async function ZE(_){await DT`
218
218
  UPDATE connections
219
219
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
220
220
  tools = NULL,
221
221
  updated_at = CURRENT_TIMESTAMP
222
222
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
223
223
  AND app_name = 'deco-registry'
224
- `.execute(_)}async function QE(_){await LT`
224
+ `.execute(_)}async function LE(_){await DT`
225
225
  UPDATE connections
226
226
  SET connection_url = 'https://api.decocms.com/mcp/registry',
227
227
  updated_at = CURRENT_TIMESTAMP
228
228
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
229
229
  AND app_name = 'deco-registry'
230
- `.execute(_)}var Mx={};m(Mx,{up:()=>ZE,down:()=>LE});import{sql as WE}from"kysely";async function ZE(_){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(WE`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 LE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Bx={};m(Bx,{up:()=>FE,down:()=>nE});import{sql as DE}from"kysely";async function FE(_){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(DE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function nE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var Gx={};m(Gx,{up:()=>RE,down:()=>YE});import{sql as O}from"kysely";async function RE(_){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 YE(_){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 yx={};m(yx,{up:()=>HE,down:()=>ME});async function HE(_){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 ME(_){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 fx={};m(fx,{up:()=>BE,down:()=>GE});async function BE(_){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 GE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Ox={};m(Ox,{up:()=>yE,down:()=>fE});import{sql as DT}from"kysely";async function yE(_){await DT`
230
+ `.execute(_)}var Bx={};m(Bx,{up:()=>FE,down:()=>nE});import{sql as DE}from"kysely";async function FE(_){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(DE`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 nE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Gx={};m(Gx,{up:()=>YE,down:()=>HE});import{sql as RE}from"kysely";async function YE(_){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(RE`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 yx={};m(yx,{up:()=>ME,down:()=>BE});import{sql as O}from"kysely";async function ME(_){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 BE(_){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 fx={};m(fx,{up:()=>GE,down:()=>yE});async function GE(_){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 yE(_){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 Ox={};m(Ox,{up:()=>fE,down:()=>OE});async function fE(_){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 OE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Ax={};m(Ax,{up:()=>AE,down:()=>SE});import{sql as FT}from"kysely";async function AE(_){await FT`
231
231
  UPDATE connections
232
232
  SET title = 'CMS MCP',
233
233
  tools = NULL,
234
234
  updated_at = CURRENT_TIMESTAMP
235
235
  WHERE app_name = '@deco/management-mcp'
236
- `.execute(_)}async function fE(_){await DT`
236
+ `.execute(_)}async function SE(_){await FT`
237
237
  UPDATE connections
238
238
  SET title = 'Mesh MCP',
239
239
  updated_at = CURRENT_TIMESTAMP
240
240
  WHERE app_name = '@deco/management-mcp'
241
- `.execute(_)}var Ax={};m(Ax,{up:()=>OE,down:()=>AE});import{sql as FT}from"kysely";async function OE(_){await FT`
241
+ `.execute(_)}var Sx={};m(Sx,{up:()=>IE,down:()=>wE});import{sql as nT}from"kysely";async function IE(_){await nT`
242
242
  UPDATE connections
243
243
  SET title = 'Deco CMS',
244
244
  tools = NULL,
245
245
  updated_at = CURRENT_TIMESTAMP
246
246
  WHERE app_name = '@deco/management-mcp'
247
- `.execute(_)}async function AE(_){await FT`
247
+ `.execute(_)}async function wE(_){await nT`
248
248
  UPDATE connections
249
249
  SET title = 'CMS MCP',
250
250
  updated_at = CURRENT_TIMESTAMP
251
251
  WHERE app_name = '@deco/management-mcp'
252
- `.execute(_)}var Sx={};m(Sx,{up:()=>SE,down:()=>IE});async function SE(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function IE(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Ix={};m(Ix,{up:()=>wE,down:()=>VE});async function wE(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function VE(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Vx={};m(Vx,{up:()=>kE,down:()=>pE});import{sql as wx}from"kysely";async function kE(_){await wx`
252
+ `.execute(_)}var Ix={};m(Ix,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function kE(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var wx={};m(wx,{up:()=>pE,down:()=>tE});async function pE(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function tE(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var kx={};m(kx,{up:()=>iE,down:()=>vE});import{sql as Vx}from"kysely";async function iE(_){await Vx`
253
253
  UPDATE organization_settings
254
254
  SET enabled_plugins = (
255
255
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -258,7 +258,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
258
258
  )
259
259
  WHERE enabled_plugins IS NOT NULL
260
260
  AND enabled_plugins LIKE '%object-storage%'
261
- `.execute(_),await wx`
261
+ `.execute(_),await Vx`
262
262
  UPDATE projects
263
263
  SET enabled_plugins = (
264
264
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -267,28 +267,28 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
267
267
  )
268
268
  WHERE enabled_plugins IS NOT NULL
269
269
  AND enabled_plugins LIKE '%object-storage%'
270
- `.execute(_),await wx`
270
+ `.execute(_),await Vx`
271
271
  DELETE FROM project_plugin_configs
272
272
  WHERE plugin_id = 'object-storage'
273
- `.execute(_)}async function pE(_){}var kx={};m(kx,{up:()=>tE,down:()=>iE});import{sql as nT}from"kysely";async function tE(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await nT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function iE(_){await nT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var tx={};m(tx,{up:()=>vE,down:()=>gE});import{sql as px}from"kysely";async function vE(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await px`
273
+ `.execute(_)}async function vE(_){}var px={};m(px,{up:()=>gE,down:()=>qE});import{sql as RT}from"kysely";async function gE(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await RT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function qE(_){await RT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ix={};m(ix,{up:()=>cE,down:()=>hE});import{sql as tx}from"kysely";async function cE(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await tx`
274
274
  ALTER TABLE connections
275
275
  ADD CONSTRAINT chk_connections_subtype
276
276
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
277
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await px`
277
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await tx`
278
278
  UPDATE connections
279
279
  SET subtype = 'agent'
280
280
  WHERE connection_type = 'VIRTUAL'
281
- `.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}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,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 gE(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await px`
281
+ `.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}),Q=T.get(K.organization_id);if(!Q)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:Q,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 hE(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await tx`
282
282
  ALTER TABLE connections
283
283
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
284
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ix={};m(ix,{up:()=>cE,down:()=>hE});import{sql as qE}from"kysely";async function cE(_){await qE`
284
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var vx={};m(vx,{up:()=>aE,down:()=>rE});import{sql as oE}from"kysely";async function aE(_){await oE`
285
285
  DELETE FROM connections
286
286
  WHERE connection_type = 'VIRTUAL'
287
287
  AND subtype = 'project'
288
288
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
289
- `.execute(_)}async function hE(_){}var vx={};m(vx,{up:()=>aE,down:()=>rE});import{sql as oE}from"kysely";async function aE(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await oE`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function rE(_){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 qx={};m(qx,{up:()=>eE,down:()=>lE});import{sql as gx}from"kysely";async function eE(_){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(gx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(gx`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(gx`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 lE(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var cx={};m(cx,{up:()=>sE,down:()=>dE});async function sE(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function dE(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var hx={};m(hx,{up:()=>bE,down:()=>_z});async function bE(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function _z(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var ax={};m(ax,{up:()=>uz,down:()=>mz});import{sql as RT}from"kysely";function ox(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function xz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return ox(T)}catch{return ox(_.connection_url)}if(_.title)return ox(_.title);return _.id}async function uz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await RT`
289
+ `.execute(_)}async function rE(_){}var gx={};m(gx,{up:()=>lE,down:()=>sE});import{sql as eE}from"kysely";async function lE(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await eE`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function sE(_){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 cx={};m(cx,{up:()=>dE,down:()=>bE});import{sql as qx}from"kysely";async function dE(_){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(qx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(qx`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(qx`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 bE(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var hx={};m(hx,{up:()=>_z,down:()=>xz});async function _z(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function xz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var ox={};m(ox,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function mz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var rx={};m(rx,{up:()=>Tz,down:()=>Nz});import{sql as YT}from"kysely";function ax(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Cz(_){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 ax(T)}catch{return ax(_.connection_url)}if(_.title)return ax(_.title);return _.id}async function Tz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await YT`
290
290
  SELECT id, app_name, connection_url, title FROM connections
291
- `.execute(_);for(let u of x.rows){let T=xz(u);await RT`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 mz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var rx={};m(rx,{up:()=>Cz,down:()=>Tz});import{sql as l}from"kysely";async function Cz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await l`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await l`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 Tz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await l`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await l`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await l`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 ex={};m(ex,{up:()=>Nz,down:()=>Kz});async function Nz(_){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 Kz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var lx={};m(lx,{up:()=>Ez,down:()=>zz});import{sql as J_}from"kysely";async function Ez(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await J_`
291
+ `.execute(_);for(let u of x.rows){let T=Cz(u);await YT`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 ex={};m(ex,{up:()=>Kz,down:()=>Ez});import{sql as l}from"kysely";async function Kz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await l`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await l`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 Ez(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await l`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await l`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await l`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 lx={};m(lx,{up:()=>zz,down:()=>Pz});async function zz(_){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 Pz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var sx={};m(sx,{up:()=>$z,down:()=>Uz});import{sql as J_}from"kysely";async function $z(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await J_`
292
292
  UPDATE threads
293
293
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
294
294
  WHERE agent_ids IS NOT NULL
@@ -298,14 +298,14 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
298
298
  `.execute(_),await J_`
299
299
  CREATE INDEX idx_threads_virtual_mcp_id
300
300
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
301
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function zz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await J_`
301
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Uz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await J_`
302
302
  UPDATE threads
303
303
  SET agent_ids = CASE
304
304
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
305
305
  THEN jsonb_build_array(virtual_mcp_id)::text
306
306
  ELSE '[]'
307
307
  END
308
- `.execute(_),await J_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var sx={};m(sx,{up:()=>Pz,down:()=>$z});async function Pz(_){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 $z(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var dx={};m(dx,{up:()=>Uz,down:()=>Jz});async function Uz(_){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 Jz(_){await _.schema.dropTable("kv").execute()}var bx={};m(bx,{up:()=>Xz,down:()=>jz});async function Xz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function jz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var _u={};m(_u,{up:()=>Qz,down:()=>Wz});async function Qz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function Wz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var xu={};m(xu,{up:()=>Zz,down:()=>Lz});import{sql as D}from"kysely";async function Zz(_){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 Lz(_){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 uu={};m(uu,{up:()=>Dz,down:()=>Fz});import{sql as t}from"kysely";async function Dz(_){await t`
308
+ `.execute(_),await J_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var dx={};m(dx,{up:()=>Jz,down:()=>Xz});async function Jz(_){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 Xz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var bx={};m(bx,{up:()=>jz,down:()=>Qz});async function jz(_){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 Qz(_){await _.schema.dropTable("kv").execute()}var _u={};m(_u,{up:()=>Wz,down:()=>Zz});async function Wz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function Zz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var xu={};m(xu,{up:()=>Lz,down:()=>Dz});async function Lz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function Dz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var uu={};m(uu,{up:()=>Fz,down:()=>nz});import{sql as D}from"kysely";async function Fz(_){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 nz(_){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 mu={};m(mu,{up:()=>Rz,down:()=>Yz});import{sql as t}from"kysely";async function Rz(_){await t`
309
309
  ALTER TABLE event_subscriptions
310
310
  ALTER COLUMN enabled DROP DEFAULT
311
311
  `.execute(_),await t`
@@ -315,7 +315,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
315
315
  `.execute(_),await t`
316
316
  ALTER TABLE event_subscriptions
317
317
  ALTER COLUMN enabled SET DEFAULT true
318
- `.execute(_)}async function Fz(_){await t`
318
+ `.execute(_)}async function Yz(_){await t`
319
319
  ALTER TABLE event_subscriptions
320
320
  ALTER COLUMN enabled DROP DEFAULT
321
321
  `.execute(_),await t`
@@ -325,7 +325,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
325
325
  `.execute(_),await t`
326
326
  ALTER TABLE event_subscriptions
327
327
  ALTER COLUMN enabled SET DEFAULT 1
328
- `.execute(_)}var mu={};m(mu,{up:()=>nz,down:()=>Rz});import{sql as YT}from"kysely";async function nz(_){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(YT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(YT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function Rz(_){await _.schema.dropTable("brand_context").execute()}var Cu={};m(Cu,{up:()=>Yz,down:()=>Hz});import{sql as HT}from"kysely";async function Yz(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute()}async function Hz(_){await _.schema.dropTable("organization_domains").execute()}var Tu={};m(Tu,{up:()=>yz,down:()=>fz});import{sql as MT}from"kysely";var X_=new Set(["primary","secondary","accent","background","foreground"]),Mz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function Bz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>X_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(X_.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(X_.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(X_.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 Gz(_){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=Mz[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 yz(_){let x=await MT`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=Bz($);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=Gz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await MT`
328
+ `.execute(_)}var Cu={};m(Cu,{up:()=>Hz,down:()=>Mz});import{sql as HT}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(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function Mz(_){await _.schema.dropTable("brand_context").execute()}var Tu={};m(Tu,{up:()=>Bz,down:()=>Gz});import{sql as MT}from"kysely";async function Bz(_){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(MT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(MT`now()`)).execute()}async function Gz(_){await _.schema.dropTable("organization_domains").execute()}var Nu={};m(Nu,{up:()=>Az,down:()=>Sz});import{sql as BT}from"kysely";var X_=new Set(["primary","secondary","accent","background","foreground"]),yz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function fz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>X_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(X_.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(X_.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(X_.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 Oz(_){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=yz[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 Az(_){let x=await BT`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=fz($);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=Oz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await BT`
329
329
  UPDATE brand_context
330
330
  SET
331
331
  colors = ${E},
@@ -333,20 +333,20 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
333
333
  metadata = ${$},
334
334
  updated_at = NOW()
335
335
  WHERE id = ${u.id}
336
- `.execute(_)}}}async function fz(_){}var Nu={};m(Nu,{up:()=>Az,down:()=>Sz});import{sql as Oz}from"kysely";async function Az(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(Oz`'{}'::jsonb`)).execute()}async function Sz(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Ku={};m(Ku,{up:()=>Iz,down:()=>wz});async function Iz(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function wz(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Eu={};m(Eu,{up:()=>Vz,down:()=>kz});async function Vz(_){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 kz(_){await _.schema.dropTable("sandbox_runner_state").execute()}var zu={};m(zu,{up:()=>pz,down:()=>tz});async function pz(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function tz(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Pu={};m(Pu,{up:()=>iz,down:()=>vz});async function iz(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function vz(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var $u={};m($u,{up:()=>gz,down:()=>qz});async function gz(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function qz(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Uu={};m(Uu,{up:()=>hz,down:()=>oz});import{sql as BT}from"kysely";var cz=["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 hz(_){let x=await BT`
336
+ `.execute(_)}}}async function Sz(_){}var Ku={};m(Ku,{up:()=>wz,down:()=>Vz});import{sql as Iz}from"kysely";async function wz(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(Iz`'{}'::jsonb`)).execute()}async function Vz(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Eu={};m(Eu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function pz(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var zu={};m(zu,{up:()=>tz,down:()=>iz});async function tz(_){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 iz(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Pu={};m(Pu,{up:()=>vz,down:()=>gz});async function vz(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function gz(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var $u={};m($u,{up:()=>qz,down:()=>cz});async function qz(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function cz(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Uu={};m(Uu,{up:()=>hz,down:()=>oz});async function hz(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function oz(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Ju={};m(Ju,{up:()=>rz,down:()=>ez});import{sql as GT}from"kysely";var az=["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 rz(_){let x=await GT`
337
337
  SELECT id, permission FROM "organizationRole"
338
- `.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,...cz]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await BT`
338
+ `.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,...az]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await GT`
339
339
  UPDATE "organizationRole"
340
340
  SET permission = ${K}
341
341
  WHERE id = ${u.id}
342
- `.execute(_)}}async function oz(_){}var Ju={};m(Ju,{up:()=>az,down:()=>rz});async function az(_){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 rz(_){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 Xu={};m(Xu,{up:()=>ez,down:()=>lz});async function ez(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function lz(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var ju={};m(ju,{up:()=>sz,down:()=>dz});import{sql as s}from"kysely";async function sz(_){await s`
342
+ `.execute(_)}}async function ez(_){}var Xu={};m(Xu,{up:()=>lz,down:()=>sz});async function lz(_){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 sz(_){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 ju={};m(ju,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function bz(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Qu={};m(Qu,{up:()=>_0,down:()=>x0});import{sql as s}from"kysely";async function _0(_){await s`
343
343
  UPDATE automations
344
344
  SET virtual_mcp_id = (agent::json ->> 'id')
345
345
  WHERE virtual_mcp_id IS NULL
346
346
  `.execute(_),await s`
347
347
  ALTER TABLE automations
348
348
  ALTER COLUMN virtual_mcp_id SET NOT NULL
349
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function dz(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
349
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function x0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
350
350
  UPDATE automations
351
351
  SET agent = json_build_object('id', virtual_mcp_id)::text
352
352
  `.execute(_),await s`
@@ -355,7 +355,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
355
355
  `.execute(_),await s`
356
356
  ALTER TABLE automations
357
357
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
358
- `.execute(_)}var Wu={};m(Wu,{up:()=>u0,reshapeSimpleMode:()=>GT,inferAutomationTier:()=>yT,down:()=>m0,__testing:()=>x0});var bz={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},_0=["fast","smart","thinking","image","web_research"];function Qu(_){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 _0.some((T)=>(T in u))}function GT(_){if(Qu(_))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 bz;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 yT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function fT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var x0={isAlreadyReshapedSimpleMode:Qu,isAlreadyReshapedAutomationModels:fT};async function u0(_){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(Qu(C))continue;let N=GT(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(fT(C))continue;let N=yT(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 m0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Zu={};m(Zu,{up:()=>C0,down:()=>T0});import{sql as y}from"kysely";async function C0(_){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`
358
+ `.execute(_)}var Zu={};m(Zu,{up:()=>T0,reshapeSimpleMode:()=>yT,inferAutomationTier:()=>fT,down:()=>N0,__testing:()=>C0});var u0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},m0=["fast","smart","thinking","image","web_research"];function Wu(_){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 m0.some((T)=>(T in u))}function yT(_){if(Wu(_))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 u0;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 fT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function OT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var C0={isAlreadyReshapedSimpleMode:Wu,isAlreadyReshapedAutomationModels:OT};async function T0(_){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(Wu(C))continue;let N=yT(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(OT(C))continue;let N=fT(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 Lu={};m(Lu,{up:()=>K0,down:()=>E0});import{sql as y}from"kysely";async function K0(_){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`
359
359
  ALTER TABLE automations
360
360
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
361
361
  `.execute(_),await y`
@@ -377,19 +377,19 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
377
377
  AND tool_input IS NOT NULL
378
378
  )
379
379
  )
380
- `.execute(_)}async function T0(_){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`
380
+ `.execute(_)}async function E0(_){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`
381
381
  ALTER TABLE automations
382
382
  ALTER COLUMN virtual_mcp_id SET NOT NULL
383
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Lu={};m(Lu,{up:()=>K0,down:()=>E0});import{sql as OT}from"kysely";var N0=new Set(["host","docker","agent-sandbox"]);async function K0(_){let x=await OT`
383
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Du={};m(Du,{up:()=>P0,down:()=>$0});import{sql as AT}from"kysely";var z0=new Set(["host","docker","agent-sandbox"]);async function P0(_){let x=await AT`
384
384
  SELECT id, metadata FROM "connections"
385
385
  WHERE connection_type = 'VIRTUAL'
386
386
  AND metadata IS NOT NULL
387
387
  AND metadata LIKE '%vmMap%'
388
- `.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[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let Y=X.runnerKind;if(Y!==void 0&&!N0.has(Y)){N=!0;continue}U[Q]=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 OT`
388
+ `.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[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let Y=X.runnerKind;if(Y!==void 0&&!z0.has(Y)){N=!0;continue}U[Q]=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 AT`
389
389
  UPDATE "connections"
390
390
  SET metadata = ${K}
391
391
  WHERE id = ${u.id}
392
- `.execute(_)}}async function E0(_){}var Du={};m(Du,{up:()=>z0,down:()=>P0});import{sql as d}from"kysely";async function z0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`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(d`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(d`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 d`
392
+ `.execute(_)}}async function $0(_){}var Fu={};m(Fu,{up:()=>U0,down:()=>J0});import{sql as d}from"kysely";async function U0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`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(d`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(d`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 d`
393
393
  CREATE INDEX async_research_jobs_active_idx
394
394
  ON async_research_jobs (status, last_polled_at)
395
395
  WHERE status IN ('pending', 'polling')
@@ -397,7 +397,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
397
397
  ALTER TABLE async_research_jobs
398
398
  ADD CONSTRAINT chk_async_research_jobs_status
399
399
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
400
- `.execute(_)}async function P0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Fu={};m(Fu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function U0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var nu={};m(nu,{up:()=>J0,down:()=>X0});import{sql as i}from"kysely";async function J0(_){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(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
400
+ `.execute(_)}async function J0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var nu={};m(nu,{up:()=>X0,down:()=>j0});async function X0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function j0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Ru={};m(Ru,{up:()=>Q0,down:()=>W0});import{sql as i}from"kysely";async function Q0(_){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(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
401
401
  ALTER TABLE secrets
402
402
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
403
403
  `.execute(_),await i`
@@ -414,7 +414,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
414
414
  CREATE UNIQUE INDEX idx_secrets_org_name
415
415
  ON secrets (organization_id, lower(name))
416
416
  WHERE scope = 'organization'
417
- `.execute(_)}async function X0(_){await _.schema.dropTable("secrets").execute()}var Ru={};m(Ru,{up:()=>j0,down:()=>Q0});async function j0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function Q0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Yu={};m(Yu,{up:()=>Z0,down:()=>L0});import{sql as W0}from"kysely";async function Z0(_){await W0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function L0(_){}var Hu={};m(Hu,{up:()=>D0,down:()=>F0});import{sql as j_}from"kysely";async function D0(_){await j_`
417
+ `.execute(_)}async function W0(_){await _.schema.dropTable("secrets").execute()}var Yu={};m(Yu,{up:()=>Z0,down:()=>L0});async function Z0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Hu={};m(Hu,{up:()=>F0,down:()=>n0});import{sql as D0}from"kysely";async function F0(_){await D0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function n0(_){}var Mu={};m(Mu,{up:()=>R0,down:()=>Y0});import{sql as j_}from"kysely";async function R0(_){await j_`
418
418
  ALTER TABLE sandbox_runner_state
419
419
  RENAME COLUMN runner_kind TO sandbox_provider_kind
420
420
  `.execute(_),await j_`
@@ -452,7 +452,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
452
452
  EXCEPTION WHEN undefined_table THEN
453
453
  NULL;
454
454
  END; $$
455
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function F0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
455
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function Y0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
456
456
  ALTER TABLE sandbox_runner_state
457
457
  RENAME COLUMN sandbox_provider_kind TO runner_kind
458
458
  `.execute(_),await j_`
@@ -490,7 +490,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
490
490
  EXCEPTION WHEN undefined_table THEN
491
491
  NULL;
492
492
  END; $$
493
- `.execute(_)}var Mu={};m(Mu,{up:()=>n0,down:()=>R0});import{sql as AT}from"kysely";async function n0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await AT`
493
+ `.execute(_)}var Bu={};m(Bu,{up:()=>H0,down:()=>M0});import{sql as ST}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 ST`
494
494
  DO $$ BEGIN
495
495
  UPDATE virtualmcps v
496
496
  SET metadata = jsonb_set(
@@ -529,7 +529,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
529
529
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
530
530
  NULL;
531
531
  END; $$
532
- `.execute(_)}async function R0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await AT`
532
+ `.execute(_)}async function M0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await ST`
533
533
  DO $$ BEGIN
534
534
  UPDATE virtualmcps v
535
535
  SET metadata = jsonb_set(
@@ -562,7 +562,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
562
562
  EXCEPTION WHEN undefined_table THEN
563
563
  NULL;
564
564
  END; $$
565
- `.execute(_)}var Bu={};m(Bu,{up:()=>Y0,down:()=>H0});import{sql as ST}from"kysely";async function Y0(_){await ST`
565
+ `.execute(_)}var Gu={};m(Gu,{up:()=>B0,down:()=>G0});import{sql as IT}from"kysely";async function B0(_){await IT`
566
566
  UPDATE connections c
567
567
  SET metadata = (
568
568
  jsonb_set(
@@ -606,7 +606,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
606
606
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
607
607
  WHERE entry ? 'vmId'
608
608
  );
609
- `.execute(_),await ST`
609
+ `.execute(_),await IT`
610
610
  UPDATE connections c
611
611
  SET metadata = (
612
612
  jsonb_set(
@@ -660,10 +660,10 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
660
660
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
661
661
  WHERE inner_entry ? 'runnerKind'
662
662
  );
663
- `.execute(_)}async function H0(_){}var Gu={};m(Gu,{up:()=>B0,down:()=>G0});import{sql as M0}from"kysely";async function B0(_){await M0`
663
+ `.execute(_)}async function G0(_){}var yu={};m(yu,{up:()=>f0,down:()=>O0});import{sql as y0}from"kysely";async function f0(_){await y0`
664
664
  DELETE FROM ai_provider_keys
665
665
  WHERE provider_id IN ('claude-code', 'codex')
666
- `.execute(_)}async function G0(_){}var yu={};m(yu,{up:()=>y0,down:()=>f0});import{sql as Q_}from"kysely";async function y0(_){await Q_`
666
+ `.execute(_)}async function O0(_){}var fu={};m(fu,{up:()=>A0,down:()=>S0});import{sql as Q_}from"kysely";async function A0(_){await Q_`
667
667
  UPDATE sandbox_runner_state
668
668
  SET sandbox_provider_kind = 'desktop'
669
669
  WHERE sandbox_provider_kind = 'remote-user'
@@ -761,13 +761,13 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
761
761
  UPDATE threads
762
762
  SET sandbox_provider_kind = 'desktop'
763
763
  WHERE sandbox_provider_kind = 'remote-user'
764
- `.execute(_)}async function f0(_){}var fu={};m(fu,{up:()=>O0,down:()=>A0});import{sql as b}from"kysely";async function O0(_){await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`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 A0(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await b`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Ou={};m(Ou,{up:()=>S0,down:()=>I0});import{sql as IT}from"kysely";async function S0(_){await IT`
764
+ `.execute(_)}async function S0(_){}var Ou={};m(Ou,{up:()=>I0,down:()=>w0});import{sql as b}from"kysely";async function I0(_){await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`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 w0(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await b`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await b`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await b`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Au={};m(Au,{up:()=>V0,down:()=>k0});import{sql as wT}from"kysely";async function V0(_){await wT`
765
765
  ALTER TABLE organization_domains
766
766
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
767
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function I0(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await IT`
767
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function k0(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await wT`
768
768
  ALTER TABLE organization_domains
769
769
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
770
- `.execute(_)}var Au={};m(Au,{up:()=>w0,down:()=>V0});import{sql as W_}from"kysely";async function w0(_){await W_`
770
+ `.execute(_)}var Su={};m(Su,{up:()=>p0,down:()=>t0});import{sql as W_}from"kysely";async function p0(_){await W_`
771
771
  UPDATE sandbox_runner_state
772
772
  SET sandbox_provider_kind = CASE sandbox_provider_kind
773
773
  WHEN 'docker' THEN 'local-docker'
@@ -856,19 +856,19 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
856
856
  WHERE c.connection_type = 'VIRTUAL'
857
857
  AND c.metadata IS NOT NULL
858
858
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
859
- `.execute(_)}async function V0(_){}var Su={};m(Su,{up:()=>p0,down:()=>t0});import{sql as wT}from"kysely";var k0=["GLOBAL_SEARCH"];async function p0(_){let x=await wT`
859
+ `.execute(_)}async function t0(_){}var Iu={};m(Iu,{up:()=>v0,down:()=>g0});import{sql as VT}from"kysely";var i0=["GLOBAL_SEARCH"];async function v0(_){let x=await VT`
860
860
  SELECT id, permission FROM "organizationRole"
861
- `.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,...k0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await wT`
861
+ `.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,...i0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await VT`
862
862
  UPDATE "organizationRole"
863
863
  SET permission = ${K}
864
864
  WHERE id = ${u.id}
865
- `.execute(_)}}async function t0(_){}var wu={};m(wu,{up:()=>i0,down:()=>v0});import{sql as Iu}from"kysely";async function i0(_){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(Iu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Iu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Iu`
865
+ `.execute(_)}}async function g0(_){}var Vu={};m(Vu,{up:()=>q0,down:()=>c0});import{sql as wu}from"kysely";async function q0(_){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(wu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await wu`
866
866
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
867
867
  ON org_file_configs (organization_id, lower(name))
868
- `.execute(_)}async function v0(_){await _.schema.dropTable("org_file_configs").execute()}var Vu={};m(Vu,{up:()=>g0,down:()=>q0});import{sql as f}from"kysely";async function g0(_){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`
868
+ `.execute(_)}async function c0(_){await _.schema.dropTable("org_file_configs").execute()}var ku={};m(ku,{up:()=>h0,down:()=>o0});import{sql as f}from"kysely";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`
869
869
  ALTER TABLE automations
870
870
  ALTER COLUMN virtual_mcp_id SET NOT NULL
871
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function q0(_){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`
871
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function o0(_){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`
872
872
  ALTER TABLE automations
873
873
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
874
874
  `.execute(_),await f`
@@ -890,25 +890,25 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
890
890
  AND tool_input IS NOT NULL
891
891
  )
892
892
  )
893
- `.execute(_)}var ku={};m(ku,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function h0(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var tu={};m(tu,{up:()=>o0,down:()=>a0});import{sql as pu}from"kysely";var Z_="local-docker";async function o0(_){await pu`delete from sandbox_runner_state where sandbox_provider_kind = ${Z_}`.execute(_);let x=await pu`
893
+ `.execute(_)}var pu={};m(pu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function r0(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var iu={};m(iu,{up:()=>e0,down:()=>l0});import{sql as tu}from"kysely";var Z_="local-docker";async function e0(_){await tu`delete from sandbox_runner_state where sandbox_provider_kind = ${Z_}`.execute(_);let x=await tu`
894
894
  SELECT id, metadata FROM "connections"
895
895
  WHERE connection_type = 'VIRTUAL'
896
896
  AND metadata IS NOT NULL
897
897
  AND metadata LIKE ${"%"+Z_+"%"}
898
- `.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[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(Z_ in X){N=!0;let Y={...X};if(delete Y[Z_],Object.keys(Y).length>0)U[Q]=Y}else U[Q]=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 pu`
898
+ `.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[Q,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(Z_ in X){N=!0;let Y={...X};if(delete Y[Z_],Object.keys(Y).length>0)U[Q]=Y}else U[Q]=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 tu`
899
899
  UPDATE "connections"
900
900
  SET metadata = ${K}
901
901
  WHERE id = ${u.id}
902
- `.execute(_)}}async function a0(_){}var iu={};m(iu,{up:()=>r0,down:()=>e0});import{sql as L_}from"kysely";async function r0(_){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 L_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await L_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await L_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await L_`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 e0(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var vu={};m(vu,{up:()=>l0,down:()=>s0});async function l0(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function s0(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var gu={};m(gu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function b0(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var qu={};m(qu,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function xP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var cu={};m(cu,{up:()=>uP,down:()=>mP});async function uP(_){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 mP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var hu={};m(hu,{up:()=>CP,down:()=>TP});async function CP(_){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 TP(_){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 au={};m(au,{up:()=>KP,down:()=>EP});import{sql as B}from"kysely";var F="cluster",n="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function ou(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function D_(_){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!==n&&_.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 NP(_,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[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=ou(X,x,u);else if(!D_($[u])&&D_(X))U[u]=ou(X,x,u);continue}let Y=ou(X,x,u);if(Y!==X)T=!0;if(Q===u&&Q in U&&D_(U[Q])&&!D_(Y))continue;U[Q]=Y}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function VT(_,x,u){let T=await B`
902
+ `.execute(_)}}async function l0(_){}var vu={};m(vu,{up:()=>s0,down:()=>d0});import{sql as L_}from"kysely";async function s0(_){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 L_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await L_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await L_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await L_`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 d0(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var gu={};m(gu,{up:()=>b0,down:()=>_P});async function b0(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function _P(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var qu={};m(qu,{up:()=>xP,down:()=>uP});async function xP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function uP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var cu={};m(cu,{up:()=>mP,down:()=>CP});async function mP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var hu={};m(hu,{up:()=>TP,down:()=>NP});async function TP(_){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 ou={};m(ou,{up:()=>KP,down:()=>EP});async function KP(_){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 EP(_){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 ru={};m(ru,{up:()=>PP,down:()=>$P});import{sql as B}from"kysely";var F="cluster",n="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function au(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function D_(_){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!==n&&_.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 zP(_,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[Q,X]of Object.entries($)){if(Q===x){if(T=!0,!(u in $))U[u]=au(X,x,u);else if(!D_($[u])&&D_(X))U[u]=au(X,x,u);continue}let Y=au(X,x,u);if(Y!==X)T=!0;if(Q===u&&Q in U&&D_(U[Q])&&!D_(Y))continue;U[Q]=Y}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function kT(_,x,u){let T=await B`
903
903
  SELECT id, metadata FROM connections
904
904
  WHERE connection_type = 'VIRTUAL'
905
905
  AND metadata IS NOT NULL
906
906
  AND metadata LIKE ${"%"+x+"%"}
907
- `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=NP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
907
+ `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=zP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
908
908
  UPDATE connections
909
909
  SET metadata = ${JSON.stringify(N)}
910
910
  WHERE id = ${C.id}
911
- `.execute(_)}}async function KP(_){await B`
911
+ `.execute(_)}}async function PP(_){await B`
912
912
  UPDATE threads
913
913
  SET sandbox_provider_kind = ${n}
914
914
  WHERE sandbox_provider_kind = ${F}
@@ -937,7 +937,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
937
937
  UPDATE sandbox_runner_state
938
938
  SET sandbox_provider_kind = ${n}
939
939
  WHERE sandbox_provider_kind = ${F}
940
- `.execute(_),await VT(_,F,n)}async function EP(_){await B`
940
+ `.execute(_),await kT(_,F,n)}async function $P(_){await B`
941
941
  UPDATE threads
942
942
  SET sandbox_provider_kind = ${F}
943
943
  WHERE sandbox_provider_kind = ${n}
@@ -966,7 +966,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
966
966
  UPDATE sandbox_runner_state
967
967
  SET sandbox_provider_kind = ${F}
968
968
  WHERE sandbox_provider_kind = ${n}
969
- `.execute(_),await VT(_,n,F)}var ru={};m(ru,{up:()=>zP,down:()=>PP});import{sql as A}from"kysely";async function zP(_){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`
969
+ `.execute(_),await kT(_,n,F)}var eu={};m(eu,{up:()=>UP,down:()=>JP});import{sql as A}from"kysely";async function UP(_){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`
970
970
  CREATE INDEX idx_org_fs_entry_parent
971
971
  ON org_fs_entry (organization_id, volume, parent)
972
972
  WHERE deleted_at IS NULL
@@ -974,7 +974,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
974
974
  CREATE INDEX idx_org_fs_entry_usage
975
975
  ON org_fs_entry (organization_id, volume, size)
976
976
  WHERE kind = 'file' AND deleted_at IS NULL
977
- `.execute(_)}async function PP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var eu={};m(eu,{up:()=>$P,down:()=>UP});async function $P(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function UP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var lu={};m(lu,{up:()=>JP,down:()=>XP});import{sql as kT}from"kysely";async function JP(_){await kT`
977
+ `.execute(_)}async function JP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var lu={};m(lu,{up:()=>XP,down:()=>jP});async function XP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function jP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var su={};m(su,{up:()=>QP,down:()=>WP});import{sql as pT}from"kysely";async function QP(_){await pT`
978
978
  INSERT INTO "organization" (id, name, slug, "createdAt")
979
979
  SELECT
980
980
  'org_orgfs_public_skills',
@@ -988,13 +988,13 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
988
988
  END,
989
989
  now()
990
990
  ON CONFLICT (id) DO NOTHING
991
- `.execute(_)}async function XP(_){await kT`
991
+ `.execute(_)}async function WP(_){await pT`
992
992
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
993
- `.execute(_)}var su={};m(su,{up:()=>jP,down:()=>QP});async function jP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function QP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var du={};m(du,{up:()=>WP,down:()=>ZP});import{sql as pT}from"kysely";async function WP(_){await pT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function ZP(_){await pT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var bu={};m(bu,{up:()=>DP,down:()=>FP});import{sql as LP}from"kysely";async function DP(_){await LP`
993
+ `.execute(_)}var du={};m(du,{up:()=>ZP,down:()=>LP});async function ZP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function LP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var bu={};m(bu,{up:()=>DP,down:()=>FP});import{sql as tT}from"kysely";async function DP(_){await tT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function FP(_){await tT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var _m={};m(_m,{up:()=>RP,down:()=>YP});import{sql as nP}from"kysely";async function RP(_){await nP`
994
994
  UPDATE downstream_tokens
995
995
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
996
996
  WHERE "expiresAt" IS NULL
997
- `.execute(_)}async function FP(_){}var _m={};m(_m,{up:()=>nP,down:()=>RP});async function nP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function RP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var xm={};m(xm,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function HP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var um={};m(um,{up:()=>MP,down:()=>BP});async function MP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var mm={};m(mm,{up:()=>GP,down:()=>yP});async function GP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function yP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Cm={};m(Cm,{up:()=>fP,down:()=>OP});async function fP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function OP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Tm={};m(Tm,{up:()=>AP,down:()=>SP});import{sql as tT}from"kysely";async function AP(_){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(tT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tT`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 Nm={};m(Nm,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function wP(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Km={};m(Km,{up:()=>VP,down:()=>kP});import{sql as Z}from"kysely";async function VP(_){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`
997
+ `.execute(_)}async function YP(_){}var xm={};m(xm,{up:()=>HP,down:()=>MP});async function HP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function MP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var um={};m(um,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function GP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var mm={};m(mm,{up:()=>yP,down:()=>fP});async function yP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function fP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Cm={};m(Cm,{up:()=>OP,down:()=>AP});async function OP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function AP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Tm={};m(Tm,{up:()=>SP,down:()=>IP});async function SP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function IP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Nm={};m(Nm,{up:()=>wP,down:()=>VP});import{sql as iT}from"kysely";async function wP(_){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(iT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function VP(_){await _.schema.dropTable("org_sites").execute()}var Km={};m(Km,{up:()=>kP,down:()=>pP});async function kP(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function pP(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Em={};m(Em,{up:()=>tP,down:()=>iP});import{sql as Z}from"kysely";async function tP(_){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`
998
998
  UPDATE organization_domains
999
999
  SET
1000
1000
  id = gen_random_uuid()::text,
@@ -1003,18 +1003,18 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1003
1003
  verification_method = 'email',
1004
1004
  verified_at = created_at
1005
1005
  WHERE id IS NULL
1006
- `.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 kP(_){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`
1006
+ `.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 iP(_){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`
1007
1007
  UPDATE organization_domains
1008
1008
  SET auto_join_enabled = (join_mode = 'auto')
1009
- `.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 Em={};m(Em,{up:()=>pP,down:()=>tP});import{sql as F_}from"kysely";async function pP(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
1009
+ `.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 zm={};m(zm,{up:()=>vP,down:()=>gP});import{sql as F_}from"kysely";async function vP(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute(),await F_`
1010
1010
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1011
1011
  ON organization_join_requests (organization_id, user_id)
1012
1012
  WHERE status = 'pending'
1013
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function tP(_){await _.schema.dropTable("organization_join_requests").execute()}var zm={};m(zm,{up:()=>iP,down:()=>vP});async function iP(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function vP(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Pm={};m(Pm,{up:()=>gP,down:()=>qP});async function gP(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function qP(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Jm={};m(Jm,{up:()=>oP,splitWebResearchTier:()=>Um,down:()=>aP,__testing:()=>hP});function cP(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function $m(_){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 Um(_){if(!_||$m(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(cP(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var hP={splitWebResearchTier:Um,isAlreadySplit:$m};async function oP(_){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($m(T))continue;let C=Um(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function aP(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Xm={};m(Xm,{up:()=>rP,down:()=>eP});import{sql as __}from"kysely";async function rP(_){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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await __`
1013
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function gP(_){await _.schema.dropTable("organization_join_requests").execute()}var Pm={};m(Pm,{up:()=>qP,down:()=>cP});async function qP(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function cP(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var $m={};m($m,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function oP(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Xm={};m(Xm,{up:()=>eP,splitWebResearchTier:()=>Jm,down:()=>lP,__testing:()=>rP});function aP(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Um(_){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 Jm(_){if(!_||Um(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(aP(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var rP={splitWebResearchTier:Jm,isAlreadySplit:Um};async function eP(_){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(Um(T))continue;let C=Jm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function lP(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var jm={};m(jm,{up:()=>sP,down:()=>dP});import{sql as __}from"kysely";async function sP(_){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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await __`
1014
1014
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1015
1015
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1016
1016
  WHERE revoked_at IS NULL
1017
- `.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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 eP(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var jm={};m(jm,{up:()=>lP,down:()=>sP});async function lP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function sP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Qm={};m(Qm,{up:()=>dP,down:()=>bP});import{sql as V}from"kysely";async function dP(_){await V`
1017
+ `.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(__`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 dP(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Qm={};m(Qm,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function _$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Wm={};m(Wm,{up:()=>x$,down:()=>u$});import{sql as V}from"kysely";async function x$(_){await V`
1018
1018
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1019
1019
  RETURNS jsonb AS $fn$
1020
1020
  BEGIN
@@ -1073,7 +1073,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1073
1073
  BEFORE INSERT ON connection_aggregations
1074
1074
  FOR EACH ROW
1075
1075
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1076
- `.execute(_)}async function bP(_){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 Zm={};m(Zm,{up:()=>_$,down:()=>x$});import{sql as Wm}from"kysely";async function _$(_){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(Wm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Wm`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(Wm`false`)).execute()}async function x$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Lm={};m(Lm,{up:()=>u$,down:()=>m$});async function u$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function m$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Dm={};m(Dm,{up:()=>C$,down:()=>T$});async function C$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function T$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Fm={};m(Fm,{up:()=>N$,down:()=>K$});async function N$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function K$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var nm={};m(nm,{up:()=>z$,down:()=>P$});import{sql as E$}from"kysely";async function z$(_){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(E$`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 P$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Rm={};m(Rm,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Ym={};m(Ym,{up:()=>X$,down:()=>j$});import{sql as J$}from"kysely";async function X$(_){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(J$`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 j$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Hm={};m(Hm,{up:()=>W$,down:()=>Z$});import{sql as Q$}from"kysely";async function W$(_){await Q$`
1076
+ `.execute(_)}async function u$(_){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 Lm={};m(Lm,{up:()=>m$,down:()=>C$});import{sql as Zm}from"kysely";async function m$(_){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(Zm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`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(Zm`false`)).execute()}async function C$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Dm={};m(Dm,{up:()=>T$,down:()=>N$});async function T$(_){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 Fm={};m(Fm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var nm={};m(nm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function P$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Rm={};m(Rm,{up:()=>U$,down:()=>J$});import{sql as $$}from"kysely";async function U$(_){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($$`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 J$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Ym={};m(Ym,{up:()=>X$,down:()=>j$});async function X$(_){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 j$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Hm={};m(Hm,{up:()=>W$,down:()=>Z$});import{sql as Q$}from"kysely";async function W$(_){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(Q$`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 Z$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Mm={};m(Mm,{up:()=>D$,down:()=>F$});import{sql as L$}from"kysely";async function D$(_){await L$`
1077
1077
  DELETE FROM member
1078
1078
  WHERE id IN (
1079
1079
  SELECT id FROM (
@@ -1092,38 +1092,38 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1092
1092
  ) ranked
1093
1093
  WHERE ranked.rn > 1
1094
1094
  )
1095
- `.execute(_)}async function Z$(_){}var Mm={};m(Mm,{up:()=>L$,down:()=>D$});async function L$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function D$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Bm={};m(Bm,{up:()=>F$,down:()=>n$});async function F$(_){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 n$(_){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 Gm={};m(Gm,{up:()=>Y$,down:()=>H$});import{sql as R$}from"kysely";async function Y$(_){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(R$`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 H$(_){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 ym={};m(ym,{up:()=>B$,down:()=>G$});import{sql as M$}from"kysely";async function B$(_){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(M$`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 G$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var fm={};m(fm,{up:()=>y$,down:()=>f$});import{sql as n_}from"kysely";async function y$(_){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(n_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",n_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",n_`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 f$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Om={};m(Om,{up:()=>O$,down:()=>A$});import{sql as R_}from"kysely";async function O$(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await R_`
1095
+ `.execute(_)}async function F$(_){}var Bm={};m(Bm,{up:()=>n$,down:()=>R$});async function n$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function R$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Gm={};m(Gm,{up:()=>Y$,down:()=>H$});async function Y$(_){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 ym={};m(ym,{up:()=>B$,down:()=>G$});import{sql as M$}from"kysely";async function B$(_){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(M$`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 G$(_){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 fm={};m(fm,{up:()=>f$,down:()=>O$});import{sql as y$}from"kysely";async function f$(_){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(y$`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 O$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Om={};m(Om,{up:()=>A$,down:()=>S$});import{sql as n_}from"kysely";async function A$(_){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(n_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(n_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",n_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",n_`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 S$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Am={};m(Am,{up:()=>I$,down:()=>w$});import{sql as R_}from"kysely";async function I$(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await R_`
1096
1096
  insert into organization_billing (organization_id, legacy)
1097
1097
  select id, true from organization
1098
1098
  on conflict (organization_id) do nothing
1099
- `.execute(_)}async function A$(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Am={};m(Am,{up:()=>S$,down:()=>I$});import{sql as iT}from"kysely";async function S$(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(iT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function I$(_){await _.schema.dropTable("seat_change_log").execute()}var Sm={};m(Sm,{up:()=>w$,down:()=>V$});async function w$(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function V$(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var Im={};m(Im,{up:()=>k$,down:()=>p$});import{sql as vT}from"kysely";async function k$(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await vT`
1099
+ `.execute(_)}async function w$(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Sm={};m(Sm,{up:()=>V$,down:()=>k$});import{sql as vT}from"kysely";async function V$(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(vT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(vT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function k$(_){await _.schema.dropTable("seat_change_log").execute()}var Im={};m(Im,{up:()=>p$,down:()=>t$});async function p$(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function t$(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var wm={};m(wm,{up:()=>i$,down:()=>v$});import{sql as gT}from"kysely";async function i$(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await gT`
1100
1100
  create unique index organization_billing_stripe_subscription_id_uq
1101
1101
  on organization_billing (stripe_subscription_id)
1102
1102
  where stripe_subscription_id is not null
1103
- `.execute(_)}async function p$(_){await vT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var wm={};m(wm,{up:()=>t$,down:()=>i$});async function t$(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function i$(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var Vm={};m(Vm,{up:()=>v$,down:()=>g$});import{sql as gT}from"kysely";async function v$(_){await gT`
1103
+ `.execute(_)}async function v$(_){await gT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var Vm={};m(Vm,{up:()=>g$,down:()=>q$});async function g$(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function q$(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var km={};m(km,{up:()=>c$,down:()=>h$});import{sql as qT}from"kysely";async function c$(_){await qT`
1104
1104
  create index idx_org_billing_benefits_pending
1105
1105
  on organization_billing (updated_at)
1106
1106
  where benefits_reference_id is not null
1107
- `.execute(_)}async function g$(_){await gT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var km={};m(km,{up:()=>q$,down:()=>c$});import{sql as qT}from"kysely";async function q$(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function c$(_){await _.schema.dropTable("user_model_preferences").execute()}var pm={};m(pm,{up:()=>h$,down:()=>o$});async function h$(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function o$(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var tm={};m(tm,{up:()=>a$,down:()=>r$});async function a$(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function r$(_){}var im={};m(im,{up:()=>e$,down:()=>l$});import{sql as cT}from"kysely";async function e$(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await cT`
1107
+ `.execute(_)}async function h$(_){await qT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var pm={};m(pm,{up:()=>o$,down:()=>a$});import{sql as cT}from"kysely";async function o$(_){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(cT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`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 a$(_){await _.schema.dropTable("user_model_preferences").execute()}var tm={};m(tm,{up:()=>r$,down:()=>e$});async function r$(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function e$(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var im={};m(im,{up:()=>l$,down:()=>s$});async function l$(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function s$(_){}var vm={};m(vm,{up:()=>d$,down:()=>b$});import{sql as hT}from"kysely";async function d$(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await hT`
1108
1108
  UPDATE organization_settings
1109
1109
  SET flags = jsonb_build_object('reports_only', reports_only)
1110
1110
  WHERE reports_only IS NOT NULL
1111
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function l$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await cT`
1111
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function b$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await hT`
1112
1112
  UPDATE organization_settings
1113
1113
  SET reports_only = (flags ->> 'reports_only')::boolean
1114
1114
  WHERE flags ? 'reports_only'
1115
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var vm={};m(vm,{up:()=>d$,down:()=>b$});import{sql as s$}from"kysely";async function d$(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await s$`
1115
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var gm={};m(gm,{up:()=>xU,down:()=>uU});import{sql as _U}from"kysely";async function xU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await _U`
1116
1116
  update task_board_items
1117
1117
  set sort_order = -extract(epoch from created_at)
1118
- `.execute(_)}async function b$(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var gm={};m(gm,{up:()=>_U,down:()=>xU,ACTIONS:()=>hT});import{sql as Y_}from"kysely";var hT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function _U(_){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(Y_`now()`)).addCheckConstraint("chk_task_board_activity_action",Y_`action IN (${Y_.join(hT.map((x)=>Y_.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 xU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var cm={};m(cm,{up:()=>uU,down:()=>mU,ACTIONS:()=>qm});import{sql as x_}from"kysely";var qm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function uU(_){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(x_`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 oT(_,qm)}async function mU(_){await oT(_,qm.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 oT(_,x){await x_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await x_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${x_.join(x.map((u)=>x_.lit(u)))}))`.execute(_)}var om={};m(om,{up:()=>TU,down:()=>NU});import{sql as aT}from"kysely";function hm(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function CU(_){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 hm(T)}catch{return hm(_.connection_url)}if(_.title)return hm(_.title);return _.id}async function TU(_){let x=await aT`
1118
+ `.execute(_)}async function uU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var qm={};m(qm,{up:()=>mU,down:()=>CU,ACTIONS:()=>oT});import{sql as Y_}from"kysely";var oT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function mU(_){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(Y_`now()`)).addCheckConstraint("chk_task_board_activity_action",Y_`action IN (${Y_.join(oT.map((x)=>Y_.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 CU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var hm={};m(hm,{up:()=>TU,down:()=>NU,ACTIONS:()=>cm});import{sql as x_}from"kysely";var cm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function TU(_){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(x_`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 aT(_,cm)}async function NU(_){await aT(_,cm.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 aT(_,x){await x_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await x_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${x_.join(x.map((u)=>x_.lit(u)))}))`.execute(_)}var am={};m(am,{up:()=>EU,down:()=>zU});import{sql as rT}from"kysely";function om(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function KU(_){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 om(T)}catch{return om(_.connection_url)}if(_.title)return om(_.title);return _.id}async function EU(_){let x=await rT`
1119
1119
  SELECT id, app_name, connection_url, title, slug
1120
1120
  FROM connections
1121
1121
  WHERE connection_type != 'VIRTUAL'
1122
- `.execute(_),u=0;for(let T of x.rows){let C=CU(T);if(C===T.slug)continue;await aT`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 NU(){}var am={};m(am,{up:()=>EU,down:()=>zU});import{sql as KU}from"kysely";async function EU(_){await KU`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 zU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var em={};m(em,{up:()=>$U,down:()=>UU,ACTIONS:()=>rm});import{sql as H_}from"kysely";var rm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],PU=new Set(["review_requested","review_approved","review_changes_requested"]);async function $U(_){await rT(_,rm)}async function UU(_){await rT(_,rm.filter((x)=>!PU.has(x)))}async function rT(_,x){await H_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await H_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${H_.join(x.map((u)=>H_.lit(u)))}))`.execute(_)}var lm={};m(lm,{up:()=>XU,down:()=>jU});import{sql as JU}from"kysely";async function XU(_){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(JU`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 jU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var dm={};m(dm,{up:()=>WU,down:()=>ZU,ACTIONS:()=>sm});import{sql as M_}from"kysely";var sm=["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"],QU=new Set(["merge_conflict_resolution"]);async function WU(_){await eT(_,sm)}async function ZU(_){await eT(_,sm.filter((x)=>!QU.has(x)))}async function eT(_,x){await M_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await M_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${M_.join(x.map((u)=>M_.lit(u)))}))`.execute(_)}var bm={};m(bm,{up:()=>LU,down:()=>DU});import{sql as u_}from"kysely";async function LU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await u_`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 DU(_){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 u_`
1122
+ `.execute(_),u=0;for(let T of x.rows){let C=KU(T);if(C===T.slug)continue;await rT`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 zU(){}var rm={};m(rm,{up:()=>$U,down:()=>UU});import{sql as PU}from"kysely";async function $U(_){await PU`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 UU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var lm={};m(lm,{up:()=>XU,down:()=>jU,ACTIONS:()=>em});import{sql as H_}from"kysely";var em=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],JU=new Set(["review_requested","review_approved","review_changes_requested"]);async function XU(_){await eT(_,em)}async function jU(_){await eT(_,em.filter((x)=>!JU.has(x)))}async function eT(_,x){await H_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await H_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${H_.join(x.map((u)=>H_.lit(u)))}))`.execute(_)}var sm={};m(sm,{up:()=>WU,down:()=>ZU});import{sql as QU}from"kysely";async function WU(_){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(QU`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 ZU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var bm={};m(bm,{up:()=>DU,down:()=>FU,ACTIONS:()=>dm});import{sql as M_}from"kysely";var dm=["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"],LU=new Set(["merge_conflict_resolution"]);async function DU(_){await lT(_,dm)}async function FU(_){await lT(_,dm.filter((x)=>!LU.has(x)))}async function lT(_,x){await M_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await M_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${M_.join(x.map((u)=>M_.lit(u)))}))`.execute(_)}var _C={};m(_C,{up:()=>nU,down:()=>RU});import{sql as u_}from"kysely";async function nU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await u_`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 RU(_){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 u_`
1123
1123
  create index idx_org_billing_benefits_pending
1124
1124
  on organization_billing (updated_at)
1125
1125
  where benefits_reference_id is not null
1126
- `.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(u_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(u_`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(u_`now()`)).execute()}var _C={};m(_C,{up:()=>FU,down:()=>nU});import{sql as B_}from"kysely";async function FU(_){await B_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await B_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function nU(_){await B_`
1126
+ `.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(u_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(u_`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(u_`now()`)).execute()}var xC={};m(xC,{up:()=>YU,down:()=>HU});import{sql as B_}from"kysely";async function YU(_){await B_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await B_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function HU(_){await B_`
1127
1127
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1128
1128
  RETURNS trigger AS $fn$
1129
1129
  BEGIN
@@ -1149,23 +1149,23 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1149
1149
  BEFORE INSERT ON connection_aggregations
1150
1150
  FOR EACH ROW
1151
1151
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1152
- `.execute(_)}var xC={};m(xC,{up:()=>RU,down:()=>YU});import{sql as lT}from"kysely";async function RU(_){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(lT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function YU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var uC={};m(uC,{up:()=>HU,down:()=>MU});import{sql as sT}from"kysely";async function HU(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute()}async function MU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var CC={};m(CC,{up:()=>BU,down:()=>GU});import{sql as mC}from"kysely";async function BU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(mC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await mC`
1152
+ `.execute(_)}var uC={};m(uC,{up:()=>MU,down:()=>BU});import{sql as sT}from"kysely";async function MU(_){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(sT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function BU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var mC={};m(mC,{up:()=>GU,down:()=>yU});import{sql as dT}from"kysely";async function GU(_){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(dT`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(dT`now()`)).execute()}async function yU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var TC={};m(TC,{up:()=>fU,down:()=>OU});import{sql as CC}from"kysely";async function fU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(CC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await CC`
1153
1153
  create index idx_task_quota_claims_org_period_live
1154
1154
  on task_quota_claims (organization_id, period_key)
1155
1155
  where state <> 'released'
1156
- `.execute(_)}async function GU(_){await mC`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var TC={};m(TC,{up:()=>yU,down:()=>fU});async function yU(_){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 fU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var NC={};m(NC,{up:()=>OU,down:()=>AU});async function OU(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function AU(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var KC={};m(KC,{up:()=>SU,down:()=>IU});import{sql as dT}from"kysely";async function SU(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(dT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(dT`monthly_task_executions > 0`)).execute()}async function IU(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var EC={};m(EC,{up:()=>VU,down:()=>kU});import{sql as wU}from"kysely";async function VU(_){await wU`
1156
+ `.execute(_)}async function OU(_){await CC`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 NC={};m(NC,{up:()=>AU,down:()=>SU});async function AU(_){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 SU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var KC={};m(KC,{up:()=>IU,down:()=>wU});async function IU(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function wU(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var EC={};m(EC,{up:()=>VU,down:()=>kU});import{sql as bT}from"kysely";async function VU(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(bT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(bT`monthly_task_executions > 0`)).execute()}async function kU(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var zC={};m(zC,{up:()=>tU,down:()=>iU});import{sql as pU}from"kysely";async function tU(_){await pU`
1157
1157
  CREATE INDEX idx_task_board_items_pending_review
1158
1158
  ON task_board_items (updated_at, id)
1159
1159
  WHERE status = 'in_review'
1160
1160
  AND assignee_id = 'super-agent'
1161
1161
  AND dismissed_at IS NULL
1162
- `.execute(_)}async function kU(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var zC={};m(zC,{up:()=>pU,down:()=>tU});import{sql as bT}from"kysely";async function pU(_){await bT`
1162
+ `.execute(_)}async function iU(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var PC={};m(PC,{up:()=>vU,down:()=>gU});import{sql as _N}from"kysely";async function vU(_){await _N`
1163
1163
  ALTER TABLE task_board_items
1164
1164
  ADD COLUMN last_swept_at timestamptz
1165
- `.execute(_)}async function tU(_){await bT`
1165
+ `.execute(_)}async function gU(_){await _N`
1166
1166
  ALTER TABLE task_board_items
1167
1167
  DROP COLUMN last_swept_at
1168
- `.execute(_)}var PC={};m(PC,{up:()=>iU,down:()=>vU});import{sql as G_}from"kysely";async function iU(_){await G_`
1168
+ `.execute(_)}var $C={};m($C,{up:()=>qU,down:()=>cU});import{sql as G_}from"kysely";async function qU(_){await G_`
1169
1169
  ALTER TABLE task_board_items
1170
1170
  ADD COLUMN retry_at timestamptz,
1171
1171
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1173,11 +1173,11 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1173
1173
  CREATE INDEX idx_task_board_items_retry_due
1174
1174
  ON task_board_items (retry_at)
1175
1175
  WHERE retry_at IS NOT NULL
1176
- `.execute(_)}async function vU(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await G_`
1176
+ `.execute(_)}async function cU(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await G_`
1177
1177
  ALTER TABLE task_board_items
1178
1178
  DROP COLUMN retry_at,
1179
1179
  DROP COLUMN retry_attempts
1180
- `.execute(_)}var UC={};m(UC,{up:()=>gU,down:()=>qU});import{sql as $C}from"kysely";async function gU(_){await $C`
1180
+ `.execute(_)}var JC={};m(JC,{up:()=>hU,down:()=>oU});import{sql as UC}from"kysely";async function hU(_){await UC`
1181
1181
  CREATE TABLE org_repo_sync (
1182
1182
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1183
1183
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1195,11 +1195,11 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1195
1195
  updated_at timestamptz NOT NULL DEFAULT now(),
1196
1196
  UNIQUE (organization_id, volume)
1197
1197
  )
1198
- `.execute(_),await $C`
1198
+ `.execute(_),await UC`
1199
1199
  CREATE INDEX idx_org_repo_sync_enabled
1200
1200
  ON org_repo_sync (organization_id)
1201
1201
  WHERE enabled
1202
- `.execute(_)}async function qU(_){await $C`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var XC={};m(XC,{up:()=>hU,down:()=>oU,ACTIONS:()=>JC});import{sql as y_}from"kysely";var JC=["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"],cU=new Set(["merge_failed"]);async function hU(_){await _N(_,JC)}async function oU(_){await _N(_,JC.filter((x)=>!cU.has(x)))}async function _N(_,x){await y_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await y_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${y_.join(x.map((u)=>y_.lit(u)))}))`.execute(_)}var jC={};m(jC,{up:()=>aU,down:()=>rU});async function aU(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function rU(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var QC={};m(QC,{up:()=>eU,down:()=>lU});import{sql as g}from"kysely";async function eU(_){await g`
1202
+ `.execute(_)}async function oU(_){await UC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var jC={};m(jC,{up:()=>rU,down:()=>eU,ACTIONS:()=>XC});import{sql as y_}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","merge_conflict_resolution","merge_failed"],aU=new Set(["merge_failed"]);async function rU(_){await xN(_,XC)}async function eU(_){await xN(_,XC.filter((x)=>!aU.has(x)))}async function xN(_,x){await y_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await y_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${y_.join(x.map((u)=>y_.lit(u)))}))`.execute(_)}var QC={};m(QC,{up:()=>lU,down:()=>sU});async function lU(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function sU(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var WC={};m(WC,{up:()=>dU,down:()=>bU});import{sql as g}from"kysely";async function dU(_){await g`
1203
1203
  CREATE TABLE org_jira_integrations (
1204
1204
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1205
1205
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1238,7 +1238,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1238
1238
  created_at timestamptz NOT NULL DEFAULT now(),
1239
1239
  UNIQUE (organization_id, jira_comment_id)
1240
1240
  )
1241
- `.execute(_)}async function lU(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var WC={};m(WC,{up:()=>dU,down:()=>bU});import{sql as sU}from"kysely";async function dU(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await sU`
1241
+ `.execute(_)}async function bU(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var ZC={};m(ZC,{up:()=>xJ,down:()=>uJ});import{sql as _J}from"kysely";async function xJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await _J`
1242
1242
  update task_board_items as t
1243
1243
  set key_seq = numbered.seq
1244
1244
  from (
@@ -1251,25 +1251,25 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1251
1251
  from task_board_items
1252
1252
  ) as numbered
1253
1253
  where t.id = numbered.id
1254
- `.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 bU(_){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 ZC={};m(ZC,{up:()=>_J,down:()=>xJ});import{sql as xN}from"kysely";async function _J(_){await xN`
1254
+ `.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 uJ(_){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 LC={};m(LC,{up:()=>mJ,down:()=>CJ});import{sql as uN}from"kysely";async function mJ(_){await uN`
1255
1255
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1256
1256
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1257
1257
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1258
- `.execute(_)}async function xJ(_){await xN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var DC={};m(DC,{up:()=>uJ,down:()=>mJ});import{sql as LC}from"kysely";async function uJ(_){await LC`
1258
+ `.execute(_)}async function CJ(_){await uN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var FC={};m(FC,{up:()=>TJ,down:()=>NJ});import{sql as DC}from"kysely";async function TJ(_){await DC`
1259
1259
  ALTER TABLE thread_message_parts
1260
1260
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1261
- `.execute(_),await LC`
1261
+ `.execute(_),await DC`
1262
1262
  ALTER TABLE thread_message_parts
1263
1263
  ALTER COLUMN persisted_at SET DEFAULT now()
1264
- `.execute(_)}async function mJ(_){await LC`
1264
+ `.execute(_)}async function NJ(_){await DC`
1265
1265
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1266
- `.execute(_)}var FC={};m(FC,{up:()=>CJ,down:()=>TJ});async function CJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function TJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var nC={};m(nC,{up:()=>KJ,down:()=>EJ});import{sql as NJ}from"kysely";async function KJ(_){await NJ`
1266
+ `.execute(_)}var nC={};m(nC,{up:()=>KJ,down:()=>EJ});async function KJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function EJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var RC={};m(RC,{up:()=>PJ,down:()=>$J});import{sql as zJ}from"kysely";async function PJ(_){await zJ`
1267
1267
  CREATE INDEX idx_task_board_items_done_sweep
1268
1268
  ON task_board_items (updated_at)
1269
1269
  WHERE status = 'done' AND dismissed_at IS NULL
1270
- `.execute(_)}async function EJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var RC={};m(RC,{up:()=>zJ,down:()=>PJ,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 zJ(_){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
1270
+ `.execute(_)}async function $J(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var YC={};m(YC,{up:()=>UJ,down:()=>JJ,TYPES:()=>mN});import{sql as S}from"kysely";var mN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function UJ(_){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(mN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1271
1271
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await S`CREATE INDEX notifications_digest ON notifications
1272
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function PJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var YC={};m(YC,{up:()=>$J,down:()=>UJ});import{sql as mN}from"kysely";async function $J(_){await mN`
1272
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function JJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var HC={};m(HC,{up:()=>XJ,down:()=>jJ});import{sql as CN}from"kysely";async function XJ(_){await CN`
1273
1273
  UPDATE org_jira_integrations
1274
1274
  SET status_mapping = (
1275
1275
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1284,7 +1284,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1284
1284
  SELECT 1 FROM jsonb_each(status_mapping)
1285
1285
  WHERE jsonb_typeof(value) = 'array'
1286
1286
  )
1287
- `.execute(_)}async function UJ(_){await mN`
1287
+ `.execute(_)}async function jJ(_){await CN`
1288
1288
  UPDATE org_jira_integrations
1289
1289
  SET status_mapping = (
1290
1290
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1299,7 +1299,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1299
1299
  SELECT 1 FROM jsonb_each(status_mapping)
1300
1300
  WHERE jsonb_typeof(value) = 'array'
1301
1301
  )
1302
- `.execute(_)}var MC={};m(MC,{up:()=>XJ,down:()=>jJ,TYPES:()=>HC});import{sql as f_}from"kysely";var HC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],JJ=new Set(["mentioned"]);async function XJ(_){await CN(_,HC)}async function jJ(_){await CN(_,HC.filter((x)=>!JJ.has(x)))}async function CN(_,x){await f_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await f_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${f_.join(x.map((u)=>f_.lit(u)))}))`.execute(_)}var GC={};m(GC,{up:()=>ZJ,down:()=>LJ,ACTIONS:()=>BC});import{sql as I}from"kysely";var QJ=["bug","feature","chore","spike","security"],BC=["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"],WJ=new Set(["type_changed"]);async function ZJ(_){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(QJ.map((x)=>I.lit(x)))}))`.execute(_),await TN(_,BC)}async function LJ(_){await TN(_,BC.filter((x)=>!WJ.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 TN(_,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 yC={};m(yC,{up:()=>DJ,down:()=>FJ});import{sql as j}from"kysely";var KN=["bug","feature","chore","spike","security"],NN="chore";async function DJ(_){await j`UPDATE task_board_items SET type = ${j.lit(NN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(NN)}`.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(KN.map((x)=>j.lit(x)))}))`.execute(_)}async function FJ(_){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(KN.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 fC={};m(fC,{up:()=>nJ,down:()=>RJ});import{sql as q}from"kysely";async function nJ(_){await q`
1302
+ `.execute(_)}var BC={};m(BC,{up:()=>WJ,down:()=>ZJ,TYPES:()=>MC});import{sql as f_}from"kysely";var MC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],QJ=new Set(["mentioned"]);async function WJ(_){await TN(_,MC)}async function ZJ(_){await TN(_,MC.filter((x)=>!QJ.has(x)))}async function TN(_,x){await f_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await f_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${f_.join(x.map((u)=>f_.lit(u)))}))`.execute(_)}var yC={};m(yC,{up:()=>FJ,down:()=>nJ,ACTIONS:()=>GC});import{sql as I}from"kysely";var LJ=["bug","feature","chore","spike","security"],GC=["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"],DJ=new Set(["type_changed"]);async function FJ(_){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(LJ.map((x)=>I.lit(x)))}))`.execute(_),await NN(_,GC)}async function nJ(_){await NN(_,GC.filter((x)=>!DJ.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 NN(_,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 fC={};m(fC,{up:()=>RJ,down:()=>YJ});import{sql as j}from"kysely";var EN=["bug","feature","chore","spike","security"],KN="chore";async function RJ(_){await j`UPDATE task_board_items SET type = ${j.lit(KN)} WHERE type IS NULL`.execute(_),await j`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${j.lit(KN)}`.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(EN.map((x)=>j.lit(x)))}))`.execute(_)}async function YJ(_){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(EN.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 OC={};m(OC,{up:()=>HJ,down:()=>MJ});import{sql as q}from"kysely";async function HJ(_){await q`
1303
1303
  CREATE TABLE task_board_sprints (
1304
1304
  id text PRIMARY KEY,
1305
1305
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1324,34 +1324,34 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1324
1324
  CREATE INDEX idx_task_board_items_sprint
1325
1325
  ON task_board_items (organization_id, sprint_id)
1326
1326
  WHERE sprint_id IS NOT NULL
1327
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function RJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await q`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var OC={};m(OC,{up:()=>HJ,down:()=>MJ});import{sql as YJ}from"kysely";async function HJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function MJ(_){await YJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var AC={};m(AC,{up:()=>GJ,down:()=>yJ});import{sql as BJ}from"kysely";async function GJ(_){await BJ`
1327
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function MJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await q`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await q`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var AC={};m(AC,{up:()=>GJ,down:()=>yJ});import{sql as BJ}from"kysely";async function GJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function yJ(_){await BJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var SC={};m(SC,{up:()=>OJ,down:()=>AJ});import{sql as fJ}from"kysely";async function OJ(_){await fJ`
1328
1328
  UPDATE org_jira_integrations
1329
1329
  SET last_synced_at = NULL,
1330
1330
  last_sync_error = NULL
1331
1331
  WHERE last_synced_at IS NOT NULL
1332
- `.execute(_)}async function yJ(){}var SC={};m(SC,{up:()=>OJ,down:()=>AJ});import{sql as fJ}from"kysely";async function OJ(_){await fJ`
1332
+ `.execute(_)}async function AJ(){}var IC={};m(IC,{up:()=>IJ,down:()=>wJ});import{sql as SJ}from"kysely";async function IJ(_){await SJ`
1333
1333
  UPDATE org_jira_integrations
1334
1334
  SET last_synced_at = NULL,
1335
1335
  last_sync_error = NULL
1336
1336
  WHERE last_synced_at IS NOT NULL
1337
- `.execute(_)}async function AJ(){}var wC={};m(wC,{up:()=>SJ,down:()=>IJ});import{sql as IC}from"kysely";async function SJ(_){await IC`
1337
+ `.execute(_)}async function wJ(){}var VC={};m(VC,{up:()=>VJ,down:()=>kJ});import{sql as wC}from"kysely";async function VJ(_){await wC`
1338
1338
  ALTER TABLE org_jira_integrations
1339
1339
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1340
- `.execute(_),await IC`
1340
+ `.execute(_),await wC`
1341
1341
  UPDATE org_jira_integrations
1342
1342
  SET rescan_pending = true
1343
1343
  WHERE last_synced_at IS NULL
1344
- `.execute(_)}async function IJ(_){await IC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var VC={};m(VC,{up:()=>wJ,down:()=>VJ});async function wJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function VJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var kC={};m(kC,{up:()=>kJ,down:()=>pJ});import{sql as EN}from"kysely";async function kJ(_){await EN`
1344
+ `.execute(_)}async function kJ(_){await wC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var kC={};m(kC,{up:()=>pJ,down:()=>tJ});async function pJ(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function tJ(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var pC={};m(pC,{up:()=>iJ,down:()=>vJ});import{sql as zN}from"kysely";async function iJ(_){await zN`
1345
1345
  ALTER TABLE invitation
1346
1346
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1347
- `.execute(_)}async function pJ(_){await EN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var tC={};m(tC,{up:()=>tJ,down:()=>iJ});import{sql as pC}from"kysely";async function tJ(_){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(pC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pC`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 pC`
1347
+ `.execute(_)}async function vJ(_){await zN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var iC={};m(iC,{up:()=>gJ,down:()=>qJ});import{sql as tC}from"kysely";async function gJ(_){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(tC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tC`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 tC`
1348
1348
  INSERT INTO task_board_column_automations
1349
1349
  (id, organization_id, column_key, prompt)
1350
1350
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1351
1351
  FROM org_jira_integrations
1352
1352
  WHERE auto_delegate = true
1353
1353
  ON CONFLICT DO NOTHING
1354
- `.execute(_)}async function iJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var iC={};m(iC,{up:()=>vJ,down:()=>gJ});import{sql as m_}from"kysely";async function vJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await m_`
1354
+ `.execute(_)}async function qJ(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var vC={};m(vC,{up:()=>cJ,down:()=>hJ});import{sql as m_}from"kysely";async function cJ(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await m_`
1355
1355
  UPDATE task_board_items i
1356
1356
  SET review_cycle_started_at = (
1357
1357
  SELECT max(a.occurred_at)
@@ -1367,13 +1367,13 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1367
1367
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1368
1368
  AND assignee_id = 'super-agent'
1369
1369
  AND dismissed_at IS NULL
1370
- `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function gJ(_){await m_`
1370
+ `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function hJ(_){await m_`
1371
1371
  CREATE INDEX idx_task_board_items_pending_review
1372
1372
  ON task_board_items (updated_at, id)
1373
1373
  WHERE status = 'in_review'
1374
1374
  AND assignee_id = 'super-agent'
1375
1375
  AND dismissed_at IS NULL
1376
- `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var vC={};m(vC,{up:()=>qJ,down:()=>cJ});import{sql as zN}from"kysely";async function qJ(_){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(zN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zN`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 cJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var qC={};m(qC,{up:()=>oJ,down:()=>aJ,ACTIONS:()=>gC});import{sql as O_}from"kysely";var gC=["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"],hJ=new Set(["review_verdict_requested"]);async function oJ(_){await PN(_,gC)}async function aJ(_){await PN(_,gC.filter((x)=>!hJ.has(x)))}async function PN(_,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 cC={};m(cC,{up:()=>rJ,down:()=>eJ});import{sql as A_}from"kysely";async function rJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await A_`
1376
+ `.execute(_),await m_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var gC={};m(gC,{up:()=>oJ,down:()=>aJ});import{sql as PN}from"kysely";async function oJ(_){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(PN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(PN`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 aJ(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var cC={};m(cC,{up:()=>eJ,down:()=>lJ,ACTIONS:()=>qC});import{sql as O_}from"kysely";var qC=["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"],rJ=new Set(["review_verdict_requested"]);async function eJ(_){await $N(_,qC)}async function lJ(_){await $N(_,qC.filter((x)=>!rJ.has(x)))}async function $N(_,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 hC={};m(hC,{up:()=>sJ,down:()=>dJ});import{sql as A_}from"kysely";async function sJ(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await A_`
1377
1377
  ALTER TABLE task_board_items
1378
1378
  ADD CONSTRAINT chk_task_board_items_column_org
1379
1379
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1383,13 +1383,13 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1383
1383
  FOREIGN KEY (board_column_org, status)
1384
1384
  REFERENCES task_board_columns (organization_id, key)
1385
1385
  ON DELETE RESTRICT
1386
- `.execute(_)}async function eJ(_){await A_`
1386
+ `.execute(_)}async function dJ(_){await A_`
1387
1387
  ALTER TABLE task_board_items
1388
1388
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1389
1389
  `.execute(_),await A_`
1390
1390
  ALTER TABLE task_board_items
1391
1391
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1392
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var hC={};m(hC,{up:()=>lJ,down:()=>sJ});async function lJ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function sJ(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var aC={};m(aC,{up:()=>bJ,down:()=>_X,ACTIONS:()=>oC});import{sql as S_}from"kysely";var oC=["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"],dJ=new Set(["sprint_changed"]);async function bJ(_){await $N(_,oC)}async function _X(_){await $N(_,oC.filter((x)=>!dJ.has(x)))}async function $N(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var rC={};m(rC,{up:()=>uX,down:()=>mX});import{sql as xX}from"kysely";async function uX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(xX`'[]'::jsonb`)).execute()}async function mX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var eC={};m(eC,{up:()=>CX,down:()=>TX});import{sql as UN}from"kysely";async function CX(_){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(UN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function TX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var lC={};m(lC,{up:()=>KX,down:()=>EX});import{sql as NX}from"kysely";async function KX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await NX`
1392
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var oC={};m(oC,{up:()=>bJ,down:()=>_X});async function bJ(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function _X(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var rC={};m(rC,{up:()=>uX,down:()=>mX,ACTIONS:()=>aC});import{sql as S_}from"kysely";var aC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],xX=new Set(["sprint_changed"]);async function uX(_){await UN(_,aC)}async function mX(_){await UN(_,aC.filter((x)=>!xX.has(x)))}async function UN(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var eC={};m(eC,{up:()=>TX,down:()=>NX});import{sql as CX}from"kysely";async function TX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(CX`'[]'::jsonb`)).execute()}async function NX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var lC={};m(lC,{up:()=>KX,down:()=>EX});import{sql as JN}from"kysely";async function KX(_){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(JN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(JN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function EX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var sC={};m(sC,{up:()=>PX,down:()=>$X});import{sql as zX}from"kysely";async function PX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await zX`
1393
1393
  UPDATE task_board_items i
1394
1394
  SET external_url = t.url,
1395
1395
  description = CASE
@@ -1408,11 +1408,11 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1408
1408
  ON g.organization_id = l.organization_id
1409
1409
  ) t
1410
1410
  WHERE t.item_id = i.id
1411
- `.execute(_)}async function EX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var sC={};m(sC,{up:()=>PX,down:()=>$X,ACTIONS:()=>JN});import{sql as J}from"kysely";var zX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],JN=["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 PX(_){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`
1411
+ `.execute(_)}async function $X(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var dC={};m(dC,{up:()=>JX,down:()=>XX,ACTIONS:()=>XN});import{sql as J}from"kysely";var UX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],XN=["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 JX(_){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`
1412
1412
  UPDATE task_board_items
1413
1413
  SET status = 'triage'
1414
- WHERE status NOT IN (${J.join(zX.map((x)=>J.lit(x)))})
1415
- `.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 UX(_,JN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1414
+ WHERE status NOT IN (${J.join(UX.map((x)=>J.lit(x)))})
1415
+ `.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 jX(_,XN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1416
1416
  ALTER TABLE task_board_item_jira_links
1417
1417
  DROP COLUMN IF EXISTS jira_updated_at,
1418
1418
  DROP COLUMN IF EXISTS jira_status,
@@ -1424,7 +1424,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1424
1424
  DROP COLUMN IF EXISTS last_synced_at,
1425
1425
  DROP COLUMN IF EXISTS last_sync_error,
1426
1426
  DROP COLUMN IF EXISTS rescan_pending
1427
- `.execute(_)}async function $X(){}async function UX(_,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 dC={};m(dC,{up:()=>JX,down:()=>XX});import{sql as c}from"kysely";async function JX(_){await c`
1427
+ `.execute(_)}async function XX(){}async function jX(_,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 bC={};m(bC,{up:()=>QX,down:()=>WX});import{sql as c}from"kysely";async function QX(_){await c`
1428
1428
  ALTER TABLE task_board_items
1429
1429
  ADD COLUMN IF NOT EXISTS source text
1430
1430
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -1445,24 +1445,24 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1445
1445
  created_at timestamptz NOT NULL DEFAULT now(),
1446
1446
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1447
1447
  )
1448
- `.execute(_)}async function XX(_){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 bC={};m(bC,{up:()=>jX,down:()=>QX});import{sql as C_}from"kysely";async function jX(_){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(C_`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(C_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).execute(),await C_`
1448
+ `.execute(_)}async function WX(_){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 _T={};m(_T,{up:()=>ZX,down:()=>LX});import{sql as C_}from"kysely";async function ZX(_){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(C_`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(C_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(C_`now()`)).execute(),await C_`
1449
1449
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1450
1450
  ON organization_notices (organization_id)
1451
1451
  WHERE resolved_at IS NULL
1452
1452
  `.execute(_),await C_`
1453
1453
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1454
1454
  ON organization_notices (organization_id, created_at DESC)
1455
- `.execute(_)}async function QX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var xT={};m(xT,{up:()=>MX,down:()=>BX});import{sql as _T}from"kysely";import{sql as ZW}from"kysely";var XN=50000000,WX=1e5;function ZX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>WX)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 LX=/\u0000/g,DX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,FX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,nX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,RX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function YX(_){return _.replace(LX,"").replace(DX,"\uFFFD").replace(FX,"$1***@").replace(nX,"$1***").replace(RX,"[base64 data omitted]")}function HX(_){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 jN(_){if(ZX(_,XN)>XN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return YX(u);if(HX(u))return{type:"text",text:"[image omitted]"};return u})}var QN=20;async function MX(_){let x=await _T`
1455
+ `.execute(_)}async function LX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var uT={};m(uT,{up:()=>yX,down:()=>fX});import{sql as xT}from"kysely";import{sql as FW}from"kysely";var jN=50000000,DX=1e5;function FX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>DX)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 nX=/\u0000/g,RX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,YX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,HX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,MX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function BX(_){return _.replace(nX,"").replace(RX,"\uFFFD").replace(YX,"$1***@").replace(HX,"$1***").replace(MX,"[base64 data omitted]")}function GX(_){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 QN(_){if(FX(_,jN)>jN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return BX(u);if(GX(u))return{type:"text",text:"[image omitted]"};return u})}var WN=20;async function yX(_){let x=await xT`
1456
1456
  SELECT id FROM thread_message_parts
1457
1457
  WHERE pg_column_size(payload) > 8192
1458
1458
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1459
- `.execute(_);for(let u=0;u<x.rows.length;u+=QN){let T=x.rows.slice(u,u+QN).map((N)=>N.id),C=await _T`
1459
+ `.execute(_);for(let u=0;u<x.rows.length;u+=WN){let T=x.rows.slice(u,u+WN).map((N)=>N.id),C=await xT`
1460
1460
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
1461
- `.execute(_);for(let N of C.rows){let E=jN(N.payload);if(E===JSON.stringify(N.payload))continue;await _T`
1461
+ `.execute(_);for(let N of C.rows){let E=QN(N.payload);if(E===JSON.stringify(N.payload))continue;await xT`
1462
1462
  UPDATE thread_message_parts
1463
1463
  SET payload = ${E}::jsonb
1464
1464
  WHERE id = ${N.id}
1465
- `.execute(_)}}}async function BX(){}var uT={};m(uT,{up:()=>GX,down:()=>yX});async function GX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function yX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var mT={};m(mT,{up:()=>fX,down:()=>OX});import{sql as P}from"kysely";async function fX(_){await P`
1465
+ `.execute(_)}}}async function fX(){}var mT={};m(mT,{up:()=>OX,down:()=>AX});async function OX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function AX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var CT={};m(CT,{up:()=>SX,down:()=>IX});import{sql as P}from"kysely";async function SX(_){await P`
1466
1466
  CREATE TABLE git_provider_accounts (
1467
1467
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1468
1468
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1706,11 +1706,11 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1706
1706
  AND r.organization_id = s.organization_id
1707
1707
  AND r.host = 'github.com'
1708
1708
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1709
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function OX(_){await P`
1709
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function IX(_){await P`
1710
1710
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1711
1711
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1712
1712
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1713
- `.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 CT={};m(CT,{up:()=>SX,down:()=>IX});import{sql as R}from"kysely";var AX=R`
1713
+ `.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 TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as R}from"kysely";var wX=R`
1714
1714
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1715
1715
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1716
1716
  BEGIN
@@ -1719,7 +1719,7 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1719
1719
  RETURN NULL;
1720
1720
  END;
1721
1721
  $$
1722
- `;async function SX(_){await AX.execute(_),await R`
1722
+ `;async function VX(_){await wX.execute(_),await R`
1723
1723
  ALTER TABLE connections
1724
1724
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1725
1725
  `.execute(_),await R`
@@ -1781,21 +1781,21 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1781
1781
  AND r.host = 'github.com'
1782
1782
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1783
1783
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1784
- `.execute(_),await R`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function IX(_){await R`DROP TABLE IF EXISTS thread_repositories`.execute(_),await R`
1784
+ `.execute(_),await R`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function kX(_){await R`DROP TABLE IF EXISTS thread_repositories`.execute(_),await R`
1785
1785
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1786
- `.execute(_)}var wX={"001-initial-schema":g_,"002-organization-settings":q_,"003-connection-schema-align":c_,"004-remove-models-binding":h_,"005-connection-configuration":o_,"006-add-views-to-settings":a_,"007-monitoring-logs":r_,"008-event-bus":e_,"009-drop-audit-logs":l_,"010-gateways":s_,"011-gateway-icon":d_,"012-gateway-tool-selection-mode":b_,"013-monitoring-user-agent-gateway":_x,"014-gateway-resources-prompts":xx,"015-monitoring-properties":ux,"016-downstream-token-client-info":mx,"017-downstream-token-remove-userid":Cx,"018-drop-gateway-tool-selection-strategy":Tx,"019-remove-gateway-is-default":Nx,"020-enabled-plugins":Kx,"021-threads":Ex,"022-rename-gateway-to-virtual-mcp":zx,"023-optimize-thread-indexes":Px,"024-consolidate-virtual-mcp":$x,"025-add-monitoring-virtual-mcp-id":Ux,"026-restrict-child-connection-delete":Jx,"027-update-management-mcp-url":jx,"028-update-management-mcp-to-self":Wx,"029-add-updated-by-to-connections":Zx,"030-member-tags":Lx,"031-add-dependency-mode":Dx,"032-projects":Fx,"033-thread-status":nx,"034-monitoring-dashboards":Rx,"035-project-connections":Yx,"036-update-registry-url":Hx,"037-ai-provider-keys":Mx,"038-oauth-pkce-states":Bx,"039-automations":Gx,"040-replace-next-run-at-with-last-run-at":yx,"041-ai-provider-keys-unique-constraint":fx,"042-rename-mesh-mcp-to-cms-mcp":Ox,"043-rename-cms-mcp-to-deco-cms":Ax,"044-drop-connections-tools-column":Sx,"045-thread-context-start-message":Ix,"046-remove-object-storage-plugin":Vx,"047-add-next-run-at":kx,"048-merge-projects-agents":tx,"049-remove-org-admin-projects":ix,"050-durable-agent-runs":vx,"051-org-sso":qx,"052-thread-agent-ids":cx,"053-registry-config":hx,"054-connection-slug":ax,"055-spaces":rx,"056-automation-project-scope":ex,"057-thread-virtual-mcp-id":lx,"058-trigger-callback-tokens":sx,"059-kv":dx,"060-member-index":bx,"061-downstream-token-connection-index":_u,"062-private-registry":xu,"063-event-subscriptions-enabled-boolean":uu,"064-brand-context":mu,"065-organization-domains":Cu,"066-brand-context-structured":Tu,"067-threads-metadata":Nu,"068-threads-branch":Ku,"069-sandbox-runner-state":Eu,"070-model-categories":zu,"071-default-home-agents":Pu,"072-ai-provider-key-preset-id":$u,"073-backfill-basic-usage-roles":Uu,"074-sandbox-runner-state-handle-nonunique":Ju,"075-thread-inflight-async-jobs":Xu,"076-automations-drop-agent-json":ju,"077-tier-only-model-selection":Wu,"078-automation-tool-call-kind":Zu,"079-strip-legacy-freestyle-vm-map-entries":Lu,"080-async-research-jobs":Du,"081-async-research-jobs-result-content":Fu,"082-secrets":nu,"083-thread-run-locally":Ru,"084-drop-host-sandbox-rows":Yu,"085-rename-runner-kind":Hu,"086-thread-pins-and-vm-map-rekey":Mu,"087-fix-vm-map-rekey":Bu,"088-purge-cli-activate-keys":Gu,"089-rename-remote-user-to-desktop":yu,"090-automation-webhook-triggers":fu,"091-organization-domains-allow-multi":Ou,"092-sandbox-naming-uniformization":Au,"093-backfill-global-search-basic-usage":Su,"094-org-file-configs":wu,"095-remove-automation-tool-call-kind":Vu,"096-org-file-configs-public-url-base":ku,"097-drop-local-docker-sandbox-state":tu,"098-thread-message-parts":iu,"099-run-fence":vu,"100-link-transport":gu,"101-cancel-requested-at":qu,"102-observational-agent":cu,"103-revert-observational-agent":hu,"104-agent-sandbox-provider-kind":au,"105-org-fs":ru,"106-automation-tools":eu,"107-org-fs-public-org":lu,"108-automation-max-agent-steps":su,"109-thread-message-parts-per-message-seq":du,"110-backfill-ghs-token-expiry":bu,"111-org-fs-thread-id":_m,"112-org-file-configs-credential-type":xm,"113-thread-failure-reason":um,"114-run-acked-seq":mm,"115-thread-projected-seq":Cm,"116-org-sites":Tm,"117-org-file-configs-site-slug":Nm,"118-organization-domains-multi-verify":Km,"119-organization-join-requests":Em,"120-org-fs-read-public":zm,"121-org-fs-share-password":Pm,"122-split-web-research-tier":Jm,"123-connection-credential-vault":Xm,"124-drop-thread-projected-seq":jm,"125-github-child-single-parent":Qm,"126-task-board":Zm,"127-task-board-due-date":Lm,"128-reports-only":Dm,"129-task-board-assigned-by":Fm,"130-task-board-thread-id":nm,"131-task-board-thread-link-cascade":Rm,"132-task-board-item-prs":Ym,"133-dedupe-duplicate-members":Hm,"134-drop-task-board-enabled":Mm,"135-task-board-item-fk-cascade":Bm,"136-task-board-import-idempotency":Gm,"137-agent-sandbox-runner-state":ym,"138-agent-sandbox-sessions":fm,"139-organization-billing":Om,"140-seat-change-log":Am,"141-benefits-sync-pending":Sm,"142-stripe-event-watermark":Im,"143-armed-report-url":wm,"144-benefits-pending-index":Vm,"145-user-model-preferences":km,"146-organization-main-agent":pm,"147-drop-agent-sandbox-tables":tm,"148-org-flags":im,"149-task-board-item-sort-order":vm,"150-task-board-activity":gm,"151-task-board-tags":cm,"152-repair-connection-slug":om,"153-task-board-latest-assistant-part-index":am,"154-task-board-qa-activity":em,"155-task-board-review-claims":lm,"156-task-board-conflict-activity":dm,"157-drop-seat-billing":bm,"158-drop-github-child-single-parent":_C,"159-task-board-comments":xC,"160-task-quota-billing":uC,"161-task-quota-claim-state":CC,"162-claude-subscriptions":TC,"163-task-board-item-dismissed":NC,"164-per-org-task-quota":KC,"165-task-board-pending-review-index":EC,"166-task-board-last-swept-at":zC,"167-task-board-run-retry":PC,"168-org-repo-sync":UC,"169-task-board-merge-failed-activity":XC,"170-task-board-item-repo":jC,"171-jira-integration":QC,"172-task-board-item-key-seq":WC,"173-thread-github-repo-connection-index":ZC,"174-thread-message-parts-persisted-at":DC,"175-task-board-sprints":FC,"176-task-board-done-sweep-index":nC,"177-notifications":RC,"178-jira-status-mapping-array":YC,"179-notification-mentioned":MC,"180-task-board-item-type":GC,"181-task-board-item-type-required":yC,"182-task-board-sprints-entities":fC,"183-drop-jira-jql-filter":OC,"184-jira-rescan-after-scope-change":AC,"185-jira-rescan-existing-cards":SC,"186-jira-rescan-pending-flag":wC,"187-task-board-comment-thread":VC,"188-invitation-auto-accept":kC,"189-task-board-column-automations":tC,"190-task-board-review-cycle-started-at":iC,"191-task-board-columns":vC,"192-task-board-verdict-nudge-activity":qC,"193-task-board-status-column-fk":cC,"194-jira-link-sprint":hC,"195-task-board-sprint-activity":aC,"196-task-board-column-tracker-statuses":rC,"197-task-board-prompts":eC,"198-task-board-external-url":lC,"199-drop-jira-mirror-and-org-columns":sC,"200-jira-run-trigger":dC,"201-organization-notices":bC,"202-redact-base64-thread-parts":xT,"203-task-board-preview-routes":uT,"204-git-provider-accounts-and-repositories":mT,"205-repository-references":CT,"206-repository-consumers":v_,"207-task-board-prs-repo-idx":i_,"208-github-connect-flows":t_},TT=wX;import{getMigrations as U6}from"better-auth/db";import{sso as J6}from"@better-auth/sso";import{organization as X6}from"@decocms/better-auth/plugins";import{admin as j6,apiKey as Q6,jwt as W6,magicLink as Z6,mcp as L6,openAPI as D6}from"better-auth/plugins";import{emailOTP as F6}from"better-auth/plugins/email-otp";import{Kysely as T6,PostgresDialect as BN}from"kysely";import{Pool as GN}from"pg";import{homedir as VX}from"os";var kX=new Set(["all","worker","api"]);function pX(_){let x=(_??"").trim();return kX.has(x)?x:"all"}var tX=new Set(["production","development","test"]);function iX(_){let x=(_??"").trim();return tX.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function KT(_,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 KT(_,x,T)??u}function vX(_,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 NT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function WN(_){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 gX(_){return _===void 0||_===""||_==="true"||_==="1"}function T_(_,x){return _||x}function ZN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${VX()}/deco`,T=_.localMode,C=_.nodeEnv||iX(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:T_(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:T_(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),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:KT("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:vX("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:NT(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:NT(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:gX(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:KT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:pX(T_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:NT(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:T_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:T_(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:WN(x.DATABASE_URL),externalNatsUrl:WN(N),skipMigrations:_.skipMigrations}}var I_=null;function h(){if(!I_)qX();return I_}function qX(){if(I_)return;let _={...process.env},x=ZN({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},_);I_=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 eX,metrics as lX,propagation as kZ,ROOT_CONTEXT as pZ,SpanStatusCode as tZ,trace as sX}from"@opentelemetry/api";import{logs as dX,SeverityNumber as ET}from"@opentelemetry/api-logs";import{OTLPLogExporter as gZ}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as bX}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as hZ}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as aZ}from"@opentelemetry/instrumentation-runtime-node";import{context as OW,propagation as AW,SpanKind as SW,SpanStatusCode as IW}from"@opentelemetry/api";var VW=globalThis.fetch;import{ExportResultCode as rW}from"@opentelemetry/core";import{ExportResultCode as w_}from"@opentelemetry/core";import{mkdir as cX,rename as hX,writeFile as oX}from"fs/promises";import{join as V_}from"path";class k_{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:w_.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:w_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:w_.FAILED}});return Promise.resolve({code:w_.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?V_(this.basePath,x,...T):V_(this.basePath,...T);if(!this.knownDirs.has(C))await cX(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=V_(C,`.${N}.tmp`),K=V_(C,N),z=_.join(`
1786
+ `.execute(_)}var pX={"001-initial-schema":q_,"002-organization-settings":c_,"003-connection-schema-align":h_,"004-remove-models-binding":o_,"005-connection-configuration":a_,"006-add-views-to-settings":r_,"007-monitoring-logs":e_,"008-event-bus":l_,"009-drop-audit-logs":s_,"010-gateways":d_,"011-gateway-icon":b_,"012-gateway-tool-selection-mode":_x,"013-monitoring-user-agent-gateway":xx,"014-gateway-resources-prompts":ux,"015-monitoring-properties":mx,"016-downstream-token-client-info":Cx,"017-downstream-token-remove-userid":Tx,"018-drop-gateway-tool-selection-strategy":Nx,"019-remove-gateway-is-default":Kx,"020-enabled-plugins":Ex,"021-threads":zx,"022-rename-gateway-to-virtual-mcp":Px,"023-optimize-thread-indexes":$x,"024-consolidate-virtual-mcp":Ux,"025-add-monitoring-virtual-mcp-id":Jx,"026-restrict-child-connection-delete":Xx,"027-update-management-mcp-url":Qx,"028-update-management-mcp-to-self":Zx,"029-add-updated-by-to-connections":Lx,"030-member-tags":Dx,"031-add-dependency-mode":Fx,"032-projects":nx,"033-thread-status":Rx,"034-monitoring-dashboards":Yx,"035-project-connections":Hx,"036-update-registry-url":Mx,"037-ai-provider-keys":Bx,"038-oauth-pkce-states":Gx,"039-automations":yx,"040-replace-next-run-at-with-last-run-at":fx,"041-ai-provider-keys-unique-constraint":Ox,"042-rename-mesh-mcp-to-cms-mcp":Ax,"043-rename-cms-mcp-to-deco-cms":Sx,"044-drop-connections-tools-column":Ix,"045-thread-context-start-message":wx,"046-remove-object-storage-plugin":kx,"047-add-next-run-at":px,"048-merge-projects-agents":ix,"049-remove-org-admin-projects":vx,"050-durable-agent-runs":gx,"051-org-sso":cx,"052-thread-agent-ids":hx,"053-registry-config":ox,"054-connection-slug":rx,"055-spaces":ex,"056-automation-project-scope":lx,"057-thread-virtual-mcp-id":sx,"058-trigger-callback-tokens":dx,"059-kv":bx,"060-member-index":_u,"061-downstream-token-connection-index":xu,"062-private-registry":uu,"063-event-subscriptions-enabled-boolean":mu,"064-brand-context":Cu,"065-organization-domains":Tu,"066-brand-context-structured":Nu,"067-threads-metadata":Ku,"068-threads-branch":Eu,"069-sandbox-runner-state":zu,"070-model-categories":Pu,"071-default-home-agents":$u,"072-ai-provider-key-preset-id":Uu,"073-backfill-basic-usage-roles":Ju,"074-sandbox-runner-state-handle-nonunique":Xu,"075-thread-inflight-async-jobs":ju,"076-automations-drop-agent-json":Qu,"077-tier-only-model-selection":Zu,"078-automation-tool-call-kind":Lu,"079-strip-legacy-freestyle-vm-map-entries":Du,"080-async-research-jobs":Fu,"081-async-research-jobs-result-content":nu,"082-secrets":Ru,"083-thread-run-locally":Yu,"084-drop-host-sandbox-rows":Hu,"085-rename-runner-kind":Mu,"086-thread-pins-and-vm-map-rekey":Bu,"087-fix-vm-map-rekey":Gu,"088-purge-cli-activate-keys":yu,"089-rename-remote-user-to-desktop":fu,"090-automation-webhook-triggers":Ou,"091-organization-domains-allow-multi":Au,"092-sandbox-naming-uniformization":Su,"093-backfill-global-search-basic-usage":Iu,"094-org-file-configs":Vu,"095-remove-automation-tool-call-kind":ku,"096-org-file-configs-public-url-base":pu,"097-drop-local-docker-sandbox-state":iu,"098-thread-message-parts":vu,"099-run-fence":gu,"100-link-transport":qu,"101-cancel-requested-at":cu,"102-observational-agent":hu,"103-revert-observational-agent":ou,"104-agent-sandbox-provider-kind":ru,"105-org-fs":eu,"106-automation-tools":lu,"107-org-fs-public-org":su,"108-automation-max-agent-steps":du,"109-thread-message-parts-per-message-seq":bu,"110-backfill-ghs-token-expiry":_m,"111-org-fs-thread-id":xm,"112-org-file-configs-credential-type":um,"113-thread-failure-reason":mm,"114-run-acked-seq":Cm,"115-thread-projected-seq":Tm,"116-org-sites":Nm,"117-org-file-configs-site-slug":Km,"118-organization-domains-multi-verify":Em,"119-organization-join-requests":zm,"120-org-fs-read-public":Pm,"121-org-fs-share-password":$m,"122-split-web-research-tier":Xm,"123-connection-credential-vault":jm,"124-drop-thread-projected-seq":Qm,"125-github-child-single-parent":Wm,"126-task-board":Lm,"127-task-board-due-date":Dm,"128-reports-only":Fm,"129-task-board-assigned-by":nm,"130-task-board-thread-id":Rm,"131-task-board-thread-link-cascade":Ym,"132-task-board-item-prs":Hm,"133-dedupe-duplicate-members":Mm,"134-drop-task-board-enabled":Bm,"135-task-board-item-fk-cascade":Gm,"136-task-board-import-idempotency":ym,"137-agent-sandbox-runner-state":fm,"138-agent-sandbox-sessions":Om,"139-organization-billing":Am,"140-seat-change-log":Sm,"141-benefits-sync-pending":Im,"142-stripe-event-watermark":wm,"143-armed-report-url":Vm,"144-benefits-pending-index":km,"145-user-model-preferences":pm,"146-organization-main-agent":tm,"147-drop-agent-sandbox-tables":im,"148-org-flags":vm,"149-task-board-item-sort-order":gm,"150-task-board-activity":qm,"151-task-board-tags":hm,"152-repair-connection-slug":am,"153-task-board-latest-assistant-part-index":rm,"154-task-board-qa-activity":lm,"155-task-board-review-claims":sm,"156-task-board-conflict-activity":bm,"157-drop-seat-billing":_C,"158-drop-github-child-single-parent":xC,"159-task-board-comments":uC,"160-task-quota-billing":mC,"161-task-quota-claim-state":TC,"162-claude-subscriptions":NC,"163-task-board-item-dismissed":KC,"164-per-org-task-quota":EC,"165-task-board-pending-review-index":zC,"166-task-board-last-swept-at":PC,"167-task-board-run-retry":$C,"168-org-repo-sync":JC,"169-task-board-merge-failed-activity":jC,"170-task-board-item-repo":QC,"171-jira-integration":WC,"172-task-board-item-key-seq":ZC,"173-thread-github-repo-connection-index":LC,"174-thread-message-parts-persisted-at":FC,"175-task-board-sprints":nC,"176-task-board-done-sweep-index":RC,"177-notifications":YC,"178-jira-status-mapping-array":HC,"179-notification-mentioned":BC,"180-task-board-item-type":yC,"181-task-board-item-type-required":fC,"182-task-board-sprints-entities":OC,"183-drop-jira-jql-filter":AC,"184-jira-rescan-after-scope-change":SC,"185-jira-rescan-existing-cards":IC,"186-jira-rescan-pending-flag":VC,"187-task-board-comment-thread":kC,"188-invitation-auto-accept":pC,"189-task-board-column-automations":iC,"190-task-board-review-cycle-started-at":vC,"191-task-board-columns":gC,"192-task-board-verdict-nudge-activity":cC,"193-task-board-status-column-fk":hC,"194-jira-link-sprint":oC,"195-task-board-sprint-activity":rC,"196-task-board-column-tracker-statuses":eC,"197-task-board-prompts":lC,"198-task-board-external-url":sC,"199-drop-jira-mirror-and-org-columns":dC,"200-jira-run-trigger":bC,"201-organization-notices":_T,"202-redact-base64-thread-parts":uT,"203-task-board-preview-routes":mT,"204-git-provider-accounts-and-repositories":CT,"205-repository-references":TT,"206-repository-consumers":g_,"207-task-board-prs-repo-idx":v_,"208-github-connect-flows":i_,"209-github-installation-authorization":t_},NT=pX;import{getMigrations as j6}from"better-auth/db";import{sso as Q6}from"@better-auth/sso";import{organization as W6}from"@decocms/better-auth/plugins";import{admin as Z6,apiKey as L6,jwt as D6,magicLink as F6,mcp as n6,openAPI as R6}from"better-auth/plugins";import{emailOTP as Y6}from"better-auth/plugins/email-otp";import{Kysely as E6,PostgresDialect as GN}from"kysely";import{Pool as yN}from"pg";import{homedir as tX}from"os";var iX=new Set(["all","worker","api"]);function vX(_){let x=(_??"").trim();return iX.has(x)?x:"all"}var gX=new Set(["production","development","test"]);function qX(_){let x=(_??"").trim();return gX.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function ET(_,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 ET(_,x,T)??u}function cX(_,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 KT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function ZN(_){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 hX(_){return _===void 0||_===""||_==="true"||_==="1"}function T_(_,x){return _||x}function LN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${tX()}/deco`,T=_.localMode,C=_.nodeEnv||qX(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:T_(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:T_(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),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:ET("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:cX("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:KT(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:KT(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:hX(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:ET("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:vX(T_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:KT(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:T_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:T_(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:ZN(x.DATABASE_URL),externalNatsUrl:ZN(N),skipMigrations:_.skipMigrations}}var I_=null;function h(){if(!I_)oX();return I_}function oX(){if(I_)return;let _={...process.env},x=LN({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},_);I_=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 dX,metrics as bX,propagation as iZ,ROOT_CONTEXT as vZ,SpanStatusCode as gZ,trace as _6}from"@opentelemetry/api";import{logs as x6,SeverityNumber as zT}from"@opentelemetry/api-logs";import{OTLPLogExporter as hZ}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as u6}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as rZ}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as lZ}from"@opentelemetry/instrumentation-runtime-node";import{context as IW,propagation as wW,SpanKind as VW,SpanStatusCode as kW}from"@opentelemetry/api";var tW=globalThis.fetch;import{ExportResultCode as sW}from"@opentelemetry/core";import{ExportResultCode as w_}from"@opentelemetry/core";import{mkdir as aX,rename as rX,writeFile as eX}from"fs/promises";import{join as V_}from"path";class k_{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:w_.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:w_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:w_.FAILED}});return Promise.resolve({code:w_.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?V_(this.basePath,x,...T):V_(this.basePath,...T);if(!this.knownDirs.has(C))await aX(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=V_(C,`.${N}.tmp`),K=V_(C,N),z=_.join(`
1787
1787
  `)+`
1788
- `;await oX(E,z,{mode:384}),await hX(E,K)}}import{ExportResultCode as bW}from"@opentelemetry/core";import{AggregationTemporality as xZ,DataPointType as uZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as EZ}from"@opentelemetry/core";var UZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as u4,LoggerProvider as m4}from"@opentelemetry/sdk-logs";import{detectResources as T4,envDetector as N4,hostDetector as K4,osDetector as E4,processDetector as z4,resourceFromAttributes as P4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as U4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as jZ}from"@opentelemetry/api-logs";import{NodeSDK as j4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as W4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as DZ}from"@opentelemetry/api";var _6="__d",x6=eX("Current request"),u6=1;var DN=(_)=>{let u=new URL(_.url).searchParams.get(_6);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class FN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(x6);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=DN(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 nN{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 L4=new bX({preventServerStart:!0}),D4=new FN(new nN(u6));var LN=sX.getTracer("studio","1.0.0"),N_=lX.getMeter("studio","1.0.0"),m6=dX.getLogger("studio","1.0.0"),zT=(_,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(" ");m6.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},PT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{zT(ET.ERROR,"ERROR",_),PT.error(..._)};console.warn=(..._)=>{zT(ET.WARN,"WARN",_),PT.warn(..._)};console.debug=(..._)=>{zT(ET.DEBUG,"DEBUG",_),PT.debug(..._)};var $T,RN=0,UT=500;function C6(){if($T)return;let _=performance.now()+UT;$T=setInterval(()=>{let x=performance.now();RN=Math.max(0,x-_),_=x+UT},UT),$T.unref?.()}function YN(){return C6(),RN}var N6=()=>N_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),HN=()=>N_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),MN=400,K6=100,E6=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>MN){let T=YN(),C=T>MN/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:p_()}})}if(N6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function z6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=p_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(HN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>K6)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 HN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var yN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function fN(){try{return h().databasePgSsl}catch{return!1}}function p_(){try{return h().databasePoolMax}catch{return 10}}function P6(_){let x=z6(new GN({connectionString:_,max:p_(),ssl:fN(),...yN})),u=new BN({pool:x});return{type:"postgres",db:new T6({dialect:u,log:E6(x)}),pool:x}}function E_(){return h().databaseUrl}function ON(_){let x=_||E_();return new BN({pool:new GN({connectionString:x,max:p_(),ssl:fN(),...yN})})}function $6(_){let x=_||E_();return P6(x)}async function AN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===K_)K_=null}var K_=null;function JT(){if(!K_)K_=$6(E_());return K_}async function SN(_){let u={database:ON(_||E_()),plugins:[X6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),j6(),Q6(),W6(),D6(),L6({loginPage:"/login"}),J6(),Z6({sendMagicLink:async()=>{}}),F6({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await U6(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function wN(_,x){return(await a`
1788
+ `;await eX(E,z,{mode:384}),await rX(E,K)}}import{ExportResultCode as uZ}from"@opentelemetry/core";import{AggregationTemporality as CZ,DataPointType as TZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as $Z}from"@opentelemetry/core";var jZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as T4,LoggerProvider as N4}from"@opentelemetry/sdk-logs";import{detectResources as E4,envDetector as z4,hostDetector as P4,osDetector as $4,processDetector as U4,resourceFromAttributes as J4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as j4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as ZZ}from"@opentelemetry/api-logs";import{NodeSDK as Z4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as D4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as RZ}from"@opentelemetry/api";var m6="__d",C6=dX("Current request"),T6=1;var FN=(_)=>{let u=new URL(_.url).searchParams.get(m6);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class nN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(C6);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 RN{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 n4=new u6({preventServerStart:!0}),R4=new nN(new RN(T6));var DN=_6.getTracer("studio","1.0.0"),N_=bX.getMeter("studio","1.0.0"),N6=x6.getLogger("studio","1.0.0"),PT=(_,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(" ");N6.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},$T={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{PT(zT.ERROR,"ERROR",_),$T.error(..._)};console.warn=(..._)=>{PT(zT.WARN,"WARN",_),$T.warn(..._)};console.debug=(..._)=>{PT(zT.DEBUG,"DEBUG",_),$T.debug(..._)};var UT,YN=0,JT=500;function K6(){if(UT)return;let _=performance.now()+JT;UT=setInterval(()=>{let x=performance.now();YN=Math.max(0,x-_),_=x+JT},JT),UT.unref?.()}function HN(){return K6(),YN}var z6=()=>N_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),MN=()=>N_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),BN=400,P6=100,$6=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>BN){let T=HN(),C=T>BN/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:p_()}})}if(z6().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function U6(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=p_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(MN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>P6)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 MN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var fN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function ON(){try{return h().databasePgSsl}catch{return!1}}function p_(){try{return h().databasePoolMax}catch{return 10}}function J6(_){let x=U6(new yN({connectionString:_,max:p_(),ssl:ON(),...fN})),u=new GN({pool:x});return{type:"postgres",db:new E6({dialect:u,log:$6(x)}),pool:x}}function E_(){return h().databaseUrl}function AN(_){let x=_||E_();return new GN({pool:new yN({connectionString:x,max:p_(),ssl:ON(),...fN})})}function X6(_){let x=_||E_();return J6(x)}async function SN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===K_)K_=null}var K_=null;function XT(){if(!K_)K_=X6(E_());return K_}async function IN(_){let u={database:AN(_||E_()),plugins:[W6({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Z6(),L6(),D6(),R6(),n6({loginPage:"/login"}),Q6(),F6({sendMagicLink:async()=>{}}),Y6({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await j6(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function VN(_,x){return(await a`
1789
1789
  SELECT table_name FROM information_schema.tables
1790
1790
  WHERE table_schema='public' AND table_name=${x}
1791
- `.execute(_)).rows.length>0}async function n6(_){if(await wN(_,"plugin_migrations"))return;await a`
1791
+ `.execute(_)).rows.length>0}async function H6(_){if(await VN(_,"plugin_migrations"))return;await a`
1792
1792
  CREATE TABLE plugin_migrations (
1793
1793
  plugin_id TEXT NOT NULL,
1794
1794
  name TEXT NOT NULL,
1795
1795
  timestamp TEXT NOT NULL,
1796
1796
  PRIMARY KEY (plugin_id, name)
1797
1797
  )
1798
- `.execute(_)}async function R6(_){if(!await wN(_,"kysely_migration"))return;let x=await a`
1798
+ `.execute(_)}async function M6(_){if(!await VN(_,"kysely_migration"))return;let x=await a`
1799
1799
  SELECT name, timestamp FROM kysely_migration
1800
1800
  WHERE name LIKE '%/%'
1801
1801
  `.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`
@@ -1806,4 +1806,4 @@ var VN=Object.defineProperty;var kN=(_)=>_;function pN(_,x){this[_]=kN.bind(null
1806
1806
  WHERE plugin_id = ${E} AND name = ${K}
1807
1807
  `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await a`
1808
1808
  DELETE FROM kysely_migration WHERE name = ${u}
1809
- `.execute(_)}}async function Y6(_){await n6(_),await R6(_);let x=new IN({db:_,provider:{getMigrations:()=>Promise.resolve(TT)}}),{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 H6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await SN();let N=u??JT(),E=async()=>{if(!x&&!u)await AN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await Y6(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function l4(){let _=JT(),x=new IN({db:_.db,provider:{getMigrations:()=>Promise.resolve(TT)}}),{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 H6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{Y6 as runKyselyMigrations,H6 as migrateToLatest,l4 as migrateDown};
1809
+ `.execute(_)}}async function B6(_){await H6(_),await M6(_);let x=new wN({db:_,provider:{getMigrations:()=>Promise.resolve(NT)}}),{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 G6(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await IN();let N=u??XT(),E=async()=>{if(!x&&!u)await SN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await B6(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function b4(){let _=XT(),x=new wN({db:_.db,provider:{getMigrations:()=>Promise.resolve(NT)}}),{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 G6(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{B6 as runKyselyMigrations,G6 as migrateToLatest,b4 as migrateDown};