decocms 4.125.2 → 4.125.4

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 (238) hide show
  1. package/dist/client/assets/{AlertCircle-DHfPbwmm.js → AlertCircle-CcEccjyR.js} +1 -1
  2. package/dist/client/assets/{AreaChart-D-FRclvq.js → AreaChart-AgjZ5gZj.js} +1 -1
  3. package/dist/client/assets/{ArrowRight-aoYnUAfi.js → ArrowRight-CIvdZA4z.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-gaHL-JMD.js → ArrowUp-Cl5ZoO5X.js} +1 -1
  5. package/dist/client/assets/{ArrowUpRight-owfb6ER7.js → ArrowUpRight-CtNQ3e4k.js} +1 -1
  6. package/dist/client/assets/{Check-DIcuBCVN.js → Check-Dtxj2LqI.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-C9FuklSy.js → CheckCircle-RrNMKG8e.js} +1 -1
  8. package/dist/client/assets/{ChevronDown-B9FSangp.js → ChevronDown-CmbEX7TO.js} +1 -1
  9. package/dist/client/assets/{ChevronRight-BZGq8ec4.js → ChevronRight-BMPkTrZg.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-C8KS626_.js → ChevronUp-CbMsRw8r.js} +1 -1
  11. package/dist/client/assets/{Copy01-DscCSlQa.js → Copy01-CrbYaizo.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-BrcjQf49.js → DotsVertical-BQlOCrVd.js} +1 -1
  13. package/dist/client/assets/{Eye-BfHBDYah.js → Eye-B54Urelq.js} +1 -1
  14. package/dist/client/assets/{FilterLines-CaezqqN6.js → FilterLines-Bg2EesIE.js} +1 -1
  15. package/dist/client/assets/{Globe01-B_-PRcJN.js → Globe01-DvpP_9Tj.js} +1 -1
  16. package/dist/client/assets/{Globe04-CnBEu-Tb.js → Globe04-BJXriPmE.js} +1 -1
  17. package/dist/client/assets/{HardDrive-D0rrQptf.js → HardDrive-BiaaVSII.js} +1 -1
  18. package/dist/client/assets/{Image01-BWs5Cl8W.js → Image01-CVurc-7j.js} +1 -1
  19. package/dist/client/assets/{Key01-meMXc90d.js → Key01-C6WNLK1y.js} +1 -1
  20. package/dist/client/assets/{LayoutLeft-d5DgJxpL.js → LayoutLeft-DBc5szPh.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-BWDB74Bl.js → LinkExternal01-DA5fHkBq.js} +1 -1
  22. package/dist/client/assets/{LogOut01-DsLUwoTk.js → LogOut01-CPDbdSAa.js} +1 -1
  23. package/dist/client/assets/{Monitor01-DdFs1Uqi.js → Monitor01-RFFbf_lJ.js} +1 -1
  24. package/dist/client/assets/{Package-DgWT9bDS.js → Package-ZpdKTTLo.js} +1 -1
  25. package/dist/client/assets/{Palette-DwuPeqfy.js → Palette-DgBARN1y.js} +1 -1
  26. package/dist/client/assets/{Play-C3OJLofP.js → Play-STtp48-H.js} +1 -1
  27. package/dist/client/assets/{Plus-BMGy0gLt.js → Plus-CFFRbGy1.js} +1 -1
  28. package/dist/client/assets/{SearchLg-Bvo_jSOD.js → SearchLg-C_yYdqOW.js} +1 -1
  29. package/dist/client/assets/{SearchMd-CwtuvWh8.js → SearchMd-M7FYAA0P.js} +1 -1
  30. package/dist/client/assets/{Settings02-B005Jn4G.js → Settings02-CNodVcr-.js} +1 -1
  31. package/dist/client/assets/{Shield01-BktOn7OY.js → Shield01-IbJbQ5vJ.js} +1 -1
  32. package/dist/client/assets/{Star01-COD8B803.js → Star01-CwcXpv8C.js} +1 -1
  33. package/dist/client/assets/{Stars01-DS-jsjsg.js → Stars01-BbfWZsBh.js} +1 -1
  34. package/dist/client/assets/{Stars02-Wk4f773E.js → Stars02-Bv_7kG37.js} +1 -1
  35. package/dist/client/assets/{Sun-DMi1PxWR.js → Sun-DBKNAp0W.js} +1 -1
  36. package/dist/client/assets/{SwitchHorizontal01-CQgBK8Zs.js → SwitchHorizontal01-TR00bSqI.js} +1 -1
  37. package/dist/client/assets/{Tool01-CMGcVT4l.js → Tool01-CMii7oS-.js} +1 -1
  38. package/dist/client/assets/{Tool02-Bg6EYrJZ.js → Tool02-DeuPSlN9.js} +1 -1
  39. package/dist/client/assets/{Trash01-DmDxDqMT.js → Trash01-C2hx9ILk.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-cVD_6pKi.js → TrendUp01-DQtnnEXy.js} +1 -1
  41. package/dist/client/assets/{Upload01-B7Wisg2m.js → Upload01-U7-rI-ck.js} +1 -1
  42. package/dist/client/assets/{User01-CrrDrMtl.js → User01-BLKyUfT3.js} +1 -1
  43. package/dist/client/assets/{Users01-B8Zwqemn.js → Users01-C7iZpwSr.js} +1 -1
  44. package/dist/client/assets/{Users03-CHFYRzMp.js → Users03-C6dcgEIV.js} +1 -1
  45. package/dist/client/assets/{X-kbNEvIkE.js → X-Dhe81Wdu.js} +1 -1
  46. package/dist/client/assets/{XCircle-Bau-QYHG.js → XCircle-DSQd18dF.js} +1 -1
  47. package/dist/client/assets/{XClose-CiEZ9Mmp.js → XClose-Gc4IGtK8.js} +1 -1
  48. package/dist/client/assets/{Zap-COQSXbiz.js → Zap-C3MztcL3.js} +1 -1
  49. package/dist/client/assets/{ZapSquare-CWc873Is.js → ZapSquare-TENV_B5W.js} +1 -1
  50. package/dist/client/assets/{ZoomOut-BzQ5KRW5.js → ZoomOut-B0AzMjEL.js} +1 -1
  51. package/dist/client/assets/{access-gate-BvtsfB8K.js → access-gate-Xa3X5DkS.js} +1 -1
  52. package/dist/client/assets/{add-section-modal-CjPlnHD2.js → add-section-modal-DkdlGTuU.js} +1 -1
  53. package/dist/client/assets/{agent-icon-Bu8L0YTs.js → agent-icon-YL1kb16c.js} +1 -1
  54. package/dist/client/assets/{agents-list-CcBRMCSX.js → agents-list-HxHsxCYR.js} +1 -1
  55. package/dist/client/assets/{ai-providers-Be8br1vH.js → ai-providers-B_yK3yU2.js} +1 -1
  56. package/dist/client/assets/{alert-HFyMw3-6.js → alert-Bl2sP6Du.js} +1 -1
  57. package/dist/client/assets/{alert-dialog-CBCn_UdL.js → alert-dialog-CxVEix6v.js} +1 -1
  58. package/dist/client/assets/{app-editor-B1reldMi.js → app-editor-DbCGGmtw.js} +1 -1
  59. package/dist/client/assets/{auth-Bprl3x_3.js → auth-C_-JQU23.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-Cy7UrKhy.js → auth-catchall-DSTgood7.js} +1 -1
  61. package/dist/client/assets/{auth-entry-CNLeBO8A.js → auth-entry-BLFpDUaC.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-DRCdjhs2.js → auth-split-layout-Bfu3olQQ.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-CRUUJSOy.js → authenticate-and-persist-oauth-DhuBe7ww.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-Cr4wP_05.js → automation-list-row-zneRke1f.js} +1 -1
  65. package/dist/client/assets/{automation-runs-Cbng2BoT.js → automation-runs-Bho-sJ6z.js} +1 -1
  66. package/dist/client/assets/{automations-GVbUrn5l.js → automations-3Z7_Rkoa.js} +1 -1
  67. package/dist/client/assets/{autosend-DzUEXq6j.js → autosend-thPIzBxM.js} +1 -1
  68. package/dist/client/assets/{avatar-Dei6fpXi.js → avatar-BO5Wc4n9.js} +1 -1
  69. package/dist/client/assets/{badge-Cmfr9I7J.js → badge-DazAmAwT.js} +1 -1
  70. package/dist/client/assets/{block-document-DIN2deJy.js → block-document-BQvvwKKu.js} +1 -1
  71. package/dist/client/assets/{brand-context-h5RiCjnq.js → brand-context-DzBl90-7.js} +1 -1
  72. package/dist/client/assets/{buckets-Dp3vPQTS.js → buckets-at0x4cUN.js} +1 -1
  73. package/dist/client/assets/{bulk-category-panel-B1Gi9wUq.js → bulk-category-panel-CGUgYVmB.js} +1 -1
  74. package/dist/client/assets/{calendar-DHty8QJT.js → calendar-Y3PksDYj.js} +1 -1
  75. package/dist/client/assets/{capability-load-error-CXxQs63z.js → capability-load-error-Dq-Oox-R.js} +1 -1
  76. package/dist/client/assets/{card-CaGEmByP.js → card-H6G2Nfkp.js} +1 -1
  77. package/dist/client/assets/{category-editor-s0kMzuKL.js → category-editor-CrQf1odc.js} +1 -1
  78. package/dist/client/assets/{chat-context-DRXtbNYB.js → chat-context-iX4Jxrz0.js} +1 -1
  79. package/dist/client/assets/{checkbox-DgJA_ceb.js → checkbox-gnfMT4MD.js} +1 -1
  80. package/dist/client/assets/{cli-auth-success-SqN0HJI8.js → cli-auth-success-Cy3hxziI.js} +1 -1
  81. package/dist/client/assets/{collection-detail-DjW1_lm1.js → collection-detail-CVhNfEsm.js} +1 -1
  82. package/dist/client/assets/{collection-display-button-WGf1YkR8.js → collection-display-button-CDLftXPf.js} +1 -1
  83. package/dist/client/assets/{collection-search-v6k7-ns_.js → collection-search--Swyfisl.js} +1 -1
  84. package/dist/client/assets/{collection-table-wrapper-jxnyW-o6.js → collection-table-wrapper-I_C9IggN.js} +1 -1
  85. package/dist/client/assets/{collection-tabs-BOJ9WXu0.js → collection-tabs-DSfR42wG.js} +1 -1
  86. package/dist/client/assets/{command-Dh8_6SVl.js → command-DAultwG_.js} +1 -1
  87. package/dist/client/assets/{commerce-onboarding-CSi5e0YX.js → commerce-onboarding-UB8LycDN.js} +1 -1
  88. package/dist/client/assets/{companions-core-BSh9cT1E.js → companions-core-DdICjmDQ.js} +1 -1
  89. package/dist/client/assets/{connect-ClEEolrx.js → connect-7IqT1Cpx.js} +1 -1
  90. package/dist/client/assets/{connect-desktop-dialog-C0flGaQ_.js → connect-desktop-dialog-B9RKlJWt.js} +1 -1
  91. package/dist/client/assets/{connection-CauRFt6W.js → connection-Ht_jMY9L.js} +1 -1
  92. package/dist/client/assets/{connection-card-CeYmR-Cx.js → connection-card-Cls8iolX.js} +1 -1
  93. package/dist/client/assets/{connection-detail-_7qtrH4B.js → connection-detail-DR_dYVlj.js} +1 -1
  94. package/dist/client/assets/{connection-form-helpers-7iwRsPVv.js → connection-form-helpers-Db84FxyM.js} +1 -1
  95. package/dist/client/assets/{connections-ZhIMcHMb.js → connections-Z-Uo5Otf.js} +1 -1
  96. package/dist/client/assets/{decopilot-sse-pool-DaQqKB35.js → decopilot-sse-pool-B-5wI-Pj.js} +1 -1
  97. package/dist/client/assets/{dialog-G4ZiTvNx.js → dialog-DbscGgzF.js} +1 -1
  98. package/dist/client/assets/{domain-settings-CweuNubx.js → domain-settings-BnXSBVAJ.js} +1 -1
  99. package/dist/client/assets/{drawer-B75YbbdI.js → drawer-CgYedQxa.js} +1 -1
  100. package/dist/client/assets/{dropdown-menu-Ds67TSY4.js → dropdown-menu-CeCH8mHs.js} +1 -1
  101. package/dist/client/assets/{empty-state-Bta4YdzD.js → empty-state-DAsFsCjC.js} +1 -1
  102. package/dist/client/assets/{extract-connection-data-DgxJXS5w.js → extract-connection-data-Cl4dh9xd.js} +1 -1
  103. package/dist/client/assets/{file-explorer-B6MpksVl.js → file-explorer-CiRzlp-h.js} +1 -1
  104. package/dist/client/assets/{file-type-icon-BBhjyJbf.js → file-type-icon-B8g6dwx7.js} +1 -1
  105. package/dist/client/assets/{files-BIEklIkn.js → files-CnjpT0R-.js} +1 -1
  106. package/dist/client/assets/{form-I0GnjsKQ.js → form-lIcpVZFF.js} +1 -1
  107. package/dist/client/assets/{general-5tGulC2H.js → general-vSTi4cVP.js} +1 -1
  108. package/dist/client/assets/{github-repo-picker-C_zm2Ku6.js → github-repo-picker-BVbTQpq7.js} +1 -1
  109. package/dist/client/assets/{hooks-eTDNg0DR.js → hooks-_8e3OS-G.js} +1 -1
  110. package/dist/client/assets/{index-4RDnlua4.js → index-BEXD6JvL.js} +3 -3
  111. package/dist/client/assets/{index-BymC5LN8.js → index-Br5AUhF4.js} +1 -1
  112. package/dist/client/assets/{index-BN2uaF1T.js → index-CI-X-coD.js} +1 -1
  113. package/dist/client/assets/{index-GeOcC1AM.js → index-CM26Hgr_.js} +1 -1
  114. package/dist/client/assets/{index-Dhdk7EaJ.js → index-D4ObZSJy.js} +1 -1
  115. package/dist/client/assets/{index-BA_hCyLd.js → index-D91ZWx7L.js} +1 -1
  116. package/dist/client/assets/{index-DK_1_-so.js → index-DT5-MRJP.js} +1 -1
  117. package/dist/client/assets/index-Da4BCXs_.js +492 -0
  118. package/dist/client/assets/{index-DNyFrsaH.js → index-Dc3KWP0e.js} +1 -1
  119. package/dist/client/assets/{index-X6AHLbER.js → index-FSK7xtRq.js} +1 -1
  120. package/dist/client/assets/{index-D_e-AGWz.js → index-Wzf1qPRS.js} +1 -1
  121. package/dist/client/assets/{index-BuUlXZv1.js → index-gmik0o6w.js} +3 -3
  122. package/dist/client/assets/{index-redirect-BdqCP6LK.js → index-redirect-M_9QM-r9.js} +1 -1
  123. package/dist/client/assets/{index-D8aJMO1V.js → index-vLuRCk4y.js} +1 -1
  124. package/dist/client/assets/{input-DLUPJjpz.js → input-DXLjV8Um.js} +1 -1
  125. package/dist/client/assets/{integration-icon-DPwYpZT7.js → integration-icon-CJcVQIei.js} +1 -1
  126. package/dist/client/assets/{invite-member-dialog-DWZsYH7X.js → invite-member-dialog-u3fd21RJ.js} +1 -1
  127. package/dist/client/assets/{label-DUcYIAKY.js → label-CGDy7d8-.js} +1 -1
  128. package/dist/client/assets/{layout-B8T6EBXg.js → layout-DcyzuCIZ.js} +1 -1
  129. package/dist/client/assets/{login-DcZyKofL.js → login-CiW0YOXS.js} +1 -1
  130. package/dist/client/assets/{mcp-oauth-Dci8cSOd.js → mcp-oauth-Duli9hv5.js} +1 -1
  131. package/dist/client/assets/{members-BbTqeuTo.js → members-SQPRtGL7.js} +1 -1
  132. package/dist/client/assets/{monaco-editor-dTalnsYm.js → monaco-editor-BPPf6Luv.js} +1 -1
  133. package/dist/client/assets/{monitoring-stats-row-C1tE-n8d.js → monitoring-stats-row-8yQYcsLQ.js} +1 -1
  134. package/dist/client/assets/{multi-select-Cfgtgcax.js → multi-select-DEwOPq6i.js} +1 -1
  135. package/dist/client/assets/{oauth-callback-CdS7aTBF.js → oauth-callback-ButMd6DX.js} +1 -1
  136. package/dist/client/assets/{oauth-callback-ai-provider-CVxXEEWb.js → oauth-callback-ai-provider-DMZsKWRb.js} +1 -1
  137. package/dist/client/assets/{onboarding-6atU8fxu.js → onboarding-Pumdn1JU.js} +1 -1
  138. package/dist/client/assets/{org-install-BgWInxM1.js → org-install-CKF4FJd8.js} +1 -1
  139. package/dist/client/assets/{org-layout-CPBhzMru.js → org-layout-DvGPuBEh.js} +1 -1
  140. package/dist/client/assets/{organization-choice-BSaRjkdA.js → organization-choice-HvVcf-TI.js} +1 -1
  141. package/dist/client/assets/{orgs-DGzKd1EY.js → orgs-CvAcVFcq.js} +1 -1
  142. package/dist/client/assets/{page-seo-form-C-18bHzi.js → page-seo-form-DsKqt7Mm.js} +1 -1
  143. package/dist/client/assets/page-seo-sheet-BqaIHzT5.js +1 -0
  144. package/dist/client/assets/{popover-CgLqhHGP.js → popover-CTKO_kAN.js} +1 -1
  145. package/dist/client/assets/{post-editor-BaU667xO.js → post-editor-KlaAUuAS.js} +1 -1
  146. package/dist/client/assets/{primitives-CXNB8gAp.js → primitives-DsAtm5DL.js} +1 -1
  147. package/dist/client/assets/{profile-CtYiW70i.js → profile-02e5od0Q.js} +1 -1
  148. package/dist/client/assets/project-app-view-DggJEflp.js +1 -0
  149. package/dist/client/assets/record-editor-C2akOqoh.js +1 -0
  150. package/dist/client/assets/{redirect-editor-fK_i-XfS.js → redirect-editor-CsPzi8vr.js} +1 -1
  151. package/dist/client/assets/registry-CycJdV8D.js +2 -0
  152. package/dist/client/assets/{registry-layout-CzJnSkGi.js → registry-layout-CyFCUeE2.js} +1 -1
  153. package/dist/client/assets/{reports-BLso3NNn.js → reports-BsiX4_A6.js} +1 -1
  154. package/dist/client/assets/{require-capability-DJUF6EfI.js → require-capability-BZBVRkKd.js} +1 -1
  155. package/dist/client/assets/{required-auth-layout-CY6VIKkl.js → required-auth-layout-DD8XtcaG.js} +1 -1
  156. package/dist/client/assets/{reset-password-DDDOBPpI.js → reset-password-DTbRcUEl.js} +1 -1
  157. package/dist/client/assets/{roles-DiP4REKC.js → roles-DWH92L6e.js} +1 -1
  158. package/dist/client/assets/{search-input-DOMBq2Er.js → search-input-DZJIbmEn.js} +1 -1
  159. package/dist/client/assets/{secrets-DPYYlx9C.js → secrets-iSLNts2L.js} +1 -1
  160. package/dist/client/assets/sections-editor-Ds-TbaCj.js +2 -0
  161. package/dist/client/assets/{select-BCZLKjJN.js → select-CLa8-PWY.js} +1 -1
  162. package/dist/client/assets/{select-model-CFjdb8F4.js → select-model-DAC8p6XP.js} +1 -1
  163. package/dist/client/assets/{self-tool-result-DeCekO3f.js → self-tool-result-CoHAZ64x.js} +1 -1
  164. package/dist/client/assets/{seo-editor-C_DByLik.js → seo-editor-CzofNAOf.js} +1 -1
  165. package/dist/client/assets/{settings-layout-qfgj2V21.js → settings-layout-qfCiQQJZ.js} +1 -1
  166. package/dist/client/assets/{settings-section-CWj3_FdW.js → settings-section-NxvA_-hs.js} +1 -1
  167. package/dist/client/assets/{shell-controls-sgm1Ghqr.js → shell-controls-th4EsEqc.js} +1 -1
  168. package/dist/client/assets/{shell-layout-A4Klwqzt.js → shell-layout-D1tmT8P_.js} +1 -1
  169. package/dist/client/assets/{sidebar-BZQNMiqx.js → sidebar-D5TYZm99.js} +1 -1
  170. package/dist/client/assets/{skeleton-CXG2AFFX.js → skeleton-Cgx6QdQo.js} +1 -1
  171. package/dist/client/assets/{sso-tXM51xor.js → sso-elKwCqJL.js} +1 -1
  172. package/dist/client/assets/{store-D6KLtEh2.js → store-C9qtasId.js} +1 -1
  173. package/dist/client/assets/store-registry-qKWBJ2vv.js +2 -0
  174. package/dist/client/assets/{studio-tools-BanQp4TZ.js → studio-tools-DyoqIWNE.js} +1 -1
  175. package/dist/client/assets/{switch-DHbzmpde.js → switch-fvndlG7e.js} +1 -1
  176. package/dist/client/assets/{table-wjz_t519.js → table-DRnpojDN.js} +1 -1
  177. package/dist/client/assets/{tabs-BrQ8T12Z.js → tabs-xY2VRpIZ.js} +1 -1
  178. package/dist/client/assets/{textarea-yNbPp_V1.js → textarea-gc-qoQMu.js} +1 -1
  179. package/dist/client/assets/{toggle-group-BLBd1Na5.js → toggle-group-Bno-nFB9.js} +1 -1
  180. package/dist/client/assets/{toolbar-Cge5lcNV.js → toolbar-Bke6Fzcp.js} +1 -1
  181. package/dist/client/assets/{toolbar-icon-button-CWELZhBo.js → toolbar-icon-button-Et9eR2aL.js} +1 -1
  182. package/dist/client/assets/{tooltip-B8bYd-9r.js → tooltip-KLVUr9oF.js} +1 -1
  183. package/dist/client/assets/{use-ai-providers-S5QPPawK.js → use-ai-providers-CqOtTqY0.js} +1 -1
  184. package/dist/client/assets/{use-api-keys-Cl5n0LhD.js → use-api-keys-D4BBtvYl.js} +1 -1
  185. package/dist/client/assets/{use-automations-Du6nHRym.js → use-automations-CdTtxiWz.js} +1 -1
  186. package/dist/client/assets/{use-autosave-BDYAiYhJ.js → use-autosave-CFeMUg5v.js} +1 -1
  187. package/dist/client/assets/{use-capability-BiwL5b_x.js → use-capability-BmQ3xCyH.js} +1 -1
  188. package/dist/client/assets/{use-clock-tick-7IVs3KNJ.js → use-clock-tick-BfRCrtO9.js} +1 -1
  189. package/dist/client/assets/{use-connection-I-DnXuJH.js → use-connection-dGy3F3wj.js} +1 -1
  190. package/dist/client/assets/{use-copy-DTsOKQvO.js → use-copy-BrN5lHME.js} +1 -1
  191. package/dist/client/assets/{use-create-virtual-mcp-dWUtRtkr.js → use-create-virtual-mcp-DrGosIDu.js} +1 -1
  192. package/dist/client/assets/{use-debounced-autosave-BMOZjMIM.js → use-debounced-autosave-ChsIDO4V.js} +1 -1
  193. package/dist/client/assets/{use-debounced-value-DZJqrsuG.js → use-debounced-value-ChB_kdik.js} +1 -1
  194. package/dist/client/assets/{use-deco-credits-UyEP8mkX.js → use-deco-credits-IXGN3Pz9.js} +1 -1
  195. package/dist/client/assets/{use-decopilot-events-BNKUFs1m.js → use-decopilot-events-KHFtAPDT.js} +1 -1
  196. package/dist/client/assets/{use-delete-connection-CLvEM5JF.js → use-delete-connection-x1F-j9n0.js} +1 -1
  197. package/dist/client/assets/{use-deployment-admin-D40uSnVH.js → use-deployment-admin-B4nkRKp4.js} +1 -1
  198. package/dist/client/assets/{use-file-configs-Da4n5Wk_.js → use-file-configs-BV5YdGD9.js} +1 -1
  199. package/dist/client/assets/{use-infinite-scroll-CjI765bv.js → use-infinite-scroll-IFVHS84q.js} +1 -1
  200. package/dist/client/assets/{use-join-requests-_EoYHc02.js → use-join-requests-BA1q1NSK.js} +1 -1
  201. package/dist/client/assets/{use-mcp-auth-status-Cprl0lqq.js → use-mcp-auth-status-Ck13L_Ss.js} +1 -1
  202. package/dist/client/assets/{use-mcp-client-Dggs_wtL.js → use-mcp-client-GDLFUrdz.js} +1 -1
  203. package/dist/client/assets/{use-mcp-tools-BZb2_KlI.js → use-mcp-tools-Cg6-dfhh.js} +1 -1
  204. package/dist/client/assets/{use-members-DTLixo_2.js → use-members-Cc4x2yPK.js} +1 -1
  205. package/dist/client/assets/{use-mobile-D_MHSYLt.js → use-mobile-Cug5-uN5.js} +1 -1
  206. package/dist/client/assets/{use-navigate-to-agent-D8r2um29.js → use-navigate-to-agent-BnAEkEIp.js} +1 -1
  207. package/dist/client/assets/{use-org-auth-client-D8JQ0qMm.js → use-org-auth-client-sPgvD3p2.js} +1 -1
  208. package/dist/client/assets/{use-org-sso-BsOWFttQ.js → use-org-sso-lyDWnw-r.js} +1 -1
  209. package/dist/client/assets/{use-organization-roles-BsjAqShS.js → use-organization-roles-D3oaZ9VC.js} +1 -1
  210. package/dist/client/assets/{use-organization-settings-Cfo4apco.js → use-organization-settings-BImkcQCH.js} +1 -1
  211. package/dist/client/assets/{use-registry-app-Ccw5Zgoa.js → use-registry-app-C2Ie4sAT.js} +1 -1
  212. package/dist/client/assets/{use-registry-connections-DL4Qbjni.js → use-registry-connections-CVB4if3f.js} +1 -1
  213. package/dist/client/assets/{use-secrets-CGKvz62m.js → use-secrets-Du9rEkxB.js} +1 -1
  214. package/dist/client/assets/{use-status-sounds-CAtTty8v.js → use-status-sounds-BFAveT77.js} +1 -1
  215. package/dist/client/assets/{use-view-mode-Butv57c-.js → use-view-mode-D_85DX2w.js} +1 -1
  216. package/dist/client/assets/{use-virtual-mcp-DcKgvXvy.js → use-virtual-mcp-BdH1VOY_.js} +1 -1
  217. package/dist/client/assets/useInfiniteQuery-CEXGRrO5.js +1 -0
  218. package/dist/client/assets/{useQueries-CCY8hrOc.js → useQueries-BW-x5W-N.js} +1 -1
  219. package/dist/client/assets/{useRouterState-BmgvsVqw.js → useRouterState-CFmvF0_D.js} +1 -1
  220. package/dist/client/assets/useSuspenseInfiniteQuery-WzpGimQB.js +1 -0
  221. package/dist/client/assets/{users-BrpQL4K3.js → users-Bur9O3Nn.js} +1 -1
  222. package/dist/client/assets/{variant-calendar-DqtEssYW.js → variant-calendar-DkkuOf3a.js} +1 -1
  223. package/dist/client/assets/view-mode-toggle-CK_9GHTo.js +1 -0
  224. package/dist/client/index.html +1 -1
  225. package/dist/server/cli.js +440 -441
  226. package/dist/server/migrate.js +5 -5
  227. package/dist/server/server.js +253 -253
  228. package/package.json +1 -1
  229. package/dist/client/assets/index-9mX7itVS.js +0 -492
  230. package/dist/client/assets/page-seo-sheet-Cq6MSxcj.js +0 -1
  231. package/dist/client/assets/project-app-view-B-ZNnyXW.js +0 -1
  232. package/dist/client/assets/record-editor-CyFKknlv.js +0 -1
  233. package/dist/client/assets/registry-vH1Mc4gB.js +0 -2
  234. package/dist/client/assets/sections-editor-CK1krdST.js +0 -2
  235. package/dist/client/assets/store-registry-DEiSeyxl.js +0 -2
  236. package/dist/client/assets/useInfiniteQuery-BkEklLkA.js +0 -1
  237. package/dist/client/assets/useSuspenseInfiniteQuery-D1lf4BBq.js +0 -1
  238. package/dist/client/assets/view-mode-toggle-BRNVwU1R.js +0 -1
@@ -1038,19 +1038,19 @@ var Tu=Object.defineProperty;var cu=(t)=>t;function ru(t,n){this[t]=cu.bind(null
1038
1038
  create index idx_org_billing_benefits_pending
1039
1039
  on organization_billing (updated_at)
1040
1040
  where benefits_reference_id is not null
1041
- `.execute(t)}async function Ty(t){await Ii`drop index if exists idx_org_billing_benefits_pending`.execute(t)}var cy={"001-initial-schema":Ct,"002-organization-settings":Nt,"003-connection-schema-align":wt,"004-remove-models-binding":ft,"005-connection-configuration":pt,"006-add-views-to-settings":Et,"007-monitoring-logs":Kt,"008-event-bus":zt,"009-drop-audit-logs":Pt,"010-gateways":ht,"011-gateway-icon":Ut,"012-gateway-tool-selection-mode":st,"013-monitoring-user-agent-gateway":kt,"014-gateway-resources-prompts":Dt,"015-monitoring-properties":jt,"016-downstream-token-client-info":Jt,"017-downstream-token-remove-userid":Lt,"018-drop-gateway-tool-selection-strategy":Rt,"019-remove-gateway-is-default":Wt,"020-enabled-plugins":$t,"021-threads":Xt,"022-rename-gateway-to-virtual-mcp":Qt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":Zt,"025-add-monitoring-virtual-mcp-id":Ft,"026-restrict-child-connection-delete":Mt,"027-update-management-mcp-url":Yt,"028-update-management-mcp-to-self":St,"029-add-updated-by-to-connections":Ot,"030-member-tags":It,"031-add-dependency-mode":Gt,"032-projects":gt,"033-thread-status":vt,"034-monitoring-dashboards":Vt,"035-project-connections":qt,"036-update-registry-url":lt,"037-ai-provider-keys":dt,"038-oauth-pkce-states":bt,"039-automations":tn,"040-replace-next-run-at-with-last-run-at":nn,"041-ai-provider-keys-unique-constraint":en,"042-rename-mesh-mcp-to-cms-mcp":un,"043-rename-cms-mcp-to-deco-cms":an,"044-drop-connections-tools-column":_n,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":xn,"047-add-next-run-at":yn,"048-merge-projects-agents":cn,"049-remove-org-admin-projects":rn,"050-durable-agent-runs":Cn,"051-org-sso":wn,"052-thread-agent-ids":fn,"053-registry-config":pn,"054-connection-slug":Kn,"055-spaces":zn,"056-automation-project-scope":Pn,"057-thread-virtual-mcp-id":hn,"058-trigger-callback-tokens":Un,"059-kv":sn,"060-member-index":kn,"061-downstream-token-connection-index":Dn,"062-private-registry":jn,"063-event-subscriptions-enabled-boolean":Jn,"064-brand-context":Ln,"065-organization-domains":Rn,"066-brand-context-structured":Wn,"067-threads-metadata":$n,"068-threads-branch":Xn,"069-sandbox-runner-state":Qn,"070-model-categories":An,"071-default-home-agents":Zn,"072-ai-provider-key-preset-id":Fn,"073-backfill-basic-usage-roles":Mn,"074-sandbox-runner-state-handle-nonunique":Hn,"075-thread-inflight-async-jobs":Yn,"076-automations-drop-agent-json":Bn,"077-tier-only-model-selection":On,"078-automation-tool-call-kind":In,"079-strip-legacy-freestyle-vm-map-entries":Gn,"080-async-research-jobs":gn,"081-async-research-jobs-result-content":vn,"082-secrets":Vn,"083-thread-run-locally":qn,"084-drop-host-sandbox-rows":ln,"085-rename-runner-kind":dn,"086-thread-pins-and-vm-map-rekey":bn,"087-fix-vm-map-rekey":te,"088-purge-cli-activate-keys":ne,"089-rename-remote-user-to-desktop":ee,"090-automation-webhook-triggers":ie,"091-organization-domains-allow-multi":ue,"092-sandbox-naming-uniformization":ae,"093-backfill-global-search-basic-usage":_e,"094-org-file-configs":me,"095-remove-automation-tool-call-kind":xe,"096-org-file-configs-public-url-base":ye,"097-drop-local-docker-sandbox-state":ce,"098-thread-message-parts":re,"099-run-fence":Ce,"100-link-transport":Ne,"101-cancel-requested-at":we,"102-observational-agent":fe,"103-revert-observational-agent":pe,"104-agent-sandbox-provider-kind":Ke,"105-org-fs":ze,"106-automation-tools":Pe,"107-org-fs-public-org":he,"108-automation-max-agent-steps":Ue,"109-thread-message-parts-per-message-seq":se,"110-backfill-ghs-token-expiry":ke,"111-org-fs-thread-id":De,"112-org-file-configs-credential-type":je,"113-thread-failure-reason":Je,"114-run-acked-seq":Le,"115-thread-projected-seq":Re,"116-org-sites":We,"117-org-file-configs-site-slug":$e,"118-organization-domains-multi-verify":Xe,"119-organization-join-requests":Qe,"120-org-fs-read-public":Ae,"121-org-fs-share-password":Ze,"122-split-web-research-tier":He,"123-connection-credential-vault":Ye,"124-drop-thread-projected-seq":Be,"125-github-child-single-parent":Se,"126-task-board":Ie,"127-task-board-due-date":Ge,"128-reports-only":ge,"129-task-board-assigned-by":ve,"130-task-board-thread-id":Ve,"131-task-board-thread-link-cascade":qe,"132-task-board-item-prs":le,"133-dedupe-duplicate-members":de,"134-drop-task-board-enabled":be,"135-task-board-item-fk-cascade":ti,"136-task-board-import-idempotency":ni,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":ii,"139-organization-billing":ui,"140-seat-change-log":ai,"141-benefits-sync-pending":_i,"142-stripe-event-watermark":oi,"143-armed-report-url":mi,"144-benefits-pending-index":xi},yi=cy;import{getMigrations as Gy}from"better-auth/db";import{sso as gy}from"@better-auth/sso";import{organization as vy}from"@decocms/better-auth/plugins";import{admin as Vy,apiKey as qy,jwt as ly,magicLink as dy,mcp as by,openAPI as tT}from"better-auth/plugins";import{emailOTP as nT}from"better-auth/plugins/email-otp";import{Kysely as My,PostgresDialect as eu}from"kysely";import{Pool as iu}from"pg";import{homedir as ry}from"os";var Cy=new Set(["all","worker","api"]);function Ny(t){let n=(t??"").trim();return Cy.has(n)?n:"all"}var wy=new Set(["production","development","test"]);function fy(t){let n=(t??"").trim();return wy.has(n)?n:"development"}function J(t){return t==="true"||t==="1"}function py(t){if(t===void 0||t==="")return;return J(t)}function I(t,n,e){if(n===void 0||n==="")return e;let a=Number(n);if(!Number.isSafeInteger(a)||a<=0)throw Error(`${t} must be a positive integer`);return a}function Ey(t,n){if(n===void 0||n==="")return;let e=Number(n);if(!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function Ky(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gi(t){if(!t)return null;try{let e=new URL(t).hostname.replace(/^\[|\]$/g,"");if(e==="localhost"||e==="127.0.0.1"||e==="::1")return null;return t}catch{return null}}var zy=new Set(["agent-sandbox","user-desktop"]);function Py(t){let n=(t??"").trim(),e=n.length>0?n:"user-desktop";if(e==="cluster")return"agent-sandbox";if(!zy.has(e))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return e}function gi(t,n){let e=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${ry()}/deco`,a=t.localMode,u=t.nodeEnv||fy(n.NODE_ENV),_=n.NATS_URL||"nats://localhost:4222",m=py(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:u,port:I("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,dataDir:e,databasePgSsl:J(n.DATABASE_PG_SSL),databasePoolMax:I("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:a,disableRateLimit:J(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((x)=>x.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Ey("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:I("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:I("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:I("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:J(n.ENABLE_DECO_IMPORT),billingEnforced:J(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:Ky(n.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(n.DISABLE_ORGFS_MOUNTS),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:n.S3_FORCE_PATH_STYLE===void 0||n.S3_FORCE_PATH_STYLE===""||n.S3_FORCE_PATH_STYLE==="true"||n.S3_FORCE_PATH_STYLE==="1",monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:Ny(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:Py(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:Gi(n.DATABASE_URL),externalNatsUrl:Gi(_),skipMigrations:t.skipMigrations}}var xt=null;function Q(){if(!xt)hy();return xt}function hy(){if(xt)return;let t={...process.env},n=gi({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);xt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL??"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((e)=>e.trim()).filter(Boolean)})}import{createContextKey as Jy,metrics as Ly,propagation as yC,ROOT_CONTEXT as TC,SpanStatusCode as cC,trace as Ry}from"@opentelemetry/api";import{logs as Wy,SeverityNumber as Ti}from"@opentelemetry/api-logs";import{OTLPLogExporter as NC}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as $y}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as pC}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as KC}from"@opentelemetry/instrumentation-runtime-node";import{context as ur,propagation as ar,SpanKind as _r,SpanStatusCode as or}from"@opentelemetry/api";var xr=globalThis.fetch;import{ExportResultCode as zr}from"@opentelemetry/core";import{ExportResultCode as yt}from"@opentelemetry/core";import{mkdir as Uy,rename as sy,writeFile as ky}from"fs/promises";import{join as Tt}from"path";class ct{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((e)=>{console.error("[NDJSONExporter] Timer flush failed:",e)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:yt.FAILED});for(let n of t){let e=JSON.stringify(n),a=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:a,json:e}),this.bufferBytes+=Buffer.byteLength(e,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:yt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:yt.FAILED}});return Promise.resolve({code:yt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let u of t){let _=n.get(u.partition);if(!_)_=[],n.set(u.partition,_);_.push(u.json)}let e=await Promise.allSettled(Array.from(n.entries()).map(([u,_])=>this.writeNDJSON(_,u).then(()=>u))),a=e.find((u)=>u.status==="rejected");if(a){let u=new Set;for(let m of e)if(m.status==="fulfilled")u.add(m.value);let _=t.filter((m)=>!u.has(m.partition));this.bufferItems=_.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw a.reason}}async writeNDJSON(t,n){let e=new Date,a=[String(e.getUTCFullYear()),String(e.getUTCMonth()+1).padStart(2,"0"),String(e.getUTCDate()).padStart(2,"0"),String(e.getUTCHours()).padStart(2,"0")],u=n?Tt(this.basePath,n,...a):Tt(this.basePath,...a);if(!this.knownDirs.has(u))await Uy(u,{recursive:!0,mode:448}),this.knownDirs.add(u);let _=`${crypto.randomUUID()}.ndjson`,m=Tt(u,`.${_}.tmp`),o=Tt(u,_),x=t.join(`
1041
+ `.execute(t)}async function Ty(t){await Ii`drop index if exists idx_org_billing_benefits_pending`.execute(t)}var cy={"001-initial-schema":Ct,"002-organization-settings":Nt,"003-connection-schema-align":wt,"004-remove-models-binding":ft,"005-connection-configuration":pt,"006-add-views-to-settings":Et,"007-monitoring-logs":Kt,"008-event-bus":zt,"009-drop-audit-logs":Pt,"010-gateways":ht,"011-gateway-icon":Ut,"012-gateway-tool-selection-mode":st,"013-monitoring-user-agent-gateway":kt,"014-gateway-resources-prompts":Dt,"015-monitoring-properties":jt,"016-downstream-token-client-info":Jt,"017-downstream-token-remove-userid":Lt,"018-drop-gateway-tool-selection-strategy":Rt,"019-remove-gateway-is-default":Wt,"020-enabled-plugins":$t,"021-threads":Xt,"022-rename-gateway-to-virtual-mcp":Qt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":Zt,"025-add-monitoring-virtual-mcp-id":Ft,"026-restrict-child-connection-delete":Mt,"027-update-management-mcp-url":Yt,"028-update-management-mcp-to-self":St,"029-add-updated-by-to-connections":Ot,"030-member-tags":It,"031-add-dependency-mode":Gt,"032-projects":gt,"033-thread-status":vt,"034-monitoring-dashboards":Vt,"035-project-connections":qt,"036-update-registry-url":lt,"037-ai-provider-keys":dt,"038-oauth-pkce-states":bt,"039-automations":tn,"040-replace-next-run-at-with-last-run-at":nn,"041-ai-provider-keys-unique-constraint":en,"042-rename-mesh-mcp-to-cms-mcp":un,"043-rename-cms-mcp-to-deco-cms":an,"044-drop-connections-tools-column":_n,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":xn,"047-add-next-run-at":yn,"048-merge-projects-agents":cn,"049-remove-org-admin-projects":rn,"050-durable-agent-runs":Cn,"051-org-sso":wn,"052-thread-agent-ids":fn,"053-registry-config":pn,"054-connection-slug":Kn,"055-spaces":zn,"056-automation-project-scope":Pn,"057-thread-virtual-mcp-id":hn,"058-trigger-callback-tokens":Un,"059-kv":sn,"060-member-index":kn,"061-downstream-token-connection-index":Dn,"062-private-registry":jn,"063-event-subscriptions-enabled-boolean":Jn,"064-brand-context":Ln,"065-organization-domains":Rn,"066-brand-context-structured":Wn,"067-threads-metadata":$n,"068-threads-branch":Xn,"069-sandbox-runner-state":Qn,"070-model-categories":An,"071-default-home-agents":Zn,"072-ai-provider-key-preset-id":Fn,"073-backfill-basic-usage-roles":Mn,"074-sandbox-runner-state-handle-nonunique":Hn,"075-thread-inflight-async-jobs":Yn,"076-automations-drop-agent-json":Bn,"077-tier-only-model-selection":On,"078-automation-tool-call-kind":In,"079-strip-legacy-freestyle-vm-map-entries":Gn,"080-async-research-jobs":gn,"081-async-research-jobs-result-content":vn,"082-secrets":Vn,"083-thread-run-locally":qn,"084-drop-host-sandbox-rows":ln,"085-rename-runner-kind":dn,"086-thread-pins-and-vm-map-rekey":bn,"087-fix-vm-map-rekey":te,"088-purge-cli-activate-keys":ne,"089-rename-remote-user-to-desktop":ee,"090-automation-webhook-triggers":ie,"091-organization-domains-allow-multi":ue,"092-sandbox-naming-uniformization":ae,"093-backfill-global-search-basic-usage":_e,"094-org-file-configs":me,"095-remove-automation-tool-call-kind":xe,"096-org-file-configs-public-url-base":ye,"097-drop-local-docker-sandbox-state":ce,"098-thread-message-parts":re,"099-run-fence":Ce,"100-link-transport":Ne,"101-cancel-requested-at":we,"102-observational-agent":fe,"103-revert-observational-agent":pe,"104-agent-sandbox-provider-kind":Ke,"105-org-fs":ze,"106-automation-tools":Pe,"107-org-fs-public-org":he,"108-automation-max-agent-steps":Ue,"109-thread-message-parts-per-message-seq":se,"110-backfill-ghs-token-expiry":ke,"111-org-fs-thread-id":De,"112-org-file-configs-credential-type":je,"113-thread-failure-reason":Je,"114-run-acked-seq":Le,"115-thread-projected-seq":Re,"116-org-sites":We,"117-org-file-configs-site-slug":$e,"118-organization-domains-multi-verify":Xe,"119-organization-join-requests":Qe,"120-org-fs-read-public":Ae,"121-org-fs-share-password":Ze,"122-split-web-research-tier":He,"123-connection-credential-vault":Ye,"124-drop-thread-projected-seq":Be,"125-github-child-single-parent":Se,"126-task-board":Ie,"127-task-board-due-date":Ge,"128-reports-only":ge,"129-task-board-assigned-by":ve,"130-task-board-thread-id":Ve,"131-task-board-thread-link-cascade":qe,"132-task-board-item-prs":le,"133-dedupe-duplicate-members":de,"134-drop-task-board-enabled":be,"135-task-board-item-fk-cascade":ti,"136-task-board-import-idempotency":ni,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":ii,"139-organization-billing":ui,"140-seat-change-log":ai,"141-benefits-sync-pending":_i,"142-stripe-event-watermark":oi,"143-armed-report-url":mi,"144-benefits-pending-index":xi},yi=cy;import{getMigrations as gy}from"better-auth/db";import{sso as vy}from"@better-auth/sso";import{organization as Vy}from"@decocms/better-auth/plugins";import{admin as qy,apiKey as ly,jwt as dy,magicLink as by,mcp as tT,openAPI as nT}from"better-auth/plugins";import{emailOTP as eT}from"better-auth/plugins/email-otp";import{Kysely as Hy,PostgresDialect as eu}from"kysely";import{Pool as iu}from"pg";import{homedir as ry}from"os";var Cy=new Set(["all","worker","api"]);function Ny(t){let n=(t??"").trim();return Cy.has(n)?n:"all"}var wy=new Set(["production","development","test"]);function fy(t){let n=(t??"").trim();return wy.has(n)?n:"development"}function J(t){return t==="true"||t==="1"}function py(t){if(t===void 0||t==="")return;return J(t)}function I(t,n,e){if(n===void 0||n==="")return e;let a=Number(n);if(!Number.isSafeInteger(a)||a<=0)throw Error(`${t} must be a positive integer`);return a}function Ey(t,n){if(n===void 0||n==="")return;let e=Number(n);if(!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function Ky(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gi(t){if(!t)return null;try{let e=new URL(t).hostname.replace(/^\[|\]$/g,"");if(e==="localhost"||e==="127.0.0.1"||e==="::1")return null;return t}catch{return null}}function zy(t){return t===void 0||t===""||t==="true"||t==="1"}var Py=new Set(["agent-sandbox","user-desktop"]);function hy(t){let n=(t??"").trim(),e=n.length>0?n:"user-desktop";if(e==="cluster")return"agent-sandbox";if(!Py.has(e))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return e}function gi(t,n){let e=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${ry()}/deco`,a=t.localMode,u=t.nodeEnv||fy(n.NODE_ENV),_=n.NATS_URL||"nats://localhost:4222",m=py(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:u,port:I("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,dataDir:e,databasePgSsl:J(n.DATABASE_PG_SSL),databasePoolMax:I("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:a,disableRateLimit:J(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((x)=>x.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Ey("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:I("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:J(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:I("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:I("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:J(n.ENABLE_DECO_IMPORT),billingEnforced:J(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:Ky(n.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:J(n.DISABLE_ORGFS_MOUNTS),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:zy(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:Ny(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:hy(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:Gi(n.DATABASE_URL),externalNatsUrl:Gi(_),skipMigrations:t.skipMigrations}}var xt=null;function Q(){if(!xt)Uy();return xt}function Uy(){if(xt)return;let t={...process.env},n=gi({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);xt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL??"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((e)=>e.trim()).filter(Boolean)})}import{createContextKey as Ly,metrics as Ry,propagation as TC,ROOT_CONTEXT as cC,SpanStatusCode as rC,trace as Wy}from"@opentelemetry/api";import{logs as $y,SeverityNumber as Ti}from"@opentelemetry/api-logs";import{OTLPLogExporter as wC}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as Xy}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as EC}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as zC}from"@opentelemetry/instrumentation-runtime-node";import{context as ar,propagation as _r,SpanKind as or,SpanStatusCode as mr}from"@opentelemetry/api";var yr=globalThis.fetch;import{ExportResultCode as Pr}from"@opentelemetry/core";import{ExportResultCode as yt}from"@opentelemetry/core";import{mkdir as sy,rename as ky,writeFile as Dy}from"fs/promises";import{join as Tt}from"path";class ct{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((e)=>{console.error("[NDJSONExporter] Timer flush failed:",e)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:yt.FAILED});for(let n of t){let e=JSON.stringify(n),a=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:a,json:e}),this.bufferBytes+=Buffer.byteLength(e,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:yt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:yt.FAILED}});return Promise.resolve({code:yt.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let u of t){let _=n.get(u.partition);if(!_)_=[],n.set(u.partition,_);_.push(u.json)}let e=await Promise.allSettled(Array.from(n.entries()).map(([u,_])=>this.writeNDJSON(_,u).then(()=>u))),a=e.find((u)=>u.status==="rejected");if(a){let u=new Set;for(let m of e)if(m.status==="fulfilled")u.add(m.value);let _=t.filter((m)=>!u.has(m.partition));this.bufferItems=_.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw a.reason}}async writeNDJSON(t,n){let e=new Date,a=[String(e.getUTCFullYear()),String(e.getUTCMonth()+1).padStart(2,"0"),String(e.getUTCDate()).padStart(2,"0"),String(e.getUTCHours()).padStart(2,"0")],u=n?Tt(this.basePath,n,...a):Tt(this.basePath,...a);if(!this.knownDirs.has(u))await sy(u,{recursive:!0,mode:448}),this.knownDirs.add(u);let _=`${crypto.randomUUID()}.ndjson`,m=Tt(u,`.${_}.tmp`),o=Tt(u,_),x=t.join(`
1042
1042
  `)+`
1043
- `;await ky(m,x,{mode:384}),await sy(m,o)}}import{ExportResultCode as kr}from"@opentelemetry/core";import{AggregationTemporality as jr,DataPointType as Jr}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Qr}from"@opentelemetry/core";var Mr=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as JC,LoggerProvider as LC}from"@opentelemetry/sdk-logs";import{detectResources as WC,envDetector as $C,hostDetector as XC,osDetector as QC,processDetector as AC,resourceFromAttributes as ZC}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as MC}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Br}from"@opentelemetry/api-logs";import{NodeSDK as BC}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as OC,SamplingDecision as A}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as gr}from"@opentelemetry/api";var Xy="__d",Qy=Jy("Current request"),Ay=1;var Vi=(t)=>{let e=new URL(t.url).searchParams.get(Xy);if(e==="")return crypto.randomUUID();if(!e)e=t.headers.get("x-trace-debug-id");return e};class qi{inner;constructor(t){this.inner=t}shouldSample(t,n,e,a,u,_){let m=t.getValue(Qy);if(!m){if(this.inner)return this.inner.shouldSample(t,n,e,a,u,_);return{decision:A.RECORD_AND_SAMPLED}}let o=Vi(m);if(o)return{decision:A.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":o}};if(this.inner){let x=this.inner.shouldSample(t,n,e,a,u,_);if(x.decision===A.RECORD_AND_SAMPLED){let y=crypto.randomUUID();x.attributes={...x.attributes??{},"trace.debug.id":y}}return x}return{decision:A.NOT_RECORD}}toString(){return"DebugSampler"}}class li{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:A.RECORD_AND_SAMPLED};return{decision:A.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var GC=new $y({preventServerStart:!0}),gC=new qi(new li(Ay));var vi=Ry.getTracer("studio","1.0.0"),G=Ly.getMeter("studio","1.0.0"),Zy=Wy.getLogger("studio","1.0.0"),ci=(t,n,e)=>{let a={},u=e,_=e[e.length-1];if(_!==null&&typeof _==="object"&&!Array.isArray(_)&&!(_ instanceof Error)&&Object.getPrototypeOf(_)===Object.prototype)a=_,u=e.slice(0,-1);let m=u.map((o)=>{if(o instanceof Error)return`${o.name}: ${o.message}`;if(typeof o==="object")try{return JSON.stringify(o)}catch{return"[Object]"}return String(o)}).join(" ");Zy.emit({severityNumber:t,severityText:n,body:m,attributes:{"log.source":"console",...a}})},ri={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{ci(Ti.ERROR,"ERROR",t),ri.error(...t)};console.warn=(...t)=>{ci(Ti.WARN,"WARN",t),ri.warn(...t)};console.debug=(...t)=>{ci(Ti.DEBUG,"DEBUG",t),ri.debug(...t)};var Ci,di=0,Ni=500;function Fy(){if(Ci)return;let t=performance.now()+Ni;Ci=setInterval(()=>{let n=performance.now();di=Math.max(0,n-t),t=n+Ni},Ni),Ci.unref?.()}function bi(){return Fy(),di}var Hy=()=>G.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),tu=()=>G.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),nu=400,Yy=100,By=(t)=>(n)=>{let e={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>nu){let a=bi(),u=a>nu/2;console.error(u?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(a),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:rt()}})}if(Hy().record(n.queryDurationMillis,e),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function Sy(t){let n=t.connect.bind(t);return t.connect=(e)=>{if(typeof e==="function")return n(e);let a=performance.now(),u=rt(),_=t.idleCount===0&&t.totalCount>=u,m=t.idleCount;return n().then((o)=>{let x=performance.now()-a;if(tu().record(x,{"db.pool.outcome":_?"contended":"available"}),x>Yy)if(_)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:x,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:u});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:x,idleAtStart:m,total:t.totalCount,max:u});return o},(o)=>{throw tu().record(performance.now()-a,{"db.pool.outcome":"error"}),o})},t}var uu={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function au(){try{return Q().databasePgSsl}catch{return!1}}function rt(){try{return Q().databasePoolMax}catch{return 10}}function Oy(t){let n=Sy(new iu({connectionString:t,max:rt(),ssl:au(),...uu})),e=new eu({pool:n});return{type:"postgres",db:new My({dialect:e,log:By(n)}),pool:n}}function v(){return Q().databaseUrl}function _u(t){let n=t||v();return new eu({pool:new iu({connectionString:n,max:rt(),ssl:au(),...uu})})}function Iy(t){let n=t||v();return Oy(n)}async function ou(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===g)g=null}var g=null;function wi(){if(!g)g=Iy(v());return g}async function mu(t){let e={database:_u(t||v()),plugins:[vy({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Vy(),qy(),ly(),tT(),by({loginPage:"/login"}),gy(),dy({sendMagicLink:async()=>{}}),nT({sendVerificationOTP:async()=>{}})]},{toBeAdded:a,toBeCreated:u,runMigrations:_}=await Gy(e);if(!a.length&&!u.length)return"up to date";return await _(),`${u.length+a.length} table(s) migrated`}async function yu(t,n){return(await Z`
1043
+ `;await Dy(m,x,{mode:384}),await ky(m,o)}}import{ExportResultCode as Dr}from"@opentelemetry/core";import{AggregationTemporality as Jr,DataPointType as Lr}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Ar}from"@opentelemetry/core";var Hr=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as LC,LoggerProvider as RC}from"@opentelemetry/sdk-logs";import{detectResources as $C,envDetector as XC,hostDetector as QC,osDetector as AC,processDetector as ZC,resourceFromAttributes as FC}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as HC}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Sr}from"@opentelemetry/api-logs";import{NodeSDK as SC}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as IC,SamplingDecision as A}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as vr}from"@opentelemetry/api";var Qy="__d",Ay=Ly("Current request"),Zy=1;var Vi=(t)=>{let e=new URL(t.url).searchParams.get(Qy);if(e==="")return crypto.randomUUID();if(!e)e=t.headers.get("x-trace-debug-id");return e};class qi{inner;constructor(t){this.inner=t}shouldSample(t,n,e,a,u,_){let m=t.getValue(Ay);if(!m){if(this.inner)return this.inner.shouldSample(t,n,e,a,u,_);return{decision:A.RECORD_AND_SAMPLED}}let o=Vi(m);if(o)return{decision:A.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":o}};if(this.inner){let x=this.inner.shouldSample(t,n,e,a,u,_);if(x.decision===A.RECORD_AND_SAMPLED){let y=crypto.randomUUID();x.attributes={...x.attributes??{},"trace.debug.id":y}}return x}return{decision:A.NOT_RECORD}}toString(){return"DebugSampler"}}class li{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:A.RECORD_AND_SAMPLED};return{decision:A.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var gC=new Xy({preventServerStart:!0}),vC=new qi(new li(Zy));var vi=Wy.getTracer("studio","1.0.0"),G=Ry.getMeter("studio","1.0.0"),Fy=$y.getLogger("studio","1.0.0"),ci=(t,n,e)=>{let a={},u=e,_=e[e.length-1];if(_!==null&&typeof _==="object"&&!Array.isArray(_)&&!(_ instanceof Error)&&Object.getPrototypeOf(_)===Object.prototype)a=_,u=e.slice(0,-1);let m=u.map((o)=>{if(o instanceof Error)return`${o.name}: ${o.message}`;if(typeof o==="object")try{return JSON.stringify(o)}catch{return"[Object]"}return String(o)}).join(" ");Fy.emit({severityNumber:t,severityText:n,body:m,attributes:{"log.source":"console",...a}})},ri={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{ci(Ti.ERROR,"ERROR",t),ri.error(...t)};console.warn=(...t)=>{ci(Ti.WARN,"WARN",t),ri.warn(...t)};console.debug=(...t)=>{ci(Ti.DEBUG,"DEBUG",t),ri.debug(...t)};var Ci,di=0,Ni=500;function My(){if(Ci)return;let t=performance.now()+Ni;Ci=setInterval(()=>{let n=performance.now();di=Math.max(0,n-t),t=n+Ni},Ni),Ci.unref?.()}function bi(){return My(),di}var Yy=()=>G.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),tu=()=>G.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),nu=400,By=100,Sy=(t)=>(n)=>{let e={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>nu){let a=bi(),u=a>nu/2;console.error(u?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(a),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:rt()}})}if(Yy().record(n.queryDurationMillis,e),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function Oy(t){let n=t.connect.bind(t);return t.connect=(e)=>{if(typeof e==="function")return n(e);let a=performance.now(),u=rt(),_=t.idleCount===0&&t.totalCount>=u,m=t.idleCount;return n().then((o)=>{let x=performance.now()-a;if(tu().record(x,{"db.pool.outcome":_?"contended":"available"}),x>By)if(_)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:x,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:u});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:x,idleAtStart:m,total:t.totalCount,max:u});return o},(o)=>{throw tu().record(performance.now()-a,{"db.pool.outcome":"error"}),o})},t}var uu={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function au(){try{return Q().databasePgSsl}catch{return!1}}function rt(){try{return Q().databasePoolMax}catch{return 10}}function Iy(t){let n=Oy(new iu({connectionString:t,max:rt(),ssl:au(),...uu})),e=new eu({pool:n});return{type:"postgres",db:new Hy({dialect:e,log:Sy(n)}),pool:n}}function v(){return Q().databaseUrl}function _u(t){let n=t||v();return new eu({pool:new iu({connectionString:n,max:rt(),ssl:au(),...uu})})}function Gy(t){let n=t||v();return Iy(n)}async function ou(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===g)g=null}var g=null;function wi(){if(!g)g=Gy(v());return g}async function mu(t){let e={database:_u(t||v()),plugins:[Vy({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),qy(),ly(),dy(),nT(),tT({loginPage:"/login"}),vy(),by({sendMagicLink:async()=>{}}),eT({sendVerificationOTP:async()=>{}})]},{toBeAdded:a,toBeCreated:u,runMigrations:_}=await gy(e);if(!a.length&&!u.length)return"up to date";return await _(),`${u.length+a.length} table(s) migrated`}async function yu(t,n){return(await Z`
1044
1044
  SELECT table_name FROM information_schema.tables
1045
1045
  WHERE table_schema='public' AND table_name=${n}
1046
- `.execute(t)).rows.length>0}async function eT(t){if(await yu(t,"plugin_migrations"))return;await Z`
1046
+ `.execute(t)).rows.length>0}async function iT(t){if(await yu(t,"plugin_migrations"))return;await Z`
1047
1047
  CREATE TABLE plugin_migrations (
1048
1048
  plugin_id TEXT NOT NULL,
1049
1049
  name TEXT NOT NULL,
1050
1050
  timestamp TEXT NOT NULL,
1051
1051
  PRIMARY KEY (plugin_id, name)
1052
1052
  )
1053
- `.execute(t)}async function iT(t){if(!await yu(t,"kysely_migration"))return;let n=await Z`
1053
+ `.execute(t)}async function uT(t){if(!await yu(t,"kysely_migration"))return;let n=await Z`
1054
1054
  SELECT name, timestamp FROM kysely_migration
1055
1055
  WHERE name LIKE '%/%'
1056
1056
  `.execute(t);if(n.rows.length===0)return;for(let{name:e,timestamp:a}of n.rows){let u=e;if(e.includes("~plugins/"))u=e.substring(e.indexOf("~plugins/")+9);let _=u.indexOf("/");if(_===-1){console.warn(`Skipping malformed plugin migration: ${e}`);continue}let m=u.substring(0,_),o=u.substring(_+1);try{await Z`
@@ -1061,4 +1061,4 @@ var Tu=Object.defineProperty;var cu=(t)=>t;function ru(t,n){this[t]=cu.bind(null
1061
1061
  WHERE plugin_id = ${m} AND name = ${o}
1062
1062
  `.execute(t);if(Number(x.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${o}, keeping in old table`);continue}}await Z`
1063
1063
  DELETE FROM kysely_migration WHERE name = ${e}
1064
- `.execute(t)}}async function uT(t){await eT(t),await iT(t);let n=new xu({db:t,provider:{getMigrations:()=>Promise.resolve(yi)}}),{error:e,results:a}=await n.migrateToLatest(),u=0;if(a?.forEach((_)=>{if(_.status==="Success")u++;else if(_.status==="Error")console.error(`Failed to execute migration "${_.migrationName}"`)}),e)throw console.error("Failed to migrate"),console.error(e),e;return u}async function aT(t){let{keepOpen:n=!1,database:e,skipBetterAuth:a=!1}=t??{},u="skipped";if(!a&&!e)u=await mu();let _=e??wi(),m=async()=>{if(!n&&!e)await ou(_).catch((o)=>{console.warn("Warning: Error closing database:",o)})};try{let o=await uT(_.db);return await m(),{betterAuth:u,kysely:o}}catch(o){throw await m(),o}}async function hN(){let t=wi(),n=new xu({db:t.db,provider:{getMigrations:()=>Promise.resolve(yi)}}),{error:e,results:a}=await n.migrateDown();if(a?.forEach((u)=>{if(u.status==="Success")console.log(`\u2705 Migration "${u.migrationName}" rolled back successfully`);else if(u.status==="Error")console.error(`\u274C Failed to rollback migration "${u.migrationName}"`)}),e)throw console.error("Failed to rollback migration"),console.error(e),e}if(import.meta.main)(async()=>{try{await aT(),console.log("Migrations completed."),process.exit(0)}catch(t){console.error("Migration failed:",t),process.exit(1)}})();export{uT as runKyselyMigrations,aT as migrateToLatest,hN as migrateDown};
1064
+ `.execute(t)}}async function aT(t){await iT(t),await uT(t);let n=new xu({db:t,provider:{getMigrations:()=>Promise.resolve(yi)}}),{error:e,results:a}=await n.migrateToLatest(),u=0;if(a?.forEach((_)=>{if(_.status==="Success")u++;else if(_.status==="Error")console.error(`Failed to execute migration "${_.migrationName}"`)}),e)throw console.error("Failed to migrate"),console.error(e),e;return u}async function _T(t){let{keepOpen:n=!1,database:e,skipBetterAuth:a=!1}=t??{},u="skipped";if(!a&&!e)u=await mu();let _=e??wi(),m=async()=>{if(!n&&!e)await ou(_).catch((o)=>{console.warn("Warning: Error closing database:",o)})};try{let o=await aT(_.db);return await m(),{betterAuth:u,kysely:o}}catch(o){throw await m(),o}}async function UN(){let t=wi(),n=new xu({db:t.db,provider:{getMigrations:()=>Promise.resolve(yi)}}),{error:e,results:a}=await n.migrateDown();if(a?.forEach((u)=>{if(u.status==="Success")console.log(`\u2705 Migration "${u.migrationName}" rolled back successfully`);else if(u.status==="Error")console.error(`\u274C Failed to rollback migration "${u.migrationName}"`)}),e)throw console.error("Failed to rollback migration"),console.error(e),e}if(import.meta.main)(async()=>{try{await _T(),console.log("Migrations completed."),process.exit(0)}catch(t){console.error("Migration failed:",t),process.exit(1)}})();export{aT as runKyselyMigrations,_T as migrateToLatest,UN as migrateDown};