decocms 4.516.0 → 4.518.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-BviJ1RJ0.js → ActiveShapeUtils-DC4ySNWR.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-BzjzqqRa.js → AlertCircle-DgnxHqxe.js} +1 -1
  3. package/dist/client/assets/{AreaChart-DxdfvWkl.js → AreaChart-Ccsbdjec.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-D9e74CxD.js → ArrowLeft-BJ1448l4.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-BbhuuuwV.js → ArrowUp-723TVuFG.js} +1 -1
  6. package/dist/client/assets/{BarChart-C6YMYkiP.js → BarChart-BdOKvWnK.js} +1 -1
  7. package/dist/client/assets/{Building02-C2flUGF-.js → Building02-DU823ZCw.js} +1 -1
  8. package/dist/client/assets/{CartesianChart-CPZndNAT.js → CartesianChart-3-g5kX2i.js} +1 -1
  9. package/dist/client/assets/{CategoricalChart-BjLODSSF.js → CategoricalChart-CinaMpxG.js} +1 -1
  10. package/dist/client/assets/{CheckCircle-4gdTBGy6.js → CheckCircle-C7csYE-y.js} +1 -1
  11. package/dist/client/assets/{ChevronSelectorVertical-YTUkgDHg.js → ChevronSelectorVertical-B0Z7parR.js} +1 -1
  12. package/dist/client/assets/{ChevronUp-BnA2Nw_G.js → ChevronUp-DiTVmUiH.js} +1 -1
  13. package/dist/client/assets/{Copy01-DK6eLr2i.js → Copy01-DRNuKy-h.js} +1 -1
  14. package/dist/client/assets/{CreditCard01-CMqZSaqi.js → CreditCard01-C3f2i_qY.js} +1 -1
  15. package/dist/client/assets/{DotsVertical-C4UAKneF.js → DotsVertical-eX97dPc6.js} +1 -1
  16. package/dist/client/assets/{ErrorBarContext-bVCQsHLU.js → ErrorBarContext-CCb5UZ88.js} +1 -1
  17. package/dist/client/assets/{Globe04-DEY1e_cW.js → Globe04-ByvV2bPX.js} +1 -1
  18. package/dist/client/assets/{Image01-DwBREChx.js → Image01-QuVxFosz.js} +1 -1
  19. package/dist/client/assets/{Key01-MBTcw2W0.js → Key01-C-QXsN23.js} +1 -1
  20. package/dist/client/assets/{Link01-CHLntxrX.js → Link01-CbpFxbNY.js} +1 -1
  21. package/dist/client/assets/{LinkBroken01-CTiL1Fp-.js → LinkBroken01-DDgMbBWJ.js} +1 -1
  22. package/dist/client/assets/{Minus-BCeBycMD.js → Minus-DnJ8wbLv.js} +1 -1
  23. package/dist/client/assets/{Monitor01-DtC0vfP6.js → Monitor01-DD5_JCl8.js} +1 -1
  24. package/dist/client/assets/{Play-DV5Ma4c6.js → Play-BgEaB30r.js} +1 -1
  25. package/dist/client/assets/{Plus-CxQiW556.js → Plus-BnqPSlPj.js} +1 -1
  26. package/dist/client/assets/{ReferenceLine-CyFWmCIf.js → ReferenceLine-PgVE-Dmr.js} +1 -1
  27. package/dist/client/assets/{SearchMd-CYuw_TlP.js → SearchMd-GQAKwnQD.js} +1 -1
  28. package/dist/client/assets/{Sector-7HoHBp31.js → Sector-DG1U_Qdd.js} +1 -1
  29. package/dist/client/assets/{ShoppingBag01-hqBb4euZ.js → ShoppingBag01-DVHnZchK.js} +1 -1
  30. package/dist/client/assets/{Sun-_7OyKm8q.js → Sun-Ct5gftPt.js} +1 -1
  31. package/dist/client/assets/{SwitchHorizontal01-Ik-Wu8bp.js → SwitchHorizontal01-_kdH1ete.js} +1 -1
  32. package/dist/client/assets/{Tool01-CEmvRWh7.js → Tool01-rTZNmFct.js} +1 -1
  33. package/dist/client/assets/{Trash01-7PWQCtvD.js → Trash01-TPK4gSsp.js} +1 -1
  34. package/dist/client/assets/{Upload01-d0p8GdRf.js → Upload01-D6tRQTgc.js} +1 -1
  35. package/dist/client/assets/{User01-CvsUVXiw.js → User01-1q78INo2.js} +1 -1
  36. package/dist/client/assets/{UserSquare-CRvybnC2.js → UserSquare-B_yRFcN6.js} +1 -1
  37. package/dist/client/assets/{Users01-BpDVBOEG.js → Users01-D5MhP5r0.js} +1 -1
  38. package/dist/client/assets/{XClose-CjXzVHwC.js → XClose-DOXmYMF_.js} +1 -1
  39. package/dist/client/assets/{ZoomOut-CLJKIGNa.js → ZoomOut-DLICjI1h.js} +1 -1
  40. package/dist/client/assets/{access-gate-C_XxaZ28.js → access-gate-p2OBWc28.js} +1 -1
  41. package/dist/client/assets/{add-connection-dialog-TX2J4mBu.js → add-connection-dialog-BluC5xOJ.js} +1 -1
  42. package/dist/client/assets/agent-analytics-D7PovqhV.js +1 -0
  43. package/dist/client/assets/agent-app-DEsjnzHy.js +1 -0
  44. package/dist/client/assets/{agent-assets-DzeNVWVS.js → agent-assets-CsYWD2CR.js} +1 -1
  45. package/dist/client/assets/{agent-automation-fasQYxyE.js → agent-automation-J7szToQ3.js} +1 -1
  46. package/dist/client/assets/{agent-automations-CFCWY442.js → agent-automations-tGwSufFx.js} +1 -1
  47. package/dist/client/assets/agent-calendar-Co4HNR_x.js +1 -0
  48. package/dist/client/assets/{agent-connect-sources-CUS1mQBU.js → agent-connect-sources-Bf7YpJtB.js} +1 -1
  49. package/dist/client/assets/agent-deck-Bra-oqcr.js +1 -0
  50. package/dist/client/assets/{agent-e2e-JX70_ikL.js → agent-e2e-B01kqUsN.js} +1 -1
  51. package/dist/client/assets/agent-experiments-W5vP2PHw.js +1 -0
  52. package/dist/client/assets/{agent-file-bVYB1cfC.js → agent-file-_hkGq1Y2.js} +1 -1
  53. package/dist/client/assets/{agent-hosting-DXYhe_Ly.js → agent-hosting-8jYjdLhJ.js} +1 -1
  54. package/dist/client/assets/{agent-icon-DhApO92C.js → agent-icon-g2PIrjzs.js} +1 -1
  55. package/dist/client/assets/agent-library-BTKjZMW2.js +1 -0
  56. package/dist/client/assets/agent-library-file-ClGbfS7a.js +1 -0
  57. package/dist/client/assets/{agent-monitor-DGuiH3_O.js → agent-monitor-Dtdyok8Z.js} +1 -1
  58. package/dist/client/assets/{agent-overview-DGX_nSiA.js → agent-overview-uVNzU6d3.js} +1 -1
  59. package/dist/client/assets/agent-releases-DVFEJ-Ad.js +2 -0
  60. package/dist/client/assets/agent-settings-DQDpgZ05.js +1 -0
  61. package/dist/client/assets/{agent-site-editor-CLwG7od-.js → agent-site-editor-DI9lfD7X.js} +2 -2
  62. package/dist/client/assets/agent-site-editor-code-CiWALb3j.js +2 -0
  63. package/dist/client/assets/agent-site-editor-content-BrDlLQPy.js +1 -0
  64. package/dist/client/assets/agent-site-editor-preview-Da7g0LlC.js +1 -0
  65. package/dist/client/assets/{agent-view-guard-wNwTHz77.js → agent-view-guard-Bhzmxyux.js} +1 -1
  66. package/dist/client/assets/agent-view-l1LYqbmp.js +1 -0
  67. package/dist/client/assets/{agents-list-Cikp_zRW.js → agents-list-CbFcTa4A.js} +1 -1
  68. package/dist/client/assets/{ai-providers-BSKNGjn3.js → ai-providers-Da7yjmwG.js} +1 -1
  69. package/dist/client/assets/{alert-dialog--q-PWeut.js → alert-dialog-KKnJELoX.js} +1 -1
  70. package/dist/client/assets/{alert-DK8EW5eY.js → alert-kpgdNVxk.js} +1 -1
  71. package/dist/client/assets/{analytics-sections-DMQ7rbtm.js → analytics-sections-DlComRmC.js} +1 -1
  72. package/dist/client/assets/{analytics-tab-DBS1a1Hh.js → analytics-tab-B_HbOlqF.js} +1 -1
  73. package/dist/client/assets/{api-keys-Dq1k7MiZ.js → api-keys-DNrkQCkt.js} +1 -1
  74. package/dist/client/assets/api-keys-kxUaur7Y.js +1 -0
  75. package/dist/client/assets/{app-editor-CrjU5dmy.js → app-editor-CKdeak5r.js} +1 -1
  76. package/dist/client/assets/{asset-utils-DobQJkEL.js → asset-utils-CYyNDrFK.js} +1 -1
  77. package/dist/client/assets/{auth-BCqAeFp3.js → auth-DHZfBLZ5.js} +1 -1
  78. package/dist/client/assets/{auth-catchall-BZEwAlpH.js → auth-catchall-BS8FAipd.js} +1 -1
  79. package/dist/client/assets/{auth-entry-Buz4HmC0.js → auth-entry-34SQAdx9.js} +1 -1
  80. package/dist/client/assets/{auth-split-layout-C7U-I3vQ.js → auth-split-layout-DF-Z-sUB.js} +1 -1
  81. package/dist/client/assets/{authenticate-and-persist-oauth-BAReQnW9.js → authenticate-and-persist-oauth-CbgraxNg.js} +1 -1
  82. package/dist/client/assets/{automation-list-row-DYoDbKDa.js → automation-list-row-DtCSZcdc.js} +1 -1
  83. package/dist/client/assets/{automation-runs-DS3JbQ2r.js → automation-runs-Lelpmww0.js} +1 -1
  84. package/dist/client/assets/{automations-DnYOtmr4.js → automations-CV4vMVkc.js} +1 -1
  85. package/dist/client/assets/{autosend-CC_H9WVC.js → autosend-Cwww7_9j.js} +1 -1
  86. package/dist/client/assets/{avatar-BCxNXTas.js → avatar-BRRGslVN.js} +1 -1
  87. package/dist/client/assets/{badge-Ccv2yax2.js → badge-DmeqGssZ.js} +1 -1
  88. package/dist/client/assets/{block-document-pbAqRC0D.js → block-document-DtA_3M8z.js} +1 -1
  89. package/dist/client/assets/{blocks-preview-workspace-context-CAntUw6y.js → blocks-preview-workspace-context--o78Y3yp.js} +1 -1
  90. package/dist/client/assets/{blocks-tab-states-B-gG8PUG.js → blocks-tab-states-Dps89GrH.js} +1 -1
  91. package/dist/client/assets/{blog-schema-DP6BXJ_v.js → blog-schema-CEYO8j-N.js} +1 -1
  92. package/dist/client/assets/{buckets-YwJbmX1H.js → buckets-CXMlDLcD.js} +1 -1
  93. package/dist/client/assets/{build-improve-prompt-doc-yJWFG-Qh.js → build-improve-prompt-doc-C7S9lWPM.js} +1 -1
  94. package/dist/client/assets/{calendar-CWZHYNsm.js → calendar-B6BpOXfC.js} +1 -1
  95. package/dist/client/assets/{campaigns-view-BJ3dqrez.js → campaigns-view-DtQvcOC6.js} +1 -1
  96. package/dist/client/assets/{capability-load-error-ClFcG_k7.js → capability-load-error-CDC4LjDf.js} +1 -1
  97. package/dist/client/assets/category-editor-BvoAtPRs.js +1 -0
  98. package/dist/client/assets/{chart-ecSSTZTh.js → chart-CTinHp-8.js} +1 -1
  99. package/dist/client/assets/{chat-context-BE5W0eRy.js → chat-context-DLezfYEa.js} +1 -1
  100. package/dist/client/assets/{chat-draft-Bc38hokV.js → chat-draft-BlRnwK9v.js} +1 -1
  101. package/dist/client/assets/{checkbox-BUQlb_zR.js → checkbox-BlB_jfat.js} +1 -1
  102. package/dist/client/assets/{choose-editor-CTk7V5dU.js → choose-editor-DHZGPvHu.js} +1 -1
  103. package/dist/client/assets/{cli-auth-success-PigkRVuP.js → cli-auth-success-DFaLHvgO.js} +1 -1
  104. package/dist/client/assets/{client-icons-CfYl7gN_.js → client-icons-CpqRIiQr.js} +1 -1
  105. package/dist/client/assets/cms-settings-editor-Dh-qBReE.js +1 -0
  106. package/dist/client/assets/{collapsible-CUpe_nLN.js → collapsible-DZTt-UAc.js} +1 -1
  107. package/dist/client/assets/{collection-detail-DMeJtWOq.js → collection-detail-BjUkXIkv.js} +1 -1
  108. package/dist/client/assets/{collection-display-button-BA8_qWgd.js → collection-display-button-Dmr1DpXh.js} +1 -1
  109. package/dist/client/assets/{collection-search-D3DfnNEj.js → collection-search-DcBOG84t.js} +1 -1
  110. package/dist/client/assets/{collection-table-wrapper-BpHyZuIk.js → collection-table-wrapper-CBLUEZ5z.js} +1 -1
  111. package/dist/client/assets/{collection-tabs-BeE9JyBt.js → collection-tabs-D5lfCRgo.js} +1 -1
  112. package/dist/client/assets/{column-rules-HrQ_91De.js → column-rules-B3eVnEiY.js} +1 -1
  113. package/dist/client/assets/{combobox-pGuSce6D.js → combobox-CVTULN6N.js} +1 -1
  114. package/dist/client/assets/{command-Due3aGE_.js → command-R1e1yMQ9.js} +1 -1
  115. package/dist/client/assets/{companion-mcps-section-B_r6DOQv.js → companion-mcps-section-hGQWfzwk.js} +1 -1
  116. package/dist/client/assets/{config-4MxJL_Fy.js → config-BWrcU7H3.js} +1 -1
  117. package/dist/client/assets/{connect-BmT0JQ1F.js → connect-CNN0l2XT.js} +1 -1
  118. package/dist/client/assets/{connect-layout-2QgFH1-_.js → connect-layout-DiWD8YTg.js} +1 -1
  119. package/dist/client/assets/{connect-source-dialog-_wKkm_O5.js → connect-source-dialog-xgaD8LgG.js} +1 -1
  120. package/dist/client/assets/{connection-z8RZuoJq.js → connection-WJRbuDz1.js} +1 -1
  121. package/dist/client/assets/{connection-card-CawZtrlG.js → connection-card-DnICQFn9.js} +1 -1
  122. package/dist/client/assets/{connection-detail-Dm8uTSp4.js → connection-detail-C0OJOuef.js} +1 -1
  123. package/dist/client/assets/{connection-form-helpers-_rP_t0oA.js → connection-form-helpers-CBYCAzPl.js} +1 -1
  124. package/dist/client/assets/{connections-DY1nEMCe.js → connections-DjwbhWNZ.js} +1 -1
  125. package/dist/client/assets/{content-tab-BMyhmLPO.js → content-tab-CAJ559-P.js} +3 -3
  126. package/dist/client/assets/{context-Br81mOVA.js → context-BkZJrbqd.js} +1 -1
  127. package/dist/client/assets/{context-menu-wXhD1da2.js → context-menu-B7wqDsW2.js} +1 -1
  128. package/dist/client/assets/{context-shell-CSyiGVu3.js → context-shell-DkaK_BOn.js} +3 -3
  129. package/dist/client/assets/{core.esm-C9O_xZ-F.js → core.esm-DHAYYfZu.js} +1 -1
  130. package/dist/client/assets/{create-organization-dialog-BULehCnN.js → create-organization-dialog-u0Ud2kaY.js} +1 -1
  131. package/dist/client/assets/{daily-pulse-Biczsq5_.js → daily-pulse-DRJB1hcS.js} +1 -1
  132. package/dist/client/assets/{discover-DY6Qihlm.js → discover-gZu3Sfan.js} +1 -1
  133. package/dist/client/assets/{domain-settings-D_mRu3Vm.js → domain-settings-USbT8NUs.js} +1 -1
  134. package/dist/client/assets/{drawer-BXIYbAX4.js → drawer-C9bfrQZ2.js} +1 -1
  135. package/dist/client/assets/{editor-DfNlEhGy.js → editor-4LyrkCqm.js} +1 -1
  136. package/dist/client/assets/{editor-classes-BgZFSVD_.js → editor-classes-_dczAbCq.js} +1 -1
  137. package/dist/client/assets/{empty-state-DK4d2ph4.js → empty-state-4Hlytpdt.js} +1 -1
  138. package/dist/client/assets/{empty-state-DHTpGmzV.js → empty-state-_a1QMwjl.js} +1 -1
  139. package/dist/client/assets/{experiments-tab-Bxbw5NAx.js → experiments-tab-DdHl8yk7.js} +1 -1
  140. package/dist/client/assets/{experiments-tab-choice-Du4Lvv_w.js → experiments-tab-choice-C9wWsYd4.js} +1 -1
  141. package/dist/client/assets/{extract-connection-data-9sczZwO0.js → extract-connection-data-mbA-zNaE.js} +1 -1
  142. package/dist/client/assets/{feature-gate-b0u-JPA_.js → feature-gate-iJnsMeBr.js} +1 -1
  143. package/dist/client/assets/{feature-paywall-BarXN_Ju.js → feature-paywall-DcguOiJA.js} +1 -1
  144. package/dist/client/assets/{file-explorer-DnOLSPWJ.js → file-explorer-B_iKC9bp.js} +1 -1
  145. package/dist/client/assets/{file-preview-Cak1nE11.js → file-preview-Dy07kmgf.js} +1 -1
  146. package/dist/client/assets/{file-share-button-kIwp5G-u.js → file-share-button-DOM1SplI.js} +1 -1
  147. package/dist/client/assets/{file-type-icon-6tQy_IZ-.js → file-type-icon-CP6Bm0Pm.js} +1 -1
  148. package/dist/client/assets/{folder-icon-R5rTkj7V.js → folder-icon-D_8O1LWU.js} +1 -1
  149. package/dist/client/assets/{form-DuWo7Npn.js → form-B2fhil9l.js} +1 -1
  150. package/dist/client/assets/{general-Cez86_jx.js → general-BE0anzP1.js} +1 -1
  151. package/dist/client/assets/{home-3R5Jmd9M.js → home-Bb5YZQHS.js} +1 -1
  152. package/dist/client/assets/{icon-button-DetNbpEP.js → icon-button-BQwa115u.js} +1 -1
  153. package/dist/client/assets/{index-CRcEuXTH.js → index-B4yeJC5N.js} +1 -1
  154. package/dist/client/assets/{index-DjG04H6F.js → index-BWgOKGMR.js} +1 -1
  155. package/dist/client/assets/{index-Cl9QwptG.js → index-CK40JGB6.js} +1 -1
  156. package/dist/client/assets/{index-C9OicJ74.js → index-CO7uP6ut.js} +1 -1
  157. package/dist/client/assets/{index-DHWYq2vY.js → index-CXWqnDP7.js} +1 -1
  158. package/dist/client/assets/{index-BdhYTUJI.js → index-CYHGIatu.js} +1 -1
  159. package/dist/client/assets/{index-DyvCBoQO.js → index-Ccma-e_l.js} +1 -1
  160. package/dist/client/assets/{index-DlAj9KxS.js → index-CeLGzS5y.js} +1 -1
  161. package/dist/client/assets/{index-CU2v_61i.js → index-Cs4qaYPX.js} +1 -1
  162. package/dist/client/assets/{index-D_jzSCP9.js → index-D2MFYEzD.js} +9 -9
  163. package/dist/client/assets/{index-CkQE3ies.js → index-DU8BFhZD.js} +1 -1
  164. package/dist/client/assets/{index-DppGNDNw.js → index-DXMlJvYf.js} +1 -1
  165. package/dist/client/assets/{index-BOTs238f.js → index-DiVZA6vr.js} +1 -1
  166. package/dist/client/assets/{index-B0KYQovx.js → index-R_qB4INp.js} +1 -1
  167. package/dist/client/assets/{index-Nkc_avaN.js → index-rKWXOhdZ.js} +1 -1
  168. package/dist/client/assets/{index-redirect-ZRzjZAU7.js → index-redirect-D2LQ3n9D.js} +1 -1
  169. package/dist/client/assets/{infiniteQueryObserver-nO7Ij1Gh.js → infiniteQueryObserver-CaSjeDsE.js} +1 -1
  170. package/dist/client/assets/{infra-billing-BzKPkpZz.js → infra-billing-_cCsUnUO.js} +1 -1
  171. package/dist/client/assets/{input---GPY-WG.js → input-D43D11gI.js} +1 -1
  172. package/dist/client/assets/{input-BS1vg5HJ.js → input-D9iDAvwy.js} +3 -3
  173. package/dist/client/assets/{integration-icon-BKkvrbiZ.js → integration-icon-CqbOWyvX.js} +1 -1
  174. package/dist/client/assets/{jira-icon-CNOdA3T8.js → jira-icon-Y_2uACKb.js} +1 -1
  175. package/dist/client/assets/{label-BHfVaXR7.js → label-3hTmrxoy.js} +1 -1
  176. package/dist/client/assets/{layout-CDcVgS1C.js → layout-EYuYXIPk.js} +1 -1
  177. package/dist/client/assets/{legacy-agents-deep-DPDWZmqy.js → legacy-agents-deep-Y0g29rl5.js} +1 -1
  178. package/dist/client/assets/{legacy-main-redirect-Cg_g45Jd.js → legacy-main-redirect-Pt1vRyf-.js} +1 -1
  179. package/dist/client/assets/library-DJ51ehEw.js +1 -0
  180. package/dist/client/assets/{login-wOfUg9Nh.js → login-DTF43M9h.js} +1 -1
  181. package/dist/client/assets/{markdown-Cd88osrX.js → markdown-BeKN4MPt.js} +1 -1
  182. package/dist/client/assets/{mcp-app-renderer-CFMsjvxz.js → mcp-app-renderer-DcbWj_cd.js} +1 -1
  183. package/dist/client/assets/{mcp-oauth-CReJrypj.js → mcp-oauth-BVLnM3ir.js} +1 -1
  184. package/dist/client/assets/{mcp-oauth-DQ_xwjzU.js → mcp-oauth-DQ__DCEs.js} +1 -1
  185. package/dist/client/assets/{members-EL9Mc9m1.js → members-DdYed_-G.js} +1 -1
  186. package/dist/client/assets/{memory-BawNPVGj.js → memory-CbDGJpdj.js} +1 -1
  187. package/dist/client/assets/{mini-report-page-BAVRLfhx.js → mini-report-page-I5w2A9ue.js} +1 -1
  188. package/dist/client/assets/{mock-board-CUvkl6Lq.js → mock-board-D64wFJ9x.js} +3 -3
  189. package/dist/client/assets/{monaco-editor-q0K0FpZQ.js → monaco-editor-DEU78sxw.js} +1 -1
  190. package/dist/client/assets/monitoring-Bklr39Mh.js +1 -0
  191. package/dist/client/assets/{monitoring-stats-row-BsUBQUMM.js → monitoring-stats-row-BLFmMtG4.js} +1 -1
  192. package/dist/client/assets/{multi-select-Db_ThqMQ.js → multi-select-DxNv8sxt.js} +1 -1
  193. package/dist/client/assets/{mustache-Pqeakuud.js → mustache-Cm6mC1mo.js} +2 -2
  194. package/dist/client/assets/{named-rule-uses-CocrtMGd.js → named-rule-uses-BBN_5zyZ.js} +1 -1
  195. package/dist/client/assets/{named-rule-view-DI8em1Ln.js → named-rule-view-Dgj56LCZ.js} +1 -1
  196. package/dist/client/assets/{new-project-dialog-CP7YY3zi.js → new-project-dialog-qMTAvOP0.js} +1 -1
  197. package/dist/client/assets/{oauth-callback-C87YK0QM.js → oauth-callback-DzKW1jLM.js} +1 -1
  198. package/dist/client/assets/{oauth-callback-ai-provider-BiPEsxGS.js → oauth-callback-ai-provider-BhTg9J9_.js} +1 -1
  199. package/dist/client/assets/{onboarding-BkgYJN30.js → onboarding-CcHHvf_v.js} +1 -1
  200. package/dist/client/assets/{openai-conversation-CMtl-uGo.js → openai-conversation-X6iReX5A.js} +1 -1
  201. package/dist/client/assets/{optimistic-project-sidebar-views-Dfnv2eVq.js → optimistic-project-sidebar-views-Wa4vMG32.js} +1 -1
  202. package/dist/client/assets/{order-monitor-day-B8b4_NRG.js → order-monitor-day-d8yh4cv8.js} +1 -1
  203. package/dist/client/assets/{organization-choice-D2OqEnT1.js → organization-choice-DKOeafiU.js} +1 -1
  204. package/dist/client/assets/{orgs-BT5DM-wr.js → orgs-CReR2HvS.js} +1 -1
  205. package/dist/client/assets/{page-seo-form-BZ5qz5Jc.js → page-seo-form-BTZBPUqn.js} +1 -1
  206. package/dist/client/assets/{pair-CbWxf18N.js → pair-DSps2zoM.js} +1 -1
  207. package/dist/client/assets/{parse-sections-C-MhwiHZ.js → parse-sections-Bc_lvOtq.js} +1 -1
  208. package/dist/client/assets/{plan-DZXfEuaN.js → plan-CxnMa3En.js} +1 -1
  209. package/dist/client/assets/{plan-ladder-jDYqtD5Q.js → plan-ladder-7wUcVwfI.js} +1 -1
  210. package/dist/client/assets/{popover-BVmz1c3N.js → popover-Dm_x8CV9.js} +1 -1
  211. package/dist/client/assets/{post-calendar-B_8534k5.js → post-calendar-BtFE-61n.js} +1 -1
  212. package/dist/client/assets/{post-editor-B2niN_j8.js → post-editor-QChnOq6Y.js} +2 -2
  213. package/dist/client/assets/{preview-content-3uKit-hf.js → preview-content-BUlAqj-X.js} +1 -1
  214. package/dist/client/assets/{preview-dialog-Du1qcsYi.js → preview-dialog-39V6ZO2Y.js} +1 -1
  215. package/dist/client/assets/preview-link-C762yHOt.js +1 -0
  216. package/dist/client/assets/{preview-panel-BoHCLryt.js → preview-panel-BvoYfTNF.js} +1 -1
  217. package/dist/client/assets/preview-tab-jmFSMM-R.js +551 -0
  218. package/dist/client/assets/{product-picker-dialog-DPPSOqIw.js → product-picker-dialog-iaXbdjia.js} +1 -1
  219. package/dist/client/assets/{profile-CkB0-zr4.js → profile-IgWNvITK.js} +1 -1
  220. package/dist/client/assets/{project-app-view-DXEcNYan.js → project-app-view-Bc-wof7y.js} +1 -1
  221. package/dist/client/assets/{project-apps-B5YazmD2.js → project-apps-DVzn0z1g.js} +1 -1
  222. package/dist/client/assets/{project-feed-DmjT3iA5.js → project-feed-BIwmxSQY.js} +1 -1
  223. package/dist/client/assets/{project-icon-BsqqQ1nI.js → project-icon-CJmvnLdz.js} +1 -1
  224. package/dist/client/assets/project-reports-DnaQ9nW_.js +1 -0
  225. package/dist/client/assets/project-tasks-cwxXGcyN.js +1 -0
  226. package/dist/client/assets/{projects-Cwzu5Iqo.js → projects-D8Cbhxnj.js} +1 -1
  227. package/dist/client/assets/{projects-empty-state-Br0wajyI.js → projects-empty-state-CmtOjsbv.js} +1 -1
  228. package/dist/client/assets/{prompts-DIIjyoc9.js → prompts-BFb-SeSC.js} +1 -1
  229. package/dist/client/assets/record-editor-hWJJMGCG.js +1 -0
  230. package/dist/client/assets/{redirect-editor-B4oKb1GO.js → redirect-editor-XmMaGVJV.js} +1 -1
  231. package/dist/client/assets/releases-api-AYZ93qlv.js +1 -0
  232. package/dist/client/assets/{reports-BLHz2f-u.js → reports-AyOb4hhI.js} +1 -1
  233. package/dist/client/assets/reports-BQij5juA.js +1 -0
  234. package/dist/client/assets/{reports-onboarding-8l7cEi9O.js → reports-onboarding-BDPMVaDo.js} +1 -1
  235. package/dist/client/assets/{reports-tab-0lUp3BwL.js → reports-tab-D2iADtiN.js} +2 -2
  236. package/dist/client/assets/repositories-BNDNB0vE.js +1 -0
  237. package/dist/client/assets/repositories-BiNU-Xfn.js +1 -0
  238. package/dist/client/assets/{repository-binding-Cl8gyVcv.js → repository-binding-4nTgXz1S.js} +1 -1
  239. package/dist/client/assets/{repository-import-picker-3obW4oiZ.js → repository-import-picker-De4sf2Gs.js} +1 -1
  240. package/dist/client/assets/repository-picker-HOHNvmaE.js +1 -0
  241. package/dist/client/assets/{require-capability-NNP8AGk1.js → require-capability-ChTCz2WH.js} +1 -1
  242. package/dist/client/assets/{required-auth-layout-D4sDIyJ3.js → required-auth-layout-BZllo6Io.js} +1 -1
  243. package/dist/client/assets/{reset-password-CXaP1BPU.js → reset-password-Ui3G6CJw.js} +1 -1
  244. package/dist/client/assets/{resizable-DVzR2wEK.js → resizable-DAXTAODq.js} +1 -1
  245. package/dist/client/assets/{resolve-tab-icon-BdFEwYlo.js → resolve-tab-icon-CAixh6_W.js} +1 -1
  246. package/dist/client/assets/{review-settings-CQ-ke_sY.js → review-settings-BDP4bMe5.js} +1 -1
  247. package/dist/client/assets/{roles-CSdPRDeD.js → roles-Clx4HYW_.js} +1 -1
  248. package/dist/client/assets/{route-CN2nYP-k.js → route-B9jYymiu.js} +1 -1
  249. package/dist/client/assets/route-BjK3qzB4.js +1 -0
  250. package/dist/client/assets/{route-CGCaN7RC.js → route-CaI6hSyT.js} +1 -1
  251. package/dist/client/assets/{runnable-block-editor-BCPCXDwB.js → runnable-block-editor-LQjhwiX1.js} +6 -6
  252. package/dist/client/assets/{sandbox-lifecycle-context-D9f3Vvrq.js → sandbox-lifecycle-context-CJodiAqU.js} +1 -1
  253. package/dist/client/assets/{schema-JPrgW9NA.js → schema-DrNvzI26.js} +1 -1
  254. package/dist/client/assets/{schema-DIOdOlgE.js → schema-xPkTs0YZ.js} +1 -1
  255. package/dist/client/assets/{scroll-area-BzPxgY-4.js → scroll-area-BBBDJLpH.js} +1 -1
  256. package/dist/client/assets/{search-input-CAgDD0MP.js → search-input-DSx8LWNe.js} +1 -1
  257. package/dist/client/assets/{search-toggle-DxyC7mO0.js → search-toggle-B9X5GBEJ.js} +1 -1
  258. package/dist/client/assets/{secret-ciphertext-DIyWW8ea.js → secret-ciphertext-qv17emf3.js} +1 -1
  259. package/dist/client/assets/{secret-picker-BaxV5boV.js → secret-picker-DBs-gr5P.js} +1 -1
  260. package/dist/client/assets/{secrets-DSOCKy5q.js → secrets-5nLK_pSH.js} +1 -1
  261. package/dist/client/assets/{sections-BsNG86P-.js → sections-ALAbnAYY.js} +1 -1
  262. package/dist/client/assets/{sections-editor-Ba5HL_GU.js → sections-editor-DVqxZTWF.js} +2 -2
  263. package/dist/client/assets/{select-C1PBhx94.js → select-C9_0SSgH.js} +1 -1
  264. package/dist/client/assets/{select-model-B3qCPlEj.js → select-model-BaxH4IRV.js} +1 -1
  265. package/dist/client/assets/{seo-editor-CBXv1v_K.js → seo-editor-Cd-ANp55.js} +1 -1
  266. package/dist/client/assets/{separator-DI0EmK0i.js → separator-DXuISWBW.js} +1 -1
  267. package/dist/client/assets/settings-tab-D_D1vl9t.js +1 -0
  268. package/dist/client/assets/{sheet-DaxppAym.js → sheet-BQCLSAhw.js} +1 -1
  269. package/dist/client/assets/{shell-layout-CKWLH4bq.js → shell-layout-CnXya3zZ.js} +1 -1
  270. package/dist/client/assets/site-draft-actions-BG_Fzxj9.js +12 -0
  271. package/dist/client/assets/site-draft-view-BYdCjysm.js +2 -0
  272. package/dist/client/assets/site-editor-B7kc0tIQ.js +1 -0
  273. package/dist/client/assets/{site-editor-toast-vUK6CnYX.js → site-editor-toast-BKVRfpA8.js} +1 -1
  274. package/dist/client/assets/{skills-Conq58a1.js → skills-mFhfnuy4.js} +1 -1
  275. package/dist/client/assets/{slider-B4XFe7FF.js → slider-DTKLr6aL.js} +1 -1
  276. package/dist/client/assets/{sortable.esm-Mem55hqW.js → sortable.esm-D2---7Ab.js} +1 -1
  277. package/dist/client/assets/{sso-4h0pQdIc.js → sso-DrhiuaNt.js} +1 -1
  278. package/dist/client/assets/{suggestion-DXfrHDfU.js → suggestion-B0A7rwRG.js} +1 -1
  279. package/dist/client/assets/{switch-BZ12Wlze.js → switch-CESJ2RZK.js} +1 -1
  280. package/dist/client/assets/{symbol-NtdYAab7.js → symbol-CYXY7_SE.js} +1 -1
  281. package/dist/client/assets/{synced-repos-C66vtPZX.js → synced-repos--pWS_C_z.js} +1 -1
  282. package/dist/client/assets/{tab-icon-glyph-D8h09tlE.js → tab-icon-glyph-Cjt9sANI.js} +1 -1
  283. package/dist/client/assets/{table-cd8TiUS7.js → table-BkZK8rXZ.js} +1 -1
  284. package/dist/client/assets/{tabs-PlTfpfXH.js → tabs-B6EQUSl_.js} +1 -1
  285. package/dist/client/assets/{task-assignee-avatar-CgqWAIyd.js → task-assignee-avatar-Dodx9W4w.js} +1 -1
  286. package/dist/client/assets/{task-board-DZKwU9_n.js → task-board-6nf7vbPi.js} +1 -1
  287. package/dist/client/assets/{task-route-CtG_ZySh.js → task-route-BvbHuTGP.js} +1 -1
  288. package/dist/client/assets/{task-status-DWzfRk3b.js → task-status-GUWtXwyC.js} +1 -1
  289. package/dist/client/assets/{taskboard-analytics-CdVp5AM1.js → taskboard-analytics-BXSTC1m2.js} +1 -1
  290. package/dist/client/assets/tasks-Cd3DKWnU.js +1 -0
  291. package/dist/client/assets/{tasks-DME9mnR2.js → tasks-DEvPbHif.js} +1 -1
  292. package/dist/client/assets/{textarea-CbCQygtF.js → textarea-DG3FcnmS.js} +1 -1
  293. package/dist/client/assets/{thread-analytics-D0HqEGEH.js → thread-analytics-BUqostwA.js} +1 -1
  294. package/dist/client/assets/{thread-intent-DYTU11gs.js → thread-intent-Ds79TVrW.js} +1 -1
  295. package/dist/client/assets/{thread-route-BwLT1XI-.js → thread-route-Cf5GTfDW.js} +1 -1
  296. package/dist/client/assets/{thread-route-BrF-OvAm.js → thread-route-UuA5SD5X.js} +1 -1
  297. package/dist/client/assets/{thread-sheet-body-BClkfRHz.js → thread-sheet-body-p9veuPgz.js} +1 -1
  298. package/dist/client/assets/{time-range-picker-Dc0YWA3V.js → time-range-picker-Bo0eqMw9.js} +1 -1
  299. package/dist/client/assets/{toggle-group-CG3xZyLa.js → toggle-group-C7NFln-0.js} +1 -1
  300. package/dist/client/assets/{tool-namespace-BffmviW3.js → tool-namespace-CMW8ZB5L.js} +1 -1
  301. package/dist/client/assets/{toolbar-icon-button-Dvrbx_wP.js → toolbar-icon-button-BiR5ntfC.js} +1 -1
  302. package/dist/client/assets/{tooltip-DZoMaiH-.js → tooltip-bQVm_Ope.js} +1 -1
  303. package/dist/client/assets/{tooltipContext-D6Gsaqky.js → tooltipContext-CMDZ9J9X.js} +1 -1
  304. package/dist/client/assets/{track-Cv2e7Jw0.js → track-COIlf0dl.js} +1 -1
  305. package/dist/client/assets/{types-D8wZ_EZc.js → types-DLna4BAB.js} +1 -1
  306. package/dist/client/assets/{url-slug-C8xJrS8o.js → url-slug-BWq-dgp6.js} +1 -1
  307. package/dist/client/assets/{usage-stats-B6igVHuP.js → usage-stats-CvT3PVJT.js} +1 -1
  308. package/dist/client/assets/{use-ai-providers-DgzZ7YKT.js → use-ai-providers-CzmKfSB9.js} +1 -1
  309. package/dist/client/assets/{use-apply-named-rule-BXu1w5Bp.js → use-apply-named-rule-BLEqLp1R.js} +1 -1
  310. package/dist/client/assets/{use-automations-DZTdfMuj.js → use-automations-DHA5_uZh.js} +1 -1
  311. package/dist/client/assets/{use-autosave-C5yHGYj0.js → use-autosave-BlShc4A-.js} +1 -1
  312. package/dist/client/assets/{use-chat-layout-state-fUIATILp.js → use-chat-layout-state-BV7ldzPe.js} +1 -1
  313. package/dist/client/assets/{use-clock-tick-DiijcghV.js → use-clock-tick-C61VlTs_.js} +1 -1
  314. package/dist/client/assets/{use-connect-companion-DvHSKAIT.js → use-connect-companion-DxCCqNf4.js} +1 -1
  315. package/dist/client/assets/{use-connection-BZmon5tp.js → use-connection-DTSe3r1K.js} +1 -1
  316. package/dist/client/assets/{use-content-sync-DQGv9jMR.js → use-content-sync-Dj6rb1LD.js} +1 -1
  317. package/dist/client/assets/{use-copy-Dl7HNmsM.js → use-copy-Bc8JMSws.js} +1 -1
  318. package/dist/client/assets/{use-create-virtual-mcp-Y_WqPwQW.js → use-create-virtual-mcp-Dpe8iA_9.js} +1 -1
  319. package/dist/client/assets/{use-date-fns-locale-C4tTGqdg.js → use-date-fns-locale-BGkTB4Mm.js} +1 -1
  320. package/dist/client/assets/{use-debounced-autosave-iEzw6avK.js → use-debounced-autosave-BhCHbQGN.js} +1 -1
  321. package/dist/client/assets/{use-debounced-value-DNoCsO37.js → use-debounced-value-Cm7nwcam.js} +1 -1
  322. package/dist/client/assets/{use-deco-credits-Bb3hLWha.js → use-deco-credits-BgLGkCcl.js} +1 -1
  323. package/dist/client/assets/{use-decopilot-events-Bfz-bAKi.js → use-decopilot-events-C_BQo06W.js} +1 -1
  324. package/dist/client/assets/{use-delete-connection-DHMSyjey.js → use-delete-connection-BEv8pmzy.js} +1 -1
  325. package/dist/client/assets/{use-deployment-admin-CU8I3_7G.js → use-deployment-admin-Ck9xx8zz.js} +1 -1
  326. package/dist/client/assets/use-fast-preview-draft-url-B7ECUHMP.js +1 -0
  327. package/dist/client/assets/{use-file-configs-BXF9rvXJ.js → use-file-configs-C7kUU5_U.js} +1 -1
  328. package/dist/client/assets/{use-inbox-feed-aT0WvD_J.js → use-inbox-feed-U2BOY_0m.js} +1 -1
  329. package/dist/client/assets/{use-infinite-scroll-ZRIHRcVb.js → use-infinite-scroll-CpvqXWve.js} +1 -1
  330. package/dist/client/assets/{use-join-requests-p5BU3YYl.js → use-join-requests-ldwvbhU3.js} +1 -1
  331. package/dist/client/assets/{use-main-panel-tabs-69xs0HVG.js → use-main-panel-tabs-BvDesOKd.js} +1 -1
  332. package/dist/client/assets/{use-mcp-auth-status-SoBS-b1c.js → use-mcp-auth-status-D6FLEMEz.js} +1 -1
  333. package/dist/client/assets/{use-mcp-client-DqYHf07G.js → use-mcp-client-Cby5XqT6.js} +1 -1
  334. package/dist/client/assets/{use-mcp-prompts-Cu6zSvAs.js → use-mcp-prompts-DpGHOlEI.js} +1 -1
  335. package/dist/client/assets/{use-mcp-tools-CTx7o8Po.js → use-mcp-tools-7EpnWJvB.js} +1 -1
  336. package/dist/client/assets/{use-members-7fbiQ1L2.js → use-members-oF45MDF1.js} +1 -1
  337. package/dist/client/assets/{use-mobile-Df_3y675.js → use-mobile-h4hHhZkm.js} +1 -1
  338. package/dist/client/assets/{use-move-blocks-2-4mcwFX.js → use-move-blocks-DFQHiQ1n.js} +1 -1
  339. package/dist/client/assets/{use-navigate-to-agent-DOId9IHj.js → use-navigate-to-agent-DwJfjSMG.js} +1 -1
  340. package/dist/client/assets/{use-open-billing-url-_IkiYFNL.js → use-open-billing-url-CjWCFQM1.js} +1 -1
  341. package/dist/client/assets/{use-org-auth-client-D-Dp-TzJ.js → use-org-auth-client-BFDehTsp.js} +1 -1
  342. package/dist/client/assets/{use-org-fs-CLvO6ZX7.js → use-org-fs-CyxFz8rw.js} +1 -1
  343. package/dist/client/assets/{use-org-repo-syncs-kBybWkDI.js → use-org-repo-syncs-BsUWjWH7.js} +1 -1
  344. package/dist/client/assets/{use-org-sso-DzwVU3EX.js → use-org-sso-D5M4Sxwu.js} +1 -1
  345. package/dist/client/assets/{use-organization-roles-LxJNrgl3.js → use-organization-roles-t12r77qZ.js} +1 -1
  346. package/dist/client/assets/{use-organization-settings-BXo7nhZ3.js → use-organization-settings-NOur1Lvu.js} +1 -1
  347. package/dist/client/assets/{use-panel-navigate-DGz4w4gD.js → use-panel-navigate-DxGjTjIo.js} +1 -1
  348. package/dist/client/assets/{use-project-native-view-presence-DVu_UG8f.js → use-project-native-view-presence-USh7_bNt.js} +1 -1
  349. package/dist/client/assets/{use-project-scope-B2UHdHkf.js → use-project-scope-CBw0FSEz.js} +1 -1
  350. package/dist/client/assets/{use-recent-apps-BOqc2cRg.js → use-recent-apps-B2LVD6z4.js} +1 -1
  351. package/dist/client/assets/{use-releases-Bvh7Pdaa.js → use-releases-x9nrIfuE.js} +1 -1
  352. package/dist/client/assets/{use-reports-diagnostic-Dct34RIh.js → use-reports-diagnostic-qSw4HttT.js} +1 -1
  353. package/dist/client/assets/{use-sandbox-events-DxcL_G2x.js → use-sandbox-events-D98uWMd_.js} +1 -1
  354. package/dist/client/assets/{use-secrets-Cgbmwf1E.js → use-secrets-CvBGDTuP.js} +1 -1
  355. package/dist/client/assets/{use-section-preview-base-CMHXbkVq.js → use-section-preview-base-DmjOJ885.js} +1 -1
  356. package/dist/client/assets/{use-session-runtime-7d3qKI0U.js → use-session-runtime-BrkTaSa6.js} +1 -1
  357. package/dist/client/assets/{use-sidebar-collapsed-CEbyuj9_.js → use-sidebar-collapsed-Bijbdhqq.js} +1 -1
  358. package/dist/client/assets/{use-tags-DOizZBvn.js → use-tags-BMQZw2TW.js} +1 -1
  359. package/dist/client/assets/{use-task-board-analytics-hmTm3Xr8.js → use-task-board-analytics-DdtvZ4ju.js} +1 -1
  360. package/dist/client/assets/{use-task-board-events-Sjn1d0ir.js → use-task-board-events-B5yNhg5i.js} +1 -1
  361. package/dist/client/assets/{use-task-board-item-prs-BzC_DBWs.js → use-task-board-item-prs-D9gfgNig.js} +1 -1
  362. package/dist/client/assets/{use-task-metadata-CSxCj4yy.js → use-task-metadata-DuF2rBuH.js} +1 -1
  363. package/dist/client/assets/{use-thread-analytics-DfMbrXTf.js → use-thread-analytics-B03W7aQi.js} +1 -1
  364. package/dist/client/assets/{use-thread-outputs-B3pyBOho.js → use-thread-outputs-D_k8NizM.js} +1 -1
  365. package/dist/client/assets/useInfiniteQuery-Dobhsojg.js +1 -0
  366. package/dist/client/assets/{useQueries-uLX23MNk.js → useQueries-BSehCBUp.js} +1 -1
  367. package/dist/client/assets/useSuspenseInfiniteQuery-CqyfVE9R.js +1 -0
  368. package/dist/client/assets/{users-Ib8R59dI.js → users-Cej3U7P5.js} +1 -1
  369. package/dist/client/assets/{utils-LrUUDN57.js → utils-CkwBhBMS.js} +1 -1
  370. package/dist/client/assets/{variant-calendar-DOoqqIzr.js → variant-calendar-kJB8Qi3I.js} +1 -1
  371. package/dist/client/assets/variant-draft-pointer-BeAKcq_c.js +1 -0
  372. package/dist/client/assets/variant-matcher-override-XY7K79P5.js +1 -0
  373. package/dist/client/assets/{virtual-mcp-B7o88283.js → virtual-mcp-BzmRbmfQ.js} +1 -1
  374. package/dist/client/assets/{watch-sse-pool-DIAPPzx7.js → watch-sse-pool-CmsmQLFo.js} +1 -1
  375. package/dist/client/index.html +1 -1
  376. package/dist/server/migrate.js +214 -209
  377. package/dist/server/server.js +690 -690
  378. package/package.json +1 -1
  379. package/dist/client/assets/agent-analytics-CDwx4a2N.js +0 -1
  380. package/dist/client/assets/agent-app-G-hsYMQ8.js +0 -1
  381. package/dist/client/assets/agent-calendar-DaZrWfix.js +0 -1
  382. package/dist/client/assets/agent-deck-CqPaTZAU.js +0 -1
  383. package/dist/client/assets/agent-experiments-Cvjx0r-V.js +0 -1
  384. package/dist/client/assets/agent-library-D15ABzqd.js +0 -1
  385. package/dist/client/assets/agent-library-file-B9iyqErA.js +0 -1
  386. package/dist/client/assets/agent-releases-B4Wvo_4b.js +0 -2
  387. package/dist/client/assets/agent-settings-AZLE4kyB.js +0 -1
  388. package/dist/client/assets/agent-site-editor-code-Dqh-CK3q.js +0 -2
  389. package/dist/client/assets/agent-site-editor-content-ZYGhs3a9.js +0 -1
  390. package/dist/client/assets/agent-site-editor-preview-DTKZdYCv.js +0 -1
  391. package/dist/client/assets/agent-view-D3mqLvwq.js +0 -1
  392. package/dist/client/assets/api-keys-J75u9n5h.js +0 -1
  393. package/dist/client/assets/category-editor-BdRz9cOQ.js +0 -1
  394. package/dist/client/assets/cms-settings-editor-B-g4hnK1.js +0 -1
  395. package/dist/client/assets/hosted-publish-api-CReqocob.js +0 -1
  396. package/dist/client/assets/hosted-publish-feedback-BuFauPpC.js +0 -1
  397. package/dist/client/assets/library-DJVFXK7P.js +0 -1
  398. package/dist/client/assets/monitoring-CmUEkQAu.js +0 -1
  399. package/dist/client/assets/preview-tab-DYBrEyCh.js +0 -551
  400. package/dist/client/assets/project-reports-CFxmXR8C.js +0 -1
  401. package/dist/client/assets/project-tasks-DIAs0Pxy.js +0 -1
  402. package/dist/client/assets/record-editor-C5o_Ofe0.js +0 -1
  403. package/dist/client/assets/releases-api-D9GDZds6.js +0 -1
  404. package/dist/client/assets/reports-CmJOblfH.js +0 -1
  405. package/dist/client/assets/repositories-BZY63VIV.js +0 -1
  406. package/dist/client/assets/repositories-DIzNxooQ.js +0 -1
  407. package/dist/client/assets/repository-picker-0eUSIZ5X.js +0 -1
  408. package/dist/client/assets/route-BuTkxBLT.js +0 -1
  409. package/dist/client/assets/settings-tab-D7gwu_vw.js +0 -1
  410. package/dist/client/assets/site-draft-actions-Ck0Qp0lI.js +0 -12
  411. package/dist/client/assets/site-draft-view-DwI6BUF-.js +0 -2
  412. package/dist/client/assets/site-editor-C14MF5hG.js +0 -1
  413. package/dist/client/assets/tasks-4t3a03Q3.js +0 -1
  414. package/dist/client/assets/use-fast-preview-draft-url-CBDC7qwh.js +0 -1
  415. package/dist/client/assets/useInfiniteQuery-BuR8X__X.js +0 -1
  416. package/dist/client/assets/useSuspenseInfiniteQuery-B04nA0hC.js +0 -1
  417. package/dist/client/assets/variant-draft-pointer-DNyBkOr3.js +0 -1
@@ -1,9 +1,9 @@
1
1
  // @bun
2
- var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null,x)}var C=(_,x)=>{for(var u in x)Vz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:kz.bind(x,u)})};import{Migrator as yz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>nz,down:()=>vz});import{sql as hm}from"kysely";async function nz(_){await hm`
2
+ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null,x)}var C=(_,x)=>{for(var u in x)kz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:vz.bind(x,u)})};import{Migrator as wz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>pz,down:()=>gz});import{sql as tm}from"kysely";async function pz(_){await tm`
3
3
  ALTER TABLE task_board_items
4
4
  ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
5
5
  CHECK (harness_id IN ('claude-code', 'codex'))
6
- `.execute(_)}async function vz(_){await hm`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>pz,down:()=>gz});import{sql as G_}from"kysely";async function pz(_){await G_`
6
+ `.execute(_)}async function gz(_){await tm`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>qz,down:()=>iz});import{sql as G_}from"kysely";async function qz(_){await G_`
7
7
  ALTER TABLE task_board_items
8
8
  ADD COLUMN IF NOT EXISTS parent_id text NULL
9
9
  REFERENCES task_board_items(id) ON DELETE SET NULL,
@@ -12,11 +12,16 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
12
12
  CREATE INDEX IF NOT EXISTS idx_task_board_items_parent_id
13
13
  ON task_board_items (parent_id)
14
14
  WHERE parent_id IS NOT NULL
15
- `.execute(_)}async function gz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
15
+ `.execute(_)}async function iz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
16
16
  ALTER TABLE task_board_items
17
17
  DROP COLUMN IF EXISTS parent_id,
18
18
  DROP COLUMN IF EXISTS is_epic
19
- `.execute(_)}var Jx={};C(Jx,{up:()=>qz,down:()=>iz});async function qz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function iz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz,TYPES:()=>Xx});import{sql as m_}from"kysely";var Xx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function cz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await tm(_,Xx)}async function hz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await tm(_,Xx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function tm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as om}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",om`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",om`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});import{sql as a}from"kysely";async function az(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
19
+ `.execute(_)}var Jx={};C(Jx,{up:()=>cz,down:()=>hz});import{sql as om}from"kysely";async function cz(_){await om`
20
+ ALTER TABLE repositories
21
+ ADD COLUMN IF NOT EXISTS monitor_deploys boolean NOT NULL DEFAULT true
22
+ `.execute(_)}async function hz(_){await om`
23
+ ALTER TABLE repositories DROP COLUMN IF EXISTS monitor_deploys
24
+ `.execute(_)}var Xx={};C(Xx,{up:()=>tz,down:()=>oz});async function tz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function oz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Zx={};C(Zx,{up:()=>az,down:()=>rz,TYPES:()=>Qx});import{sql as m_}from"kysely";var Qx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function az(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await am(_,Qx)}async function rz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await am(_,Qx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function am(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Wx={};C(Wx,{up:()=>lz,down:()=>ez});import{sql as rm}from"kysely";async function lz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",rm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",rm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function ez(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var jx={};C(jx,{up:()=>dz,down:()=>bz});import{sql as a}from"kysely";async function dz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
20
25
  DROP COLUMN IF EXISTS registry_config,
21
26
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
22
27
  BEGIN RETURN value::jsonb;
@@ -31,20 +36,20 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
31
36
  )`.execute(_),await a`DELETE FROM connections
32
37
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
33
38
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
34
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function rz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as am}from"kysely";async function lz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await am`
39
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function bz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Lx={};C(Lx,{up:()=>sz,down:()=>_E});import{sql as lm}from"kysely";async function sz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await lm`
35
40
  select organization_id, metadata
36
41
  from connections
37
42
  where connection_type = 'VIRTUAL'
38
43
  and metadata like '%submoduleCredentials%'
39
44
  order by updated_at asc
40
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await am`
45
+ `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await lm`
41
46
  insert into organization_settings
42
47
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
43
48
  values (${K}, ${T}, ${N}, ${N})
44
49
  on conflict ("organizationId") do update
45
50
  set submodule_credentials = excluded.submodule_credentials,
46
51
  "updatedAt" = excluded."updatedAt"
47
- `.execute(_)}}async function ez(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Lx={};C(Lx,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function bz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Yx={};C(Yx,{up:()=>sz,down:()=>_E});import{sql as Fx}from"kysely";async function sz(_){await Fx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Fx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Fx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function _E(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Hx={};C(Hx,{up:()=>CE,down:()=>KE});import{sql as G}from"kysely";var xE={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},uE={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Dx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function rm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function lm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,xE],[G`'commerce-discovery_' || organization_id`,uE]])for(let T of["title","description"]){let{from:z,to:E}=rm(m[T],x);await G`
52
+ `.execute(_)}}async function _E(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Fx={};C(Fx,{up:()=>xE,down:()=>uE});async function xE(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function uE(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Dx={};C(Dx,{up:()=>CE,down:()=>KE});import{sql as Yx}from"kysely";async function CE(_){await Yx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Yx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Yx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function KE(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Mx={};C(Mx,{up:()=>TE,down:()=>zE});import{sql as G}from"kysely";var NE={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},mE={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Hx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function em(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function dm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,NE],[G`'commerce-discovery_' || organization_id`,mE]])for(let T of["title","description"]){let{from:z,to:E}=em(m[T],x);await G`
48
53
  UPDATE connections
49
54
  SET ${G.ref(T)} = ${E}
50
55
  WHERE id = ${K}
@@ -58,7 +63,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
58
63
  RETURN NULL;
59
64
  END;
60
65
  $fn$ LANGUAGE plpgsql IMMUTABLE;
61
- `.execute(_);let{from:u,to:N}=rm(Dx.label,x);await G`
66
+ `.execute(_);let{from:u,to:N}=em(Hx.label,x);await G`
62
67
  WITH agents AS (
63
68
  SELECT id, deco_score_try_jsonb(metadata) AS m
64
69
  FROM connections
@@ -73,7 +78,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
73
78
  (
74
79
  SELECT jsonb_agg(
75
80
  CASE
76
- WHEN v ->> 'toolName' = ${Dx.toolName}
81
+ WHEN v ->> 'toolName' = ${Hx.toolName}
77
82
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
78
83
  THEN v || jsonb_build_object('label', ${N}::text)
79
84
  ELSE v
@@ -89,7 +94,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
89
94
  AND EXISTS (
90
95
  SELECT 1
91
96
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
92
- WHERE v ->> 'toolName' = ${Dx.toolName}
97
+ WHERE v ->> 'toolName' = ${Hx.toolName}
93
98
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
94
99
  )
95
100
  )
@@ -97,7 +102,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
97
102
  SET metadata = r.m::text
98
103
  FROM relabeled r
99
104
  WHERE c.id = r.id
100
- `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function CE(_){await lm(_,"up")}async function KE(_){await lm(_,"down")}var Rx={};C(Rx,{up:()=>mE,down:()=>TE,ACTIONS:()=>Mx});import{sql as T_}from"kysely";var Mx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],NE=Mx.filter((_)=>_!=="finding_resolved");async function mE(_){await em(_,Mx)}async function TE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await em(_,NE)}async function em(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Bx={};C(Bx,{up:()=>zE,down:()=>EE});import{sql as O_}from"kysely";async function zE(_){await O_`
105
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function TE(_){await dm(_,"up")}async function zE(_){await dm(_,"down")}var Bx={};C(Bx,{up:()=>$E,down:()=>UE,ACTIONS:()=>Rx});import{sql as T_}from"kysely";var Rx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],EE=Rx.filter((_)=>_!=="finding_resolved");async function $E(_){await bm(_,Rx)}async function UE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await bm(_,EE)}async function bm(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Gx={};C(Gx,{up:()=>PE,down:()=>JE});import{sql as O_}from"kysely";async function PE(_){await O_`
101
106
  ALTER TABLE org_jira_column_automations
102
107
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
103
108
  CONSTRAINT chk_org_jira_column_automations_from_kind
@@ -108,7 +113,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
108
113
  ALTER TABLE org_jira_column_automations
109
114
  DROP CONSTRAINT org_jira_column_automations_pkey,
110
115
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
111
- `.execute(_)}async function EE(_){await O_`
116
+ `.execute(_)}async function JE(_){await O_`
112
117
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
113
118
  `.execute(_),await O_`
114
119
  ALTER TABLE org_jira_column_automations
@@ -117,18 +122,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
117
122
  DROP COLUMN from_key,
118
123
  DROP COLUMN from_statuses,
119
124
  DROP COLUMN from_kind
120
- `.execute(_)}var Gx={};C(Gx,{up:()=>$E,down:()=>UE});import{sql as dm}from"kysely";async function $E(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function UE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Ox={};C(Ox,{up:()=>PE,down:()=>JE});async function PE(){}async function JE(){}var fx={};C(fx,{up:()=>XE,down:()=>QE});import{sql as Sx}from"kysely";async function XE(_){await Sx`
125
+ `.execute(_)}var Ox={};C(Ox,{up:()=>XE,down:()=>QE});import{sql as sm}from"kysely";async function XE(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function QE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Sx={};C(Sx,{up:()=>ZE,down:()=>WE});async function ZE(){}async function WE(){}var fx={};C(fx,{up:()=>jE,down:()=>LE});import{sql as Ax}from"kysely";async function jE(_){await Ax`
121
126
  ALTER TABLE task_board_prompts
122
127
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
123
- `.execute(_)}async function QE(_){await Sx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Sx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Ix={};C(Ix,{up:()=>ZE,down:()=>WE});import{sql as Ax}from"kysely";async function ZE(_){await Ax`
128
+ `.execute(_)}async function LE(_){await Ax`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Ax`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var yx={};C(yx,{up:()=>FE,down:()=>YE});import{sql as Ix}from"kysely";async function FE(_){await Ix`
124
129
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
125
- `.execute(_),await Ax`
130
+ `.execute(_),await Ix`
126
131
  DELETE FROM connection_aggregations
127
132
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
128
- `.execute(_),await Ax`
133
+ `.execute(_),await Ix`
129
134
  DELETE FROM connections
130
135
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
131
- `.execute(_)}async function WE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as bm}from"kysely";async function jE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(bm`audience in ('human', 'internal')`)).execute(),await bm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function LE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
136
+ `.execute(_)}async function YE(){}var Vx={};C(Vx,{up:()=>DE,down:()=>HE});import{sql as _T}from"kysely";async function DE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(_T`audience in ('human', 'internal')`)).execute(),await _T`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function HE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var wx={};C(wx,{up:()=>RE,down:()=>BE});import{sql as ME}from"kysely";async function RE(_){await ME`
132
137
  UPDATE org_fs_entry AS d
133
138
  SET deleted_at = now(),
134
139
  updated_at = now(),
@@ -147,7 +152,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
147
152
  AND c.parent = d.path
148
153
  AND c.deleted_at IS NULL
149
154
  )
150
- `.execute(_)}async function DE(){}var kx={};C(kx,{up:()=>ME,down:()=>RE,ACTIONS:()=>wx});import{sql as F}from"kysely";var wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],HE=wx.filter((_)=>_!=="sprint_changed");async function ME(_){await F`
155
+ `.execute(_)}async function BE(){}var nx={};C(nx,{up:()=>OE,down:()=>SE,ACTIONS:()=>kx});import{sql as F}from"kysely";var kx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],GE=kx.filter((_)=>_!=="sprint_changed");async function OE(_){await F`
151
156
  CREATE TABLE task_board_sprints (
152
157
  id text PRIMARY KEY,
153
158
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -173,12 +178,12 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
173
178
  CREATE INDEX idx_task_board_items_sprint
174
179
  ON task_board_items (organization_id, sprint_id)
175
180
  WHERE sprint_id IS NOT NULL
176
- `.execute(_),await sm(_,wx)}async function RE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await sm(_,HE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function sm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var nx={};C(nx,{up:()=>GE,planOrgSiteProjectLinks:()=>uT,down:()=>OE,applyOrgSiteProjectLinks:()=>CT});import{sql as J}from"kysely";var BE="migration-237",_T=1000;async function xT(_){return(await J`
181
+ `.execute(_),await xT(_,kx)}async function SE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await xT(_,GE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function xT(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var vx={};C(vx,{up:()=>fE,planOrgSiteProjectLinks:()=>KT,down:()=>IE,applyOrgSiteProjectLinks:()=>NT});import{sql as J}from"kysely";var AE="migration-237",uT=1000;async function CT(_){return(await J`
177
182
  SELECT conname FROM pg_constraint
178
183
  WHERE conrelid = 'org_sites'::regclass
179
184
  AND confrelid = 'organization'::regclass
180
185
  AND contype = 'f'
181
- `.execute(_)).rows[0]?.conname??null}async function uT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
186
+ `.execute(_)).rows[0]?.conname??null}async function KT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
182
187
  SELECT slug, organization_id FROM org_sites
183
188
  WHERE organization_id IS NOT NULL
184
189
  ORDER BY organization_id, slug
@@ -189,17 +194,17 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
189
194
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
190
195
  )
191
196
  ORDER BY organization_id, id
192
- `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function CT(_,x){let u=0;for(let N=0;N<x.length;N+=_T){let K=J.join(x.slice(N,N+_T).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
197
+ `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function NT(_,x){let u=0;for(let N=0;N<x.length;N+=uT){let K=J.join(x.slice(N,N+uT).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
193
198
  UPDATE org_sites o
194
199
  SET project_id = v.pid,
195
200
  linked_at = now(),
196
- updated_by = ${BE},
201
+ updated_by = ${AE},
197
202
  updated_at = now()
198
203
  FROM (VALUES ${K}) AS v(slug, pid)
199
204
  WHERE o.slug = v.slug
200
205
  AND o.project_id IS NULL
201
206
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
202
- `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function GE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await uT(_);await J`
207
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function fE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await KT(_);await J`
203
208
  ALTER TABLE org_sites
204
209
  ADD COLUMN project_id text NULL
205
210
  REFERENCES connections(id) ON DELETE SET NULL,
@@ -207,7 +212,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
207
212
  `.execute(_),await J`
208
213
  CREATE UNIQUE INDEX org_sites_project_id_uq
209
214
  ON org_sites (project_id) WHERE project_id IS NOT NULL
210
- `.execute(_);let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
215
+ `.execute(_);let u=await CT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
211
216
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
212
217
  `.execute(_),await J`
213
218
  ALTER TABLE org_sites
@@ -216,12 +221,12 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
216
221
  ON DELETE SET NULL NOT VALID
217
222
  `.execute(_),await J`
218
223
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
219
- `.execute(_);let N=await CT(_,x.links),K=await J`
224
+ `.execute(_);let N=await NT(_,x.links),K=await J`
220
225
  UPDATE org_sites SET linked_at = created_at
221
226
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
222
- `.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function OE(_){if((await J`
227
+ `.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function IE(_){if((await J`
223
228
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
224
- `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
229
+ `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await CT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
225
230
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
226
231
  `.execute(_),await J`
227
232
  ALTER TABLE org_sites
@@ -230,7 +235,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
230
235
  ON DELETE CASCADE
231
236
  `.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
232
237
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
233
- `.execute(_)}var vx={};C(vx,{up:()=>SE,moveRules:()=>Y,down:()=>fE});import{sql as c}from"kysely";async function SE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
238
+ `.execute(_)}var px={};C(px,{up:()=>yE,moveRules:()=>Y,down:()=>VE});import{sql as c}from"kysely";async function yE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
234
239
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
235
240
  `.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
236
241
  WITH moved AS (
@@ -258,7 +263,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
258
263
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
259
264
  now()
260
265
  FROM moved
261
- `.execute(_)}async function fE(){}async function Y(_,x,u,N,K){await c`
266
+ `.execute(_)}async function VE(){}async function Y(_,x,u,N,K){await c`
262
267
  DELETE FROM ${c.table(x)} AS src
263
268
  WHERE src.column_key = ${N}
264
269
  AND EXISTS (
@@ -272,7 +277,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
272
277
  id = ${u} || organization_id || '_' || ${K},
273
278
  updated_at = now()
274
279
  WHERE column_key = ${N}
275
- `.execute(_)}var px={};C(px,{up:()=>IE,down:()=>yE});import{sql as AE}from"kysely";async function IE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await AE`
280
+ `.execute(_)}var gx={};C(gx,{up:()=>kE,down:()=>nE});import{sql as wE}from"kysely";async function kE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await wE`
276
281
  WITH moved AS (
277
282
  UPDATE task_board_items AS i
278
283
  SET status = CASE prev.status
@@ -296,7 +301,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
296
301
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
297
302
  now()
298
303
  FROM moved
299
- `.execute(_)}async function yE(){}var gx={};C(gx,{up:()=>wE,down:()=>kE});import{sql as VE}from"kysely";async function wE(_){await VE`
304
+ `.execute(_)}async function nE(){}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as vE}from"kysely";async function pE(_){await vE`
300
305
  WITH restored AS (
301
306
  UPDATE task_board_items AS i
302
307
  SET status = 'todo', updated_at = now()
@@ -323,7 +328,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
323
328
  jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
324
329
  now()
325
330
  FROM restored
326
- `.execute(_)}async function kE(){}var qx={};C(qx,{up:()=>nE,down:()=>vE});import{sql as L}from"kysely";async function nE(_){await L`
331
+ `.execute(_)}async function gE(){}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as L}from"kysely";async function qE(_){await L`
327
332
  ALTER TABLE automation_triggers
328
333
  ADD COLUMN column_key text,
329
334
  ADD COLUMN from_kind text,
@@ -349,7 +354,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
349
354
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
350
355
  ON task_board_activity (occurred_at)
351
356
  WHERE action = 'status_changed'
352
- `.execute(_)}async function vE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
357
+ `.execute(_)}async function iE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
353
358
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
354
359
  CHECK (type IN ('cron', 'event', 'webhook'))
355
360
  `.execute(_),await L`
@@ -357,11 +362,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
357
362
  DROP COLUMN IF EXISTS column_key,
358
363
  DROP COLUMN IF EXISTS from_kind,
359
364
  DROP COLUMN IF EXISTS from_statuses
360
- `.execute(_)}var ix={};C(ix,{up:()=>iE,down:()=>cE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var NT=64,pE=new Set(["new","edit","settings","apps","projects","connections"]);function gE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function qE(_,x){let u=gE(_??"").slice(0,NT).replace(/-+$/,"");return u.length>=2&&!pE.has(u)?u:x}function KT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,NT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
365
+ `.execute(_)}var cx={};C(cx,{up:()=>oE,down:()=>aE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var TT=64,cE=new Set(["new","edit","settings","apps","projects","connections"]);function hE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function tE(_,x){let u=hE(_??"").slice(0,TT).replace(/-+$/,"");return u.length>=2&&!cE.has(u)?u:x}function mT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,TT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
361
366
  SELECT id, organization_id, title, connection_type, url_slug
362
367
  FROM connections
363
368
  ORDER BY organization_id, created_at, id
364
- `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=qE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(KT(E,$)))$++;let P=KT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
369
+ `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=tE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(mT(E,$)))$++;let P=mT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
365
370
  UPDATE connections c
366
371
  SET url_slug = v.slug
367
372
  FROM unnest(
@@ -369,7 +374,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
369
374
  ${D.val(z.map((E)=>E.slug))}::text[]
370
375
  ) AS v(id, slug)
371
376
  WHERE c.id = v.id AND c.url_slug IS NULL
372
- `.execute(_)}}async function iE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
377
+ `.execute(_)}}async function oE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
373
378
  CREATE TABLE connection_slug_aliases (
374
379
  organization_id text NOT NULL,
375
380
  slug text NOT NULL,
@@ -383,18 +388,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
383
388
  `.execute(_),await S_(_),await D`
384
389
  CREATE UNIQUE INDEX idx_connections_org_url_slug
385
390
  ON connections (organization_id, url_slug)
386
- `.execute(_)}async function cE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var cx={};C(cx,{up:()=>hE,down:()=>tE});async function hE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function tE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var hx={};C(hx,{up:()=>oE,down:()=>aE});async function oE(_){await S_(_)}async function aE(){}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as f_}from"kysely";async function rE(_){await f_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await f_`
391
+ `.execute(_)}async function aE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var hx={};C(hx,{up:()=>rE,down:()=>lE});async function rE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function lE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var tx={};C(tx,{up:()=>eE,down:()=>dE});async function eE(_){await S_(_)}async function dE(){}var ox={};C(ox,{up:()=>bE,down:()=>sE});import{sql as A_}from"kysely";async function bE(_){await A_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await A_`
387
392
  CREATE UNIQUE INDEX idx_automations_org_system_key
388
393
  ON automations (organization_id, system_key)
389
394
  WHERE system_key IS NOT NULL
390
- `.execute(_)}async function lE(_){await f_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await f_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as z_}from"kysely";async function eE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
395
+ `.execute(_)}async function sE(_){await A_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await A_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var ax={};C(ax,{up:()=>_0,down:()=>x0});import{sql as z_}from"kysely";async function _0(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
391
396
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
392
397
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
393
398
  'board_pr_ready'))
394
- `.execute(_)}async function dE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
399
+ `.execute(_)}async function x0(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
395
400
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
396
401
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
397
- `.execute(_)}var ax={};C(ax,{up:()=>bE,down:()=>x0});import{sql as H}from"kysely";async function bE(_){let{rows:x}=await H`
402
+ `.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>N0});import{sql as H}from"kysely";async function u0(_){let{rows:x}=await H`
398
403
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
399
404
  WHERE conname = 'chk_trigger_type'
400
405
  AND conrelid = 'automation_triggers'::regclass
@@ -421,8 +426,8 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
421
426
  INSERT INTO automations
422
427
  (id, organization_id, name, active, created_by, messages, models,
423
428
  virtual_mcp_id)
424
- VALUES (${T}, ${K.organization_id}, ${sE(K)}, true,
425
- ${K.created_by}, ${JSON.stringify(_0(K.prompt))},
429
+ VALUES (${T}, ${K.organization_id}, ${C0(K)}, true,
430
+ ${K.created_by}, ${JSON.stringify(K0(K.prompt))},
426
431
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
427
432
  ON CONFLICT (id) DO NOTHING
428
433
  `.execute(_),await H`
@@ -431,11 +436,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
431
436
  VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
432
437
  ${K.from_kind}, ${K.from_statuses})
433
438
  ON CONFLICT (id) DO NOTHING
434
- `.execute(_)}}function sE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function _0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
435
- `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function x0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
439
+ `.execute(_)}}function C0(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function K0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
440
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function N0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
436
441
  ALTER TABLE automation_triggers
437
442
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
438
- `.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});import{sql as E_}from"kysely";async function u0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function C0(_){await E_`
443
+ `.execute(_)}var lx={};C(lx,{up:()=>m0,down:()=>T0});import{sql as E_}from"kysely";async function m0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function T0(_){await E_`
439
444
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
440
445
  id text PRIMARY KEY,
441
446
  organization_id text NOT NULL,
@@ -462,30 +467,30 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
462
467
  updated_at timestamptz NOT NULL DEFAULT now(),
463
468
  PRIMARY KEY (organization_id, jira_status, from_key)
464
469
  )
465
- `.execute(_)}var lx={};C(lx,{up:()=>K0,down:()=>N0});import{sql as A_}from"kysely";async function K0(_){await A_`
470
+ `.execute(_)}var ex={};C(ex,{up:()=>z0,down:()=>E0});import{sql as f_}from"kysely";async function z0(_){await f_`
466
471
  ALTER TABLE task_board_items
467
472
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
468
473
  REFERENCES connections(id) ON DELETE SET NULL
469
- `.execute(_),await A_`
474
+ `.execute(_),await f_`
470
475
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
471
476
  ON task_board_items (virtual_mcp_id)
472
477
  WHERE virtual_mcp_id IS NOT NULL
473
- `.execute(_)}async function N0(_){await A_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await A_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var ex={};C(ex,{up:()=>m0,down:()=>T0});async function m0(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function T0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var dx={};C(dx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function E0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var bx={};C(bx,{up:()=>$0,down:()=>U0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function mT(_){let{rows:x}=await r`
478
+ `.execute(_)}async function E0(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var dx={};C(dx,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.createTable("github_copilot_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function U0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var bx={};C(bx,{up:()=>P0,down:()=>J0});async function P0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function J0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var sx={};C(sx,{up:()=>X0,down:()=>Q0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function zT(_){let{rows:x}=await r`
474
479
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
475
480
  WHERE conname = 'chk_trigger_type'
476
481
  AND conrelid = 'automation_triggers'::regclass
477
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
482
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function ET(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
478
483
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
479
484
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
480
- `.execute(_)}async function $0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function U0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>P0,down:()=>J0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function zT(_){let{rows:x}=await l`
485
+ `.execute(_)}async function X0(_){let x=await zT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await ET(_,x)}async function Q0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await zT(_);for(let u of I_)x.delete(u);await ET(_,x)}var _u={};C(_u,{up:()=>Z0,down:()=>W0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function $T(_){let{rows:x}=await l`
481
486
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
482
487
  WHERE conname = 'chk_trigger_type'
483
488
  AND conrelid = 'automation_triggers'::regclass
484
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function ET(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
489
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function UT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
485
490
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
486
491
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
487
- `.execute(_)}async function P0(_){let x=await zT(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await ET(_,x)}async function J0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await zT(_);for(let u of y_)x.delete(u);await ET(_,x)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as X0}from"kysely";async function Q0(_){await X0`ALTER TABLE organization_settings
488
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var xu={};C(xu,{up:()=>W0,down:()=>j0});import{sql as $T}from"kysely";async function W0(_){await $T`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function j0(_){await $T`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var uu={};C(uu,{up:()=>L0,down:()=>F0});import{sql as O}from"kysely";async function L0(_){await O`
492
+ `.execute(_)}async function Z0(_){let x=await $T(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await UT(_,x)}async function W0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await $T(_);for(let u of y_)x.delete(u);await UT(_,x)}var xu={};C(xu,{up:()=>L0,down:()=>F0});import{sql as j0}from"kysely";async function L0(_){await j0`ALTER TABLE organization_settings
493
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function F0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var uu={};C(uu,{up:()=>Y0,down:()=>D0});import{sql as PT}from"kysely";async function Y0(_){await PT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function D0(_){await PT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Cu={};C(Cu,{up:()=>H0,down:()=>M0});import{sql as O}from"kysely";async function H0(_){await O`
489
494
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
490
495
  RETURNS jsonb AS $fn$
491
496
  BEGIN
@@ -559,7 +564,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
559
564
  || '/' ||
560
565
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
561
566
  ) = lower(p.path)
562
- `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function F0(_){await O`
567
+ `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function M0(_){await O`
563
568
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
564
569
  RETURNS jsonb AS $fn$
565
570
  BEGIN
@@ -586,17 +591,17 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
586
591
  )::text
587
592
  WHERE a.id = 'commerce-discovery_' || a.organization_id
588
593
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
589
- `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});import{sql as Cu}from"kysely";async function Y0(_){await Cu`ALTER TABLE git_provider_accounts
594
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Nu={};C(Nu,{up:()=>R0,down:()=>B0});import{sql as Ku}from"kysely";async function R0(_){await Ku`ALTER TABLE git_provider_accounts
590
595
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
591
596
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
592
597
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
593
598
  ADD CONSTRAINT git_provider_accounts_cli_check
594
599
  CHECK (auth_kind <> 'github_cli' OR
595
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function D0(_){await Cu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Cu`ALTER TABLE git_provider_accounts
600
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function B0(_){await Ku`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Ku`ALTER TABLE git_provider_accounts
596
601
  DROP CONSTRAINT git_provider_accounts_cli_check,
597
602
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
598
603
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
599
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});import{sql as UT}from"kysely";async function H0(_){await UT`
604
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var mu={};C(mu,{up:()=>G0,down:()=>O0});import{sql as JT}from"kysely";async function G0(_){await JT`
600
605
  INSERT INTO "organization" (id, name, slug, "createdAt")
601
606
  SELECT
602
607
  'org_user_fs',
@@ -610,9 +615,9 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
610
615
  END,
611
616
  now()
612
617
  ON CONFLICT (id) DO NOTHING
613
- `.execute(_)}async function M0(_){await UT`
618
+ `.execute(_)}async function O0(_){await JT`
614
619
  DELETE FROM "organization" WHERE id = 'org_user_fs'
615
- `.execute(_)}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});async function G0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function O0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var zu={};C(zu,{up:()=>f0,down:()=>A0});import{sql as $_}from"kysely";var S0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function PT(_,x){for(let{table:u,column:N}of S0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function f0(_){await PT(_,["github","gitlab","bitbucket"])}async function A0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await PT(_,["github","gitlab"])}var Eu={};C(Eu,{up:()=>I0,down:()=>y0});import{sql as V_}from"kysely";async function I0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function y0(_){await _.schema.dropTable("experiments").execute()}var $u={};C($u,{up:()=>w0,down:()=>k0});import{sql as V0}from"kysely";async function w0(_){await V0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function k0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0,ACTIONS:()=>Uu});import{sql as U_}from"kysely";var Uu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],n0=Uu.filter((_)=>_!=="duplicate_reported");async function v0(_){await JT(_,Uu)}async function p0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await JT(_,n0)}async function JT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Ju={};C(Ju,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function q0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function c0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await h0`
620
+ `.execute(_)}var Tu={};C(Tu,{up:()=>S0,down:()=>A0});async function S0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function A0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var zu={};C(zu,{up:()=>f0,down:()=>I0});async function f0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function I0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var Eu={};C(Eu,{up:()=>V0,down:()=>w0});import{sql as $_}from"kysely";var y0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function XT(_,x){for(let{table:u,column:N}of y0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function V0(_){await XT(_,["github","gitlab","bitbucket"])}async function w0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await XT(_,["github","gitlab"])}var $u={};C($u,{up:()=>k0,down:()=>n0});import{sql as V_}from"kysely";async function k0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function n0(_){await _.schema.dropTable("experiments").execute()}var Uu={};C(Uu,{up:()=>p0,down:()=>g0});import{sql as v0}from"kysely";async function p0(_){await v0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function g0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Ju={};C(Ju,{up:()=>i0,down:()=>c0,ACTIONS:()=>Pu});import{sql as U_}from"kysely";var Pu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],q0=Pu.filter((_)=>_!=="duplicate_reported");async function i0(_){await QT(_,Pu)}async function c0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await QT(_,q0)}async function QT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Xu={};C(Xu,{up:()=>h0,down:()=>t0});async function h0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function t0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Qu={};C(Qu,{up:()=>o0,down:()=>a0});async function o0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function a0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Zu={};C(Zu,{up:()=>l0,down:()=>e0});import{sql as r0}from"kysely";async function l0(_){await r0`
616
621
  CREATE TABLE github_connect_flows (
617
622
  id text PRIMARY KEY,
618
623
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -622,7 +627,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
622
627
  );
623
628
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
624
629
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
625
- `.execute(_)}async function o0(_){await _.schema.dropTable("github_connect_flows").execute()}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function r0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as w_}from"kysely";async function l0(_){await w_`
630
+ `.execute(_)}async function e0(_){await _.schema.dropTable("github_connect_flows").execute()}var Wu={};C(Wu,{up:()=>d0,down:()=>b0});async function d0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function b0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var ju={};C(ju,{up:()=>s0,down:()=>_$});import{sql as w_}from"kysely";async function s0(_){await w_`
626
631
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
627
632
  DECLARE
628
633
  metadata_json jsonb;
@@ -678,19 +683,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
678
683
  FROM repositories r WHERE s.repository_id IS NULL
679
684
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
680
685
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
681
- `.execute(_)}async function e0(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ju={};C(ju,{up:()=>d0,down:()=>b0});import{sql as V}from"kysely";async function d0(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function b0(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Lu={};C(Lu,{up:()=>s0,down:()=>_$});import{sql as XT}from"kysely";async function s0(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute()}async function _$(_){await _.schema.dropTable("organization_settings").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function u$(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function K$(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function m$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as T$}from"kysely";async function z$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",T$`text`).execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Mu={};C(Mu,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function U$(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Ru={};C(Ru,{up:()=>P$,down:()=>J$});import{sql as P_}from"kysely";async function P$(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function J$(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function Z$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(X$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Gu={};C(Gu,{up:()=>W$,down:()=>j$});import{sql as k_}from"kysely";async function W$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await k_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function j$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Ou={};C(Ou,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function F$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Su={};C(Su,{up:()=>Y$,down:()=>D$});import{sql as n_}from"kysely";async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
686
+ `.execute(_)}async function _$(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Lu={};C(Lu,{up:()=>x$,down:()=>u$});import{sql as V}from"kysely";async function x$(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function u$(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var Fu={};C(Fu,{up:()=>C$,down:()=>K$});import{sql as ZT}from"kysely";async function C$(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(ZT`CURRENT_TIMESTAMP`)).execute()}async function K$(_){await _.schema.dropTable("organization_settings").execute()}var Yu={};C(Yu,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function m$(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Du={};C(Du,{up:()=>T$,down:()=>z$});async function T$(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function z$(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Hu={};C(Hu,{up:()=>E$,down:()=>$$});async function E$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function $$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Mu={};C(Mu,{up:()=>P$,down:()=>J$});import{sql as U$}from"kysely";async function P$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",U$`text`).execute()}async function J$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Ru={};C(Ru,{up:()=>X$,down:()=>Q$});async function X$(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function Q$(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var Bu={};C(Bu,{up:()=>Z$,down:()=>W$});import{sql as P_}from"kysely";async function Z$(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(P_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function W$(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var Gu={};C(Gu,{up:()=>L$,down:()=>F$});import{sql as j$}from"kysely";async function L$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function F$(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(j$`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Ou={};C(Ou,{up:()=>Y$,down:()=>D$});import{sql as k_}from"kysely";async function Y$(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(k_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await k_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function D$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Su={};C(Su,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function M$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});import{sql as n_}from"kysely";async function R$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
682
687
  UPDATE gateways
683
688
  SET tool_selection_mode = CASE
684
689
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
685
690
  ELSE 'inclusion'
686
691
  END
687
- `.execute(_),await n_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function D$(_){await n_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await n_`
692
+ `.execute(_),await n_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function B$(_){await n_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await n_`
688
693
  UPDATE gateways
689
694
  SET tool_selection_strategy = CASE
690
695
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
691
696
  ELSE NULL
692
697
  END
693
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){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 M$(_){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 Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function B$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Iu={};C(Iu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function O$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var yu={};C(yu,{up:()=>S$,down:()=>f$});async function S$(_){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 f$(_){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 Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as A$}from"kysely";async function I$(_){await A$`
698
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function O$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Iu={};C(Iu,{up:()=>S$,down:()=>A$});async function S$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function A$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var yu={};C(yu,{up:()=>f$,down:()=>I$});async function f$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function I$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Vu={};C(Vu,{up:()=>y$,down:()=>V$});async function y$(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function V$(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var wu={};C(wu,{up:()=>k$,down:()=>n$});import{sql as w$}from"kysely";async function k$(_){await w$`
694
699
  DELETE FROM downstream_tokens
695
700
  WHERE id NOT IN (
696
701
  SELECT id FROM (
@@ -700,7 +705,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
700
705
  ) ranked
701
706
  WHERE rn = 1
702
707
  )
703
- `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function y$(_){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 wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function w$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as QT}from"kysely";async function k$(_){await QT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function n$(_){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 nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function p$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var vu={};C(vu,{up:()=>g$,down:()=>q$});import{sql as v_}from"kysely";async function g$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function q$(_){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 pu={};C(pu,{up:()=>i$,down:()=>c$});async function i$(_){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 c$(_){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 gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){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 t$(_){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 qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as M}from"kysely";async function o$(_){await M`
708
+ `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function n$(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var ku={};C(ku,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function p$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var nu={};C(nu,{up:()=>g$,down:()=>q$});import{sql as WT}from"kysely";async function g$(_){await WT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function q$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await WT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var vu={};C(vu,{up:()=>i$,down:()=>c$});async function i$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function c$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var pu={};C(pu,{up:()=>h$,down:()=>t$});import{sql as v_}from"kysely";async function h$(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function t$(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var gu={};C(gu,{up:()=>o$,down:()=>a$});async function o$(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function a$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var qu={};C(qu,{up:()=>r$,down:()=>l$});async function r$(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function l$(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var iu={};C(iu,{up:()=>e$,down:()=>d$});import{sql as M}from"kysely";async function e$(_){await M`
704
709
  INSERT INTO connections (
705
710
  id,
706
711
  organization_id,
@@ -747,7 +752,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
747
752
  created_at,
748
753
  updated_at
749
754
  FROM virtual_mcps
750
- `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function a$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
755
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function d$(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
751
756
  INSERT INTO virtual_mcps (
752
757
  id, organization_id, title, description, icon, status,
753
758
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -757,7 +762,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
757
762
  created_at, updated_at, created_by, NULL, 'inclusion'
758
763
  FROM connections
759
764
  WHERE connection_type = 'VIRTUAL'
760
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var iu={};C(iu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 cu={};C(cu,{up:()=>e$,down:()=>d$});import{sql as w}from"kysely";async function e$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
765
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await M`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var cu={};C(cu,{up:()=>b$,down:()=>s$});async function b$(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function s$(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var hu={};C(hu,{up:()=>_U,down:()=>xU});import{sql as w}from"kysely";async function _U(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
761
766
  INSERT INTO connection_aggregations_new (
762
767
  id, parent_connection_id, child_connection_id,
763
768
  selected_tools, selected_resources, selected_prompts, created_at
@@ -766,7 +771,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
766
771
  id, parent_connection_id, child_connection_id,
767
772
  selected_tools, selected_resources, selected_prompts, created_at
768
773
  FROM connection_aggregations
769
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function d$(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
774
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function xU(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await w`
770
775
  INSERT INTO connection_aggregations_new (
771
776
  id, parent_connection_id, child_connection_id,
772
777
  selected_tools, selected_resources, selected_prompts, created_at
@@ -775,7 +780,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
775
780
  id, parent_connection_id, child_connection_id,
776
781
  selected_tools, selected_resources, selected_prompts, created_at
777
782
  FROM connection_aggregations
778
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var tu={};C(tu,{up:()=>b$,down:()=>s$});import{sql as hu}from"kysely";async function b$(_){await hu`
783
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var ou={};C(ou,{up:()=>uU,down:()=>CU});import{sql as tu}from"kysely";async function uU(_){await tu`
779
784
  UPDATE connections
780
785
  SET connection_url = connection_url || '/management',
781
786
  tools = NULL,
@@ -783,42 +788,42 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
783
788
  WHERE connection_url LIKE '%/mcp'
784
789
  AND connection_url NOT LIKE '%/mcp/management'
785
790
  AND app_name = '@deco/management-mcp'
786
- `.execute(_),await hu`
791
+ `.execute(_),await tu`
787
792
  UPDATE connections
788
793
  SET tools = NULL,
789
794
  updated_at = CURRENT_TIMESTAMP
790
795
  WHERE app_name = '@deco/management-mcp'
791
796
  AND tools IS NOT NULL
792
- `.execute(_)}async function s$(_){await hu`
797
+ `.execute(_)}async function CU(_){await tu`
793
798
  UPDATE connections
794
799
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
795
800
  updated_at = CURRENT_TIMESTAMP
796
801
  WHERE connection_url LIKE '%/mcp/management'
797
802
  AND app_name = '@deco/management-mcp'
798
- `.execute(_)}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as ou}from"kysely";async function _U(_){await ou`
803
+ `.execute(_)}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{sql as au}from"kysely";async function KU(_){await au`
799
804
  UPDATE connections
800
805
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
801
806
  tools = NULL,
802
807
  updated_at = CURRENT_TIMESTAMP
803
808
  WHERE connection_url LIKE '%/mcp/management'
804
809
  AND app_name = '@deco/management-mcp'
805
- `.execute(_),await ou`
810
+ `.execute(_),await au`
806
811
  UPDATE connections
807
812
  SET tools = NULL,
808
813
  updated_at = CURRENT_TIMESTAMP
809
814
  WHERE connection_url LIKE '%/mcp/self'
810
815
  AND app_name = '@deco/management-mcp'
811
816
  AND tools IS NOT NULL
812
- `.execute(_)}async function xU(_){await ou`
817
+ `.execute(_)}async function NU(_){await au`
813
818
  UPDATE connections
814
819
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
815
820
  updated_at = CURRENT_TIMESTAMP
816
821
  WHERE connection_url LIKE '%/mcp/self'
817
822
  AND app_name = '@deco/management-mcp'
818
- `.execute(_)}var ru={};C(ru,{up:()=>uU,down:()=>CU});async function uU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function CU(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var lu={};C(lu,{up:()=>KU,down:()=>NU});import{sql as ZT}from"kysely";async function KU(_){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(ZT`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(ZT`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 NU(_){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 eu={};C(eu,{up:()=>mU,down:()=>TU});import{sql as J_}from"kysely";async function mU(_){await J_`
823
+ `.execute(_)}var lu={};C(lu,{up:()=>mU,down:()=>TU});async function mU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function TU(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var eu={};C(eu,{up:()=>zU,down:()=>EU});import{sql as jT}from"kysely";async function zU(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(jT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(jT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function EU(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var du={};C(du,{up:()=>$U,down:()=>UU});import{sql as J_}from"kysely";async function $U(_){await J_`
819
824
  ALTER TABLE connection_aggregations
820
825
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
821
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function TU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
826
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function UU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
822
827
  INSERT INTO connection_aggregations_new (
823
828
  id, parent_connection_id, child_connection_id,
824
829
  selected_tools, selected_resources, selected_prompts, created_at
@@ -827,42 +832,42 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
827
832
  id, parent_connection_id, child_connection_id,
828
833
  selected_tools, selected_resources, selected_prompts, created_at
829
834
  FROM connection_aggregations
830
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var du={};C(du,{up:()=>PU,down:()=>JU});import{webcrypto as jT}from"crypto";var WT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var zU=128,h,e;function EU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*zU),jT.getRandomValues(h),e=0;else if(e+_>h.length)jT.getRandomValues(h),e=0;e+=_}function d(_=21){EU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=WT[h[u]&63];return x}var $U="org-admin",UU="Organization Admin";async function PU(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:$U,name:UU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function JU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var bu={};C(bu,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function QU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var su={};C(su,{up:()=>ZU,down:()=>WU});async function ZU(_){}async function WU(_){}var _C={};C(_C,{up:()=>jU,down:()=>LU});async function jU(_){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 LU(_){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 xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as LT}from"kysely";async function FU(_){await LT`
835
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var bu={};C(bu,{up:()=>ZU,down:()=>WU});import{webcrypto as FT}from"crypto";var LT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var PU=128,h,e;function JU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*PU),FT.getRandomValues(h),e=0;else if(e+_>h.length)FT.getRandomValues(h),e=0;e+=_}function d(_=21){JU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=LT[h[u]&63];return x}var XU="org-admin",QU="Organization Admin";async function ZU(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:XU,name:QU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function WU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var su={};C(su,{up:()=>jU,down:()=>LU});async function jU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function LU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var _C={};C(_C,{up:()=>FU,down:()=>YU});async function FU(_){}async function YU(_){}var xC={};C(xC,{up:()=>DU,down:()=>HU});async function DU(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function HU(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var uC={};C(uC,{up:()=>MU,down:()=>RU});import{sql as YT}from"kysely";async function MU(_){await YT`
831
836
  UPDATE connections
832
837
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
833
838
  tools = NULL,
834
839
  updated_at = CURRENT_TIMESTAMP
835
840
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
836
841
  AND app_name = 'deco-registry'
837
- `.execute(_)}async function YU(_){await LT`
842
+ `.execute(_)}async function RU(_){await YT`
838
843
  UPDATE connections
839
844
  SET connection_url = 'https://api.decocms.com/mcp/registry',
840
845
  updated_at = CURRENT_TIMESTAMP
841
846
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
842
847
  AND app_name = 'deco-registry'
843
- `.execute(_)}var uC={};C(uC,{up:()=>HU,down:()=>MU});import{sql as DU}from"kysely";async function HU(_){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(DU`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 MU(_){await _.schema.dropTable("ai_provider_keys").execute()}var CC={};C(CC,{up:()=>BU,down:()=>GU});import{sql as RU}from"kysely";async function BU(_){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(RU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function GU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var KC={};C(KC,{up:()=>OU,down:()=>SU});import{sql as p}from"kysely";async function OU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function SU(_){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 NC={};C(NC,{up:()=>fU,down:()=>AU});async function fU(_){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 AU(_){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 mC={};C(mC,{up:()=>IU,down:()=>yU});async function IU(_){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 yU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var TC={};C(TC,{up:()=>VU,down:()=>wU});import{sql as FT}from"kysely";async function VU(_){await FT`
848
+ `.execute(_)}var CC={};C(CC,{up:()=>GU,down:()=>OU});import{sql as BU}from"kysely";async function GU(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(BU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function OU(_){await _.schema.dropTable("ai_provider_keys").execute()}var KC={};C(KC,{up:()=>AU,down:()=>fU});import{sql as SU}from"kysely";async function AU(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(SU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function fU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var NC={};C(NC,{up:()=>IU,down:()=>yU});import{sql as p}from"kysely";async function IU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function yU(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var mC={};C(mC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function wU(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var TC={};C(TC,{up:()=>kU,down:()=>nU});async function kU(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function nU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var zC={};C(zC,{up:()=>vU,down:()=>pU});import{sql as DT}from"kysely";async function vU(_){await DT`
844
849
  UPDATE connections
845
850
  SET title = 'CMS MCP',
846
851
  tools = NULL,
847
852
  updated_at = CURRENT_TIMESTAMP
848
853
  WHERE app_name = '@deco/management-mcp'
849
- `.execute(_)}async function wU(_){await FT`
854
+ `.execute(_)}async function pU(_){await DT`
850
855
  UPDATE connections
851
856
  SET title = 'Mesh MCP',
852
857
  updated_at = CURRENT_TIMESTAMP
853
858
  WHERE app_name = '@deco/management-mcp'
854
- `.execute(_)}var zC={};C(zC,{up:()=>kU,down:()=>nU});import{sql as YT}from"kysely";async function kU(_){await YT`
859
+ `.execute(_)}var EC={};C(EC,{up:()=>gU,down:()=>qU});import{sql as HT}from"kysely";async function gU(_){await HT`
855
860
  UPDATE connections
856
861
  SET title = 'Deco CMS',
857
862
  tools = NULL,
858
863
  updated_at = CURRENT_TIMESTAMP
859
864
  WHERE app_name = '@deco/management-mcp'
860
- `.execute(_)}async function nU(_){await YT`
865
+ `.execute(_)}async function qU(_){await HT`
861
866
  UPDATE connections
862
867
  SET title = 'CMS MCP',
863
868
  updated_at = CURRENT_TIMESTAMP
864
869
  WHERE app_name = '@deco/management-mcp'
865
- `.execute(_)}var EC={};C(EC,{up:()=>vU,down:()=>pU});async function vU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function pU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var $C={};C($C,{up:()=>gU,down:()=>qU});async function gU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function qU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var PC={};C(PC,{up:()=>iU,down:()=>cU});import{sql as UC}from"kysely";async function iU(_){await UC`
870
+ `.execute(_)}var $C={};C($C,{up:()=>iU,down:()=>cU});async function iU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function cU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var UC={};C(UC,{up:()=>hU,down:()=>tU});async function hU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function tU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var JC={};C(JC,{up:()=>oU,down:()=>aU});import{sql as PC}from"kysely";async function oU(_){await PC`
866
871
  UPDATE organization_settings
867
872
  SET enabled_plugins = (
868
873
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -871,7 +876,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
871
876
  )
872
877
  WHERE enabled_plugins IS NOT NULL
873
878
  AND enabled_plugins LIKE '%object-storage%'
874
- `.execute(_),await UC`
879
+ `.execute(_),await PC`
875
880
  UPDATE projects
876
881
  SET enabled_plugins = (
877
882
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -880,28 +885,28 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
880
885
  )
881
886
  WHERE enabled_plugins IS NOT NULL
882
887
  AND enabled_plugins LIKE '%object-storage%'
883
- `.execute(_),await UC`
888
+ `.execute(_),await PC`
884
889
  DELETE FROM project_plugin_configs
885
890
  WHERE plugin_id = 'object-storage'
886
- `.execute(_)}async function cU(_){}var JC={};C(JC,{up:()=>hU,down:()=>tU});import{sql as DT}from"kysely";async function hU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await DT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function tU(_){await DT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var QC={};C(QC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await XC`
891
+ `.execute(_)}async function aU(_){}var XC={};C(XC,{up:()=>rU,down:()=>lU});import{sql as MT}from"kysely";async function rU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await MT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function lU(_){await MT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ZC={};C(ZC,{up:()=>eU,down:()=>dU});import{sql as QC}from"kysely";async function eU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await QC`
887
892
  ALTER TABLE connections
888
893
  ADD CONSTRAINT chk_connections_subtype
889
894
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
890
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await XC`
895
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await QC`
891
896
  UPDATE connections
892
897
  SET subtype = 'agent'
893
898
  WHERE connection_type = 'VIRTUAL'
894
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function aU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await XC`
899
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function dU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await QC`
895
900
  ALTER TABLE connections
896
901
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
897
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ZC={};C(ZC,{up:()=>lU,down:()=>eU});import{sql as rU}from"kysely";async function lU(_){await rU`
902
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var WC={};C(WC,{up:()=>sU,down:()=>_P});import{sql as bU}from"kysely";async function sU(_){await bU`
898
903
  DELETE FROM connections
899
904
  WHERE connection_type = 'VIRTUAL'
900
905
  AND subtype = 'project'
901
906
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
902
- `.execute(_)}async function eU(_){}var WC={};C(WC,{up:()=>bU,down:()=>sU});import{sql as dU}from"kysely";async function bU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await dU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function sU(_){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 LC={};C(LC,{up:()=>_P,down:()=>xP});import{sql as jC}from"kysely";async function _P(_){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(jC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(jC`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(jC`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 xP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var FC={};C(FC,{up:()=>uP,down:()=>CP});async function uP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var YC={};C(YC,{up:()=>KP,down:()=>NP});async function KP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function NP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var HC={};C(HC,{up:()=>TP,down:()=>zP});import{sql as HT}from"kysely";function DC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function mP(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return DC(N)}catch{return DC(_.connection_url)}if(_.title)return DC(_.title);return _.id}async function TP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await HT`
907
+ `.execute(_)}async function _P(_){}var jC={};C(jC,{up:()=>uP,down:()=>CP});import{sql as xP}from"kysely";async function uP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await xP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function CP(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var FC={};C(FC,{up:()=>KP,down:()=>NP});import{sql as LC}from"kysely";async function KP(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(LC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(LC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(LC`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function NP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var YC={};C(YC,{up:()=>mP,down:()=>TP});async function mP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function TP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var DC={};C(DC,{up:()=>zP,down:()=>EP});async function zP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function EP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var MC={};C(MC,{up:()=>UP,down:()=>PP});import{sql as RT}from"kysely";function HC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function $P(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return HC(N)}catch{return HC(_.connection_url)}if(_.title)return HC(_.title);return _.id}async function UP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await RT`
903
908
  SELECT id, app_name, connection_url, title FROM connections
904
- `.execute(_);for(let u of x.rows){let N=mP(u);await HT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function zP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as X_}from"kysely";async function EP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function $P(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){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 PP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});import{sql as p_}from"kysely";async function JP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
909
+ `.execute(_);for(let u of x.rows){let N=$P(u);await RT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function PP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var RC={};C(RC,{up:()=>JP,down:()=>XP});import{sql as X_}from"kysely";async function JP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function XP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var BC={};C(BC,{up:()=>QP,down:()=>ZP});async function QP(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function ZP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var GC={};C(GC,{up:()=>WP,down:()=>jP});import{sql as p_}from"kysely";async function WP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
905
910
  UPDATE threads
906
911
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
907
912
  WHERE agent_ids IS NOT NULL
@@ -911,14 +916,14 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
911
916
  `.execute(_),await p_`
912
917
  CREATE INDEX idx_threads_virtual_mcp_id
913
918
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
914
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function XP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
919
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function jP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
915
920
  UPDATE threads
916
921
  SET agent_ids = CASE
917
922
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
918
923
  THEN jsonb_build_array(virtual_mcp_id)::text
919
924
  ELSE '[]'
920
925
  END
921
- `.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){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 ZP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var OC={};C(OC,{up:()=>WP,down:()=>jP});async function WP(_){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 jP(_){await _.schema.dropTable("kv").execute()}var SC={};C(SC,{up:()=>LP,down:()=>FP});async function LP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function FP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var fC={};C(fC,{up:()=>YP,down:()=>DP});async function YP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function DP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as S}from"kysely";async function HP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function MP(_){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 IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as b}from"kysely";async function RP(_){await b`
926
+ `.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var OC={};C(OC,{up:()=>LP,down:()=>FP});async function LP(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function FP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var SC={};C(SC,{up:()=>YP,down:()=>DP});async function YP(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function DP(_){await _.schema.dropTable("kv").execute()}var AC={};C(AC,{up:()=>HP,down:()=>MP});async function HP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function MP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var fC={};C(fC,{up:()=>RP,down:()=>BP});async function RP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function BP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var IC={};C(IC,{up:()=>GP,down:()=>OP});import{sql as S}from"kysely";async function GP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function OP(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var yC={};C(yC,{up:()=>SP,down:()=>AP});import{sql as b}from"kysely";async function SP(_){await b`
922
927
  ALTER TABLE event_subscriptions
923
928
  ALTER COLUMN enabled DROP DEFAULT
924
929
  `.execute(_),await b`
@@ -928,7 +933,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
928
933
  `.execute(_),await b`
929
934
  ALTER TABLE event_subscriptions
930
935
  ALTER COLUMN enabled SET DEFAULT true
931
- `.execute(_)}async function BP(_){await b`
936
+ `.execute(_)}async function AP(_){await b`
932
937
  ALTER TABLE event_subscriptions
933
938
  ALTER COLUMN enabled DROP DEFAULT
934
939
  `.execute(_),await b`
@@ -938,7 +943,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
938
943
  `.execute(_),await b`
939
944
  ALTER TABLE event_subscriptions
940
945
  ALTER COLUMN enabled SET DEFAULT 1
941
- `.execute(_)}var yC={};C(yC,{up:()=>GP,down:()=>OP});import{sql as MT}from"kysely";async function GP(_){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(MT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(MT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function OP(_){await _.schema.dropTable("brand_context").execute()}var VC={};C(VC,{up:()=>SP,down:()=>fP});import{sql as RT}from"kysely";async function SP(_){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(RT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RT`now()`)).execute()}async function fP(_){await _.schema.dropTable("organization_domains").execute()}var wC={};C(wC,{up:()=>VP,down:()=>wP});import{sql as BT}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),AP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function IP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>g_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(g_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(g_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(g_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function yP(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=AP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function VP(_){let x=await BT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=IP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=yP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await BT`
946
+ `.execute(_)}var VC={};C(VC,{up:()=>fP,down:()=>IP});import{sql as BT}from"kysely";async function fP(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(BT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function IP(_){await _.schema.dropTable("brand_context").execute()}var wC={};C(wC,{up:()=>yP,down:()=>VP});import{sql as GT}from"kysely";async function yP(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute()}async function VP(_){await _.schema.dropTable("organization_domains").execute()}var kC={};C(kC,{up:()=>vP,down:()=>pP});import{sql as OT}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),wP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function kP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>g_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(g_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(g_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(g_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function nP(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=wP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function vP(_){let x=await OT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=kP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=nP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await OT`
942
947
  UPDATE brand_context
943
948
  SET
944
949
  colors = ${T},
@@ -946,20 +951,20 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
946
951
  metadata = ${$},
947
952
  updated_at = NOW()
948
953
  WHERE id = ${u.id}
949
- `.execute(_)}}}async function wP(_){}var kC={};C(kC,{up:()=>nP,down:()=>vP});import{sql as kP}from"kysely";async function nP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(kP`'{}'::jsonb`)).execute()}async function vP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function gP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){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 iP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function hP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var gC={};C(gC,{up:()=>tP,down:()=>oP});async function tP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function oP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var qC={};C(qC,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function rP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var iC={};C(iC,{up:()=>eP,down:()=>dP});import{sql as GT}from"kysely";var lP=["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 eP(_){let x=await GT`
954
+ `.execute(_)}}}async function pP(_){}var nC={};C(nC,{up:()=>qP,down:()=>iP});import{sql as gP}from"kysely";async function qP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(gP`'{}'::jsonb`)).execute()}async function iP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var vC={};C(vC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function hP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var pC={};C(pC,{up:()=>tP,down:()=>oP});async function tP(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function oP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var gC={};C(gC,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function rP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var qC={};C(qC,{up:()=>lP,down:()=>eP});async function lP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function eP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var iC={};C(iC,{up:()=>dP,down:()=>bP});async function dP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function bP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var cC={};C(cC,{up:()=>_J,down:()=>xJ});import{sql as ST}from"kysely";var sP=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function _J(_){let x=await ST`
950
955
  SELECT id, permission FROM "organizationRole"
951
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...lP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await GT`
956
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...sP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await ST`
952
957
  UPDATE "organizationRole"
953
958
  SET permission = ${z}
954
959
  WHERE id = ${u.id}
955
- `.execute(_)}}async function dP(_){}var cC={};C(cC,{up:()=>bP,down:()=>sP});async function bP(_){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 sP(_){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 hC={};C(hC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function xJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var tC={};C(tC,{up:()=>uJ,down:()=>CJ});import{sql as Q_}from"kysely";async function uJ(_){await Q_`
960
+ `.execute(_)}}async function xJ(_){}var hC={};C(hC,{up:()=>uJ,down:()=>CJ});async function uJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function CJ(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var tC={};C(tC,{up:()=>KJ,down:()=>NJ});async function KJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function NJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var oC={};C(oC,{up:()=>mJ,down:()=>TJ});import{sql as Q_}from"kysely";async function mJ(_){await Q_`
956
961
  UPDATE automations
957
962
  SET virtual_mcp_id = (agent::json ->> 'id')
958
963
  WHERE virtual_mcp_id IS NULL
959
964
  `.execute(_),await Q_`
960
965
  ALTER TABLE automations
961
966
  ALTER COLUMN virtual_mcp_id SET NOT NULL
962
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function CJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
967
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function TJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
963
968
  UPDATE automations
964
969
  SET agent = json_build_object('id', virtual_mcp_id)::text
965
970
  `.execute(_),await Q_`
@@ -968,7 +973,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
968
973
  `.execute(_),await Q_`
969
974
  ALTER TABLE automations
970
975
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
971
- `.execute(_)}var aC={};C(aC,{up:()=>TJ,reshapeSimpleMode:()=>OT,inferAutomationTier:()=>ST,down:()=>zJ,__testing:()=>mJ});var KJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},NJ=["fast","smart","thinking","image","web_research"];function oC(_){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 NJ.some((N)=>(N in u))}function OT(_){if(oC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return KJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function ST(_){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((N)=>_[N]===void 0)}var mJ={isAlreadyReshapedSimpleMode:oC,isAlreadyReshapedAutomationModels:fT};async function TJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(oC(K))continue;let m=OT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(fT(K))continue;let m=ST(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function zJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var rC={};C(rC,{up:()=>EJ,down:()=>$J});import{sql as n}from"kysely";async function EJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
976
+ `.execute(_)}var rC={};C(rC,{up:()=>UJ,reshapeSimpleMode:()=>AT,inferAutomationTier:()=>fT,down:()=>PJ,__testing:()=>$J});var zJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},EJ=["fast","smart","thinking","image","web_research"];function aC(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return EJ.some((N)=>(N in u))}function AT(_){if(aC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return zJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function fT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function IT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var $J={isAlreadyReshapedSimpleMode:aC,isAlreadyReshapedAutomationModels:IT};async function UJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(aC(K))continue;let m=AT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(IT(K))continue;let m=fT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function PJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var lC={};C(lC,{up:()=>JJ,down:()=>XJ});import{sql as n}from"kysely";async function JJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await n`
972
977
  ALTER TABLE automations
973
978
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
974
979
  `.execute(_),await n`
@@ -990,19 +995,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
990
995
  AND tool_input IS NOT NULL
991
996
  )
992
997
  )
993
- `.execute(_)}async function $J(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
998
+ `.execute(_)}async function XJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
994
999
  ALTER TABLE automations
995
1000
  ALTER COLUMN virtual_mcp_id SET NOT NULL
996
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});import{sql as AT}from"kysely";var UJ=new Set(["host","docker","agent-sandbox"]);async function PJ(_){let x=await AT`
1001
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var eC={};C(eC,{up:()=>ZJ,down:()=>WJ});import{sql as yT}from"kysely";var QJ=new Set(["host","docker","agent-sandbox"]);async function ZJ(_){let x=await yT`
997
1002
  SELECT id, metadata FROM "connections"
998
1003
  WHERE connection_type = 'VIRTUAL'
999
1004
  AND metadata IS NOT NULL
1000
1005
  AND metadata LIKE '%vmMap%'
1001
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!UJ.has(y)){m=!0;continue}P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await AT`
1006
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!QJ.has(y)){m=!0;continue}P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await yT`
1002
1007
  UPDATE "connections"
1003
1008
  SET metadata = ${z}
1004
1009
  WHERE id = ${u.id}
1005
- `.execute(_)}}async function JJ(_){}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as Z_}from"kysely";async function XJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await Z_`
1010
+ `.execute(_)}}async function WJ(_){}var dC={};C(dC,{up:()=>jJ,down:()=>LJ});import{sql as Z_}from"kysely";async function jJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await Z_`
1006
1011
  CREATE INDEX async_research_jobs_active_idx
1007
1012
  ON async_research_jobs (status, last_polled_at)
1008
1013
  WHERE status IN ('pending', 'polling')
@@ -1010,7 +1015,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1010
1015
  ALTER TABLE async_research_jobs
1011
1016
  ADD CONSTRAINT chk_async_research_jobs_status
1012
1017
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
1013
- `.execute(_)}async function QJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function WJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var bC={};C(bC,{up:()=>jJ,down:()=>LJ});import{sql as s}from"kysely";async function jJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
1018
+ `.execute(_)}async function LJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var bC={};C(bC,{up:()=>FJ,down:()=>YJ});async function FJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function YJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var sC={};C(sC,{up:()=>DJ,down:()=>HJ});import{sql as s}from"kysely";async function DJ(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
1014
1019
  ALTER TABLE secrets
1015
1020
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
1016
1021
  `.execute(_),await s`
@@ -1027,7 +1032,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1027
1032
  CREATE UNIQUE INDEX idx_secrets_org_name
1028
1033
  ON secrets (organization_id, lower(name))
1029
1034
  WHERE scope = 'organization'
1030
- `.execute(_)}async function LJ(_){await _.schema.dropTable("secrets").execute()}var sC={};C(sC,{up:()=>FJ,down:()=>YJ});async function FJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as DJ}from"kysely";async function HJ(_){await DJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function MJ(_){}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as q_}from"kysely";async function RJ(_){await q_`
1035
+ `.execute(_)}async function HJ(_){await _.schema.dropTable("secrets").execute()}var _K={};C(_K,{up:()=>MJ,down:()=>RJ});async function MJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function RJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var xK={};C(xK,{up:()=>GJ,down:()=>OJ});import{sql as BJ}from"kysely";async function GJ(_){await BJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function OJ(_){}var uK={};C(uK,{up:()=>SJ,down:()=>AJ});import{sql as q_}from"kysely";async function SJ(_){await q_`
1031
1036
  ALTER TABLE sandbox_runner_state
1032
1037
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1033
1038
  `.execute(_),await q_`
@@ -1065,7 +1070,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1065
1070
  EXCEPTION WHEN undefined_table THEN
1066
1071
  NULL;
1067
1072
  END; $$
1068
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function BJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
1073
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function AJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
1069
1074
  ALTER TABLE sandbox_runner_state
1070
1075
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1071
1076
  `.execute(_),await q_`
@@ -1103,7 +1108,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1103
1108
  EXCEPTION WHEN undefined_table THEN
1104
1109
  NULL;
1105
1110
  END; $$
1106
- `.execute(_)}var uK={};C(uK,{up:()=>GJ,down:()=>OJ});import{sql as IT}from"kysely";async function GJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await IT`
1111
+ `.execute(_)}var CK={};C(CK,{up:()=>fJ,down:()=>IJ});import{sql as VT}from"kysely";async function fJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await VT`
1107
1112
  DO $$ BEGIN
1108
1113
  UPDATE virtualmcps v
1109
1114
  SET metadata = jsonb_set(
@@ -1142,7 +1147,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1142
1147
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1143
1148
  NULL;
1144
1149
  END; $$
1145
- `.execute(_)}async function OJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await IT`
1150
+ `.execute(_)}async function IJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await VT`
1146
1151
  DO $$ BEGIN
1147
1152
  UPDATE virtualmcps v
1148
1153
  SET metadata = jsonb_set(
@@ -1175,7 +1180,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1175
1180
  EXCEPTION WHEN undefined_table THEN
1176
1181
  NULL;
1177
1182
  END; $$
1178
- `.execute(_)}var CK={};C(CK,{up:()=>SJ,down:()=>fJ});import{sql as yT}from"kysely";async function SJ(_){await yT`
1183
+ `.execute(_)}var KK={};C(KK,{up:()=>yJ,down:()=>VJ});import{sql as wT}from"kysely";async function yJ(_){await wT`
1179
1184
  UPDATE connections c
1180
1185
  SET metadata = (
1181
1186
  jsonb_set(
@@ -1219,7 +1224,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1219
1224
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1220
1225
  WHERE entry ? 'vmId'
1221
1226
  );
1222
- `.execute(_),await yT`
1227
+ `.execute(_),await wT`
1223
1228
  UPDATE connections c
1224
1229
  SET metadata = (
1225
1230
  jsonb_set(
@@ -1273,10 +1278,10 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1273
1278
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1274
1279
  WHERE inner_entry ? 'runnerKind'
1275
1280
  );
1276
- `.execute(_)}async function fJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as AJ}from"kysely";async function IJ(_){await AJ`
1281
+ `.execute(_)}async function VJ(_){}var NK={};C(NK,{up:()=>kJ,down:()=>nJ});import{sql as wJ}from"kysely";async function kJ(_){await wJ`
1277
1282
  DELETE FROM ai_provider_keys
1278
1283
  WHERE provider_id IN ('claude-code', 'codex')
1279
- `.execute(_)}async function yJ(_){}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as i_}from"kysely";async function VJ(_){await i_`
1284
+ `.execute(_)}async function nJ(_){}var mK={};C(mK,{up:()=>vJ,down:()=>pJ});import{sql as i_}from"kysely";async function vJ(_){await i_`
1280
1285
  UPDATE sandbox_runner_state
1281
1286
  SET sandbox_provider_kind = 'desktop'
1282
1287
  WHERE sandbox_provider_kind = 'remote-user'
@@ -1374,13 +1379,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1374
1379
  UPDATE threads
1375
1380
  SET sandbox_provider_kind = 'desktop'
1376
1381
  WHERE sandbox_provider_kind = 'remote-user'
1377
- `.execute(_)}async function wJ(_){}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as W_}from"kysely";async function kJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function nJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var TK={};C(TK,{up:()=>vJ,down:()=>pJ});import{sql as VT}from"kysely";async function vJ(_){await VT`
1382
+ `.execute(_)}async function pJ(_){}var TK={};C(TK,{up:()=>gJ,down:()=>qJ});import{sql as W_}from"kysely";async function gJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function qJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var zK={};C(zK,{up:()=>iJ,down:()=>cJ});import{sql as kT}from"kysely";async function iJ(_){await kT`
1378
1383
  ALTER TABLE organization_domains
1379
1384
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1380
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function pJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await VT`
1385
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function cJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await kT`
1381
1386
  ALTER TABLE organization_domains
1382
1387
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1383
- `.execute(_)}var zK={};C(zK,{up:()=>gJ,down:()=>qJ});import{sql as c_}from"kysely";async function gJ(_){await c_`
1388
+ `.execute(_)}var EK={};C(EK,{up:()=>hJ,down:()=>tJ});import{sql as c_}from"kysely";async function hJ(_){await c_`
1384
1389
  UPDATE sandbox_runner_state
1385
1390
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1386
1391
  WHEN 'docker' THEN 'local-docker'
@@ -1469,19 +1474,19 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1469
1474
  WHERE c.connection_type = 'VIRTUAL'
1470
1475
  AND c.metadata IS NOT NULL
1471
1476
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1472
- `.execute(_)}async function qJ(_){}var EK={};C(EK,{up:()=>cJ,down:()=>hJ});import{sql as wT}from"kysely";var iJ=["GLOBAL_SEARCH"];async function cJ(_){let x=await wT`
1477
+ `.execute(_)}async function tJ(_){}var $K={};C($K,{up:()=>aJ,down:()=>rJ});import{sql as nT}from"kysely";var oJ=["GLOBAL_SEARCH"];async function aJ(_){let x=await nT`
1473
1478
  SELECT id, permission FROM "organizationRole"
1474
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...iJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await wT`
1479
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...oJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await nT`
1475
1480
  UPDATE "organizationRole"
1476
1481
  SET permission = ${z}
1477
1482
  WHERE id = ${u.id}
1478
- `.execute(_)}}async function hJ(_){}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});import{sql as $K}from"kysely";async function tJ(_){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($K`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($K`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await $K`
1483
+ `.execute(_)}}async function rJ(_){}var PK={};C(PK,{up:()=>lJ,down:()=>eJ});import{sql as UK}from"kysely";async function lJ(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await UK`
1479
1484
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1480
1485
  ON org_file_configs (organization_id, lower(name))
1481
- `.execute(_)}async function oJ(_){await _.schema.dropTable("org_file_configs").execute()}var PK={};C(PK,{up:()=>aJ,down:()=>rJ});import{sql as v}from"kysely";async function aJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1486
+ `.execute(_)}async function eJ(_){await _.schema.dropTable("org_file_configs").execute()}var JK={};C(JK,{up:()=>dJ,down:()=>bJ});import{sql as v}from"kysely";async function dJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1482
1487
  ALTER TABLE automations
1483
1488
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1484
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function rJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1489
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function bJ(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await v`
1485
1490
  ALTER TABLE automations
1486
1491
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1487
1492
  `.execute(_),await v`
@@ -1503,83 +1508,83 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1503
1508
  AND tool_input IS NOT NULL
1504
1509
  )
1505
1510
  )
1506
- `.execute(_)}var JK={};C(JK,{up:()=>lJ,down:()=>eJ});async function lJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function eJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var QK={};C(QK,{up:()=>dJ,down:()=>bJ});import{sql as XK}from"kysely";var h_="local-docker";async function dJ(_){await XK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await XK`
1511
+ `.execute(_)}var XK={};C(XK,{up:()=>sJ,down:()=>_X});async function sJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function _X(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ZK={};C(ZK,{up:()=>xX,down:()=>uX});import{sql as QK}from"kysely";var h_="local-docker";async function xX(_){await QK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await QK`
1507
1512
  SELECT id, metadata FROM "connections"
1508
1513
  WHERE connection_type = 'VIRTUAL'
1509
1514
  AND metadata IS NOT NULL
1510
1515
  AND metadata LIKE ${"%"+h_+"%"}
1511
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await XK`
1516
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await QK`
1512
1517
  UPDATE "connections"
1513
1518
  SET metadata = ${z}
1514
1519
  WHERE id = ${u.id}
1515
- `.execute(_)}}async function bJ(_){}var ZK={};C(ZK,{up:()=>sJ,down:()=>_X});import{sql as t_}from"kysely";async function sJ(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await t_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await t_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await t_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await t_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function _X(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var jK={};C(jK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function KX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var LK={};C(LK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function mX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var FK={};C(FK,{up:()=>TX,down:()=>zX});async function TX(_){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 zX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var YK={};C(YK,{up:()=>EX,down:()=>$X});async function EX(_){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 $X(_){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 HK={};C(HK,{up:()=>PX,down:()=>JX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function DK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function o_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function UX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[j,Q]of Object.entries($)){if(j===x){if(N=!0,!(u in $))P[u]=DK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=DK(Q,x,u);continue}let y=DK(Q,x,u);if(y!==Q)N=!0;if(j===u&&j in P&&o_(P[j])&&!o_(y))continue;P[j]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function kT(_,x,u){let N=await k`
1520
+ `.execute(_)}}async function uX(_){}var WK={};C(WK,{up:()=>CX,down:()=>KX});import{sql as t_}from"kysely";async function CX(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await t_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await t_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await t_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await t_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function KX(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var jK={};C(jK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function mX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var LK={};C(LK,{up:()=>TX,down:()=>zX});async function TX(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function zX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var FK={};C(FK,{up:()=>EX,down:()=>$X});async function EX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function $X(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var YK={};C(YK,{up:()=>UX,down:()=>PX});async function UX(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function PX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var DK={};C(DK,{up:()=>JX,down:()=>XX});async function JX(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function XX(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var MK={};C(MK,{up:()=>ZX,down:()=>WX});import{sql as k}from"kysely";var A="cluster",f="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function HK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function o_(_){if(!__(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!==f&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function QX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[j,Q]of Object.entries($)){if(j===x){if(N=!0,!(u in $))P[u]=HK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=HK(Q,x,u);continue}let y=HK(Q,x,u);if(y!==Q)N=!0;if(j===u&&j in P&&o_(P[j])&&!o_(y))continue;P[j]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function vT(_,x,u){let N=await k`
1516
1521
  SELECT id, metadata FROM connections
1517
1522
  WHERE connection_type = 'VIRTUAL'
1518
1523
  AND metadata IS NOT NULL
1519
1524
  AND metadata LIKE ${"%"+x+"%"}
1520
- `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=UX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1525
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=QX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1521
1526
  UPDATE connections
1522
1527
  SET metadata = ${JSON.stringify(m)}
1523
1528
  WHERE id = ${K.id}
1524
- `.execute(_)}}async function PX(_){await k`
1529
+ `.execute(_)}}async function ZX(_){await k`
1525
1530
  UPDATE threads
1526
- SET sandbox_provider_kind = ${A}
1527
- WHERE sandbox_provider_kind = ${f}
1531
+ SET sandbox_provider_kind = ${f}
1532
+ WHERE sandbox_provider_kind = ${A}
1528
1533
  `.execute(_),await k`
1529
1534
  UPDATE sandbox_runner_state canonical
1530
1535
  SET handle = legacy.handle,
1531
1536
  state = legacy.state,
1532
1537
  updated_at = legacy.updated_at
1533
1538
  FROM sandbox_runner_state legacy
1534
- WHERE canonical.sandbox_provider_kind = ${A}
1535
- AND legacy.sandbox_provider_kind = ${f}
1539
+ WHERE canonical.sandbox_provider_kind = ${f}
1540
+ AND legacy.sandbox_provider_kind = ${A}
1536
1541
  AND canonical.user_id = legacy.user_id
1537
1542
  AND canonical.project_ref = legacy.project_ref
1538
1543
  AND legacy.updated_at > canonical.updated_at
1539
1544
  `.execute(_),await k`
1540
1545
  DELETE FROM sandbox_runner_state legacy
1541
- WHERE legacy.sandbox_provider_kind = ${f}
1546
+ WHERE legacy.sandbox_provider_kind = ${A}
1542
1547
  AND EXISTS (
1543
1548
  SELECT 1
1544
1549
  FROM sandbox_runner_state canonical
1545
1550
  WHERE canonical.user_id = legacy.user_id
1546
1551
  AND canonical.project_ref = legacy.project_ref
1547
- AND canonical.sandbox_provider_kind = ${A}
1552
+ AND canonical.sandbox_provider_kind = ${f}
1548
1553
  )
1549
1554
  `.execute(_),await k`
1550
1555
  UPDATE sandbox_runner_state
1551
- SET sandbox_provider_kind = ${A}
1552
- WHERE sandbox_provider_kind = ${f}
1553
- `.execute(_),await kT(_,f,A)}async function JX(_){await k`
1554
- UPDATE threads
1555
1556
  SET sandbox_provider_kind = ${f}
1556
1557
  WHERE sandbox_provider_kind = ${A}
1558
+ `.execute(_),await vT(_,A,f)}async function WX(_){await k`
1559
+ UPDATE threads
1560
+ SET sandbox_provider_kind = ${A}
1561
+ WHERE sandbox_provider_kind = ${f}
1557
1562
  `.execute(_),await k`
1558
1563
  UPDATE sandbox_runner_state legacy
1559
1564
  SET handle = canonical.handle,
1560
1565
  state = canonical.state,
1561
1566
  updated_at = canonical.updated_at
1562
1567
  FROM sandbox_runner_state canonical
1563
- WHERE legacy.sandbox_provider_kind = ${f}
1564
- AND canonical.sandbox_provider_kind = ${A}
1568
+ WHERE legacy.sandbox_provider_kind = ${A}
1569
+ AND canonical.sandbox_provider_kind = ${f}
1565
1570
  AND legacy.user_id = canonical.user_id
1566
1571
  AND legacy.project_ref = canonical.project_ref
1567
1572
  AND canonical.updated_at > legacy.updated_at
1568
1573
  `.execute(_),await k`
1569
1574
  DELETE FROM sandbox_runner_state canonical
1570
- WHERE canonical.sandbox_provider_kind = ${A}
1575
+ WHERE canonical.sandbox_provider_kind = ${f}
1571
1576
  AND EXISTS (
1572
1577
  SELECT 1
1573
1578
  FROM sandbox_runner_state legacy
1574
1579
  WHERE legacy.user_id = canonical.user_id
1575
1580
  AND legacy.project_ref = canonical.project_ref
1576
- AND legacy.sandbox_provider_kind = ${f}
1581
+ AND legacy.sandbox_provider_kind = ${A}
1577
1582
  )
1578
1583
  `.execute(_),await k`
1579
1584
  UPDATE sandbox_runner_state
1580
- SET sandbox_provider_kind = ${f}
1581
- WHERE sandbox_provider_kind = ${A}
1582
- `.execute(_),await kT(_,A,f)}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as g}from"kysely";async function XX(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1585
+ SET sandbox_provider_kind = ${A}
1586
+ WHERE sandbox_provider_kind = ${f}
1587
+ `.execute(_),await vT(_,f,A)}var RK={};C(RK,{up:()=>jX,down:()=>LX});import{sql as g}from"kysely";async function jX(_){await g`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await g`
1583
1588
  CREATE INDEX idx_org_fs_entry_parent
1584
1589
  ON org_fs_entry (organization_id, volume, parent)
1585
1590
  WHERE deleted_at IS NULL
@@ -1587,7 +1592,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1587
1592
  CREATE INDEX idx_org_fs_entry_usage
1588
1593
  ON org_fs_entry (organization_id, volume, size)
1589
1594
  WHERE kind = 'file' AND deleted_at IS NULL
1590
- `.execute(_)}async function QX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var BK={};C(BK,{up:()=>jX,down:()=>LX});import{sql as nT}from"kysely";async function jX(_){await nT`
1595
+ `.execute(_)}async function LX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var BK={};C(BK,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function YX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var GK={};C(GK,{up:()=>DX,down:()=>HX});import{sql as pT}from"kysely";async function DX(_){await pT`
1591
1596
  INSERT INTO "organization" (id, name, slug, "createdAt")
1592
1597
  SELECT
1593
1598
  'org_orgfs_public_skills',
@@ -1601,13 +1606,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1601
1606
  END,
1602
1607
  now()
1603
1608
  ON CONFLICT (id) DO NOTHING
1604
- `.execute(_)}async function LX(_){await nT`
1609
+ `.execute(_)}async function HX(_){await pT`
1605
1610
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1606
- `.execute(_)}var GK={};C(GK,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function YX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var OK={};C(OK,{up:()=>DX,down:()=>HX});import{sql as vT}from"kysely";async function DX(_){await vT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function HX(_){await vT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var SK={};C(SK,{up:()=>RX,down:()=>BX});import{sql as MX}from"kysely";async function RX(_){await MX`
1611
+ `.execute(_)}var OK={};C(OK,{up:()=>MX,down:()=>RX});async function MX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function RX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var SK={};C(SK,{up:()=>BX,down:()=>GX});import{sql as gT}from"kysely";async function BX(_){await gT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function GX(_){await gT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var AK={};C(AK,{up:()=>SX,down:()=>AX});import{sql as OX}from"kysely";async function SX(_){await OX`
1607
1612
  UPDATE downstream_tokens
1608
1613
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1609
1614
  WHERE "expiresAt" IS NULL
1610
- `.execute(_)}async function BX(_){}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function OX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function fX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function VX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function kX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as pT}from"kysely";async function nX(_){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(pT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function vX(_){await _.schema.dropTable("org_sites").execute()}var kK={};C(kK,{up:()=>pX,down:()=>gX});async function pX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function gX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});import{sql as R}from"kysely";async function qX(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1615
+ `.execute(_)}async function AX(_){}var fK={};C(fK,{up:()=>fX,down:()=>IX});async function fX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function IX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var IK={};C(IK,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function VX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var yK={};C(yK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function kX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var VK={};C(VK,{up:()=>nX,down:()=>vX});async function nX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function vX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var wK={};C(wK,{up:()=>pX,down:()=>gX});async function pX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function gX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var kK={};C(kK,{up:()=>qX,down:()=>iX});import{sql as qT}from"kysely";async function qX(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(qT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function iX(_){await _.schema.dropTable("org_sites").execute()}var nK={};C(nK,{up:()=>cX,down:()=>hX});async function cX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function hX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var vK={};C(vK,{up:()=>tX,down:()=>oX});import{sql as R}from"kysely";async function tX(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await R`
1611
1616
  UPDATE organization_domains
1612
1617
  SET
1613
1618
  id = gen_random_uuid()::text,
@@ -1616,18 +1621,18 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1616
1621
  verification_method = 'email',
1617
1622
  verified_at = created_at
1618
1623
  WHERE id IS NULL
1619
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function iX(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1624
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function oX(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await R`
1620
1625
  UPDATE organization_domains
1621
1626
  SET auto_join_enabled = (join_mode = 'auto')
1622
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var vK={};C(vK,{up:()=>cX,down:()=>hX});import{sql as a_}from"kysely";async function cX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(a_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await a_`
1627
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var pK={};C(pK,{up:()=>aX,down:()=>rX});import{sql as a_}from"kysely";async function aX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(a_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await a_`
1623
1628
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1624
1629
  ON organization_join_requests (organization_id, user_id)
1625
1630
  WHERE status = 'pending'
1626
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function hX(_){await _.schema.dropTable("organization_join_requests").execute()}var pK={};C(pK,{up:()=>tX,down:()=>oX});async function tX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function oX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var gK={};C(gK,{up:()=>aX,down:()=>rX});async function aX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function rX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var cK={};C(cK,{up:()=>dX,splitWebResearchTier:()=>iK,down:()=>bX,__testing:()=>eX});function lX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function qK(_){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 iK(_){if(!_||qK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(lX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var eX={splitWebResearchTier:iK,isAlreadySplit:qK};async function dX(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(qK(N))continue;let K=iK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function bX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var hK={};C(hK,{up:()=>sX,down:()=>_Q});import{sql as j_}from"kysely";async function sX(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
1631
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function rX(_){await _.schema.dropTable("organization_join_requests").execute()}var gK={};C(gK,{up:()=>lX,down:()=>eX});async function lX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function eX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var qK={};C(qK,{up:()=>dX,down:()=>bX});async function dX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function bX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var hK={};C(hK,{up:()=>xQ,splitWebResearchTier:()=>cK,down:()=>uQ,__testing:()=>_Q});function sX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function iK(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function cK(_){if(!_||iK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(sX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var _Q={splitWebResearchTier:cK,isAlreadySplit:iK};async function xQ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(iK(N))continue;let K=cK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function uQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var tK={};C(tK,{up:()=>CQ,down:()=>KQ});import{sql as j_}from"kysely";async function CQ(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
1627
1632
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1628
1633
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1629
1634
  WHERE revoked_at IS NULL
1630
- `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function _Q(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var tK={};C(tK,{up:()=>xQ,down:()=>uQ});async function xQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function uQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var oK={};C(oK,{up:()=>CQ,down:()=>KQ});import{sql as t}from"kysely";async function CQ(_){await t`
1635
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function KQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var oK={};C(oK,{up:()=>NQ,down:()=>mQ});async function NQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function mQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var aK={};C(aK,{up:()=>TQ,down:()=>zQ});import{sql as t}from"kysely";async function TQ(_){await t`
1631
1636
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1632
1637
  RETURNS jsonb AS $fn$
1633
1638
  BEGIN
@@ -1686,7 +1691,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1686
1691
  BEFORE INSERT ON connection_aggregations
1687
1692
  FOR EACH ROW
1688
1693
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1689
- `.execute(_)}async function KQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});import{sql as aK}from"kysely";async function NQ(_){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(aK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aK`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(aK`false`)).execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var eK={};C(eK,{up:()=>EQ,down:()=>$Q});async function EQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function $Q(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var dK={};C(dK,{up:()=>UQ,down:()=>PQ});async function UQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function PQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var bK={};C(bK,{up:()=>XQ,down:()=>QQ});import{sql as JQ}from"kysely";async function XQ(_){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(JQ`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 QQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var sK={};C(sK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){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 WQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var _N={};C(_N,{up:()=>LQ,down:()=>FQ});import{sql as jQ}from"kysely";async function LQ(_){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(jQ`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 FQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});import{sql as YQ}from"kysely";async function DQ(_){await YQ`
1694
+ `.execute(_)}async function zQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var lK={};C(lK,{up:()=>EQ,down:()=>$Q});import{sql as rK}from"kysely";async function EQ(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(rK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(rK`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(rK`false`)).execute()}async function $Q(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var eK={};C(eK,{up:()=>UQ,down:()=>PQ});async function UQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function PQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var dK={};C(dK,{up:()=>JQ,down:()=>XQ});async function JQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function XQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var bK={};C(bK,{up:()=>QQ,down:()=>ZQ});async function QQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function ZQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var sK={};C(sK,{up:()=>jQ,down:()=>LQ});import{sql as WQ}from"kysely";async function jQ(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(WQ`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function LQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var _N={};C(_N,{up:()=>FQ,down:()=>YQ});async function FQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function YQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var xN={};C(xN,{up:()=>HQ,down:()=>MQ});import{sql as DQ}from"kysely";async function HQ(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DQ`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function MQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var uN={};C(uN,{up:()=>BQ,down:()=>GQ});import{sql as RQ}from"kysely";async function BQ(_){await RQ`
1690
1695
  DELETE FROM member
1691
1696
  WHERE id IN (
1692
1697
  SELECT id FROM (
@@ -1705,38 +1710,38 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1705
1710
  ) ranked
1706
1711
  WHERE ranked.rn > 1
1707
1712
  )
1708
- `.execute(_)}async function HQ(_){}var uN={};C(uN,{up:()=>MQ,down:()=>RQ});async function MQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function RQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var CN={};C(CN,{up:()=>BQ,down:()=>GQ});async function BQ(_){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 GQ(_){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 KN={};C(KN,{up:()=>SQ,down:()=>fQ});import{sql as OQ}from"kysely";async function SQ(_){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(OQ`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 fQ(_){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 NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as AQ}from"kysely";async function IQ(_){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(AQ`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 yQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as r_}from"kysely";async function VQ(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",r_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",r_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function wQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});import{sql as l_}from"kysely";async function kQ(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await l_`
1713
+ `.execute(_)}async function GQ(_){}var CN={};C(CN,{up:()=>OQ,down:()=>SQ});async function OQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function SQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var KN={};C(KN,{up:()=>AQ,down:()=>fQ});async function AQ(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function fQ(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var NN={};C(NN,{up:()=>yQ,down:()=>VQ});import{sql as IQ}from"kysely";async function yQ(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(IQ`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function VQ(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var mN={};C(mN,{up:()=>kQ,down:()=>nQ});import{sql as wQ}from"kysely";async function kQ(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wQ`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function nQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var TN={};C(TN,{up:()=>vQ,down:()=>pQ});import{sql as r_}from"kysely";async function vQ(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",r_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",r_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function pQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var zN={};C(zN,{up:()=>gQ,down:()=>qQ});import{sql as l_}from"kysely";async function gQ(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await l_`
1709
1714
  insert into organization_billing (organization_id, legacy)
1710
1715
  select id, true from organization
1711
1716
  on conflict (organization_id) do nothing
1712
- `.execute(_)}async function nQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as gT}from"kysely";async function vQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(gT`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(gT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function pQ(_){await _.schema.dropTable("seat_change_log").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as qT}from"kysely";async function iQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await qT`
1717
+ `.execute(_)}async function qQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var EN={};C(EN,{up:()=>iQ,down:()=>cQ});import{sql as iT}from"kysely";async function iQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(iT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function cQ(_){await _.schema.dropTable("seat_change_log").execute()}var $N={};C($N,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function tQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var UN={};C(UN,{up:()=>oQ,down:()=>aQ});import{sql as cT}from"kysely";async function oQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await cT`
1713
1718
  create unique index organization_billing_stripe_subscription_id_uq
1714
1719
  on organization_billing (stripe_subscription_id)
1715
1720
  where stripe_subscription_id is not null
1716
- `.execute(_)}async function cQ(_){await qT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function tQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});import{sql as iT}from"kysely";async function oQ(_){await iT`
1721
+ `.execute(_)}async function aQ(_){await cT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var PN={};C(PN,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function lQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var JN={};C(JN,{up:()=>eQ,down:()=>dQ});import{sql as hT}from"kysely";async function eQ(_){await hT`
1717
1722
  create index idx_org_billing_benefits_pending
1718
1723
  on organization_billing (updated_at)
1719
1724
  where benefits_reference_id is not null
1720
- `.execute(_)}async function aQ(_){await iT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});import{sql as cT}from"kysely";async function rQ(_){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 lQ(_){await _.schema.dropTable("user_model_preferences").execute()}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>sQ});async function bQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function sQ(_){}var ZN={};C(ZN,{up:()=>_Z,down:()=>xZ});import{sql as hT}from"kysely";async function _Z(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await hT`
1725
+ `.execute(_)}async function dQ(_){await hT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var XN={};C(XN,{up:()=>bQ,down:()=>sQ});import{sql as tT}from"kysely";async function bQ(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function sQ(_){await _.schema.dropTable("user_model_preferences").execute()}var QN={};C(QN,{up:()=>_Z,down:()=>xZ});async function _Z(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function xZ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var ZN={};C(ZN,{up:()=>uZ,down:()=>CZ});async function uZ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function CZ(_){}var WN={};C(WN,{up:()=>KZ,down:()=>NZ});import{sql as oT}from"kysely";async function KZ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await oT`
1721
1726
  UPDATE organization_settings
1722
1727
  SET flags = jsonb_build_object('reports_only', reports_only)
1723
1728
  WHERE reports_only IS NOT NULL
1724
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function xZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await hT`
1729
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function NZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await oT`
1725
1730
  UPDATE organization_settings
1726
1731
  SET reports_only = (flags ->> 'reports_only')::boolean
1727
1732
  WHERE flags ? 'reports_only'
1728
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var WN={};C(WN,{up:()=>CZ,down:()=>KZ});import{sql as uZ}from"kysely";async function CZ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await uZ`
1733
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var jN={};C(jN,{up:()=>TZ,down:()=>zZ});import{sql as mZ}from"kysely";async function TZ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await mZ`
1729
1734
  update task_board_items
1730
1735
  set sort_order = -extract(epoch from created_at)
1731
- `.execute(_)}async function KZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var jN={};C(jN,{up:()=>NZ,down:()=>mZ,ACTIONS:()=>tT});import{sql as e_}from"kysely";var tT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function NZ(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(e_`now()`)).addCheckConstraint("chk_task_board_activity_action",e_`action IN (${e_.join(tT.map((x)=>e_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function mZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var FN={};C(FN,{up:()=>TZ,down:()=>zZ,ACTIONS:()=>LN});import{sql as L_}from"kysely";var LN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function TZ(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await oT(_,LN)}async function zZ(_){await oT(_,LN.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 L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var DN={};C(DN,{up:()=>$Z,down:()=>UZ});import{sql as aT}from"kysely";function YN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function EZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return YN(N)}catch{return YN(_.connection_url)}if(_.title)return YN(_.title);return _.id}async function $Z(_){let x=await aT`
1736
+ `.execute(_)}async function zZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var LN={};C(LN,{up:()=>EZ,down:()=>$Z,ACTIONS:()=>aT});import{sql as e_}from"kysely";var aT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function EZ(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(e_`now()`)).addCheckConstraint("chk_task_board_activity_action",e_`action IN (${e_.join(aT.map((x)=>e_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function $Z(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var YN={};C(YN,{up:()=>UZ,down:()=>PZ,ACTIONS:()=>FN});import{sql as L_}from"kysely";var FN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function UZ(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await rT(_,FN)}async function PZ(_){await rT(_,FN.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function rT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var HN={};C(HN,{up:()=>XZ,down:()=>QZ});import{sql as lT}from"kysely";function DN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function JZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return DN(N)}catch{return DN(_.connection_url)}if(_.title)return DN(_.title);return _.id}async function XZ(_){let x=await lT`
1732
1737
  SELECT id, app_name, connection_url, title, slug
1733
1738
  FROM connections
1734
1739
  WHERE connection_type != 'VIRTUAL'
1735
- `.execute(_),u=0;for(let N of x.rows){let K=EZ(N);if(K===N.slug)continue;await aT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function UZ(){}var HN={};C(HN,{up:()=>JZ,down:()=>XZ});import{sql as PZ}from"kysely";async function JZ(_){await PZ`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 XZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var RN={};C(RN,{up:()=>ZZ,down:()=>WZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],QZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function ZZ(_){await rT(_,MN)}async function WZ(_){await rT(_,MN.filter((x)=>!QZ.has(x)))}async function rT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var BN={};C(BN,{up:()=>LZ,down:()=>FZ});import{sql as jZ}from"kysely";async function LZ(_){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(jZ`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 FZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ,ACTIONS:()=>GN});import{sql as b_}from"kysely";var GN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],YZ=new Set(["merge_conflict_resolution"]);async function DZ(_){await lT(_,GN)}async function HZ(_){await lT(_,GN.filter((x)=>!YZ.has(x)))}async function lT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as F_}from"kysely";async function MZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function RZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await F_`
1740
+ `.execute(_),u=0;for(let N of x.rows){let K=JZ(N);if(K===N.slug)continue;await lT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function QZ(){}var MN={};C(MN,{up:()=>WZ,down:()=>jZ});import{sql as ZZ}from"kysely";async function WZ(_){await ZZ`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function jZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var BN={};C(BN,{up:()=>FZ,down:()=>YZ,ACTIONS:()=>RN});import{sql as d_}from"kysely";var RN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],LZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function FZ(_){await eT(_,RN)}async function YZ(_){await eT(_,RN.filter((x)=>!LZ.has(x)))}async function eT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var GN={};C(GN,{up:()=>HZ,down:()=>MZ});import{sql as DZ}from"kysely";async function HZ(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DZ`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function MZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var SN={};C(SN,{up:()=>BZ,down:()=>GZ,ACTIONS:()=>ON});import{sql as b_}from"kysely";var ON=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],RZ=new Set(["merge_conflict_resolution"]);async function BZ(_){await dT(_,ON)}async function GZ(_){await dT(_,ON.filter((x)=>!RZ.has(x)))}async function dT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var AN={};C(AN,{up:()=>OZ,down:()=>SZ});import{sql as F_}from"kysely";async function OZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function SZ(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await F_`
1736
1741
  create index idx_org_billing_benefits_pending
1737
1742
  on organization_billing (updated_at)
1738
1743
  where benefits_reference_id is not null
1739
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as s_}from"kysely";async function BZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function GZ(_){await s_`
1744
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(F_`now()`)).execute()}var fN={};C(fN,{up:()=>AZ,down:()=>fZ});import{sql as s_}from"kysely";async function AZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function fZ(_){await s_`
1740
1745
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1741
1746
  RETURNS trigger AS $fn$
1742
1747
  BEGIN
@@ -1762,23 +1767,23 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1762
1767
  BEFORE INSERT ON connection_aggregations
1763
1768
  FOR EACH ROW
1764
1769
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1765
- `.execute(_)}var AN={};C(AN,{up:()=>OZ,down:()=>SZ});import{sql as eT}from"kysely";async function OZ(_){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(eT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function SZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var IN={};C(IN,{up:()=>fZ,down:()=>AZ});import{sql as dT}from"kysely";async function fZ(_){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 AZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});import{sql as yN}from"kysely";async function IZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(yN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await yN`
1770
+ `.execute(_)}var IN={};C(IN,{up:()=>IZ,down:()=>yZ});import{sql as bT}from"kysely";async function IZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(bT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(bT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function yZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var yN={};C(yN,{up:()=>VZ,down:()=>wZ});import{sql as sT}from"kysely";async function VZ(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute()}async function wZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var wN={};C(wN,{up:()=>kZ,down:()=>nZ});import{sql as VN}from"kysely";async function kZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(VN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await VN`
1766
1771
  create index idx_task_quota_claims_org_period_live
1767
1772
  on task_quota_claims (organization_id, period_key)
1768
1773
  where state <> 'released'
1769
- `.execute(_)}async function yZ(_){await yN`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 wN={};C(wN,{up:()=>VZ,down:()=>wZ});async function VZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function wZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var kN={};C(kN,{up:()=>kZ,down:()=>nZ});async function kZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function nZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var nN={};C(nN,{up:()=>vZ,down:()=>pZ});import{sql as bT}from"kysely";async function vZ(_){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 pZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as gZ}from"kysely";async function qZ(_){await gZ`
1774
+ `.execute(_)}async function nZ(_){await VN`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var kN={};C(kN,{up:()=>vZ,down:()=>pZ});async function vZ(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function pZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var nN={};C(nN,{up:()=>gZ,down:()=>qZ});async function gZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function qZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var vN={};C(vN,{up:()=>iZ,down:()=>cZ});import{sql as _z}from"kysely";async function iZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(_z`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(_z`monthly_task_executions > 0`)).execute()}async function cZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var pN={};C(pN,{up:()=>tZ,down:()=>oZ});import{sql as hZ}from"kysely";async function tZ(_){await hZ`
1770
1775
  CREATE INDEX idx_task_board_items_pending_review
1771
1776
  ON task_board_items (updated_at, id)
1772
1777
  WHERE status = 'in_review'
1773
1778
  AND assignee_id = 'super-agent'
1774
1779
  AND dismissed_at IS NULL
1775
- `.execute(_)}async function iZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var pN={};C(pN,{up:()=>cZ,down:()=>hZ});import{sql as sT}from"kysely";async function cZ(_){await sT`
1780
+ `.execute(_)}async function oZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var gN={};C(gN,{up:()=>aZ,down:()=>rZ});import{sql as xz}from"kysely";async function aZ(_){await xz`
1776
1781
  ALTER TABLE task_board_items
1777
1782
  ADD COLUMN last_swept_at timestamptz
1778
- `.execute(_)}async function hZ(_){await sT`
1783
+ `.execute(_)}async function rZ(_){await xz`
1779
1784
  ALTER TABLE task_board_items
1780
1785
  DROP COLUMN last_swept_at
1781
- `.execute(_)}var gN={};C(gN,{up:()=>tZ,down:()=>oZ});import{sql as _x}from"kysely";async function tZ(_){await _x`
1786
+ `.execute(_)}var qN={};C(qN,{up:()=>lZ,down:()=>eZ});import{sql as _x}from"kysely";async function lZ(_){await _x`
1782
1787
  ALTER TABLE task_board_items
1783
1788
  ADD COLUMN retry_at timestamptz,
1784
1789
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1786,11 +1791,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1786
1791
  CREATE INDEX idx_task_board_items_retry_due
1787
1792
  ON task_board_items (retry_at)
1788
1793
  WHERE retry_at IS NOT NULL
1789
- `.execute(_)}async function oZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
1794
+ `.execute(_)}async function eZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
1790
1795
  ALTER TABLE task_board_items
1791
1796
  DROP COLUMN retry_at,
1792
1797
  DROP COLUMN retry_attempts
1793
- `.execute(_)}var iN={};C(iN,{up:()=>aZ,down:()=>rZ});import{sql as qN}from"kysely";async function aZ(_){await qN`
1798
+ `.execute(_)}var cN={};C(cN,{up:()=>dZ,down:()=>bZ});import{sql as iN}from"kysely";async function dZ(_){await iN`
1794
1799
  CREATE TABLE org_repo_sync (
1795
1800
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1796
1801
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1808,11 +1813,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1808
1813
  updated_at timestamptz NOT NULL DEFAULT now(),
1809
1814
  UNIQUE (organization_id, volume)
1810
1815
  )
1811
- `.execute(_),await qN`
1816
+ `.execute(_),await iN`
1812
1817
  CREATE INDEX idx_org_repo_sync_enabled
1813
1818
  ON org_repo_sync (organization_id)
1814
1819
  WHERE enabled
1815
- `.execute(_)}async function rZ(_){await qN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var hN={};C(hN,{up:()=>eZ,down:()=>dZ,ACTIONS:()=>cN});import{sql as xx}from"kysely";var cN=["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"],lZ=new Set(["merge_failed"]);async function eZ(_){await _z(_,cN)}async function dZ(_){await _z(_,cN.filter((x)=>!lZ.has(x)))}async function _z(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var tN={};C(tN,{up:()=>bZ,down:()=>sZ});async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function sZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var oN={};C(oN,{up:()=>_6,down:()=>x6});import{sql as x_}from"kysely";async function _6(_){await x_`
1820
+ `.execute(_)}async function bZ(_){await iN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var tN={};C(tN,{up:()=>_6,down:()=>x6,ACTIONS:()=>hN});import{sql as xx}from"kysely";var hN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],sZ=new Set(["merge_failed"]);async function _6(_){await uz(_,hN)}async function x6(_){await uz(_,hN.filter((x)=>!sZ.has(x)))}async function uz(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var oN={};C(oN,{up:()=>u6,down:()=>C6});async function u6(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function C6(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var aN={};C(aN,{up:()=>K6,down:()=>N6});import{sql as x_}from"kysely";async function K6(_){await x_`
1816
1821
  CREATE TABLE org_jira_integrations (
1817
1822
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1818
1823
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1851,7 +1856,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1851
1856
  created_at timestamptz NOT NULL DEFAULT now(),
1852
1857
  UNIQUE (organization_id, jira_comment_id)
1853
1858
  )
1854
- `.execute(_)}async function x6(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var aN={};C(aN,{up:()=>C6,down:()=>K6});import{sql as u6}from"kysely";async function C6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await u6`
1859
+ `.execute(_)}async function N6(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var rN={};C(rN,{up:()=>T6,down:()=>z6});import{sql as m6}from"kysely";async function T6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await m6`
1855
1860
  update task_board_items as t
1856
1861
  set key_seq = numbered.seq
1857
1862
  from (
@@ -1864,25 +1869,25 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1864
1869
  from task_board_items
1865
1870
  ) as numbered
1866
1871
  where t.id = numbered.id
1867
- `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function K6(_){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 rN={};C(rN,{up:()=>N6,down:()=>m6});import{sql as xz}from"kysely";async function N6(_){await xz`
1872
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function z6(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var lN={};C(lN,{up:()=>E6,down:()=>$6});import{sql as Cz}from"kysely";async function E6(_){await Cz`
1868
1873
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1869
1874
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1870
1875
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1871
- `.execute(_)}async function m6(_){await xz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var eN={};C(eN,{up:()=>T6,down:()=>z6});import{sql as lN}from"kysely";async function T6(_){await lN`
1876
+ `.execute(_)}async function $6(_){await Cz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var dN={};C(dN,{up:()=>U6,down:()=>P6});import{sql as eN}from"kysely";async function U6(_){await eN`
1872
1877
  ALTER TABLE thread_message_parts
1873
1878
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1874
- `.execute(_),await lN`
1879
+ `.execute(_),await eN`
1875
1880
  ALTER TABLE thread_message_parts
1876
1881
  ALTER COLUMN persisted_at SET DEFAULT now()
1877
- `.execute(_)}async function z6(_){await lN`
1882
+ `.execute(_)}async function P6(_){await eN`
1878
1883
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1879
- `.execute(_)}var dN={};C(dN,{up:()=>E6,down:()=>$6});async function E6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function $6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var bN={};C(bN,{up:()=>P6,down:()=>J6});import{sql as U6}from"kysely";async function P6(_){await U6`
1884
+ `.execute(_)}var bN={};C(bN,{up:()=>J6,down:()=>X6});async function J6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function X6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var sN={};C(sN,{up:()=>Z6,down:()=>W6});import{sql as Q6}from"kysely";async function Z6(_){await Q6`
1880
1885
  CREATE INDEX idx_task_board_items_done_sweep
1881
1886
  ON task_board_items (updated_at)
1882
1887
  WHERE status = 'done' AND dismissed_at IS NULL
1883
- `.execute(_)}async function J6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var sN={};C(sN,{up:()=>X6,down:()=>Q6,TYPES:()=>uz});import{sql as q}from"kysely";var uz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function X6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(uz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1888
+ `.execute(_)}async function W6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var _m={};C(_m,{up:()=>j6,down:()=>L6,TYPES:()=>Kz});import{sql as q}from"kysely";var Kz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function j6(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(Kz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1884
1889
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
1885
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function Q6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var _m={};C(_m,{up:()=>Z6,down:()=>W6});import{sql as Cz}from"kysely";async function Z6(_){await Cz`
1890
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function L6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var xm={};C(xm,{up:()=>F6,down:()=>Y6});import{sql as Nz}from"kysely";async function F6(_){await Nz`
1886
1891
  UPDATE org_jira_integrations
1887
1892
  SET status_mapping = (
1888
1893
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1897,7 +1902,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1897
1902
  SELECT 1 FROM jsonb_each(status_mapping)
1898
1903
  WHERE jsonb_typeof(value) = 'array'
1899
1904
  )
1900
- `.execute(_)}async function W6(_){await Cz`
1905
+ `.execute(_)}async function Y6(_){await Nz`
1901
1906
  UPDATE org_jira_integrations
1902
1907
  SET status_mapping = (
1903
1908
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1912,7 +1917,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1912
1917
  SELECT 1 FROM jsonb_each(status_mapping)
1913
1918
  WHERE jsonb_typeof(value) = 'array'
1914
1919
  )
1915
- `.execute(_)}var um={};C(um,{up:()=>L6,down:()=>F6,TYPES:()=>xm});import{sql as ux}from"kysely";var xm=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],j6=new Set(["mentioned"]);async function L6(_){await Kz(_,xm)}async function F6(_){await Kz(_,xm.filter((x)=>!j6.has(x)))}async function Kz(_,x){await ux`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await ux`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Km={};C(Km,{up:()=>H6,down:()=>M6,ACTIONS:()=>Cm});import{sql as i}from"kysely";var Y6=["bug","feature","chore","spike","security"],Cm=["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"],D6=new Set(["type_changed"]);async function H6(_){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(Y6.map((x)=>i.lit(x)))}))`.execute(_),await Nz(_,Cm)}async function M6(_){await Nz(_,Cm.filter((x)=>!D6.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 Nz(_,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 Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as W}from"kysely";var Tz=["bug","feature","chore","spike","security"],mz="chore";async function R6(_){await W`UPDATE task_board_items SET type = ${W.lit(mz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(mz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_)}async function B6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var mm={};C(mm,{up:()=>G6,down:()=>O6});import{sql as u_}from"kysely";async function G6(_){await u_`
1920
+ `.execute(_)}var Cm={};C(Cm,{up:()=>H6,down:()=>M6,TYPES:()=>um});import{sql as ux}from"kysely";var um=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],D6=new Set(["mentioned"]);async function H6(_){await mz(_,um)}async function M6(_){await mz(_,um.filter((x)=>!D6.has(x)))}async function mz(_,x){await ux`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await ux`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Nm={};C(Nm,{up:()=>G6,down:()=>O6,ACTIONS:()=>Km});import{sql as i}from"kysely";var R6=["bug","feature","chore","spike","security"],Km=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],B6=new Set(["type_changed"]);async function G6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(R6.map((x)=>i.lit(x)))}))`.execute(_),await Tz(_,Km)}async function O6(_){await Tz(_,Km.filter((x)=>!B6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function Tz(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var mm={};C(mm,{up:()=>S6,down:()=>A6});import{sql as W}from"kysely";var Ez=["bug","feature","chore","spike","security"],zz="chore";async function S6(_){await W`UPDATE task_board_items SET type = ${W.lit(zz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(zz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Ez.map((x)=>W.lit(x)))}))`.execute(_)}async function A6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Ez.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Tm={};C(Tm,{up:()=>f6,down:()=>I6});import{sql as u_}from"kysely";async function f6(_){await u_`
1916
1921
  CREATE TABLE task_board_sprints (
1917
1922
  id text PRIMARY KEY,
1918
1923
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1937,34 +1942,34 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1937
1942
  CREATE INDEX idx_task_board_items_sprint
1938
1943
  ON task_board_items (organization_id, sprint_id)
1939
1944
  WHERE sprint_id IS NOT NULL
1940
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function O6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Tm={};C(Tm,{up:()=>f6,down:()=>A6});import{sql as S6}from"kysely";async function f6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function A6(_){await S6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var zm={};C(zm,{up:()=>y6,down:()=>V6});import{sql as I6}from"kysely";async function y6(_){await I6`
1945
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function I6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var zm={};C(zm,{up:()=>V6,down:()=>w6});import{sql as y6}from"kysely";async function V6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function w6(_){await y6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Em={};C(Em,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await k6`
1941
1946
  UPDATE org_jira_integrations
1942
1947
  SET last_synced_at = NULL,
1943
1948
  last_sync_error = NULL
1944
1949
  WHERE last_synced_at IS NOT NULL
1945
- `.execute(_)}async function V6(){}var Em={};C(Em,{up:()=>k6,down:()=>n6});import{sql as w6}from"kysely";async function k6(_){await w6`
1950
+ `.execute(_)}async function v6(){}var $m={};C($m,{up:()=>g6,down:()=>q6});import{sql as p6}from"kysely";async function g6(_){await p6`
1946
1951
  UPDATE org_jira_integrations
1947
1952
  SET last_synced_at = NULL,
1948
1953
  last_sync_error = NULL
1949
1954
  WHERE last_synced_at IS NOT NULL
1950
- `.execute(_)}async function n6(){}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as $m}from"kysely";async function v6(_){await $m`
1955
+ `.execute(_)}async function q6(){}var Pm={};C(Pm,{up:()=>i6,down:()=>c6});import{sql as Um}from"kysely";async function i6(_){await Um`
1951
1956
  ALTER TABLE org_jira_integrations
1952
1957
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1953
- `.execute(_),await $m`
1958
+ `.execute(_),await Um`
1954
1959
  UPDATE org_jira_integrations
1955
1960
  SET rescan_pending = true
1956
1961
  WHERE last_synced_at IS NULL
1957
- `.execute(_)}async function p6(_){await $m`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Pm={};C(Pm,{up:()=>g6,down:()=>q6});async function g6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function q6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Jm={};C(Jm,{up:()=>i6,down:()=>c6});import{sql as zz}from"kysely";async function i6(_){await zz`
1962
+ `.execute(_)}async function c6(_){await Um`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Jm={};C(Jm,{up:()=>h6,down:()=>t6});async function h6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function t6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Xm={};C(Xm,{up:()=>o6,down:()=>a6});import{sql as $z}from"kysely";async function o6(_){await $z`
1958
1963
  ALTER TABLE invitation
1959
1964
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1960
- `.execute(_)}async function c6(_){await zz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Xm}from"kysely";async function h6(_){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(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`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 Xm`
1965
+ `.execute(_)}async function a6(_){await $z`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Zm={};C(Zm,{up:()=>r6,down:()=>l6});import{sql as Qm}from"kysely";async function r6(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Qm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Qm`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await Qm`
1961
1966
  INSERT INTO task_board_column_automations
1962
1967
  (id, organization_id, column_key, prompt)
1963
1968
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1964
1969
  FROM org_jira_integrations
1965
1970
  WHERE auto_delegate = true
1966
1971
  ON CONFLICT DO NOTHING
1967
- `.execute(_)}async function t6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Zm={};C(Zm,{up:()=>o6,down:()=>a6});import{sql as Y_}from"kysely";async function o6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1972
+ `.execute(_)}async function l6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Wm={};C(Wm,{up:()=>e6,down:()=>d6});import{sql as Y_}from"kysely";async function e6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1968
1973
  UPDATE task_board_items i
1969
1974
  SET review_cycle_started_at = (
1970
1975
  SELECT max(a.occurred_at)
@@ -1980,13 +1985,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1980
1985
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1981
1986
  AND assignee_id = 'super-agent'
1982
1987
  AND dismissed_at IS NULL
1983
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function a6(_){await Y_`
1988
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function d6(_){await Y_`
1984
1989
  CREATE INDEX idx_task_board_items_pending_review
1985
1990
  ON task_board_items (updated_at, id)
1986
1991
  WHERE status = 'in_review'
1987
1992
  AND assignee_id = 'super-agent'
1988
1993
  AND dismissed_at IS NULL
1989
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Wm={};C(Wm,{up:()=>r6,down:()=>l6});import{sql as Ez}from"kysely";async function r6(_){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(Ez`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Ez`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 l6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Lm={};C(Lm,{up:()=>d6,down:()=>b6,ACTIONS:()=>jm});import{sql as Cx}from"kysely";var jm=["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"],e6=new Set(["review_verdict_requested"]);async function d6(_){await $z(_,jm)}async function b6(_){await $z(_,jm.filter((x)=>!e6.has(x)))}async function $z(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var Fm={};C(Fm,{up:()=>s6,down:()=>_W});import{sql as Kx}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
1994
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var jm={};C(jm,{up:()=>b6,down:()=>s6});import{sql as Uz}from"kysely";async function b6(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Uz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Uz`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function s6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Fm={};C(Fm,{up:()=>xW,down:()=>uW,ACTIONS:()=>Lm});import{sql as Cx}from"kysely";var Lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],_W=new Set(["review_verdict_requested"]);async function xW(_){await Pz(_,Lm)}async function uW(_){await Pz(_,Lm.filter((x)=>!_W.has(x)))}async function Pz(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var Ym={};C(Ym,{up:()=>CW,down:()=>KW});import{sql as Kx}from"kysely";async function CW(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
1990
1995
  ALTER TABLE task_board_items
1991
1996
  ADD CONSTRAINT chk_task_board_items_column_org
1992
1997
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -1996,13 +2001,13 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
1996
2001
  FOREIGN KEY (board_column_org, status)
1997
2002
  REFERENCES task_board_columns (organization_id, key)
1998
2003
  ON DELETE RESTRICT
1999
- `.execute(_)}async function _W(_){await Kx`
2004
+ `.execute(_)}async function KW(_){await Kx`
2000
2005
  ALTER TABLE task_board_items
2001
2006
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
2002
2007
  `.execute(_),await Kx`
2003
2008
  ALTER TABLE task_board_items
2004
2009
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
2005
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Ym={};C(Ym,{up:()=>xW,down:()=>uW});async function xW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function uW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW,ACTIONS:()=>Dm});import{sql as Nx}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","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],CW=new Set(["sprint_changed"]);async function KW(_){await Uz(_,Dm)}async function NW(_){await Uz(_,Dm.filter((x)=>!CW.has(x)))}async function Uz(_,x){await Nx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Nx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Nx.join(x.map((u)=>Nx.lit(u)))}))`.execute(_)}var Mm={};C(Mm,{up:()=>TW,down:()=>zW});import{sql as mW}from"kysely";async function TW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(mW`'[]'::jsonb`)).execute()}async function zW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Rm={};C(Rm,{up:()=>EW,down:()=>$W});import{sql as Pz}from"kysely";async function EW(_){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(Pz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function $W(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Bm={};C(Bm,{up:()=>PW,down:()=>JW});import{sql as UW}from"kysely";async function PW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await UW`
2010
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Dm={};C(Dm,{up:()=>NW,down:()=>mW});async function NW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function mW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Mm={};C(Mm,{up:()=>zW,down:()=>EW,ACTIONS:()=>Hm});import{sql as Nx}from"kysely";var Hm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],TW=new Set(["sprint_changed"]);async function zW(_){await Jz(_,Hm)}async function EW(_){await Jz(_,Hm.filter((x)=>!TW.has(x)))}async function Jz(_,x){await Nx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Nx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Nx.join(x.map((u)=>Nx.lit(u)))}))`.execute(_)}var Rm={};C(Rm,{up:()=>UW,down:()=>PW});import{sql as $W}from"kysely";async function UW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo($W`'[]'::jsonb`)).execute()}async function PW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Bm={};C(Bm,{up:()=>JW,down:()=>XW});import{sql as Xz}from"kysely";async function JW(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Xz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function XW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as QW}from"kysely";async function ZW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await QW`
2006
2011
  UPDATE task_board_items i
2007
2012
  SET external_url = t.url,
2008
2013
  description = CASE
@@ -2021,11 +2026,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2021
2026
  ON g.organization_id = l.organization_id
2022
2027
  ) t
2023
2028
  WHERE t.item_id = i.id
2024
- `.execute(_)}async function JW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Gm={};C(Gm,{up:()=>QW,down:()=>ZW,ACTIONS:()=>Jz});import{sql as X}from"kysely";var XW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Jz=["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 QW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
2029
+ `.execute(_)}async function WW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Om={};C(Om,{up:()=>LW,down:()=>FW,ACTIONS:()=>Qz});import{sql as X}from"kysely";var jW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Qz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function LW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
2025
2030
  UPDATE task_board_items
2026
2031
  SET status = 'triage'
2027
- WHERE status NOT IN (${X.join(XW.map((x)=>X.lit(x)))})
2028
- `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await WW(_,Jz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2032
+ WHERE status NOT IN (${X.join(jW.map((x)=>X.lit(x)))})
2033
+ `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await YW(_,Qz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2029
2034
  ALTER TABLE task_board_item_jira_links
2030
2035
  DROP COLUMN IF EXISTS jira_updated_at,
2031
2036
  DROP COLUMN IF EXISTS jira_status,
@@ -2037,7 +2042,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2037
2042
  DROP COLUMN IF EXISTS last_synced_at,
2038
2043
  DROP COLUMN IF EXISTS last_sync_error,
2039
2044
  DROP COLUMN IF EXISTS rescan_pending
2040
- `.execute(_)}async function ZW(){}async function WW(_,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={};C(Om,{up:()=>jW,down:()=>LW});import{sql as C_}from"kysely";async function jW(_){await C_`
2045
+ `.execute(_)}async function FW(){}async function YW(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var Sm={};C(Sm,{up:()=>DW,down:()=>HW});import{sql as C_}from"kysely";async function DW(_){await C_`
2041
2046
  ALTER TABLE task_board_items
2042
2047
  ADD COLUMN IF NOT EXISTS source text
2043
2048
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -2058,24 +2063,24 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2058
2063
  created_at timestamptz NOT NULL DEFAULT now(),
2059
2064
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2060
2065
  )
2061
- `.execute(_)}async function LW(_){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 Sm={};C(Sm,{up:()=>FW,down:()=>YW});import{sql as D_}from"kysely";async function FW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2066
+ `.execute(_)}async function HW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Am={};C(Am,{up:()=>MW,down:()=>RW});import{sql as D_}from"kysely";async function MW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2062
2067
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2063
2068
  ON organization_notices (organization_id)
2064
2069
  WHERE resolved_at IS NULL
2065
2070
  `.execute(_),await D_`
2066
2071
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2067
2072
  ON organization_notices (organization_id, created_at DESC)
2068
- `.execute(_)}async function YW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as fm}from"kysely";import{sql as J5}from"kysely";var Xz=50000000,DW=1e5;function HW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>DW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var MW=/\u0000/g,RW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,BW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,GW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,OW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function SW(_){return _.replace(MW,"").replace(RW,"\uFFFD").replace(BW,"$1***@").replace(GW,"$1***").replace(OW,"[base64 data omitted]")}function fW(_){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 Qz(_){if(HW(_,Xz)>Xz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return SW(u);if(fW(u))return{type:"text",text:"[image omitted]"};return u})}var Zz=20;async function AW(_){let x=await fm`
2073
+ `.execute(_)}async function RW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Im={};C(Im,{up:()=>wW,down:()=>kW});import{sql as fm}from"kysely";import{sql as j5}from"kysely";var Zz=50000000,BW=1e5;function GW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>BW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var OW=/\u0000/g,SW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,AW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,fW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,IW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function yW(_){return _.replace(OW,"").replace(SW,"\uFFFD").replace(AW,"$1***@").replace(fW,"$1***").replace(IW,"[base64 data omitted]")}function VW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Wz(_){if(GW(_,Zz)>Zz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return yW(u);if(VW(u))return{type:"text",text:"[image omitted]"};return u})}var jz=20;async function wW(_){let x=await fm`
2069
2074
  SELECT id FROM thread_message_parts
2070
2075
  WHERE pg_column_size(payload) > 8192
2071
2076
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
2072
- `.execute(_);for(let u=0;u<x.rows.length;u+=Zz){let N=x.rows.slice(u,u+Zz).map((m)=>m.id),K=await fm`
2077
+ `.execute(_);for(let u=0;u<x.rows.length;u+=jz){let N=x.rows.slice(u,u+jz).map((m)=>m.id),K=await fm`
2073
2078
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2074
- `.execute(_);for(let m of K.rows){let T=Qz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
2079
+ `.execute(_);for(let m of K.rows){let T=Wz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
2075
2080
  UPDATE thread_message_parts
2076
2081
  SET payload = ${T}::jsonb
2077
2082
  WHERE id = ${m.id}
2078
- `.execute(_)}}}async function IW(){}var Im={};C(Im,{up:()=>yW,down:()=>VW});async function yW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function VW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var ym={};C(ym,{up:()=>wW,down:()=>kW});import{sql as U}from"kysely";async function wW(_){await U`
2083
+ `.execute(_)}}}async function kW(){}var ym={};C(ym,{up:()=>nW,down:()=>vW});async function nW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function vW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Vm={};C(Vm,{up:()=>pW,down:()=>gW});import{sql as U}from"kysely";async function pW(_){await U`
2079
2084
  CREATE TABLE git_provider_accounts (
2080
2085
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2081
2086
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2319,11 +2324,11 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2319
2324
  AND r.organization_id = s.organization_id
2320
2325
  AND r.host = 'github.com'
2321
2326
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2322
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function kW(_){await U`
2327
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function gW(_){await U`
2323
2328
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2324
2329
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2325
2330
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
2326
- `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Vm={};C(Vm,{up:()=>vW,down:()=>pW});import{sql as I}from"kysely";var nW=I`
2331
+ `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var wm={};C(wm,{up:()=>iW,down:()=>cW});import{sql as I}from"kysely";var qW=I`
2327
2332
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2328
2333
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2329
2334
  BEGIN
@@ -2332,7 +2337,7 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2332
2337
  RETURN NULL;
2333
2338
  END;
2334
2339
  $$
2335
- `;async function vW(_){await nW.execute(_),await I`
2340
+ `;async function iW(_){await qW.execute(_),await I`
2336
2341
  ALTER TABLE connections
2337
2342
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2338
2343
  `.execute(_),await I`
@@ -2394,21 +2399,21 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2394
2399
  AND r.host = 'github.com'
2395
2400
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2396
2401
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2397
- `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function pW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2402
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function cW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2398
2403
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2399
- `.execute(_)}var gW={"001-initial-schema":ju,"002-organization-settings":Lu,"003-connection-schema-align":Fu,"004-remove-models-binding":Yu,"005-connection-configuration":Du,"006-add-views-to-settings":Hu,"007-monitoring-logs":Mu,"008-event-bus":Ru,"009-drop-audit-logs":Bu,"010-gateways":Gu,"011-gateway-icon":Ou,"012-gateway-tool-selection-mode":Su,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Au,"015-monitoring-properties":Iu,"016-downstream-token-client-info":yu,"017-downstream-token-remove-userid":Vu,"018-drop-gateway-tool-selection-strategy":wu,"019-remove-gateway-is-default":ku,"020-enabled-plugins":nu,"021-threads":vu,"022-rename-gateway-to-virtual-mcp":pu,"023-optimize-thread-indexes":gu,"024-consolidate-virtual-mcp":qu,"025-add-monitoring-virtual-mcp-id":iu,"026-restrict-child-connection-delete":cu,"027-update-management-mcp-url":tu,"028-update-management-mcp-to-self":au,"029-add-updated-by-to-connections":ru,"030-member-tags":lu,"031-add-dependency-mode":eu,"032-projects":du,"033-thread-status":bu,"034-monitoring-dashboards":su,"035-project-connections":_C,"036-update-registry-url":xC,"037-ai-provider-keys":uC,"038-oauth-pkce-states":CC,"039-automations":KC,"040-replace-next-run-at-with-last-run-at":NC,"041-ai-provider-keys-unique-constraint":mC,"042-rename-mesh-mcp-to-cms-mcp":TC,"043-rename-cms-mcp-to-deco-cms":zC,"044-drop-connections-tools-column":EC,"045-thread-context-start-message":$C,"046-remove-object-storage-plugin":PC,"047-add-next-run-at":JC,"048-merge-projects-agents":QC,"049-remove-org-admin-projects":ZC,"050-durable-agent-runs":WC,"051-org-sso":LC,"052-thread-agent-ids":FC,"053-registry-config":YC,"054-connection-slug":HC,"055-spaces":MC,"056-automation-project-scope":RC,"057-thread-virtual-mcp-id":BC,"058-trigger-callback-tokens":GC,"059-kv":OC,"060-member-index":SC,"061-downstream-token-connection-index":fC,"062-private-registry":AC,"063-event-subscriptions-enabled-boolean":IC,"064-brand-context":yC,"065-organization-domains":VC,"066-brand-context-structured":wC,"067-threads-metadata":kC,"068-threads-branch":nC,"069-sandbox-runner-state":vC,"070-model-categories":pC,"071-default-home-agents":gC,"072-ai-provider-key-preset-id":qC,"073-backfill-basic-usage-roles":iC,"074-sandbox-runner-state-handle-nonunique":cC,"075-thread-inflight-async-jobs":hC,"076-automations-drop-agent-json":tC,"077-tier-only-model-selection":aC,"078-automation-tool-call-kind":rC,"079-strip-legacy-freestyle-vm-map-entries":lC,"080-async-research-jobs":eC,"081-async-research-jobs-result-content":dC,"082-secrets":bC,"083-thread-run-locally":sC,"084-drop-host-sandbox-rows":_K,"085-rename-runner-kind":xK,"086-thread-pins-and-vm-map-rekey":uK,"087-fix-vm-map-rekey":CK,"088-purge-cli-activate-keys":KK,"089-rename-remote-user-to-desktop":NK,"090-automation-webhook-triggers":mK,"091-organization-domains-allow-multi":TK,"092-sandbox-naming-uniformization":zK,"093-backfill-global-search-basic-usage":EK,"094-org-file-configs":UK,"095-remove-automation-tool-call-kind":PK,"096-org-file-configs-public-url-base":JK,"097-drop-local-docker-sandbox-state":QK,"098-thread-message-parts":ZK,"099-run-fence":WK,"100-link-transport":jK,"101-cancel-requested-at":LK,"102-observational-agent":FK,"103-revert-observational-agent":YK,"104-agent-sandbox-provider-kind":HK,"105-org-fs":MK,"106-automation-tools":RK,"107-org-fs-public-org":BK,"108-automation-max-agent-steps":GK,"109-thread-message-parts-per-message-seq":OK,"110-backfill-ghs-token-expiry":SK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":AK,"113-thread-failure-reason":IK,"114-run-acked-seq":yK,"115-thread-projected-seq":VK,"116-org-sites":wK,"117-org-file-configs-site-slug":kK,"118-organization-domains-multi-verify":nK,"119-organization-join-requests":vK,"120-org-fs-read-public":pK,"121-org-fs-share-password":gK,"122-split-web-research-tier":cK,"123-connection-credential-vault":hK,"124-drop-thread-projected-seq":tK,"125-github-child-single-parent":oK,"126-task-board":rK,"127-task-board-due-date":lK,"128-reports-only":eK,"129-task-board-assigned-by":dK,"130-task-board-thread-id":bK,"131-task-board-thread-link-cascade":sK,"132-task-board-item-prs":_N,"133-dedupe-duplicate-members":xN,"134-drop-task-board-enabled":uN,"135-task-board-item-fk-cascade":CN,"136-task-board-import-idempotency":KN,"137-agent-sandbox-runner-state":NN,"138-agent-sandbox-sessions":mN,"139-organization-billing":TN,"140-seat-change-log":zN,"141-benefits-sync-pending":EN,"142-stripe-event-watermark":$N,"143-armed-report-url":UN,"144-benefits-pending-index":PN,"145-user-model-preferences":JN,"146-organization-main-agent":XN,"147-drop-agent-sandbox-tables":QN,"148-org-flags":ZN,"149-task-board-item-sort-order":WN,"150-task-board-activity":jN,"151-task-board-tags":FN,"152-repair-connection-slug":DN,"153-task-board-latest-assistant-part-index":HN,"154-task-board-qa-activity":RN,"155-task-board-review-claims":BN,"156-task-board-conflict-activity":ON,"157-drop-seat-billing":SN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":AN,"160-task-quota-billing":IN,"161-task-quota-claim-state":VN,"162-claude-subscriptions":wN,"163-task-board-item-dismissed":kN,"164-per-org-task-quota":nN,"165-task-board-pending-review-index":vN,"166-task-board-last-swept-at":pN,"167-task-board-run-retry":gN,"168-org-repo-sync":iN,"169-task-board-merge-failed-activity":hN,"170-task-board-item-repo":tN,"171-jira-integration":oN,"172-task-board-item-key-seq":aN,"173-thread-github-repo-connection-index":rN,"174-thread-message-parts-persisted-at":eN,"175-task-board-sprints":dN,"176-task-board-done-sweep-index":bN,"177-notifications":sN,"178-jira-status-mapping-array":_m,"179-notification-mentioned":um,"180-task-board-item-type":Km,"181-task-board-item-type-required":Nm,"182-task-board-sprints-entities":mm,"183-drop-jira-jql-filter":Tm,"184-jira-rescan-after-scope-change":zm,"185-jira-rescan-existing-cards":Em,"186-jira-rescan-pending-flag":Um,"187-task-board-comment-thread":Pm,"188-invitation-auto-accept":Jm,"189-task-board-column-automations":Qm,"190-task-board-review-cycle-started-at":Zm,"191-task-board-columns":Wm,"192-task-board-verdict-nudge-activity":Lm,"193-task-board-status-column-fk":Fm,"194-jira-link-sprint":Ym,"195-task-board-sprint-activity":Hm,"196-task-board-column-tracker-statuses":Mm,"197-task-board-prompts":Rm,"198-task-board-external-url":Bm,"199-drop-jira-mirror-and-org-columns":Gm,"200-jira-run-trigger":Om,"201-organization-notices":Sm,"202-redact-base64-thread-parts":Am,"203-task-board-preview-routes":Im,"204-git-provider-accounts-and-repositories":ym,"205-repository-references":Vm,"206-repository-consumers":Wu,"207-task-board-prs-repo-idx":Zu,"208-github-connect-flows":Qu,"209-github-installation-authorization":Xu,"210-github-repository-authorization":mu,"211-user-fs-org":Nu,"212-coding-agent-mcp-excluded":Tu,"213-bitbucket-git-provider":zu,"214-connections-sanitized-id-idx":xu,"215-commerce-discovery-repository":uu,"216-github-cli-auth":Ku,"217-experiments":Eu,"218-thread-message-parts-error-idx":$u,"219-task-board-duplicate-reported-activity":Pu,"220-jira-automation-continue-pr":Ju,"221-remove-private-registry":Wx,"222-org-git-credentials":jx,"223-drop-org-main-agent-id":_u,"224-repository-sandbox-image":Lx,"225-thread-analytics-indexes":Yx,"226-deco-score-names":Hx,"227-task-board-finding-resolved-activity":Rx,"228-org-voice-config":Zx,"229-jira-automation-from":Bx,"230-project-sidebar":Gx,"231-jira-chat-agent":Ox,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":Ix,"234-task-board-comment-audience":yx,"235-prune-empty-thread-dirs":Vx,"236-task-board-sprints":kx,"237-org-sites-project-link":nx,"238-task-board-default-lanes":vx,"239-task-board-retire-old-lanes":px,"240-task-board-restore-todo":gx,"241-automation-board-column-transition":qx,"242-connection-url-slug":ix,"243-experiment-task-board-item":cx,"244-connection-url-slug-rollout-backfill":hx,"245-automation-system-key":tx,"246-automation-pr-ready-trigger":ox,"247-automation-jira-transition":ax,"248-drop-retired-rule-tables":rx,"249-task-board-item-project":lx,"250-github-copilot-subscriptions":ex,"251-org-shared-plans":dx,"252-automation-linked-chat-trigger":bx,"253-automation-pr-builtin-triggers":sx,"254-codex-subscriptions":Jx,"255-order-monitor":Qx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px},mx=gW;import{getMigrations as L9}from"better-auth/db";import{sso as F9}from"@better-auth/sso";import{organization as Y9}from"@decocms/better-auth/plugins";import{admin as D9,apiKey as H9,jwt as M9,magicLink as R9,mcp as B9,openAPI as G9}from"better-auth/plugins";import{emailOTP as O9}from"better-auth/plugins/email-otp";import{Kysely as U9,PostgresDialect as Bz}from"kysely";import{Pool as Gz}from"pg";import{homedir as qW}from"os";var iW=new Set(["all","worker","api"]);function cW(_){let x=(_??"").trim();return iW.has(x)?x:"all"}var hW=new Set(["production","development","test"]);function tW(_){let x=(_??"").trim();return hW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function km(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return km(_,x,N)??u}function oW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function aW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function wm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function rW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Wz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${qW()}/deco`,u=tW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:km("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:oW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:aW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:wm(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:wm(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:rW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:km("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:cW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:wm(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var lW=null;function K_(){return lW??=Object.freeze(Wz(process.env))}import{createContextKey as x9,metrics as u9,propagation as I8,ROOT_CONTEXT as y8,SpanStatusCode as V8,trace as C9}from"@opentelemetry/api";import{logs as K9,SeverityNumber as nm}from"@opentelemetry/api-logs";import{OTLPLogExporter as n8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as N9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as g8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as i8}from"@opentelemetry/instrumentation-runtime-node";import{context as B5,propagation as G5,SpanKind as O5,SpanStatusCode as S5}from"@opentelemetry/api";var A5=globalThis.fetch;import{ExportResultCode as c5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as eW,rename as dW,writeFile as bW}from"fs/promises";import{join as zx}from"path";class Ex{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Tx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await eW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
2404
+ `.execute(_)}var hW={"001-initial-schema":Lu,"002-organization-settings":Fu,"003-connection-schema-align":Yu,"004-remove-models-binding":Du,"005-connection-configuration":Hu,"006-add-views-to-settings":Mu,"007-monitoring-logs":Ru,"008-event-bus":Bu,"009-drop-audit-logs":Gu,"010-gateways":Ou,"011-gateway-icon":Su,"012-gateway-tool-selection-mode":Au,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Iu,"015-monitoring-properties":yu,"016-downstream-token-client-info":Vu,"017-downstream-token-remove-userid":wu,"018-drop-gateway-tool-selection-strategy":ku,"019-remove-gateway-is-default":nu,"020-enabled-plugins":vu,"021-threads":pu,"022-rename-gateway-to-virtual-mcp":gu,"023-optimize-thread-indexes":qu,"024-consolidate-virtual-mcp":iu,"025-add-monitoring-virtual-mcp-id":cu,"026-restrict-child-connection-delete":hu,"027-update-management-mcp-url":ou,"028-update-management-mcp-to-self":ru,"029-add-updated-by-to-connections":lu,"030-member-tags":eu,"031-add-dependency-mode":du,"032-projects":bu,"033-thread-status":su,"034-monitoring-dashboards":_C,"035-project-connections":xC,"036-update-registry-url":uC,"037-ai-provider-keys":CC,"038-oauth-pkce-states":KC,"039-automations":NC,"040-replace-next-run-at-with-last-run-at":mC,"041-ai-provider-keys-unique-constraint":TC,"042-rename-mesh-mcp-to-cms-mcp":zC,"043-rename-cms-mcp-to-deco-cms":EC,"044-drop-connections-tools-column":$C,"045-thread-context-start-message":UC,"046-remove-object-storage-plugin":JC,"047-add-next-run-at":XC,"048-merge-projects-agents":ZC,"049-remove-org-admin-projects":WC,"050-durable-agent-runs":jC,"051-org-sso":FC,"052-thread-agent-ids":YC,"053-registry-config":DC,"054-connection-slug":MC,"055-spaces":RC,"056-automation-project-scope":BC,"057-thread-virtual-mcp-id":GC,"058-trigger-callback-tokens":OC,"059-kv":SC,"060-member-index":AC,"061-downstream-token-connection-index":fC,"062-private-registry":IC,"063-event-subscriptions-enabled-boolean":yC,"064-brand-context":VC,"065-organization-domains":wC,"066-brand-context-structured":kC,"067-threads-metadata":nC,"068-threads-branch":vC,"069-sandbox-runner-state":pC,"070-model-categories":gC,"071-default-home-agents":qC,"072-ai-provider-key-preset-id":iC,"073-backfill-basic-usage-roles":cC,"074-sandbox-runner-state-handle-nonunique":hC,"075-thread-inflight-async-jobs":tC,"076-automations-drop-agent-json":oC,"077-tier-only-model-selection":rC,"078-automation-tool-call-kind":lC,"079-strip-legacy-freestyle-vm-map-entries":eC,"080-async-research-jobs":dC,"081-async-research-jobs-result-content":bC,"082-secrets":sC,"083-thread-run-locally":_K,"084-drop-host-sandbox-rows":xK,"085-rename-runner-kind":uK,"086-thread-pins-and-vm-map-rekey":CK,"087-fix-vm-map-rekey":KK,"088-purge-cli-activate-keys":NK,"089-rename-remote-user-to-desktop":mK,"090-automation-webhook-triggers":TK,"091-organization-domains-allow-multi":zK,"092-sandbox-naming-uniformization":EK,"093-backfill-global-search-basic-usage":$K,"094-org-file-configs":PK,"095-remove-automation-tool-call-kind":JK,"096-org-file-configs-public-url-base":XK,"097-drop-local-docker-sandbox-state":ZK,"098-thread-message-parts":WK,"099-run-fence":jK,"100-link-transport":LK,"101-cancel-requested-at":FK,"102-observational-agent":YK,"103-revert-observational-agent":DK,"104-agent-sandbox-provider-kind":MK,"105-org-fs":RK,"106-automation-tools":BK,"107-org-fs-public-org":GK,"108-automation-max-agent-steps":OK,"109-thread-message-parts-per-message-seq":SK,"110-backfill-ghs-token-expiry":AK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":IK,"113-thread-failure-reason":yK,"114-run-acked-seq":VK,"115-thread-projected-seq":wK,"116-org-sites":kK,"117-org-file-configs-site-slug":nK,"118-organization-domains-multi-verify":vK,"119-organization-join-requests":pK,"120-org-fs-read-public":gK,"121-org-fs-share-password":qK,"122-split-web-research-tier":hK,"123-connection-credential-vault":tK,"124-drop-thread-projected-seq":oK,"125-github-child-single-parent":aK,"126-task-board":lK,"127-task-board-due-date":eK,"128-reports-only":dK,"129-task-board-assigned-by":bK,"130-task-board-thread-id":sK,"131-task-board-thread-link-cascade":_N,"132-task-board-item-prs":xN,"133-dedupe-duplicate-members":uN,"134-drop-task-board-enabled":CN,"135-task-board-item-fk-cascade":KN,"136-task-board-import-idempotency":NN,"137-agent-sandbox-runner-state":mN,"138-agent-sandbox-sessions":TN,"139-organization-billing":zN,"140-seat-change-log":EN,"141-benefits-sync-pending":$N,"142-stripe-event-watermark":UN,"143-armed-report-url":PN,"144-benefits-pending-index":JN,"145-user-model-preferences":XN,"146-organization-main-agent":QN,"147-drop-agent-sandbox-tables":ZN,"148-org-flags":WN,"149-task-board-item-sort-order":jN,"150-task-board-activity":LN,"151-task-board-tags":YN,"152-repair-connection-slug":HN,"153-task-board-latest-assistant-part-index":MN,"154-task-board-qa-activity":BN,"155-task-board-review-claims":GN,"156-task-board-conflict-activity":SN,"157-drop-seat-billing":AN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":IN,"160-task-quota-billing":yN,"161-task-quota-claim-state":wN,"162-claude-subscriptions":kN,"163-task-board-item-dismissed":nN,"164-per-org-task-quota":vN,"165-task-board-pending-review-index":pN,"166-task-board-last-swept-at":gN,"167-task-board-run-retry":qN,"168-org-repo-sync":cN,"169-task-board-merge-failed-activity":tN,"170-task-board-item-repo":oN,"171-jira-integration":aN,"172-task-board-item-key-seq":rN,"173-thread-github-repo-connection-index":lN,"174-thread-message-parts-persisted-at":dN,"175-task-board-sprints":bN,"176-task-board-done-sweep-index":sN,"177-notifications":_m,"178-jira-status-mapping-array":xm,"179-notification-mentioned":Cm,"180-task-board-item-type":Nm,"181-task-board-item-type-required":mm,"182-task-board-sprints-entities":Tm,"183-drop-jira-jql-filter":zm,"184-jira-rescan-after-scope-change":Em,"185-jira-rescan-existing-cards":$m,"186-jira-rescan-pending-flag":Pm,"187-task-board-comment-thread":Jm,"188-invitation-auto-accept":Xm,"189-task-board-column-automations":Zm,"190-task-board-review-cycle-started-at":Wm,"191-task-board-columns":jm,"192-task-board-verdict-nudge-activity":Fm,"193-task-board-status-column-fk":Ym,"194-jira-link-sprint":Dm,"195-task-board-sprint-activity":Mm,"196-task-board-column-tracker-statuses":Rm,"197-task-board-prompts":Bm,"198-task-board-external-url":Gm,"199-drop-jira-mirror-and-org-columns":Om,"200-jira-run-trigger":Sm,"201-organization-notices":Am,"202-redact-base64-thread-parts":Im,"203-task-board-preview-routes":ym,"204-git-provider-accounts-and-repositories":Vm,"205-repository-references":wm,"206-repository-consumers":ju,"207-task-board-prs-repo-idx":Wu,"208-github-connect-flows":Zu,"209-github-installation-authorization":Qu,"210-github-repository-authorization":Tu,"211-user-fs-org":mu,"212-coding-agent-mcp-excluded":zu,"213-bitbucket-git-provider":Eu,"214-connections-sanitized-id-idx":uu,"215-commerce-discovery-repository":Cu,"216-github-cli-auth":Nu,"217-experiments":$u,"218-thread-message-parts-error-idx":Uu,"219-task-board-duplicate-reported-activity":Ju,"220-jira-automation-continue-pr":Xu,"221-remove-private-registry":jx,"222-org-git-credentials":Lx,"223-drop-org-main-agent-id":xu,"224-repository-sandbox-image":Fx,"225-thread-analytics-indexes":Dx,"226-deco-score-names":Mx,"227-task-board-finding-resolved-activity":Bx,"228-org-voice-config":Wx,"229-jira-automation-from":Gx,"230-project-sidebar":Ox,"231-jira-chat-agent":Sx,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":yx,"234-task-board-comment-audience":Vx,"235-prune-empty-thread-dirs":wx,"236-task-board-sprints":nx,"237-org-sites-project-link":vx,"238-task-board-default-lanes":px,"239-task-board-retire-old-lanes":gx,"240-task-board-restore-todo":qx,"241-automation-board-column-transition":ix,"242-connection-url-slug":cx,"243-experiment-task-board-item":hx,"244-connection-url-slug-rollout-backfill":tx,"245-automation-system-key":ox,"246-automation-pr-ready-trigger":ax,"247-automation-jira-transition":rx,"248-drop-retired-rule-tables":lx,"249-task-board-item-project":ex,"250-github-copilot-subscriptions":dx,"251-org-shared-plans":bx,"252-automation-linked-chat-trigger":sx,"253-automation-pr-builtin-triggers":_u,"254-codex-subscriptions":Xx,"255-order-monitor":Zx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px,"259-repository-monitor-deploys":Jx},mx=hW;import{getMigrations as H9}from"better-auth/db";import{sso as M9}from"@better-auth/sso";import{organization as R9}from"@decocms/better-auth/plugins";import{admin as B9,apiKey as G9,jwt as O9,magicLink as S9,mcp as A9,openAPI as f9}from"better-auth/plugins";import{emailOTP as I9}from"better-auth/plugins/email-otp";import{Kysely as Q9,PostgresDialect as Oz}from"kysely";import{Pool as Sz}from"pg";import{homedir as tW}from"os";var oW=new Set(["all","worker","api"]);function aW(_){let x=(_??"").trim();return oW.has(x)?x:"all"}var rW=new Set(["production","development","test"]);function lW(_){let x=(_??"").trim();return rW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function nm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return nm(_,x,N)??u}function eW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function dW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function km(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function bW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Lz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${tW()}/deco`,u=lW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:nm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:eW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:dW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:km(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:km(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:bW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:nm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:aW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:km(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var sW=null;function K_(){return sW??=Object.freeze(Lz(process.env))}import{createContextKey as N9,metrics as m9,propagation as n8,ROOT_CONTEXT as v8,SpanStatusCode as p8,trace as T9}from"@opentelemetry/api";import{logs as z9,SeverityNumber as vm}from"@opentelemetry/api-logs";import{OTLPLogExporter as i8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as E9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as t8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as a8}from"@opentelemetry/instrumentation-runtime-node";import{context as f5,propagation as I5,SpanKind as y5,SpanStatusCode as V5}from"@opentelemetry/api";var k5=globalThis.fetch;import{ExportResultCode as r5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as _9,rename as x9,writeFile as u9}from"fs/promises";import{join as zx}from"path";class Ex{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:Tx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await _9(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
2400
2405
  `)+`
2401
- `;await bW(T,E,{mode:384}),await dW(T,z)}}import{ExportResultCode as r5}from"@opentelemetry/core";import{AggregationTemporality as e5,DataPointType as d5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as C8}from"@opentelemetry/core";var T8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as d8,LoggerProvider as b8}from"@opentelemetry/sdk-logs";import{detectResources as _3,envDetector as x3,hostDetector as u3,osDetector as C3,processDetector as K3,resourceFromAttributes as N3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as T3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as $8}from"@opentelemetry/api-logs";import{NodeSDK as $3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as P3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Q8}from"@opentelemetry/api";var m9="__d",T9=x9("Current request"),z9=1;var Lz=(_)=>{let u=new URL(_.url).searchParams.get(m9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Fz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(T9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Lz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Yz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var X3=new N9({preventServerStart:!0}),Q3=new Fz(new Yz(z9));var jz=C9.getTracer("studio","1.0.0"),M_=u9.getMeter("studio","1.0.0"),E9=K9.getLogger("studio","1.0.0"),vm=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");E9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},pm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{vm(nm.ERROR,"ERROR",_),pm.error(..._)};console.warn=(..._)=>{vm(nm.WARN,"WARN",_),pm.warn(..._)};console.debug=(..._)=>{vm(nm.DEBUG,"DEBUG",_),pm.debug(..._)};var gm,Dz=0,qm=500;function $9(){if(gm)return;let _=performance.now()+qm;gm=setInterval(()=>{let x=performance.now();Dz=Math.max(0,x-_),_=x+qm},qm),gm.unref?.()}function Hz(){return $9(),Dz}var P9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Mz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Rz=400,J9=100,X9=(_)=>({"db.status":_.level==="error"?"error":"success"}),Q9=(_)=>(x)=>{let u=X9(x);if(x.queryDurationMillis>Rz){let N=Hz(),K=N>Rz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:$x()}})}if(P9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function Z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=$x(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Mz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>J9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Mz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Oz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Sz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function W9(_){let x=Z9(new Gz({connectionString:_,max:$x(),ssl:Sz(),...Oz})),u=new Bz({pool:x});return{type:"postgres",db:new U9({dialect:u,log:Q9(x)}),pool:x}}function B_(){return K_().databaseUrl}function fz(_){let x=_||B_();return new Bz({pool:new Gz({connectionString:x,max:$x(),ssl:Sz(),...Oz})})}function j9(_){let x=_||B_();return W9(x)}async function Az(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function im(){if(!R_)R_=j9(B_());return R_}async function Iz(_){let u={database:fz(_||B_()),plugins:[Y9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),D9(),H9(),M9(),G9(),B9({loginPage:"/login"}),F9(),R9({sendMagicLink:async()=>{}}),O9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await L9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function cm(_,x){return(await o`
2406
+ `;await u9(T,E,{mode:384}),await x9(T,z)}}import{ExportResultCode as s5}from"@opentelemetry/core";import{AggregationTemporality as x8,DataPointType as u8}from"@opentelemetry/sdk-metrics";import{ExportResultCode as z8}from"@opentelemetry/core";var P8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as u3,LoggerProvider as C3}from"@opentelemetry/sdk-logs";import{detectResources as N3,envDetector as m3,hostDetector as T3,osDetector as z3,processDetector as E3,resourceFromAttributes as $3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as P3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Q8}from"@opentelemetry/api-logs";import{NodeSDK as Q3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as W3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as F8}from"@opentelemetry/api";var $9="__d",U9=N9("Current request"),P9=1;var Yz=(_)=>{let u=new URL(_.url).searchParams.get($9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Dz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(U9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Yz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Hz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var L3=new E9({preventServerStart:!0}),F3=new Dz(new Hz(P9));var Fz=T9.getTracer("studio","1.0.0"),M_=m9.getMeter("studio","1.0.0"),J9=z9.getLogger("studio","1.0.0"),pm=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");J9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},gm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{pm(vm.ERROR,"ERROR",_),gm.error(..._)};console.warn=(..._)=>{pm(vm.WARN,"WARN",_),gm.warn(..._)};console.debug=(..._)=>{pm(vm.DEBUG,"DEBUG",_),gm.debug(..._)};var qm,Mz=0,im=500;function X9(){if(qm)return;let _=performance.now()+im;qm=setInterval(()=>{let x=performance.now();Mz=Math.max(0,x-_),_=x+im},im),qm.unref?.()}function Rz(){return X9(),Mz}var Z9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Bz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Gz=400,W9=100,j9=(_)=>({"db.status":_.level==="error"?"error":"success"}),L9=(_)=>(x)=>{let u=j9(x);if(x.queryDurationMillis>Gz){let N=Rz(),K=N>Gz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:$x()}})}if(Z9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function F9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=$x(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Bz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>W9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Bz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Az={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function fz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function Y9(_){let x=F9(new Sz({connectionString:_,max:$x(),ssl:fz(),...Az})),u=new Oz({pool:x});return{type:"postgres",db:new Q9({dialect:u,log:L9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Iz(_){let x=_||B_();return new Oz({pool:new Sz({connectionString:x,max:$x(),ssl:fz(),...Az})})}function D9(_){let x=_||B_();return Y9(x)}async function yz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function cm(){if(!R_)R_=D9(B_());return R_}async function Vz(_){let u={database:Iz(_||B_()),plugins:[R9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),B9(),G9(),O9(),f9(),A9({loginPage:"/login"}),M9(),S9({sendMagicLink:async()=>{}}),I9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await H9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function hm(_,x){return(await o`
2402
2407
  SELECT table_name FROM information_schema.tables
2403
2408
  WHERE table_schema='public' AND table_name=${x}
2404
- `.execute(_)).rows.length>0}async function S9(_){if(await cm(_,"plugin_migrations"))return;await o`
2409
+ `.execute(_)).rows.length>0}async function y9(_){if(await hm(_,"plugin_migrations"))return;await o`
2405
2410
  CREATE TABLE plugin_migrations (
2406
2411
  plugin_id TEXT NOT NULL,
2407
2412
  name TEXT NOT NULL,
2408
2413
  timestamp TEXT NOT NULL,
2409
2414
  PRIMARY KEY (plugin_id, name)
2410
2415
  )
2411
- `.execute(_)}async function f9(_){if(!await cm(_,"kysely_migration"))return;let x=await o`
2416
+ `.execute(_)}async function V9(_){if(!await hm(_,"kysely_migration"))return;let x=await o`
2412
2417
  SELECT name, timestamp FROM kysely_migration
2413
2418
  WHERE name LIKE '%/%'
2414
2419
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
@@ -2419,6 +2424,6 @@ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null
2419
2424
  WHERE plugin_id = ${T} AND name = ${z}
2420
2425
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
2421
2426
  DELETE FROM kysely_migration WHERE name = ${u}
2422
- `.execute(_)}}async function A9(_){if(!await cm(_,"kysely_migration"))return{};let{rows:x}=await o`
2427
+ `.execute(_)}}async function w9(_){if(!await hm(_,"kysely_migration"))return{};let{rows:x}=await o`
2423
2428
  SELECT name FROM kysely_migration
2424
- `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function I9(_){await S9(_),await f9(_);let x=new yz({db:_,provider:{getMigrations:async()=>({...await A9(_),...mx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function y9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Iz();let m=u??im(),T=async()=>{if(!x&&!u)await Az(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await I9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function t3(){let _=im(),x=new yz({db:_.db,provider:{getMigrations:()=>Promise.resolve(mx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await y9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{I9 as runKyselyMigrations,y9 as migrateToLatest,t3 as migrateDown};
2429
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function k9(_){await y9(_),await V9(_);let x=new wz({db:_,provider:{getMigrations:async()=>({...await w9(_),...mx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function n9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Vz();let m=u??cm(),T=async()=>{if(!x&&!u)await yz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await k9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function e3(){let _=cm(),x=new wz({db:_.db,provider:{getMigrations:()=>Promise.resolve(mx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await n9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{k9 as runKyselyMigrations,n9 as migrateToLatest,e3 as migrateDown};