decocms 4.190.0 → 4.190.2

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 (220) hide show
  1. package/dist/client/assets/{AlertCircle-DXED6rBH.js → AlertCircle-CMLxm30E.js} +1 -1
  2. package/dist/client/assets/{AreaChart-ClPQaVfK.js → AreaChart-yws1S3NI.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-CzxIfAAL.js → ArrowUp-CsqGhCUD.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-B9MuUChV.js → ArrowUpRight-O6HwYhM4.js} +1 -1
  5. package/dist/client/assets/{Check-Cv8jJZ08.js → Check-DsbDEHBH.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-BbQE3ya1.js → CheckCircle-DBJ2rl20.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-BANYTkpy.js → ChevronDown-CLhGR0s0.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-DETJ3xj_.js → ChevronRight-Bi1fFibj.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-wqfkaLS5.js → ChevronUp-Dhngrjh_.js} +1 -1
  10. package/dist/client/assets/{Copy01-CbGbNUH1.js → Copy01-BQggM03F.js} +1 -1
  11. package/dist/client/assets/{CpuChip01-Cu-vc03_.js → CpuChip01-CjuFsjEp.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-CbBbSbmH.js → CreditCard01-P_aF1ftc.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-BBgRvZBo.js → DotsVertical-Cmr9zAyE.js} +1 -1
  14. package/dist/client/assets/{Eye-AoGWtBSi.js → Eye-BqyOS6fX.js} +1 -1
  15. package/dist/client/assets/{FilterLines-BWq7x_Ul.js → FilterLines-BbuyhRkp.js} +1 -1
  16. package/dist/client/assets/{HardDrive-BLvOShvd.js → HardDrive-qjFd-HJG.js} +1 -1
  17. package/dist/client/assets/{Key01-mErcgxup.js → Key01-BUFk9PKO.js} +1 -1
  18. package/dist/client/assets/{LayoutLeft-DBT_IJtF.js → LayoutLeft-BqiK5GRX.js} +1 -1
  19. package/dist/client/assets/{LinkExternal01-CXhNQP7c.js → LinkExternal01-B9TcT_RE.js} +1 -1
  20. package/dist/client/assets/{LogOut01-mO0tZsvW.js → LogOut01-D4sU8ddN.js} +1 -1
  21. package/dist/client/assets/{Monitor01-BZEADwc8.js → Monitor01-CDbhShAp.js} +1 -1
  22. package/dist/client/assets/{Palette-CnQId6v6.js → Palette-CPH6kIwv.js} +1 -1
  23. package/dist/client/assets/{Play-B7cP13Me.js → Play-BK7SASTF.js} +1 -1
  24. package/dist/client/assets/{Plus-DKjrN_YU.js → Plus-CJ6LFLOW.js} +1 -1
  25. package/dist/client/assets/{SearchLg-DwtISFdA.js → SearchLg-DF3jq4Et.js} +1 -1
  26. package/dist/client/assets/{SearchMd-CnFLdgrH.js → SearchMd-L_yXOc6F.js} +1 -1
  27. package/dist/client/assets/{Settings02-CQSeeLoM.js → Settings02-DJawBJ5L.js} +1 -1
  28. package/dist/client/assets/{Shield01-CntlcGRR.js → Shield01-BvtIyrTG.js} +1 -1
  29. package/dist/client/assets/{Star01-MMb-rmit.js → Star01-wAMkf-nv.js} +1 -1
  30. package/dist/client/assets/{Stars01-BShDUy4Y.js → Stars01-DvF3L2kN.js} +1 -1
  31. package/dist/client/assets/{Stars02-B926KF3Z.js → Stars02-BEmtoQnS.js} +1 -1
  32. package/dist/client/assets/{Sun-CxglTtSz.js → Sun-D1whpG4N.js} +1 -1
  33. package/dist/client/assets/{SwitchHorizontal01-B1X-VtF4.js → SwitchHorizontal01-DLk9LIC-.js} +1 -1
  34. package/dist/client/assets/{Tool01-CbaEqEhy.js → Tool01-BLMFupl_.js} +1 -1
  35. package/dist/client/assets/{Tool02-BBAH4fGj.js → Tool02-WmhOvq6D.js} +1 -1
  36. package/dist/client/assets/{Trash01-BwbIeVja.js → Trash01-DkHxdbaT.js} +1 -1
  37. package/dist/client/assets/{TrendUp01-Bx1jfyaf.js → TrendUp01-CZHhrfUj.js} +1 -1
  38. package/dist/client/assets/{Upload01-CVhasQ21.js → Upload01-C5mBB3bw.js} +1 -1
  39. package/dist/client/assets/{User01-CfaOzYqT.js → User01-Clkv7aoP.js} +1 -1
  40. package/dist/client/assets/{Users01-Di90kAgB.js → Users01-CzYDT84D.js} +1 -1
  41. package/dist/client/assets/{Users03-Ciz_K4lk.js → Users03-2CoMHS7_.js} +1 -1
  42. package/dist/client/assets/{X-C9Eo6bsP.js → X-Bu5tlB1o.js} +1 -1
  43. package/dist/client/assets/{XCircle-DCx5xBFU.js → XCircle-BXb7jwLK.js} +1 -1
  44. package/dist/client/assets/{XClose-DUO7rfyU.js → XClose-5OVtDOnp.js} +1 -1
  45. package/dist/client/assets/{Zap-moyChzSY.js → Zap-D-KV-Ug5.js} +1 -1
  46. package/dist/client/assets/{ZapSquare-BwgIOjRQ.js → ZapSquare-DorNQr5Z.js} +1 -1
  47. package/dist/client/assets/{access-gate-DyI_QApY.js → access-gate-BsQ-w4-6.js} +1 -1
  48. package/dist/client/assets/{agent-icon-CJcwoAuE.js → agent-icon-Bw0G8GJp.js} +1 -1
  49. package/dist/client/assets/{agents-list-CE1KtlG_.js → agents-list-BX9HxadE.js} +1 -1
  50. package/dist/client/assets/{ai-providers-9FP8Vgi6.js → ai-providers-BnGH6L4G.js} +1 -1
  51. package/dist/client/assets/{alert-BgpReGBN.js → alert-DQjbSiKK.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-Bk0yvpfE.js → alert-dialog-BYVUW59C.js} +1 -1
  53. package/dist/client/assets/{app-editor-DtoHC0cz.js → app-editor-BrbSv7ix.js} +1 -1
  54. package/dist/client/assets/{auth-DE4bma7Q.js → auth-Cf1OaV-K.js} +1 -1
  55. package/dist/client/assets/{auth-catchall-Cl7AYup6.js → auth-catchall-BCXq16s8.js} +1 -1
  56. package/dist/client/assets/{auth-entry-Bi7CumSs.js → auth-entry-CY2czJTd.js} +1 -1
  57. package/dist/client/assets/{auth-split-layout-B69Ee6U_.js → auth-split-layout-BRm3PVq1.js} +1 -1
  58. package/dist/client/assets/{authenticate-and-persist-oauth-yvVI9G22.js → authenticate-and-persist-oauth-ZLvxNO6q.js} +1 -1
  59. package/dist/client/assets/{automation-list-row-Cws0lt-9.js → automation-list-row-D1IbXnhd.js} +1 -1
  60. package/dist/client/assets/{automation-runs-6E4exrgY.js → automation-runs-BT9ykIOP.js} +1 -1
  61. package/dist/client/assets/{automations-D07mw889.js → automations-7PsWduHL.js} +1 -1
  62. package/dist/client/assets/{avatar-DJS63fnf.js → avatar-AfnDQclt.js} +1 -1
  63. package/dist/client/assets/{badge-6rnM0DeY.js → badge-C86dlteU.js} +1 -1
  64. package/dist/client/assets/{billing-B1H3tqw_.js → billing-Bh6KC4-5.js} +1 -1
  65. package/dist/client/assets/{block-document-BLKYSplP.js → block-document-D6S3Lk9Z.js} +1 -1
  66. package/dist/client/assets/{brand-context-uQHwIxqs.js → brand-context-BNjM2WvO.js} +1 -1
  67. package/dist/client/assets/{buckets-2814OOuy.js → buckets-3QEAo2UM.js} +1 -1
  68. package/dist/client/assets/{bulk-category-panel-BBnxMkuV.js → bulk-category-panel-C-dk24Tr.js} +1 -1
  69. package/dist/client/assets/{capability-load-error-9bOhNBbe.js → capability-load-error-CQASQBNW.js} +1 -1
  70. package/dist/client/assets/{card-CrWtG_oD.js → card-DhOqgXTP.js} +1 -1
  71. package/dist/client/assets/{category-editor-BZMRXgNg.js → category-editor-TkfUUSYK.js} +1 -1
  72. package/dist/client/assets/{chat-context-BT2m2n8F.js → chat-context-e8a2MPlG.js} +1 -1
  73. package/dist/client/assets/{checkbox-fApMVB_C.js → checkbox-CJBpevrm.js} +1 -1
  74. package/dist/client/assets/{cli-auth-success-Dd6OURUM.js → cli-auth-success-C7VDbgfQ.js} +1 -1
  75. package/dist/client/assets/{collection-detail-DYNDiF7d.js → collection-detail-4jVHHwYk.js} +1 -1
  76. package/dist/client/assets/{collection-display-button-BUEdKLAN.js → collection-display-button-BsXhqztU.js} +1 -1
  77. package/dist/client/assets/{collection-search-BaQxIHXt.js → collection-search-D58diDCj.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-CBokqZrh.js → collection-table-wrapper-BCfsCI9h.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-vD34oS9A.js → collection-tabs-x__ZRbYW.js} +1 -1
  80. package/dist/client/assets/{command-D8v_nR97.js → command-CvaF6dZx.js} +1 -1
  81. package/dist/client/assets/{commerce-onboarding-C2QOTogc.js → commerce-onboarding-CB8Cvdr9.js} +1 -1
  82. package/dist/client/assets/{connect-BhjYdlYe.js → connect-BH2T7bcu.js} +1 -1
  83. package/dist/client/assets/{connection-RtmTb73Q.js → connection-CqD4Dxyk.js} +1 -1
  84. package/dist/client/assets/{connection-card-DyjoSNay.js → connection-card-D-SlRyu0.js} +1 -1
  85. package/dist/client/assets/{connection-detail-D_psVjHX.js → connection-detail-L8Yjgmp_.js} +1 -1
  86. package/dist/client/assets/{connection-form-helpers-BIrwRhdD.js → connection-form-helpers-CeBpq4Fp.js} +1 -1
  87. package/dist/client/assets/{connections-B6P40q80.js → connections-CIsfPL2m.js} +1 -1
  88. package/dist/client/assets/{decopilot-sse-pool-B94gAtrR.js → decopilot-sse-pool-CwOMVWUy.js} +1 -1
  89. package/dist/client/assets/{dialog-p8J7StLH.js → dialog-BSH7Stqi.js} +1 -1
  90. package/dist/client/assets/{domain-settings-Cir0azXg.js → domain-settings-DSK52NR6.js} +1 -1
  91. package/dist/client/assets/{drawer-CBT7Eys6.js → drawer-DwL7uc_a.js} +1 -1
  92. package/dist/client/assets/{dropdown-menu-BrXZ6Vm1.js → dropdown-menu-ClVEYcUr.js} +1 -1
  93. package/dist/client/assets/{empty-state-B60k1FtN.js → empty-state-DtD9Kd1B.js} +1 -1
  94. package/dist/client/assets/{extract-connection-data-DPPQjvw0.js → extract-connection-data-ltC_tobe.js} +1 -1
  95. package/dist/client/assets/{file-explorer-_acp7GfX.js → file-explorer-Dz4wxiH-.js} +1 -1
  96. package/dist/client/assets/{form-BzB6OSr4.js → form-C38UEgw2.js} +1 -1
  97. package/dist/client/assets/{general-w04LrnRs.js → general-C8gpapC8.js} +1 -1
  98. package/dist/client/assets/{github-repo-picker-DtcsOf5_.js → github-repo-picker-BImPaUeK.js} +1 -1
  99. package/dist/client/assets/{hooks-Bazbp_1N.js → hooks-CQOKsQSV.js} +1 -1
  100. package/dist/client/assets/{index-CxA3NuXr.js → index-BJzAB3El.js} +1 -1
  101. package/dist/client/assets/{index-CZvV4EXt.js → index-BOVgN_Kg.js} +1 -1
  102. package/dist/client/assets/{index-CITe_oq2.js → index-CzgkhiiD.js} +6 -6
  103. package/dist/client/assets/{index-DTC5AnWE.js → index-DIFs__s9.js} +1 -1
  104. package/dist/client/assets/{index-B1pamPTG.js → index-DKmueTx5.js} +3 -3
  105. package/dist/client/assets/{index-_-LfDtEQ.js → index-DgKBkTat.js} +1 -1
  106. package/dist/client/assets/{index-CcARg5YW.js → index-DoL_wkOB.js} +1 -1
  107. package/dist/client/assets/{index-CU1ur_bP.js → index-Dqf_UN-V.js} +1 -1
  108. package/dist/client/assets/{index-C-KqRNgp.js → index-Q0A4wzik.js} +1 -1
  109. package/dist/client/assets/{index-DVFVwt0t.js → index-U7bDpVbK.js} +1 -1
  110. package/dist/client/assets/{index-DaAKYWlK.js → index-Y31wAqce.js} +1 -1
  111. package/dist/client/assets/{index-redirect-Bhh8boBC.js → index-redirect-sc_24jKb.js} +1 -1
  112. package/dist/client/assets/{input-8KUKm5_e.js → input-CAuBWhlU.js} +1 -1
  113. package/dist/client/assets/{integration-icon-ByCUiVdJ.js → integration-icon-CQiVR-7c.js} +1 -1
  114. package/dist/client/assets/{invite-member-dialog-Dvmz_iJM.js → invite-member-dialog-Cj0ogGxH.js} +1 -1
  115. package/dist/client/assets/{label-B89S6Txq.js → label-BUwUeB1K.js} +1 -1
  116. package/dist/client/assets/{layout-BZqAHjH_.js → layout-DEp9GnkN.js} +1 -1
  117. package/dist/client/assets/{login-CabK5JLY.js → login-CRQNO4vt.js} +1 -1
  118. package/dist/client/assets/{mcp-oauth-Di-ad4PD.js → mcp-oauth-BbXmBqiI.js} +1 -1
  119. package/dist/client/assets/{members-eHjNNDpv.js → members-DzxxVLEE.js} +1 -1
  120. package/dist/client/assets/{monaco-editor-DXS6EpEe.js → monaco-editor-D03_u9Rr.js} +1 -1
  121. package/dist/client/assets/{monitoring-stats-row-DMNgnpP1.js → monitoring-stats-row-2aDxDw0N.js} +1 -1
  122. package/dist/client/assets/{multi-select-DzXLMoLM.js → multi-select-CCW_o69m.js} +1 -1
  123. package/dist/client/assets/{oauth-callback-hWEALUDd.js → oauth-callback-J8LNv758.js} +1 -1
  124. package/dist/client/assets/{oauth-callback-ai-provider-C7yfrXoI.js → oauth-callback-ai-provider-Bqf_U_d8.js} +1 -1
  125. package/dist/client/assets/{onboarding-ChVVg5Tt.js → onboarding-CZgQKnVV.js} +1 -1
  126. package/dist/client/assets/{org-layout-Gs4YXCJU.js → org-layout-C8FphwPp.js} +1 -1
  127. package/dist/client/assets/{organization-choice-2j0s-URi.js → organization-choice-qxR2IuU_.js} +1 -1
  128. package/dist/client/assets/{orgs-Bc0T_S8f.js → orgs-FJrwxnxV.js} +1 -1
  129. package/dist/client/assets/{page-seo-form-Dhp2UaWO.js → page-seo-form-CptQdU2n.js} +1 -1
  130. package/dist/client/assets/{popover-BH69yCmw.js → popover-ne3WJDBa.js} +1 -1
  131. package/dist/client/assets/{post-editor-ClPwBicl.js → post-editor-CFs5i102.js} +1 -1
  132. package/dist/client/assets/{primitives-BW5Yu4EI.js → primitives-VQKU2_3B.js} +1 -1
  133. package/dist/client/assets/{profile-BztRA1BA.js → profile-DM7LzDpA.js} +1 -1
  134. package/dist/client/assets/project-app-view-4aNWzQmu.js +1 -0
  135. package/dist/client/assets/record-editor-DHmaIOVs.js +1 -0
  136. package/dist/client/assets/{redirect-editor-HMDzyeF7.js → redirect-editor-DqHPtQ5N.js} +1 -1
  137. package/dist/client/assets/registry-B9JYbFfA.js +2 -0
  138. package/dist/client/assets/{registry-layout-6ltnB5Yz.js → registry-layout-BGAVBHU1.js} +1 -1
  139. package/dist/client/assets/{reports-Cxini64Q.js → reports-B6bMBRoj.js} +1 -1
  140. package/dist/client/assets/{require-capability-f3q71kF5.js → require-capability-BNaoFLw-.js} +1 -1
  141. package/dist/client/assets/{required-auth-layout-Ds7bjGvL.js → required-auth-layout-Cf57fTJL.js} +1 -1
  142. package/dist/client/assets/{reset-password-CXbq6Tw-.js → reset-password-Cf8aqhIe.js} +1 -1
  143. package/dist/client/assets/{roles-CspygFiB.js → roles-BdlOddzf.js} +1 -1
  144. package/dist/client/assets/{search-input-zK9i-Kh3.js → search-input-CgdPsoUE.js} +1 -1
  145. package/dist/client/assets/{secrets-L8zybnQm.js → secrets-CGAdy8ca.js} +1 -1
  146. package/dist/client/assets/{sections-editor-DPOpZ-tE.js → sections-editor-CuRQztTz.js} +1 -1
  147. package/dist/client/assets/{select-CDC8kviA.js → select-DewTihPD.js} +1 -1
  148. package/dist/client/assets/{select-model-Bp5Xd4te.js → select-model-SS2wjbcO.js} +1 -1
  149. package/dist/client/assets/{self-tool-result-Cuj-33nr.js → self-tool-result-DK1a2fXK.js} +1 -1
  150. package/dist/client/assets/{seo-editor-4TGrgB3S.js → seo-editor-CbO-YwdI.js} +1 -1
  151. package/dist/client/assets/{settings-layout-DlSc777F.js → settings-layout-CA9mQ3Rt.js} +1 -1
  152. package/dist/client/assets/{settings-section-D8TGOGYz.js → settings-section-ByXDhV-n.js} +1 -1
  153. package/dist/client/assets/{shell-controls-CZERq1n5.js → shell-controls-Dxh1TRVD.js} +1 -1
  154. package/dist/client/assets/{shell-layout-D4_bTkUU.js → shell-layout-Cq6UvNRG.js} +1 -1
  155. package/dist/client/assets/{sidebar-CZTkBKXl.js → sidebar-Dyce5CNM.js} +1 -1
  156. package/dist/client/assets/{skeleton-CGHtidUO.js → skeleton-CJtp4VEd.js} +1 -1
  157. package/dist/client/assets/{spinner-BM_ia_uk.js → spinner-BWGfTKo_.js} +1 -1
  158. package/dist/client/assets/{sso-C3QdMV1g.js → sso-9BFTrDdZ.js} +1 -1
  159. package/dist/client/assets/{store-DpxJmuD5.js → store-DtebgGkY.js} +1 -1
  160. package/dist/client/assets/store-registry-CvinyYdp.js +2 -0
  161. package/dist/client/assets/{studio-tools-DM-9vWPj.js → studio-tools-BgBu3mEO.js} +1 -1
  162. package/dist/client/assets/{switch-D4_0M4ba.js → switch-v_76xhJs.js} +1 -1
  163. package/dist/client/assets/{tab-id-DOUygo4c.js → tab-id-C8PTaw0G.js} +1 -1
  164. package/dist/client/assets/{table-l5OXWTTW.js → table-C98JQDN-.js} +1 -1
  165. package/dist/client/assets/{tabs-CZAVib3u.js → tabs-Bihx4cSB.js} +1 -1
  166. package/dist/client/assets/{textarea-C9hZnZoz.js → textarea-BjjcV9de.js} +1 -1
  167. package/dist/client/assets/{toggle-group-DKmas1Id.js → toggle-group-B_w-eO8Z.js} +1 -1
  168. package/dist/client/assets/{toolbar-BvOLPMGj.js → toolbar-D5WjvtFd.js} +1 -1
  169. package/dist/client/assets/{tooltip-IARwLh0F.js → tooltip-C20LvWX3.js} +1 -1
  170. package/dist/client/assets/{use-ai-providers-B3l8wwZ5.js → use-ai-providers-BlhYtkwS.js} +1 -1
  171. package/dist/client/assets/{use-automations-DVulOVRH.js → use-automations-CSPYjmVX.js} +1 -1
  172. package/dist/client/assets/{use-autosave-BEPEE2EQ.js → use-autosave-BNjqy_38.js} +1 -1
  173. package/dist/client/assets/{use-capability-DjJpn-d1.js → use-capability-CcL4auVL.js} +1 -1
  174. package/dist/client/assets/{use-clock-tick-DUclydJW.js → use-clock-tick-B9-NTOWX.js} +1 -1
  175. package/dist/client/assets/{use-connection-C7KvffTt.js → use-connection-BO0knnZD.js} +1 -1
  176. package/dist/client/assets/{use-copy-ASUaxQ1g.js → use-copy-BW_weX2K.js} +1 -1
  177. package/dist/client/assets/{use-create-virtual-mcp-BuMDo7HS.js → use-create-virtual-mcp-CPnhHSBx.js} +1 -1
  178. package/dist/client/assets/{use-debounced-autosave-Dr7OLeNB.js → use-debounced-autosave-Dzzp-JIo.js} +1 -1
  179. package/dist/client/assets/{use-debounced-value-TXd87EPp.js → use-debounced-value-BTZwIJNv.js} +1 -1
  180. package/dist/client/assets/{use-deco-credits-DQBmpudk.js → use-deco-credits-EjXxaQ-4.js} +1 -1
  181. package/dist/client/assets/{use-decopilot-events-BtR8Mqm3.js → use-decopilot-events-C74fEL-P.js} +1 -1
  182. package/dist/client/assets/{use-delete-connection-DpZ0gvcX.js → use-delete-connection-CiEXhrDp.js} +1 -1
  183. package/dist/client/assets/{use-deployment-admin-B-a9-Z3F.js → use-deployment-admin-DB1Z5zTg.js} +1 -1
  184. package/dist/client/assets/{use-file-configs-vPXbDrDt.js → use-file-configs-B2jcQIMx.js} +1 -1
  185. package/dist/client/assets/{use-infinite-scroll-0YyrXUEB.js → use-infinite-scroll-CK1coX-D.js} +1 -1
  186. package/dist/client/assets/{use-join-requests-L6gA0vgB.js → use-join-requests-BMvo4BGN.js} +1 -1
  187. package/dist/client/assets/{use-mcp-client-DpgCUtQL.js → use-mcp-client-CKVjF1Ml.js} +1 -1
  188. package/dist/client/assets/{use-mcp-tools-BpQEjUlC.js → use-mcp-tools-Dnldoxrq.js} +1 -1
  189. package/dist/client/assets/{use-members-DlNGYhNw.js → use-members-CWyylPMr.js} +1 -1
  190. package/dist/client/assets/{use-mobile-ADgWnTRh.js → use-mobile-DhvaOhjQ.js} +1 -1
  191. package/dist/client/assets/{use-navigate-to-agent-C_I5OT4C.js → use-navigate-to-agent-BdC4Ehtc.js} +1 -1
  192. package/dist/client/assets/{use-open-billing-url-B4KqcF2I.js → use-open-billing-url-EqJS3juV.js} +1 -1
  193. package/dist/client/assets/{use-org-auth-client-CJimZSCq.js → use-org-auth-client-9UV5J-qx.js} +1 -1
  194. package/dist/client/assets/{use-org-sso-k8cw1RWC.js → use-org-sso-CnebI6G0.js} +1 -1
  195. package/dist/client/assets/{use-organization-roles-3TWNcJlb.js → use-organization-roles-DwWay_yC.js} +1 -1
  196. package/dist/client/assets/{use-organization-settings-D0OJWoGn.js → use-organization-settings-Dv7jH-AX.js} +1 -1
  197. package/dist/client/assets/{use-registry-connections-C661e6FH.js → use-registry-connections-C6tcY3w_.js} +1 -1
  198. package/dist/client/assets/{use-secrets-Cmc4oF-J.js → use-secrets-D7Kz6BX6.js} +1 -1
  199. package/dist/client/assets/{use-section-preview-base-D7lAQ6j7.js → use-section-preview-base-dl0agl3o.js} +1 -1
  200. package/dist/client/assets/{use-status-sounds-2TtpMK-C.js → use-status-sounds-DaaGZIJj.js} +1 -1
  201. package/dist/client/assets/{use-tags-Bd6Uv4oo.js → use-tags-BDNfieGF.js} +1 -1
  202. package/dist/client/assets/{use-view-mode-CXw_Kvrf.js → use-view-mode-DgOtFqzo.js} +1 -1
  203. package/dist/client/assets/{use-virtual-mcp-CEINdtXi.js → use-virtual-mcp-CCIBOySh.js} +1 -1
  204. package/dist/client/assets/useInfiniteQuery-CBxGIRPH.js +1 -0
  205. package/dist/client/assets/{useRouterState-eCBwWfUY.js → useRouterState-C-jnPhVn.js} +1 -1
  206. package/dist/client/assets/useSuspenseInfiniteQuery-BPFJYUaM.js +1 -0
  207. package/dist/client/assets/{users-DTuWteU5.js → users-CddXPArr.js} +1 -1
  208. package/dist/client/assets/{variant-calendar-C_isZHgL.js → variant-calendar-CQn1xMjy.js} +1 -1
  209. package/dist/client/assets/{view-mode-toggle-mVooQxHk.js → view-mode-toggle-Bzs9zyLR.js} +1 -1
  210. package/dist/client/index.html +1 -1
  211. package/dist/server/cli.js +447 -447
  212. package/dist/server/migrate.js +11 -11
  213. package/dist/server/server.js +311 -311
  214. package/package.json +1 -1
  215. package/dist/client/assets/project-app-view-2l1tg7__.js +0 -1
  216. package/dist/client/assets/record-editor-DRypaazn.js +0 -1
  217. package/dist/client/assets/registry-kBVKGTVS.js +0 -2
  218. package/dist/client/assets/store-registry-DExoSMMF.js +0 -2
  219. package/dist/client/assets/useInfiniteQuery-CbDX819o.js +0 -1
  220. package/dist/client/assets/useSuspenseInfiniteQuery-DbnovJ-n.js +0 -1
@@ -289,18 +289,18 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
289
289
  `.execute(t),await k`
290
290
  ALTER TABLE automations
291
291
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
292
- `.execute(t)}var ln={};u(ln,{up:()=>fy,reshapeSimpleMode:()=>ax,inferAutomationTier:()=>Ex,down:()=>wy,__testing:()=>ey});var Ey={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Ky=["fast","smart","thinking","image","web_research"];function sn(t){if(!t||typeof t!=="object")return!1;let n=t;if(!("tiers"in n))return!1;let _=n.tiers;if(!_||typeof _!=="object")return!1;return Ky.some((m)=>(m in _))}function ax(t){if(sn(t))return t;let n=t,_=n?.enabled===!0,m=(x)=>x&&x.keyId&&x.modelId?{keyId:x.keyId,modelId:x.modelId,title:x.title}:null;if(!_)return Ey;return{tiers:{fast:m(n?.chat?.fast),smart:m(n?.chat?.smart),thinking:m(n?.chat?.thinking),image:m(n?.image),web_research:m(n?.webResearch)}}}function Ex(t){if(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking")return t.tier;if(t.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Kx(t){if(!(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((m)=>t[m]===void 0)}var ey={isAlreadyReshapedSimpleMode:sn,isAlreadyReshapedAutomationModels:Kx};async function fy(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let m of n){let x=m.simple_mode?typeof m.simple_mode==="string"?JSON.parse(m.simple_mode):m.simple_mode:null;if(sn(x))continue;let i=ax(x);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(i)}).where("organizationId","=",m.organizationId).execute()}let _=await t.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let m of _){let x;try{x=typeof m.models==="string"?JSON.parse(m.models):m.models}catch{x={}}if(Kx(x))continue;let i=Ex(x);if(await t.updateTable("automations").set({models:JSON.stringify({tier:i})}).where("id","=",m.id).execute(),x.thinking?.capabilities?.image)console.log(`[migration 077] automation ${m.id} previously used an image-only model; mapped to "${i}"`)}}async function wy(t){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var dn={};u(dn,{up:()=>zy,down:()=>Py});import{sql as D}from"kysely";async function zy(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await D`
292
+ `.execute(t)}var ln={};u(ln,{up:()=>fy,reshapeSimpleMode:()=>ax,inferAutomationTier:()=>Ex,down:()=>wy,__testing:()=>ey});var Ey={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},Ky=["fast","smart","thinking","image","web_research"];function sn(t){if(!t||typeof t!=="object")return!1;let n=t;if(!("tiers"in n))return!1;let _=n.tiers;if(!_||typeof _!=="object")return!1;return Ky.some((m)=>(m in _))}function ax(t){if(sn(t))return t;let n=t,_=n?.enabled===!0,m=(x)=>x&&x.keyId&&x.modelId?{keyId:x.keyId,modelId:x.modelId,title:x.title}:null;if(!_)return Ey;return{tiers:{fast:m(n?.chat?.fast),smart:m(n?.chat?.smart),thinking:m(n?.chat?.thinking),image:m(n?.image),web_research:m(n?.webResearch)}}}function Ex(t){if(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking")return t.tier;if(t.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function Kx(t){if(!(t.tier==="fast"||t.tier==="smart"||t.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((m)=>t[m]===void 0)}var ey={isAlreadyReshapedSimpleMode:sn,isAlreadyReshapedAutomationModels:Kx};async function fy(t){let n=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let m of n){let x=m.simple_mode?typeof m.simple_mode==="string"?JSON.parse(m.simple_mode):m.simple_mode:null;if(sn(x))continue;let i=ax(x);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(i)}).where("organizationId","=",m.organizationId).execute()}let _=await t.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let m of _){let x;try{x=typeof m.models==="string"?JSON.parse(m.models):m.models}catch{x={}}if(Kx(x))continue;let i=Ex(x);if(await t.updateTable("automations").set({models:JSON.stringify({tier:i})}).where("id","=",m.id).execute(),x.thinking?.capabilities?.image)console.log(`[migration 077] automation ${m.id} previously used an image-only model; mapped to "${i}"`)}}async function wy(t){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var dn={};u(dn,{up:()=>zy,down:()=>Py});import{sql as $}from"kysely";async function zy(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await $`
293
293
  ALTER TABLE automations
294
294
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
295
- `.execute(t),await D`
295
+ `.execute(t),await $`
296
296
  ALTER TABLE automations
297
297
  ADD CONSTRAINT chk_automation_kind
298
298
  CHECK (kind IN ('agent', 'tool_call'))
299
- `.execute(t),await D`
299
+ `.execute(t),await $`
300
300
  ALTER TABLE automations
301
301
  ADD CONSTRAINT chk_automation_agent_fields
302
302
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
303
- `.execute(t),await D`
303
+ `.execute(t),await $`
304
304
  ALTER TABLE automations
305
305
  ADD CONSTRAINT chk_automation_tool_call_fields
306
306
  CHECK (
@@ -311,7 +311,7 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
311
311
  AND tool_input IS NOT NULL
312
312
  )
313
313
  )
314
- `.execute(t)}async function Py(t){await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await D`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await D`
314
+ `.execute(t)}async function Py(t){await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await $`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await $`
315
315
  ALTER TABLE automations
316
316
  ALTER COLUMN virtual_mcp_id SET NOT NULL
317
317
  `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var bn={};u(bn,{up:()=>oy,down:()=>py});import{sql as ex}from"kysely";var Uy=new Set(["host","docker","agent-sandbox"]);async function oy(t){let n=await ex`
@@ -799,21 +799,21 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
799
799
  `.execute(t)}}async function dy(t){}var f_={};u(f_,{up:()=>by,down:()=>tC});import{sql as e_}from"kysely";async function by(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("bucket","text",(n)=>n.notNull()).addColumn("region","text",(n)=>n.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(e_`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(e_`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await e_`
800
800
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
801
801
  ON org_file_configs (organization_id, lower(name))
802
- `.execute(t)}async function tC(t){await t.schema.dropTable("org_file_configs").execute()}var w_={};u(w_,{up:()=>nC,down:()=>_C});import{sql as $}from"kysely";async function nC(t){await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await $`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await $`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await $`
802
+ `.execute(t)}async function tC(t){await t.schema.dropTable("org_file_configs").execute()}var w_={};u(w_,{up:()=>nC,down:()=>_C});import{sql as L}from"kysely";async function nC(t){await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await L`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await L`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await L`
803
803
  ALTER TABLE automations
804
804
  ALTER COLUMN virtual_mcp_id SET NOT NULL
805
- `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function _C(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await $`
805
+ `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function _C(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await L`
806
806
  ALTER TABLE automations
807
807
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
808
- `.execute(t),await $`
808
+ `.execute(t),await L`
809
809
  ALTER TABLE automations
810
810
  ADD CONSTRAINT chk_automation_kind
811
811
  CHECK (kind IN ('agent', 'tool_call'))
812
- `.execute(t),await $`
812
+ `.execute(t),await L`
813
813
  ALTER TABLE automations
814
814
  ADD CONSTRAINT chk_automation_agent_fields
815
815
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
816
- `.execute(t),await $`
816
+ `.execute(t),await L`
817
817
  ALTER TABLE automations
818
818
  ADD CONSTRAINT chk_automation_tool_call_fields
819
819
  CHECK (
@@ -1093,7 +1093,7 @@ var _m=Object.defineProperty;var um=(t)=>t;function xm(t,n){this[t]=um.bind(null
1093
1093
  WHERE status = 'in_review'
1094
1094
  AND assignee_id = 'super-agent'
1095
1095
  AND dismissed_at IS NULL
1096
- `.execute(t)}async function sa(t){await t.schema.dropIndex("idx_task_board_items_pending_review").execute()}var la={"001-initial-schema":pt,"002-organization-settings":Jt,"003-connection-schema-align":jt,"004-remove-models-binding":Dt,"005-connection-configuration":$t,"006-add-views-to-settings":Lt,"007-monitoring-logs":Wt,"008-event-bus":Rt,"009-drop-audit-logs":Xt,"010-gateways":Qt,"011-gateway-icon":Zt,"012-gateway-tool-selection-mode":Ft,"013-monitoring-user-agent-gateway":Ht,"014-gateway-resources-prompts":Mt,"015-monitoring-properties":Yt,"016-downstream-token-client-info":Bt,"017-downstream-token-remove-userid":Gt,"018-drop-gateway-tool-selection-strategy":At,"019-remove-gateway-is-default":St,"020-enabled-plugins":Ot,"021-threads":It,"022-rename-gateway-to-virtual-mcp":kt,"023-optimize-thread-indexes":ct,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":Vt,"026-restrict-child-connection-delete":gt,"027-update-management-mcp-url":qt,"028-update-management-mcp-to-self":st,"029-add-updated-by-to-connections":lt,"030-member-tags":dt,"031-add-dependency-mode":bt,"032-projects":tn,"033-thread-status":nn,"034-monitoring-dashboards":_n,"035-project-connections":un,"036-update-registry-url":xn,"037-ai-provider-keys":mn,"038-oauth-pkce-states":Tn,"039-automations":yn,"040-replace-next-run-at-with-last-run-at":Cn,"041-ai-provider-keys-unique-constraint":Nn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":En,"044-drop-connections-tools-column":Kn,"045-thread-context-start-message":en,"046-remove-object-storage-plugin":wn,"047-add-next-run-at":zn,"048-merge-projects-agents":Un,"049-remove-org-admin-projects":on,"050-durable-agent-runs":pn,"051-org-sso":jn,"052-thread-agent-ids":Dn,"053-registry-config":$n,"054-connection-slug":Wn,"055-spaces":Rn,"056-automation-project-scope":Xn,"057-thread-virtual-mcp-id":Qn,"058-trigger-callback-tokens":Zn,"059-kv":Fn,"060-member-index":Hn,"061-downstream-token-connection-index":Mn,"062-private-registry":Yn,"063-event-subscriptions-enabled-boolean":Bn,"064-brand-context":Gn,"065-organization-domains":An,"066-brand-context-structured":Sn,"067-threads-metadata":On,"068-threads-branch":In,"069-sandbox-runner-state":kn,"070-model-categories":cn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":Vn,"073-backfill-basic-usage-roles":gn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":qn,"076-automations-drop-agent-json":vn,"077-tier-only-model-selection":ln,"078-automation-tool-call-kind":dn,"079-strip-legacy-freestyle-vm-map-entries":bn,"080-async-research-jobs":t_,"081-async-research-jobs-result-content":n_,"082-secrets":__,"083-thread-run-locally":u_,"084-drop-host-sandbox-rows":x_,"085-rename-runner-kind":m_,"086-thread-pins-and-vm-map-rekey":i_,"087-fix-vm-map-rekey":T_,"088-purge-cli-activate-keys":y_,"089-rename-remote-user-to-desktop":C_,"090-automation-webhook-triggers":N_,"091-organization-domains-allow-multi":a_,"092-sandbox-naming-uniformization":E_,"093-backfill-global-search-basic-usage":K_,"094-org-file-configs":f_,"095-remove-automation-tool-call-kind":w_,"096-org-file-configs-public-url-base":z_,"097-drop-local-docker-sandbox-state":U_,"098-thread-message-parts":o_,"099-run-fence":p_,"100-link-transport":J_,"101-cancel-requested-at":j_,"102-observational-agent":D_,"103-revert-observational-agent":$_,"104-agent-sandbox-provider-kind":W_,"105-org-fs":R_,"106-automation-tools":X_,"107-org-fs-public-org":Q_,"108-automation-max-agent-steps":Z_,"109-thread-message-parts-per-message-seq":F_,"110-backfill-ghs-token-expiry":H_,"111-org-fs-thread-id":M_,"112-org-file-configs-credential-type":Y_,"113-thread-failure-reason":B_,"114-run-acked-seq":G_,"115-thread-projected-seq":A_,"116-org-sites":S_,"117-org-file-configs-site-slug":O_,"118-organization-domains-multi-verify":I_,"119-organization-join-requests":k_,"120-org-fs-read-public":c_,"121-org-fs-share-password":h_,"122-split-web-research-tier":r_,"123-connection-credential-vault":q_,"124-drop-thread-projected-seq":v_,"125-github-child-single-parent":s_,"126-task-board":d_,"127-task-board-due-date":b_,"128-reports-only":tu,"129-task-board-assigned-by":nu,"130-task-board-thread-id":_u,"131-task-board-thread-link-cascade":uu,"132-task-board-item-prs":xu,"133-dedupe-duplicate-members":mu,"134-drop-task-board-enabled":iu,"135-task-board-item-fk-cascade":Tu,"136-task-board-import-idempotency":yu,"137-agent-sandbox-runner-state":Cu,"138-agent-sandbox-sessions":Nu,"139-organization-billing":au,"140-seat-change-log":Eu,"141-benefits-sync-pending":Ku,"142-stripe-event-watermark":eu,"143-armed-report-url":fu,"144-benefits-pending-index":wu,"145-user-model-preferences":zu,"146-organization-main-agent":Pu,"147-drop-agent-sandbox-tables":Uu,"148-org-flags":ou,"149-task-board-item-sort-order":pu,"150-task-board-activity":Ju,"151-task-board-tags":Du,"152-repair-connection-slug":Lu,"153-task-board-latest-assistant-part-index":Wu,"154-task-board-qa-activity":Xu,"155-task-board-review-claims":Qu,"156-task-board-conflict-activity":Fu,"157-drop-seat-billing":Hu,"158-drop-github-child-single-parent":Mu,"159-task-board-comments":Yu,"160-task-quota-billing":Bu,"161-task-quota-claim-state":Au,"162-claude-subscriptions":Su,"163-task-board-item-dismissed":Ou,"164-per-org-task-quota":Iu,"165-task-board-pending-review-index":ku},cu=la;import{getMigrations as ZE}from"better-auth/db";import{sso as FE}from"@better-auth/sso";import{organization as HE}from"@decocms/better-auth/plugins";import{admin as ME,apiKey as YE,jwt as BE,magicLink as GE,mcp as AE,openAPI as SE}from"better-auth/plugins";import{emailOTP as OE}from"better-auth/plugins/email-otp";import{Kysely as DE,PostgresDialect as rx}from"kysely";import{Pool as qx}from"pg";import{homedir as da}from"os";var ba=new Set(["all","worker","api"]);function tE(t){let n=(t??"").trim();return ba.has(n)?n:"all"}var nE=new Set(["production","development","test"]);function _E(t){let n=(t??"").trim();return nE.has(n)?n:"development"}function L(t){return t==="true"||t==="1"}function uE(t){if(t===void 0||t==="")return;return L(t)}function hu(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function U(t,n,_,m){return hu(t,n,m)??_}function xE(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function Bx(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function mE(t){return t===void 0||t===""||t==="true"||t==="1"}function q(t,n){return t||n}var iE=new Set(["agent-sandbox","user-desktop"]);function TE(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!iE.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function Ax(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${da()}/deco`,m=t.localMode,x=t.nodeEnv||_E(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",y=uE(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:U("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:q(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:L(n.DATABASE_PG_SSL),databasePoolMax:U("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:U("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:q(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:L(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((C)=>C.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:hu("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:y,natsTunnelSessionTtlSeconds:U("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:L(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,topupFeePercent:xE("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:L(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:U("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:U("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:U("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:L(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:Bx(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:L(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:U("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:U("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Bx(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:U("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),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:mE(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:hu("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:tE(q(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:TE(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:L(n.SANDBOX_STICKY_HEAD_REF),sandboxReleaseOnRunEndEnabled:L(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:U("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:q(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:q(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:Gx(n.DATABASE_URL),externalNatsUrl:Gx(i),skipMigrations:t.skipMigrations}}var wt=null;function B(){if(!wt)yE();return wt}function yE(){if(wt)return;let t={...process.env},n=Ax({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);wt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as eE,metrics as fE,propagation as Kw,ROOT_CONTEXT as ew,SpanStatusCode as fw,trace as wE}from"@opentelemetry/api";import{logs as zE,SeverityNumber as Vu}from"@opentelemetry/api-logs";import{OTLPLogExporter as Pw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as PE}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as pw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as jw}from"@opentelemetry/instrumentation-runtime-node";import{context as Tf,propagation as yf,SpanKind as Cf,SpanStatusCode as Nf}from"@opentelemetry/api";var Ef=globalThis.fetch;import{ExportResultCode as Df}from"@opentelemetry/core";import{ExportResultCode as zt}from"@opentelemetry/core";import{mkdir as CE,rename as NE,writeFile as aE}from"fs/promises";import{join as Pt}from"path";class Ut{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((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:zt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:zt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:zt.FAILED}});return Promise.resolve({code:zt.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 x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let y of _)if(y.status==="fulfilled")x.add(y.value);let i=t.filter((y)=>!x.has(y.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let y of this.bufferItems)this.bufferBytes+=Buffer.byteLength(y.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?Pt(this.basePath,n,...m):Pt(this.basePath,...m);if(!this.knownDirs.has(x))await CE(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,y=Pt(x,`.${i}.tmp`),T=Pt(x,i),C=t.join(`
1096
+ `.execute(t)}async function sa(t){await t.schema.dropIndex("idx_task_board_items_pending_review").execute()}var la={"001-initial-schema":pt,"002-organization-settings":Jt,"003-connection-schema-align":jt,"004-remove-models-binding":Dt,"005-connection-configuration":$t,"006-add-views-to-settings":Lt,"007-monitoring-logs":Wt,"008-event-bus":Rt,"009-drop-audit-logs":Xt,"010-gateways":Qt,"011-gateway-icon":Zt,"012-gateway-tool-selection-mode":Ft,"013-monitoring-user-agent-gateway":Ht,"014-gateway-resources-prompts":Mt,"015-monitoring-properties":Yt,"016-downstream-token-client-info":Bt,"017-downstream-token-remove-userid":Gt,"018-drop-gateway-tool-selection-strategy":At,"019-remove-gateway-is-default":St,"020-enabled-plugins":Ot,"021-threads":It,"022-rename-gateway-to-virtual-mcp":kt,"023-optimize-thread-indexes":ct,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":Vt,"026-restrict-child-connection-delete":gt,"027-update-management-mcp-url":qt,"028-update-management-mcp-to-self":st,"029-add-updated-by-to-connections":lt,"030-member-tags":dt,"031-add-dependency-mode":bt,"032-projects":tn,"033-thread-status":nn,"034-monitoring-dashboards":_n,"035-project-connections":un,"036-update-registry-url":xn,"037-ai-provider-keys":mn,"038-oauth-pkce-states":Tn,"039-automations":yn,"040-replace-next-run-at-with-last-run-at":Cn,"041-ai-provider-keys-unique-constraint":Nn,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":En,"044-drop-connections-tools-column":Kn,"045-thread-context-start-message":en,"046-remove-object-storage-plugin":wn,"047-add-next-run-at":zn,"048-merge-projects-agents":Un,"049-remove-org-admin-projects":on,"050-durable-agent-runs":pn,"051-org-sso":jn,"052-thread-agent-ids":Dn,"053-registry-config":$n,"054-connection-slug":Wn,"055-spaces":Rn,"056-automation-project-scope":Xn,"057-thread-virtual-mcp-id":Qn,"058-trigger-callback-tokens":Zn,"059-kv":Fn,"060-member-index":Hn,"061-downstream-token-connection-index":Mn,"062-private-registry":Yn,"063-event-subscriptions-enabled-boolean":Bn,"064-brand-context":Gn,"065-organization-domains":An,"066-brand-context-structured":Sn,"067-threads-metadata":On,"068-threads-branch":In,"069-sandbox-runner-state":kn,"070-model-categories":cn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":Vn,"073-backfill-basic-usage-roles":gn,"074-sandbox-runner-state-handle-nonunique":rn,"075-thread-inflight-async-jobs":qn,"076-automations-drop-agent-json":vn,"077-tier-only-model-selection":ln,"078-automation-tool-call-kind":dn,"079-strip-legacy-freestyle-vm-map-entries":bn,"080-async-research-jobs":t_,"081-async-research-jobs-result-content":n_,"082-secrets":__,"083-thread-run-locally":u_,"084-drop-host-sandbox-rows":x_,"085-rename-runner-kind":m_,"086-thread-pins-and-vm-map-rekey":i_,"087-fix-vm-map-rekey":T_,"088-purge-cli-activate-keys":y_,"089-rename-remote-user-to-desktop":C_,"090-automation-webhook-triggers":N_,"091-organization-domains-allow-multi":a_,"092-sandbox-naming-uniformization":E_,"093-backfill-global-search-basic-usage":K_,"094-org-file-configs":f_,"095-remove-automation-tool-call-kind":w_,"096-org-file-configs-public-url-base":z_,"097-drop-local-docker-sandbox-state":U_,"098-thread-message-parts":o_,"099-run-fence":p_,"100-link-transport":J_,"101-cancel-requested-at":j_,"102-observational-agent":D_,"103-revert-observational-agent":$_,"104-agent-sandbox-provider-kind":W_,"105-org-fs":R_,"106-automation-tools":X_,"107-org-fs-public-org":Q_,"108-automation-max-agent-steps":Z_,"109-thread-message-parts-per-message-seq":F_,"110-backfill-ghs-token-expiry":H_,"111-org-fs-thread-id":M_,"112-org-file-configs-credential-type":Y_,"113-thread-failure-reason":B_,"114-run-acked-seq":G_,"115-thread-projected-seq":A_,"116-org-sites":S_,"117-org-file-configs-site-slug":O_,"118-organization-domains-multi-verify":I_,"119-organization-join-requests":k_,"120-org-fs-read-public":c_,"121-org-fs-share-password":h_,"122-split-web-research-tier":r_,"123-connection-credential-vault":q_,"124-drop-thread-projected-seq":v_,"125-github-child-single-parent":s_,"126-task-board":d_,"127-task-board-due-date":b_,"128-reports-only":tu,"129-task-board-assigned-by":nu,"130-task-board-thread-id":_u,"131-task-board-thread-link-cascade":uu,"132-task-board-item-prs":xu,"133-dedupe-duplicate-members":mu,"134-drop-task-board-enabled":iu,"135-task-board-item-fk-cascade":Tu,"136-task-board-import-idempotency":yu,"137-agent-sandbox-runner-state":Cu,"138-agent-sandbox-sessions":Nu,"139-organization-billing":au,"140-seat-change-log":Eu,"141-benefits-sync-pending":Ku,"142-stripe-event-watermark":eu,"143-armed-report-url":fu,"144-benefits-pending-index":wu,"145-user-model-preferences":zu,"146-organization-main-agent":Pu,"147-drop-agent-sandbox-tables":Uu,"148-org-flags":ou,"149-task-board-item-sort-order":pu,"150-task-board-activity":Ju,"151-task-board-tags":Du,"152-repair-connection-slug":Lu,"153-task-board-latest-assistant-part-index":Wu,"154-task-board-qa-activity":Xu,"155-task-board-review-claims":Qu,"156-task-board-conflict-activity":Fu,"157-drop-seat-billing":Hu,"158-drop-github-child-single-parent":Mu,"159-task-board-comments":Yu,"160-task-quota-billing":Bu,"161-task-quota-claim-state":Au,"162-claude-subscriptions":Su,"163-task-board-item-dismissed":Ou,"164-per-org-task-quota":Iu,"165-task-board-pending-review-index":ku},cu=la;import{getMigrations as ZE}from"better-auth/db";import{sso as FE}from"@better-auth/sso";import{organization as HE}from"@decocms/better-auth/plugins";import{admin as ME,apiKey as YE,jwt as BE,magicLink as GE,mcp as AE,openAPI as SE}from"better-auth/plugins";import{emailOTP as OE}from"better-auth/plugins/email-otp";import{Kysely as DE,PostgresDialect as rx}from"kysely";import{Pool as qx}from"pg";import{homedir as da}from"os";var ba=new Set(["all","worker","api"]);function tE(t){let n=(t??"").trim();return ba.has(n)?n:"all"}var nE=new Set(["production","development","test"]);function _E(t){let n=(t??"").trim();return nE.has(n)?n:"development"}function D(t){return t==="true"||t==="1"}function uE(t){if(t===void 0||t==="")return;return D(t)}function hu(t,n,_){if(n===void 0||n==="")return;let m=Number(n);if(!Number.isSafeInteger(m)||m<=0)throw Error(`${t} must be a positive integer`);if(_!==void 0&&m>_)throw Error(`${t} must be at most ${_}`);return m}function U(t,n,_,m){return hu(t,n,m)??_}function xE(t,n,_,m){if(n===void 0||n==="")return _;let x=Number(n);if(!Number.isSafeInteger(x)||x<0)throw Error(`${t} must be a non-negative integer`);if(m!==void 0&&x>m)throw Error(`${t} must be at most ${m}`);return x}function Bx(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function Gx(t){if(!t)return null;try{let _=new URL(t).hostname.replace(/^\[|\]$/g,"");if(_==="localhost"||_==="127.0.0.1"||_==="::1")return null;return t}catch{return null}}function mE(t){return t===void 0||t===""||t==="true"||t==="1"}function q(t,n){return t||n}var iE=new Set(["agent-sandbox","user-desktop"]);function TE(t){let n=(t??"").trim(),_=n.length>0?n:"user-desktop";if(_==="cluster")return"agent-sandbox";if(!iE.has(_))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return _}function Ax(t,n){let _=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${da()}/deco`,m=t.localMode,x=t.nodeEnv||_E(n.NODE_ENV),i=n.NATS_URL||"nats://localhost:4222",y=uE(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:x,port:U("PORT",t.port||n.PORT,3000,65535),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:q(n.STUDIO_PUBLIC_URL,n.MESH_PUBLIC_URL),dataDir:_,databasePgSsl:D(n.DATABASE_PG_SSL),databasePoolMax:U("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),dbosPoolSize:U("DBOS_POOL_SIZE",n.DBOS_POOL_SIZE,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:q(n.STUDIO_JWT_SECRET,n.MESH_JWT_SECRET),localMode:m,disableRateLimit:D(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((C)=>C.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:hu("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:y,natsTunnelSessionTtlSeconds:U("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:D(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeOrgPriceId:n.STRIPE_ORG_PRICE_ID,topupFeePercent:xE("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:D(n.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:U("STUDIO_FREE_TASKS",n.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:U("STUDIO_MONTHLY_TASKS",n.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:U("STUDIO_MAX_RUNS_PER_TASK",n.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:D(n.ENABLE_DECO_IMPORT),mcpCacheEnabled:Bx(n.MCP_CACHE_ENABLED,x!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:D(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:U("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:U("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Bx(n.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:U("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",n.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),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:mE(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:hu("DUCKDB_THREADS",n.DUCKDB_THREADS),isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME||crypto.randomUUID(),dispatchRole:tE(q(n.STUDIO_DISPATCH_ROLE,n.MESH_DISPATCH_ROLE)),sandboxProviderKind:TE(n.STUDIO_SANDBOX_PROVIDER),sandboxStickyHeadRefEnabled:D(n.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:D(n.TASK_BOARD_RERUN_REUSES_PR_BRANCH),sandboxReleaseOnRunEndEnabled:D(n.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:U("SANDBOX_RELEASE_GRACE_MS",n.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:q(n.REPORTS_INTERNAL_API_URL,n.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:q(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:Gx(n.DATABASE_URL),externalNatsUrl:Gx(i),skipMigrations:t.skipMigrations}}var wt=null;function B(){if(!wt)yE();return wt}function yE(){if(wt)return;let t={...process.env},n=Ax({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);wt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((_)=>_.trim()).filter(Boolean)})}import{createContextKey as eE,metrics as fE,propagation as Kw,ROOT_CONTEXT as ew,SpanStatusCode as fw,trace as wE}from"@opentelemetry/api";import{logs as zE,SeverityNumber as Vu}from"@opentelemetry/api-logs";import{OTLPLogExporter as Pw}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as PE}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as pw}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as jw}from"@opentelemetry/instrumentation-runtime-node";import{context as Tf,propagation as yf,SpanKind as Cf,SpanStatusCode as Nf}from"@opentelemetry/api";var Ef=globalThis.fetch;import{ExportResultCode as Df}from"@opentelemetry/core";import{ExportResultCode as zt}from"@opentelemetry/core";import{mkdir as CE,rename as NE,writeFile as aE}from"fs/promises";import{join as Pt}from"path";class Ut{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((_)=>{console.error("[NDJSONExporter] Timer flush failed:",_)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:zt.FAILED});for(let n of t){let _=JSON.stringify(n),m=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:m,json:_}),this.bufferBytes+=Buffer.byteLength(_,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:zt.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:zt.FAILED}});return Promise.resolve({code:zt.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 x of t){let i=n.get(x.partition);if(!i)i=[],n.set(x.partition,i);i.push(x.json)}let _=await Promise.allSettled(Array.from(n.entries()).map(([x,i])=>this.writeNDJSON(i,x).then(()=>x))),m=_.find((x)=>x.status==="rejected");if(m){let x=new Set;for(let y of _)if(y.status==="fulfilled")x.add(y.value);let i=t.filter((y)=>!x.has(y.partition));this.bufferItems=i.concat(this.bufferItems),this.bufferBytes=0;for(let y of this.bufferItems)this.bufferBytes+=Buffer.byteLength(y.json,"utf8")+1;throw m.reason}}async writeNDJSON(t,n){let _=new Date,m=[String(_.getUTCFullYear()),String(_.getUTCMonth()+1).padStart(2,"0"),String(_.getUTCDate()).padStart(2,"0"),String(_.getUTCHours()).padStart(2,"0")],x=n?Pt(this.basePath,n,...m):Pt(this.basePath,...m);if(!this.knownDirs.has(x))await CE(x,{recursive:!0,mode:448}),this.knownDirs.add(x);let i=`${crypto.randomUUID()}.ndjson`,y=Pt(x,`.${i}.tmp`),T=Pt(x,i),C=t.join(`
1097
1097
  `)+`
1098
1098
  `;await aE(y,C,{mode:384}),await NE(y,T)}}import{ExportResultCode as Xf}from"@opentelemetry/core";import{AggregationTemporality as Zf,DataPointType as Ff}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Af}from"@opentelemetry/core";var kf=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Fw,LoggerProvider as Hw}from"@opentelemetry/sdk-logs";import{detectResources as Yw,envDetector as Bw,hostDetector as Gw,osDetector as Aw,processDetector as Sw,resourceFromAttributes as Ow}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as kw}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as Vf}from"@opentelemetry/api-logs";import{NodeSDK as Vw}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as rw,SamplingDecision as G}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as sf}from"@opentelemetry/api";var UE="__d",oE=eE("Current request"),pE=1;var Ox=(t)=>{let _=new URL(t.url).searchParams.get(UE);if(_==="")return crypto.randomUUID();if(!_)_=t.headers.get("x-trace-debug-id");return _};class Ix{inner;constructor(t){this.inner=t}shouldSample(t,n,_,m,x,i){let y=t.getValue(oE);if(!y){if(this.inner)return this.inner.shouldSample(t,n,_,m,x,i);return{decision:G.RECORD_AND_SAMPLED}}let T=Ox(y);if(T)return{decision:G.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":T}};if(this.inner){let C=this.inner.shouldSample(t,n,_,m,x,i);if(C.decision===G.RECORD_AND_SAMPLED){let N=crypto.randomUUID();C.attributes={...C.attributes??{},"trace.debug.id":N}}return C}return{decision:G.NOT_RECORD}}toString(){return"DebugSampler"}}class kx{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:G.RECORD_AND_SAMPLED};return{decision:G.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var vw=new PE({preventServerStart:!0}),sw=new Ix(new kx(pE));var Sx=wE.getTracer("studio","1.0.0"),v=fE.getMeter("studio","1.0.0"),JE=zE.getLogger("studio","1.0.0"),gu=(t,n,_)=>{let m={},x=_,i=_[_.length-1];if(i!==null&&typeof i==="object"&&!Array.isArray(i)&&!(i instanceof Error)&&Object.getPrototypeOf(i)===Object.prototype)m=i,x=_.slice(0,-1);let y=x.map((T)=>{if(T instanceof Error)return`${T.name}: ${T.message}`;if(typeof T==="object")try{return JSON.stringify(T)}catch{return"[Object]"}return String(T)}).join(" ");JE.emit({severityNumber:t,severityText:n,body:y,attributes:{"log.source":"console",...m}})},ru={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{gu(Vu.ERROR,"ERROR",t),ru.error(...t)};console.warn=(...t)=>{gu(Vu.WARN,"WARN",t),ru.warn(...t)};console.debug=(...t)=>{gu(Vu.DEBUG,"DEBUG",t),ru.debug(...t)};var qu,cx=0,vu=500;function jE(){if(qu)return;let t=performance.now()+vu;qu=setInterval(()=>{let n=performance.now();cx=Math.max(0,n-t),t=n+vu},vu),qu.unref?.()}function hx(){return jE(),cx}var $E=()=>v.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Vx=()=>v.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gx=400,LE=100,WE=(t)=>(n)=>{let _={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>gx){let m=hx(),x=m>gx/2;console.error(x?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(m),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:ot()}})}if($E().record(n.queryDurationMillis,_),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function RE(t){let n=t.connect.bind(t);return t.connect=(_)=>{if(typeof _==="function")return n(_);let m=performance.now(),x=ot(),i=t.idleCount===0&&t.totalCount>=x,y=t.idleCount;return n().then((T)=>{let C=performance.now()-m;if(Vx().record(C,{"db.pool.outcome":i?"contended":"available"}),C>LE)if(i)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:C,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:x});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:C,idleAtStart:y,total:t.totalCount,max:x});return T},(T)=>{throw Vx().record(performance.now()-m,{"db.pool.outcome":"error"}),T})},t}var vx={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function sx(){try{return B().databasePgSsl}catch{return!1}}function ot(){try{return B().databasePoolMax}catch{return 10}}function XE(t){let n=RE(new qx({connectionString:t,max:ot(),ssl:sx(),...vx})),_=new rx({pool:n});return{type:"postgres",db:new DE({dialect:_,log:WE(n)}),pool:n}}function l(){return B().databaseUrl}function lx(t){let n=t||l();return new rx({pool:new qx({connectionString:n,max:ot(),ssl:sx(),...vx})})}function QE(t){let n=t||l();return XE(n)}async function dx(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===s)s=null}var s=null;function su(){if(!s)s=QE(l());return s}async function bx(t){let _={database:lx(t||l()),plugins:[HE({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),ME(),YE(),BE(),SE(),AE({loginPage:"/login"}),FE(),GE({sendMagicLink:async()=>{}}),OE({sendVerificationOTP:async()=>{}})]},{toBeAdded:m,toBeCreated:x,runMigrations:i}=await ZE(_);if(!m.length&&!x.length)return"up to date";return await i(),`${x.length+m.length} table(s) migrated`}async function nm(t,n){return(await A`
1099
1099
  SELECT table_name FROM information_schema.tables