decocms 4.362.0 → 4.363.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 (259) hide show
  1. package/dist/client/assets/{AlertCircle-D4NuvoWF.js → AlertCircle-Df7Uu4Sr.js} +1 -1
  2. package/dist/client/assets/{AreaChart-D9hVjusk.js → AreaChart-BRLjJaJt.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-Crsru-zt.js → ArrowLeft-Ce4LVTaQ.js} +1 -1
  4. package/dist/client/assets/{ArrowRight-CwW3g0To.js → ArrowRight-CuO69upc.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-CE0XaPst.js → ArrowUp-DmWBbOjK.js} +1 -1
  6. package/dist/client/assets/{Check-Dr5PXVFV.js → Check-C1wq38_E.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-DuLvoNqZ.js → CheckCircle-DWvslkKl.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-DQ3KAw-I.js → ChevronRight-B76sbAXC.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-PMZDp115.js → ChevronSelectorVertical-C4wJ3zDR.js} +1 -1
  10. package/dist/client/assets/{ChevronUp--7-Trc-f.js → ChevronUp-B0KEDz5f.js} +1 -1
  11. package/dist/client/assets/{Copy01-C8ycq1Gx.js → Copy01-rsN5AnPv.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-D-KFkcCL.js → CreditCard01-Cqs_Biv7.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-CNAofflT.js → DotsVertical-CBmzJDPB.js} +1 -1
  14. package/dist/client/assets/{Download01-DKB5sfo3.js → Download01-zZEPtQ0U.js} +1 -1
  15. package/dist/client/assets/{ErrorBarContext-CN2s2rmB.js → ErrorBarContext-CQj5vlL8.js} +1 -1
  16. package/dist/client/assets/{Eye-DbSPBsRj.js → Eye-DFgd5114.js} +1 -1
  17. package/dist/client/assets/{GitBranch01-5T0_iaaf.js → GitBranch01-B7iymaqC.js} +1 -1
  18. package/dist/client/assets/{Globe01-BKjZm6l_.js → Globe01-Df6dZmsR.js} +1 -1
  19. package/dist/client/assets/{HardDrive-Dj7xHhpl.js → HardDrive-CiahcooN.js} +1 -1
  20. package/dist/client/assets/{Image01-BQnSt7zb.js → Image01-CMpSR3RQ.js} +1 -1
  21. package/dist/client/assets/{Key01-D57xvqGH.js → Key01-t3bX5YI3.js} +1 -1
  22. package/dist/client/assets/{Link01-C9WOmTZf.js → Link01-pX5C3rEv.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-D5AszrfH.js → LinkExternal01-CzRiacvQ.js} +1 -1
  24. package/dist/client/assets/{Monitor01-AZBV0Kfj.js → Monitor01-jzbehxNG.js} +1 -1
  25. package/dist/client/assets/{Package-Clxh7ot3.js → Package-CiAH049d.js} +1 -1
  26. package/dist/client/assets/{Palette-CtewWm3m.js → Palette-CmMvG40G.js} +1 -1
  27. package/dist/client/assets/{Play-BpAIVQBv.js → Play-k9_JCuZW.js} +1 -1
  28. package/dist/client/assets/{Plus-ItHVPkbK.js → Plus-Bac7Bl-V.js} +1 -1
  29. package/dist/client/assets/{SearchLg-CM7dyzZH.js → SearchLg-iYej-M-S.js} +1 -1
  30. package/dist/client/assets/{SearchMd-BMT9SPzv.js → SearchMd-hxPQERkg.js} +1 -1
  31. package/dist/client/assets/{Sector-D7CcfR9e.js → Sector-CD1ykt0B.js} +1 -1
  32. package/dist/client/assets/{Settings02-CaRMlhts.js → Settings02-t15FjJbr.js} +1 -1
  33. package/dist/client/assets/{Share07-Bqjrc_Dp.js → Share07-CJrTonmW.js} +1 -1
  34. package/dist/client/assets/{Shield01-n9IgLqRT.js → Shield01-DS-tpugO.js} +1 -1
  35. package/dist/client/assets/{Stars01-BBKM6KGw.js → Stars01-ByE0-f1z.js} +1 -1
  36. package/dist/client/assets/{Sun-D001M5nI.js → Sun-vdviKSpi.js} +1 -1
  37. package/dist/client/assets/{Tool01-B3Urh0ia.js → Tool01-CmpQe3MS.js} +1 -1
  38. package/dist/client/assets/{Tool02-CHSvTEdf.js → Tool02-BAA6OFl0.js} +1 -1
  39. package/dist/client/assets/{Trash01-PyL_fMv9.js → Trash01-C6vCLvEw.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-BJ3iMwlw.js → TrendUp01-fHRYAiew.js} +1 -1
  41. package/dist/client/assets/{Upload01-D-aUPc1o.js → Upload01-lE597uPz.js} +1 -1
  42. package/dist/client/assets/{User01-B_C1ZTyQ.js → User01-BPodfm7s.js} +1 -1
  43. package/dist/client/assets/{UserSquare-CvMDO_ZO.js → UserSquare-CXhk4rLY.js} +1 -1
  44. package/dist/client/assets/{Users01-i0DLC5lP.js → Users01-Dgbd4CM_.js} +1 -1
  45. package/dist/client/assets/{Users03-CYnDP3qH.js → Users03-B4Km0_9u.js} +1 -1
  46. package/dist/client/assets/{XCircle-ChtZovJc.js → XCircle-BK1898xU.js} +1 -1
  47. package/dist/client/assets/{XClose-DsVxNFfh.js → XClose-DvenHyNp.js} +1 -1
  48. package/dist/client/assets/{Zap-DA8trGp5.js → Zap-nPZGKdXf.js} +1 -1
  49. package/dist/client/assets/{ZoomOut-DNkO_pWo.js → ZoomOut-DhJWoynj.js} +1 -1
  50. package/dist/client/assets/{access-gate-DAl73Zl2.js → access-gate-OgewzCmd.js} +1 -1
  51. package/dist/client/assets/{agent-icon-WARhM7M2.js → agent-icon-6EllA70W.js} +1 -1
  52. package/dist/client/assets/{agents-list-Ds_XjA_4.js → agents-list-BY0vT0Wn.js} +1 -1
  53. package/dist/client/assets/{ai-providers-N9ENYWwN.js → ai-providers-vUA1qSht.js} +1 -1
  54. package/dist/client/assets/{alert-jqVvdehT.js → alert-D8igu3TO.js} +1 -1
  55. package/dist/client/assets/{alert-dialog-CaVjuOTA.js → alert-dialog-CFCsKBpN.js} +1 -1
  56. package/dist/client/assets/{analytics-tab-BfTj7u-S.js → analytics-tab-Do-IciVD.js} +1 -1
  57. package/dist/client/assets/{api-keys-BybjToyv.js → api-keys-BIjM5sVA.js} +1 -1
  58. package/dist/client/assets/api-keys-pPtOUmL_.js +1 -0
  59. package/dist/client/assets/{app-editor-wNzSmN7g.js → app-editor-CSGywsTY.js} +1 -1
  60. package/dist/client/assets/{auth-5paz2QAy.js → auth-DeD0YpKg.js} +1 -1
  61. package/dist/client/assets/{auth-catchall-CIsnW36B.js → auth-catchall-E5QBtigN.js} +1 -1
  62. package/dist/client/assets/{auth-entry-5d_-zxd2.js → auth-entry-C91RF11H.js} +1 -1
  63. package/dist/client/assets/{auth-split-layout-e2oB7hQo.js → auth-split-layout-BFF9n_Qv.js} +1 -1
  64. package/dist/client/assets/{authenticate-and-persist-oauth-DJ7TJH5a.js → authenticate-and-persist-oauth-6UYdTwrd.js} +1 -1
  65. package/dist/client/assets/{automation-list-row-B4KH_FM2.js → automation-list-row-Ba1cMA4W.js} +1 -1
  66. package/dist/client/assets/{automation-runs-xlurwpxY.js → automation-runs-CoIkXCsB.js} +1 -1
  67. package/dist/client/assets/{automations-B2sAEhYo.js → automations-CJ2EIlox.js} +1 -1
  68. package/dist/client/assets/{autosend-Bvrla74y.js → autosend-DI1ZpOT0.js} +1 -1
  69. package/dist/client/assets/{avatar-bR8EiQIx.js → avatar-CfO1mReu.js} +1 -1
  70. package/dist/client/assets/{badge-By_bksNf.js → badge-GP_pc1i_.js} +1 -1
  71. package/dist/client/assets/{block-document-dZN1Xc_e.js → block-document-B_vPvGLi.js} +1 -1
  72. package/dist/client/assets/{breadcrumb-eMqpAKkg.js → breadcrumb-CAKgWNOZ.js} +1 -1
  73. package/dist/client/assets/{buckets-CujsT489.js → buckets-BeX-azQt.js} +1 -1
  74. package/dist/client/assets/{bulk-category-panel-COlkC-_i.js → bulk-category-panel-BenSOwl7.js} +1 -1
  75. package/dist/client/assets/{capability-load-error-ChEhHT5B.js → capability-load-error-BoR9RbMs.js} +1 -1
  76. package/dist/client/assets/{cards-CXYuNEAz.js → cards-m7YgOjsz.js} +1 -1
  77. package/dist/client/assets/{category-editor-DvM9a003.js → category-editor-iK-flfht.js} +1 -1
  78. package/dist/client/assets/{cdn-tab-CiuUtcC3.js → cdn-tab-Ck8xjhCA.js} +1 -1
  79. package/dist/client/assets/{chart-BARIzgFt.js → chart-BanyRqbL.js} +1 -1
  80. package/dist/client/assets/{chat-context-DUhIY1vi.js → chat-context-C6UT7ht1.js} +1 -1
  81. package/dist/client/assets/{checkbox-CsdUeGbl.js → checkbox-ZsR1Bced.js} +1 -1
  82. package/dist/client/assets/{choose-editor-CGFebAME.js → choose-editor-B8v8x2gP.js} +1 -1
  83. package/dist/client/assets/{cli-auth-success-CkHl--GH.js → cli-auth-success-sB1yOlRg.js} +1 -1
  84. package/dist/client/assets/{client-icons-aUBb1SVV.js → client-icons-DHLFDmNu.js} +1 -1
  85. package/dist/client/assets/{collection-detail-BEM0Yh7O.js → collection-detail-CZicQp0E.js} +1 -1
  86. package/dist/client/assets/{collection-display-button-WEUaSDxl.js → collection-display-button-BiBiEJPp.js} +1 -1
  87. package/dist/client/assets/{collection-search-BxDajREA.js → collection-search-7NUVJQfN.js} +1 -1
  88. package/dist/client/assets/{collection-table-wrapper-Bd903CQJ.js → collection-table-wrapper-D0kCJcbB.js} +1 -1
  89. package/dist/client/assets/{collection-tabs-DhsuK8J7.js → collection-tabs-MvaIz7gt.js} +1 -1
  90. package/dist/client/assets/{command-oGPXXyFx.js → command-CF7nzIN2.js} +1 -1
  91. package/dist/client/assets/{commerce-onboarding-CSRr8SWS.js → commerce-onboarding-DKWZMrBI.js} +1 -1
  92. package/dist/client/assets/{connect-D7BX2V6s.js → connect-G-ytX-wq.js} +1 -1
  93. package/dist/client/assets/{connect-layout-DtPpA6mQ.js → connect-layout-BLwdQBWt.js} +1 -1
  94. package/dist/client/assets/{connection-B7uvnVAy.js → connection-D885aDuM.js} +1 -1
  95. package/dist/client/assets/{connection-card-02FESqWH.js → connection-card-Nc1w-XCq.js} +1 -1
  96. package/dist/client/assets/{connection-detail-jDxoRiuu.js → connection-detail-BboxJXTl.js} +1 -1
  97. package/dist/client/assets/{connection-form-helpers-Do3Fl1Ot.js → connection-form-helpers-B4IwDJJQ.js} +1 -1
  98. package/dist/client/assets/{connections-CknzPAKv.js → connections-H_c0ER6v.js} +1 -1
  99. package/dist/client/assets/{create-organization-dialog-CqTZz8UB.js → create-organization-dialog-gO5G25gp.js} +1 -1
  100. package/dist/client/assets/{decopilot-sse-pool-B7r8i7-b.js → decopilot-sse-pool-Bm_3HC4t.js} +1 -1
  101. package/dist/client/assets/{dialog-BKxFfNHJ.js → dialog-CyDGwxcX.js} +1 -1
  102. package/dist/client/assets/{domain-settings-qwM3T6LI.js → domain-settings-Cx6UibuZ.js} +1 -1
  103. package/dist/client/assets/{drawer-nL9pyZUk.js → drawer-CqSEztKC.js} +1 -1
  104. package/dist/client/assets/{dropdown-menu-BPwOHqUK.js → dropdown-menu-CgwRqOnX.js} +1 -1
  105. package/dist/client/assets/{e2e-tab-BXcWXchI.js → e2e-tab-DbA_PByD.js} +1 -1
  106. package/dist/client/assets/{editor-D6b33Kp6.js → editor-D7S6MtwI.js} +1 -1
  107. package/dist/client/assets/{empty-state-C0ObmmPq.js → empty-state-DfBha5W6.js} +1 -1
  108. package/dist/client/assets/{empty-state-CbrQclh4.js → empty-state-SN5mEPhX.js} +1 -1
  109. package/dist/client/assets/{extract-connection-data-BAAFx1zB.js → extract-connection-data-DkL3Oqhk.js} +1 -1
  110. package/dist/client/assets/{file-explorer-C3y910g-.js → file-explorer-paPAvOUA.js} +1 -1
  111. package/dist/client/assets/{file-type-icon-Cv9Au12Q.js → file-type-icon--TvA6C0i.js} +1 -1
  112. package/dist/client/assets/{folder-icon-BZl6dN4h.js → folder-icon-C46JPU0-.js} +1 -1
  113. package/dist/client/assets/{form-2ui1swsD.js → form-BnUN8JhF.js} +1 -1
  114. package/dist/client/assets/{general-BcCdMWJs.js → general-DhiseHhA.js} +1 -1
  115. package/dist/client/assets/{github-icon-Dp3f4rNP.js → github-icon-7BmoW2Y2.js} +1 -1
  116. package/dist/client/assets/{hooks-CD4utilj.js → hooks-Bv30myGB.js} +1 -1
  117. package/dist/client/assets/{index-DfoDjjAA.js → index-9Wn-1DpE.js} +1 -1
  118. package/dist/client/assets/{index-SrUwf1Ba.js → index-BEyFhSeZ.js} +6 -6
  119. package/dist/client/assets/{index-Cj7oCSuC.js → index-B_j4TgZF.js} +1 -1
  120. package/dist/client/assets/{index-D7-hSjOp.js → index-C2fs5Fhc.js} +1 -1
  121. package/dist/client/assets/{index-BYjLUKTi.js → index-Cf5RfBo5.js} +1 -1
  122. package/dist/client/assets/{index-h3OZsv9i.js → index-CnV8Y6tV.js} +1 -1
  123. package/dist/client/assets/{index-JpslP_qS.js → index-DD_a39Sy.js} +1 -1
  124. package/dist/client/assets/{index-LaRjWpFJ.js → index-DHHqS3nT.js} +1 -1
  125. package/dist/client/assets/{index-i7rdTwSq.js → index-DR6uwZdc.js} +1 -1
  126. package/dist/client/assets/{index-BBglL91g.js → index-I7v7d4v2.js} +1 -1
  127. package/dist/client/assets/{index-DbI2Hv2w.js → index-SmsG_b1w.js} +1 -1
  128. package/dist/client/assets/{index-redirect-NfAxqUQL.js → index-redirect-C3gwJ6Fh.js} +1 -1
  129. package/dist/client/assets/{index-CVgPrRAu.js → index-y6Z5iMfg.js} +2 -2
  130. package/dist/client/assets/{infiniteQueryObserver-BiLjJICa.js → infiniteQueryObserver-CvFtTJPb.js} +1 -1
  131. package/dist/client/assets/{infra-billing-qLfx8zKm.js → infra-billing-Ch_WWq-u.js} +1 -1
  132. package/dist/client/assets/{input-CHsDtwWV.js → input-DRjCNSPN.js} +1 -1
  133. package/dist/client/assets/{integration-icon-Dn1NYpCz.js → integration-icon-CFGOsRgH.js} +1 -1
  134. package/dist/client/assets/{invite-member-dialog-wvsrz2Q7.js → invite-member-dialog-qtYgFNfF.js} +1 -1
  135. package/dist/client/assets/{label-eEghsgAb.js → label-DGsSvY2I.js} +1 -1
  136. package/dist/client/assets/{layout-D7ynLVKO.js → layout-C7iOarOb.js} +1 -1
  137. package/dist/client/assets/{login-BBcJFURc.js → login-B4RHcX-Z.js} +1 -1
  138. package/dist/client/assets/{markdown-CLDluQaT.js → markdown-Y6owwpHy.js} +1 -1
  139. package/dist/client/assets/{mcp-app-renderer-B4tmwKSu.js → mcp-app-renderer-Cy31bAY0.js} +1 -1
  140. package/dist/client/assets/{mcp-oauth-DTC0gHPR.js → mcp-oauth-Bm9ijvfC.js} +1 -1
  141. package/dist/client/assets/{members-C4gmjQhy.js → members-ypEfbto9.js} +1 -1
  142. package/dist/client/assets/{monaco-editor-DiA7Y8Jp.js → monaco-editor-D3QSLeam.js} +1 -1
  143. package/dist/client/assets/{monitoring-stats-row-CaQrcEmq.js → monitoring-stats-row--wR3KC6f.js} +1 -1
  144. package/dist/client/assets/{multi-select-BkOxj3ov.js → multi-select-kzt94BG4.js} +1 -1
  145. package/dist/client/assets/{oauth-callback-BPd_sQVy.js → oauth-callback-CsYpPVhX.js} +1 -1
  146. package/dist/client/assets/{oauth-callback-ai-provider-BQKu7zD0.js → oauth-callback-ai-provider-CkroR0wl.js} +1 -1
  147. package/dist/client/assets/{onboarding-BJ_ns7qX.js → onboarding-DN_VeGxV.js} +1 -1
  148. package/dist/client/assets/{org-layout-BwMmAJfR.js → org-layout-DzsJ720P.js} +1 -1
  149. package/dist/client/assets/{organization-choice-BvHglAm0.js → organization-choice-Bugd-m5W.js} +1 -1
  150. package/dist/client/assets/{orgs-C_BOLG6a.js → orgs-Bv7LuXwC.js} +1 -1
  151. package/dist/client/assets/{page-seo-form-BNsMvTQk.js → page-seo-form-DPrfWQ94.js} +1 -1
  152. package/dist/client/assets/{popover-DynDf0Y2.js → popover-DrJcYe9C.js} +1 -1
  153. package/dist/client/assets/{post-calendar-u57HdUd0.js → post-calendar-DyncB6BE.js} +1 -1
  154. package/dist/client/assets/{post-editor-C25p-zKu.js → post-editor-FfaApBeX.js} +1 -1
  155. package/dist/client/assets/{primitives-B1r2rfKZ.js → primitives-DZEMS67c.js} +1 -1
  156. package/dist/client/assets/{profile-aCtFkIP8.js → profile-Bs-irLLH.js} +1 -1
  157. package/dist/client/assets/{project-app-view-BRfCXTCA.js → project-app-view-C1W5Uv5V.js} +1 -1
  158. package/dist/client/assets/{project-icon-gggHkzMG.js → project-icon-DQTfNALl.js} +1 -1
  159. package/dist/client/assets/{prompts-CIw6eJ0v.js → prompts-wjQ-EFKj.js} +1 -1
  160. package/dist/client/assets/record-editor-DaGE-E4Q.js +1 -0
  161. package/dist/client/assets/redirect-editor-BgylW9YL.js +1 -0
  162. package/dist/client/assets/registry-YIdSAHGV.js +2 -0
  163. package/dist/client/assets/{registry-layout-Cr-MMVN3.js → registry-layout-DHYm94rU.js} +1 -1
  164. package/dist/client/assets/{reports-Br0pq8t5.js → reports-D4elpaqK.js} +1 -1
  165. package/dist/client/assets/{repositories-DVTi9Kwt.js → repositories-3ia_V4sE.js} +1 -1
  166. package/dist/client/assets/{repository-import-picker-wHQKR8Kw.js → repository-import-picker-DN9Nn9yd.js} +1 -1
  167. package/dist/client/assets/{repository-picker-D3OBdHwL.js → repository-picker-s01uE4_E.js} +1 -1
  168. package/dist/client/assets/{require-capability-DkU4FWOX.js → require-capability-BVMwcBeZ.js} +1 -1
  169. package/dist/client/assets/{required-auth-layout-OhBecawP.js → required-auth-layout-mSUodrzA.js} +1 -1
  170. package/dist/client/assets/{reset-password-DOJCzDSl.js → reset-password-B_-cD_PK.js} +1 -1
  171. package/dist/client/assets/{review-settings-ChEMWHBQ.js → review-settings-BN9py8rz.js} +1 -1
  172. package/dist/client/assets/roles-CGT8NKA4.js +1 -0
  173. package/dist/client/assets/{schema-CKRAjfV3.js → schema-BDy_4D7A.js} +1 -1
  174. package/dist/client/assets/{scroll-area-BLzS-vgd.js → scroll-area-C18Y2v3L.js} +1 -1
  175. package/dist/client/assets/{search-input-DUNiddyY.js → search-input-L0lrukmF.js} +1 -1
  176. package/dist/client/assets/{secrets-B13mykI_.js → secrets-CdpkfmHa.js} +1 -1
  177. package/dist/client/assets/{sections-editor-DmIhdm8M.js → sections-editor-BIoyRz1G.js} +1 -1
  178. package/dist/client/assets/{select-BGVsYDSA.js → select-BGnwGqnU.js} +1 -1
  179. package/dist/client/assets/{select-model-muziHS9O.js → select-model-BNDe5FJr.js} +1 -1
  180. package/dist/client/assets/{self-tool-result-D4msOfWc.js → self-tool-result-DM7xixxP.js} +1 -1
  181. package/dist/client/assets/{seo-editor-B656h6Cg.js → seo-editor-EIeTDSnb.js} +1 -1
  182. package/dist/client/assets/settings-layout-CwJp96nZ.js +1 -0
  183. package/dist/client/assets/{settings-sidebar-BENAKAud.js → settings-sidebar-BvIIdmkC.js} +1 -1
  184. package/dist/client/assets/{shell-controls-DHSX7Oie.js → shell-controls-nVElTnLJ.js} +1 -1
  185. package/dist/client/assets/{shell-layout-1uU5_7BX.js → shell-layout-CTNVA2t4.js} +1 -1
  186. package/dist/client/assets/{skill-preview-o9AQ2UPW.js → skill-preview-BswJw8Eb.js} +1 -1
  187. package/dist/client/assets/{skills-D5zdkTx0.js → skills-DXWVIfB4.js} +1 -1
  188. package/dist/client/assets/{sso-_8FGqmaq.js → sso-CVpMpJ2m.js} +1 -1
  189. package/dist/client/assets/{store-DxG9gdXY.js → store-BUUS-eER.js} +1 -1
  190. package/dist/client/assets/store-registry-DxfEOZiI.js +2 -0
  191. package/dist/client/assets/{switch-DuHhcJev.js → switch-CPLM-IZy.js} +1 -1
  192. package/dist/client/assets/{synced-repos-BtnEXIEk.js → synced-repos-Bl-1vG4K.js} +1 -1
  193. package/dist/client/assets/{table-B66a0gGd.js → table-DSIbUmyY.js} +1 -1
  194. package/dist/client/assets/{tabs-_02ZWusW.js → tabs-BVFMEVzk.js} +1 -1
  195. package/dist/client/assets/{task-board-ByqLYcCu.js → task-board-By8eCqZc.js} +1 -1
  196. package/dist/client/assets/{task-route-hsiwBWRZ.js → task-route-B8aecmdq.js} +1 -1
  197. package/dist/client/assets/{tasks-EvBLDy3C.js → tasks-kFCSziTb.js} +1 -1
  198. package/dist/client/assets/{textarea-C9uMkekO.js → textarea-CuF3aDTE.js} +1 -1
  199. package/dist/client/assets/{thread-intent-BiDrvdHg.js → thread-intent-q_RVjRN0.js} +1 -1
  200. package/dist/client/assets/{thread-route-D8Eq3R6j.js → thread-route-jI9qvJe_.js} +1 -1
  201. package/dist/client/assets/{toggle-group-myzsC-Lp.js → toggle-group-WfRpP-dB.js} +1 -1
  202. package/dist/client/assets/{toolbar-XLAZ4nIL.js → toolbar-B5cewwJb.js} +1 -1
  203. package/dist/client/assets/{toolbar-icon-button-DtvUaK_c.js → toolbar-icon-button-BtBUZ8nA.js} +1 -1
  204. package/dist/client/assets/{track-tHAt17X6.js → track-BYunSel2.js} +1 -1
  205. package/dist/client/assets/{types-CuWNS8vt.js → types-BB_Up-3A.js} +1 -1
  206. package/dist/client/assets/{use-ai-providers-D_JedBy2.js → use-ai-providers-BMexfNaB.js} +1 -1
  207. package/dist/client/assets/{use-automations-C6jbYtnf.js → use-automations-BgzAjzua.js} +1 -1
  208. package/dist/client/assets/{use-autosave-CoYYA6m6.js → use-autosave-D70NA0HD.js} +1 -1
  209. package/dist/client/assets/{use-connection-C1ecoleA.js → use-connection-ClORxmw4.js} +1 -1
  210. package/dist/client/assets/{use-copy-BTelEbhT.js → use-copy-DUxpBqXm.js} +1 -1
  211. package/dist/client/assets/{use-create-virtual-mcp-B61uI4_6.js → use-create-virtual-mcp-DBeldBRq.js} +1 -1
  212. package/dist/client/assets/{use-date-fns-locale-BCKbIA7e.js → use-date-fns-locale-40K6SzJD.js} +1 -1
  213. package/dist/client/assets/{use-debounced-autosave-CG8BVYzb.js → use-debounced-autosave-kf66WQZj.js} +1 -1
  214. package/dist/client/assets/{use-debounced-value-sSKOFDpK.js → use-debounced-value-v41IOreQ.js} +1 -1
  215. package/dist/client/assets/{use-decopilot-events-srvX3vGm.js → use-decopilot-events-C0NWoSQc.js} +1 -1
  216. package/dist/client/assets/{use-delete-connection-BDAP12He.js → use-delete-connection-qmqqgsKa.js} +1 -1
  217. package/dist/client/assets/{use-deployment-admin-DXV8y9Nh.js → use-deployment-admin-C7c9x0vv.js} +1 -1
  218. package/dist/client/assets/{use-destination-route-fVj57v1h.js → use-destination-route-CY15sZqw.js} +1 -1
  219. package/dist/client/assets/{use-file-configs-SZklVed1.js → use-file-configs-Dm3fOdMk.js} +1 -1
  220. package/dist/client/assets/{use-infinite-scroll-CmFvAp0p.js → use-infinite-scroll-Bw5rNIGx.js} +1 -1
  221. package/dist/client/assets/{use-join-requests-CevmG6yf.js → use-join-requests-DbtrL0Pl.js} +1 -1
  222. package/dist/client/assets/{use-mcp-auth-status-DrwYsNoW.js → use-mcp-auth-status-kHe3lJRg.js} +1 -1
  223. package/dist/client/assets/{use-mcp-client-DZ5gIGKb.js → use-mcp-client-Cw1fcLqm.js} +1 -1
  224. package/dist/client/assets/{use-mcp-prompts-BBEL6YyI.js → use-mcp-prompts-CtjkJFfg.js} +1 -1
  225. package/dist/client/assets/{use-mcp-tools-DxC2B6PA.js → use-mcp-tools-DRBItGTD.js} +1 -1
  226. package/dist/client/assets/{use-members-B-Y4lNam.js → use-members-C23rfxcZ.js} +1 -1
  227. package/dist/client/assets/{use-navigate-to-agent-aR3BeJQ6.js → use-navigate-to-agent-COVw0ub8.js} +1 -1
  228. package/dist/client/assets/{use-org-auth-client-Bbec5sHg.js → use-org-auth-client-DvlpnDFO.js} +1 -1
  229. package/dist/client/assets/{use-org-notice-jGCEZdyy.js → use-org-notice-DlsdC1WA.js} +1 -1
  230. package/dist/client/assets/{use-org-sso-6s1RthKS.js → use-org-sso-xd-5IiLc.js} +1 -1
  231. package/dist/client/assets/{use-organization-roles-z_F4y8Y9.js → use-organization-roles-B3neE_6D.js} +1 -1
  232. package/dist/client/assets/{use-organization-settings-B1MpzKFj.js → use-organization-settings-DucmPYOE.js} +1 -1
  233. package/dist/client/assets/{use-panel-navigate-C8j4-ljJ.js → use-panel-navigate-C6Ga2vR8.js} +1 -1
  234. package/dist/client/assets/{use-registry-connections-BWopj3Tx.js → use-registry-connections-DBp-MS3e.js} +1 -1
  235. package/dist/client/assets/{use-secrets-fOwwXRc4.js → use-secrets-PkTonlJ_.js} +1 -1
  236. package/dist/client/assets/{use-section-preview-base-CsObqeNI.js → use-section-preview-base-B4s2_IK6.js} +1 -1
  237. package/dist/client/assets/{use-status-sounds-Dbq0lvbe.js → use-status-sounds-C-6LEj0t.js} +1 -1
  238. package/dist/client/assets/{use-tags-CWFm6kXB.js → use-tags-BuxETA7b.js} +1 -1
  239. package/dist/client/assets/{use-view-mode-BBNo8GIm.js → use-view-mode-BGsTNFK8.js} +1 -1
  240. package/dist/client/assets/{use-virtual-mcp-CiaAtDR5.js → use-virtual-mcp-Bnfc4yEo.js} +1 -1
  241. package/dist/client/assets/useInfiniteQuery-DThUrotQ.js +1 -0
  242. package/dist/client/assets/useSuspenseInfiniteQuery-Dsg0_SX3.js +1 -0
  243. package/dist/client/assets/{users-CsTqlTR0.js → users-CuqlxLsH.js} +1 -1
  244. package/dist/client/assets/{variant-calendar-DEwH1kCM.js → variant-calendar-BhJlQ5r6.js} +1 -1
  245. package/dist/client/assets/{view-mode-toggle-D3_8gJvE.js → view-mode-toggle-BlEO3gFJ.js} +1 -1
  246. package/dist/client/index.html +1 -1
  247. package/dist/server/cli.js +764 -663
  248. package/dist/server/migrate.js +314 -213
  249. package/dist/server/server.js +420 -420
  250. package/package.json +1 -1
  251. package/dist/client/assets/api-keys-CQDdYZVX.js +0 -1
  252. package/dist/client/assets/record-editor-N3NtWbcx.js +0 -1
  253. package/dist/client/assets/redirect-editor-rd1042zn.js +0 -1
  254. package/dist/client/assets/registry-Dgy_-6F7.js +0 -2
  255. package/dist/client/assets/roles-BsJdJQ0M.js +0 -1
  256. package/dist/client/assets/settings-layout-C76G79MQ.js +0 -1
  257. package/dist/client/assets/store-registry-BPKRFlOD.js +0 -2
  258. package/dist/client/assets/useInfiniteQuery-Cu_EdRgj.js +0 -1
  259. package/dist/client/assets/useSuspenseInfiniteQuery-BJrugfeG.js +0 -1
@@ -1,5 +1,106 @@
1
1
  // @bun
2
- var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null,x)}var m=(_,x)=>{for(var u in x)oN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:rN.bind(x,u)})};import{Migrator as cN,sql as a}from"kysely";var t_={};m(t_,{up:()=>eN,down:()=>lN});import{sql as FT}from"kysely";async function eN(_){await FT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function lN(_){await FT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var v_={};m(v_,{up:()=>dN,down:()=>sN});import{sql as RT}from"kysely";async function dN(_){await RT`
2
+ var rN=Object.defineProperty;var eN=(_)=>_;function lN(_,x){this[_]=eN.bind(null,x)}var m=(_,x)=>{for(var u in x)rN(_,u,{get:x[u],enumerable:!0,configurable:!0,set:lN.bind(x,u)})};import{Migrator as oN,sql as r}from"kysely";var v_={};m(v_,{up:()=>dN,down:()=>sN});import{sql as YT}from"kysely";async function dN(_){await YT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function sN(_){await YT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var q_={};m(q_,{up:()=>bN,down:()=>_K});import{sql as D}from"kysely";async function bN(_){await D`
3
+ CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
4
+ RETURNS jsonb AS $fn$
5
+ BEGIN
6
+ RETURN t::jsonb;
7
+ EXCEPTION WHEN others THEN
8
+ RETURN NULL;
9
+ END;
10
+ $fn$ LANGUAGE plpgsql IMMUTABLE;
11
+ `.execute(_),await D`
12
+ CREATE OR REPLACE VIEW cd_repo_picks AS
13
+ SELECT
14
+ c.id AS connection_id,
15
+ c.organization_id,
16
+ cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo' AS path
17
+ FROM connections c
18
+ WHERE c.id = c.organization_id || '_commerce-discovery'
19
+ AND cd_repo_try_jsonb(c.configuration_state) ->> 'github_repo'
20
+ ~ '^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$'
21
+ `.execute(_),await D`
22
+ INSERT INTO repositories (
23
+ organization_id, account_id, provider, host, path, web_url
24
+ )
25
+ SELECT DISTINCT ON (p.organization_id, lower(p.path))
26
+ p.organization_id, NULL, 'github', 'github.com',
27
+ p.path, 'https://github.com/' || p.path
28
+ FROM cd_repo_picks p
29
+ ORDER BY p.organization_id, lower(p.path)
30
+ ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
31
+ `.execute(_),await D`
32
+ UPDATE connections c
33
+ SET configuration_state = (
34
+ cd_repo_try_jsonb(c.configuration_state) || jsonb_build_object(
35
+ 'repository', jsonb_build_object(
36
+ 'repository_id', r.id,
37
+ 'provider', r.provider,
38
+ 'host', r.host,
39
+ 'path', r.path,
40
+ 'default_branch', r.default_branch,
41
+ 'web_url', r.web_url
42
+ )
43
+ )
44
+ )::text
45
+ FROM cd_repo_picks p
46
+ JOIN repositories r
47
+ ON r.organization_id = p.organization_id
48
+ AND r.host = 'github.com'
49
+ AND lower(r.path) = lower(p.path)
50
+ WHERE c.id = p.connection_id
51
+ AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NULL
52
+ `.execute(_),await D`
53
+ UPDATE connections a
54
+ SET
55
+ repository_id = r.id,
56
+ metadata = (
57
+ coalesce(cd_repo_try_jsonb(a.metadata), '{}'::jsonb) || jsonb_build_object(
58
+ 'githubRepo',
59
+ coalesce(cd_repo_try_jsonb(a.metadata) -> 'githubRepo', '{}'::jsonb)
60
+ || jsonb_build_object('repositoryId', r.id)
61
+ )
62
+ )::text
63
+ FROM cd_repo_picks p
64
+ JOIN repositories r
65
+ ON r.organization_id = p.organization_id
66
+ AND r.host = 'github.com'
67
+ AND lower(r.path) = lower(p.path)
68
+ WHERE a.id = 'commerce-discovery_' || p.organization_id
69
+ AND a.organization_id = p.organization_id
70
+ AND a.repository_id IS NULL
71
+ AND lower(
72
+ coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,owner}', '')
73
+ || '/' ||
74
+ coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
75
+ ) = lower(p.path)
76
+ `.execute(_),await D`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await D`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function _K(_){await D`
77
+ CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
78
+ RETURNS jsonb AS $fn$
79
+ BEGIN
80
+ RETURN t::jsonb;
81
+ EXCEPTION WHEN others THEN
82
+ RETURN NULL;
83
+ END;
84
+ $fn$ LANGUAGE plpgsql IMMUTABLE;
85
+ `.execute(_),await D`
86
+ UPDATE connections c
87
+ SET configuration_state =
88
+ (cd_repo_try_jsonb(c.configuration_state) - 'repository')::text
89
+ WHERE c.id = c.organization_id || '_commerce-discovery'
90
+ AND cd_repo_try_jsonb(c.configuration_state) -> 'repository' IS NOT NULL
91
+ `.execute(_),await D`
92
+ UPDATE connections a
93
+ SET
94
+ repository_id = NULL,
95
+ metadata = (
96
+ cd_repo_try_jsonb(a.metadata) || jsonb_build_object(
97
+ 'githubRepo',
98
+ (cd_repo_try_jsonb(a.metadata) -> 'githubRepo') - 'repositoryId'
99
+ )
100
+ )::text
101
+ WHERE a.id = 'commerce-discovery_' || a.organization_id
102
+ AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
103
+ `.execute(_),await D`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var g_={};m(g_,{up:()=>xK,down:()=>uK});import{sql as HT}from"kysely";async function xK(_){await HT`
3
104
  INSERT INTO "organization" (id, name, slug, "createdAt")
4
105
  SELECT
5
106
  'org_user_fs',
@@ -13,9 +114,9 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
13
114
  END,
14
115
  now()
15
116
  ON CONFLICT (id) DO NOTHING
16
- `.execute(_)}async function sN(_){await RT`
117
+ `.execute(_)}async function uK(_){await HT`
17
118
  DELETE FROM "organization" WHERE id = 'org_user_fs'
18
- `.execute(_)}var q_={};m(q_,{up:()=>bN,down:()=>_K});async function bN(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function _K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var g_={};m(g_,{up:()=>xK,down:()=>uK});async function xK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function uK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var c_={};m(c_,{up:()=>CK,down:()=>TK});import{sql as r}from"kysely";var mK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function YT(_,x){for(let{table:u,column:T}of mK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await r.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await r.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function CK(_){await YT(_,["github","gitlab","bitbucket"])}async function TK(_){await r`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await r`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await YT(_,["github","gitlab"])}var h_={};m(h_,{up:()=>NK,down:()=>KK});async function NK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function KK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var o_={};m(o_,{up:()=>zK,down:()=>PK});import{sql as EK}from"kysely";async function zK(_){await EK`
119
+ `.execute(_)}var c_={};m(c_,{up:()=>mK,down:()=>CK});async function mK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function CK(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var h_={};m(h_,{up:()=>TK,down:()=>NK});async function TK(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function NK(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var o_={};m(o_,{up:()=>EK,down:()=>zK});import{sql as e}from"kysely";var KK=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function MT(_,x){for(let{table:u,column:T}of KK){let C=`${u}_${T}_check`,N=x.map((E)=>`'${E}'`).join(", ");await e.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${C}`).execute(_),await e.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${C} CHECK (${T} IN (${N}))`).execute(_)}}async function EK(_){await MT(_,["github","gitlab","bitbucket"])}async function zK(_){await e`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await e`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await e`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await MT(_,["github","gitlab"])}var a_={};m(a_,{up:()=>PK,down:()=>$K});async function PK(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function $K(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var r_={};m(r_,{up:()=>JK,down:()=>XK});import{sql as UK}from"kysely";async function JK(_){await UK`
19
120
  CREATE TABLE github_connect_flows (
20
121
  id text PRIMARY KEY,
21
122
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -25,7 +126,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
25
126
  );
26
127
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
27
128
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
28
- `.execute(_)}async function PK(_){await _.schema.dropTable("github_connect_flows").execute()}var a_={};m(a_,{up:()=>$K,down:()=>UK});async function $K(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function UK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var r_={};m(r_,{up:()=>JK,down:()=>XK});import{sql as P_}from"kysely";async function JK(_){await P_`
129
+ `.execute(_)}async function XK(_){await _.schema.dropTable("github_connect_flows").execute()}var e_={};m(e_,{up:()=>QK,down:()=>jK});async function QK(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function jK(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as $_}from"kysely";async function WK(_){await $_`
29
130
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
30
131
  DECLARE
31
132
  metadata_json jsonb;
@@ -76,24 +177,24 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
76
177
  AFTER INSERT OR UPDATE OF metadata ON connections
77
178
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
78
179
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
79
- `.execute(_),await P_`
180
+ `.execute(_),await $_`
80
181
  UPDATE org_repo_sync s SET repository_id = r.id
81
182
  FROM repositories r WHERE s.repository_id IS NULL
82
183
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
83
184
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
84
- `.execute(_)}async function XK(_){await P_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await P_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var e_={};m(e_,{up:()=>QK,down:()=>jK});import{sql as M}from"kysely";async function QK(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function jK(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var l_={};m(l_,{up:()=>WK,down:()=>ZK});import{sql as HT}from"kysely";async function WK(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(HT`CURRENT_TIMESTAMP`)).execute()}async function ZK(_){await _.schema.dropTable("organization_settings").execute()}var d_={};m(d_,{up:()=>LK,down:()=>DK});async function LK(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function DK(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var s_={};m(s_,{up:()=>FK,down:()=>RK});async function FK(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function RK(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function HK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var _x={};m(_x,{up:()=>nK,down:()=>BK});import{sql as MK}from"kysely";async function nK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",MK`text`).execute()}async function BK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var xx={};m(xx,{up:()=>GK,down:()=>yK});async function GK(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function yK(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as e}from"kysely";async function fK(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(e`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function OK(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var mx={};m(mx,{up:()=>SK,down:()=>IK});import{sql as AK}from"kysely";async function SK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function IK(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(AK`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var Cx={};m(Cx,{up:()=>wK,down:()=>VK});import{sql as $_}from"kysely";async function wK(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo($_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await $_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function VK(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var Tx={};m(Tx,{up:()=>kK,down:()=>pK});async function kK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function pK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await U_`
185
+ `.execute(_)}async function ZK(_){await $_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await $_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var d_={};m(d_,{up:()=>LK,down:()=>DK});import{sql as B}from"kysely";async function LK(_){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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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(B`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(B`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(B`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(B`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(B`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(B`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 DK(_){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 s_={};m(s_,{up:()=>FK,down:()=>RK});import{sql as BT}from"kysely";async function FK(_){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(BT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(BT`CURRENT_TIMESTAMP`)).execute()}async function RK(_){await _.schema.dropTable("organization_settings").execute()}var b_={};m(b_,{up:()=>YK,down:()=>HK});async function YK(_){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 HK(_){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 _x={};m(_x,{up:()=>MK,down:()=>BK});async function MK(_){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 BK(_){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 xx={};m(xx,{up:()=>GK,down:()=>nK});async function GK(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function nK(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var ux={};m(ux,{up:()=>fK,down:()=>OK});import{sql as yK}from"kysely";async function fK(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",yK`text`).execute()}async function OK(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var mx={};m(mx,{up:()=>AK,down:()=>SK});async function AK(_){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 SK(_){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 Cx={};m(Cx,{up:()=>IK,down:()=>wK});import{sql as l}from"kysely";async function IK(_){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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(l`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(l`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 wK(_){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 Tx={};m(Tx,{up:()=>kK,down:()=>pK});import{sql as VK}from"kysely";async function kK(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function pK(_){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(VK`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 Nx={};m(Nx,{up:()=>iK,down:()=>tK});import{sql as U_}from"kysely";async function iK(_){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(U_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(U_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("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(U_`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 U_`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 tK(_){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 Kx={};m(Kx,{up:()=>vK,down:()=>qK});async function vK(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function qK(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Ex={};m(Ex,{up:()=>gK,down:()=>cK});import{sql as J_}from"kysely";async function gK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await J_`
85
186
  UPDATE gateways
86
187
  SET tool_selection_mode = CASE
87
188
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
88
189
  ELSE 'inclusion'
89
190
  END
90
- `.execute(_),await U_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function tK(_){await U_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await U_`
191
+ `.execute(_),await J_`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 cK(_){await J_`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 J_`
91
192
  UPDATE gateways
92
193
  SET tool_selection_strategy = CASE
93
194
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
94
195
  ELSE NULL
95
196
  END
96
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Kx={};m(Kx,{up:()=>vK,down:()=>qK});async function vK(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function qK(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var Ex={};m(Ex,{up:()=>gK,down:()=>cK});async function gK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function cK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var zx={};m(zx,{up:()=>hK,down:()=>oK});async function hK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function oK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Px={};m(Px,{up:()=>aK,down:()=>rK});async function aK(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function rK(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var $x={};m($x,{up:()=>lK,down:()=>dK});import{sql as eK}from"kysely";async function lK(_){await eK`
197
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var zx={};m(zx,{up:()=>hK,down:()=>oK});async function hK(_){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 oK(_){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 Px={};m(Px,{up:()=>aK,down:()=>rK});async function aK(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function rK(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var $x={};m($x,{up:()=>eK,down:()=>lK});async function eK(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function lK(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Ux={};m(Ux,{up:()=>dK,down:()=>sK});async function dK(_){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 sK(_){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 Jx={};m(Jx,{up:()=>_E,down:()=>xE});import{sql as bK}from"kysely";async function _E(_){await bK`
97
198
  DELETE FROM downstream_tokens
98
199
  WHERE id NOT IN (
99
200
  SELECT id FROM (
@@ -103,7 +204,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
103
204
  ) ranked
104
205
  WHERE rn = 1
105
206
  )
106
- `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function dK(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Ux={};m(Ux,{up:()=>sK,down:()=>bK});async function sK(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function bK(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Jx={};m(Jx,{up:()=>_E,down:()=>xE});import{sql as MT}from"kysely";async function _E(_){await MT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function xE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await MT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var Xx={};m(Xx,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function mE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Qx={};m(Qx,{up:()=>CE,down:()=>TE});import{sql as J_}from"kysely";async function CE(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function TE(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var jx={};m(jx,{up:()=>NE,down:()=>KE});async function NE(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function KE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var Wx={};m(Wx,{up:()=>EE,down:()=>zE});async function EE(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function zE(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Zx={};m(Zx,{up:()=>PE,down:()=>$E});import{sql as W}from"kysely";async function PE(_){await W`
207
+ `.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 xE(_){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 Xx={};m(Xx,{up:()=>uE,down:()=>mE});async function uE(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function mE(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Qx={};m(Qx,{up:()=>CE,down:()=>TE});import{sql as GT}from"kysely";async function CE(_){await GT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function TE(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await GT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var jx={};m(jx,{up:()=>NE,down:()=>KE});async function NE(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function KE(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Wx={};m(Wx,{up:()=>EE,down:()=>zE});import{sql as X_}from"kysely";async function EE(_){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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(X_`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(X_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(X_`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 zE(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var Zx={};m(Zx,{up:()=>PE,down:()=>$E});async function PE(_){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 Lx={};m(Lx,{up:()=>UE,down:()=>JE});async function UE(_){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 JE(_){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 Dx={};m(Dx,{up:()=>XE,down:()=>QE});import{sql as W}from"kysely";async function XE(_){await W`
107
208
  INSERT INTO connections (
108
209
  id,
109
210
  organization_id,
@@ -150,7 +251,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
150
251
  created_at,
151
252
  updated_at
152
253
  FROM virtual_mcps
153
- `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function $E(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await W`
254
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await W`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await W`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await W`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function QE(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(W`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await W`
154
255
  INSERT INTO virtual_mcps (
155
256
  id, organization_id, title, description, icon, status,
156
257
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -160,7 +261,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
160
261
  created_at, updated_at, created_by, NULL, 'inclusion'
161
262
  FROM connections
162
263
  WHERE connection_type = 'VIRTUAL'
163
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Lx={};m(Lx,{up:()=>UE,down:()=>JE});async function UE(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function JE(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var Dx={};m(Dx,{up:()=>XE,down:()=>QE});import{sql as n}from"kysely";async function XE(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).execute(),await n`
264
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await W`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var Fx={};m(Fx,{up:()=>jE,down:()=>WE});async function jE(_){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 WE(_){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 Rx={};m(Rx,{up:()=>ZE,down:()=>LE});import{sql as G}from"kysely";async function ZE(_){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(G`CURRENT_TIMESTAMP`)).execute(),await G`
164
265
  INSERT INTO connection_aggregations_new (
165
266
  id, parent_connection_id, child_connection_id,
166
267
  selected_tools, selected_resources, selected_prompts, created_at
@@ -169,7 +270,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
169
270
  id, parent_connection_id, child_connection_id,
170
271
  selected_tools, selected_resources, selected_prompts, created_at
171
272
  FROM connection_aggregations
172
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function QE(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(n`CURRENT_TIMESTAMP`)).execute(),await n`
273
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`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 LE(_){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(G`CURRENT_TIMESTAMP`)).execute(),await G`
173
274
  INSERT INTO connection_aggregations_new (
174
275
  id, parent_connection_id, child_connection_id,
175
276
  selected_tools, selected_resources, selected_prompts, created_at
@@ -178,7 +279,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
178
279
  id, parent_connection_id, child_connection_id,
179
280
  selected_tools, selected_resources, selected_prompts, created_at
180
281
  FROM connection_aggregations
181
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await n`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await n`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var Rx={};m(Rx,{up:()=>jE,down:()=>WE});import{sql as Fx}from"kysely";async function jE(_){await Fx`
282
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await G`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await G`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await G`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 Hx={};m(Hx,{up:()=>DE,down:()=>FE});import{sql as Yx}from"kysely";async function DE(_){await Yx`
182
283
  UPDATE connections
183
284
  SET connection_url = connection_url || '/management',
184
285
  tools = NULL,
@@ -186,42 +287,42 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
186
287
  WHERE connection_url LIKE '%/mcp'
187
288
  AND connection_url NOT LIKE '%/mcp/management'
188
289
  AND app_name = '@deco/management-mcp'
189
- `.execute(_),await Fx`
290
+ `.execute(_),await Yx`
190
291
  UPDATE connections
191
292
  SET tools = NULL,
192
293
  updated_at = CURRENT_TIMESTAMP
193
294
  WHERE app_name = '@deco/management-mcp'
194
295
  AND tools IS NOT NULL
195
- `.execute(_)}async function WE(_){await Fx`
296
+ `.execute(_)}async function FE(_){await Yx`
196
297
  UPDATE connections
197
298
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
198
299
  updated_at = CURRENT_TIMESTAMP
199
300
  WHERE connection_url LIKE '%/mcp/management'
200
301
  AND app_name = '@deco/management-mcp'
201
- `.execute(_)}var Hx={};m(Hx,{up:()=>ZE,down:()=>LE});import{sql as Yx}from"kysely";async function ZE(_){await Yx`
302
+ `.execute(_)}var Bx={};m(Bx,{up:()=>RE,down:()=>YE});import{sql as Mx}from"kysely";async function RE(_){await Mx`
202
303
  UPDATE connections
203
304
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
204
305
  tools = NULL,
205
306
  updated_at = CURRENT_TIMESTAMP
206
307
  WHERE connection_url LIKE '%/mcp/management'
207
308
  AND app_name = '@deco/management-mcp'
208
- `.execute(_),await Yx`
309
+ `.execute(_),await Mx`
209
310
  UPDATE connections
210
311
  SET tools = NULL,
211
312
  updated_at = CURRENT_TIMESTAMP
212
313
  WHERE connection_url LIKE '%/mcp/self'
213
314
  AND app_name = '@deco/management-mcp'
214
315
  AND tools IS NOT NULL
215
- `.execute(_)}async function LE(_){await Yx`
316
+ `.execute(_)}async function YE(_){await Mx`
216
317
  UPDATE connections
217
318
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
218
319
  updated_at = CURRENT_TIMESTAMP
219
320
  WHERE connection_url LIKE '%/mcp/self'
220
321
  AND app_name = '@deco/management-mcp'
221
- `.execute(_)}var Mx={};m(Mx,{up:()=>DE,down:()=>FE});async function DE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function FE(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var nx={};m(nx,{up:()=>RE,down:()=>YE});import{sql as nT}from"kysely";async function RE(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(nT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(nT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function YE(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var Bx={};m(Bx,{up:()=>HE,down:()=>ME});import{sql as l}from"kysely";async function HE(_){await l`
322
+ `.execute(_)}var Gx={};m(Gx,{up:()=>HE,down:()=>ME});async function HE(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function ME(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var nx={};m(nx,{up:()=>BE,down:()=>GE});import{sql as nT}from"kysely";async function BE(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(nT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(nT`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function GE(_){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 yx={};m(yx,{up:()=>nE,down:()=>yE});import{sql as d}from"kysely";async function nE(_){await d`
222
323
  ALTER TABLE connection_aggregations
223
324
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
224
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function ME(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await l`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await l`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(l`CURRENT_TIMESTAMP`)).execute(),await l`
325
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function yE(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await d`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await d`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(d`CURRENT_TIMESTAMP`)).execute(),await d`
225
326
  INSERT INTO connection_aggregations_new (
226
327
  id, parent_connection_id, child_connection_id,
227
328
  selected_tools, selected_resources, selected_prompts, created_at
@@ -230,42 +331,42 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
230
331
  id, parent_connection_id, child_connection_id,
231
332
  selected_tools, selected_resources, selected_prompts, created_at
232
333
  FROM connection_aggregations
233
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var Gx={};m(Gx,{up:()=>fE,down:()=>OE});import{webcrypto as GT}from"crypto";var BT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var nE=128,w,k;function BE(_){if(!w||w.length<_)w=Buffer.allocUnsafe(_*nE),GT.getRandomValues(w),k=0;else if(k+_>w.length)GT.getRandomValues(w),k=0;k+=_}function p(_=21){BE(_|=0);let x="";for(let u=k-_;u<k;u++)x+=BT[w[u]&63];return x}var GE="org-admin",yE="Organization Admin";async function fE(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),C=`proj_${p()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:GE,name:yE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function OE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var yx={};m(yx,{up:()=>AE,down:()=>SE});async function AE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function SE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var fx={};m(fx,{up:()=>IE,down:()=>wE});async function IE(_){}async function wE(_){}var Ox={};m(Ox,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function kE(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var Ax={};m(Ax,{up:()=>pE,down:()=>iE});import{sql as yT}from"kysely";async function pE(_){await yT`
334
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var fx={};m(fx,{up:()=>IE,down:()=>wE});import{webcrypto as fT}from"crypto";var yT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var fE=128,V,p;function OE(_){if(!V||V.length<_)V=Buffer.allocUnsafe(_*fE),fT.getRandomValues(V),p=0;else if(p+_>V.length)fT.getRandomValues(V),p=0;p+=_}function i(_=21){OE(_|=0);let x="";for(let u=p-_;u<p;u++)x+=yT[V[u]&63];return x}var AE="org-admin",SE="Organization Admin";async function IE(_){await _.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),C=`proj_${i()}`,N=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:C,organization_id:u.id,slug:AE,name:SE,description:null,enabled_plugins:N?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function wE(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var Ox={};m(Ox,{up:()=>VE,down:()=>kE});async function VE(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function kE(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var Ax={};m(Ax,{up:()=>pE,down:()=>iE});async function pE(_){}async function iE(_){}var Sx={};m(Sx,{up:()=>tE,down:()=>vE});async function tE(_){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 vE(_){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 Ix={};m(Ix,{up:()=>qE,down:()=>gE});import{sql as OT}from"kysely";async function qE(_){await OT`
234
335
  UPDATE connections
235
336
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
236
337
  tools = NULL,
237
338
  updated_at = CURRENT_TIMESTAMP
238
339
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
239
340
  AND app_name = 'deco-registry'
240
- `.execute(_)}async function iE(_){await yT`
341
+ `.execute(_)}async function gE(_){await OT`
241
342
  UPDATE connections
242
343
  SET connection_url = 'https://api.decocms.com/mcp/registry',
243
344
  updated_at = CURRENT_TIMESTAMP
244
345
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
245
346
  AND app_name = 'deco-registry'
246
- `.execute(_)}var Sx={};m(Sx,{up:()=>vE,down:()=>qE});import{sql as tE}from"kysely";async function vE(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function qE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Ix={};m(Ix,{up:()=>cE,down:()=>hE});import{sql as gE}from"kysely";async function cE(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(gE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function hE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var wx={};m(wx,{up:()=>oE,down:()=>aE});import{sql as O}from"kysely";async function oE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(O`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(O`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(O`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(O`CURRENT_TIMESTAMP`)).execute(),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await O`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function aE(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var Vx={};m(Vx,{up:()=>rE,down:()=>eE});async function rE(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function eE(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var kx={};m(kx,{up:()=>lE,down:()=>dE});async function lE(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function dE(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var px={};m(px,{up:()=>sE,down:()=>bE});import{sql as fT}from"kysely";async function sE(_){await fT`
347
+ `.execute(_)}var wx={};m(wx,{up:()=>hE,down:()=>oE});import{sql as cE}from"kysely";async function hE(_){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(cE`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 oE(_){await _.schema.dropTable("ai_provider_keys").execute()}var Vx={};m(Vx,{up:()=>rE,down:()=>eE});import{sql as aE}from"kysely";async function rE(_){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(aE`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function eE(_){await _.schema.dropTable("oauth_pkce_states").execute()}var kx={};m(kx,{up:()=>lE,down:()=>dE});import{sql as A}from"kysely";async function lE(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(A`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(A`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(A`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(A`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(A`CURRENT_TIMESTAMP`)).execute(),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await A`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await A`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 dE(_){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 px={};m(px,{up:()=>sE,down:()=>bE});async function sE(_){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 bE(_){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 ix={};m(ix,{up:()=>_z,down:()=>xz});async function _z(_){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 xz(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var tx={};m(tx,{up:()=>uz,down:()=>mz});import{sql as AT}from"kysely";async function uz(_){await AT`
247
348
  UPDATE connections
248
349
  SET title = 'CMS MCP',
249
350
  tools = NULL,
250
351
  updated_at = CURRENT_TIMESTAMP
251
352
  WHERE app_name = '@deco/management-mcp'
252
- `.execute(_)}async function bE(_){await fT`
353
+ `.execute(_)}async function mz(_){await AT`
253
354
  UPDATE connections
254
355
  SET title = 'Mesh MCP',
255
356
  updated_at = CURRENT_TIMESTAMP
256
357
  WHERE app_name = '@deco/management-mcp'
257
- `.execute(_)}var ix={};m(ix,{up:()=>_z,down:()=>xz});import{sql as OT}from"kysely";async function _z(_){await OT`
358
+ `.execute(_)}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});import{sql as ST}from"kysely";async function Cz(_){await ST`
258
359
  UPDATE connections
259
360
  SET title = 'Deco CMS',
260
361
  tools = NULL,
261
362
  updated_at = CURRENT_TIMESTAMP
262
363
  WHERE app_name = '@deco/management-mcp'
263
- `.execute(_)}async function xz(_){await OT`
364
+ `.execute(_)}async function Tz(_){await ST`
264
365
  UPDATE connections
265
366
  SET title = 'CMS MCP',
266
367
  updated_at = CURRENT_TIMESTAMP
267
368
  WHERE app_name = '@deco/management-mcp'
268
- `.execute(_)}var tx={};m(tx,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function mz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var vx={};m(vx,{up:()=>Cz,down:()=>Tz});async function Cz(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Tz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var gx={};m(gx,{up:()=>Nz,down:()=>Kz});import{sql as qx}from"kysely";async function Nz(_){await qx`
369
+ `.execute(_)}var qx={};m(qx,{up:()=>Nz,down:()=>Kz});async function Nz(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function Kz(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var gx={};m(gx,{up:()=>Ez,down:()=>zz});async function Ez(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function zz(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var hx={};m(hx,{up:()=>Pz,down:()=>$z});import{sql as cx}from"kysely";async function Pz(_){await cx`
269
370
  UPDATE organization_settings
270
371
  SET enabled_plugins = (
271
372
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -274,7 +375,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
274
375
  )
275
376
  WHERE enabled_plugins IS NOT NULL
276
377
  AND enabled_plugins LIKE '%object-storage%'
277
- `.execute(_),await qx`
378
+ `.execute(_),await cx`
278
379
  UPDATE projects
279
380
  SET enabled_plugins = (
280
381
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -283,65 +384,65 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
283
384
  )
284
385
  WHERE enabled_plugins IS NOT NULL
285
386
  AND enabled_plugins LIKE '%object-storage%'
286
- `.execute(_),await qx`
387
+ `.execute(_),await cx`
287
388
  DELETE FROM project_plugin_configs
288
389
  WHERE plugin_id = 'object-storage'
289
- `.execute(_)}async function Kz(_){}var cx={};m(cx,{up:()=>Ez,down:()=>zz});import{sql as AT}from"kysely";async function Ez(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await AT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function zz(_){await AT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var ox={};m(ox,{up:()=>Pz,down:()=>$z});import{sql as hx}from"kysely";async function Pz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await hx`
390
+ `.execute(_)}async function $z(_){}var ox={};m(ox,{up:()=>Uz,down:()=>Jz});import{sql as IT}from"kysely";async function Uz(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await IT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function Jz(_){await IT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var rx={};m(rx,{up:()=>Xz,down:()=>Qz});import{sql as ax}from"kysely";async function Xz(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await ax`
290
391
  ALTER TABLE connections
291
392
  ADD CONSTRAINT chk_connections_subtype
292
393
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
293
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await hx`
394
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await ax`
294
395
  UPDATE connections
295
396
  SET subtype = 'agent'
296
397
  WHERE connection_type = 'VIRTUAL'
297
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${p()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),j=T.get(K.organization_id);if(!j)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:j,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${p()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${p()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function $z(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await hx`
398
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(K)=>K.primaryKey()).addColumn("virtual_mcp_id","text",(K)=>K.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(K)=>K.notNull()).addColumn("connection_id","text",(K)=>K.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(K)=>K.notNull()).addColumn("updated_at","text",(K)=>K.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let K of u)T.set(K.organizationId,K.userId);let C=new Map;for(let K of x){let z=`vir_${i()}`;C.set(K.id,z);let $=K.ui?JSON.parse(K.ui):null,U=JSON.stringify({enabled_plugins:K.enabled_plugins?JSON.parse(K.enabled_plugins):null,ui:$,migrated_from_project:K.id,migrated_project_slug:K.slug}),j=T.get(K.organization_id);if(!j)continue;await _.insertInto("connections").values({id:z,organization_id:K.organization_id,created_by:j,updated_by:null,title:K.name,description:K.description,icon:$?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${z}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:U,bindings:null,status:"active",subtype:"project",created_at:K.created_at,updated_at:K.updated_at}).execute()}let N=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let K of N){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("connection_aggregations").values({id:`agg_${i()}`,parent_connection_id:z,child_connection_id:K.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:K.created_at}).onConflict(($)=>$.doNothing()).execute()}let E=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let K of E){let z=C.get(K.project_id);if(!z)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${i()}`,virtual_mcp_id:z,plugin_id:K.plugin_id,connection_id:K.connection_id,settings:K.settings,created_at:K.created_at,updated_at:K.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function Qz(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await ax`
298
399
  ALTER TABLE connections
299
400
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
300
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ax={};m(ax,{up:()=>Jz,down:()=>Xz});import{sql as Uz}from"kysely";async function Jz(_){await Uz`
401
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ex={};m(ex,{up:()=>Wz,down:()=>Zz});import{sql as jz}from"kysely";async function Wz(_){await jz`
301
402
  DELETE FROM connections
302
403
  WHERE connection_type = 'VIRTUAL'
303
404
  AND subtype = 'project'
304
405
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
305
- `.execute(_)}async function Xz(_){}var rx={};m(rx,{up:()=>jz,down:()=>Wz});import{sql as Qz}from"kysely";async function jz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Qz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Wz(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var lx={};m(lx,{up:()=>Zz,down:()=>Lz});import{sql as ex}from"kysely";async function Zz(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ex`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ex`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(ex`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function Lz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var dx={};m(dx,{up:()=>Dz,down:()=>Fz});async function Dz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Fz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var sx={};m(sx,{up:()=>Rz,down:()=>Yz});async function Rz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Yz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var _u={};m(_u,{up:()=>Mz,down:()=>nz});import{sql as ST}from"kysely";function bx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Hz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return bx(T)}catch{return bx(_.connection_url)}if(_.title)return bx(_.title);return _.id}async function Mz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await ST`
406
+ `.execute(_)}async function Zz(_){}var lx={};m(lx,{up:()=>Dz,down:()=>Fz});import{sql as Lz}from"kysely";async function Dz(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Lz`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function Fz(_){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 sx={};m(sx,{up:()=>Rz,down:()=>Yz});import{sql as dx}from"kysely";async function Rz(_){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(dx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(dx`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(dx`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 Yz(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var bx={};m(bx,{up:()=>Hz,down:()=>Mz});async function Hz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function Mz(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var _u={};m(_u,{up:()=>Bz,down:()=>Gz});async function Bz(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Gz(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var uu={};m(uu,{up:()=>yz,down:()=>fz});import{sql as wT}from"kysely";function xu(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function nz(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return xu(T)}catch{return xu(_.connection_url)}if(_.title)return xu(_.title);return _.id}async function yz(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await wT`
306
407
  SELECT id, app_name, connection_url, title FROM connections
307
- `.execute(_);for(let u of x.rows){let T=Hz(u);await ST`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function nz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var xu={};m(xu,{up:()=>Bz,down:()=>Gz});import{sql as d}from"kysely";async function Bz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await d`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await d`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function Gz(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await d`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await d`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await d`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var uu={};m(uu,{up:()=>yz,down:()=>fz});async function yz(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function fz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var mu={};m(mu,{up:()=>Oz,down:()=>Az});import{sql as X_}from"kysely";async function Oz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await X_`
408
+ `.execute(_);for(let u of x.rows){let T=nz(u);await wT`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function fz(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var mu={};m(mu,{up:()=>Oz,down:()=>Az});import{sql as s}from"kysely";async function Oz(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await s`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await s`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 Az(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await s`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await s`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await s`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 Cu={};m(Cu,{up:()=>Sz,down:()=>Iz});async function Sz(_){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 Iz(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Tu={};m(Tu,{up:()=>wz,down:()=>Vz});import{sql as Q_}from"kysely";async function wz(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await Q_`
308
409
  UPDATE threads
309
410
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
310
411
  WHERE agent_ids IS NOT NULL
311
412
  AND agent_ids != '[]'
312
413
  AND agent_ids != ''
313
414
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
314
- `.execute(_),await X_`
415
+ `.execute(_),await Q_`
315
416
  CREATE INDEX idx_threads_virtual_mcp_id
316
417
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
317
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Az(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await X_`
418
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function Vz(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await Q_`
318
419
  UPDATE threads
319
420
  SET agent_ids = CASE
320
421
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
321
422
  THEN jsonb_build_array(virtual_mcp_id)::text
322
423
  ELSE '[]'
323
424
  END
324
- `.execute(_),await X_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Cu={};m(Cu,{up:()=>Sz,down:()=>Iz});async function Sz(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function Iz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Tu={};m(Tu,{up:()=>wz,down:()=>Vz});async function wz(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function Vz(_){await _.schema.dropTable("kv").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function pz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var Ku={};m(Ku,{up:()=>iz,down:()=>tz});async function iz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function tz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Eu={};m(Eu,{up:()=>vz,down:()=>qz});import{sql as D}from"kysely";async function vz(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await D`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await D`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function qz(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var zu={};m(zu,{up:()=>gz,down:()=>cz});import{sql as i}from"kysely";async function gz(_){await i`
425
+ `.execute(_),await Q_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Nu={};m(Nu,{up:()=>kz,down:()=>pz});async function kz(_){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 pz(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Ku={};m(Ku,{up:()=>iz,down:()=>tz});async function iz(_){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 tz(_){await _.schema.dropTable("kv").execute()}var Eu={};m(Eu,{up:()=>vz,down:()=>qz});async function vz(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function qz(_){await _.schema.dropIndex("idx_member_user_org").execute()}var zu={};m(zu,{up:()=>gz,down:()=>cz});async function gz(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function cz(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});import{sql as F}from"kysely";async function hz(_){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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 F`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(F`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(F`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(F`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(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(F`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 oz(_){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 $u={};m($u,{up:()=>az,down:()=>rz});import{sql as t}from"kysely";async function az(_){await t`
325
426
  ALTER TABLE event_subscriptions
326
427
  ALTER COLUMN enabled DROP DEFAULT
327
- `.execute(_),await i`
428
+ `.execute(_),await t`
328
429
  ALTER TABLE event_subscriptions
329
430
  ALTER COLUMN enabled TYPE boolean
330
431
  USING enabled::boolean
331
- `.execute(_),await i`
432
+ `.execute(_),await t`
332
433
  ALTER TABLE event_subscriptions
333
434
  ALTER COLUMN enabled SET DEFAULT true
334
- `.execute(_)}async function cz(_){await i`
435
+ `.execute(_)}async function rz(_){await t`
335
436
  ALTER TABLE event_subscriptions
336
437
  ALTER COLUMN enabled DROP DEFAULT
337
- `.execute(_),await i`
438
+ `.execute(_),await t`
338
439
  ALTER TABLE event_subscriptions
339
440
  ALTER COLUMN enabled TYPE integer
340
441
  USING enabled::integer
341
- `.execute(_),await i`
442
+ `.execute(_),await t`
342
443
  ALTER TABLE event_subscriptions
343
444
  ALTER COLUMN enabled SET DEFAULT 1
344
- `.execute(_)}var Pu={};m(Pu,{up:()=>hz,down:()=>oz});import{sql as IT}from"kysely";async function hz(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(IT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(IT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function oz(_){await _.schema.dropTable("brand_context").execute()}var $u={};m($u,{up:()=>az,down:()=>rz});import{sql as wT}from"kysely";async function az(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(wT`now()`)).execute()}async function rz(_){await _.schema.dropTable("organization_domains").execute()}var Uu={};m(Uu,{up:()=>sz,down:()=>bz});import{sql as VT}from"kysely";var Q_=new Set(["primary","secondary","accent","background","foreground"]),ez={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function lz(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>Q_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(Q_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(Q_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(Q_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function dz(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=ez[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function sz(_){let x=await VT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=lz($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=dz($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await VT`
445
+ `.execute(_)}var Uu={};m(Uu,{up:()=>ez,down:()=>lz});import{sql as VT}from"kysely";async function ez(_){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(VT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(VT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function lz(_){await _.schema.dropTable("brand_context").execute()}var Ju={};m(Ju,{up:()=>dz,down:()=>sz});import{sql as kT}from"kysely";async function dz(_){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(kT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(kT`now()`)).execute()}async function sz(_){await _.schema.dropTable("organization_domains").execute()}var Xu={};m(Xu,{up:()=>u0,down:()=>m0});import{sql as pT}from"kysely";var j_=new Set(["primary","secondary","accent","background","foreground"]),bz={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function _0(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((C)=>j_.has(C))){let C={};for(let[N,E]of Object.entries(u)){if(typeof E!=="string")continue;if(j_.has(N))C[N]=E;else x[N]=E}return{structured:Object.keys(C).length>0?JSON.stringify(C):null,extra:x}}let T={};for(let[C,N]of Object.entries(u)){if(typeof N!=="string")continue;if(j_.has(C.toLowerCase()))T[C.toLowerCase()]=N;else x[C]=N}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let C=T,N=C.label?.toLowerCase?.(),E=C.value;if(!N||!E)continue;if(j_.has(N))u[N]=E;else x[N]=E}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function x0(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let C=T,N=C.name??C.family??void 0,E=C.role?.toLowerCase?.()??"";if(!N)continue;let K=bz[E];if(K&&!x[K])x[K]=N;else u.push(N)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function u0(_){let x=await pT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,C=!1,N=!1,E=u.colors,K=u.fonts,z={};try{z=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let U=_0($);if(E=U.structured,T=!0,Object.keys(U.extra).length>0)z.extraColors=U.extra,N=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))K=x0($),C=!0}catch{}if(T||C||N){let $=N?JSON.stringify(z):u.metadata;await pT`
345
446
  UPDATE brand_context
346
447
  SET
347
448
  colors = ${E},
@@ -349,40 +450,40 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
349
450
  metadata = ${$},
350
451
  updated_at = NOW()
351
452
  WHERE id = ${u.id}
352
- `.execute(_)}}}async function bz(_){}var Ju={};m(Ju,{up:()=>x0,down:()=>u0});import{sql as _0}from"kysely";async function x0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(_0`'{}'::jsonb`)).execute()}async function u0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var Xu={};m(Xu,{up:()=>m0,down:()=>C0});async function m0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function C0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Qu={};m(Qu,{up:()=>T0,down:()=>N0});async function T0(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function N0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var ju={};m(ju,{up:()=>K0,down:()=>E0});async function K0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function E0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Wu={};m(Wu,{up:()=>z0,down:()=>P0});async function z0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function P0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Zu={};m(Zu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function U0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Lu={};m(Lu,{up:()=>X0,down:()=>Q0});import{sql as kT}from"kysely";var J0=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function X0(_){let x=await kT`
453
+ `.execute(_)}}}async function m0(_){}var Qu={};m(Qu,{up:()=>T0,down:()=>N0});import{sql as C0}from"kysely";async function T0(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(C0`'{}'::jsonb`)).execute()}async function N0(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var ju={};m(ju,{up:()=>K0,down:()=>E0});async function K0(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function E0(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var Wu={};m(Wu,{up:()=>z0,down:()=>P0});async function z0(_){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 P0(_){await _.schema.dropTable("sandbox_runner_state").execute()}var Zu={};m(Zu,{up:()=>$0,down:()=>U0});async function $0(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function U0(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Lu={};m(Lu,{up:()=>J0,down:()=>X0});async function J0(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function X0(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var Du={};m(Du,{up:()=>Q0,down:()=>j0});async function Q0(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function j0(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Fu={};m(Fu,{up:()=>Z0,down:()=>L0});import{sql as iT}from"kysely";var W0=["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 Z0(_){let x=await iT`
353
454
  SELECT id, permission FROM "organizationRole"
354
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...J0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await kT`
455
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...W0]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await iT`
355
456
  UPDATE "organizationRole"
356
457
  SET permission = ${K}
357
458
  WHERE id = ${u.id}
358
- `.execute(_)}}async function Q0(_){}var Du={};m(Du,{up:()=>j0,down:()=>W0});async function j0(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function W0(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var Fu={};m(Fu,{up:()=>Z0,down:()=>L0});async function Z0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function L0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Ru={};m(Ru,{up:()=>D0,down:()=>F0});import{sql as s}from"kysely";async function D0(_){await s`
459
+ `.execute(_)}}async function L0(_){}var Ru={};m(Ru,{up:()=>D0,down:()=>F0});async function D0(_){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 F0(_){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 Yu={};m(Yu,{up:()=>R0,down:()=>Y0});async function R0(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function Y0(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Hu={};m(Hu,{up:()=>H0,down:()=>M0});import{sql as b}from"kysely";async function H0(_){await b`
359
460
  UPDATE automations
360
461
  SET virtual_mcp_id = (agent::json ->> 'id')
361
462
  WHERE virtual_mcp_id IS NULL
362
- `.execute(_),await s`
463
+ `.execute(_),await b`
363
464
  ALTER TABLE automations
364
465
  ALTER COLUMN virtual_mcp_id SET NOT NULL
365
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function F0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await s`
466
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function M0(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await b`
366
467
  UPDATE automations
367
468
  SET agent = json_build_object('id', virtual_mcp_id)::text
368
- `.execute(_),await s`
469
+ `.execute(_),await b`
369
470
  ALTER TABLE automations
370
471
  ALTER COLUMN agent SET NOT NULL
371
- `.execute(_),await s`
472
+ `.execute(_),await b`
372
473
  ALTER TABLE automations
373
474
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
374
- `.execute(_)}var Hu={};m(Hu,{up:()=>M0,reshapeSimpleMode:()=>pT,inferAutomationTier:()=>iT,down:()=>n0,__testing:()=>H0});var R0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Y0=["fast","smart","thinking","image","web_research"];function Yu(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return Y0.some((T)=>(T in u))}function pT(_){if(Yu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return R0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function iT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function tT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var H0={isAlreadyReshapedSimpleMode:Yu,isAlreadyReshapedAutomationModels:tT};async function M0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Yu(C))continue;let N=pT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(tT(C))continue;let N=iT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function n0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Mu={};m(Mu,{up:()=>B0,down:()=>G0});import{sql as y}from"kysely";async function B0(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await y`
475
+ `.execute(_)}var Bu={};m(Bu,{up:()=>y0,reshapeSimpleMode:()=>tT,inferAutomationTier:()=>vT,down:()=>f0,__testing:()=>n0});var B0={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},G0=["fast","smart","thinking","image","web_research"];function Mu(_){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 G0.some((T)=>(T in u))}function tT(_){if(Mu(_))return _;let x=_,u=x?.enabled===!0,T=(C)=>C&&C.keyId&&C.modelId?{keyId:C.keyId,modelId:C.modelId,title:C.title}:null;if(!u)return B0;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function vT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function qT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var n0={isAlreadyReshapedSimpleMode:Mu,isAlreadyReshapedAutomationModels:qT};async function y0(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let C=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(Mu(C))continue;let N=tT(C);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(N)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let C;try{C=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{C={}}if(qT(C))continue;let N=vT(C);if(await _.updateTable("automations").set({models:JSON.stringify({tier:N})}).where("id","=",T.id).execute(),C.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${N}"`)}}async function f0(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Gu={};m(Gu,{up:()=>O0,down:()=>A0});import{sql as f}from"kysely";async function O0(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await f`
375
476
  ALTER TABLE automations
376
477
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
377
- `.execute(_),await y`
478
+ `.execute(_),await f`
378
479
  ALTER TABLE automations
379
480
  ADD CONSTRAINT chk_automation_kind
380
481
  CHECK (kind IN ('agent', 'tool_call'))
381
- `.execute(_),await y`
482
+ `.execute(_),await f`
382
483
  ALTER TABLE automations
383
484
  ADD CONSTRAINT chk_automation_agent_fields
384
485
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
385
- `.execute(_),await y`
486
+ `.execute(_),await f`
386
487
  ALTER TABLE automations
387
488
  ADD CONSTRAINT chk_automation_tool_call_fields
388
489
  CHECK (
@@ -393,47 +494,47 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
393
494
  AND tool_input IS NOT NULL
394
495
  )
395
496
  )
396
- `.execute(_)}async function G0(_){await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await y`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await y`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await y`
497
+ `.execute(_)}async function A0(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
397
498
  ALTER TABLE automations
398
499
  ALTER COLUMN virtual_mcp_id SET NOT NULL
399
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>f0,down:()=>O0});import{sql as vT}from"kysely";var y0=new Set(["host","docker","agent-sandbox"]);async function f0(_){let x=await vT`
500
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var nu={};m(nu,{up:()=>I0,down:()=>w0});import{sql as gT}from"kysely";var S0=new Set(["host","docker","agent-sandbox"]);async function I0(_){let x=await gT`
400
501
  SELECT id, metadata FROM "connections"
401
502
  WHERE connection_type = 'VIRTUAL'
402
503
  AND metadata IS NOT NULL
403
504
  AND metadata LIKE '%vmMap%'
404
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let H=X.runnerKind;if(H!==void 0&&!y0.has(H)){N=!0;continue}U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await vT`
505
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.vmMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}let M=X.runnerKind;if(M!==void 0&&!S0.has(M)){N=!0;continue}U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.vmMap=E;let K=JSON.stringify(T);await gT`
405
506
  UPDATE "connections"
406
507
  SET metadata = ${K}
407
508
  WHERE id = ${u.id}
408
- `.execute(_)}}async function O0(_){}var Bu={};m(Bu,{up:()=>A0,down:()=>S0});import{sql as b}from"kysely";async function A0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(b`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(b`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await b`
509
+ `.execute(_)}}async function w0(_){}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as __}from"kysely";async function V0(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(__`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(__`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(__`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 __`
409
510
  CREATE INDEX async_research_jobs_active_idx
410
511
  ON async_research_jobs (status, last_polled_at)
411
512
  WHERE status IN ('pending', 'polling')
412
- `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await b`
513
+ `.execute(_),await _.schema.createIndex("async_research_jobs_interaction_idx").on("async_research_jobs").column("interaction_id").execute(),await __`
413
514
  ALTER TABLE async_research_jobs
414
515
  ADD CONSTRAINT chk_async_research_jobs_status
415
516
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
416
- `.execute(_)}async function S0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Gu={};m(Gu,{up:()=>I0,down:()=>w0});async function I0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function w0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var yu={};m(yu,{up:()=>V0,down:()=>k0});import{sql as t}from"kysely";async function V0(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(t`CURRENT_TIMESTAMP`)).execute(),await t`
517
+ `.execute(_)}async function k0(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var fu={};m(fu,{up:()=>p0,down:()=>i0});async function p0(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function i0(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var Ou={};m(Ou,{up:()=>t0,down:()=>v0});import{sql as v}from"kysely";async function t0(_){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(v`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await v`
417
518
  ALTER TABLE secrets
418
519
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
419
- `.execute(_),await t`
520
+ `.execute(_),await v`
420
521
  ALTER TABLE secrets
421
522
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
422
523
  (scope = 'user' AND user_id IS NOT NULL)
423
524
  OR (scope = 'organization' AND user_id IS NULL)
424
525
  )
425
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await t`
526
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await v`
426
527
  CREATE UNIQUE INDEX idx_secrets_user_name
427
528
  ON secrets (organization_id, user_id, lower(name))
428
529
  WHERE scope = 'user'
429
- `.execute(_),await t`
530
+ `.execute(_),await v`
430
531
  CREATE UNIQUE INDEX idx_secrets_org_name
431
532
  ON secrets (organization_id, lower(name))
432
533
  WHERE scope = 'organization'
433
- `.execute(_)}async function k0(_){await _.schema.dropTable("secrets").execute()}var fu={};m(fu,{up:()=>p0,down:()=>i0});async function p0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function i0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Ou={};m(Ou,{up:()=>v0,down:()=>q0});import{sql as t0}from"kysely";async function v0(_){await t0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function q0(_){}var Au={};m(Au,{up:()=>g0,down:()=>c0});import{sql as j_}from"kysely";async function g0(_){await j_`
534
+ `.execute(_)}async function v0(_){await _.schema.dropTable("secrets").execute()}var Au={};m(Au,{up:()=>q0,down:()=>g0});async function q0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function g0(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as c0}from"kysely";async function h0(_){await c0`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function o0(_){}var Iu={};m(Iu,{up:()=>a0,down:()=>r0});import{sql as W_}from"kysely";async function a0(_){await W_`
434
535
  ALTER TABLE sandbox_runner_state
435
536
  RENAME COLUMN runner_kind TO sandbox_provider_kind
436
- `.execute(_),await j_`
537
+ `.execute(_),await W_`
437
538
  DO $$ BEGIN
438
539
  UPDATE virtualmcps v
439
540
  SET metadata = jsonb_set(
@@ -468,10 +569,10 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
468
569
  EXCEPTION WHEN undefined_table THEN
469
570
  NULL;
470
571
  END; $$
471
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function c0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await j_`
572
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function r0(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await W_`
472
573
  ALTER TABLE sandbox_runner_state
473
574
  RENAME COLUMN sandbox_provider_kind TO runner_kind
474
- `.execute(_),await j_`
575
+ `.execute(_),await W_`
475
576
  DO $$ BEGIN
476
577
  UPDATE virtualmcps v
477
578
  SET metadata = jsonb_set(
@@ -506,7 +607,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
506
607
  EXCEPTION WHEN undefined_table THEN
507
608
  NULL;
508
609
  END; $$
509
- `.execute(_)}var Su={};m(Su,{up:()=>h0,down:()=>o0});import{sql as qT}from"kysely";async function h0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await qT`
610
+ `.execute(_)}var wu={};m(wu,{up:()=>e0,down:()=>l0});import{sql as cT}from"kysely";async function e0(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await cT`
510
611
  DO $$ BEGIN
511
612
  UPDATE virtualmcps v
512
613
  SET metadata = jsonb_set(
@@ -545,7 +646,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
545
646
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
546
647
  NULL;
547
648
  END; $$
548
- `.execute(_)}async function o0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await qT`
649
+ `.execute(_)}async function l0(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await cT`
549
650
  DO $$ BEGIN
550
651
  UPDATE virtualmcps v
551
652
  SET metadata = jsonb_set(
@@ -578,7 +679,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
578
679
  EXCEPTION WHEN undefined_table THEN
579
680
  NULL;
580
681
  END; $$
581
- `.execute(_)}var Iu={};m(Iu,{up:()=>a0,down:()=>r0});import{sql as gT}from"kysely";async function a0(_){await gT`
682
+ `.execute(_)}var Vu={};m(Vu,{up:()=>d0,down:()=>s0});import{sql as hT}from"kysely";async function d0(_){await hT`
582
683
  UPDATE connections c
583
684
  SET metadata = (
584
685
  jsonb_set(
@@ -622,7 +723,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
622
723
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
623
724
  WHERE entry ? 'vmId'
624
725
  );
625
- `.execute(_),await gT`
726
+ `.execute(_),await hT`
626
727
  UPDATE connections c
627
728
  SET metadata = (
628
729
  jsonb_set(
@@ -676,14 +777,14 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
676
777
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
677
778
  WHERE inner_entry ? 'runnerKind'
678
779
  );
679
- `.execute(_)}async function r0(_){}var wu={};m(wu,{up:()=>l0,down:()=>d0});import{sql as e0}from"kysely";async function l0(_){await e0`
780
+ `.execute(_)}async function s0(_){}var ku={};m(ku,{up:()=>_P,down:()=>xP});import{sql as b0}from"kysely";async function _P(_){await b0`
680
781
  DELETE FROM ai_provider_keys
681
782
  WHERE provider_id IN ('claude-code', 'codex')
682
- `.execute(_)}async function d0(_){}var Vu={};m(Vu,{up:()=>s0,down:()=>b0});import{sql as W_}from"kysely";async function s0(_){await W_`
783
+ `.execute(_)}async function xP(_){}var pu={};m(pu,{up:()=>uP,down:()=>mP});import{sql as Z_}from"kysely";async function uP(_){await Z_`
683
784
  UPDATE sandbox_runner_state
684
785
  SET sandbox_provider_kind = 'desktop'
685
786
  WHERE sandbox_provider_kind = 'remote-user'
686
- `.execute(_),await W_`
787
+ `.execute(_),await Z_`
687
788
  UPDATE connections c
688
789
  SET metadata = (
689
790
  jsonb_set(
@@ -726,7 +827,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
726
827
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
727
828
  WHERE kind_key = 'remote-user'
728
829
  );
729
- `.execute(_),await W_`
830
+ `.execute(_),await Z_`
730
831
  UPDATE connections c
731
832
  SET metadata = (
732
833
  jsonb_set(
@@ -773,17 +874,17 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
773
874
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
774
875
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
775
876
  );
776
- `.execute(_),await W_`
877
+ `.execute(_),await Z_`
777
878
  UPDATE threads
778
879
  SET sandbox_provider_kind = 'desktop'
779
880
  WHERE sandbox_provider_kind = 'remote-user'
780
- `.execute(_)}async function b0(_){}var ku={};m(ku,{up:()=>_P,down:()=>xP});import{sql as __}from"kysely";async function _P(_){await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function xP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await __`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await __`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await __`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var pu={};m(pu,{up:()=>uP,down:()=>mP});import{sql as cT}from"kysely";async function uP(_){await cT`
881
+ `.execute(_)}async function mP(_){}var iu={};m(iu,{up:()=>CP,down:()=>TP});import{sql as x_}from"kysely";async function CP(_){await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`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 TP(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await x_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await x_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await x_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var tu={};m(tu,{up:()=>NP,down:()=>KP});import{sql as oT}from"kysely";async function NP(_){await oT`
781
882
  ALTER TABLE organization_domains
782
883
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
783
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function mP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await cT`
884
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function KP(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await oT`
784
885
  ALTER TABLE organization_domains
785
886
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
786
- `.execute(_)}var iu={};m(iu,{up:()=>CP,down:()=>TP});import{sql as Z_}from"kysely";async function CP(_){await Z_`
887
+ `.execute(_)}var vu={};m(vu,{up:()=>EP,down:()=>zP});import{sql as L_}from"kysely";async function EP(_){await L_`
787
888
  UPDATE sandbox_runner_state
788
889
  SET sandbox_provider_kind = CASE sandbox_provider_kind
789
890
  WHEN 'docker' THEN 'local-docker'
@@ -793,7 +894,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
793
894
  ELSE sandbox_provider_kind
794
895
  END
795
896
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
796
- `.execute(_),await Z_`
897
+ `.execute(_),await L_`
797
898
  UPDATE connections c
798
899
  SET metadata = (
799
900
  (c.metadata::jsonb - 'vmMap')
@@ -802,7 +903,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
802
903
  WHERE c.connection_type = 'VIRTUAL'
803
904
  AND c.metadata IS NOT NULL
804
905
  AND c.metadata::jsonb ? 'vmMap'
805
- `.execute(_),await Z_`
906
+ `.execute(_),await L_`
806
907
  UPDATE connections c
807
908
  SET metadata = (
808
909
  jsonb_set(
@@ -863,7 +964,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
863
964
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
864
965
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
865
966
  );
866
- `.execute(_),await Z_`
967
+ `.execute(_),await L_`
867
968
  UPDATE connections c
868
969
  SET metadata = REPLACE(
869
970
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -872,30 +973,30 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
872
973
  WHERE c.connection_type = 'VIRTUAL'
873
974
  AND c.metadata IS NOT NULL
874
975
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
875
- `.execute(_)}async function TP(_){}var tu={};m(tu,{up:()=>KP,down:()=>EP});import{sql as hT}from"kysely";var NP=["GLOBAL_SEARCH"];async function KP(_){let x=await hT`
976
+ `.execute(_)}async function zP(_){}var qu={};m(qu,{up:()=>$P,down:()=>UP});import{sql as aT}from"kysely";var PP=["GLOBAL_SEARCH"];async function $P(_){let x=await aT`
876
977
  SELECT id, permission FROM "organizationRole"
877
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...NP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await hT`
978
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let C=T.self;if(!Array.isArray(C))continue;if(C.length===1&&C[0]==="*")continue;let N=C,E=Array.from(new Set([...N,...PP]));if(E.length===N.length)continue;T.self=E;let K=JSON.stringify(T);await aT`
878
979
  UPDATE "organizationRole"
879
980
  SET permission = ${K}
880
981
  WHERE id = ${u.id}
881
- `.execute(_)}}async function EP(_){}var qu={};m(qu,{up:()=>zP,down:()=>PP});import{sql as vu}from"kysely";async function zP(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(vu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(vu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await vu`
982
+ `.execute(_)}}async function UP(_){}var cu={};m(cu,{up:()=>JP,down:()=>XP});import{sql as gu}from"kysely";async function JP(_){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(gu`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(gu`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await gu`
882
983
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
883
984
  ON org_file_configs (organization_id, lower(name))
884
- `.execute(_)}async function PP(_){await _.schema.dropTable("org_file_configs").execute()}var gu={};m(gu,{up:()=>$P,down:()=>UP});import{sql as f}from"kysely";async function $P(_){await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await f`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await f`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await f`
985
+ `.execute(_)}async function XP(_){await _.schema.dropTable("org_file_configs").execute()}var hu={};m(hu,{up:()=>QP,down:()=>jP});import{sql as O}from"kysely";async function QP(_){await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await O`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await O`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await O`
885
986
  ALTER TABLE automations
886
987
  ALTER COLUMN virtual_mcp_id SET NOT NULL
887
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function UP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await f`
988
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function jP(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await O`
888
989
  ALTER TABLE automations
889
990
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
890
- `.execute(_),await f`
991
+ `.execute(_),await O`
891
992
  ALTER TABLE automations
892
993
  ADD CONSTRAINT chk_automation_kind
893
994
  CHECK (kind IN ('agent', 'tool_call'))
894
- `.execute(_),await f`
995
+ `.execute(_),await O`
895
996
  ALTER TABLE automations
896
997
  ADD CONSTRAINT chk_automation_agent_fields
897
998
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
898
- `.execute(_),await f`
999
+ `.execute(_),await O`
899
1000
  ALTER TABLE automations
900
1001
  ADD CONSTRAINT chk_automation_tool_call_fields
901
1002
  CHECK (
@@ -906,91 +1007,91 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
906
1007
  AND tool_input IS NOT NULL
907
1008
  )
908
1009
  )
909
- `.execute(_)}var cu={};m(cu,{up:()=>JP,down:()=>XP});async function JP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function XP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ou={};m(ou,{up:()=>QP,down:()=>jP});import{sql as hu}from"kysely";var L_="local-docker";async function QP(_){await hu`delete from sandbox_runner_state where sandbox_provider_kind = ${L_}`.execute(_);let x=await hu`
1010
+ `.execute(_)}var ou={};m(ou,{up:()=>WP,down:()=>ZP});async function WP(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function ZP(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var ru={};m(ru,{up:()=>LP,down:()=>DP});import{sql as au}from"kysely";var D_="local-docker";async function LP(_){await au`delete from sandbox_runner_state where sandbox_provider_kind = ${D_}`.execute(_);let x=await au`
910
1011
  SELECT id, metadata FROM "connections"
911
1012
  WHERE connection_type = 'VIRTUAL'
912
1013
  AND metadata IS NOT NULL
913
- AND metadata LIKE ${"%"+L_+"%"}
914
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(L_ in X){N=!0;let H={...X};if(delete H[L_],Object.keys(H).length>0)U[j]=H}else U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await hu`
1014
+ AND metadata LIKE ${"%"+D_+"%"}
1015
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let C=T.sandboxMap;if(!C||typeof C!=="object")continue;let N=!1,E={};for(let[z,$]of Object.entries(C)){if(!$||typeof $!=="object"){N=!0;continue}let U={};for(let[j,X]of Object.entries($)){if(!X||typeof X!=="object"){N=!0;continue}if(D_ in X){N=!0;let M={...X};if(delete M[D_],Object.keys(M).length>0)U[j]=M}else U[j]=X}if(Object.keys(U).length>0)E[z]=U;else N=!0}if(!N)continue;T.sandboxMap=E;let K=JSON.stringify(T);await au`
915
1016
  UPDATE "connections"
916
1017
  SET metadata = ${K}
917
1018
  WHERE id = ${u.id}
918
- `.execute(_)}}async function jP(_){}var au={};m(au,{up:()=>WP,down:()=>ZP});import{sql as D_}from"kysely";async function WP(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await D_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await D_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await D_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await D_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function ZP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var ru={};m(ru,{up:()=>LP,down:()=>DP});async function LP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function DP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var eu={};m(eu,{up:()=>FP,down:()=>RP});async function FP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function RP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var lu={};m(lu,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function HP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var du={};m(du,{up:()=>MP,down:()=>nP});async function MP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function nP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var su={};m(su,{up:()=>BP,down:()=>GP});async function BP(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function GP(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var _m={};m(_m,{up:()=>fP,down:()=>OP});import{sql as B}from"kysely";var F="cluster",R="agent-sandbox";function v(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function bu(_,x,u){if(!v(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function F_(_){if(!v(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==F&&_.sandboxProviderKind!==R&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!v(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function yP(_,x,u){if(!v(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!v(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!v($)){K[z]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(T=!0,!(u in $))U[u]=bu(X,x,u);else if(!F_($[u])&&F_(X))U[u]=bu(X,x,u);continue}let H=bu(X,x,u);if(H!==X)T=!0;if(j===u&&j in U&&F_(U[j])&&!F_(H))continue;U[j]=H}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function oT(_,x,u){let T=await B`
1019
+ `.execute(_)}}async function DP(_){}var eu={};m(eu,{up:()=>FP,down:()=>RP});import{sql as F_}from"kysely";async function FP(_){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 F_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await F_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await F_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await F_`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 RP(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var lu={};m(lu,{up:()=>YP,down:()=>HP});async function YP(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function HP(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var du={};m(du,{up:()=>MP,down:()=>BP});async function MP(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function BP(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var su={};m(su,{up:()=>GP,down:()=>nP});async function GP(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function nP(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var bu={};m(bu,{up:()=>yP,down:()=>fP});async function yP(_){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 fP(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var _m={};m(_m,{up:()=>OP,down:()=>AP});async function OP(_){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 AP(_){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 um={};m(um,{up:()=>IP,down:()=>wP});import{sql as n}from"kysely";var R="cluster",Y="agent-sandbox";function q(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function xm(_,x,u){if(!q(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function R_(_){if(!q(_))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!==R&&_.sandboxProviderKind!==Y&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!q(_.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 SP(_,x,u){if(!q(_))return null;let T=!1,C={};for(let[N,E]of Object.entries(_)){if(!q(E)){C[N]=E;continue}let K={};for(let[z,$]of Object.entries(E)){if(!q($)){K[z]=$;continue}let U={};for(let[j,X]of Object.entries($)){if(j===x){if(T=!0,!(u in $))U[u]=xm(X,x,u);else if(!R_($[u])&&R_(X))U[u]=xm(X,x,u);continue}let M=xm(X,x,u);if(M!==X)T=!0;if(j===u&&j in U&&R_(U[j])&&!R_(M))continue;U[j]=M}K[z]=U}C[N]=K}return{sandboxMap:C,changed:T}}async function rT(_,x,u){let T=await n`
919
1020
  SELECT id, metadata FROM connections
920
1021
  WHERE connection_type = 'VIRTUAL'
921
1022
  AND metadata IS NOT NULL
922
1023
  AND metadata LIKE ${"%"+x+"%"}
923
- `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=yP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await B`
1024
+ `.execute(_);for(let C of T.rows){if(!C.metadata)continue;let N;try{N=JSON.parse(C.metadata)}catch{continue}let E=SP(N.sandboxMap,x,u);if(!E?.changed)continue;N.sandboxMap=E.sandboxMap,await n`
924
1025
  UPDATE connections
925
1026
  SET metadata = ${JSON.stringify(N)}
926
1027
  WHERE id = ${C.id}
927
- `.execute(_)}}async function fP(_){await B`
1028
+ `.execute(_)}}async function IP(_){await n`
928
1029
  UPDATE threads
929
- SET sandbox_provider_kind = ${R}
930
- WHERE sandbox_provider_kind = ${F}
931
- `.execute(_),await B`
1030
+ SET sandbox_provider_kind = ${Y}
1031
+ WHERE sandbox_provider_kind = ${R}
1032
+ `.execute(_),await n`
932
1033
  UPDATE sandbox_runner_state canonical
933
1034
  SET handle = legacy.handle,
934
1035
  state = legacy.state,
935
1036
  updated_at = legacy.updated_at
936
1037
  FROM sandbox_runner_state legacy
937
- WHERE canonical.sandbox_provider_kind = ${R}
938
- AND legacy.sandbox_provider_kind = ${F}
1038
+ WHERE canonical.sandbox_provider_kind = ${Y}
1039
+ AND legacy.sandbox_provider_kind = ${R}
939
1040
  AND canonical.user_id = legacy.user_id
940
1041
  AND canonical.project_ref = legacy.project_ref
941
1042
  AND legacy.updated_at > canonical.updated_at
942
- `.execute(_),await B`
1043
+ `.execute(_),await n`
943
1044
  DELETE FROM sandbox_runner_state legacy
944
- WHERE legacy.sandbox_provider_kind = ${F}
1045
+ WHERE legacy.sandbox_provider_kind = ${R}
945
1046
  AND EXISTS (
946
1047
  SELECT 1
947
1048
  FROM sandbox_runner_state canonical
948
1049
  WHERE canonical.user_id = legacy.user_id
949
1050
  AND canonical.project_ref = legacy.project_ref
950
- AND canonical.sandbox_provider_kind = ${R}
1051
+ AND canonical.sandbox_provider_kind = ${Y}
951
1052
  )
952
- `.execute(_),await B`
1053
+ `.execute(_),await n`
953
1054
  UPDATE sandbox_runner_state
954
- SET sandbox_provider_kind = ${R}
955
- WHERE sandbox_provider_kind = ${F}
956
- `.execute(_),await oT(_,F,R)}async function OP(_){await B`
957
- UPDATE threads
958
- SET sandbox_provider_kind = ${F}
1055
+ SET sandbox_provider_kind = ${Y}
959
1056
  WHERE sandbox_provider_kind = ${R}
960
- `.execute(_),await B`
1057
+ `.execute(_),await rT(_,R,Y)}async function wP(_){await n`
1058
+ UPDATE threads
1059
+ SET sandbox_provider_kind = ${R}
1060
+ WHERE sandbox_provider_kind = ${Y}
1061
+ `.execute(_),await n`
961
1062
  UPDATE sandbox_runner_state legacy
962
1063
  SET handle = canonical.handle,
963
1064
  state = canonical.state,
964
1065
  updated_at = canonical.updated_at
965
1066
  FROM sandbox_runner_state canonical
966
- WHERE legacy.sandbox_provider_kind = ${F}
967
- AND canonical.sandbox_provider_kind = ${R}
1067
+ WHERE legacy.sandbox_provider_kind = ${R}
1068
+ AND canonical.sandbox_provider_kind = ${Y}
968
1069
  AND legacy.user_id = canonical.user_id
969
1070
  AND legacy.project_ref = canonical.project_ref
970
1071
  AND canonical.updated_at > legacy.updated_at
971
- `.execute(_),await B`
1072
+ `.execute(_),await n`
972
1073
  DELETE FROM sandbox_runner_state canonical
973
- WHERE canonical.sandbox_provider_kind = ${R}
1074
+ WHERE canonical.sandbox_provider_kind = ${Y}
974
1075
  AND EXISTS (
975
1076
  SELECT 1
976
1077
  FROM sandbox_runner_state legacy
977
1078
  WHERE legacy.user_id = canonical.user_id
978
1079
  AND legacy.project_ref = canonical.project_ref
979
- AND legacy.sandbox_provider_kind = ${F}
1080
+ AND legacy.sandbox_provider_kind = ${R}
980
1081
  )
981
- `.execute(_),await B`
1082
+ `.execute(_),await n`
982
1083
  UPDATE sandbox_runner_state
983
- SET sandbox_provider_kind = ${F}
984
- WHERE sandbox_provider_kind = ${R}
985
- `.execute(_),await oT(_,R,F)}var xm={};m(xm,{up:()=>AP,down:()=>SP});import{sql as A}from"kysely";async function AP(_){await A`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(A`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(A`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(A`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await A`
1084
+ SET sandbox_provider_kind = ${R}
1085
+ WHERE sandbox_provider_kind = ${Y}
1086
+ `.execute(_),await rT(_,Y,R)}var mm={};m(mm,{up:()=>VP,down:()=>kP});import{sql as S}from"kysely";async function VP(_){await S`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(S`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(S`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").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`)).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 S`
986
1087
  CREATE INDEX idx_org_fs_entry_parent
987
1088
  ON org_fs_entry (organization_id, volume, parent)
988
1089
  WHERE deleted_at IS NULL
989
- `.execute(_),await A`
1090
+ `.execute(_),await S`
990
1091
  CREATE INDEX idx_org_fs_entry_usage
991
1092
  ON org_fs_entry (organization_id, volume, size)
992
1093
  WHERE kind = 'file' AND deleted_at IS NULL
993
- `.execute(_)}async function SP(_){await _.schema.dropTable("org_fs_entry").execute(),await A`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var um={};m(um,{up:()=>IP,down:()=>wP});async function IP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function wP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var mm={};m(mm,{up:()=>VP,down:()=>kP});import{sql as aT}from"kysely";async function VP(_){await aT`
1094
+ `.execute(_)}async function kP(_){await _.schema.dropTable("org_fs_entry").execute(),await S`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var Cm={};m(Cm,{up:()=>pP,down:()=>iP});async function pP(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function iP(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var Tm={};m(Tm,{up:()=>tP,down:()=>vP});import{sql as eT}from"kysely";async function tP(_){await eT`
994
1095
  INSERT INTO "organization" (id, name, slug, "createdAt")
995
1096
  SELECT
996
1097
  'org_orgfs_public_skills',
@@ -1004,13 +1105,13 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1004
1105
  END,
1005
1106
  now()
1006
1107
  ON CONFLICT (id) DO NOTHING
1007
- `.execute(_)}async function kP(_){await aT`
1108
+ `.execute(_)}async function vP(_){await eT`
1008
1109
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1009
- `.execute(_)}var Cm={};m(Cm,{up:()=>pP,down:()=>iP});async function pP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function iP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Tm={};m(Tm,{up:()=>tP,down:()=>vP});import{sql as rT}from"kysely";async function tP(_){await rT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function vP(_){await rT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Nm={};m(Nm,{up:()=>gP,down:()=>cP});import{sql as qP}from"kysely";async function gP(_){await qP`
1110
+ `.execute(_)}var Nm={};m(Nm,{up:()=>qP,down:()=>gP});async function qP(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function gP(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Km={};m(Km,{up:()=>cP,down:()=>hP});import{sql as lT}from"kysely";async function cP(_){await lT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function hP(_){await lT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var Em={};m(Em,{up:()=>aP,down:()=>rP});import{sql as oP}from"kysely";async function aP(_){await oP`
1010
1111
  UPDATE downstream_tokens
1011
1112
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1012
1113
  WHERE "expiresAt" IS NULL
1013
- `.execute(_)}async function cP(_){}var Km={};m(Km,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function oP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Em={};m(Em,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function rP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var zm={};m(zm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function lP(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Pm={};m(Pm,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function sP(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var $m={};m($m,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function _$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Um={};m(Um,{up:()=>x$,down:()=>u$});import{sql as eT}from"kysely";async function x$(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function u$(_){await _.schema.dropTable("org_sites").execute()}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function C$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});import{sql as Z}from"kysely";async function T$(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await Z`
1114
+ `.execute(_)}async function rP(_){}var zm={};m(zm,{up:()=>eP,down:()=>lP});async function eP(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function lP(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var Pm={};m(Pm,{up:()=>dP,down:()=>sP});async function dP(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function sP(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var $m={};m($m,{up:()=>bP,down:()=>_$});async function bP(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function _$(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Um={};m(Um,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function u$(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Jm={};m(Jm,{up:()=>m$,down:()=>C$});async function m$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function C$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Xm={};m(Xm,{up:()=>T$,down:()=>N$});import{sql as dT}from"kysely";async function T$(_){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(dT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function N$(_){await _.schema.dropTable("org_sites").execute()}var Qm={};m(Qm,{up:()=>K$,down:()=>E$});async function K$(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function E$(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});import{sql as Z}from"kysely";async function z$(_){await _.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await Z`
1014
1115
  UPDATE organization_domains
1015
1116
  SET
1016
1117
  id = gen_random_uuid()::text,
@@ -1019,18 +1120,18 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1019
1120
  verification_method = 'email',
1020
1121
  verified_at = created_at
1021
1122
  WHERE id IS NULL
1022
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function N$(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Z`
1123
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await Z`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function P$(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await Z`
1023
1124
  UPDATE organization_domains
1024
1125
  SET auto_join_enabled = (join_mode = 'auto')
1025
- `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Qm={};m(Qm,{up:()=>K$,down:()=>E$});import{sql as R_}from"kysely";async function K$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(R_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(R_`now()`)).execute(),await R_`
1126
+ `.execute(_),await Z`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await Z`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Wm={};m(Wm,{up:()=>$$,down:()=>U$});import{sql as Y_}from"kysely";async function $$(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(Y_`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(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).execute(),await Y_`
1026
1127
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1027
1128
  ON organization_join_requests (organization_id, user_id)
1028
1129
  WHERE status = 'pending'
1029
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function E$(_){await _.schema.dropTable("organization_join_requests").execute()}var jm={};m(jm,{up:()=>z$,down:()=>P$});async function z$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function P$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Wm={};m(Wm,{up:()=>$$,down:()=>U$});async function $$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function U$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Dm={};m(Dm,{up:()=>Q$,splitWebResearchTier:()=>Lm,down:()=>j$,__testing:()=>X$});function J$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Zm(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function Lm(_){if(!_||Zm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(J$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var X$={splitWebResearchTier:Lm,isAlreadySplit:Zm};async function Q$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Zm(T))continue;let C=Lm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function j$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Fm={};m(Fm,{up:()=>W$,down:()=>Z$});import{sql as x_}from"kysely";async function W$(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await x_`
1130
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function U$(_){await _.schema.dropTable("organization_join_requests").execute()}var Zm={};m(Zm,{up:()=>J$,down:()=>X$});async function J$(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function X$(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Lm={};m(Lm,{up:()=>Q$,down:()=>j$});async function Q$(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function j$(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Rm={};m(Rm,{up:()=>L$,splitWebResearchTier:()=>Fm,down:()=>D$,__testing:()=>Z$});function W$(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function Dm(_){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 Fm(_){if(!_||Dm(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...C}=x,N=null,E=null;if(u)if(W$(u.modelId))E=u;else N=u;return{..._,tiers:{...C,web_search:N,deep_research:E}}}var Z$={splitWebResearchTier:Fm,isAlreadySplit:Dm};async function L$(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(Dm(T))continue;let C=Fm(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",u.organizationId).execute()}}async function D$(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Ym={};m(Ym,{up:()=>F$,down:()=>R$});import{sql as u_}from"kysely";async function F$(_){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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await u_`
1030
1131
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1031
1132
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1032
1133
  WHERE revoked_at IS NULL
1033
- `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(x_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Z$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Rm={};m(Rm,{up:()=>L$,down:()=>D$});async function L$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function D$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Ym={};m(Ym,{up:()=>F$,down:()=>R$});import{sql as V}from"kysely";async function F$(_){await V`
1134
+ `.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(u_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(u_`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 R$(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var Hm={};m(Hm,{up:()=>Y$,down:()=>H$});async function Y$(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function H$(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var Mm={};m(Mm,{up:()=>M$,down:()=>B$});import{sql as k}from"kysely";async function M$(_){await k`
1034
1135
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1035
1136
  RETURNS jsonb AS $fn$
1036
1137
  BEGIN
@@ -1039,7 +1140,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1039
1140
  RETURN NULL;
1040
1141
  END;
1041
1142
  $fn$ LANGUAGE plpgsql IMMUTABLE;
1042
- `.execute(_),await V`
1143
+ `.execute(_),await k`
1043
1144
  DELETE FROM connection_aggregations a
1044
1145
  USING (
1045
1146
  SELECT
@@ -1063,7 +1164,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1063
1164
  WHERE jsonb_typeof(try_parse_jsonb(child.metadata) -> 'repoScope') = 'object'
1064
1165
  ) ranked
1065
1166
  WHERE a.id = ranked.id AND ranked.rn > 1;
1066
- `.execute(_),await V`
1167
+ `.execute(_),await k`
1067
1168
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1068
1169
  RETURNS trigger AS $fn$
1069
1170
  BEGIN
@@ -1084,12 +1185,12 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1084
1185
  RETURN NEW;
1085
1186
  END;
1086
1187
  $fn$ LANGUAGE plpgsql;
1087
- `.execute(_),await V`
1188
+ `.execute(_),await k`
1088
1189
  CREATE TRIGGER trg_repo_github_child_single_parent
1089
1190
  BEFORE INSERT ON connection_aggregations
1090
1191
  FOR EACH ROW
1091
1192
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1092
- `.execute(_)}async function R$(_){await V`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await V`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await V`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Mm={};m(Mm,{up:()=>Y$,down:()=>H$});import{sql as Hm}from"kysely";async function Y$(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Hm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Hm`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(Hm`false`)).execute()}async function H$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var nm={};m(nm,{up:()=>M$,down:()=>n$});async function M$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function n$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Bm={};m(Bm,{up:()=>B$,down:()=>G$});async function B$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function G$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Gm={};m(Gm,{up:()=>y$,down:()=>f$});async function y$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function f$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var ym={};m(ym,{up:()=>A$,down:()=>S$});import{sql as O$}from"kysely";async function A$(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(O$`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function S$(_){await _.schema.dropTable("task_board_item_threads").execute()}var fm={};m(fm,{up:()=>I$,down:()=>w$});async function I$(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function w$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Om={};m(Om,{up:()=>k$,down:()=>p$});import{sql as V$}from"kysely";async function k$(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V$`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function p$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Am={};m(Am,{up:()=>t$,down:()=>v$});import{sql as i$}from"kysely";async function t$(_){await i$`
1193
+ `.execute(_)}async function B$(_){await k`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await k`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await k`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Gm={};m(Gm,{up:()=>G$,down:()=>n$});import{sql as Bm}from"kysely";async function G$(_){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(Bm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Bm`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(Bm`false`)).execute()}async function n$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var nm={};m(nm,{up:()=>y$,down:()=>f$});async function y$(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function f$(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var ym={};m(ym,{up:()=>O$,down:()=>A$});async function O$(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function A$(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var fm={};m(fm,{up:()=>S$,down:()=>I$});async function S$(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function I$(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var Om={};m(Om,{up:()=>V$,down:()=>k$});import{sql as w$}from"kysely";async function V$(_){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(w$`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 k$(_){await _.schema.dropTable("task_board_item_threads").execute()}var Am={};m(Am,{up:()=>p$,down:()=>i$});async function p$(_){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 i$(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Sm={};m(Sm,{up:()=>v$,down:()=>q$});import{sql as t$}from"kysely";async function v$(_){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(t$`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 q$(_){await _.schema.dropTable("task_board_item_prs").execute()}var Im={};m(Im,{up:()=>c$,down:()=>h$});import{sql as g$}from"kysely";async function c$(_){await g$`
1093
1194
  DELETE FROM member
1094
1195
  WHERE id IN (
1095
1196
  SELECT id FROM (
@@ -1108,38 +1209,38 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1108
1209
  ) ranked
1109
1210
  WHERE ranked.rn > 1
1110
1211
  )
1111
- `.execute(_)}async function v$(_){}var Sm={};m(Sm,{up:()=>q$,down:()=>g$});async function q$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function g$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Im={};m(Im,{up:()=>c$,down:()=>h$});async function c$(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function h$(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var wm={};m(wm,{up:()=>a$,down:()=>r$});import{sql as o$}from"kysely";async function a$(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(o$`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function r$(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var Vm={};m(Vm,{up:()=>l$,down:()=>d$});import{sql as e$}from"kysely";async function l$(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(e$`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function d$(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var km={};m(km,{up:()=>s$,down:()=>b$});import{sql as Y_}from"kysely";async function s$(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Y_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",Y_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",Y_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function b$(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var pm={};m(pm,{up:()=>_U,down:()=>xU});import{sql as H_}from"kysely";async function _U(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await H_`
1212
+ `.execute(_)}async function h$(_){}var wm={};m(wm,{up:()=>o$,down:()=>a$});async function o$(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function a$(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Vm={};m(Vm,{up:()=>r$,down:()=>e$});async function r$(_){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 e$(_){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 km={};m(km,{up:()=>d$,down:()=>s$});import{sql as l$}from"kysely";async function d$(_){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(l$`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 s$(_){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 pm={};m(pm,{up:()=>_U,down:()=>xU});import{sql as b$}from"kysely";async function _U(_){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(b$`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 xU(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var im={};m(im,{up:()=>uU,down:()=>mU});import{sql as H_}from"kysely";async function uU(_){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(H_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(H_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",H_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",H_`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 mU(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var tm={};m(tm,{up:()=>CU,down:()=>TU});import{sql as M_}from"kysely";async function CU(_){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(M_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(M_`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(M_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await M_`
1112
1213
  insert into organization_billing (organization_id, legacy)
1113
1214
  select id, true from organization
1114
1215
  on conflict (organization_id) do nothing
1115
- `.execute(_)}async function xU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var im={};m(im,{up:()=>uU,down:()=>mU});import{sql as lT}from"kysely";async function uU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(lT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(lT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function mU(_){await _.schema.dropTable("seat_change_log").execute()}var tm={};m(tm,{up:()=>CU,down:()=>TU});async function CU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function TU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});import{sql as dT}from"kysely";async function NU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await dT`
1216
+ `.execute(_)}async function TU(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var vm={};m(vm,{up:()=>NU,down:()=>KU});import{sql as sT}from"kysely";async function NU(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(sT`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(sT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function KU(_){await _.schema.dropTable("seat_change_log").execute()}var qm={};m(qm,{up:()=>EU,down:()=>zU});async function EU(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function zU(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as bT}from"kysely";async function PU(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await bT`
1116
1217
  create unique index organization_billing_stripe_subscription_id_uq
1117
1218
  on organization_billing (stripe_subscription_id)
1118
1219
  where stripe_subscription_id is not null
1119
- `.execute(_)}async function KU(_){await dT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var qm={};m(qm,{up:()=>EU,down:()=>zU});async function EU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function zU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var gm={};m(gm,{up:()=>PU,down:()=>$U});import{sql as sT}from"kysely";async function PU(_){await sT`
1220
+ `.execute(_)}async function $U(_){await bT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var cm={};m(cm,{up:()=>UU,down:()=>JU});async function UU(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function JU(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var hm={};m(hm,{up:()=>XU,down:()=>QU});import{sql as _N}from"kysely";async function XU(_){await _N`
1120
1221
  create index idx_org_billing_benefits_pending
1121
1222
  on organization_billing (updated_at)
1122
1223
  where benefits_reference_id is not null
1123
- `.execute(_)}async function $U(_){await sT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var cm={};m(cm,{up:()=>UU,down:()=>JU});import{sql as bT}from"kysely";async function UU(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(bT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(bT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function JU(_){await _.schema.dropTable("user_model_preferences").execute()}var hm={};m(hm,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function QU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var om={};m(om,{up:()=>jU,down:()=>WU});async function jU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function WU(_){}var am={};m(am,{up:()=>ZU,down:()=>LU});import{sql as _N}from"kysely";async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await _N`
1224
+ `.execute(_)}async function QU(_){await _N`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var om={};m(om,{up:()=>jU,down:()=>WU});import{sql as xN}from"kysely";async function jU(_){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(xN`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(xN`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 WU(_){await _.schema.dropTable("user_model_preferences").execute()}var am={};m(am,{up:()=>ZU,down:()=>LU});async function ZU(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function LU(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var rm={};m(rm,{up:()=>DU,down:()=>FU});async function DU(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function FU(_){}var em={};m(em,{up:()=>RU,down:()=>YU});import{sql as uN}from"kysely";async function RU(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await uN`
1124
1225
  UPDATE organization_settings
1125
1226
  SET flags = jsonb_build_object('reports_only', reports_only)
1126
1227
  WHERE reports_only IS NOT NULL
1127
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function LU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await _N`
1228
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function YU(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await uN`
1128
1229
  UPDATE organization_settings
1129
1230
  SET reports_only = (flags ->> 'reports_only')::boolean
1130
1231
  WHERE flags ? 'reports_only'
1131
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var rm={};m(rm,{up:()=>FU,down:()=>RU});import{sql as DU}from"kysely";async function FU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await DU`
1232
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var lm={};m(lm,{up:()=>MU,down:()=>BU});import{sql as HU}from"kysely";async function MU(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await HU`
1132
1233
  update task_board_items
1133
1234
  set sort_order = -extract(epoch from created_at)
1134
- `.execute(_)}async function RU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var em={};m(em,{up:()=>YU,down:()=>HU,ACTIONS:()=>xN});import{sql as M_}from"kysely";var xN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function YU(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(M_`now()`)).addCheckConstraint("chk_task_board_activity_action",M_`action IN (${M_.join(xN.map((x)=>M_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function HU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var dm={};m(dm,{up:()=>MU,down:()=>nU,ACTIONS:()=>lm});import{sql as u_}from"kysely";var lm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function MU(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(u_`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await uN(_,lm)}async function nU(_){await uN(_,lm.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function uN(_,x){await u_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await u_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${u_.join(x.map((u)=>u_.lit(u)))}))`.execute(_)}var bm={};m(bm,{up:()=>GU,down:()=>yU});import{sql as mN}from"kysely";function sm(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function BU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return sm(T)}catch{return sm(_.connection_url)}if(_.title)return sm(_.title);return _.id}async function GU(_){let x=await mN`
1235
+ `.execute(_)}async function BU(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var dm={};m(dm,{up:()=>GU,down:()=>nU,ACTIONS:()=>mN});import{sql as B_}from"kysely";var mN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function GU(_){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(B_`now()`)).addCheckConstraint("chk_task_board_activity_action",B_`action IN (${B_.join(mN.map((x)=>B_.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 nU(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var bm={};m(bm,{up:()=>yU,down:()=>fU,ACTIONS:()=>sm});import{sql as m_}from"kysely";var sm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function yU(_){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(m_`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 CN(_,sm)}async function fU(_){await CN(_,sm.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 CN(_,x){await m_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await m_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var xC={};m(xC,{up:()=>AU,down:()=>SU});import{sql as TN}from"kysely";function _C(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function OU(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return _C(T)}catch{return _C(_.connection_url)}if(_.title)return _C(_.title);return _.id}async function AU(_){let x=await TN`
1135
1236
  SELECT id, app_name, connection_url, title, slug
1136
1237
  FROM connections
1137
1238
  WHERE connection_type != 'VIRTUAL'
1138
- `.execute(_),u=0;for(let T of x.rows){let C=BU(T);if(C===T.slug)continue;await mN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function yU(){}var _C={};m(_C,{up:()=>OU,down:()=>AU});import{sql as fU}from"kysely";async function OU(_){await fU`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(_)}async function AU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var uC={};m(uC,{up:()=>IU,down:()=>wU,ACTIONS:()=>xC});import{sql as n_}from"kysely";var xC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],SU=new Set(["review_requested","review_approved","review_changes_requested"]);async function IU(_){await CN(_,xC)}async function wU(_){await CN(_,xC.filter((x)=>!SU.has(x)))}async function CN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var mC={};m(mC,{up:()=>kU,down:()=>pU});import{sql as VU}from"kysely";async function kU(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(VU`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function pU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var TC={};m(TC,{up:()=>tU,down:()=>vU,ACTIONS:()=>CC});import{sql as B_}from"kysely";var CC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],iU=new Set(["merge_conflict_resolution"]);async function tU(_){await TN(_,CC)}async function vU(_){await TN(_,CC.filter((x)=>!iU.has(x)))}async function TN(_,x){await B_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await B_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${B_.join(x.map((u)=>B_.lit(u)))}))`.execute(_)}var NC={};m(NC,{up:()=>qU,down:()=>gU});import{sql as m_}from"kysely";async function qU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await m_`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function gU(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await m_`
1239
+ `.execute(_),u=0;for(let T of x.rows){let C=OU(T);if(C===T.slug)continue;await TN`UPDATE connections SET slug = ${C} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function SU(){}var uC={};m(uC,{up:()=>wU,down:()=>VU});import{sql as IU}from"kysely";async function wU(_){await IU`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 VU(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var CC={};m(CC,{up:()=>pU,down:()=>iU,ACTIONS:()=>mC});import{sql as G_}from"kysely";var mC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],kU=new Set(["review_requested","review_approved","review_changes_requested"]);async function pU(_){await NN(_,mC)}async function iU(_){await NN(_,mC.filter((x)=>!kU.has(x)))}async function NN(_,x){await G_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G_.join(x.map((u)=>G_.lit(u)))}))`.execute(_)}var TC={};m(TC,{up:()=>vU,down:()=>qU});import{sql as tU}from"kysely";async function vU(_){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(tU`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 qU(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var KC={};m(KC,{up:()=>cU,down:()=>hU,ACTIONS:()=>NC});import{sql as n_}from"kysely";var NC=["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"],gU=new Set(["merge_conflict_resolution"]);async function cU(_){await KN(_,NC)}async function hU(_){await KN(_,NC.filter((x)=>!gU.has(x)))}async function KN(_,x){await n_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await n_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${n_.join(x.map((u)=>n_.lit(u)))}))`.execute(_)}var EC={};m(EC,{up:()=>oU,down:()=>aU});import{sql as C_}from"kysely";async function oU(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await C_`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 aU(_){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 C_`
1139
1240
  create index idx_org_billing_benefits_pending
1140
1241
  on organization_billing (updated_at)
1141
1242
  where benefits_reference_id is not null
1142
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(m_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(m_`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(m_`now()`)).execute()}var KC={};m(KC,{up:()=>cU,down:()=>hU});import{sql as G_}from"kysely";async function cU(_){await G_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await G_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function hU(_){await G_`
1243
+ `.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(C_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(C_`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(C_`now()`)).execute()}var zC={};m(zC,{up:()=>rU,down:()=>eU});import{sql as y_}from"kysely";async function rU(_){await y_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await y_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function eU(_){await y_`
1143
1244
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1144
1245
  RETURNS trigger AS $fn$
1145
1246
  BEGIN
@@ -1160,40 +1261,40 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1160
1261
  RETURN NEW;
1161
1262
  END;
1162
1263
  $fn$ LANGUAGE plpgsql;
1163
- `.execute(_),await G_`
1264
+ `.execute(_),await y_`
1164
1265
  CREATE TRIGGER trg_repo_github_child_single_parent
1165
1266
  BEFORE INSERT ON connection_aggregations
1166
1267
  FOR EACH ROW
1167
1268
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1168
- `.execute(_)}var EC={};m(EC,{up:()=>oU,down:()=>aU});import{sql as NN}from"kysely";async function oU(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(NN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(NN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function aU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var zC={};m(zC,{up:()=>rU,down:()=>eU});import{sql as KN}from"kysely";async function rU(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KN`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(KN`now()`)).execute()}async function eU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var $C={};m($C,{up:()=>lU,down:()=>dU});import{sql as PC}from"kysely";async function lU(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(PC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await PC`
1269
+ `.execute(_)}var PC={};m(PC,{up:()=>lU,down:()=>dU});import{sql as EN}from"kysely";async function lU(_){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(EN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(EN`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function dU(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var $C={};m($C,{up:()=>sU,down:()=>bU});import{sql as zN}from"kysely";async function sU(_){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(zN`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(zN`now()`)).execute()}async function bU(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var JC={};m(JC,{up:()=>_J,down:()=>xJ});import{sql as UC}from"kysely";async function _J(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(UC`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await UC`
1169
1270
  create index idx_task_quota_claims_org_period_live
1170
1271
  on task_quota_claims (organization_id, period_key)
1171
1272
  where state <> 'released'
1172
- `.execute(_)}async function dU(_){await PC`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var UC={};m(UC,{up:()=>sU,down:()=>bU});async function sU(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function bU(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var JC={};m(JC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function xJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var XC={};m(XC,{up:()=>uJ,down:()=>mJ});import{sql as EN}from"kysely";async function uJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(EN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(EN`monthly_task_executions > 0`)).execute()}async function mJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var QC={};m(QC,{up:()=>TJ,down:()=>NJ});import{sql as CJ}from"kysely";async function TJ(_){await CJ`
1273
+ `.execute(_)}async function xJ(_){await UC`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 XC={};m(XC,{up:()=>uJ,down:()=>mJ});async function uJ(_){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 mJ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var QC={};m(QC,{up:()=>CJ,down:()=>TJ});async function CJ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function TJ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var jC={};m(jC,{up:()=>NJ,down:()=>KJ});import{sql as PN}from"kysely";async function NJ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(PN`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(PN`monthly_task_executions > 0`)).execute()}async function KJ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var WC={};m(WC,{up:()=>zJ,down:()=>PJ});import{sql as EJ}from"kysely";async function zJ(_){await EJ`
1173
1274
  CREATE INDEX idx_task_board_items_pending_review
1174
1275
  ON task_board_items (updated_at, id)
1175
1276
  WHERE status = 'in_review'
1176
1277
  AND assignee_id = 'super-agent'
1177
1278
  AND dismissed_at IS NULL
1178
- `.execute(_)}async function NJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var jC={};m(jC,{up:()=>KJ,down:()=>EJ});import{sql as zN}from"kysely";async function KJ(_){await zN`
1279
+ `.execute(_)}async function PJ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var ZC={};m(ZC,{up:()=>$J,down:()=>UJ});import{sql as $N}from"kysely";async function $J(_){await $N`
1179
1280
  ALTER TABLE task_board_items
1180
1281
  ADD COLUMN last_swept_at timestamptz
1181
- `.execute(_)}async function EJ(_){await zN`
1282
+ `.execute(_)}async function UJ(_){await $N`
1182
1283
  ALTER TABLE task_board_items
1183
1284
  DROP COLUMN last_swept_at
1184
- `.execute(_)}var WC={};m(WC,{up:()=>zJ,down:()=>PJ});import{sql as y_}from"kysely";async function zJ(_){await y_`
1285
+ `.execute(_)}var LC={};m(LC,{up:()=>JJ,down:()=>XJ});import{sql as f_}from"kysely";async function JJ(_){await f_`
1185
1286
  ALTER TABLE task_board_items
1186
1287
  ADD COLUMN retry_at timestamptz,
1187
1288
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1188
- `.execute(_),await y_`
1289
+ `.execute(_),await f_`
1189
1290
  CREATE INDEX idx_task_board_items_retry_due
1190
1291
  ON task_board_items (retry_at)
1191
1292
  WHERE retry_at IS NOT NULL
1192
- `.execute(_)}async function PJ(_){await y_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await y_`
1293
+ `.execute(_)}async function XJ(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await f_`
1193
1294
  ALTER TABLE task_board_items
1194
1295
  DROP COLUMN retry_at,
1195
1296
  DROP COLUMN retry_attempts
1196
- `.execute(_)}var LC={};m(LC,{up:()=>$J,down:()=>UJ});import{sql as ZC}from"kysely";async function $J(_){await ZC`
1297
+ `.execute(_)}var FC={};m(FC,{up:()=>QJ,down:()=>jJ});import{sql as DC}from"kysely";async function QJ(_){await DC`
1197
1298
  CREATE TABLE org_repo_sync (
1198
1299
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1199
1300
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1211,11 +1312,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1211
1312
  updated_at timestamptz NOT NULL DEFAULT now(),
1212
1313
  UNIQUE (organization_id, volume)
1213
1314
  )
1214
- `.execute(_),await ZC`
1315
+ `.execute(_),await DC`
1215
1316
  CREATE INDEX idx_org_repo_sync_enabled
1216
1317
  ON org_repo_sync (organization_id)
1217
1318
  WHERE enabled
1218
- `.execute(_)}async function UJ(_){await ZC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var FC={};m(FC,{up:()=>XJ,down:()=>QJ,ACTIONS:()=>DC});import{sql as f_}from"kysely";var DC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],JJ=new Set(["merge_failed"]);async function XJ(_){await PN(_,DC)}async function QJ(_){await PN(_,DC.filter((x)=>!JJ.has(x)))}async function PN(_,x){await f_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await f_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${f_.join(x.map((u)=>f_.lit(u)))}))`.execute(_)}var RC={};m(RC,{up:()=>jJ,down:()=>WJ});async function jJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function WJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var YC={};m(YC,{up:()=>ZJ,down:()=>LJ});import{sql as q}from"kysely";async function ZJ(_){await q`
1319
+ `.execute(_)}async function jJ(_){await DC`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var YC={};m(YC,{up:()=>ZJ,down:()=>LJ,ACTIONS:()=>RC});import{sql as O_}from"kysely";var RC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],WJ=new Set(["merge_failed"]);async function ZJ(_){await UN(_,RC)}async function LJ(_){await UN(_,RC.filter((x)=>!WJ.has(x)))}async function UN(_,x){await O_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await O_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var HC={};m(HC,{up:()=>DJ,down:()=>FJ});async function DJ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function FJ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var MC={};m(MC,{up:()=>RJ,down:()=>YJ});import{sql as g}from"kysely";async function RJ(_){await g`
1219
1320
  CREATE TABLE org_jira_integrations (
1220
1321
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1221
1322
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1235,7 +1336,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1235
1336
  created_at timestamptz NOT NULL DEFAULT now(),
1236
1337
  updated_at timestamptz NOT NULL DEFAULT now()
1237
1338
  )
1238
- `.execute(_),await q`
1339
+ `.execute(_),await g`
1239
1340
  CREATE TABLE task_board_item_jira_links (
1240
1341
  item_id text PRIMARY KEY REFERENCES task_board_items(id) ON DELETE CASCADE,
1241
1342
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1246,7 +1347,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1246
1347
  created_at timestamptz NOT NULL DEFAULT now(),
1247
1348
  UNIQUE (organization_id, jira_issue_id)
1248
1349
  )
1249
- `.execute(_),await q`
1350
+ `.execute(_),await g`
1250
1351
  CREATE TABLE task_board_comment_jira_links (
1251
1352
  comment_id text PRIMARY KEY REFERENCES task_board_comments(id) ON DELETE CASCADE,
1252
1353
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1254,7 +1355,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1254
1355
  created_at timestamptz NOT NULL DEFAULT now(),
1255
1356
  UNIQUE (organization_id, jira_comment_id)
1256
1357
  )
1257
- `.execute(_)}async function LJ(_){await q`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await q`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await q`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var HC={};m(HC,{up:()=>FJ,down:()=>RJ});import{sql as DJ}from"kysely";async function FJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await DJ`
1358
+ `.execute(_)}async function YJ(_){await g`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await g`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await g`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>BJ});import{sql as HJ}from"kysely";async function MJ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await HJ`
1258
1359
  update task_board_items as t
1259
1360
  set key_seq = numbered.seq
1260
1361
  from (
@@ -1267,25 +1368,25 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1267
1368
  from task_board_items
1268
1369
  ) as numbered
1269
1370
  where t.id = numbered.id
1270
- `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function RJ(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var MC={};m(MC,{up:()=>YJ,down:()=>HJ});import{sql as $N}from"kysely";async function YJ(_){await $N`
1371
+ `.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 BJ(_){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 GC={};m(GC,{up:()=>GJ,down:()=>nJ});import{sql as JN}from"kysely";async function GJ(_){await JN`
1271
1372
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1272
1373
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1273
1374
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1274
- `.execute(_)}async function HJ(_){await $N`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var BC={};m(BC,{up:()=>MJ,down:()=>nJ});import{sql as nC}from"kysely";async function MJ(_){await nC`
1375
+ `.execute(_)}async function nJ(_){await JN`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var yC={};m(yC,{up:()=>yJ,down:()=>fJ});import{sql as nC}from"kysely";async function yJ(_){await nC`
1275
1376
  ALTER TABLE thread_message_parts
1276
1377
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1277
1378
  `.execute(_),await nC`
1278
1379
  ALTER TABLE thread_message_parts
1279
1380
  ALTER COLUMN persisted_at SET DEFAULT now()
1280
- `.execute(_)}async function nJ(_){await nC`
1381
+ `.execute(_)}async function fJ(_){await nC`
1281
1382
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1282
- `.execute(_)}var GC={};m(GC,{up:()=>BJ,down:()=>GJ});async function BJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function GJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var yC={};m(yC,{up:()=>fJ,down:()=>OJ});import{sql as yJ}from"kysely";async function fJ(_){await yJ`
1383
+ `.execute(_)}var fC={};m(fC,{up:()=>OJ,down:()=>AJ});async function OJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function AJ(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var OC={};m(OC,{up:()=>IJ,down:()=>wJ});import{sql as SJ}from"kysely";async function IJ(_){await SJ`
1283
1384
  CREATE INDEX idx_task_board_items_done_sweep
1284
1385
  ON task_board_items (updated_at)
1285
1386
  WHERE status = 'done' AND dismissed_at IS NULL
1286
- `.execute(_)}async function OJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var fC={};m(fC,{up:()=>AJ,down:()=>SJ,TYPES:()=>UN});import{sql as S}from"kysely";var UN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function AJ(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(S`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(S`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(S`now()`)).addCheckConstraint("notifications_type_check",S`type IN (${S.join(UN.map((x)=>S.lit(x)))})`).execute(),await S`CREATE INDEX notifications_user_unread ON notifications
1287
- (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await S`CREATE INDEX notifications_digest ON notifications
1288
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function SJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var OC={};m(OC,{up:()=>IJ,down:()=>wJ});import{sql as JN}from"kysely";async function IJ(_){await JN`
1387
+ `.execute(_)}async function wJ(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var AC={};m(AC,{up:()=>VJ,down:()=>kJ,TYPES:()=>XN});import{sql as I}from"kysely";var XN=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function VJ(_){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(I`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(I`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(I`now()`)).addCheckConstraint("notifications_type_check",I`type IN (${I.join(XN.map((x)=>I.lit(x)))})`).execute(),await I`CREATE INDEX notifications_user_unread ON notifications
1388
+ (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await I`CREATE INDEX notifications_digest ON notifications
1389
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function kJ(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var SC={};m(SC,{up:()=>pJ,down:()=>iJ});import{sql as QN}from"kysely";async function pJ(_){await QN`
1289
1390
  UPDATE org_jira_integrations
1290
1391
  SET status_mapping = (
1291
1392
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1300,7 +1401,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1300
1401
  SELECT 1 FROM jsonb_each(status_mapping)
1301
1402
  WHERE jsonb_typeof(value) = 'array'
1302
1403
  )
1303
- `.execute(_)}async function wJ(_){await JN`
1404
+ `.execute(_)}async function iJ(_){await QN`
1304
1405
  UPDATE org_jira_integrations
1305
1406
  SET status_mapping = (
1306
1407
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1315,7 +1416,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1315
1416
  SELECT 1 FROM jsonb_each(status_mapping)
1316
1417
  WHERE jsonb_typeof(value) = 'array'
1317
1418
  )
1318
- `.execute(_)}var SC={};m(SC,{up:()=>kJ,down:()=>pJ,TYPES:()=>AC});import{sql as O_}from"kysely";var AC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],VJ=new Set(["mentioned"]);async function kJ(_){await XN(_,AC)}async function pJ(_){await XN(_,AC.filter((x)=>!VJ.has(x)))}async function XN(_,x){await O_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await O_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${O_.join(x.map((u)=>O_.lit(u)))}))`.execute(_)}var wC={};m(wC,{up:()=>vJ,down:()=>qJ,ACTIONS:()=>IC});import{sql as I}from"kysely";var iJ=["bug","feature","chore","spike","security"],IC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],tJ=new Set(["type_changed"]);async function vJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await I`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${I.join(iJ.map((x)=>I.lit(x)))}))`.execute(_),await QN(_,IC)}async function qJ(_){await QN(_,IC.filter((x)=>!tJ.has(x))),await I`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function QN(_,x){await I`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await I`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${I.join(x.map((u)=>I.lit(u)))}))`.execute(_)}var VC={};m(VC,{up:()=>gJ,down:()=>cJ});import{sql as Q}from"kysely";var WN=["bug","feature","chore","spike","security"],jN="chore";async function gJ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(jN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(jN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_)}async function cJ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(WN.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var kC={};m(kC,{up:()=>hJ,down:()=>oJ});import{sql as g}from"kysely";async function hJ(_){await g`
1419
+ `.execute(_)}var wC={};m(wC,{up:()=>vJ,down:()=>qJ,TYPES:()=>IC});import{sql as A_}from"kysely";var IC=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],tJ=new Set(["mentioned"]);async function vJ(_){await jN(_,IC)}async function qJ(_){await jN(_,IC.filter((x)=>!tJ.has(x)))}async function jN(_,x){await A_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await A_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var kC={};m(kC,{up:()=>hJ,down:()=>oJ,ACTIONS:()=>VC});import{sql as w}from"kysely";var gJ=["bug","feature","chore","spike","security"],VC=["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"],cJ=new Set(["type_changed"]);async function hJ(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await w`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${w.join(gJ.map((x)=>w.lit(x)))}))`.execute(_),await WN(_,VC)}async function oJ(_){await WN(_,VC.filter((x)=>!cJ.has(x))),await w`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function WN(_,x){await w`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w.join(x.map((u)=>w.lit(u)))}))`.execute(_)}var pC={};m(pC,{up:()=>aJ,down:()=>rJ});import{sql as Q}from"kysely";var LN=["bug","feature","chore","spike","security"],ZN="chore";async function aJ(_){await Q`UPDATE task_board_items SET type = ${Q.lit(ZN)} WHERE type IS NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${Q.lit(ZN)}`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${Q.join(LN.map((x)=>Q.lit(x)))}))`.execute(_)}async function rJ(_){await Q`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await Q`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${Q.join(LN.map((x)=>Q.lit(x)))}))`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await Q`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var iC={};m(iC,{up:()=>eJ,down:()=>lJ});import{sql as c}from"kysely";async function eJ(_){await c`
1319
1420
  CREATE TABLE task_board_sprints (
1320
1421
  id text PRIMARY KEY,
1321
1422
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1330,44 +1431,44 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1330
1431
  CHECK (state IN ('active', 'future', 'closed')),
1331
1432
  UNIQUE (organization_id, jira_sprint_id)
1332
1433
  )
1333
- `.execute(_),await g`
1434
+ `.execute(_),await c`
1334
1435
  CREATE INDEX idx_task_board_sprints_org
1335
1436
  ON task_board_sprints (organization_id, starts_at)
1336
- `.execute(_),await g`
1437
+ `.execute(_),await c`
1337
1438
  ALTER TABLE task_board_items
1338
1439
  ADD COLUMN sprint_id text REFERENCES task_board_sprints(id) ON DELETE SET NULL
1339
- `.execute(_),await g`
1440
+ `.execute(_),await c`
1340
1441
  CREATE INDEX idx_task_board_items_sprint
1341
1442
  ON task_board_items (organization_id, sprint_id)
1342
1443
  WHERE sprint_id IS NOT NULL
1343
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function oJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await g`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await g`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var pC={};m(pC,{up:()=>rJ,down:()=>eJ});import{sql as aJ}from"kysely";async function rJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function eJ(_){await aJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var iC={};m(iC,{up:()=>dJ,down:()=>sJ});import{sql as lJ}from"kysely";async function dJ(_){await lJ`
1444
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function lJ(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await c`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await c`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var tC={};m(tC,{up:()=>sJ,down:()=>bJ});import{sql as dJ}from"kysely";async function sJ(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function bJ(_){await dJ`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var vC={};m(vC,{up:()=>xX,down:()=>uX});import{sql as _X}from"kysely";async function xX(_){await _X`
1344
1445
  UPDATE org_jira_integrations
1345
1446
  SET last_synced_at = NULL,
1346
1447
  last_sync_error = NULL
1347
1448
  WHERE last_synced_at IS NOT NULL
1348
- `.execute(_)}async function sJ(){}var tC={};m(tC,{up:()=>_X,down:()=>xX});import{sql as bJ}from"kysely";async function _X(_){await bJ`
1449
+ `.execute(_)}async function uX(){}var qC={};m(qC,{up:()=>CX,down:()=>TX});import{sql as mX}from"kysely";async function CX(_){await mX`
1349
1450
  UPDATE org_jira_integrations
1350
1451
  SET last_synced_at = NULL,
1351
1452
  last_sync_error = NULL
1352
1453
  WHERE last_synced_at IS NOT NULL
1353
- `.execute(_)}async function xX(){}var qC={};m(qC,{up:()=>uX,down:()=>mX});import{sql as vC}from"kysely";async function uX(_){await vC`
1454
+ `.execute(_)}async function TX(){}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as gC}from"kysely";async function NX(_){await gC`
1354
1455
  ALTER TABLE org_jira_integrations
1355
1456
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1356
- `.execute(_),await vC`
1457
+ `.execute(_),await gC`
1357
1458
  UPDATE org_jira_integrations
1358
1459
  SET rescan_pending = true
1359
1460
  WHERE last_synced_at IS NULL
1360
- `.execute(_)}async function mX(_){await vC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var gC={};m(gC,{up:()=>CX,down:()=>TX});async function CX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function TX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var cC={};m(cC,{up:()=>NX,down:()=>KX});import{sql as ZN}from"kysely";async function NX(_){await ZN`
1461
+ `.execute(_)}async function KX(_){await gC`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var hC={};m(hC,{up:()=>EX,down:()=>zX});async function EX(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function zX(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var oC={};m(oC,{up:()=>PX,down:()=>$X});import{sql as DN}from"kysely";async function PX(_){await DN`
1361
1462
  ALTER TABLE invitation
1362
1463
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1363
- `.execute(_)}async function KX(_){await ZN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var oC={};m(oC,{up:()=>EX,down:()=>zX});import{sql as hC}from"kysely";async function EX(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(hC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(hC`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await hC`
1464
+ `.execute(_)}async function $X(_){await DN`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var rC={};m(rC,{up:()=>UX,down:()=>JX});import{sql as aC}from"kysely";async function UX(_){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(aC`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aC`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 aC`
1364
1465
  INSERT INTO task_board_column_automations
1365
1466
  (id, organization_id, column_key, prompt)
1366
1467
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1367
1468
  FROM org_jira_integrations
1368
1469
  WHERE auto_delegate = true
1369
1470
  ON CONFLICT DO NOTHING
1370
- `.execute(_)}async function zX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var aC={};m(aC,{up:()=>PX,down:()=>$X});import{sql as C_}from"kysely";async function PX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await C_`
1471
+ `.execute(_)}async function JX(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var eC={};m(eC,{up:()=>XX,down:()=>QX});import{sql as T_}from"kysely";async function XX(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await T_`
1371
1472
  UPDATE task_board_items i
1372
1473
  SET review_cycle_started_at = (
1373
1474
  SELECT max(a.occurred_at)
@@ -1377,35 +1478,35 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1377
1478
  AND a.data ->> 'to' = 'in_review'
1378
1479
  )
1379
1480
  WHERE i.status = 'in_review'
1380
- `.execute(_),await C_`
1481
+ `.execute(_),await T_`
1381
1482
  CREATE INDEX idx_task_board_items_review_cycle
1382
1483
  ON task_board_items (updated_at, id)
1383
1484
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1384
1485
  AND assignee_id = 'super-agent'
1385
1486
  AND dismissed_at IS NULL
1386
- `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function $X(_){await C_`
1487
+ `.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function QX(_){await T_`
1387
1488
  CREATE INDEX idx_task_board_items_pending_review
1388
1489
  ON task_board_items (updated_at, id)
1389
1490
  WHERE status = 'in_review'
1390
1491
  AND assignee_id = 'super-agent'
1391
1492
  AND dismissed_at IS NULL
1392
- `.execute(_),await C_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var rC={};m(rC,{up:()=>UX,down:()=>JX});import{sql as LN}from"kysely";async function UX(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(LN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(LN`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function JX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var lC={};m(lC,{up:()=>QX,down:()=>jX,ACTIONS:()=>eC});import{sql as A_}from"kysely";var eC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],XX=new Set(["review_verdict_requested"]);async function QX(_){await DN(_,eC)}async function jX(_){await DN(_,eC.filter((x)=>!XX.has(x)))}async function DN(_,x){await A_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await A_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${A_.join(x.map((u)=>A_.lit(u)))}))`.execute(_)}var dC={};m(dC,{up:()=>WX,down:()=>ZX});import{sql as S_}from"kysely";async function WX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await S_`
1493
+ `.execute(_),await T_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var lC={};m(lC,{up:()=>jX,down:()=>WX});import{sql as FN}from"kysely";async function jX(_){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(FN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(FN`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 WX(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var sC={};m(sC,{up:()=>LX,down:()=>DX,ACTIONS:()=>dC});import{sql as S_}from"kysely";var dC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],ZX=new Set(["review_verdict_requested"]);async function LX(_){await RN(_,dC)}async function DX(_){await RN(_,dC.filter((x)=>!ZX.has(x)))}async function RN(_,x){await S_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await S_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${S_.join(x.map((u)=>S_.lit(u)))}))`.execute(_)}var bC={};m(bC,{up:()=>FX,down:()=>RX});import{sql as I_}from"kysely";async function FX(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await I_`
1393
1494
  ALTER TABLE task_board_items
1394
1495
  ADD CONSTRAINT chk_task_board_items_column_org
1395
1496
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1396
- `.execute(_),await S_`
1497
+ `.execute(_),await I_`
1397
1498
  ALTER TABLE task_board_items
1398
1499
  ADD CONSTRAINT task_board_items_board_column_fkey
1399
1500
  FOREIGN KEY (board_column_org, status)
1400
1501
  REFERENCES task_board_columns (organization_id, key)
1401
1502
  ON DELETE RESTRICT
1402
- `.execute(_)}async function ZX(_){await S_`
1503
+ `.execute(_)}async function RX(_){await I_`
1403
1504
  ALTER TABLE task_board_items
1404
1505
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1405
- `.execute(_),await S_`
1506
+ `.execute(_),await I_`
1406
1507
  ALTER TABLE task_board_items
1407
1508
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1408
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var sC={};m(sC,{up:()=>LX,down:()=>DX});async function LX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function DX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var _T={};m(_T,{up:()=>RX,down:()=>YX,ACTIONS:()=>bC});import{sql as I_}from"kysely";var bC=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],FX=new Set(["sprint_changed"]);async function RX(_){await FN(_,bC)}async function YX(_){await FN(_,bC.filter((x)=>!FX.has(x)))}async function FN(_,x){await I_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await I_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${I_.join(x.map((u)=>I_.lit(u)))}))`.execute(_)}var xT={};m(xT,{up:()=>MX,down:()=>nX});import{sql as HX}from"kysely";async function MX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(HX`'[]'::jsonb`)).execute()}async function nX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX});import{sql as RN}from"kysely";async function BX(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(RN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function GX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var mT={};m(mT,{up:()=>fX,down:()=>OX});import{sql as yX}from"kysely";async function fX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await yX`
1509
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var _T={};m(_T,{up:()=>YX,down:()=>HX});async function YX(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function HX(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var uT={};m(uT,{up:()=>BX,down:()=>GX,ACTIONS:()=>xT});import{sql as w_}from"kysely";var xT=["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"],MX=new Set(["sprint_changed"]);async function BX(_){await YN(_,xT)}async function GX(_){await YN(_,xT.filter((x)=>!MX.has(x)))}async function YN(_,x){await w_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await w_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${w_.join(x.map((u)=>w_.lit(u)))}))`.execute(_)}var mT={};m(mT,{up:()=>yX,down:()=>fX});import{sql as nX}from"kysely";async function yX(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(nX`'[]'::jsonb`)).execute()}async function fX(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var CT={};m(CT,{up:()=>OX,down:()=>AX});import{sql as HN}from"kysely";async function OX(_){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(HN`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HN`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function AX(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var TT={};m(TT,{up:()=>IX,down:()=>wX});import{sql as SX}from"kysely";async function IX(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await SX`
1409
1510
  UPDATE task_board_items i
1410
1511
  SET external_url = t.url,
1411
1512
  description = CASE
@@ -1424,11 +1525,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1424
1525
  ON g.organization_id = l.organization_id
1425
1526
  ) t
1426
1527
  WHERE t.item_id = i.id
1427
- `.execute(_)}async function OX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var CT={};m(CT,{up:()=>SX,down:()=>IX,ACTIONS:()=>YN});import{sql as J}from"kysely";var AX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],YN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function SX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1528
+ `.execute(_)}async function wX(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var NT={};m(NT,{up:()=>kX,down:()=>pX,ACTIONS:()=>MN});import{sql as J}from"kysely";var VX=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],MN=["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 kX(_){await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await J`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await J`DROP TABLE IF EXISTS task_board_columns`.execute(_),await J`
1428
1529
  UPDATE task_board_items
1429
1530
  SET status = 'triage'
1430
- WHERE status NOT IN (${J.join(AX.map((x)=>J.lit(x)))})
1431
- `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await wX(_,YN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1531
+ WHERE status NOT IN (${J.join(VX.map((x)=>J.lit(x)))})
1532
+ `.execute(_),await J`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await J`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await J`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await iX(_,MN),await J`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await J`
1432
1533
  ALTER TABLE task_board_item_jira_links
1433
1534
  DROP COLUMN IF EXISTS jira_updated_at,
1434
1535
  DROP COLUMN IF EXISTS jira_status,
@@ -1440,11 +1541,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1440
1541
  DROP COLUMN IF EXISTS last_synced_at,
1441
1542
  DROP COLUMN IF EXISTS last_sync_error,
1442
1543
  DROP COLUMN IF EXISTS rescan_pending
1443
- `.execute(_)}async function IX(){}async function wX(_,x){await J`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await J`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${J.join(x.map((u)=>J.lit(u)))}))`.execute(_)}var TT={};m(TT,{up:()=>VX,down:()=>kX});import{sql as c}from"kysely";async function VX(_){await c`
1544
+ `.execute(_)}async function pX(){}async function iX(_,x){await J`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await J`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${J.join(x.map((u)=>J.lit(u)))}))`.execute(_)}var KT={};m(KT,{up:()=>tX,down:()=>vX});import{sql as h}from"kysely";async function tX(_){await h`
1444
1545
  ALTER TABLE task_board_items
1445
1546
  ADD COLUMN IF NOT EXISTS source text
1446
1547
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
1447
- `.execute(_),await c`
1548
+ `.execute(_),await h`
1448
1549
  CREATE TABLE IF NOT EXISTS org_jira_column_automations (
1449
1550
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1450
1551
  jira_status text NOT NULL,
@@ -1453,7 +1554,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1453
1554
  updated_at timestamptz NOT NULL DEFAULT now(),
1454
1555
  PRIMARY KEY (organization_id, jira_status)
1455
1556
  )
1456
- `.execute(_),await c`
1557
+ `.execute(_),await h`
1457
1558
  CREATE TABLE IF NOT EXISTS jira_trigger_claims (
1458
1559
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
1459
1560
  jira_issue_id text NOT NULL,
@@ -1461,24 +1562,24 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1461
1562
  created_at timestamptz NOT NULL DEFAULT now(),
1462
1563
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
1463
1564
  )
1464
- `.execute(_)}async function kX(_){await c`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await c`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await c`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var NT={};m(NT,{up:()=>pX,down:()=>iX});import{sql as T_}from"kysely";async function pX(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(T_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(T_`now()`)).execute(),await T_`
1565
+ `.execute(_)}async function vX(_){await h`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await h`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await h`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var ET={};m(ET,{up:()=>qX,down:()=>gX});import{sql as N_}from"kysely";async function qX(_){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(N_`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(N_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(N_`now()`)).execute(),await N_`
1465
1566
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
1466
1567
  ON organization_notices (organization_id)
1467
1568
  WHERE resolved_at IS NULL
1468
- `.execute(_),await T_`
1569
+ `.execute(_),await N_`
1469
1570
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
1470
1571
  ON organization_notices (organization_id, created_at DESC)
1471
- `.execute(_)}async function iX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var ET={};m(ET,{up:()=>eX,down:()=>lX});import{sql as KT}from"kysely";import{sql as hW}from"kysely";var HN=50000000,tX=1e5;function vX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>tX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var qX=/\u0000/g,gX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,cX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,hX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,oX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function aX(_){return _.replace(qX,"").replace(gX,"\uFFFD").replace(cX,"$1***@").replace(hX,"$1***").replace(oX,"[base64 data omitted]")}function rX(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function MN(_){if(vX(_,HN)>HN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return aX(u);if(rX(u))return{type:"text",text:"[image omitted]"};return u})}var nN=20;async function eX(_){let x=await KT`
1572
+ `.execute(_)}async function gX(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var PT={};m(PT,{up:()=>bX,down:()=>_Q});import{sql as zT}from"kysely";import{sql as lW}from"kysely";var BN=50000000,cX=1e5;function hX(_,x){let u=0,T=0,C=[_];while(C.length>0){if(u>x||++T>cX)return 1/0;let N=C.pop();if(typeof N==="string")u+=N.length;else if(Array.isArray(N))for(let E of N)C.push(E);else if(N!==null&&typeof N==="object")for(let E of Object.values(N))C.push(E)}return u}var oX=/\u0000/g,aX=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,rX=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,eX=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,lX=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function dX(_){return _.replace(oX,"").replace(aX,"\uFFFD").replace(rX,"$1***@").replace(eX,"$1***").replace(lX,"[base64 data omitted]")}function sX(_){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 GN(_){if(hX(_,BN)>BN)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return dX(u);if(sX(u))return{type:"text",text:"[image omitted]"};return u})}var nN=20;async function bX(_){let x=await zT`
1472
1573
  SELECT id FROM thread_message_parts
1473
1574
  WHERE pg_column_size(payload) > 8192
1474
1575
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
1475
- `.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await KT`
1576
+ `.execute(_);for(let u=0;u<x.rows.length;u+=nN){let T=x.rows.slice(u,u+nN).map((N)=>N.id),C=await zT`
1476
1577
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${T})
1477
- `.execute(_);for(let N of C.rows){let E=MN(N.payload);if(E===JSON.stringify(N.payload))continue;await KT`
1578
+ `.execute(_);for(let N of C.rows){let E=GN(N.payload);if(E===JSON.stringify(N.payload))continue;await zT`
1478
1579
  UPDATE thread_message_parts
1479
1580
  SET payload = ${E}::jsonb
1480
1581
  WHERE id = ${N.id}
1481
- `.execute(_)}}}async function lX(){}var zT={};m(zT,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function sX(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var PT={};m(PT,{up:()=>bX,down:()=>_Q});import{sql as P}from"kysely";async function bX(_){await P`
1582
+ `.execute(_)}}}async function _Q(){}var $T={};m($T,{up:()=>xQ,down:()=>uQ});async function xQ(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function uQ(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var UT={};m(UT,{up:()=>mQ,down:()=>CQ});import{sql as P}from"kysely";async function mQ(_){await P`
1482
1583
  CREATE TABLE git_provider_accounts (
1483
1584
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1484
1585
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1722,11 +1823,11 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1722
1823
  AND r.organization_id = s.organization_id
1723
1824
  AND r.host = 'github.com'
1724
1825
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
1725
- `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function _Q(_){await P`
1826
+ `.execute(_),await P`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function CQ(_){await P`
1726
1827
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
1727
1828
  `.execute(_),await P`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await P`
1728
1829
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
1729
- `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var $T={};m($T,{up:()=>uQ,down:()=>mQ});import{sql as Y}from"kysely";var xQ=Y`
1830
+ `.execute(_),await P`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await P`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await P`DROP TABLE IF EXISTS repositories`.execute(_),await P`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await P`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await P`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var JT={};m(JT,{up:()=>NQ,down:()=>KQ});import{sql as H}from"kysely";var TQ=H`
1730
1831
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
1731
1832
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
1732
1833
  BEGIN
@@ -1735,13 +1836,13 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1735
1836
  RETURN NULL;
1736
1837
  END;
1737
1838
  $$
1738
- `;async function uQ(_){await xQ.execute(_),await Y`
1839
+ `;async function NQ(_){await TQ.execute(_),await H`
1739
1840
  ALTER TABLE connections
1740
1841
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
1741
- `.execute(_),await Y`
1842
+ `.execute(_),await H`
1742
1843
  CREATE INDEX idx_connections_repository
1743
1844
  ON connections (repository_id) WHERE repository_id IS NOT NULL
1744
- `.execute(_),await Y`
1845
+ `.execute(_),await H`
1745
1846
  CREATE TABLE thread_repositories (
1746
1847
  thread_id text NOT NULL REFERENCES threads(id) ON DELETE CASCADE,
1747
1848
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1749,10 +1850,10 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1749
1850
  added_at timestamptz NOT NULL DEFAULT now(),
1750
1851
  PRIMARY KEY (thread_id, repository_id)
1751
1852
  )
1752
- `.execute(_),await Y`
1853
+ `.execute(_),await H`
1753
1854
  CREATE INDEX idx_thread_repositories_repo
1754
1855
  ON thread_repositories (repository_id)
1755
- `.execute(_),await Y`
1856
+ `.execute(_),await H`
1756
1857
  UPDATE connections c
1757
1858
  SET repository_id = r.id
1758
1859
  FROM repositories r
@@ -1764,7 +1865,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1764
1865
  || '/' ||
1765
1866
  (repo_ref_try_jsonb(c.metadata) #>> '{githubRepo,name}')
1766
1867
  )
1767
- `.execute(_),await Y`
1868
+ `.execute(_),await H`
1768
1869
  INSERT INTO repositories (
1769
1870
  organization_id, account_id, provider, host, path, web_url
1770
1871
  )
@@ -1785,7 +1886,7 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1785
1886
  AND e.name NOT LIKE '%/%'
1786
1887
  ORDER BY t.organization_id, lower(e.owner || '/' || e.name)
1787
1888
  ON CONFLICT (organization_id, host, lower(path)) DO NOTHING
1788
- `.execute(_),await Y`
1889
+ `.execute(_),await H`
1789
1890
  INSERT INTO thread_repositories (thread_id, organization_id, repository_id)
1790
1891
  SELECT DISTINCT t.id, t.organization_id, r.id
1791
1892
  FROM threads t
@@ -1797,29 +1898,29 @@ var oN=Object.defineProperty;var aN=(_)=>_;function rN(_,x){this[_]=aN.bind(null
1797
1898
  AND r.host = 'github.com'
1798
1899
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
1799
1900
  ON CONFLICT (thread_id, repository_id) DO NOTHING
1800
- `.execute(_),await Y`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function mQ(_){await Y`DROP TABLE IF EXISTS thread_repositories`.execute(_),await Y`
1901
+ `.execute(_),await H`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function KQ(_){await H`DROP TABLE IF EXISTS thread_repositories`.execute(_),await H`
1801
1902
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
1802
- `.execute(_)}var CQ={"001-initial-schema":e_,"002-organization-settings":l_,"003-connection-schema-align":d_,"004-remove-models-binding":s_,"005-connection-configuration":b_,"006-add-views-to-settings":_x,"007-monitoring-logs":xx,"008-event-bus":ux,"009-drop-audit-logs":mx,"010-gateways":Cx,"011-gateway-icon":Tx,"012-gateway-tool-selection-mode":Nx,"013-monitoring-user-agent-gateway":Kx,"014-gateway-resources-prompts":Ex,"015-monitoring-properties":zx,"016-downstream-token-client-info":Px,"017-downstream-token-remove-userid":$x,"018-drop-gateway-tool-selection-strategy":Ux,"019-remove-gateway-is-default":Jx,"020-enabled-plugins":Xx,"021-threads":Qx,"022-rename-gateway-to-virtual-mcp":jx,"023-optimize-thread-indexes":Wx,"024-consolidate-virtual-mcp":Zx,"025-add-monitoring-virtual-mcp-id":Lx,"026-restrict-child-connection-delete":Dx,"027-update-management-mcp-url":Rx,"028-update-management-mcp-to-self":Hx,"029-add-updated-by-to-connections":Mx,"030-member-tags":nx,"031-add-dependency-mode":Bx,"032-projects":Gx,"033-thread-status":yx,"034-monitoring-dashboards":fx,"035-project-connections":Ox,"036-update-registry-url":Ax,"037-ai-provider-keys":Sx,"038-oauth-pkce-states":Ix,"039-automations":wx,"040-replace-next-run-at-with-last-run-at":Vx,"041-ai-provider-keys-unique-constraint":kx,"042-rename-mesh-mcp-to-cms-mcp":px,"043-rename-cms-mcp-to-deco-cms":ix,"044-drop-connections-tools-column":tx,"045-thread-context-start-message":vx,"046-remove-object-storage-plugin":gx,"047-add-next-run-at":cx,"048-merge-projects-agents":ox,"049-remove-org-admin-projects":ax,"050-durable-agent-runs":rx,"051-org-sso":lx,"052-thread-agent-ids":dx,"053-registry-config":sx,"054-connection-slug":_u,"055-spaces":xu,"056-automation-project-scope":uu,"057-thread-virtual-mcp-id":mu,"058-trigger-callback-tokens":Cu,"059-kv":Tu,"060-member-index":Nu,"061-downstream-token-connection-index":Ku,"062-private-registry":Eu,"063-event-subscriptions-enabled-boolean":zu,"064-brand-context":Pu,"065-organization-domains":$u,"066-brand-context-structured":Uu,"067-threads-metadata":Ju,"068-threads-branch":Xu,"069-sandbox-runner-state":Qu,"070-model-categories":ju,"071-default-home-agents":Wu,"072-ai-provider-key-preset-id":Zu,"073-backfill-basic-usage-roles":Lu,"074-sandbox-runner-state-handle-nonunique":Du,"075-thread-inflight-async-jobs":Fu,"076-automations-drop-agent-json":Ru,"077-tier-only-model-selection":Hu,"078-automation-tool-call-kind":Mu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":Bu,"081-async-research-jobs-result-content":Gu,"082-secrets":yu,"083-thread-run-locally":fu,"084-drop-host-sandbox-rows":Ou,"085-rename-runner-kind":Au,"086-thread-pins-and-vm-map-rekey":Su,"087-fix-vm-map-rekey":Iu,"088-purge-cli-activate-keys":wu,"089-rename-remote-user-to-desktop":Vu,"090-automation-webhook-triggers":ku,"091-organization-domains-allow-multi":pu,"092-sandbox-naming-uniformization":iu,"093-backfill-global-search-basic-usage":tu,"094-org-file-configs":qu,"095-remove-automation-tool-call-kind":gu,"096-org-file-configs-public-url-base":cu,"097-drop-local-docker-sandbox-state":ou,"098-thread-message-parts":au,"099-run-fence":ru,"100-link-transport":eu,"101-cancel-requested-at":lu,"102-observational-agent":du,"103-revert-observational-agent":su,"104-agent-sandbox-provider-kind":_m,"105-org-fs":xm,"106-automation-tools":um,"107-org-fs-public-org":mm,"108-automation-max-agent-steps":Cm,"109-thread-message-parts-per-message-seq":Tm,"110-backfill-ghs-token-expiry":Nm,"111-org-fs-thread-id":Km,"112-org-file-configs-credential-type":Em,"113-thread-failure-reason":zm,"114-run-acked-seq":Pm,"115-thread-projected-seq":$m,"116-org-sites":Um,"117-org-file-configs-site-slug":Jm,"118-organization-domains-multi-verify":Xm,"119-organization-join-requests":Qm,"120-org-fs-read-public":jm,"121-org-fs-share-password":Wm,"122-split-web-research-tier":Dm,"123-connection-credential-vault":Fm,"124-drop-thread-projected-seq":Rm,"125-github-child-single-parent":Ym,"126-task-board":Mm,"127-task-board-due-date":nm,"128-reports-only":Bm,"129-task-board-assigned-by":Gm,"130-task-board-thread-id":ym,"131-task-board-thread-link-cascade":fm,"132-task-board-item-prs":Om,"133-dedupe-duplicate-members":Am,"134-drop-task-board-enabled":Sm,"135-task-board-item-fk-cascade":Im,"136-task-board-import-idempotency":wm,"137-agent-sandbox-runner-state":Vm,"138-agent-sandbox-sessions":km,"139-organization-billing":pm,"140-seat-change-log":im,"141-benefits-sync-pending":tm,"142-stripe-event-watermark":vm,"143-armed-report-url":qm,"144-benefits-pending-index":gm,"145-user-model-preferences":cm,"146-organization-main-agent":hm,"147-drop-agent-sandbox-tables":om,"148-org-flags":am,"149-task-board-item-sort-order":rm,"150-task-board-activity":em,"151-task-board-tags":dm,"152-repair-connection-slug":bm,"153-task-board-latest-assistant-part-index":_C,"154-task-board-qa-activity":uC,"155-task-board-review-claims":mC,"156-task-board-conflict-activity":TC,"157-drop-seat-billing":NC,"158-drop-github-child-single-parent":KC,"159-task-board-comments":EC,"160-task-quota-billing":zC,"161-task-quota-claim-state":$C,"162-claude-subscriptions":UC,"163-task-board-item-dismissed":JC,"164-per-org-task-quota":XC,"165-task-board-pending-review-index":QC,"166-task-board-last-swept-at":jC,"167-task-board-run-retry":WC,"168-org-repo-sync":LC,"169-task-board-merge-failed-activity":FC,"170-task-board-item-repo":RC,"171-jira-integration":YC,"172-task-board-item-key-seq":HC,"173-thread-github-repo-connection-index":MC,"174-thread-message-parts-persisted-at":BC,"175-task-board-sprints":GC,"176-task-board-done-sweep-index":yC,"177-notifications":fC,"178-jira-status-mapping-array":OC,"179-notification-mentioned":SC,"180-task-board-item-type":wC,"181-task-board-item-type-required":VC,"182-task-board-sprints-entities":kC,"183-drop-jira-jql-filter":pC,"184-jira-rescan-after-scope-change":iC,"185-jira-rescan-existing-cards":tC,"186-jira-rescan-pending-flag":qC,"187-task-board-comment-thread":gC,"188-invitation-auto-accept":cC,"189-task-board-column-automations":oC,"190-task-board-review-cycle-started-at":aC,"191-task-board-columns":rC,"192-task-board-verdict-nudge-activity":lC,"193-task-board-status-column-fk":dC,"194-jira-link-sprint":sC,"195-task-board-sprint-activity":_T,"196-task-board-column-tracker-statuses":xT,"197-task-board-prompts":uT,"198-task-board-external-url":mT,"199-drop-jira-mirror-and-org-columns":CT,"200-jira-run-trigger":TT,"201-organization-notices":NT,"202-redact-base64-thread-parts":ET,"203-task-board-preview-routes":zT,"204-git-provider-accounts-and-repositories":PT,"205-repository-references":$T,"206-repository-consumers":r_,"207-task-board-prs-repo-idx":a_,"208-github-connect-flows":o_,"209-github-installation-authorization":h_,"210-github-repository-authorization":q_,"211-user-fs-org":v_,"212-coding-agent-mcp-excluded":g_,"213-bitbucket-git-provider":c_,"214-connections-sanitized-id-idx":t_},UT=CQ;import{getMigrations as wQ}from"better-auth/db";import{sso as VQ}from"@better-auth/sso";import{organization as kQ}from"@decocms/better-auth/plugins";import{admin as pQ,apiKey as iQ,jwt as tQ,magicLink as vQ,mcp as qQ,openAPI as gQ}from"better-auth/plugins";import{emailOTP as cQ}from"better-auth/plugins/email-otp";import{Kysely as GQ,PostgresDialect as kN}from"kysely";import{Pool as pN}from"pg";import{homedir as TQ}from"os";var NQ=new Set(["all","worker","api"]);function KQ(_){let x=(_??"").trim();return NQ.has(x)?x:"all"}var EQ=new Set(["production","development","test"]);function zQ(_){let x=(_??"").trim();return EQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function XT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function G(_,x,u,T){return XT(_,x,T)??u}function PQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function JT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function BN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function $Q(_){return _===void 0||_===""||_==="true"||_==="1"}function N_(_,x){return _||x}function GN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${TQ()}/deco`,T=_.localMode,C=_.nodeEnv||zQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:G("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:N_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:G("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:G("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:N_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:XT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:PQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:G("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:G("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:G("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:JT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:G("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:G("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:JT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:G("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:$Q(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:XT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:KQ(N_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:JT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:G("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:N_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:N_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:BN(x.DATABASE_URL),externalNatsUrl:BN(N),skipMigrations:_.skipMigrations}}var w_=null;function h(){if(!w_)UQ();return w_}function UQ(){if(w_)return;let _={...process.env},x=GN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);w_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as ZQ,metrics as LQ,propagation as P4,ROOT_CONTEXT as $4,SpanStatusCode as U4,trace as DQ}from"@opentelemetry/api";import{logs as FQ,SeverityNumber as QT}from"@opentelemetry/api-logs";import{OTLPLogExporter as Q4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as RQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Z4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as D4}from"@opentelemetry/instrumentation-runtime-node";import{context as CZ,propagation as TZ,SpanKind as NZ,SpanStatusCode as KZ}from"@opentelemetry/api";var zZ=globalThis.fetch;import{ExportResultCode as FZ}from"@opentelemetry/core";import{ExportResultCode as V_}from"@opentelemetry/core";import{mkdir as JQ,rename as XQ,writeFile as QQ}from"fs/promises";import{join as k_}from"path";class p_{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:V_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:V_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:V_.FAILED}});return Promise.resolve({code:V_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?k_(this.basePath,x,...T):k_(this.basePath,...T);if(!this.knownDirs.has(C))await JQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=k_(C,`.${N}.tmp`),K=k_(C,N),z=_.join(`
1903
+ `.execute(_)}var EQ={"001-initial-schema":d_,"002-organization-settings":s_,"003-connection-schema-align":b_,"004-remove-models-binding":_x,"005-connection-configuration":xx,"006-add-views-to-settings":ux,"007-monitoring-logs":mx,"008-event-bus":Cx,"009-drop-audit-logs":Tx,"010-gateways":Nx,"011-gateway-icon":Kx,"012-gateway-tool-selection-mode":Ex,"013-monitoring-user-agent-gateway":zx,"014-gateway-resources-prompts":Px,"015-monitoring-properties":$x,"016-downstream-token-client-info":Ux,"017-downstream-token-remove-userid":Jx,"018-drop-gateway-tool-selection-strategy":Xx,"019-remove-gateway-is-default":Qx,"020-enabled-plugins":jx,"021-threads":Wx,"022-rename-gateway-to-virtual-mcp":Zx,"023-optimize-thread-indexes":Lx,"024-consolidate-virtual-mcp":Dx,"025-add-monitoring-virtual-mcp-id":Fx,"026-restrict-child-connection-delete":Rx,"027-update-management-mcp-url":Hx,"028-update-management-mcp-to-self":Bx,"029-add-updated-by-to-connections":Gx,"030-member-tags":nx,"031-add-dependency-mode":yx,"032-projects":fx,"033-thread-status":Ox,"034-monitoring-dashboards":Ax,"035-project-connections":Sx,"036-update-registry-url":Ix,"037-ai-provider-keys":wx,"038-oauth-pkce-states":Vx,"039-automations":kx,"040-replace-next-run-at-with-last-run-at":px,"041-ai-provider-keys-unique-constraint":ix,"042-rename-mesh-mcp-to-cms-mcp":tx,"043-rename-cms-mcp-to-deco-cms":vx,"044-drop-connections-tools-column":qx,"045-thread-context-start-message":gx,"046-remove-object-storage-plugin":hx,"047-add-next-run-at":ox,"048-merge-projects-agents":rx,"049-remove-org-admin-projects":ex,"050-durable-agent-runs":lx,"051-org-sso":sx,"052-thread-agent-ids":bx,"053-registry-config":_u,"054-connection-slug":uu,"055-spaces":mu,"056-automation-project-scope":Cu,"057-thread-virtual-mcp-id":Tu,"058-trigger-callback-tokens":Nu,"059-kv":Ku,"060-member-index":Eu,"061-downstream-token-connection-index":zu,"062-private-registry":Pu,"063-event-subscriptions-enabled-boolean":$u,"064-brand-context":Uu,"065-organization-domains":Ju,"066-brand-context-structured":Xu,"067-threads-metadata":Qu,"068-threads-branch":ju,"069-sandbox-runner-state":Wu,"070-model-categories":Zu,"071-default-home-agents":Lu,"072-ai-provider-key-preset-id":Du,"073-backfill-basic-usage-roles":Fu,"074-sandbox-runner-state-handle-nonunique":Ru,"075-thread-inflight-async-jobs":Yu,"076-automations-drop-agent-json":Hu,"077-tier-only-model-selection":Bu,"078-automation-tool-call-kind":Gu,"079-strip-legacy-freestyle-vm-map-entries":nu,"080-async-research-jobs":yu,"081-async-research-jobs-result-content":fu,"082-secrets":Ou,"083-thread-run-locally":Au,"084-drop-host-sandbox-rows":Su,"085-rename-runner-kind":Iu,"086-thread-pins-and-vm-map-rekey":wu,"087-fix-vm-map-rekey":Vu,"088-purge-cli-activate-keys":ku,"089-rename-remote-user-to-desktop":pu,"090-automation-webhook-triggers":iu,"091-organization-domains-allow-multi":tu,"092-sandbox-naming-uniformization":vu,"093-backfill-global-search-basic-usage":qu,"094-org-file-configs":cu,"095-remove-automation-tool-call-kind":hu,"096-org-file-configs-public-url-base":ou,"097-drop-local-docker-sandbox-state":ru,"098-thread-message-parts":eu,"099-run-fence":lu,"100-link-transport":du,"101-cancel-requested-at":su,"102-observational-agent":bu,"103-revert-observational-agent":_m,"104-agent-sandbox-provider-kind":um,"105-org-fs":mm,"106-automation-tools":Cm,"107-org-fs-public-org":Tm,"108-automation-max-agent-steps":Nm,"109-thread-message-parts-per-message-seq":Km,"110-backfill-ghs-token-expiry":Em,"111-org-fs-thread-id":zm,"112-org-file-configs-credential-type":Pm,"113-thread-failure-reason":$m,"114-run-acked-seq":Um,"115-thread-projected-seq":Jm,"116-org-sites":Xm,"117-org-file-configs-site-slug":Qm,"118-organization-domains-multi-verify":jm,"119-organization-join-requests":Wm,"120-org-fs-read-public":Zm,"121-org-fs-share-password":Lm,"122-split-web-research-tier":Rm,"123-connection-credential-vault":Ym,"124-drop-thread-projected-seq":Hm,"125-github-child-single-parent":Mm,"126-task-board":Gm,"127-task-board-due-date":nm,"128-reports-only":ym,"129-task-board-assigned-by":fm,"130-task-board-thread-id":Om,"131-task-board-thread-link-cascade":Am,"132-task-board-item-prs":Sm,"133-dedupe-duplicate-members":Im,"134-drop-task-board-enabled":wm,"135-task-board-item-fk-cascade":Vm,"136-task-board-import-idempotency":km,"137-agent-sandbox-runner-state":pm,"138-agent-sandbox-sessions":im,"139-organization-billing":tm,"140-seat-change-log":vm,"141-benefits-sync-pending":qm,"142-stripe-event-watermark":gm,"143-armed-report-url":cm,"144-benefits-pending-index":hm,"145-user-model-preferences":om,"146-organization-main-agent":am,"147-drop-agent-sandbox-tables":rm,"148-org-flags":em,"149-task-board-item-sort-order":lm,"150-task-board-activity":dm,"151-task-board-tags":bm,"152-repair-connection-slug":xC,"153-task-board-latest-assistant-part-index":uC,"154-task-board-qa-activity":CC,"155-task-board-review-claims":TC,"156-task-board-conflict-activity":KC,"157-drop-seat-billing":EC,"158-drop-github-child-single-parent":zC,"159-task-board-comments":PC,"160-task-quota-billing":$C,"161-task-quota-claim-state":JC,"162-claude-subscriptions":XC,"163-task-board-item-dismissed":QC,"164-per-org-task-quota":jC,"165-task-board-pending-review-index":WC,"166-task-board-last-swept-at":ZC,"167-task-board-run-retry":LC,"168-org-repo-sync":FC,"169-task-board-merge-failed-activity":YC,"170-task-board-item-repo":HC,"171-jira-integration":MC,"172-task-board-item-key-seq":BC,"173-thread-github-repo-connection-index":GC,"174-thread-message-parts-persisted-at":yC,"175-task-board-sprints":fC,"176-task-board-done-sweep-index":OC,"177-notifications":AC,"178-jira-status-mapping-array":SC,"179-notification-mentioned":wC,"180-task-board-item-type":kC,"181-task-board-item-type-required":pC,"182-task-board-sprints-entities":iC,"183-drop-jira-jql-filter":tC,"184-jira-rescan-after-scope-change":vC,"185-jira-rescan-existing-cards":qC,"186-jira-rescan-pending-flag":cC,"187-task-board-comment-thread":hC,"188-invitation-auto-accept":oC,"189-task-board-column-automations":rC,"190-task-board-review-cycle-started-at":eC,"191-task-board-columns":lC,"192-task-board-verdict-nudge-activity":sC,"193-task-board-status-column-fk":bC,"194-jira-link-sprint":_T,"195-task-board-sprint-activity":uT,"196-task-board-column-tracker-statuses":mT,"197-task-board-prompts":CT,"198-task-board-external-url":TT,"199-drop-jira-mirror-and-org-columns":NT,"200-jira-run-trigger":KT,"201-organization-notices":ET,"202-redact-base64-thread-parts":PT,"203-task-board-preview-routes":$T,"204-git-provider-accounts-and-repositories":UT,"205-repository-references":JT,"206-repository-consumers":l_,"207-task-board-prs-repo-idx":e_,"208-github-connect-flows":r_,"209-github-installation-authorization":a_,"210-github-repository-authorization":c_,"211-user-fs-org":g_,"212-coding-agent-mcp-excluded":h_,"213-bitbucket-git-provider":o_,"214-connections-sanitized-id-idx":v_,"215-commerce-discovery-repository":q_},XT=EQ;import{getMigrations as iQ}from"better-auth/db";import{sso as tQ}from"@better-auth/sso";import{organization as vQ}from"@decocms/better-auth/plugins";import{admin as qQ,apiKey as gQ,jwt as cQ,magicLink as hQ,mcp as oQ,openAPI as aQ}from"better-auth/plugins";import{emailOTP as rQ}from"better-auth/plugins/email-otp";import{Kysely as AQ,PostgresDialect as iN}from"kysely";import{Pool as tN}from"pg";import{homedir as zQ}from"os";var PQ=new Set(["all","worker","api"]);function $Q(_){let x=(_??"").trim();return PQ.has(x)?x:"all"}var UQ=new Set(["production","development","test"]);function JQ(_){let x=(_??"").trim();return UQ.has(x)?x:"development"}function L(_){return _==="true"||_==="1"}function jT(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function y(_,x,u,T){return jT(_,x,T)??u}function XQ(_,x,u,T){if(x===void 0||x==="")return u;let C=Number(x);if(!Number.isSafeInteger(C)||C<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&C>T)throw Error(`${_} must be at most ${T}`);return C}function QT(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function yN(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function QQ(_){return _===void 0||_===""||_==="true"||_==="1"}function K_(_,x){return _||x}function fN(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${zQ()}/deco`,T=_.localMode,C=_.nodeEnv||JQ(x.NODE_ENV),N=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:C,port:y("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:K_(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:L(x.DATABASE_PG_SSL),databasePoolMax:y("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:y("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:K_(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:L(x.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:L(x.JIRA_ALLOW_LOCAL_SITE_URL),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((K)=>K.trim().toLowerCase()).filter(Boolean),deploymentAdminToken:x.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:jT("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:L(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:XQ("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:y("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:y("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:y("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(x.ENABLE_DECO_IMPORT),hostingControlPlaneGa:L(x.HOSTING_CONTROL_PLANE_GA),monitorGa:L(x.MONITOR_GA),mcpCacheEnabled:QT(x.MCP_CACHE_ENABLED,C!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:y("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:y("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:QT(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:y("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:QQ(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:jT("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:$Q(K_(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:L(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:L(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:QT(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:L(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:y("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,controlplaneRestUrl:x.CONTROLPLANE_REST_URL,controlplaneServiceToken:x.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:x.ANALYTICS_URL,analyticsMasterToken:x.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:K_(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:K_(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:yN(x.DATABASE_URL),externalNatsUrl:yN(N),skipMigrations:_.skipMigrations}}var V_=null;function o(){if(!V_)jQ();return V_}function jQ(){if(V_)return;let _={...process.env},x=fN({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);V_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as RQ,metrics as YQ,propagation as Q4,ROOT_CONTEXT as j4,SpanStatusCode as W4,trace as HQ}from"@opentelemetry/api";import{logs as MQ,SeverityNumber as WT}from"@opentelemetry/api-logs";import{OTLPLogExporter as D4}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as BQ}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Y4}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as M4}from"@opentelemetry/instrumentation-runtime-node";import{context as zZ,propagation as PZ,SpanKind as $Z,SpanStatusCode as UZ}from"@opentelemetry/api";var XZ=globalThis.fetch;import{ExportResultCode as BZ}from"@opentelemetry/core";import{ExportResultCode as k_}from"@opentelemetry/core";import{mkdir as WQ,rename as ZQ,writeFile as LQ}from"fs/promises";import{join as p_}from"path";class i_{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:k_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:k_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:k_.FAILED}});return Promise.resolve({code:k_.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let C of _){let N=x.get(C.partition);if(!N)N=[],x.set(C.partition,N);N.push(C.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([C,N])=>this.writeNDJSON(N,C).then(()=>C))),T=u.find((C)=>C.status==="rejected");if(T){let C=new Set;for(let E of u)if(E.status==="fulfilled")C.add(E.value);let N=_.filter((E)=>!C.has(E.partition));this.bufferItems=N.concat(this.bufferItems),this.bufferBytes=0;for(let E of this.bufferItems)this.bufferBytes+=Buffer.byteLength(E.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],C=x?p_(this.basePath,x,...T):p_(this.basePath,...T);if(!this.knownDirs.has(C))await WQ(C,{recursive:!0,mode:448}),this.knownDirs.add(C);let N=`${crypto.randomUUID()}.ndjson`,E=p_(C,`.${N}.tmp`),K=p_(C,N),z=_.join(`
1803
1904
  `)+`
1804
- `;await QQ(E,z,{mode:384}),await XQ(E,K)}}import{ExportResultCode as nZ}from"@opentelemetry/core";import{AggregationTemporality as GZ,DataPointType as yZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as wZ}from"@opentelemetry/core";var iZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as y4,LoggerProvider as f4}from"@opentelemetry/sdk-logs";import{detectResources as A4,envDetector as S4,hostDetector as I4,osDetector as w4,processDetector as V4,resourceFromAttributes as k4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as i4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as qZ}from"@opentelemetry/api-logs";import{NodeSDK as q4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as c4,SamplingDecision as o}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as aZ}from"@opentelemetry/api";var YQ="__d",HQ=ZQ("Current request"),MQ=1;var fN=(_)=>{let u=new URL(_.url).searchParams.get(YQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class ON{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(HQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:o.RECORD_AND_SAMPLED}}let K=fN(E);if(K)return{decision:o.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===o.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:o.NOT_RECORD}}toString(){return"DebugSampler"}}class AN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:o.RECORD_AND_SAMPLED};return{decision:o.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var o4=new RQ({preventServerStart:!0}),a4=new ON(new AN(MQ));var yN=DQ.getTracer("studio","1.0.0"),K_=LQ.getMeter("studio","1.0.0"),nQ=FQ.getLogger("studio","1.0.0"),jT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");nQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},WT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{jT(QT.ERROR,"ERROR",_),WT.error(..._)};console.warn=(..._)=>{jT(QT.WARN,"WARN",_),WT.warn(..._)};console.debug=(..._)=>{jT(QT.DEBUG,"DEBUG",_),WT.debug(..._)};var ZT,SN=0,LT=500;function BQ(){if(ZT)return;let _=performance.now()+LT;ZT=setInterval(()=>{let x=performance.now();SN=Math.max(0,x-_),_=x+LT},LT),ZT.unref?.()}function IN(){return BQ(),SN}var yQ=()=>K_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),wN=()=>K_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),VN=400,fQ=100,OQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>VN){let T=IN(),C=T>VN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:i_()}})}if(yQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function AQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=i_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(wN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>fQ)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw wN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var iN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function tN(){try{return h().databasePgSsl}catch{return!1}}function i_(){try{return h().databasePoolMax}catch{return 10}}function SQ(_){let x=AQ(new pN({connectionString:_,max:i_(),ssl:tN(),...iN})),u=new kN({pool:x});return{type:"postgres",db:new GQ({dialect:u,log:OQ(x)}),pool:x}}function z_(){return h().databaseUrl}function vN(_){let x=_||z_();return new kN({pool:new pN({connectionString:x,max:i_(),ssl:tN(),...iN})})}function IQ(_){let x=_||z_();return SQ(x)}async function qN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===E_)E_=null}var E_=null;function DT(){if(!E_)E_=IQ(z_());return E_}async function gN(_){let u={database:vN(_||z_()),plugins:[kQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),pQ(),iQ(),tQ(),gQ(),qQ({loginPage:"/login"}),VQ(),vQ({sendMagicLink:async()=>{}}),cQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await wQ(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function hN(_,x){return(await a`
1905
+ `;await LQ(E,z,{mode:384}),await ZQ(E,K)}}import{ExportResultCode as OZ}from"@opentelemetry/core";import{AggregationTemporality as SZ,DataPointType as IZ}from"@opentelemetry/sdk-metrics";import{ExportResultCode as tZ}from"@opentelemetry/core";var cZ=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as I4,LoggerProvider as w4}from"@opentelemetry/sdk-logs";import{detectResources as k4,envDetector as p4,hostDetector as i4,osDetector as t4,processDetector as v4,resourceFromAttributes as q4}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as c4}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as aZ}from"@opentelemetry/api-logs";import{NodeSDK as a4}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as e4,SamplingDecision as a}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as sZ}from"@opentelemetry/api";var GQ="__d",nQ=RQ("Current request"),yQ=1;var AN=(_)=>{let u=new URL(_.url).searchParams.get(GQ);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class SN{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,C,N){let E=_.getValue(nQ);if(!E){if(this.inner)return this.inner.shouldSample(_,x,u,T,C,N);return{decision:a.RECORD_AND_SAMPLED}}let K=AN(E);if(K)return{decision:a.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":K}};if(this.inner){let z=this.inner.shouldSample(_,x,u,T,C,N);if(z.decision===a.RECORD_AND_SAMPLED){let $=crypto.randomUUID();z.attributes={...z.attributes??{},"trace.debug.id":$}}return z}return{decision:a.NOT_RECORD}}toString(){return"DebugSampler"}}class IN{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:a.RECORD_AND_SAMPLED};return{decision:a.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var d4=new BQ({preventServerStart:!0}),s4=new SN(new IN(yQ));var ON=HQ.getTracer("studio","1.0.0"),E_=YQ.getMeter("studio","1.0.0"),fQ=MQ.getLogger("studio","1.0.0"),ZT=(_,x,u)=>{let T={},C=u,N=u[u.length-1];if(N!==null&&typeof N==="object"&&!Array.isArray(N)&&!(N instanceof Error)&&Object.getPrototypeOf(N)===Object.prototype)T=N,C=u.slice(0,-1);let E=C.map((K)=>{if(K instanceof Error)return`${K.name}: ${K.message}`;if(typeof K==="object")try{return JSON.stringify(K)}catch{return"[Object]"}return String(K)}).join(" ");fQ.emit({severityNumber:_,severityText:x,body:E,attributes:{"log.source":"console",...T}})},LT={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{ZT(WT.ERROR,"ERROR",_),LT.error(..._)};console.warn=(..._)=>{ZT(WT.WARN,"WARN",_),LT.warn(..._)};console.debug=(..._)=>{ZT(WT.DEBUG,"DEBUG",_),LT.debug(..._)};var DT,wN=0,FT=500;function OQ(){if(DT)return;let _=performance.now()+FT;DT=setInterval(()=>{let x=performance.now();wN=Math.max(0,x-_),_=x+FT},FT),DT.unref?.()}function VN(){return OQ(),wN}var SQ=()=>E_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),kN=()=>E_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),pN=400,IQ=100,wQ=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>pN){let T=VN(),C=T>pN/2;console.error(C?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:t_()}})}if(SQ().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function VQ(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),C=t_(),N=_.idleCount===0&&_.totalCount>=C,E=_.idleCount;return x().then((K)=>{let z=performance.now()-T;if(kN().record(z,{"db.pool.outcome":N?"contended":"available"}),z>IQ)if(N)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:z,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:C});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:z,idleAtStart:E,total:_.totalCount,max:C});return K},(K)=>{throw kN().record(performance.now()-T,{"db.pool.outcome":"error"}),K})},_}var vN={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function qN(){try{return o().databasePgSsl}catch{return!1}}function t_(){try{return o().databasePoolMax}catch{return 10}}function kQ(_){let x=VQ(new tN({connectionString:_,max:t_(),ssl:qN(),...vN})),u=new iN({pool:x});return{type:"postgres",db:new AQ({dialect:u,log:wQ(x)}),pool:x}}function P_(){return o().databaseUrl}function gN(_){let x=_||P_();return new iN({pool:new tN({connectionString:x,max:t_(),ssl:qN(),...vN})})}function pQ(_){let x=_||P_();return kQ(x)}async function cN(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===z_)z_=null}var z_=null;function RT(){if(!z_)z_=pQ(P_());return z_}async function hN(_){let u={database:gN(_||P_()),plugins:[vQ({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),qQ(),gQ(),cQ(),aQ(),oQ({loginPage:"/login"}),tQ(),hQ({sendMagicLink:async()=>{}}),rQ({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:C,runMigrations:N}=await iQ(u);if(!T.length&&!C.length)return"up to date";return await N(),`${C.length+T.length} table(s) migrated`}async function aN(_,x){return(await r`
1805
1906
  SELECT table_name FROM information_schema.tables
1806
1907
  WHERE table_schema='public' AND table_name=${x}
1807
- `.execute(_)).rows.length>0}async function hQ(_){if(await hN(_,"plugin_migrations"))return;await a`
1908
+ `.execute(_)).rows.length>0}async function eQ(_){if(await aN(_,"plugin_migrations"))return;await r`
1808
1909
  CREATE TABLE plugin_migrations (
1809
1910
  plugin_id TEXT NOT NULL,
1810
1911
  name TEXT NOT NULL,
1811
1912
  timestamp TEXT NOT NULL,
1812
1913
  PRIMARY KEY (plugin_id, name)
1813
1914
  )
1814
- `.execute(_)}async function oQ(_){if(!await hN(_,"kysely_migration"))return;let x=await a`
1915
+ `.execute(_)}async function lQ(_){if(!await aN(_,"kysely_migration"))return;let x=await r`
1815
1916
  SELECT name, timestamp FROM kysely_migration
1816
1917
  WHERE name LIKE '%/%'
1817
- `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await a`
1918
+ `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let C=u;if(u.includes("~plugins/"))C=u.substring(u.indexOf("~plugins/")+9);let N=C.indexOf("/");if(N===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let E=C.substring(0,N),K=C.substring(N+1);try{await r`
1818
1919
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
1819
1920
  VALUES (${E}, ${K}, ${T})
1820
- `.execute(_)}catch{let z=await a`
1921
+ `.execute(_)}catch{let z=await r`
1821
1922
  SELECT COUNT(*) as cnt FROM plugin_migrations
1822
1923
  WHERE plugin_id = ${E} AND name = ${K}
1823
- `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await a`
1924
+ `.execute(_);if(Number(z.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${E}/${K}, keeping in old table`);continue}}await r`
1824
1925
  DELETE FROM kysely_migration WHERE name = ${u}
1825
- `.execute(_)}}async function aQ(_){await hQ(_),await oQ(_);let x=new cN({db:_,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function rQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await gN();let N=u??DT(),E=async()=>{if(!x&&!u)await qN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await aQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function YL(){let _=DT(),x=new cN({db:_.db,provider:{getMigrations:()=>Promise.resolve(UT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await rQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{aQ as runKyselyMigrations,rQ as migrateToLatest,YL as migrateDown};
1926
+ `.execute(_)}}async function dQ(_){await eQ(_),await lQ(_);let x=new oN({db:_,provider:{getMigrations:()=>Promise.resolve(XT)}}),{error:u,results:T}=await x.migrateToLatest(),C=0;if(T?.forEach((N)=>{if(N.status==="Success")C++;else if(N.status==="Error")console.error(`Failed to execute migration "${N.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return C}async function sQ(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},C="skipped";if(!T&&!u)C=await hN();let N=u??RT(),E=async()=>{if(!x&&!u)await cN(N).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await dQ(N.db);return await E(),{betterAuth:C,kysely:K}}catch(K){throw await E(),K}}async function nL(){let _=RT(),x=new oN({db:_.db,provider:{getMigrations:()=>Promise.resolve(XT)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((C)=>{if(C.status==="Success")console.log(`\u2705 Migration "${C.migrationName}" rolled back successfully`);else if(C.status==="Error")console.error(`\u274C Failed to rollback migration "${C.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await sQ(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{dQ as runKyselyMigrations,sQ as migrateToLatest,nL as migrateDown};