decocms 4.526.1 → 4.527.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 (399) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-3Qv8pgS7.js → ActiveShapeUtils-CLeQm0q6.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-C8rwN6lq.js → AlertCircle-D9_evsvO.js} +1 -1
  3. package/dist/client/assets/{AreaChart-CUZBfQth.js → AreaChart-D4vFJ6vT.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-DA6W7NwW.js → ArrowLeft-B6qwUpLq.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-DOqWtjlR.js → ArrowUp-Cth_eVmU.js} +1 -1
  6. package/dist/client/assets/{BarChart-CQ6w7DQe.js → BarChart-DLJTWg68.js} +1 -1
  7. package/dist/client/assets/{Building02-Do3lJJG5.js → Building02-Wh9pimKL.js} +1 -1
  8. package/dist/client/assets/{CartesianChart-CLY0Gd8n.js → CartesianChart-DgnFHqiR.js} +1 -1
  9. package/dist/client/assets/{CategoricalChart-BOJbYjnl.js → CategoricalChart-ChFkF0_C.js} +1 -1
  10. package/dist/client/assets/{CheckCircle-BC_4MefA.js → CheckCircle-DoJXwawU.js} +1 -1
  11. package/dist/client/assets/{ChevronSelectorVertical-DmnbHDqu.js → ChevronSelectorVertical-CnRBP_5y.js} +1 -1
  12. package/dist/client/assets/{ChevronUp-BnMEqZ-7.js → ChevronUp-7SZxJu8w.js} +1 -1
  13. package/dist/client/assets/{Copy01-DhHOI-Q9.js → Copy01-Bu20fOqK.js} +1 -1
  14. package/dist/client/assets/{CreditCard01-Dw2OjkWU.js → CreditCard01-Br0-9pHI.js} +1 -1
  15. package/dist/client/assets/{DotsVertical-B-InRCR0.js → DotsVertical-OSj5km5S.js} +1 -1
  16. package/dist/client/assets/{ErrorBarContext-DivKrUmF.js → ErrorBarContext-BvjdLnvD.js} +1 -1
  17. package/dist/client/assets/{Globe04-CtMJQj21.js → Globe04-D4srY_QI.js} +1 -1
  18. package/dist/client/assets/{Image01-DKlCpScV.js → Image01-CzYWCBEQ.js} +1 -1
  19. package/dist/client/assets/{Key01-DBwoRjUY.js → Key01-C-bam-4X.js} +1 -1
  20. package/dist/client/assets/{Link01-BBqxtXMI.js → Link01-DXRUIbxg.js} +1 -1
  21. package/dist/client/assets/{LinkBroken01-CAJodWFv.js → LinkBroken01-gdfveCgK.js} +1 -1
  22. package/dist/client/assets/{Minus-DiHVm4BN.js → Minus-Czu3kpSA.js} +1 -1
  23. package/dist/client/assets/{Monitor01-BhbrGCAs.js → Monitor01-CruCSnyq.js} +1 -1
  24. package/dist/client/assets/{Play-BcZ_GeUq.js → Play-RzA3Niav.js} +1 -1
  25. package/dist/client/assets/{Plus-c2_sBI5f.js → Plus-BA90GKs1.js} +1 -1
  26. package/dist/client/assets/{ReferenceLine-BSuRAWbV.js → ReferenceLine-8vT4zADE.js} +1 -1
  27. package/dist/client/assets/{SearchMd-CbbZJW9W.js → SearchMd-DO1eOJvD.js} +1 -1
  28. package/dist/client/assets/{Sector-DByNfs86.js → Sector-Duu5xYm_.js} +1 -1
  29. package/dist/client/assets/{ShoppingBag01-6U3SUMRX.js → ShoppingBag01-BuVMkUkJ.js} +1 -1
  30. package/dist/client/assets/{Sun-DVWc_O6K.js → Sun-Cg4UcsIP.js} +1 -1
  31. package/dist/client/assets/{SwitchHorizontal01-CxSk-wEa.js → SwitchHorizontal01-D_E9YPjp.js} +1 -1
  32. package/dist/client/assets/{Tool01-BxbHHa0T.js → Tool01-BJdrlQAn.js} +1 -1
  33. package/dist/client/assets/{Trash01-BuZ3631A.js → Trash01-DcsYDVg8.js} +1 -1
  34. package/dist/client/assets/{Upload01-Bo2ttnFV.js → Upload01-CYUmJE5W.js} +1 -1
  35. package/dist/client/assets/{UserSquare-DCu-qtdW.js → UserSquare-D0z8lAkn.js} +1 -1
  36. package/dist/client/assets/{Users01-BC6qYZnG.js → Users01-Y9yFg_2K.js} +1 -1
  37. package/dist/client/assets/{XClose-DVoCm2qG.js → XClose-DIFkFXp0.js} +1 -1
  38. package/dist/client/assets/{ZoomOut-lxtq8ebL.js → ZoomOut-rfozMzwP.js} +1 -1
  39. package/dist/client/assets/{access-gate-DFESwNfG.js → access-gate-5CuwEsfU.js} +1 -1
  40. package/dist/client/assets/{add-connection-dialog-Cr3ZfKtA.js → add-connection-dialog-Dl0GCijo.js} +1 -1
  41. package/dist/client/assets/agent-analytics-DekAZPEA.js +1 -0
  42. package/dist/client/assets/agent-app-CTIntyRO.js +1 -0
  43. package/dist/client/assets/{agent-assets-B9JCrCq8.js → agent-assets-Bca92OI9.js} +1 -1
  44. package/dist/client/assets/{agent-automation-BvEH3OZS.js → agent-automation-CMS-kRWl.js} +1 -1
  45. package/dist/client/assets/{agent-automations-Ck8TQkBX.js → agent-automations-BnnaEANZ.js} +1 -1
  46. package/dist/client/assets/{agent-calendar-BDOSxsW_.js → agent-calendar-BOwlx26G.js} +1 -1
  47. package/dist/client/assets/{agent-connect-sources-CeRfuvcX.js → agent-connect-sources-BXy938hL.js} +1 -1
  48. package/dist/client/assets/agent-deck-Blwg0xlI.js +1 -0
  49. package/dist/client/assets/{agent-e2e-CLQ2N5KQ.js → agent-e2e-C129i6b0.js} +1 -1
  50. package/dist/client/assets/agent-experiments-Dh0XTNYQ.js +1 -0
  51. package/dist/client/assets/{agent-file-DCiJJt_1.js → agent-file-Pm-Pf6i7.js} +1 -1
  52. package/dist/client/assets/{agent-hosting-_4iDaET9.js → agent-hosting-d0mTmoi-.js} +1 -1
  53. package/dist/client/assets/{agent-icon-Di1pcjRb.js → agent-icon-C1y4Hi5E.js} +1 -1
  54. package/dist/client/assets/agent-library-BvqNBNnB.js +1 -0
  55. package/dist/client/assets/agent-library-file-B3CNW-Ur.js +1 -0
  56. package/dist/client/assets/agent-monitor-CRDNCfA0.js +1 -0
  57. package/dist/client/assets/{agent-overview-CRm01uUj.js → agent-overview-Dxkm_aaP.js} +1 -1
  58. package/dist/client/assets/{agent-releases-DWG_3zoJ.js → agent-releases-Cm87ANGo.js} +1 -1
  59. package/dist/client/assets/agent-settings-BO1V25up.js +1 -0
  60. package/dist/client/assets/{agent-site-editor-C_bY3W2I.js → agent-site-editor-DvH8IVvU.js} +1 -1
  61. package/dist/client/assets/agent-site-editor-code-C_cxtapJ.js +2 -0
  62. package/dist/client/assets/agent-site-editor-content-BGtWv50J.js +1 -0
  63. package/dist/client/assets/agent-site-editor-preview-B0XVbr7I.js +1 -0
  64. package/dist/client/assets/{agent-view-guard-stsCu2yk.js → agent-view-guard-DSdm7lha.js} +1 -1
  65. package/dist/client/assets/agent-view-sQDimm56.js +1 -0
  66. package/dist/client/assets/{agents-list-Drp41B4W.js → agents-list-3hk3xPXP.js} +1 -1
  67. package/dist/client/assets/{ai-providers-ymvf69U2.js → ai-providers-CHbdsaF9.js} +1 -1
  68. package/dist/client/assets/{alert-a-ykuY-J.js → alert-DiPve0LV.js} +1 -1
  69. package/dist/client/assets/{analytics-sections-zQrwPGQJ.js → analytics-sections-CQH2mNjC.js} +1 -1
  70. package/dist/client/assets/{analytics-tab-CkitXnj6.js → analytics-tab-D1CO6HBg.js} +1 -1
  71. package/dist/client/assets/api-keys-6VZ4TzW2.js +1 -0
  72. package/dist/client/assets/{api-keys-CddzjTlY.js → api-keys-CsjJKvfD.js} +1 -1
  73. package/dist/client/assets/{app-editor-DIJglJJe.js → app-editor-ajdhmZLY.js} +1 -1
  74. package/dist/client/assets/{asset-utils-C_AVaAoE.js → asset-utils-ClXQ82gA.js} +1 -1
  75. package/dist/client/assets/{auth-CrD9p86I.js → auth-BJe1aOgg.js} +1 -1
  76. package/dist/client/assets/{auth-catchall-BsEXKDlO.js → auth-catchall-CeL8XspO.js} +1 -1
  77. package/dist/client/assets/{auth-entry-BNMHPKIK.js → auth-entry-Bux_mJRN.js} +1 -1
  78. package/dist/client/assets/{auth-split-layout-BjtZdEYq.js → auth-split-layout-TRenqsIV.js} +1 -1
  79. package/dist/client/assets/{authenticate-and-persist-oauth-C8UpgkvH.js → authenticate-and-persist-oauth-BhtEjQrU.js} +1 -1
  80. package/dist/client/assets/{automation-list-row-xTorJPTy.js → automation-list-row-DtC2tENT.js} +1 -1
  81. package/dist/client/assets/{automation-runs-DWryzRp5.js → automation-runs-BDvJXwcu.js} +1 -1
  82. package/dist/client/assets/{automations-BzmXycMB.js → automations-Qapln07Q.js} +1 -1
  83. package/dist/client/assets/{autosend-DXH6RsEM.js → autosend-BKwtMB6P.js} +1 -1
  84. package/dist/client/assets/{badge-DNQVmTxF.js → badge-Dne4Jx9I.js} +1 -1
  85. package/dist/client/assets/{block-document-D1QOl1Oz.js → block-document-Cs719bjv.js} +1 -1
  86. package/dist/client/assets/{blocks-preview-workspace-context-CLMQ_4RI.js → blocks-preview-workspace-context-DUWc_2XG.js} +1 -1
  87. package/dist/client/assets/{blocks-tab-states-BQcKMsso.js → blocks-tab-states-DBqkaxym.js} +1 -1
  88. package/dist/client/assets/{blog-schema-1IwdWH9d.js → blog-schema-bP1Fdz76.js} +1 -1
  89. package/dist/client/assets/{buckets-Do7nX161.js → buckets-DIalMn5g.js} +1 -1
  90. package/dist/client/assets/{build-improve-prompt-doc-DDR2Aibs.js → build-improve-prompt-doc-CxMWosB4.js} +1 -1
  91. package/dist/client/assets/{calendar-DSTJzxxj.js → calendar-DqTMQkmt.js} +1 -1
  92. package/dist/client/assets/{capability-load-error-RgpugPdP.js → capability-load-error-C2YNxboS.js} +1 -1
  93. package/dist/client/assets/{category-editor-DD5zZ2D-.js → category-editor-DcJjRuKm.js} +1 -1
  94. package/dist/client/assets/{cdn-tab-BGM8bPPG.js → cdn-tab-qQFB8_vy.js} +1 -1
  95. package/dist/client/assets/{chart-PwHQXgEM.js → chart-CnvxVWLO.js} +1 -1
  96. package/dist/client/assets/{chat-context-QAdvSmpg.js → chat-context-C2Yxk7gW.js} +1 -1
  97. package/dist/client/assets/{chat-draft-JWz-JS1X.js → chat-draft-CoNCF5e9.js} +1 -1
  98. package/dist/client/assets/{checkbox-6wv08vv8.js → checkbox-5tVptIvn.js} +1 -1
  99. package/dist/client/assets/{choose-editor-BrKo7WaN.js → choose-editor-he5994Iy.js} +1 -1
  100. package/dist/client/assets/{cli-auth-success-DYKHxuzD.js → cli-auth-success-C13o6nT8.js} +1 -1
  101. package/dist/client/assets/{client-icons-c8sjMYyL.js → client-icons-AfqD3us-.js} +1 -1
  102. package/dist/client/assets/cms-settings-editor-CFLaDl_s.js +1 -0
  103. package/dist/client/assets/{collapsible-C8jYd33t.js → collapsible-B_i_flQZ.js} +1 -1
  104. package/dist/client/assets/{collection-detail-BPkemvs1.js → collection-detail-C5W1nmJm.js} +1 -1
  105. package/dist/client/assets/{collection-display-button-DPP0I4kT.js → collection-display-button-g8pw1BKa.js} +1 -1
  106. package/dist/client/assets/{collection-search-DyeQXfCG.js → collection-search-DKSj36i2.js} +1 -1
  107. package/dist/client/assets/{collection-table-wrapper-BiO6hJxh.js → collection-table-wrapper-BRngAqmo.js} +1 -1
  108. package/dist/client/assets/{collection-tabs-D4LYnWMJ.js → collection-tabs-BVf232LH.js} +1 -1
  109. package/dist/client/assets/{column-rules-BpHi7zUw.js → column-rules-CRkg9Fxl.js} +1 -1
  110. package/dist/client/assets/{combobox-BeM2oYco.js → combobox-B8zTmLu1.js} +1 -1
  111. package/dist/client/assets/{command-sLy5v5Id.js → command-D79ZH19X.js} +1 -1
  112. package/dist/client/assets/{companion-mcps-section-Cn-Rt78u.js → companion-mcps-section-CthCluci.js} +1 -1
  113. package/dist/client/assets/{config-Cbcgp9UG.js → config-94XCayih.js} +1 -1
  114. package/dist/client/assets/{connect-CSSOksoc.js → connect-DIgUkNj9.js} +1 -1
  115. package/dist/client/assets/{connect-layout-DkF_xYAi.js → connect-layout-CH6ZSb5T.js} +1 -1
  116. package/dist/client/assets/{connect-source-dialog-B0JOTGvw.js → connect-source-dialog-DPHm5SIR.js} +1 -1
  117. package/dist/client/assets/{connection-LyoIrQvL.js → connection-CiqnzKwe.js} +1 -1
  118. package/dist/client/assets/{connection-card-C90049z-.js → connection-card-CgbmOEtZ.js} +1 -1
  119. package/dist/client/assets/{connection-detail-DgU6Xe2S.js → connection-detail-CWZ53gOP.js} +1 -1
  120. package/dist/client/assets/{connection-form-helpers-BzLwdyrN.js → connection-form-helpers-ntCbPy2n.js} +1 -1
  121. package/dist/client/assets/{connections-C54oiD7H.js → connections-Bt4pwqu3.js} +1 -1
  122. package/dist/client/assets/{content-tab-6UhA4BYQ.js → content-tab--1ooKCUT.js} +3 -3
  123. package/dist/client/assets/{context-BuY1MJLw.js → context-C0NiIgda.js} +1 -1
  124. package/dist/client/assets/{context-menu-CXLB0nLT.js → context-menu-BAoOyR8J.js} +1 -1
  125. package/dist/client/assets/{context-shell-CeIQn_AW.js → context-shell-BFW9I6d4.js} +3 -3
  126. package/dist/client/assets/{core.esm-BjMa39GU.js → core.esm-DpydQIdT.js} +1 -1
  127. package/dist/client/assets/{create-organization-dialog-BDPnd7ZU.js → create-organization-dialog-DKF90Pre.js} +1 -1
  128. package/dist/client/assets/daily-pulse-Bojl1W7A.js +1 -0
  129. package/dist/client/assets/{discover-CoyVnhtj.js → discover-CeBBMXm9.js} +1 -1
  130. package/dist/client/assets/{domain-settings-Bi_Nf8Yz.js → domain-settings-BXAu6Flk.js} +1 -1
  131. package/dist/client/assets/{drawer-DUy0at62.js → drawer-hQxgme01.js} +1 -1
  132. package/dist/client/assets/{editor-CZ2vZ5JJ.js → editor-C7NsJj0P.js} +1 -1
  133. package/dist/client/assets/{editor-classes-D-ciinYO.js → editor-classes-iJqU7okF.js} +1 -1
  134. package/dist/client/assets/{empty-state-BG-ZsMM5.js → empty-state-BGj88Oz3.js} +1 -1
  135. package/dist/client/assets/{empty-state-DX5OkW8m.js → empty-state-Gwq8u3Sk.js} +1 -1
  136. package/dist/client/assets/{experiments-tab-CLo6r2ny.js → experiments-tab-B8wvIAAX.js} +1 -1
  137. package/dist/client/assets/{experiments-tab-choice-DxQftboi.js → experiments-tab-choice-C-Kj-SaP.js} +1 -1
  138. package/dist/client/assets/{extract-connection-data-C4s2gh-W.js → extract-connection-data-Cx9ah1z5.js} +1 -1
  139. package/dist/client/assets/{feature-gate-Cfw3cBLP.js → feature-gate-DTum9WCp.js} +1 -1
  140. package/dist/client/assets/{feature-paywall-DIAXEFng.js → feature-paywall-zO4dzbka.js} +1 -1
  141. package/dist/client/assets/{file-explorer-BR0n-bNq.js → file-explorer-Xl96APN-.js} +1 -1
  142. package/dist/client/assets/{file-preview-Ds8GbZw9.js → file-preview-Bm_62NfP.js} +1 -1
  143. package/dist/client/assets/{file-share-button-BXYaokcu.js → file-share-button-D7t2lHex.js} +1 -1
  144. package/dist/client/assets/{file-type-icon-CJ5Cx-FH.js → file-type-icon-DptKoj-q.js} +1 -1
  145. package/dist/client/assets/{folder-icon-BbmUc2dC.js → folder-icon-CAAlpUI4.js} +1 -1
  146. package/dist/client/assets/{form-C3OwrZbQ.js → form-DU60ZzuM.js} +1 -1
  147. package/dist/client/assets/{general-Cz0YZJFb.js → general-DlFBPmt9.js} +1 -1
  148. package/dist/client/assets/{held-block-view-CDAp9KiG.js → held-block-view-rUTUNCUd.js} +3 -3
  149. package/dist/client/assets/{home-CBeFS7md.js → home-Bo_yPeSm.js} +1 -1
  150. package/dist/client/assets/{icon-button-rp_0Im0Y.js → icon-button-DhKNS89h.js} +1 -1
  151. package/dist/client/assets/{index-BlnnRpsw.js → index-7KY_ymC5.js} +1 -1
  152. package/dist/client/assets/{index-Bi8Dcq6x.js → index-AaUC9WD6.js} +1 -1
  153. package/dist/client/assets/{index-YTZffZ6U.js → index-B-HoKvLm.js} +1 -1
  154. package/dist/client/assets/{index-eXjVYv9z.js → index-BoQ6UNxI.js} +1 -1
  155. package/dist/client/assets/{index-CwzAm9wC.js → index-Boaq93Wx.js} +1 -1
  156. package/dist/client/assets/{index-Brzw7ag7.js → index-BsRMIjqv.js} +1 -1
  157. package/dist/client/assets/{index-B25kGSP3.js → index-BwdKQXWi.js} +1 -1
  158. package/dist/client/assets/{index-DfuO6MLy.js → index-Cj3mLa-X.js} +1 -1
  159. package/dist/client/assets/{index-nN_gbtO8.js → index-CoQjVodF.js} +1 -1
  160. package/dist/client/assets/{index-Cj9bz4MZ.js → index-Cp2UI7aA.js} +1 -1
  161. package/dist/client/assets/{index-dqTonPuB.js → index-Cuw4uBth.js} +5 -5
  162. package/dist/client/assets/{index-Bvthatnq.js → index-D74iAt06.js} +1 -1
  163. package/dist/client/assets/{index-DFWnsxkt.js → index-DDaQcb3Z.js} +1 -1
  164. package/dist/client/assets/{index-CAyRiseV.js → index-T8jAgtpZ.js} +1 -1
  165. package/dist/client/assets/{index-DwvcPlne.js → index-XfVM7o1o.js} +1 -1
  166. package/dist/client/assets/{index-redirect-C5brcMlb.js → index-redirect-Du4fUGPn.js} +1 -1
  167. package/dist/client/assets/{infiniteQueryObserver-Dn-uClrW.js → infiniteQueryObserver-Dy0j8RRj.js} +1 -1
  168. package/dist/client/assets/{infra-billing-CH6JZhsh.js → infra-billing-BUQH5Z5B.js} +1 -1
  169. package/dist/client/assets/{input-DsO-XKG3.js → input-CBK8CI9T.js} +1 -1
  170. package/dist/client/assets/{input-ziouS0a7.js → input-eQkN56jq.js} +3 -3
  171. package/dist/client/assets/{integration-icon-CadbREtM.js → integration-icon-DkmY4VjA.js} +1 -1
  172. package/dist/client/assets/{jira-icon-7MgMLks3.js → jira-icon-DIX055Fu.js} +1 -1
  173. package/dist/client/assets/{label-B9vYlzdO.js → label-GaS9ZdQZ.js} +1 -1
  174. package/dist/client/assets/{layout-C1UtsTjt.js → layout-D6bYiXJy.js} +1 -1
  175. package/dist/client/assets/{legacy-agents-deep-CYw3qywU.js → legacy-agents-deep-DwABkmGV.js} +1 -1
  176. package/dist/client/assets/{legacy-main-redirect-1pdawh_v.js → legacy-main-redirect-D9RmQuU4.js} +1 -1
  177. package/dist/client/assets/library--gRfaIdM.js +1 -0
  178. package/dist/client/assets/{login-p4pTEV4I.js → login-DbWYcBcy.js} +1 -1
  179. package/dist/client/assets/{markdown-BzS1xvA6.js → markdown-DWeSe4_P.js} +1 -1
  180. package/dist/client/assets/{mcp-app-renderer-Dsd5J6Kh.js → mcp-app-renderer-gjnt5Msm.js} +1 -1
  181. package/dist/client/assets/{mcp-oauth-BiBbnx8b.js → mcp-oauth-BN2jrcE-.js} +1 -1
  182. package/dist/client/assets/{mcp-oauth-CzTstmr6.js → mcp-oauth-DCesmV8O.js} +1 -1
  183. package/dist/client/assets/{members-ByI1ytgm.js → members-A7hOfyTI.js} +1 -1
  184. package/dist/client/assets/{memory-5atI8cIN.js → memory-BToaysGU.js} +1 -1
  185. package/dist/client/assets/{mini-report-page-BiZzy7Le.js → mini-report-page-B-hsDt1L.js} +1 -1
  186. package/dist/client/assets/mock-board-DrLmLQZ3.js +81 -0
  187. package/dist/client/assets/{monaco-editor-Dqd6OMNL.js → monaco-editor-D7u0RPEL.js} +1 -1
  188. package/dist/client/assets/{monitoring-CzxEm97T.js → monitoring-VWUfglka.js} +1 -1
  189. package/dist/client/assets/{monitoring-stats-row-CpSxjpuK.js → monitoring-stats-row-BHTpzVVz.js} +1 -1
  190. package/dist/client/assets/{multi-select-BRyAnutb.js → multi-select-A_VyitSa.js} +1 -1
  191. package/dist/client/assets/{mustache-CgTpIEz8.js → mustache-BxO97obl.js} +1 -1
  192. package/dist/client/assets/{named-rule-uses-B_I9YE7f.js → named-rule-uses-B_glLrdA.js} +1 -1
  193. package/dist/client/assets/{new-project-dialog-CvrV-V2w.js → new-project-dialog-M-WLwZ47.js} +1 -1
  194. package/dist/client/assets/{oauth-callback-ai-provider-RnzKbWsN.js → oauth-callback-ai-provider-DwNEOUuo.js} +1 -1
  195. package/dist/client/assets/{oauth-callback-C24sI7J7.js → oauth-callback-eNefWc41.js} +1 -1
  196. package/dist/client/assets/{onboarding-DID9r4O7.js → onboarding-8FafpOAf.js} +1 -1
  197. package/dist/client/assets/{openai-conversation-DSk3ETjb.js → openai-conversation-Bi2qzvSg.js} +1 -1
  198. package/dist/client/assets/{optimistic-project-sidebar-views-DpQUpW-I.js → optimistic-project-sidebar-views-BFrvBRmj.js} +1 -1
  199. package/dist/client/assets/{order-monitor-day-BGEK7Bpo.js → order-monitor-day-BBUvq3hr.js} +1 -1
  200. package/dist/client/assets/{organization-choice-BHrA1AZQ.js → organization-choice-CGhQdnA_.js} +1 -1
  201. package/dist/client/assets/{orgs-CJ5rh6cM.js → orgs-Cp4K5sO3.js} +1 -1
  202. package/dist/client/assets/{page-seo-form-DzPuUK4t.js → page-seo-form-BUMyGTyK.js} +1 -1
  203. package/dist/client/assets/{pair-CqDeWXf6.js → pair-DtCSsufw.js} +1 -1
  204. package/dist/client/assets/{parse-sections-CPumEOlp.js → parse-sections-B1uka1Vq.js} +1 -1
  205. package/dist/client/assets/{plan-DpdYL_SC.js → plan-D4y2SMp_.js} +1 -1
  206. package/dist/client/assets/{plan-ladder-Dhy2mlD-.js → plan-ladder-Cr-CdTR1.js} +1 -1
  207. package/dist/client/assets/{popover--NiW4ds1.js → popover-DiqYPKHh.js} +1 -1
  208. package/dist/client/assets/{post-calendar-nR3dxdcY.js → post-calendar-DYyzGtbp.js} +1 -1
  209. package/dist/client/assets/{post-editor-DYtyYMlo.js → post-editor-Bcpnqi7N.js} +1 -1
  210. package/dist/client/assets/{preview-content-CmgkQhaE.js → preview-content-BC2_4BBb.js} +1 -1
  211. package/dist/client/assets/{preview-dialog-Dm182n0_.js → preview-dialog-DO4TwwDT.js} +1 -1
  212. package/dist/client/assets/{preview-panel-XXLWOdEl.js → preview-panel-DnnzsZo-.js} +1 -1
  213. package/dist/client/assets/{preview-tab-oW6r5QzB.js → preview-tab-DV_MhenF.js} +3 -3
  214. package/dist/client/assets/{product-picker-dialog-BpXw9b8F.js → product-picker-dialog-D8RlvSwu.js} +1 -1
  215. package/dist/client/assets/{profile-D2nKI0hH.js → profile-CCof6E-v.js} +1 -1
  216. package/dist/client/assets/{project-app-view-BCwQq4yH.js → project-app-view-BwcoGS-v.js} +1 -1
  217. package/dist/client/assets/{project-apps-Dj2CJOnZ.js → project-apps-dDvUBGvO.js} +1 -1
  218. package/dist/client/assets/{project-feed-DNMNyDPx.js → project-feed-JqOKyKR3.js} +1 -1
  219. package/dist/client/assets/{project-icon-Fuoy9xbW.js → project-icon-DQNZWn_4.js} +1 -1
  220. package/dist/client/assets/project-reports-C5SkTKHX.js +1 -0
  221. package/dist/client/assets/project-tasks-CX44ab5v.js +1 -0
  222. package/dist/client/assets/{projects-BVfx1-an.js → projects-D8PEOsfX.js} +1 -1
  223. package/dist/client/assets/{projects-empty-state-BGI2AvCV.js → projects-empty-state-ComRagNK.js} +1 -1
  224. package/dist/client/assets/{prompts-CxG-l5n6.js → prompts-D-z15mGy.js} +1 -1
  225. package/dist/client/assets/record-editor-FHEv7gn_.js +1 -0
  226. package/dist/client/assets/{redirect-editor-D2KHHydh.js → redirect-editor-BcHXzq7w.js} +1 -1
  227. package/dist/client/assets/{releases-api-BbVlMuk_.js → releases-api-Dd6sHYpc.js} +1 -1
  228. package/dist/client/assets/{reports-Ciw0cmSs.js → reports-C0wR9iIJ.js} +1 -1
  229. package/dist/client/assets/reports-DRzidVXr.js +1 -0
  230. package/dist/client/assets/{reports-onboarding-DNfKLuiC.js → reports-onboarding-B1OyYbCz.js} +1 -1
  231. package/dist/client/assets/{reports-tab-BefEBqvf.js → reports-tab-D1M-BlGe.js} +2 -2
  232. package/dist/client/assets/{repositories-z8wEcK0M.js → repositories-DHT9v-UO.js} +1 -1
  233. package/dist/client/assets/repositories-Q-unbJnr.js +1 -0
  234. package/dist/client/assets/{repository-binding-0L-NOau4.js → repository-binding-CXnxCF4M.js} +1 -1
  235. package/dist/client/assets/{repository-import-picker-DepdN5-B.js → repository-import-picker-DLsxOOxp.js} +1 -1
  236. package/dist/client/assets/{repository-picker-Dva3lcTN.js → repository-picker-Cq7JBkFe.js} +1 -1
  237. package/dist/client/assets/{require-capability-D2uGPRyV.js → require-capability-Cmje3DfT.js} +1 -1
  238. package/dist/client/assets/{required-auth-layout-CF04eiX-.js → required-auth-layout-CwX_2fTY.js} +1 -1
  239. package/dist/client/assets/{reset-password-EsqG_9_N.js → reset-password-CmI8_Uk5.js} +1 -1
  240. package/dist/client/assets/{resizable-l4I_T5Kn.js → resizable-C7Is3s-0.js} +1 -1
  241. package/dist/client/assets/{resolve-tab-icon-DEw9_uRC.js → resolve-tab-icon-_XMXFt4U.js} +1 -1
  242. package/dist/client/assets/{review-settings-D4PRtLEA.js → review-settings-BFUKsPsq.js} +1 -1
  243. package/dist/client/assets/{roles-Dg57dBTr.js → roles-CeJo75GF.js} +1 -1
  244. package/dist/client/assets/{route-BHiTL7ed.js → route-BMliOu1G.js} +1 -1
  245. package/dist/client/assets/{route-D2VIJZi7.js → route-Cvt2392J.js} +1 -1
  246. package/dist/client/assets/route-DVaDfduX.js +1 -0
  247. package/dist/client/assets/{sandbox-lifecycle-context-gdz-I2_D.js → sandbox-lifecycle-context-DdYoEP5e.js} +1 -1
  248. package/dist/client/assets/{schema-4_stGcYx.js → schema-D02aTPkl.js} +1 -1
  249. package/dist/client/assets/schema-D5UoICKI.js +1 -0
  250. package/dist/client/assets/{scroll-area-CyLybKsS.js → scroll-area-CDUvVvSH.js} +1 -1
  251. package/dist/client/assets/{search-input-CeTAKge4.js → search-input-BqT8bImj.js} +1 -1
  252. package/dist/client/assets/{search-toggle-Cr4iRumB.js → search-toggle-BoR9-yak.js} +1 -1
  253. package/dist/client/assets/{secret-picker-n5Ps6wSc.js → secret-picker-vfO2xRLb.js} +1 -1
  254. package/dist/client/assets/{secrets-CZjIZYlr.js → secrets-DIgmoPjh.js} +1 -1
  255. package/dist/client/assets/{section-array-field-DU2wvA76.js → section-array-field-BwPxgG9_.js} +1 -1
  256. package/dist/client/assets/{sections-ZoPCF-bt.js → sections-Bv_E_JwJ.js} +1 -1
  257. package/dist/client/assets/{sections-editor-CpNs-v4Y.js → sections-editor-2zr-sr1i.js} +1 -1
  258. package/dist/client/assets/{select-BBgfhGwn.js → select-B73KS7i3.js} +1 -1
  259. package/dist/client/assets/{select-model-CWJxxZcQ.js → select-model-zK4bDPrj.js} +1 -1
  260. package/dist/client/assets/{seo-editor-LIAtvw09.js → seo-editor-DMhyWewz.js} +1 -1
  261. package/dist/client/assets/{separator-yz9LQvWk.js → separator-Bun_4c4E.js} +1 -1
  262. package/dist/client/assets/settings-tab-CdOisIW6.js +1 -0
  263. package/dist/client/assets/{sheet-CInqTfvf.js → sheet-56HC7WRJ.js} +1 -1
  264. package/dist/client/assets/{shell-layout-Dhack47g.js → shell-layout-C2BJGx2g.js} +1 -1
  265. package/dist/client/assets/{site-draft-actions-BKfRt5Kf.js → site-draft-actions-CSQlnRHC.js} +1 -1
  266. package/dist/client/assets/{site-draft-view-DQWTYqa5.js → site-draft-view-BaHCN82W.js} +2 -2
  267. package/dist/client/assets/site-editor-VsNIJVQY.js +1 -0
  268. package/dist/client/assets/{site-editor-toast-BphhFIx_.js → site-editor-toast-DQ656FVh.js} +1 -1
  269. package/dist/client/assets/{skills-NdjGdK_L.js → skills-DJ7eTdb8.js} +1 -1
  270. package/dist/client/assets/{slider-CjVp545e.js → slider-DnA5KcIW.js} +1 -1
  271. package/dist/client/assets/{sortable.esm-CLnROgsp.js → sortable.esm-xXl-6mL4.js} +1 -1
  272. package/dist/client/assets/{sso-CoZFsJu8.js → sso-CpCZW-eP.js} +1 -1
  273. package/dist/client/assets/{suggestion-BJa7UCMt.js → suggestion-CZpp719s.js} +1 -1
  274. package/dist/client/assets/{switch-BuvFN30Y.js → switch-n_zXX4if.js} +1 -1
  275. package/dist/client/assets/{symbol-Dvlt2z4k.js → symbol-YpIq4fgA.js} +1 -1
  276. package/dist/client/assets/{synced-repos-CLcW5MUO.js → synced-repos-B2cUQUNf.js} +1 -1
  277. package/dist/client/assets/{tab-icon-glyph-4xj2Fk17.js → tab-icon-glyph-D237cGJI.js} +1 -1
  278. package/dist/client/assets/{table-DF5_axer.js → table-CSojOz4z.js} +1 -1
  279. package/dist/client/assets/{tabs-DPXakTnY.js → tabs-C8EZr9R7.js} +1 -1
  280. package/dist/client/assets/{task-assignee-avatar-CLWTu-qp.js → task-assignee-avatar-RKc3yRg-.js} +1 -1
  281. package/dist/client/assets/{task-board-C3TfKsEu.js → task-board-DH9ssxkG.js} +1 -1
  282. package/dist/client/assets/{task-route-D8G4Pg9E.js → task-route-bLUOK5JR.js} +1 -1
  283. package/dist/client/assets/{task-status-CR31LKK2.js → task-status-Bc6ioQFn.js} +1 -1
  284. package/dist/client/assets/{taskboard-analytics-C8Udie1K.js → taskboard-analytics-D7vs-xto.js} +1 -1
  285. package/dist/client/assets/tasks-DnPEEzRb.js +1 -0
  286. package/dist/client/assets/{tasks-Blq-0J6L.js → tasks-e6DH9H0h.js} +1 -1
  287. package/dist/client/assets/{textarea-Dg_yVkeX.js → textarea-CDKBkceb.js} +1 -1
  288. package/dist/client/assets/{thread-analytics-9I9WwE29.js → thread-analytics-BTiORs_j.js} +1 -1
  289. package/dist/client/assets/{thread-intent-DmSTHfJV.js → thread-intent-CZ5_EO2w.js} +1 -1
  290. package/dist/client/assets/{thread-route-DL6c8KHu.js → thread-route-BYWxmsao.js} +1 -1
  291. package/dist/client/assets/{thread-route-DyeAWeVv.js → thread-route-DIZgBacC.js} +1 -1
  292. package/dist/client/assets/{thread-sheet-body-CyVr8d5d.js → thread-sheet-body-C_1TXm2y.js} +1 -1
  293. package/dist/client/assets/{time-range-picker-CAYhviop.js → time-range-picker-CF_xrXhr.js} +1 -1
  294. package/dist/client/assets/{toggle-group-CagcNHou.js → toggle-group-DGx4bXEF.js} +1 -1
  295. package/dist/client/assets/{tool-namespace-AEMn8zEL.js → tool-namespace-DO1Qm86o.js} +1 -1
  296. package/dist/client/assets/{toolbar-icon-button-BTNIHkHm.js → toolbar-icon-button-DZE2ESw9.js} +1 -1
  297. package/dist/client/assets/{tooltip-CkhWwifD.js → tooltip-Ci3ZwooP.js} +1 -1
  298. package/dist/client/assets/{tooltipContext-XWgj5YPF.js → tooltipContext-DfN2pXFs.js} +1 -1
  299. package/dist/client/assets/{track-CSaYPuyk.js → track-BtJWR_CA.js} +1 -1
  300. package/dist/client/assets/{types-BBlCCKBH.js → types-DhOLYbcW.js} +1 -1
  301. package/dist/client/assets/{url-slug-B_Yjxy4g.js → url-slug-CLyOdzAm.js} +1 -1
  302. package/dist/client/assets/{usage-stats-Bnq-bwdD.js → usage-stats-CNLGhk-o.js} +1 -1
  303. package/dist/client/assets/{use-ai-providers-BmOzsYDN.js → use-ai-providers-DOax94rO.js} +1 -1
  304. package/dist/client/assets/{use-apply-named-rule-B2Zt8XIz.js → use-apply-named-rule-CJFPy5HY.js} +1 -1
  305. package/dist/client/assets/{use-automations-HMhC6FE5.js → use-automations-CPkt7SVV.js} +1 -1
  306. package/dist/client/assets/{use-autosave-D6dco3FM.js → use-autosave-yGWalCYV.js} +1 -1
  307. package/dist/client/assets/{use-chat-layout-state-SXC1aBSP.js → use-chat-layout-state-EYafKK4O.js} +1 -1
  308. package/dist/client/assets/{use-clock-tick-BzkvK9xF.js → use-clock-tick-BUftA4XN.js} +1 -1
  309. package/dist/client/assets/{use-connect-companion-D77Qg9uw.js → use-connect-companion-BhEYBdV4.js} +1 -1
  310. package/dist/client/assets/{use-connection-CgZBwmOC.js → use-connection-eHzowbKv.js} +1 -1
  311. package/dist/client/assets/{use-content-sync-Di8d86xo.js → use-content-sync-CsEeS6wP.js} +1 -1
  312. package/dist/client/assets/{use-copy-B6jA1hKb.js → use-copy-ClerAXdJ.js} +1 -1
  313. package/dist/client/assets/{use-create-virtual-mcp-YK4tVtgK.js → use-create-virtual-mcp-J2E0RhLc.js} +1 -1
  314. package/dist/client/assets/{use-date-fns-locale-CXWxLD_D.js → use-date-fns-locale-CrqyAQep.js} +1 -1
  315. package/dist/client/assets/{use-debounced-autosave-V77TWUAY.js → use-debounced-autosave-BVxg8vxx.js} +1 -1
  316. package/dist/client/assets/{use-debounced-value-CgkCbE-q.js → use-debounced-value-2_mLSVw4.js} +1 -1
  317. package/dist/client/assets/{use-deco-credits-CYakt-79.js → use-deco-credits-DABk3yY1.js} +1 -1
  318. package/dist/client/assets/{use-decopilot-events-BNl6vZT3.js → use-decopilot-events-CA56Gos8.js} +1 -1
  319. package/dist/client/assets/{use-delete-connection-B_LhNFqB.js → use-delete-connection-CVhCNDYo.js} +1 -1
  320. package/dist/client/assets/{use-deployment-admin-CQqKzTzV.js → use-deployment-admin-BGnnzyoF.js} +1 -1
  321. package/dist/client/assets/{use-fast-preview-draft-url-CtbO1sYj.js → use-fast-preview-draft-url-DrM2pRhy.js} +1 -1
  322. package/dist/client/assets/{use-file-configs-Bdi3Zzvl.js → use-file-configs-Bg-fEAGm.js} +1 -1
  323. package/dist/client/assets/{use-inbox-feed-BDXrK609.js → use-inbox-feed-C9znaZFi.js} +1 -1
  324. package/dist/client/assets/{use-infinite-scroll-Ce1Cyz0w.js → use-infinite-scroll-DfZZeab5.js} +1 -1
  325. package/dist/client/assets/{use-join-requests-C1STdVOR.js → use-join-requests-DHGPKNlr.js} +1 -1
  326. package/dist/client/assets/{use-main-panel-tabs-DZlakfZ7.js → use-main-panel-tabs-WUAIV6cr.js} +1 -1
  327. package/dist/client/assets/{use-mcp-auth-status-DLGEZPTH.js → use-mcp-auth-status-DZTVEUgz.js} +1 -1
  328. package/dist/client/assets/{use-mcp-client-NiHnmnpB.js → use-mcp-client-CfpsAKj4.js} +1 -1
  329. package/dist/client/assets/{use-mcp-prompts-BpP8rPhI.js → use-mcp-prompts-B6wGbsaO.js} +1 -1
  330. package/dist/client/assets/{use-mcp-tools-DvShHfsn.js → use-mcp-tools-De9LHWCI.js} +1 -1
  331. package/dist/client/assets/{use-mobile-0wDKszAH.js → use-mobile-99mfVsUI.js} +1 -1
  332. package/dist/client/assets/{use-move-blocks-BFH4bGqH.js → use-move-blocks-ChQw5gpw.js} +1 -1
  333. package/dist/client/assets/{use-navigate-to-agent-CHgAma_A.js → use-navigate-to-agent-DaAFktW9.js} +1 -1
  334. package/dist/client/assets/{use-open-billing-url-D4G9wMSG.js → use-open-billing-url-Bzh-ntva.js} +1 -1
  335. package/dist/client/assets/{use-org-fs-CgDaP3QS.js → use-org-fs-Dczc29OI.js} +1 -1
  336. package/dist/client/assets/{use-org-repo-syncs-ZnbK4UNH.js → use-org-repo-syncs-Cf3GrgqR.js} +1 -1
  337. package/dist/client/assets/{use-org-sso-4bOeKtTK.js → use-org-sso-CTKiuB0A.js} +1 -1
  338. package/dist/client/assets/{use-organization-roles-CaIcAuZI.js → use-organization-roles-BfeXwaiy.js} +1 -1
  339. package/dist/client/assets/{use-organization-settings-Bj3c26BX.js → use-organization-settings-SIasU_tC.js} +1 -1
  340. package/dist/client/assets/{use-panel-navigate-kG8bT637.js → use-panel-navigate-B12jZOsf.js} +1 -1
  341. package/dist/client/assets/{use-project-native-view-presence-BixTQ7MO.js → use-project-native-view-presence-BYkoNVb2.js} +1 -1
  342. package/dist/client/assets/{use-project-scope-DQ4byfJ8.js → use-project-scope-8q_Pr-Xb.js} +1 -1
  343. package/dist/client/assets/{use-recent-apps-DnJcepur.js → use-recent-apps-0tmI_vdA.js} +1 -1
  344. package/dist/client/assets/{use-releases-1u7IRxuv.js → use-releases-BrcgpLBE.js} +1 -1
  345. package/dist/client/assets/{use-reports-diagnostic-BemHjjuV.js → use-reports-diagnostic-DXt6zEk2.js} +1 -1
  346. package/dist/client/assets/{use-sandbox-events-KLt2azet.js → use-sandbox-events-DukuKdrD.js} +1 -1
  347. package/dist/client/assets/{use-secrets-BOgeYbQq.js → use-secrets-zkQum-du.js} +1 -1
  348. package/dist/client/assets/{use-section-preview-base-B586nx29.js → use-section-preview-base-CPGTecvC.js} +1 -1
  349. package/dist/client/assets/{use-session-runtime-CJtbf6W0.js → use-session-runtime-BkX1p9DX.js} +1 -1
  350. package/dist/client/assets/{use-sidebar-collapsed-B__PkJPm.js → use-sidebar-collapsed-DxKpoCm3.js} +1 -1
  351. package/dist/client/assets/{use-tags-DlHL5H_y.js → use-tags-Cf5XANnQ.js} +1 -1
  352. package/dist/client/assets/{use-task-board-analytics-CDja-5FD.js → use-task-board-analytics-Bm_X5xzM.js} +1 -1
  353. package/dist/client/assets/{use-task-board-events-C6pDc0YD.js → use-task-board-events-CmQec1Gn.js} +1 -1
  354. package/dist/client/assets/{use-task-board-item-prs-CNR5PS--.js → use-task-board-item-prs-CFwgg281.js} +1 -1
  355. package/dist/client/assets/{use-task-metadata-CIhHGtUG.js → use-task-metadata-ztONCu50.js} +1 -1
  356. package/dist/client/assets/{use-thread-analytics-Dv9Xhfh-.js → use-thread-analytics-D2_R_6NS.js} +1 -1
  357. package/dist/client/assets/{use-thread-outputs-DvCpSxoC.js → use-thread-outputs-CM6siwJk.js} +1 -1
  358. package/dist/client/assets/useInfiniteQuery-DFK0dHSs.js +1 -0
  359. package/dist/client/assets/{useQueries-BBnVrkV9.js → useQueries-BmYWSC6K.js} +1 -1
  360. package/dist/client/assets/useSuspenseInfiniteQuery-BBbMOBX0.js +1 -0
  361. package/dist/client/assets/{users-MhJxqzuf.js → users-Tw_qkTX5.js} +1 -1
  362. package/dist/client/assets/{utils-LgeHHV8Z.js → utils-gKN9JfVP.js} +1 -1
  363. package/dist/client/assets/{variant-calendar-BZZsY0pE.js → variant-calendar-BPJ1qq_6.js} +1 -1
  364. package/dist/client/assets/{variant-matcher-override-CB3DEYo-.js → variant-matcher-override-DKBTrcbu.js} +1 -1
  365. package/dist/client/assets/{virtual-mcp-BTO3QMrV.js → virtual-mcp-DSjzxtZz.js} +1 -1
  366. package/dist/client/assets/{watch-sse-pool-Cg72K5y9.js → watch-sse-pool-B-BVtIbV.js} +1 -1
  367. package/dist/client/index.html +1 -1
  368. package/dist/server/migrate.js +195 -195
  369. package/dist/server/server.js +846 -828
  370. package/package.json +1 -1
  371. package/dist/client/assets/agent-analytics-D1M7QoAT.js +0 -1
  372. package/dist/client/assets/agent-app-DOxuzP2R.js +0 -1
  373. package/dist/client/assets/agent-deck-C-BZQCII.js +0 -1
  374. package/dist/client/assets/agent-experiments-tdlFp9nd.js +0 -1
  375. package/dist/client/assets/agent-library-Bz6qO4Nh.js +0 -1
  376. package/dist/client/assets/agent-library-file-7MTfJn5J.js +0 -1
  377. package/dist/client/assets/agent-monitor-D913p8vC.js +0 -1
  378. package/dist/client/assets/agent-settings-CDcmmP6N.js +0 -1
  379. package/dist/client/assets/agent-site-editor-code-DgzX4I9T.js +0 -2
  380. package/dist/client/assets/agent-site-editor-content-B6Sevg3O.js +0 -1
  381. package/dist/client/assets/agent-site-editor-preview-4LTEMQ-T.js +0 -1
  382. package/dist/client/assets/agent-view-BC7_pZin.js +0 -1
  383. package/dist/client/assets/api-keys-Dlh6QGx9.js +0 -1
  384. package/dist/client/assets/cms-settings-editor-t2vc1NHq.js +0 -1
  385. package/dist/client/assets/daily-pulse-HnFS87ta.js +0 -1
  386. package/dist/client/assets/library-Cv7xPXE0.js +0 -1
  387. package/dist/client/assets/mock-board-CVxb9NJN.js +0 -81
  388. package/dist/client/assets/project-reports-Cj0tAxbH.js +0 -1
  389. package/dist/client/assets/project-tasks-BLptZtxw.js +0 -1
  390. package/dist/client/assets/record-editor-MLJFEHa6.js +0 -1
  391. package/dist/client/assets/reports-pbzR9Ttf.js +0 -1
  392. package/dist/client/assets/repositories-BsvHkw06.js +0 -1
  393. package/dist/client/assets/route-D5SW2o-V.js +0 -1
  394. package/dist/client/assets/schema-BQgw-8fk.js +0 -1
  395. package/dist/client/assets/settings-tab-DgS3Wxee.js +0 -1
  396. package/dist/client/assets/site-editor-jHYcBntN.js +0 -1
  397. package/dist/client/assets/tasks-C4wpaTB2.js +0 -1
  398. package/dist/client/assets/useInfiniteQuery-BqRsoJ1h.js +0 -1
  399. package/dist/client/assets/useSuspenseInfiniteQuery-CXNJCW6q.js +0 -1
@@ -1,9 +1,9 @@
1
1
  // @bun
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`
2
+ var nz=Object.defineProperty;var vz=(_)=>_;function pz(_,x){this[_]=vz.bind(null,x)}var C=(_,x)=>{for(var u in x)nz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:pz.bind(x,u)})};import{Migrator as kz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>gz,down:()=>qz});import{sql as om}from"kysely";async function gz(_){await om`
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 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_`
6
+ `.execute(_)}async function qz(_){await om`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>iz,down:()=>cz});import{sql as G_}from"kysely";async function iz(_){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,16 +12,16 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.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 iz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
15
+ `.execute(_)}async function cz(_){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:()=>cz,down:()=>hz});import{sql as om}from"kysely";async function cz(_){await om`
19
+ `.execute(_)}var Jx={};C(Jx,{up:()=>hz,down:()=>tz});import{sql as am}from"kysely";async function hz(_){await am`
20
20
  ALTER TABLE repositories
21
21
  ADD COLUMN IF NOT EXISTS monitor_deploys boolean NOT NULL DEFAULT true
22
- `.execute(_)}async function hz(_){await om`
22
+ `.execute(_)}async function tz(_){await am`
23
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
24
+ `.execute(_)}var Xx={};C(Xx,{up:()=>oz,down:()=>az});async function oz(_){await _.schema.createTable("demo_board_snapshots").ifNotExists().addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("snapshot","jsonb",(x)=>x.notNull()).addColumn("frozen_item_ids","jsonb",(x)=>x.notNull()).addColumn("pr_cards","jsonb",(x)=>x.notNull()).addColumn("captured_at","timestamptz",(x)=>x.notNull()).addColumn("captured_by","text",(x)=>x.notNull()).addColumn("last_reset_at","timestamptz").addColumn("last_reset_error","text").addColumn("dead_preview_urls","jsonb").execute()}async function az(_){await _.schema.dropTable("demo_board_snapshots").ifExists().execute()}var Qx={};C(Qx,{up:()=>rz,down:()=>lz});async function rz(_){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 lz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Wx={};C(Wx,{up:()=>ez,down:()=>dz,TYPES:()=>Zx});import{sql as m_}from"kysely";var Zx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function ez(_){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 rm(_,Zx)}async function dz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await rm(_,Zx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function rm(_,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 jx={};C(jx,{up:()=>bz,down:()=>sz});import{sql as lm}from"kysely";async function bz(_){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",lm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",lm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function sz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Lx={};C(Lx,{up:()=>_E,down:()=>xE});import{sql as a}from"kysely";async function _E(_){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
25
25
  DROP COLUMN IF EXISTS registry_config,
26
26
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
27
27
  BEGIN RETURN value::jsonb;
@@ -36,20 +36,20 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
36
36
  )`.execute(_),await a`DELETE FROM connections
37
37
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
38
38
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
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`
39
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function xE(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Fx={};C(Fx,{up:()=>uE,down:()=>CE});import{sql as em}from"kysely";async function uE(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await em`
40
40
  select organization_id, metadata
41
41
  from connections
42
42
  where connection_type = 'VIRTUAL'
43
43
  and metadata like '%submoduleCredentials%'
44
44
  order by updated_at asc
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`
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 em`
46
46
  insert into organization_settings
47
47
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
48
48
  values (${K}, ${T}, ${N}, ${N})
49
49
  on conflict ("organizationId") do update
50
50
  set submodule_credentials = excluded.submodule_credentials,
51
51
  "updatedAt" = excluded."updatedAt"
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`
52
+ `.execute(_)}}async function CE(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Yx={};C(Yx,{up:()=>KE,down:()=>NE});async function KE(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function NE(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Hx={};C(Hx,{up:()=>mE,down:()=>TE});import{sql as Dx}from"kysely";async function mE(_){await Dx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Dx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Dx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function TE(_){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 Rx={};C(Rx,{up:()=>$E,down:()=>UE});import{sql as G}from"kysely";var zE={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"}},EE={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"}},Mx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function dm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function bm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,zE],[G`'commerce-discovery_' || organization_id`,EE]])for(let T of["title","description"]){let{from:z,to:E}=dm(m[T],x);await G`
53
53
  UPDATE connections
54
54
  SET ${G.ref(T)} = ${E}
55
55
  WHERE id = ${K}
@@ -63,7 +63,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
63
63
  RETURN NULL;
64
64
  END;
65
65
  $fn$ LANGUAGE plpgsql IMMUTABLE;
66
- `.execute(_);let{from:u,to:N}=em(Hx.label,x);await G`
66
+ `.execute(_);let{from:u,to:N}=dm(Mx.label,x);await G`
67
67
  WITH agents AS (
68
68
  SELECT id, deco_score_try_jsonb(metadata) AS m
69
69
  FROM connections
@@ -78,7 +78,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
78
78
  (
79
79
  SELECT jsonb_agg(
80
80
  CASE
81
- WHEN v ->> 'toolName' = ${Hx.toolName}
81
+ WHEN v ->> 'toolName' = ${Mx.toolName}
82
82
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
83
83
  THEN v || jsonb_build_object('label', ${N}::text)
84
84
  ELSE v
@@ -94,7 +94,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
94
94
  AND EXISTS (
95
95
  SELECT 1
96
96
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
97
- WHERE v ->> 'toolName' = ${Hx.toolName}
97
+ WHERE v ->> 'toolName' = ${Mx.toolName}
98
98
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
99
99
  )
100
100
  )
@@ -102,7 +102,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
102
102
  SET metadata = r.m::text
103
103
  FROM relabeled r
104
104
  WHERE c.id = r.id
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_`
105
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function $E(_){await bm(_,"up")}async function UE(_){await bm(_,"down")}var Gx={};C(Gx,{up:()=>JE,down:()=>XE,ACTIONS:()=>Bx});import{sql as T_}from"kysely";var Bx=["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"],PE=Bx.filter((_)=>_!=="finding_resolved");async function JE(_){await sm(_,Bx)}async function XE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await sm(_,PE)}async function sm(_,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 Ox={};C(Ox,{up:()=>QE,down:()=>ZE});import{sql as O_}from"kysely";async function QE(_){await O_`
106
106
  ALTER TABLE org_jira_column_automations
107
107
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
108
108
  CONSTRAINT chk_org_jira_column_automations_from_kind
@@ -113,7 +113,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
113
113
  ALTER TABLE org_jira_column_automations
114
114
  DROP CONSTRAINT org_jira_column_automations_pkey,
115
115
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
116
- `.execute(_)}async function JE(_){await O_`
116
+ `.execute(_)}async function ZE(_){await O_`
117
117
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
118
118
  `.execute(_),await O_`
119
119
  ALTER TABLE org_jira_column_automations
@@ -122,18 +122,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
122
122
  DROP COLUMN from_key,
123
123
  DROP COLUMN from_statuses,
124
124
  DROP COLUMN from_kind
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`
125
+ `.execute(_)}var Sx={};C(Sx,{up:()=>WE,down:()=>jE});import{sql as _T}from"kysely";async function WE(_){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(_T`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(_T`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 jE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Ax={};C(Ax,{up:()=>LE,down:()=>FE});async function LE(){}async function FE(){}var Ix={};C(Ix,{up:()=>YE,down:()=>DE});import{sql as fx}from"kysely";async function YE(_){await fx`
126
126
  ALTER TABLE task_board_prompts
127
127
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
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`
128
+ `.execute(_)}async function DE(_){await fx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await fx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Vx={};C(Vx,{up:()=>HE,down:()=>ME});import{sql as yx}from"kysely";async function HE(_){await yx`
129
129
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
130
- `.execute(_),await Ix`
130
+ `.execute(_),await yx`
131
131
  DELETE FROM connection_aggregations
132
132
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
133
- `.execute(_),await Ix`
133
+ `.execute(_),await yx`
134
134
  DELETE FROM connections
135
135
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
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`
136
+ `.execute(_)}async function ME(){}var wx={};C(wx,{up:()=>RE,down:()=>BE});import{sql as xT}from"kysely";async function RE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(xT`audience in ('human', 'internal')`)).execute(),await xT`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function BE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var kx={};C(kx,{up:()=>OE,down:()=>SE});import{sql as GE}from"kysely";async function OE(_){await GE`
137
137
  UPDATE org_fs_entry AS d
138
138
  SET deleted_at = now(),
139
139
  updated_at = now(),
@@ -152,7 +152,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
152
152
  AND c.parent = d.path
153
153
  AND c.deleted_at IS NULL
154
154
  )
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`
155
+ `.execute(_)}async function SE(){}var vx={};C(vx,{up:()=>fE,down:()=>IE,ACTIONS:()=>nx});import{sql as F}from"kysely";var nx=["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"],AE=nx.filter((_)=>_!=="sprint_changed");async function fE(_){await F`
156
156
  CREATE TABLE task_board_sprints (
157
157
  id text PRIMARY KEY,
158
158
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -178,12 +178,12 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
178
178
  CREATE INDEX idx_task_board_items_sprint
179
179
  ON task_board_items (organization_id, sprint_id)
180
180
  WHERE sprint_id IS NOT NULL
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`
181
+ `.execute(_),await uT(_,nx)}async function IE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await uT(_,AE),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 uT(_,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 px={};C(px,{up:()=>VE,planOrgSiteProjectLinks:()=>NT,down:()=>wE,applyOrgSiteProjectLinks:()=>mT});import{sql as J}from"kysely";var yE="migration-237",CT=1000;async function KT(_){return(await J`
182
182
  SELECT conname FROM pg_constraint
183
183
  WHERE conrelid = 'org_sites'::regclass
184
184
  AND confrelid = 'organization'::regclass
185
185
  AND contype = 'f'
186
- `.execute(_)).rows[0]?.conname??null}async function KT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
186
+ `.execute(_)).rows[0]?.conname??null}async function NT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
187
187
  SELECT slug, organization_id FROM org_sites
188
188
  WHERE organization_id IS NOT NULL
189
189
  ORDER BY organization_id, slug
@@ -194,17 +194,17 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
194
194
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
195
195
  )
196
196
  ORDER BY organization_id, id
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`
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 mT(_,x){let u=0;for(let N=0;N<x.length;N+=CT){let K=J.join(x.slice(N,N+CT).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
198
198
  UPDATE org_sites o
199
199
  SET project_id = v.pid,
200
200
  linked_at = now(),
201
- updated_by = ${AE},
201
+ updated_by = ${yE},
202
202
  updated_at = now()
203
203
  FROM (VALUES ${K}) AS v(slug, pid)
204
204
  WHERE o.slug = v.slug
205
205
  AND o.project_id IS NULL
206
206
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
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`
207
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function VE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await NT(_);await J`
208
208
  ALTER TABLE org_sites
209
209
  ADD COLUMN project_id text NULL
210
210
  REFERENCES connections(id) ON DELETE SET NULL,
@@ -212,7 +212,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
212
212
  `.execute(_),await J`
213
213
  CREATE UNIQUE INDEX org_sites_project_id_uq
214
214
  ON org_sites (project_id) WHERE project_id IS NOT NULL
215
- `.execute(_);let u=await CT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
215
+ `.execute(_);let u=await KT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
216
216
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
217
217
  `.execute(_),await J`
218
218
  ALTER TABLE org_sites
@@ -221,12 +221,12 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
221
221
  ON DELETE SET NULL NOT VALID
222
222
  `.execute(_),await J`
223
223
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
224
- `.execute(_);let N=await NT(_,x.links),K=await J`
224
+ `.execute(_);let N=await mT(_,x.links),K=await J`
225
225
  UPDATE org_sites SET linked_at = created_at
226
226
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
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`
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 wE(_){if((await J`
228
228
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
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`
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 KT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
230
230
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
231
231
  `.execute(_),await J`
232
232
  ALTER TABLE org_sites
@@ -235,7 +235,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
235
235
  ON DELETE CASCADE
236
236
  `.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
237
237
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
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`
238
+ `.execute(_)}var gx={};C(gx,{up:()=>kE,moveRules:()=>Y,down:()=>nE});import{sql as c}from"kysely";async function kE(_){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`
239
239
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
240
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`
241
241
  WITH moved AS (
@@ -263,7 +263,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
263
263
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
264
264
  now()
265
265
  FROM moved
266
- `.execute(_)}async function VE(){}async function Y(_,x,u,N,K){await c`
266
+ `.execute(_)}async function nE(){}async function Y(_,x,u,N,K){await c`
267
267
  DELETE FROM ${c.table(x)} AS src
268
268
  WHERE src.column_key = ${N}
269
269
  AND EXISTS (
@@ -277,7 +277,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
277
277
  id = ${u} || organization_id || '_' || ${K},
278
278
  updated_at = now()
279
279
  WHERE column_key = ${N}
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`
280
+ `.execute(_)}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as vE}from"kysely";async function pE(_){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 vE`
281
281
  WITH moved AS (
282
282
  UPDATE task_board_items AS i
283
283
  SET status = CASE prev.status
@@ -301,7 +301,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
301
301
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
302
302
  now()
303
303
  FROM moved
304
- `.execute(_)}async function nE(){}var qx={};C(qx,{up:()=>pE,down:()=>gE});import{sql as vE}from"kysely";async function pE(_){await vE`
304
+ `.execute(_)}async function gE(){}var ix={};C(ix,{up:()=>iE,down:()=>cE});import{sql as qE}from"kysely";async function iE(_){await qE`
305
305
  WITH restored AS (
306
306
  UPDATE task_board_items AS i
307
307
  SET status = 'todo', updated_at = now()
@@ -328,7 +328,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
328
328
  jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
329
329
  now()
330
330
  FROM restored
331
- `.execute(_)}async function gE(){}var ix={};C(ix,{up:()=>qE,down:()=>iE});import{sql as L}from"kysely";async function qE(_){await L`
331
+ `.execute(_)}async function cE(){}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as L}from"kysely";async function hE(_){await L`
332
332
  ALTER TABLE automation_triggers
333
333
  ADD COLUMN column_key text,
334
334
  ADD COLUMN from_kind text,
@@ -354,7 +354,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
354
354
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
355
355
  ON task_board_activity (occurred_at)
356
356
  WHERE action = 'status_changed'
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`
357
+ `.execute(_)}async function tE(_){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`
358
358
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
359
359
  CHECK (type IN ('cron', 'event', 'webhook'))
360
360
  `.execute(_),await L`
@@ -362,11 +362,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
362
362
  DROP COLUMN IF EXISTS column_key,
363
363
  DROP COLUMN IF EXISTS from_kind,
364
364
  DROP COLUMN IF EXISTS from_statuses
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`
365
+ `.execute(_)}var hx={};C(hx,{up:()=>lE,down:()=>eE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var zT=64,oE=new Set(["new","edit","settings","apps","projects","connections"]);function aE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function rE(_,x){let u=aE(_??"").slice(0,zT).replace(/-+$/,"");return u.length>=2&&!oE.has(u)?u:x}function TT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,zT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
366
366
  SELECT id, organization_id, title, connection_type, url_slug
367
367
  FROM connections
368
368
  ORDER BY organization_id, created_at, id
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`
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=rE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(TT(E,$)))$++;let P=TT(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`
370
370
  UPDATE connections c
371
371
  SET url_slug = v.slug
372
372
  FROM unnest(
@@ -374,7 +374,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
374
374
  ${D.val(z.map((E)=>E.slug))}::text[]
375
375
  ) AS v(id, slug)
376
376
  WHERE c.id = v.id AND c.url_slug IS NULL
377
- `.execute(_)}}async function oE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
377
+ `.execute(_)}}async function lE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
378
378
  CREATE TABLE connection_slug_aliases (
379
379
  organization_id text NOT NULL,
380
380
  slug text NOT NULL,
@@ -388,18 +388,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
388
388
  `.execute(_),await S_(_),await D`
389
389
  CREATE UNIQUE INDEX idx_connections_org_url_slug
390
390
  ON connections (organization_id, url_slug)
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_`
391
+ `.execute(_)}async function eE(_){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 tx={};C(tx,{up:()=>dE,down:()=>bE});async function dE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function bE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var ox={};C(ox,{up:()=>sE,down:()=>_0});async function sE(_){await S_(_)}async function _0(){}var ax={};C(ax,{up:()=>x0,down:()=>u0});import{sql as A_}from"kysely";async function x0(_){await A_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await A_`
392
392
  CREATE UNIQUE INDEX idx_automations_org_system_key
393
393
  ON automations (organization_id, system_key)
394
394
  WHERE system_key IS NOT NULL
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_`
395
+ `.execute(_)}async function u0(_){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 rx={};C(rx,{up:()=>C0,down:()=>K0});import{sql as z_}from"kysely";async function C0(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
396
396
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
397
397
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
398
398
  'board_pr_ready'))
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_`
399
+ `.execute(_)}async function K0(_){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_`
400
400
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
401
401
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
402
- `.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>N0});import{sql as H}from"kysely";async function u0(_){let{rows:x}=await H`
402
+ `.execute(_)}var lx={};C(lx,{up:()=>N0,down:()=>z0});import{sql as H}from"kysely";async function N0(_){let{rows:x}=await H`
403
403
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
404
404
  WHERE conname = 'chk_trigger_type'
405
405
  AND conrelid = 'automation_triggers'::regclass
@@ -426,8 +426,8 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
426
426
  INSERT INTO automations
427
427
  (id, organization_id, name, active, created_by, messages, models,
428
428
  virtual_mcp_id)
429
- VALUES (${T}, ${K.organization_id}, ${C0(K)}, true,
430
- ${K.created_by}, ${JSON.stringify(K0(K.prompt))},
429
+ VALUES (${T}, ${K.organization_id}, ${m0(K)}, true,
430
+ ${K.created_by}, ${JSON.stringify(T0(K.prompt))},
431
431
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
432
432
  ON CONFLICT (id) DO NOTHING
433
433
  `.execute(_),await H`
@@ -436,11 +436,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
436
436
  VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
437
437
  ${K.from_kind}, ${K.from_statuses})
438
438
  ON CONFLICT (id) DO NOTHING
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`
439
+ `.execute(_)}}function m0(_){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 T0(_){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 z0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
441
441
  ALTER TABLE automation_triggers
442
442
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
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_`
443
+ `.execute(_)}var ex={};C(ex,{up:()=>E0,down:()=>$0});import{sql as E_}from"kysely";async function E0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function $0(_){await E_`
444
444
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
445
445
  id text PRIMARY KEY,
446
446
  organization_id text NOT NULL,
@@ -467,7 +467,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
467
467
  updated_at timestamptz NOT NULL DEFAULT now(),
468
468
  PRIMARY KEY (organization_id, jira_status, from_key)
469
469
  )
470
- `.execute(_)}var ex={};C(ex,{up:()=>z0,down:()=>E0});import{sql as f_}from"kysely";async function z0(_){await f_`
470
+ `.execute(_)}var dx={};C(dx,{up:()=>U0,down:()=>P0});import{sql as f_}from"kysely";async function U0(_){await f_`
471
471
  ALTER TABLE task_board_items
472
472
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
473
473
  REFERENCES connections(id) ON DELETE SET NULL
@@ -475,22 +475,22 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
475
475
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
476
476
  ON task_board_items (virtual_mcp_id)
477
477
  WHERE virtual_mcp_id IS NOT NULL
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`
478
+ `.execute(_)}async function P0(_){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 bx={};C(bx,{up:()=>J0,down:()=>X0});async function J0(_){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 X0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var sx={};C(sx,{up:()=>Q0,down:()=>Z0});async function Q0(_){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 Z0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var _u={};C(_u,{up:()=>W0,down:()=>j0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function ET(_){let{rows:x}=await r`
479
479
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
480
480
  WHERE conname = 'chk_trigger_type'
481
481
  AND conrelid = 'automation_triggers'::regclass
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`
482
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function $T(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
483
483
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
484
484
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
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`
485
+ `.execute(_)}async function W0(_){let x=await ET(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await $T(_,x)}async function j0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await ET(_);for(let u of I_)x.delete(u);await $T(_,x)}var xu={};C(xu,{up:()=>L0,down:()=>F0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function UT(_){let{rows:x}=await l`
486
486
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
487
487
  WHERE conname = 'chk_trigger_type'
488
488
  AND conrelid = 'automation_triggers'::regclass
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`
489
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function PT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
490
490
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
491
491
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
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`
492
+ `.execute(_)}async function L0(_){let x=await UT(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await PT(_,x)}async function F0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await UT(_);for(let u of y_)x.delete(u);await PT(_,x)}var uu={};C(uu,{up:()=>D0,down:()=>H0});import{sql as Y0}from"kysely";async function D0(_){await Y0`ALTER TABLE organization_settings
493
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function H0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var Cu={};C(Cu,{up:()=>M0,down:()=>R0});import{sql as JT}from"kysely";async function M0(_){await JT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function R0(_){await JT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var Ku={};C(Ku,{up:()=>B0,down:()=>G0});import{sql as O}from"kysely";async function B0(_){await O`
494
494
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
495
495
  RETURNS jsonb AS $fn$
496
496
  BEGIN
@@ -564,7 +564,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
564
564
  || '/' ||
565
565
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
566
566
  ) = lower(p.path)
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`
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 G0(_){await O`
568
568
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
569
569
  RETURNS jsonb AS $fn$
570
570
  BEGIN
@@ -591,17 +591,17 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
591
591
  )::text
592
592
  WHERE a.id = 'commerce-discovery_' || a.organization_id
593
593
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
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
594
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var mu={};C(mu,{up:()=>O0,down:()=>S0});import{sql as Nu}from"kysely";async function O0(_){await Nu`ALTER TABLE git_provider_accounts
595
595
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
596
596
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
597
597
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
598
598
  ADD CONSTRAINT git_provider_accounts_cli_check
599
599
  CHECK (auth_kind <> 'github_cli' OR
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
600
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function S0(_){await Nu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Nu`ALTER TABLE git_provider_accounts
601
601
  DROP CONSTRAINT git_provider_accounts_cli_check,
602
602
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
603
603
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
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`
604
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Tu={};C(Tu,{up:()=>A0,down:()=>f0});import{sql as XT}from"kysely";async function A0(_){await XT`
605
605
  INSERT INTO "organization" (id, name, slug, "createdAt")
606
606
  SELECT
607
607
  'org_user_fs',
@@ -615,9 +615,9 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
615
615
  END,
616
616
  now()
617
617
  ON CONFLICT (id) DO NOTHING
618
- `.execute(_)}async function O0(_){await JT`
618
+ `.execute(_)}async function f0(_){await XT`
619
619
  DELETE FROM "organization" WHERE id = 'org_user_fs'
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`
620
+ `.execute(_)}var zu={};C(zu,{up:()=>I0,down:()=>y0});async function I0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function y0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Eu={};C(Eu,{up:()=>V0,down:()=>w0});async function V0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function w0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var $u={};C($u,{up:()=>n0,down:()=>v0});import{sql as $_}from"kysely";var k0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function QT(_,x){for(let{table:u,column:N}of k0){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 n0(_){await QT(_,["github","gitlab","bitbucket"])}async function v0(_){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 QT(_,["github","gitlab"])}var Uu={};C(Uu,{up:()=>p0,down:()=>g0});import{sql as V_}from"kysely";async function p0(_){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 g0(_){await _.schema.dropTable("experiments").execute()}var Pu={};C(Pu,{up:()=>i0,down:()=>c0});import{sql as q0}from"kysely";async function i0(_){await q0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function c0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Xu={};C(Xu,{up:()=>t0,down:()=>o0,ACTIONS:()=>Ju});import{sql as U_}from"kysely";var Ju=["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"],h0=Ju.filter((_)=>_!=="duplicate_reported");async function t0(_){await ZT(_,Ju)}async function o0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await ZT(_,h0)}async function ZT(_,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 Qu={};C(Qu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function r0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Zu={};C(Zu,{up:()=>l0,down:()=>e0});async function l0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function e0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Wu={};C(Wu,{up:()=>b0,down:()=>s0});import{sql as d0}from"kysely";async function b0(_){await d0`
621
621
  CREATE TABLE github_connect_flows (
622
622
  id text PRIMARY KEY,
623
623
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -627,7 +627,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
627
627
  );
628
628
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
629
629
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
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_`
630
+ `.execute(_)}async function s0(_){await _.schema.dropTable("github_connect_flows").execute()}var ju={};C(ju,{up:()=>_$,down:()=>x$});async function _$(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function x$(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Lu={};C(Lu,{up:()=>u$,down:()=>C$});import{sql as w_}from"kysely";async function u$(_){await w_`
631
631
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
632
632
  DECLARE
633
633
  metadata_json jsonb;
@@ -683,19 +683,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
683
683
  FROM repositories r WHERE s.repository_id IS NULL
684
684
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
685
685
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
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_`
686
+ `.execute(_)}async function C$(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Fu={};C(Fu,{up:()=>K$,down:()=>N$});import{sql as V}from"kysely";async function K$(_){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 N$(_){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 Yu={};C(Yu,{up:()=>m$,down:()=>T$});import{sql as WT}from"kysely";async function m$(_){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(WT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(WT`CURRENT_TIMESTAMP`)).execute()}async function T$(_){await _.schema.dropTable("organization_settings").execute()}var Du={};C(Du,{up:()=>z$,down:()=>E$});async function z$(_){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 E$(_){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 Hu={};C(Hu,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){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 Mu={};C(Mu,{up:()=>P$,down:()=>J$});async function P$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function J$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Ru={};C(Ru,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",X$`text`).execute()}async function Z$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Bu={};C(Bu,{up:()=>W$,down:()=>j$});async function W$(_){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 j$(_){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 Gu={};C(Gu,{up:()=>L$,down:()=>F$});import{sql as P_}from"kysely";async function L$(_){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 F$(_){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 Ou={};C(Ou,{up:()=>D$,down:()=>H$});import{sql as Y$}from"kysely";async function D$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function H$(_){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(Y$`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 Su={};C(Su,{up:()=>M$,down:()=>R$});import{sql as k_}from"kysely";async function M$(_){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 R$(_){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 Au={};C(Au,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function G$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var fu={};C(fu,{up:()=>O$,down:()=>S$});import{sql as n_}from"kysely";async function O$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
687
687
  UPDATE gateways
688
688
  SET tool_selection_mode = CASE
689
689
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
690
690
  ELSE 'inclusion'
691
691
  END
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_`
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 S$(_){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_`
693
693
  UPDATE gateways
694
694
  SET tool_selection_strategy = CASE
695
695
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
696
696
  ELSE NULL
697
697
  END
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$`
698
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Iu={};C(Iu,{up:()=>A$,down:()=>f$});async function A$(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function f$(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var yu={};C(yu,{up:()=>I$,down:()=>y$});async function I$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function y$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Vu={};C(Vu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function w$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var wu={};C(wu,{up:()=>k$,down:()=>n$});async function k$(_){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 n$(_){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 ku={};C(ku,{up:()=>p$,down:()=>g$});import{sql as v$}from"kysely";async function p$(_){await v$`
699
699
  DELETE FROM downstream_tokens
700
700
  WHERE id NOT IN (
701
701
  SELECT id FROM (
@@ -705,7 +705,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
705
705
  ) ranked
706
706
  WHERE rn = 1
707
707
  )
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`
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 g$(_){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 nu={};C(nu,{up:()=>q$,down:()=>i$});async function q$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function i$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var vu={};C(vu,{up:()=>c$,down:()=>h$});import{sql as jT}from"kysely";async function c$(_){await jT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function h$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await jT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var pu={};C(pu,{up:()=>t$,down:()=>o$});async function t$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function o$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var gu={};C(gu,{up:()=>a$,down:()=>r$});import{sql as v_}from"kysely";async function a$(_){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 r$(_){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 qu={};C(qu,{up:()=>l$,down:()=>e$});async function l$(_){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 e$(_){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 iu={};C(iu,{up:()=>d$,down:()=>b$});async function d$(_){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 b$(_){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 cu={};C(cu,{up:()=>s$,down:()=>_U});import{sql as M}from"kysely";async function s$(_){await M`
709
709
  INSERT INTO connections (
710
710
  id,
711
711
  organization_id,
@@ -752,7 +752,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
752
752
  created_at,
753
753
  updated_at
754
754
  FROM virtual_mcps
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`
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 _U(_){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`
756
756
  INSERT INTO virtual_mcps (
757
757
  id, organization_id, title, description, icon, status,
758
758
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -762,7 +762,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
762
762
  created_at, updated_at, created_by, NULL, 'inclusion'
763
763
  FROM connections
764
764
  WHERE connection_type = 'VIRTUAL'
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`
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 hu={};C(hu,{up:()=>xU,down:()=>uU});async function xU(_){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 uU(_){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 tu={};C(tu,{up:()=>CU,down:()=>KU});import{sql as w}from"kysely";async function CU(_){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`
766
766
  INSERT INTO connection_aggregations_new (
767
767
  id, parent_connection_id, child_connection_id,
768
768
  selected_tools, selected_resources, selected_prompts, created_at
@@ -771,7 +771,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
771
771
  id, parent_connection_id, child_connection_id,
772
772
  selected_tools, selected_resources, selected_prompts, created_at
773
773
  FROM connection_aggregations
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`
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 KU(_){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`
775
775
  INSERT INTO connection_aggregations_new (
776
776
  id, parent_connection_id, child_connection_id,
777
777
  selected_tools, selected_resources, selected_prompts, created_at
@@ -780,7 +780,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
780
780
  id, parent_connection_id, child_connection_id,
781
781
  selected_tools, selected_resources, selected_prompts, created_at
782
782
  FROM connection_aggregations
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`
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 au={};C(au,{up:()=>NU,down:()=>mU});import{sql as ou}from"kysely";async function NU(_){await ou`
784
784
  UPDATE connections
785
785
  SET connection_url = connection_url || '/management',
786
786
  tools = NULL,
@@ -788,42 +788,42 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
788
788
  WHERE connection_url LIKE '%/mcp'
789
789
  AND connection_url NOT LIKE '%/mcp/management'
790
790
  AND app_name = '@deco/management-mcp'
791
- `.execute(_),await tu`
791
+ `.execute(_),await ou`
792
792
  UPDATE connections
793
793
  SET tools = NULL,
794
794
  updated_at = CURRENT_TIMESTAMP
795
795
  WHERE app_name = '@deco/management-mcp'
796
796
  AND tools IS NOT NULL
797
- `.execute(_)}async function CU(_){await tu`
797
+ `.execute(_)}async function mU(_){await ou`
798
798
  UPDATE connections
799
799
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
800
800
  updated_at = CURRENT_TIMESTAMP
801
801
  WHERE connection_url LIKE '%/mcp/management'
802
802
  AND app_name = '@deco/management-mcp'
803
- `.execute(_)}var ru={};C(ru,{up:()=>KU,down:()=>NU});import{sql as au}from"kysely";async function KU(_){await au`
803
+ `.execute(_)}var lu={};C(lu,{up:()=>TU,down:()=>zU});import{sql as ru}from"kysely";async function TU(_){await ru`
804
804
  UPDATE connections
805
805
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
806
806
  tools = NULL,
807
807
  updated_at = CURRENT_TIMESTAMP
808
808
  WHERE connection_url LIKE '%/mcp/management'
809
809
  AND app_name = '@deco/management-mcp'
810
- `.execute(_),await au`
810
+ `.execute(_),await ru`
811
811
  UPDATE connections
812
812
  SET tools = NULL,
813
813
  updated_at = CURRENT_TIMESTAMP
814
814
  WHERE connection_url LIKE '%/mcp/self'
815
815
  AND app_name = '@deco/management-mcp'
816
816
  AND tools IS NOT NULL
817
- `.execute(_)}async function NU(_){await au`
817
+ `.execute(_)}async function zU(_){await ru`
818
818
  UPDATE connections
819
819
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
820
820
  updated_at = CURRENT_TIMESTAMP
821
821
  WHERE connection_url LIKE '%/mcp/self'
822
822
  AND app_name = '@deco/management-mcp'
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_`
823
+ `.execute(_)}var eu={};C(eu,{up:()=>EU,down:()=>$U});async function EU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function $U(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var du={};C(du,{up:()=>UU,down:()=>PU});import{sql as LT}from"kysely";async function UU(_){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(LT`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(LT`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 PU(_){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 bu={};C(bu,{up:()=>JU,down:()=>XU});import{sql as J_}from"kysely";async function JU(_){await J_`
824
824
  ALTER TABLE connection_aggregations
825
825
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
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_`
826
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function XU(_){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_`
827
827
  INSERT INTO connection_aggregations_new (
828
828
  id, parent_connection_id, child_connection_id,
829
829
  selected_tools, selected_resources, selected_prompts, created_at
@@ -832,42 +832,42 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
832
832
  id, parent_connection_id, child_connection_id,
833
833
  selected_tools, selected_resources, selected_prompts, created_at
834
834
  FROM connection_aggregations
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`
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 su={};C(su,{up:()=>LU,down:()=>FU});import{webcrypto as YT}from"crypto";var FT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var QU=128,h,e;function ZU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*QU),YT.getRandomValues(h),e=0;else if(e+_>h.length)YT.getRandomValues(h),e=0;e+=_}function d(_=21){ZU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=FT[h[u]&63];return x}var WU="org-admin",jU="Organization Admin";async function LU(_){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:WU,name:jU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function FU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var _C={};C(_C,{up:()=>YU,down:()=>DU});async function YU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function DU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var xC={};C(xC,{up:()=>HU,down:()=>MU});async function HU(_){}async function MU(_){}var uC={};C(uC,{up:()=>RU,down:()=>BU});async function RU(_){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 BU(_){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 CC={};C(CC,{up:()=>GU,down:()=>OU});import{sql as DT}from"kysely";async function GU(_){await DT`
836
836
  UPDATE connections
837
837
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
838
838
  tools = NULL,
839
839
  updated_at = CURRENT_TIMESTAMP
840
840
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
841
841
  AND app_name = 'deco-registry'
842
- `.execute(_)}async function RU(_){await YT`
842
+ `.execute(_)}async function OU(_){await DT`
843
843
  UPDATE connections
844
844
  SET connection_url = 'https://api.decocms.com/mcp/registry',
845
845
  updated_at = CURRENT_TIMESTAMP
846
846
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
847
847
  AND app_name = 'deco-registry'
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`
848
+ `.execute(_)}var KC={};C(KC,{up:()=>AU,down:()=>fU});import{sql as SU}from"kysely";async function AU(_){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(SU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function fU(_){await _.schema.dropTable("ai_provider_keys").execute()}var NC={};C(NC,{up:()=>yU,down:()=>VU});import{sql as IU}from"kysely";async function yU(_){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(IU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function VU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var mC={};C(mC,{up:()=>wU,down:()=>kU});import{sql as p}from"kysely";async function wU(_){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 kU(_){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 TC={};C(TC,{up:()=>nU,down:()=>vU});async function nU(_){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 vU(_){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 zC={};C(zC,{up:()=>pU,down:()=>gU});async function pU(_){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 gU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var EC={};C(EC,{up:()=>qU,down:()=>iU});import{sql as HT}from"kysely";async function qU(_){await HT`
849
849
  UPDATE connections
850
850
  SET title = 'CMS MCP',
851
851
  tools = NULL,
852
852
  updated_at = CURRENT_TIMESTAMP
853
853
  WHERE app_name = '@deco/management-mcp'
854
- `.execute(_)}async function pU(_){await DT`
854
+ `.execute(_)}async function iU(_){await HT`
855
855
  UPDATE connections
856
856
  SET title = 'Mesh MCP',
857
857
  updated_at = CURRENT_TIMESTAMP
858
858
  WHERE app_name = '@deco/management-mcp'
859
- `.execute(_)}var EC={};C(EC,{up:()=>gU,down:()=>qU});import{sql as HT}from"kysely";async function gU(_){await HT`
859
+ `.execute(_)}var $C={};C($C,{up:()=>cU,down:()=>hU});import{sql as MT}from"kysely";async function cU(_){await MT`
860
860
  UPDATE connections
861
861
  SET title = 'Deco CMS',
862
862
  tools = NULL,
863
863
  updated_at = CURRENT_TIMESTAMP
864
864
  WHERE app_name = '@deco/management-mcp'
865
- `.execute(_)}async function qU(_){await HT`
865
+ `.execute(_)}async function hU(_){await MT`
866
866
  UPDATE connections
867
867
  SET title = 'CMS MCP',
868
868
  updated_at = CURRENT_TIMESTAMP
869
869
  WHERE app_name = '@deco/management-mcp'
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`
870
+ `.execute(_)}var UC={};C(UC,{up:()=>tU,down:()=>oU});async function tU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function oU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var PC={};C(PC,{up:()=>aU,down:()=>rU});async function aU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function rU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var XC={};C(XC,{up:()=>lU,down:()=>eU});import{sql as JC}from"kysely";async function lU(_){await JC`
871
871
  UPDATE organization_settings
872
872
  SET enabled_plugins = (
873
873
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -876,7 +876,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
876
876
  )
877
877
  WHERE enabled_plugins IS NOT NULL
878
878
  AND enabled_plugins LIKE '%object-storage%'
879
- `.execute(_),await PC`
879
+ `.execute(_),await JC`
880
880
  UPDATE projects
881
881
  SET enabled_plugins = (
882
882
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -885,28 +885,28 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
885
885
  )
886
886
  WHERE enabled_plugins IS NOT NULL
887
887
  AND enabled_plugins LIKE '%object-storage%'
888
- `.execute(_),await PC`
888
+ `.execute(_),await JC`
889
889
  DELETE FROM project_plugin_configs
890
890
  WHERE plugin_id = 'object-storage'
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`
891
+ `.execute(_)}async function eU(_){}var QC={};C(QC,{up:()=>dU,down:()=>bU});import{sql as RT}from"kysely";async function dU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await RT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function bU(_){await RT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var WC={};C(WC,{up:()=>sU,down:()=>_P});import{sql as ZC}from"kysely";async function sU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await ZC`
892
892
  ALTER TABLE connections
893
893
  ADD CONSTRAINT chk_connections_subtype
894
894
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
895
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await QC`
895
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await ZC`
896
896
  UPDATE connections
897
897
  SET subtype = 'agent'
898
898
  WHERE connection_type = 'VIRTUAL'
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`
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 _P(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await ZC`
900
900
  ALTER TABLE connections
901
901
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
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`
902
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var jC={};C(jC,{up:()=>uP,down:()=>CP});import{sql as xP}from"kysely";async function uP(_){await xP`
903
903
  DELETE FROM connections
904
904
  WHERE connection_type = 'VIRTUAL'
905
905
  AND subtype = 'project'
906
906
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
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`
907
+ `.execute(_)}async function CP(_){}var LC={};C(LC,{up:()=>NP,down:()=>mP});import{sql as KP}from"kysely";async function NP(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await KP`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function mP(_){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 YC={};C(YC,{up:()=>TP,down:()=>zP});import{sql as FC}from"kysely";async function TP(_){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(FC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(FC`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(FC`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 zP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var DC={};C(DC,{up:()=>EP,down:()=>$P});async function EP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function $P(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var HC={};C(HC,{up:()=>UP,down:()=>PP});async function UP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function PP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var RC={};C(RC,{up:()=>XP,down:()=>QP});import{sql as BT}from"kysely";function MC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function JP(_){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 MC(N)}catch{return MC(_.connection_url)}if(_.title)return MC(_.title);return _.id}async function XP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await BT`
908
908
  SELECT id, app_name, connection_url, title FROM connections
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_`
909
+ `.execute(_);for(let u of x.rows){let N=JP(u);await BT`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 QP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var BC={};C(BC,{up:()=>ZP,down:()=>WP});import{sql as X_}from"kysely";async function ZP(_){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 WP(_){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 GC={};C(GC,{up:()=>jP,down:()=>LP});async function jP(_){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 LP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var OC={};C(OC,{up:()=>FP,down:()=>YP});import{sql as p_}from"kysely";async function FP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
910
910
  UPDATE threads
911
911
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
912
912
  WHERE agent_ids IS NOT NULL
@@ -916,14 +916,14 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
916
916
  `.execute(_),await p_`
917
917
  CREATE INDEX idx_threads_virtual_mcp_id
918
918
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
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_`
919
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function YP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
920
920
  UPDATE threads
921
921
  SET agent_ids = CASE
922
922
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
923
923
  THEN jsonb_build_array(virtual_mcp_id)::text
924
924
  ELSE '[]'
925
925
  END
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`
926
+ `.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var SC={};C(SC,{up:()=>DP,down:()=>HP});async function DP(_){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 HP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var AC={};C(AC,{up:()=>MP,down:()=>RP});async function MP(_){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 RP(_){await _.schema.dropTable("kv").execute()}var fC={};C(fC,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function GP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var IC={};C(IC,{up:()=>OP,down:()=>SP});async function OP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function SP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var yC={};C(yC,{up:()=>AP,down:()=>fP});import{sql as S}from"kysely";async function AP(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await S`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await S`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function fP(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var VC={};C(VC,{up:()=>IP,down:()=>yP});import{sql as b}from"kysely";async function IP(_){await b`
927
927
  ALTER TABLE event_subscriptions
928
928
  ALTER COLUMN enabled DROP DEFAULT
929
929
  `.execute(_),await b`
@@ -933,7 +933,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
933
933
  `.execute(_),await b`
934
934
  ALTER TABLE event_subscriptions
935
935
  ALTER COLUMN enabled SET DEFAULT true
936
- `.execute(_)}async function AP(_){await b`
936
+ `.execute(_)}async function yP(_){await b`
937
937
  ALTER TABLE event_subscriptions
938
938
  ALTER COLUMN enabled DROP DEFAULT
939
939
  `.execute(_),await b`
@@ -943,7 +943,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
943
943
  `.execute(_),await b`
944
944
  ALTER TABLE event_subscriptions
945
945
  ALTER COLUMN enabled SET DEFAULT 1
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`
946
+ `.execute(_)}var wC={};C(wC,{up:()=>VP,down:()=>wP});import{sql as GT}from"kysely";async function VP(_){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(GT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(GT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function wP(_){await _.schema.dropTable("brand_context").execute()}var kC={};C(kC,{up:()=>kP,down:()=>nP});import{sql as OT}from"kysely";async function kP(_){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(OT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(OT`now()`)).execute()}async function nP(_){await _.schema.dropTable("organization_domains").execute()}var nC={};C(nC,{up:()=>qP,down:()=>iP});import{sql as ST}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),vP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function pP(_){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 gP(_){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=vP[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 qP(_){let x=await ST`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=pP($);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=gP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await ST`
947
947
  UPDATE brand_context
948
948
  SET
949
949
  colors = ${T},
@@ -951,20 +951,20 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
951
951
  metadata = ${$},
952
952
  updated_at = NOW()
953
953
  WHERE id = ${u.id}
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`
954
+ `.execute(_)}}}async function iP(_){}var vC={};C(vC,{up:()=>hP,down:()=>tP});import{sql as cP}from"kysely";async function hP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(cP`'{}'::jsonb`)).execute()}async function tP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var pC={};C(pC,{up:()=>oP,down:()=>aP});async function oP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function aP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var gC={};C(gC,{up:()=>rP,down:()=>lP});async function rP(_){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 lP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var qC={};C(qC,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function dP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var iC={};C(iC,{up:()=>bP,down:()=>sP});async function bP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function sP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var cC={};C(cC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function xJ(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var hC={};C(hC,{up:()=>CJ,down:()=>KJ});import{sql as AT}from"kysely";var uJ=["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 CJ(_){let x=await AT`
955
955
  SELECT id, permission FROM "organizationRole"
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`
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,...uJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await AT`
957
957
  UPDATE "organizationRole"
958
958
  SET permission = ${z}
959
959
  WHERE id = ${u.id}
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_`
960
+ `.execute(_)}}async function KJ(_){}var tC={};C(tC,{up:()=>NJ,down:()=>mJ});async function NJ(_){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 mJ(_){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 oC={};C(oC,{up:()=>TJ,down:()=>zJ});async function TJ(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function zJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var aC={};C(aC,{up:()=>EJ,down:()=>$J});import{sql as Q_}from"kysely";async function EJ(_){await Q_`
961
961
  UPDATE automations
962
962
  SET virtual_mcp_id = (agent::json ->> 'id')
963
963
  WHERE virtual_mcp_id IS NULL
964
964
  `.execute(_),await Q_`
965
965
  ALTER TABLE automations
966
966
  ALTER COLUMN virtual_mcp_id SET NOT NULL
967
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function TJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
967
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function $J(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
968
968
  UPDATE automations
969
969
  SET agent = json_build_object('id', virtual_mcp_id)::text
970
970
  `.execute(_),await Q_`
@@ -973,7 +973,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
973
973
  `.execute(_),await Q_`
974
974
  ALTER TABLE automations
975
975
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
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`
976
+ `.execute(_)}var lC={};C(lC,{up:()=>XJ,reshapeSimpleMode:()=>fT,inferAutomationTier:()=>IT,down:()=>QJ,__testing:()=>JJ});var UJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},PJ=["fast","smart","thinking","image","web_research"];function rC(_){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 PJ.some((N)=>(N in u))}function fT(_){if(rC(_))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 UJ;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 IT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function yT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var JJ={isAlreadyReshapedSimpleMode:rC,isAlreadyReshapedAutomationModels:yT};async function XJ(_){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(rC(K))continue;let m=fT(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(yT(K))continue;let m=IT(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 QJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var eC={};C(eC,{up:()=>ZJ,down:()=>WJ});import{sql as n}from"kysely";async function ZJ(_){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`
977
977
  ALTER TABLE automations
978
978
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
979
979
  `.execute(_),await n`
@@ -995,19 +995,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
995
995
  AND tool_input IS NOT NULL
996
996
  )
997
997
  )
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`
998
+ `.execute(_)}async function WJ(_){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`
999
999
  ALTER TABLE automations
1000
1000
  ALTER COLUMN virtual_mcp_id SET NOT NULL
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`
1001
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var dC={};C(dC,{up:()=>LJ,down:()=>FJ});import{sql as VT}from"kysely";var jJ=new Set(["host","docker","agent-sandbox"]);async function LJ(_){let x=await VT`
1002
1002
  SELECT id, metadata FROM "connections"
1003
1003
  WHERE connection_type = 'VIRTUAL'
1004
1004
  AND metadata IS NOT NULL
1005
1005
  AND metadata LIKE '%vmMap%'
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`
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&&!jJ.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 VT`
1007
1007
  UPDATE "connections"
1008
1008
  SET metadata = ${z}
1009
1009
  WHERE id = ${u.id}
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_`
1010
+ `.execute(_)}}async function FJ(_){}var bC={};C(bC,{up:()=>YJ,down:()=>DJ});import{sql as Z_}from"kysely";async function YJ(_){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_`
1011
1011
  CREATE INDEX async_research_jobs_active_idx
1012
1012
  ON async_research_jobs (status, last_polled_at)
1013
1013
  WHERE status IN ('pending', 'polling')
@@ -1015,7 +1015,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1015
1015
  ALTER TABLE async_research_jobs
1016
1016
  ADD CONSTRAINT chk_async_research_jobs_status
1017
1017
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
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`
1018
+ `.execute(_)}async function DJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var sC={};C(sC,{up:()=>HJ,down:()=>MJ});async function HJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function MJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var _K={};C(_K,{up:()=>RJ,down:()=>BJ});import{sql as s}from"kysely";async function RJ(_){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`
1019
1019
  ALTER TABLE secrets
1020
1020
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
1021
1021
  `.execute(_),await s`
@@ -1032,7 +1032,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1032
1032
  CREATE UNIQUE INDEX idx_secrets_org_name
1033
1033
  ON secrets (organization_id, lower(name))
1034
1034
  WHERE scope = 'organization'
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_`
1035
+ `.execute(_)}async function BJ(_){await _.schema.dropTable("secrets").execute()}var xK={};C(xK,{up:()=>GJ,down:()=>OJ});async function GJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function OJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var uK={};C(uK,{up:()=>AJ,down:()=>fJ});import{sql as SJ}from"kysely";async function AJ(_){await SJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function fJ(_){}var CK={};C(CK,{up:()=>IJ,down:()=>yJ});import{sql as q_}from"kysely";async function IJ(_){await q_`
1036
1036
  ALTER TABLE sandbox_runner_state
1037
1037
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1038
1038
  `.execute(_),await q_`
@@ -1070,7 +1070,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1070
1070
  EXCEPTION WHEN undefined_table THEN
1071
1071
  NULL;
1072
1072
  END; $$
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_`
1073
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function yJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
1074
1074
  ALTER TABLE sandbox_runner_state
1075
1075
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1076
1076
  `.execute(_),await q_`
@@ -1108,7 +1108,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1108
1108
  EXCEPTION WHEN undefined_table THEN
1109
1109
  NULL;
1110
1110
  END; $$
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`
1111
+ `.execute(_)}var KK={};C(KK,{up:()=>VJ,down:()=>wJ});import{sql as wT}from"kysely";async function VJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await wT`
1112
1112
  DO $$ BEGIN
1113
1113
  UPDATE virtualmcps v
1114
1114
  SET metadata = jsonb_set(
@@ -1147,7 +1147,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1147
1147
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1148
1148
  NULL;
1149
1149
  END; $$
1150
- `.execute(_)}async function IJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await VT`
1150
+ `.execute(_)}async function wJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await wT`
1151
1151
  DO $$ BEGIN
1152
1152
  UPDATE virtualmcps v
1153
1153
  SET metadata = jsonb_set(
@@ -1180,7 +1180,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1180
1180
  EXCEPTION WHEN undefined_table THEN
1181
1181
  NULL;
1182
1182
  END; $$
1183
- `.execute(_)}var KK={};C(KK,{up:()=>yJ,down:()=>VJ});import{sql as wT}from"kysely";async function yJ(_){await wT`
1183
+ `.execute(_)}var NK={};C(NK,{up:()=>kJ,down:()=>nJ});import{sql as kT}from"kysely";async function kJ(_){await kT`
1184
1184
  UPDATE connections c
1185
1185
  SET metadata = (
1186
1186
  jsonb_set(
@@ -1224,7 +1224,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1224
1224
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1225
1225
  WHERE entry ? 'vmId'
1226
1226
  );
1227
- `.execute(_),await wT`
1227
+ `.execute(_),await kT`
1228
1228
  UPDATE connections c
1229
1229
  SET metadata = (
1230
1230
  jsonb_set(
@@ -1278,10 +1278,10 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1278
1278
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1279
1279
  WHERE inner_entry ? 'runnerKind'
1280
1280
  );
1281
- `.execute(_)}async function VJ(_){}var NK={};C(NK,{up:()=>kJ,down:()=>nJ});import{sql as wJ}from"kysely";async function kJ(_){await wJ`
1281
+ `.execute(_)}async function nJ(_){}var mK={};C(mK,{up:()=>pJ,down:()=>gJ});import{sql as vJ}from"kysely";async function pJ(_){await vJ`
1282
1282
  DELETE FROM ai_provider_keys
1283
1283
  WHERE provider_id IN ('claude-code', 'codex')
1284
- `.execute(_)}async function nJ(_){}var mK={};C(mK,{up:()=>vJ,down:()=>pJ});import{sql as i_}from"kysely";async function vJ(_){await i_`
1284
+ `.execute(_)}async function gJ(_){}var TK={};C(TK,{up:()=>qJ,down:()=>iJ});import{sql as i_}from"kysely";async function qJ(_){await i_`
1285
1285
  UPDATE sandbox_runner_state
1286
1286
  SET sandbox_provider_kind = 'desktop'
1287
1287
  WHERE sandbox_provider_kind = 'remote-user'
@@ -1379,13 +1379,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1379
1379
  UPDATE threads
1380
1380
  SET sandbox_provider_kind = 'desktop'
1381
1381
  WHERE sandbox_provider_kind = 'remote-user'
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`
1382
+ `.execute(_)}async function iJ(_){}var zK={};C(zK,{up:()=>cJ,down:()=>hJ});import{sql as W_}from"kysely";async function cJ(_){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 hJ(_){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 EK={};C(EK,{up:()=>tJ,down:()=>oJ});import{sql as nT}from"kysely";async function tJ(_){await nT`
1383
1383
  ALTER TABLE organization_domains
1384
1384
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
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`
1385
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function oJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await nT`
1386
1386
  ALTER TABLE organization_domains
1387
1387
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1388
- `.execute(_)}var EK={};C(EK,{up:()=>hJ,down:()=>tJ});import{sql as c_}from"kysely";async function hJ(_){await c_`
1388
+ `.execute(_)}var $K={};C($K,{up:()=>aJ,down:()=>rJ});import{sql as c_}from"kysely";async function aJ(_){await c_`
1389
1389
  UPDATE sandbox_runner_state
1390
1390
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1391
1391
  WHEN 'docker' THEN 'local-docker'
@@ -1474,19 +1474,19 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1474
1474
  WHERE c.connection_type = 'VIRTUAL'
1475
1475
  AND c.metadata IS NOT NULL
1476
1476
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
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`
1477
+ `.execute(_)}async function rJ(_){}var UK={};C(UK,{up:()=>eJ,down:()=>dJ});import{sql as vT}from"kysely";var lJ=["GLOBAL_SEARCH"];async function eJ(_){let x=await vT`
1478
1478
  SELECT id, permission FROM "organizationRole"
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`
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,...lJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await vT`
1480
1480
  UPDATE "organizationRole"
1481
1481
  SET permission = ${z}
1482
1482
  WHERE id = ${u.id}
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`
1483
+ `.execute(_)}}async function dJ(_){}var JK={};C(JK,{up:()=>bJ,down:()=>sJ});import{sql as PK}from"kysely";async function bJ(_){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(PK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(PK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await PK`
1484
1484
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1485
1485
  ON org_file_configs (organization_id, lower(name))
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`
1486
+ `.execute(_)}async function sJ(_){await _.schema.dropTable("org_file_configs").execute()}var XK={};C(XK,{up:()=>_X,down:()=>xX});import{sql as v}from"kysely";async function _X(_){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`
1487
1487
  ALTER TABLE automations
1488
1488
  ALTER COLUMN virtual_mcp_id SET NOT NULL
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`
1489
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function xX(_){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`
1490
1490
  ALTER TABLE automations
1491
1491
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1492
1492
  `.execute(_),await v`
@@ -1508,25 +1508,25 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1508
1508
  AND tool_input IS NOT NULL
1509
1509
  )
1510
1510
  )
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`
1511
+ `.execute(_)}var QK={};C(QK,{up:()=>uX,down:()=>CX});async function uX(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function CX(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var WK={};C(WK,{up:()=>KX,down:()=>NX});import{sql as ZK}from"kysely";var h_="local-docker";async function KX(_){await ZK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await ZK`
1512
1512
  SELECT id, metadata FROM "connections"
1513
1513
  WHERE connection_type = 'VIRTUAL'
1514
1514
  AND metadata IS NOT NULL
1515
1515
  AND metadata LIKE ${"%"+h_+"%"}
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`
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 ZK`
1517
1517
  UPDATE "connections"
1518
1518
  SET metadata = ${z}
1519
1519
  WHERE id = ${u.id}
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`
1520
+ `.execute(_)}}async function NX(_){}var jK={};C(jK,{up:()=>mX,down:()=>TX});import{sql as t_}from"kysely";async function mX(_){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 TX(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var LK={};C(LK,{up:()=>zX,down:()=>EX});async function zX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function EX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var FK={};C(FK,{up:()=>$X,down:()=>UX});async function $X(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function UX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var YK={};C(YK,{up:()=>PX,down:()=>JX});async function PX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function JX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var DK={};C(DK,{up:()=>XX,down:()=>QX});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()}async function QX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var HK={};C(HK,{up:()=>ZX,down:()=>WX});async function ZX(_){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 WX(_){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 RK={};C(RK,{up:()=>LX,down:()=>FX});import{sql as k}from"kysely";var A="cluster",f="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function MK(_,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 jX(_,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]=MK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=MK(Q,x,u);continue}let y=MK(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 pT(_,x,u){let N=await k`
1521
1521
  SELECT id, metadata FROM connections
1522
1522
  WHERE connection_type = 'VIRTUAL'
1523
1523
  AND metadata IS NOT NULL
1524
1524
  AND metadata LIKE ${"%"+x+"%"}
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`
1525
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=jX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1526
1526
  UPDATE connections
1527
1527
  SET metadata = ${JSON.stringify(m)}
1528
1528
  WHERE id = ${K.id}
1529
- `.execute(_)}}async function ZX(_){await k`
1529
+ `.execute(_)}}async function LX(_){await k`
1530
1530
  UPDATE threads
1531
1531
  SET sandbox_provider_kind = ${f}
1532
1532
  WHERE sandbox_provider_kind = ${A}
@@ -1555,7 +1555,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1555
1555
  UPDATE sandbox_runner_state
1556
1556
  SET sandbox_provider_kind = ${f}
1557
1557
  WHERE sandbox_provider_kind = ${A}
1558
- `.execute(_),await vT(_,A,f)}async function WX(_){await k`
1558
+ `.execute(_),await pT(_,A,f)}async function FX(_){await k`
1559
1559
  UPDATE threads
1560
1560
  SET sandbox_provider_kind = ${A}
1561
1561
  WHERE sandbox_provider_kind = ${f}
@@ -1584,7 +1584,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1584
1584
  UPDATE sandbox_runner_state
1585
1585
  SET sandbox_provider_kind = ${A}
1586
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`
1587
+ `.execute(_),await pT(_,f,A)}var BK={};C(BK,{up:()=>YX,down:()=>DX});import{sql as g}from"kysely";async function YX(_){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`
1588
1588
  CREATE INDEX idx_org_fs_entry_parent
1589
1589
  ON org_fs_entry (organization_id, volume, parent)
1590
1590
  WHERE deleted_at IS NULL
@@ -1592,7 +1592,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1592
1592
  CREATE INDEX idx_org_fs_entry_usage
1593
1593
  ON org_fs_entry (organization_id, volume, size)
1594
1594
  WHERE kind = 'file' AND deleted_at IS NULL
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`
1595
+ `.execute(_)}async function DX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var GK={};C(GK,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function MX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var OK={};C(OK,{up:()=>RX,down:()=>BX});import{sql as gT}from"kysely";async function RX(_){await gT`
1596
1596
  INSERT INTO "organization" (id, name, slug, "createdAt")
1597
1597
  SELECT
1598
1598
  'org_orgfs_public_skills',
@@ -1606,13 +1606,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1606
1606
  END,
1607
1607
  now()
1608
1608
  ON CONFLICT (id) DO NOTHING
1609
- `.execute(_)}async function HX(_){await pT`
1609
+ `.execute(_)}async function BX(_){await gT`
1610
1610
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
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`
1611
+ `.execute(_)}var SK={};C(SK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function OX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var AK={};C(AK,{up:()=>SX,down:()=>AX});import{sql as qT}from"kysely";async function SX(_){await qT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function AX(_){await qT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var fK={};C(fK,{up:()=>IX,down:()=>yX});import{sql as fX}from"kysely";async function IX(_){await fX`
1612
1612
  UPDATE downstream_tokens
1613
1613
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1614
1614
  WHERE "expiresAt" IS NULL
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`
1615
+ `.execute(_)}async function yX(_){}var IK={};C(IK,{up:()=>VX,down:()=>wX});async function VX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function wX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var yK={};C(yK,{up:()=>kX,down:()=>nX});async function kX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function nX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var VK={};C(VK,{up:()=>vX,down:()=>pX});async function vX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function pX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var wK={};C(wK,{up:()=>gX,down:()=>qX});async function gX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function qX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var kK={};C(kK,{up:()=>iX,down:()=>cX});async function iX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function cX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var nK={};C(nK,{up:()=>hX,down:()=>tX});import{sql as iT}from"kysely";async function hX(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(iT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function tX(_){await _.schema.dropTable("org_sites").execute()}var vK={};C(vK,{up:()=>oX,down:()=>aX});async function oX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function aX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var pK={};C(pK,{up:()=>rX,down:()=>lX});import{sql as R}from"kysely";async function rX(_){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`
1616
1616
  UPDATE organization_domains
1617
1617
  SET
1618
1618
  id = gen_random_uuid()::text,
@@ -1621,18 +1621,18 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1621
1621
  verification_method = 'email',
1622
1622
  verified_at = created_at
1623
1623
  WHERE id IS NULL
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`
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 lX(_){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`
1625
1625
  UPDATE organization_domains
1626
1626
  SET auto_join_enabled = (join_mode = 'auto')
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_`
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 gK={};C(gK,{up:()=>eX,down:()=>dX});import{sql as a_}from"kysely";async function eX(_){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_`
1628
1628
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1629
1629
  ON organization_join_requests (organization_id, user_id)
1630
1630
  WHERE status = 'pending'
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_`
1631
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function dX(_){await _.schema.dropTable("organization_join_requests").execute()}var qK={};C(qK,{up:()=>bX,down:()=>sX});async function bX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function sX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var iK={};C(iK,{up:()=>_Q,down:()=>xQ});async function _Q(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function xQ(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var tK={};C(tK,{up:()=>KQ,splitWebResearchTier:()=>hK,down:()=>NQ,__testing:()=>CQ});function uQ(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function cK(_){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 hK(_){if(!_||cK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(uQ(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var CQ={splitWebResearchTier:hK,isAlreadySplit:cK};async function KQ(_){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(cK(N))continue;let K=hK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function NQ(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var oK={};C(oK,{up:()=>mQ,down:()=>TQ});import{sql as j_}from"kysely";async function mQ(_){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_`
1632
1632
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1633
1633
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1634
1634
  WHERE revoked_at IS NULL
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`
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 TQ(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var aK={};C(aK,{up:()=>zQ,down:()=>EQ});async function zQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function EQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var rK={};C(rK,{up:()=>$Q,down:()=>UQ});import{sql as t}from"kysely";async function $Q(_){await t`
1636
1636
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1637
1637
  RETURNS jsonb AS $fn$
1638
1638
  BEGIN
@@ -1691,7 +1691,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1691
1691
  BEFORE INSERT ON connection_aggregations
1692
1692
  FOR EACH ROW
1693
1693
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
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`
1694
+ `.execute(_)}async function UQ(_){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 eK={};C(eK,{up:()=>PQ,down:()=>JQ});import{sql as lK}from"kysely";async function PQ(_){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(lK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lK`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(lK`false`)).execute()}async function JQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var dK={};C(dK,{up:()=>XQ,down:()=>QQ});async function XQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function QQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var bK={};C(bK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function WQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var sK={};C(sK,{up:()=>jQ,down:()=>LQ});async function jQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function LQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var _N={};C(_N,{up:()=>YQ,down:()=>DQ});import{sql as FQ}from"kysely";async function YQ(_){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(FQ`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 DQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var xN={};C(xN,{up:()=>HQ,down:()=>MQ});async function HQ(_){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 MQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var uN={};C(uN,{up:()=>BQ,down:()=>GQ});import{sql as RQ}from"kysely";async function BQ(_){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(RQ`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 GQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var CN={};C(CN,{up:()=>SQ,down:()=>AQ});import{sql as OQ}from"kysely";async function SQ(_){await OQ`
1695
1695
  DELETE FROM member
1696
1696
  WHERE id IN (
1697
1697
  SELECT id FROM (
@@ -1710,38 +1710,38 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1710
1710
  ) ranked
1711
1711
  WHERE ranked.rn > 1
1712
1712
  )
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_`
1713
+ `.execute(_)}async function AQ(_){}var KN={};C(KN,{up:()=>fQ,down:()=>IQ});async function fQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function IQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var NN={};C(NN,{up:()=>yQ,down:()=>VQ});async function yQ(_){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 VQ(_){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 mN={};C(mN,{up:()=>kQ,down:()=>nQ});import{sql as wQ}from"kysely";async function kQ(_){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(wQ`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 nQ(_){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 TN={};C(TN,{up:()=>pQ,down:()=>gQ});import{sql as vQ}from"kysely";async function pQ(_){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(vQ`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 gQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var zN={};C(zN,{up:()=>qQ,down:()=>iQ});import{sql as r_}from"kysely";async function qQ(_){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 iQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var EN={};C(EN,{up:()=>cQ,down:()=>hQ});import{sql as l_}from"kysely";async function cQ(_){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_`
1714
1714
  insert into organization_billing (organization_id, legacy)
1715
1715
  select id, true from organization
1716
1716
  on conflict (organization_id) do nothing
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`
1717
+ `.execute(_)}async function hQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var $N={};C($N,{up:()=>tQ,down:()=>oQ});import{sql as cT}from"kysely";async function tQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(cT`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(cT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function oQ(_){await _.schema.dropTable("seat_change_log").execute()}var UN={};C(UN,{up:()=>aQ,down:()=>rQ});async function aQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function rQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var PN={};C(PN,{up:()=>lQ,down:()=>eQ});import{sql as hT}from"kysely";async function lQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await hT`
1718
1718
  create unique index organization_billing_stripe_subscription_id_uq
1719
1719
  on organization_billing (stripe_subscription_id)
1720
1720
  where stripe_subscription_id is not null
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`
1721
+ `.execute(_)}async function eQ(_){await hT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var JN={};C(JN,{up:()=>dQ,down:()=>bQ});async function dQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function bQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var XN={};C(XN,{up:()=>sQ,down:()=>_Z});import{sql as tT}from"kysely";async function sQ(_){await tT`
1722
1722
  create index idx_org_billing_benefits_pending
1723
1723
  on organization_billing (updated_at)
1724
1724
  where benefits_reference_id is not null
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`
1725
+ `.execute(_)}async function _Z(_){await tT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var QN={};C(QN,{up:()=>xZ,down:()=>uZ});import{sql as oT}from"kysely";async function xZ(_){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(oT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(oT`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 uZ(_){await _.schema.dropTable("user_model_preferences").execute()}var ZN={};C(ZN,{up:()=>CZ,down:()=>KZ});async function CZ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function KZ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var WN={};C(WN,{up:()=>NZ,down:()=>mZ});async function NZ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function mZ(_){}var jN={};C(jN,{up:()=>TZ,down:()=>zZ});import{sql as aT}from"kysely";async function TZ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await aT`
1726
1726
  UPDATE organization_settings
1727
1727
  SET flags = jsonb_build_object('reports_only', reports_only)
1728
1728
  WHERE reports_only IS NOT NULL
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`
1729
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function zZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await aT`
1730
1730
  UPDATE organization_settings
1731
1731
  SET reports_only = (flags ->> 'reports_only')::boolean
1732
1732
  WHERE flags ? 'reports_only'
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`
1733
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var LN={};C(LN,{up:()=>$Z,down:()=>UZ});import{sql as EZ}from"kysely";async function $Z(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await EZ`
1734
1734
  update task_board_items
1735
1735
  set sort_order = -extract(epoch from created_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`
1736
+ `.execute(_)}async function UZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var FN={};C(FN,{up:()=>PZ,down:()=>JZ,ACTIONS:()=>rT});import{sql as e_}from"kysely";var rT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function PZ(_){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(rT.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 JZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var DN={};C(DN,{up:()=>XZ,down:()=>QZ,ACTIONS:()=>YN});import{sql as L_}from"kysely";var YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function XZ(_){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 lT(_,YN)}async function QZ(_){await lT(_,YN.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 lT(_,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 MN={};C(MN,{up:()=>WZ,down:()=>jZ});import{sql as eT}from"kysely";function HN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function ZZ(_){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 HN(N)}catch{return HN(_.connection_url)}if(_.title)return HN(_.title);return _.id}async function WZ(_){let x=await eT`
1737
1737
  SELECT id, app_name, connection_url, title, slug
1738
1738
  FROM connections
1739
1739
  WHERE connection_type != 'VIRTUAL'
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_`
1740
+ `.execute(_),u=0;for(let N of x.rows){let K=ZZ(N);if(K===N.slug)continue;await eT`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 jZ(){}var RN={};C(RN,{up:()=>FZ,down:()=>YZ});import{sql as LZ}from"kysely";async function FZ(_){await LZ`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 YZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var GN={};C(GN,{up:()=>HZ,down:()=>MZ,ACTIONS:()=>BN});import{sql as d_}from"kysely";var BN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],DZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function HZ(_){await dT(_,BN)}async function MZ(_){await dT(_,BN.filter((x)=>!DZ.has(x)))}async function dT(_,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 ON={};C(ON,{up:()=>BZ,down:()=>GZ});import{sql as RZ}from"kysely";async function BZ(_){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(RZ`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 GZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var AN={};C(AN,{up:()=>SZ,down:()=>AZ,ACTIONS:()=>SN});import{sql as b_}from"kysely";var SN=["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"],OZ=new Set(["merge_conflict_resolution"]);async function SZ(_){await bT(_,SN)}async function AZ(_){await bT(_,SN.filter((x)=>!OZ.has(x)))}async function bT(_,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 fN={};C(fN,{up:()=>fZ,down:()=>IZ});import{sql as F_}from"kysely";async function fZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function IZ(_){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_`
1741
1741
  create index idx_org_billing_benefits_pending
1742
1742
  on organization_billing (updated_at)
1743
1743
  where benefits_reference_id is not null
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_`
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 IN={};C(IN,{up:()=>yZ,down:()=>VZ});import{sql as s_}from"kysely";async function yZ(_){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 VZ(_){await s_`
1745
1745
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1746
1746
  RETURNS trigger AS $fn$
1747
1747
  BEGIN
@@ -1767,23 +1767,23 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1767
1767
  BEFORE INSERT ON connection_aggregations
1768
1768
  FOR EACH ROW
1769
1769
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
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`
1770
+ `.execute(_)}var yN={};C(yN,{up:()=>wZ,down:()=>kZ});import{sql as sT}from"kysely";async function wZ(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function kZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var VN={};C(VN,{up:()=>nZ,down:()=>vZ});import{sql as _z}from"kysely";async function nZ(_){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(_z`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(_z`now()`)).execute()}async function vZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var kN={};C(kN,{up:()=>pZ,down:()=>gZ});import{sql as wN}from"kysely";async function pZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(wN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await wN`
1771
1771
  create index idx_task_quota_claims_org_period_live
1772
1772
  on task_quota_claims (organization_id, period_key)
1773
1773
  where state <> 'released'
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`
1774
+ `.execute(_)}async function gZ(_){await wN`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 nN={};C(nN,{up:()=>qZ,down:()=>iZ});async function qZ(_){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 iZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var vN={};C(vN,{up:()=>cZ,down:()=>hZ});async function cZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function hZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var pN={};C(pN,{up:()=>tZ,down:()=>oZ});import{sql as xz}from"kysely";async function tZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(xz`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(xz`monthly_task_executions > 0`)).execute()}async function oZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var gN={};C(gN,{up:()=>rZ,down:()=>lZ});import{sql as aZ}from"kysely";async function rZ(_){await aZ`
1775
1775
  CREATE INDEX idx_task_board_items_pending_review
1776
1776
  ON task_board_items (updated_at, id)
1777
1777
  WHERE status = 'in_review'
1778
1778
  AND assignee_id = 'super-agent'
1779
1779
  AND dismissed_at IS NULL
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`
1780
+ `.execute(_)}async function lZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var qN={};C(qN,{up:()=>eZ,down:()=>dZ});import{sql as uz}from"kysely";async function eZ(_){await uz`
1781
1781
  ALTER TABLE task_board_items
1782
1782
  ADD COLUMN last_swept_at timestamptz
1783
- `.execute(_)}async function rZ(_){await xz`
1783
+ `.execute(_)}async function dZ(_){await uz`
1784
1784
  ALTER TABLE task_board_items
1785
1785
  DROP COLUMN last_swept_at
1786
- `.execute(_)}var qN={};C(qN,{up:()=>lZ,down:()=>eZ});import{sql as _x}from"kysely";async function lZ(_){await _x`
1786
+ `.execute(_)}var iN={};C(iN,{up:()=>bZ,down:()=>sZ});import{sql as _x}from"kysely";async function bZ(_){await _x`
1787
1787
  ALTER TABLE task_board_items
1788
1788
  ADD COLUMN retry_at timestamptz,
1789
1789
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1791,11 +1791,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1791
1791
  CREATE INDEX idx_task_board_items_retry_due
1792
1792
  ON task_board_items (retry_at)
1793
1793
  WHERE retry_at IS NOT NULL
1794
- `.execute(_)}async function eZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
1794
+ `.execute(_)}async function sZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
1795
1795
  ALTER TABLE task_board_items
1796
1796
  DROP COLUMN retry_at,
1797
1797
  DROP COLUMN retry_attempts
1798
- `.execute(_)}var cN={};C(cN,{up:()=>dZ,down:()=>bZ});import{sql as iN}from"kysely";async function dZ(_){await iN`
1798
+ `.execute(_)}var hN={};C(hN,{up:()=>_6,down:()=>x6});import{sql as cN}from"kysely";async function _6(_){await cN`
1799
1799
  CREATE TABLE org_repo_sync (
1800
1800
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1801
1801
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1813,11 +1813,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1813
1813
  updated_at timestamptz NOT NULL DEFAULT now(),
1814
1814
  UNIQUE (organization_id, volume)
1815
1815
  )
1816
- `.execute(_),await iN`
1816
+ `.execute(_),await cN`
1817
1817
  CREATE INDEX idx_org_repo_sync_enabled
1818
1818
  ON org_repo_sync (organization_id)
1819
1819
  WHERE enabled
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_`
1820
+ `.execute(_)}async function x6(_){await cN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var oN={};C(oN,{up:()=>C6,down:()=>K6,ACTIONS:()=>tN});import{sql as xx}from"kysely";var tN=["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"],u6=new Set(["merge_failed"]);async function C6(_){await Cz(_,tN)}async function K6(_){await Cz(_,tN.filter((x)=>!u6.has(x)))}async function Cz(_,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 aN={};C(aN,{up:()=>N6,down:()=>m6});async function N6(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function m6(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var rN={};C(rN,{up:()=>T6,down:()=>z6});import{sql as x_}from"kysely";async function T6(_){await x_`
1821
1821
  CREATE TABLE org_jira_integrations (
1822
1822
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1823
1823
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1856,7 +1856,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1856
1856
  created_at timestamptz NOT NULL DEFAULT now(),
1857
1857
  UNIQUE (organization_id, jira_comment_id)
1858
1858
  )
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`
1859
+ `.execute(_)}async function z6(_){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 lN={};C(lN,{up:()=>$6,down:()=>U6});import{sql as E6}from"kysely";async function $6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await E6`
1860
1860
  update task_board_items as t
1861
1861
  set key_seq = numbered.seq
1862
1862
  from (
@@ -1869,25 +1869,25 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1869
1869
  from task_board_items
1870
1870
  ) as numbered
1871
1871
  where t.id = numbered.id
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`
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 U6(_){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 eN={};C(eN,{up:()=>P6,down:()=>J6});import{sql as Kz}from"kysely";async function P6(_){await Kz`
1873
1873
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1874
1874
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1875
1875
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
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`
1876
+ `.execute(_)}async function J6(_){await Kz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var bN={};C(bN,{up:()=>X6,down:()=>Q6});import{sql as dN}from"kysely";async function X6(_){await dN`
1877
1877
  ALTER TABLE thread_message_parts
1878
1878
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1879
- `.execute(_),await eN`
1879
+ `.execute(_),await dN`
1880
1880
  ALTER TABLE thread_message_parts
1881
1881
  ALTER COLUMN persisted_at SET DEFAULT now()
1882
- `.execute(_)}async function P6(_){await eN`
1882
+ `.execute(_)}async function Q6(_){await dN`
1883
1883
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
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`
1884
+ `.execute(_)}var sN={};C(sN,{up:()=>Z6,down:()=>W6});async function Z6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function W6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var _m={};C(_m,{up:()=>L6,down:()=>F6});import{sql as j6}from"kysely";async function L6(_){await j6`
1885
1885
  CREATE INDEX idx_task_board_items_done_sweep
1886
1886
  ON task_board_items (updated_at)
1887
1887
  WHERE status = 'done' AND dismissed_at IS NULL
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
1888
+ `.execute(_)}async function F6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var xm={};C(xm,{up:()=>Y6,down:()=>D6,TYPES:()=>Nz});import{sql as q}from"kysely";var Nz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function Y6(_){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(Nz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1889
1889
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
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`
1890
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function D6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var um={};C(um,{up:()=>H6,down:()=>M6});import{sql as mz}from"kysely";async function H6(_){await mz`
1891
1891
  UPDATE org_jira_integrations
1892
1892
  SET status_mapping = (
1893
1893
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1902,7 +1902,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1902
1902
  SELECT 1 FROM jsonb_each(status_mapping)
1903
1903
  WHERE jsonb_typeof(value) = 'array'
1904
1904
  )
1905
- `.execute(_)}async function Y6(_){await Nz`
1905
+ `.execute(_)}async function M6(_){await mz`
1906
1906
  UPDATE org_jira_integrations
1907
1907
  SET status_mapping = (
1908
1908
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1917,7 +1917,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1917
1917
  SELECT 1 FROM jsonb_each(status_mapping)
1918
1918
  WHERE jsonb_typeof(value) = 'array'
1919
1919
  )
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_`
1920
+ `.execute(_)}var Km={};C(Km,{up:()=>B6,down:()=>G6,TYPES:()=>Cm});import{sql as ux}from"kysely";var Cm=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],R6=new Set(["mentioned"]);async function B6(_){await Tz(_,Cm)}async function G6(_){await Tz(_,Cm.filter((x)=>!R6.has(x)))}async function Tz(_,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 mm={};C(mm,{up:()=>A6,down:()=>f6,ACTIONS:()=>Nm});import{sql as i}from"kysely";var O6=["bug","feature","chore","spike","security"],Nm=["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"],S6=new Set(["type_changed"]);async function A6(_){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(O6.map((x)=>i.lit(x)))}))`.execute(_),await zz(_,Nm)}async function f6(_){await zz(_,Nm.filter((x)=>!S6.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 zz(_,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 Tm={};C(Tm,{up:()=>I6,down:()=>y6});import{sql as W}from"kysely";var $z=["bug","feature","chore","spike","security"],Ez="chore";async function I6(_){await W`UPDATE task_board_items SET type = ${W.lit(Ez)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(Ez)}`.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($z.map((x)=>W.lit(x)))}))`.execute(_)}async function y6(_){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($z.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 zm={};C(zm,{up:()=>V6,down:()=>w6});import{sql as u_}from"kysely";async function V6(_){await u_`
1921
1921
  CREATE TABLE task_board_sprints (
1922
1922
  id text PRIMARY KEY,
1923
1923
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1942,34 +1942,34 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1942
1942
  CREATE INDEX idx_task_board_items_sprint
1943
1943
  ON task_board_items (organization_id, sprint_id)
1944
1944
  WHERE sprint_id IS NOT NULL
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`
1945
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function w6(_){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 Em={};C(Em,{up:()=>n6,down:()=>v6});import{sql as k6}from"kysely";async function n6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function v6(_){await k6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var $m={};C($m,{up:()=>g6,down:()=>q6});import{sql as p6}from"kysely";async function g6(_){await p6`
1946
1946
  UPDATE org_jira_integrations
1947
1947
  SET last_synced_at = NULL,
1948
1948
  last_sync_error = NULL
1949
1949
  WHERE last_synced_at IS NOT NULL
1950
- `.execute(_)}async function v6(){}var $m={};C($m,{up:()=>g6,down:()=>q6});import{sql as p6}from"kysely";async function g6(_){await p6`
1950
+ `.execute(_)}async function q6(){}var Um={};C(Um,{up:()=>c6,down:()=>h6});import{sql as i6}from"kysely";async function c6(_){await i6`
1951
1951
  UPDATE org_jira_integrations
1952
1952
  SET last_synced_at = NULL,
1953
1953
  last_sync_error = NULL
1954
1954
  WHERE last_synced_at IS NOT NULL
1955
- `.execute(_)}async function q6(){}var Pm={};C(Pm,{up:()=>i6,down:()=>c6});import{sql as Um}from"kysely";async function i6(_){await Um`
1955
+ `.execute(_)}async function h6(){}var Jm={};C(Jm,{up:()=>t6,down:()=>o6});import{sql as Pm}from"kysely";async function t6(_){await Pm`
1956
1956
  ALTER TABLE org_jira_integrations
1957
1957
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1958
- `.execute(_),await Um`
1958
+ `.execute(_),await Pm`
1959
1959
  UPDATE org_jira_integrations
1960
1960
  SET rescan_pending = true
1961
1961
  WHERE last_synced_at IS NULL
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`
1962
+ `.execute(_)}async function o6(_){await Pm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Xm={};C(Xm,{up:()=>a6,down:()=>r6});async function a6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function r6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Qm={};C(Qm,{up:()=>l6,down:()=>e6});import{sql as Uz}from"kysely";async function l6(_){await Uz`
1963
1963
  ALTER TABLE invitation
1964
1964
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
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`
1965
+ `.execute(_)}async function e6(_){await Uz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Wm={};C(Wm,{up:()=>d6,down:()=>b6});import{sql as Zm}from"kysely";async function d6(_){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(Zm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Zm`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 Zm`
1966
1966
  INSERT INTO task_board_column_automations
1967
1967
  (id, organization_id, column_key, prompt)
1968
1968
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1969
1969
  FROM org_jira_integrations
1970
1970
  WHERE auto_delegate = true
1971
1971
  ON CONFLICT DO NOTHING
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_`
1972
+ `.execute(_)}async function b6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var jm={};C(jm,{up:()=>s6,down:()=>_W});import{sql as Y_}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1973
1973
  UPDATE task_board_items i
1974
1974
  SET review_cycle_started_at = (
1975
1975
  SELECT max(a.occurred_at)
@@ -1985,13 +1985,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
1985
1985
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1986
1986
  AND assignee_id = 'super-agent'
1987
1987
  AND dismissed_at IS NULL
1988
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function d6(_){await Y_`
1988
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function _W(_){await Y_`
1989
1989
  CREATE INDEX idx_task_board_items_pending_review
1990
1990
  ON task_board_items (updated_at, id)
1991
1991
  WHERE status = 'in_review'
1992
1992
  AND assignee_id = 'super-agent'
1993
1993
  AND dismissed_at IS NULL
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`
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 Lm={};C(Lm,{up:()=>xW,down:()=>uW});import{sql as Pz}from"kysely";async function xW(_){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(Pz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`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 uW(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Ym={};C(Ym,{up:()=>KW,down:()=>NW,ACTIONS:()=>Fm});import{sql as Cx}from"kysely";var Fm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],CW=new Set(["review_verdict_requested"]);async function KW(_){await Jz(_,Fm)}async function NW(_){await Jz(_,Fm.filter((x)=>!CW.has(x)))}async function Jz(_,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 Dm={};C(Dm,{up:()=>mW,down:()=>TW});import{sql as Kx}from"kysely";async function mW(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
1995
1995
  ALTER TABLE task_board_items
1996
1996
  ADD CONSTRAINT chk_task_board_items_column_org
1997
1997
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
@@ -2001,13 +2001,13 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2001
2001
  FOREIGN KEY (board_column_org, status)
2002
2002
  REFERENCES task_board_columns (organization_id, key)
2003
2003
  ON DELETE RESTRICT
2004
- `.execute(_)}async function KW(_){await Kx`
2004
+ `.execute(_)}async function TW(_){await Kx`
2005
2005
  ALTER TABLE task_board_items
2006
2006
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
2007
2007
  `.execute(_),await Kx`
2008
2008
  ALTER TABLE task_board_items
2009
2009
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
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`
2010
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Hm={};C(Hm,{up:()=>zW,down:()=>EW});async function zW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function EW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Rm={};C(Rm,{up:()=>UW,down:()=>PW,ACTIONS:()=>Mm});import{sql as Nx}from"kysely";var Mm=["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"],$W=new Set(["sprint_changed"]);async function UW(_){await Xz(_,Mm)}async function PW(_){await Xz(_,Mm.filter((x)=>!$W.has(x)))}async function Xz(_,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 Bm={};C(Bm,{up:()=>XW,down:()=>QW});import{sql as JW}from"kysely";async function XW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(JW`'[]'::jsonb`)).execute()}async function QW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as Qz}from"kysely";async function ZW(_){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(Qz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Qz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function WW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Om={};C(Om,{up:()=>LW,down:()=>FW});import{sql as jW}from"kysely";async function LW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await jW`
2011
2011
  UPDATE task_board_items i
2012
2012
  SET external_url = t.url,
2013
2013
  description = CASE
@@ -2026,11 +2026,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2026
2026
  ON g.organization_id = l.organization_id
2027
2027
  ) t
2028
2028
  WHERE t.item_id = i.id
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`
2029
+ `.execute(_)}async function FW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Sm={};C(Sm,{up:()=>DW,down:()=>HW,ACTIONS:()=>Zz});import{sql as X}from"kysely";var YW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Zz=["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 DW(_){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`
2030
2030
  UPDATE task_board_items
2031
2031
  SET status = 'triage'
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`
2032
+ WHERE status NOT IN (${X.join(YW.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 MW(_,Zz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2034
2034
  ALTER TABLE task_board_item_jira_links
2035
2035
  DROP COLUMN IF EXISTS jira_updated_at,
2036
2036
  DROP COLUMN IF EXISTS jira_status,
@@ -2042,7 +2042,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2042
2042
  DROP COLUMN IF EXISTS last_synced_at,
2043
2043
  DROP COLUMN IF EXISTS last_sync_error,
2044
2044
  DROP COLUMN IF EXISTS rescan_pending
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_`
2045
+ `.execute(_)}async function HW(){}async function MW(_,x){await X`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X.join(x.map((u)=>X.lit(u)))}))`.execute(_)}var Am={};C(Am,{up:()=>RW,down:()=>BW});import{sql as C_}from"kysely";async function RW(_){await C_`
2046
2046
  ALTER TABLE task_board_items
2047
2047
  ADD COLUMN IF NOT EXISTS source text
2048
2048
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -2063,24 +2063,24 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2063
2063
  created_at timestamptz NOT NULL DEFAULT now(),
2064
2064
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2065
2065
  )
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_`
2066
+ `.execute(_)}async function BW(_){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 fm={};C(fm,{up:()=>GW,down:()=>OW});import{sql as D_}from"kysely";async function GW(_){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_`
2067
2067
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2068
2068
  ON organization_notices (organization_id)
2069
2069
  WHERE resolved_at IS NULL
2070
2070
  `.execute(_),await D_`
2071
2071
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2072
2072
  ON organization_notices (organization_id, created_at DESC)
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`
2073
+ `.execute(_)}async function OW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var ym={};C(ym,{up:()=>vW,down:()=>pW});import{sql as Im}from"kysely";import{sql as Y5}from"kysely";var Wz=50000000,SW=1e5;function AW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>SW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var fW=/\u0000/g,IW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,yW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,VW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,wW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function kW(_){return _.replace(fW,"").replace(IW,"\uFFFD").replace(yW,"$1***@").replace(VW,"$1***").replace(wW,"[base64 data omitted]")}function nW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function jz(_){if(AW(_,Wz)>Wz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return kW(u);if(nW(u))return{type:"text",text:"[image omitted]"};return u})}var Lz=20;async function vW(_){let x=await Im`
2074
2074
  SELECT id FROM thread_message_parts
2075
2075
  WHERE pg_column_size(payload) > 8192
2076
2076
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
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`
2077
+ `.execute(_);for(let u=0;u<x.rows.length;u+=Lz){let N=x.rows.slice(u,u+Lz).map((m)=>m.id),K=await Im`
2078
2078
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2079
- `.execute(_);for(let m of K.rows){let T=Wz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
2079
+ `.execute(_);for(let m of K.rows){let T=jz(m.payload);if(T===JSON.stringify(m.payload))continue;await Im`
2080
2080
  UPDATE thread_message_parts
2081
2081
  SET payload = ${T}::jsonb
2082
2082
  WHERE id = ${m.id}
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`
2083
+ `.execute(_)}}}async function pW(){}var Vm={};C(Vm,{up:()=>gW,down:()=>qW});async function gW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function qW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var wm={};C(wm,{up:()=>iW,down:()=>cW});import{sql as U}from"kysely";async function iW(_){await U`
2084
2084
  CREATE TABLE git_provider_accounts (
2085
2085
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2086
2086
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2324,11 +2324,11 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2324
2324
  AND r.organization_id = s.organization_id
2325
2325
  AND r.host = 'github.com'
2326
2326
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2327
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function gW(_){await U`
2327
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function cW(_){await U`
2328
2328
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2329
2329
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2330
2330
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
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`
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 km={};C(km,{up:()=>tW,down:()=>oW});import{sql as I}from"kysely";var hW=I`
2332
2332
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2333
2333
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2334
2334
  BEGIN
@@ -2337,7 +2337,7 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2337
2337
  RETURN NULL;
2338
2338
  END;
2339
2339
  $$
2340
- `;async function iW(_){await qW.execute(_),await I`
2340
+ `;async function tW(_){await hW.execute(_),await I`
2341
2341
  ALTER TABLE connections
2342
2342
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2343
2343
  `.execute(_),await I`
@@ -2399,21 +2399,21 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2399
2399
  AND r.host = 'github.com'
2400
2400
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2401
2401
  ON CONFLICT (thread_id, repository_id) DO NOTHING
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`
2402
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function oW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2403
2403
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
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(`
2404
+ `.execute(_)}var aW={"001-initial-schema":Fu,"002-organization-settings":Yu,"003-connection-schema-align":Du,"004-remove-models-binding":Hu,"005-connection-configuration":Mu,"006-add-views-to-settings":Ru,"007-monitoring-logs":Bu,"008-event-bus":Gu,"009-drop-audit-logs":Ou,"010-gateways":Su,"011-gateway-icon":Au,"012-gateway-tool-selection-mode":fu,"013-monitoring-user-agent-gateway":Iu,"014-gateway-resources-prompts":yu,"015-monitoring-properties":Vu,"016-downstream-token-client-info":wu,"017-downstream-token-remove-userid":ku,"018-drop-gateway-tool-selection-strategy":nu,"019-remove-gateway-is-default":vu,"020-enabled-plugins":pu,"021-threads":gu,"022-rename-gateway-to-virtual-mcp":qu,"023-optimize-thread-indexes":iu,"024-consolidate-virtual-mcp":cu,"025-add-monitoring-virtual-mcp-id":hu,"026-restrict-child-connection-delete":tu,"027-update-management-mcp-url":au,"028-update-management-mcp-to-self":lu,"029-add-updated-by-to-connections":eu,"030-member-tags":du,"031-add-dependency-mode":bu,"032-projects":su,"033-thread-status":_C,"034-monitoring-dashboards":xC,"035-project-connections":uC,"036-update-registry-url":CC,"037-ai-provider-keys":KC,"038-oauth-pkce-states":NC,"039-automations":mC,"040-replace-next-run-at-with-last-run-at":TC,"041-ai-provider-keys-unique-constraint":zC,"042-rename-mesh-mcp-to-cms-mcp":EC,"043-rename-cms-mcp-to-deco-cms":$C,"044-drop-connections-tools-column":UC,"045-thread-context-start-message":PC,"046-remove-object-storage-plugin":XC,"047-add-next-run-at":QC,"048-merge-projects-agents":WC,"049-remove-org-admin-projects":jC,"050-durable-agent-runs":LC,"051-org-sso":YC,"052-thread-agent-ids":DC,"053-registry-config":HC,"054-connection-slug":RC,"055-spaces":BC,"056-automation-project-scope":GC,"057-thread-virtual-mcp-id":OC,"058-trigger-callback-tokens":SC,"059-kv":AC,"060-member-index":fC,"061-downstream-token-connection-index":IC,"062-private-registry":yC,"063-event-subscriptions-enabled-boolean":VC,"064-brand-context":wC,"065-organization-domains":kC,"066-brand-context-structured":nC,"067-threads-metadata":vC,"068-threads-branch":pC,"069-sandbox-runner-state":gC,"070-model-categories":qC,"071-default-home-agents":iC,"072-ai-provider-key-preset-id":cC,"073-backfill-basic-usage-roles":hC,"074-sandbox-runner-state-handle-nonunique":tC,"075-thread-inflight-async-jobs":oC,"076-automations-drop-agent-json":aC,"077-tier-only-model-selection":lC,"078-automation-tool-call-kind":eC,"079-strip-legacy-freestyle-vm-map-entries":dC,"080-async-research-jobs":bC,"081-async-research-jobs-result-content":sC,"082-secrets":_K,"083-thread-run-locally":xK,"084-drop-host-sandbox-rows":uK,"085-rename-runner-kind":CK,"086-thread-pins-and-vm-map-rekey":KK,"087-fix-vm-map-rekey":NK,"088-purge-cli-activate-keys":mK,"089-rename-remote-user-to-desktop":TK,"090-automation-webhook-triggers":zK,"091-organization-domains-allow-multi":EK,"092-sandbox-naming-uniformization":$K,"093-backfill-global-search-basic-usage":UK,"094-org-file-configs":JK,"095-remove-automation-tool-call-kind":XK,"096-org-file-configs-public-url-base":QK,"097-drop-local-docker-sandbox-state":WK,"098-thread-message-parts":jK,"099-run-fence":LK,"100-link-transport":FK,"101-cancel-requested-at":YK,"102-observational-agent":DK,"103-revert-observational-agent":HK,"104-agent-sandbox-provider-kind":RK,"105-org-fs":BK,"106-automation-tools":GK,"107-org-fs-public-org":OK,"108-automation-max-agent-steps":SK,"109-thread-message-parts-per-message-seq":AK,"110-backfill-ghs-token-expiry":fK,"111-org-fs-thread-id":IK,"112-org-file-configs-credential-type":yK,"113-thread-failure-reason":VK,"114-run-acked-seq":wK,"115-thread-projected-seq":kK,"116-org-sites":nK,"117-org-file-configs-site-slug":vK,"118-organization-domains-multi-verify":pK,"119-organization-join-requests":gK,"120-org-fs-read-public":qK,"121-org-fs-share-password":iK,"122-split-web-research-tier":tK,"123-connection-credential-vault":oK,"124-drop-thread-projected-seq":aK,"125-github-child-single-parent":rK,"126-task-board":eK,"127-task-board-due-date":dK,"128-reports-only":bK,"129-task-board-assigned-by":sK,"130-task-board-thread-id":_N,"131-task-board-thread-link-cascade":xN,"132-task-board-item-prs":uN,"133-dedupe-duplicate-members":CN,"134-drop-task-board-enabled":KN,"135-task-board-item-fk-cascade":NN,"136-task-board-import-idempotency":mN,"137-agent-sandbox-runner-state":TN,"138-agent-sandbox-sessions":zN,"139-organization-billing":EN,"140-seat-change-log":$N,"141-benefits-sync-pending":UN,"142-stripe-event-watermark":PN,"143-armed-report-url":JN,"144-benefits-pending-index":XN,"145-user-model-preferences":QN,"146-organization-main-agent":ZN,"147-drop-agent-sandbox-tables":WN,"148-org-flags":jN,"149-task-board-item-sort-order":LN,"150-task-board-activity":FN,"151-task-board-tags":DN,"152-repair-connection-slug":MN,"153-task-board-latest-assistant-part-index":RN,"154-task-board-qa-activity":GN,"155-task-board-review-claims":ON,"156-task-board-conflict-activity":AN,"157-drop-seat-billing":fN,"158-drop-github-child-single-parent":IN,"159-task-board-comments":yN,"160-task-quota-billing":VN,"161-task-quota-claim-state":kN,"162-claude-subscriptions":nN,"163-task-board-item-dismissed":vN,"164-per-org-task-quota":pN,"165-task-board-pending-review-index":gN,"166-task-board-last-swept-at":qN,"167-task-board-run-retry":iN,"168-org-repo-sync":hN,"169-task-board-merge-failed-activity":oN,"170-task-board-item-repo":aN,"171-jira-integration":rN,"172-task-board-item-key-seq":lN,"173-thread-github-repo-connection-index":eN,"174-thread-message-parts-persisted-at":bN,"175-task-board-sprints":sN,"176-task-board-done-sweep-index":_m,"177-notifications":xm,"178-jira-status-mapping-array":um,"179-notification-mentioned":Km,"180-task-board-item-type":mm,"181-task-board-item-type-required":Tm,"182-task-board-sprints-entities":zm,"183-drop-jira-jql-filter":Em,"184-jira-rescan-after-scope-change":$m,"185-jira-rescan-existing-cards":Um,"186-jira-rescan-pending-flag":Jm,"187-task-board-comment-thread":Xm,"188-invitation-auto-accept":Qm,"189-task-board-column-automations":Wm,"190-task-board-review-cycle-started-at":jm,"191-task-board-columns":Lm,"192-task-board-verdict-nudge-activity":Ym,"193-task-board-status-column-fk":Dm,"194-jira-link-sprint":Hm,"195-task-board-sprint-activity":Rm,"196-task-board-column-tracker-statuses":Bm,"197-task-board-prompts":Gm,"198-task-board-external-url":Om,"199-drop-jira-mirror-and-org-columns":Sm,"200-jira-run-trigger":Am,"201-organization-notices":fm,"202-redact-base64-thread-parts":ym,"203-task-board-preview-routes":Vm,"204-git-provider-accounts-and-repositories":wm,"205-repository-references":km,"206-repository-consumers":Lu,"207-task-board-prs-repo-idx":ju,"208-github-connect-flows":Wu,"209-github-installation-authorization":Zu,"210-github-repository-authorization":zu,"211-user-fs-org":Tu,"212-coding-agent-mcp-excluded":Eu,"213-bitbucket-git-provider":$u,"214-connections-sanitized-id-idx":Cu,"215-commerce-discovery-repository":Ku,"216-github-cli-auth":mu,"217-experiments":Uu,"218-thread-message-parts-error-idx":Pu,"219-task-board-duplicate-reported-activity":Xu,"220-jira-automation-continue-pr":Qu,"221-remove-private-registry":Lx,"222-org-git-credentials":Fx,"223-drop-org-main-agent-id":uu,"224-repository-sandbox-image":Yx,"225-thread-analytics-indexes":Hx,"226-deco-score-names":Rx,"227-task-board-finding-resolved-activity":Gx,"228-org-voice-config":jx,"229-jira-automation-from":Ox,"230-project-sidebar":Sx,"231-jira-chat-agent":Ax,"232-task-board-prompt-skills":Ix,"233-remove-jira-chat-agent":Vx,"234-task-board-comment-audience":wx,"235-prune-empty-thread-dirs":kx,"236-task-board-sprints":vx,"237-org-sites-project-link":px,"238-task-board-default-lanes":gx,"239-task-board-retire-old-lanes":qx,"240-task-board-restore-todo":ix,"241-automation-board-column-transition":cx,"242-connection-url-slug":hx,"243-experiment-task-board-item":tx,"244-connection-url-slug-rollout-backfill":ox,"245-automation-system-key":ax,"246-automation-pr-ready-trigger":rx,"247-automation-jira-transition":lx,"248-drop-retired-rule-tables":ex,"249-task-board-item-project":dx,"250-github-copilot-subscriptions":bx,"251-org-shared-plans":sx,"252-automation-linked-chat-trigger":_u,"253-automation-pr-builtin-triggers":xu,"254-codex-subscriptions":Qx,"255-order-monitor":Wx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px,"259-repository-monitor-deploys":Jx,"260-demo-board-snapshots":Xx},mx=aW;import{getMigrations as B9}from"better-auth/db";import{sso as G9}from"@better-auth/sso";import{organization as O9}from"@decocms/better-auth/plugins";import{admin as S9,apiKey as A9,jwt as f9,magicLink as I9,mcp as y9,openAPI as V9}from"better-auth/plugins";import{emailOTP as w9}from"better-auth/plugins/email-otp";import{Kysely as j9,PostgresDialect as Sz}from"kysely";import{Pool as Az}from"pg";import{homedir as rW}from"os";var lW=new Set(["all","worker","api"]);function eW(_){let x=(_??"").trim();return lW.has(x)?x:"all"}var dW=new Set(["production","development","test"]);function bW(_){let x=(_??"").trim();return dW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function vm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return vm(_,x,N)??u}function sW(_){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 _9(_,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 nm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function x9(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Fz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${rW()}/deco`,u=bW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:vm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:sW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:_9("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:nm(_.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:nm(_.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:x9(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:vm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:eW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:nm(_.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 u9=null;function K_(){return u9??=Object.freeze(Fz(process.env))}import{createContextKey as z9,metrics as E9,propagation as g8,ROOT_CONTEXT as q8,SpanStatusCode as i8,trace as $9}from"@opentelemetry/api";import{logs as U9,SeverityNumber as pm}from"@opentelemetry/api-logs";import{OTLPLogExporter as t8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as P9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as r8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as e8}from"@opentelemetry/instrumentation-runtime-node";import{context as V5,propagation as w5,SpanKind as k5,SpanStatusCode as n5}from"@opentelemetry/api";var p5=globalThis.fetch;import{ExportResultCode as d5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as C9,rename as K9,writeFile as N9}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 C9(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(`
2405
2405
  `)+`
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`
2406
+ `;await N9(T,E,{mode:384}),await K9(T,z)}}import{ExportResultCode as u8}from"@opentelemetry/core";import{AggregationTemporality as K8,DataPointType as N8}from"@opentelemetry/sdk-metrics";import{ExportResultCode as U8}from"@opentelemetry/core";var Q8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as N3,LoggerProvider as m3}from"@opentelemetry/sdk-logs";import{detectResources as z3,envDetector as E3,hostDetector as $3,osDetector as U3,processDetector as P3,resourceFromAttributes as J3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Q3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as j8}from"@opentelemetry/api-logs";import{NodeSDK as j3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as F3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as H8}from"@opentelemetry/api";var J9="__d",X9=z9("Current request"),Q9=1;var Dz=(_)=>{let u=new URL(_.url).searchParams.get(J9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Hz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(X9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Dz(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 Mz{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 D3=new P9({preventServerStart:!0}),H3=new Hz(new Mz(Q9));var Yz=$9.getTracer("studio","1.0.0"),M_=E9.getMeter("studio","1.0.0"),Z9=U9.getLogger("studio","1.0.0"),gm=(_,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(" ");Z9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},qm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{gm(pm.ERROR,"ERROR",_),qm.error(..._)};console.warn=(..._)=>{gm(pm.WARN,"WARN",_),qm.warn(..._)};console.debug=(..._)=>{gm(pm.DEBUG,"DEBUG",_),qm.debug(..._)};var im,Rz=0,cm=500;function W9(){if(im)return;let _=performance.now()+cm;im=setInterval(()=>{let x=performance.now();Rz=Math.max(0,x-_),_=x+cm},cm),im.unref?.()}function Bz(){return W9(),Rz}var L9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Gz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Oz=400,F9=100,Y9=(_)=>({"db.status":_.level==="error"?"error":"success"}),D9=(_)=>(x)=>{let u=Y9(x);if(x.queryDurationMillis>Oz){let N=Bz(),K=N>Oz/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(L9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function H9(_){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(Gz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>F9)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 Gz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var fz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Iz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function M9(_){let x=H9(new Az({connectionString:_,max:$x(),ssl:Iz(),...fz})),u=new Sz({pool:x});return{type:"postgres",db:new j9({dialect:u,log:D9(x)}),pool:x}}function B_(){return K_().databaseUrl}function yz(_){let x=_||B_();return new Sz({pool:new Az({connectionString:x,max:$x(),ssl:Iz(),...fz})})}function R9(_){let x=_||B_();return M9(x)}async function Vz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function hm(){if(!R_)R_=R9(B_());return R_}async function wz(_){let u={database:yz(_||B_()),plugins:[O9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),S9(),A9(),f9(),V9(),y9({loginPage:"/login"}),G9(),I9({sendMagicLink:async()=>{}}),w9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await B9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function tm(_,x){return(await o`
2407
2407
  SELECT table_name FROM information_schema.tables
2408
2408
  WHERE table_schema='public' AND table_name=${x}
2409
- `.execute(_)).rows.length>0}async function y9(_){if(await hm(_,"plugin_migrations"))return;await o`
2409
+ `.execute(_)).rows.length>0}async function k9(_){if(await tm(_,"plugin_migrations"))return;await o`
2410
2410
  CREATE TABLE plugin_migrations (
2411
2411
  plugin_id TEXT NOT NULL,
2412
2412
  name TEXT NOT NULL,
2413
2413
  timestamp TEXT NOT NULL,
2414
2414
  PRIMARY KEY (plugin_id, name)
2415
2415
  )
2416
- `.execute(_)}async function V9(_){if(!await hm(_,"kysely_migration"))return;let x=await o`
2416
+ `.execute(_)}async function n9(_){if(!await tm(_,"kysely_migration"))return;let x=await o`
2417
2417
  SELECT name, timestamp FROM kysely_migration
2418
2418
  WHERE name LIKE '%/%'
2419
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`
@@ -2424,6 +2424,6 @@ var kz=Object.defineProperty;var nz=(_)=>_;function vz(_,x){this[_]=nz.bind(null
2424
2424
  WHERE plugin_id = ${T} AND name = ${z}
2425
2425
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
2426
2426
  DELETE FROM kysely_migration WHERE name = ${u}
2427
- `.execute(_)}}async function w9(_){if(!await hm(_,"kysely_migration"))return{};let{rows:x}=await o`
2427
+ `.execute(_)}}async function v9(_){if(!await tm(_,"kysely_migration"))return{};let{rows:x}=await o`
2428
2428
  SELECT name FROM kysely_migration
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};
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 p9(_){await k9(_),await n9(_);let x=new kz({db:_,provider:{getMigrations:async()=>({...await v9(_),...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 g9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await wz();let m=u??hm(),T=async()=>{if(!x&&!u)await Vz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await p9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function s3(){let _=hm(),x=new kz({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 g9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{p9 as runKyselyMigrations,g9 as migrateToLatest,s3 as migrateDown};