decocms 4.189.4 → 4.190.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/client/assets/{AlertCircle-D3Qs0FFy.js → AlertCircle-DXED6rBH.js} +1 -1
  2. package/dist/client/assets/{AreaChart-Bm9oWpDI.js → AreaChart-ClPQaVfK.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-KCeDdey7.js → ArrowUp-CzxIfAAL.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-DzH5YY55.js → ArrowUpRight-B9MuUChV.js} +1 -1
  5. package/dist/client/assets/{Check-Q-_lt_09.js → Check-Cv8jJZ08.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-CpUGfThF.js → CheckCircle-BbQE3ya1.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-DUQLGU74.js → ChevronDown-BANYTkpy.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-tZGgK0ej.js → ChevronRight-DETJ3xj_.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-dNA74kZx.js → ChevronUp-wqfkaLS5.js} +1 -1
  10. package/dist/client/assets/{Copy01-DZCHECcl.js → Copy01-CbGbNUH1.js} +1 -1
  11. package/dist/client/assets/{CpuChip01-6WbMpI-i.js → CpuChip01-Cu-vc03_.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-ZD5-vusf.js → CreditCard01-CbBbSbmH.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-mjLHFHER.js → DotsVertical-BBgRvZBo.js} +1 -1
  14. package/dist/client/assets/{Eye-BUUXTWX1.js → Eye-AoGWtBSi.js} +1 -1
  15. package/dist/client/assets/{FilterLines-Aaor4VEY.js → FilterLines-BWq7x_Ul.js} +1 -1
  16. package/dist/client/assets/{HardDrive-50021tEw.js → HardDrive-BLvOShvd.js} +1 -1
  17. package/dist/client/assets/{Key01-BuRPk2uM.js → Key01-mErcgxup.js} +1 -1
  18. package/dist/client/assets/{LayoutLeft-D3bHKzrX.js → LayoutLeft-DBT_IJtF.js} +1 -1
  19. package/dist/client/assets/{LinkExternal01-t_nt1nvG.js → LinkExternal01-CXhNQP7c.js} +1 -1
  20. package/dist/client/assets/{LogOut01-ohLnV3Hh.js → LogOut01-mO0tZsvW.js} +1 -1
  21. package/dist/client/assets/{Monitor01-C6IjbQHZ.js → Monitor01-BZEADwc8.js} +1 -1
  22. package/dist/client/assets/{Palette-2dcvpJZV.js → Palette-CnQId6v6.js} +1 -1
  23. package/dist/client/assets/{Play-n7futq3r.js → Play-B7cP13Me.js} +1 -1
  24. package/dist/client/assets/{Plus-br2bS-tP.js → Plus-DKjrN_YU.js} +1 -1
  25. package/dist/client/assets/{SearchLg-g9QMYJMf.js → SearchLg-DwtISFdA.js} +1 -1
  26. package/dist/client/assets/{SearchMd-CQmoxbw8.js → SearchMd-CnFLdgrH.js} +1 -1
  27. package/dist/client/assets/{Settings02-WwxKIeWd.js → Settings02-CQSeeLoM.js} +1 -1
  28. package/dist/client/assets/{Shield01-C6wqP2Rz.js → Shield01-CntlcGRR.js} +1 -1
  29. package/dist/client/assets/{Star01-CbSUoYev.js → Star01-MMb-rmit.js} +1 -1
  30. package/dist/client/assets/{Stars01-CwTjZC2F.js → Stars01-BShDUy4Y.js} +1 -1
  31. package/dist/client/assets/{Stars02-C0IsDQ3V.js → Stars02-B926KF3Z.js} +1 -1
  32. package/dist/client/assets/{Sun-Ca0R6Yy3.js → Sun-CxglTtSz.js} +1 -1
  33. package/dist/client/assets/{SwitchHorizontal01-B6jjMDce.js → SwitchHorizontal01-B1X-VtF4.js} +1 -1
  34. package/dist/client/assets/{Tool01-DQggMr9v.js → Tool01-CbaEqEhy.js} +1 -1
  35. package/dist/client/assets/{Tool02--xF83SZE.js → Tool02-BBAH4fGj.js} +1 -1
  36. package/dist/client/assets/{Trash01-D_YOsBKX.js → Trash01-BwbIeVja.js} +1 -1
  37. package/dist/client/assets/{TrendUp01-DFS0s0Wf.js → TrendUp01-Bx1jfyaf.js} +1 -1
  38. package/dist/client/assets/{Upload01-CdJiSBN7.js → Upload01-CVhasQ21.js} +1 -1
  39. package/dist/client/assets/{User01-Dn2hap_m.js → User01-CfaOzYqT.js} +1 -1
  40. package/dist/client/assets/{Users01-57H5-4XR.js → Users01-Di90kAgB.js} +1 -1
  41. package/dist/client/assets/{Users03-BhBnkqse.js → Users03-Ciz_K4lk.js} +1 -1
  42. package/dist/client/assets/{X-Db4fQpsk.js → X-C9Eo6bsP.js} +1 -1
  43. package/dist/client/assets/{XCircle-C_gVQvy_.js → XCircle-DCx5xBFU.js} +1 -1
  44. package/dist/client/assets/{XClose-grBZIPjc.js → XClose-DUO7rfyU.js} +1 -1
  45. package/dist/client/assets/{Zap-CCUrNCgt.js → Zap-moyChzSY.js} +1 -1
  46. package/dist/client/assets/{ZapSquare-C6AJAZWt.js → ZapSquare-BwgIOjRQ.js} +1 -1
  47. package/dist/client/assets/{access-gate-CADLo1H3.js → access-gate-DyI_QApY.js} +1 -1
  48. package/dist/client/assets/{agent-icon-NDc2FlAH.js → agent-icon-CJcwoAuE.js} +1 -1
  49. package/dist/client/assets/{agents-list-CzUFj_Ca.js → agents-list-CE1KtlG_.js} +1 -1
  50. package/dist/client/assets/{ai-providers-BPmvn83X.js → ai-providers-9FP8Vgi6.js} +1 -1
  51. package/dist/client/assets/{alert-aNWG-qQ1.js → alert-BgpReGBN.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-CEaVefIB.js → alert-dialog-Bk0yvpfE.js} +1 -1
  53. package/dist/client/assets/app-editor-DtoHC0cz.js +1 -0
  54. package/dist/client/assets/{auth-yqVqfTMc.js → auth-DE4bma7Q.js} +1 -1
  55. package/dist/client/assets/{auth-catchall-DdKzDPt5.js → auth-catchall-Cl7AYup6.js} +1 -1
  56. package/dist/client/assets/{auth-entry-Vwa2uirj.js → auth-entry-Bi7CumSs.js} +1 -1
  57. package/dist/client/assets/{auth-split-layout-8_ylFdN3.js → auth-split-layout-B69Ee6U_.js} +1 -1
  58. package/dist/client/assets/{authenticate-and-persist-oauth-D7SLozTr.js → authenticate-and-persist-oauth-yvVI9G22.js} +1 -1
  59. package/dist/client/assets/{automation-list-row-C6KPGeoZ.js → automation-list-row-Cws0lt-9.js} +1 -1
  60. package/dist/client/assets/{automation-runs-BAmfK5TE.js → automation-runs-6E4exrgY.js} +1 -1
  61. package/dist/client/assets/{automations-CW23nXeN.js → automations-D07mw889.js} +1 -1
  62. package/dist/client/assets/{avatar-D_PU_-K1.js → avatar-DJS63fnf.js} +1 -1
  63. package/dist/client/assets/{badge-DHGwQzdr.js → badge-6rnM0DeY.js} +1 -1
  64. package/dist/client/assets/{billing-BiLo_BpJ.js → billing-B1H3tqw_.js} +1 -1
  65. package/dist/client/assets/{block-document-DQWu7K9j.js → block-document-BLKYSplP.js} +1 -1
  66. package/dist/client/assets/{brand-context-BORQSX5P.js → brand-context-uQHwIxqs.js} +1 -1
  67. package/dist/client/assets/{buckets-D9pA9PuW.js → buckets-2814OOuy.js} +1 -1
  68. package/dist/client/assets/{bulk-category-panel-CBb0xXS5.js → bulk-category-panel-BBnxMkuV.js} +1 -1
  69. package/dist/client/assets/{capability-load-error-D4xJPQOY.js → capability-load-error-9bOhNBbe.js} +1 -1
  70. package/dist/client/assets/{card-BjDbxlSV.js → card-CrWtG_oD.js} +1 -1
  71. package/dist/client/assets/category-editor-BZMRXgNg.js +1 -0
  72. package/dist/client/assets/{chat-context-BzQ2-wm2.js → chat-context-BT2m2n8F.js} +1 -1
  73. package/dist/client/assets/{checkbox-B0UROR-t.js → checkbox-fApMVB_C.js} +1 -1
  74. package/dist/client/assets/{cli-auth-success-CKucrPxP.js → cli-auth-success-Dd6OURUM.js} +1 -1
  75. package/dist/client/assets/{collection-detail-HkBo9STr.js → collection-detail-DYNDiF7d.js} +1 -1
  76. package/dist/client/assets/{collection-display-button--H-Wm46J.js → collection-display-button-BUEdKLAN.js} +1 -1
  77. package/dist/client/assets/{collection-search-CoQlzXz4.js → collection-search-BaQxIHXt.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-B2ioAsw6.js → collection-table-wrapper-CBokqZrh.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-BVdaTLj6.js → collection-tabs-vD34oS9A.js} +1 -1
  80. package/dist/client/assets/{command-BvXMmhEU.js → command-D8v_nR97.js} +1 -1
  81. package/dist/client/assets/{commerce-onboarding-Bxh8D2ML.js → commerce-onboarding-C2QOTogc.js} +1 -1
  82. package/dist/client/assets/{connect-Rp7u4c0C.js → connect-BhjYdlYe.js} +1 -1
  83. package/dist/client/assets/{connection-DsnYd9me.js → connection-RtmTb73Q.js} +1 -1
  84. package/dist/client/assets/{connection-card-ffMQFTPc.js → connection-card-DyjoSNay.js} +1 -1
  85. package/dist/client/assets/{connection-detail-Dut9smbq.js → connection-detail-D_psVjHX.js} +1 -1
  86. package/dist/client/assets/{connection-form-helpers-CjSSaezm.js → connection-form-helpers-BIrwRhdD.js} +1 -1
  87. package/dist/client/assets/{connections-BMLesdC_.js → connections-B6P40q80.js} +1 -1
  88. package/dist/client/assets/{decopilot-sse-pool-CT8pcun6.js → decopilot-sse-pool-B94gAtrR.js} +1 -1
  89. package/dist/client/assets/{dialog-CttGXndh.js → dialog-p8J7StLH.js} +1 -1
  90. package/dist/client/assets/{domain-settings-CNXJWTFc.js → domain-settings-Cir0azXg.js} +1 -1
  91. package/dist/client/assets/{drawer-Hbqwqj_v.js → drawer-CBT7Eys6.js} +1 -1
  92. package/dist/client/assets/{dropdown-menu-B-Rc9KVE.js → dropdown-menu-BrXZ6Vm1.js} +1 -1
  93. package/dist/client/assets/{empty-state-t5vTZffk.js → empty-state-B60k1FtN.js} +1 -1
  94. package/dist/client/assets/{extract-connection-data-BKgVYDD1.js → extract-connection-data-DPPQjvw0.js} +1 -1
  95. package/dist/client/assets/{file-explorer-CB38KkQ9.js → file-explorer-_acp7GfX.js} +1 -1
  96. package/dist/client/assets/{form-DSL6Fc4J.js → form-BzB6OSr4.js} +1 -1
  97. package/dist/client/assets/{general-ZWwHc1Dv.js → general-w04LrnRs.js} +1 -1
  98. package/dist/client/assets/{github-repo-picker-Ji1aXbsq.js → github-repo-picker-DtcsOf5_.js} +1 -1
  99. package/dist/client/assets/{hooks-Ce5h-0H_.js → hooks-Bazbp_1N.js} +1 -1
  100. package/dist/client/assets/{index-C-_KNKWV.js → index-B1pamPTG.js} +3 -3
  101. package/dist/client/assets/{index-D2Tvfvo2.js → index-C-KqRNgp.js} +1 -1
  102. package/dist/client/assets/{index-DiKHCAn6.js → index-CITe_oq2.js} +44 -44
  103. package/dist/client/assets/{index-BnfbmtH-.js → index-CU1ur_bP.js} +1 -1
  104. package/dist/client/assets/{index-5nPWXnV-.js → index-CZvV4EXt.js} +1 -1
  105. package/dist/client/assets/{index-BFnH0tM9.js → index-CcARg5YW.js} +1 -1
  106. package/dist/client/assets/{index-c0dMNtV9.js → index-CxA3NuXr.js} +1 -1
  107. package/dist/client/assets/{index-DmwZaI8J.js → index-DTC5AnWE.js} +1 -1
  108. package/dist/client/assets/{index-CsPu6Qga.js → index-DVFVwt0t.js} +1 -1
  109. package/dist/client/assets/{index-CpnGhgOM.js → index-DaAKYWlK.js} +1 -1
  110. package/dist/client/assets/{index-Bt63id7h.js → index-_-LfDtEQ.js} +1 -1
  111. package/dist/client/assets/{index-redirect-BmCjWim-.js → index-redirect-Bhh8boBC.js} +1 -1
  112. package/dist/client/assets/{input-DUANEN5d.js → input-8KUKm5_e.js} +1 -1
  113. package/dist/client/assets/{integration-icon-DBlR3F5O.js → integration-icon-ByCUiVdJ.js} +1 -1
  114. package/dist/client/assets/{invite-member-dialog-DFC5yAID.js → invite-member-dialog-Dvmz_iJM.js} +1 -1
  115. package/dist/client/assets/{label-4mo6OTAJ.js → label-B89S6Txq.js} +1 -1
  116. package/dist/client/assets/{layout-BB2VM2tH.js → layout-BZqAHjH_.js} +1 -1
  117. package/dist/client/assets/{login-CrFHTzLa.js → login-CabK5JLY.js} +1 -1
  118. package/dist/client/assets/{mcp-oauth-CvtN5eM9.js → mcp-oauth-Di-ad4PD.js} +1 -1
  119. package/dist/client/assets/{members-DPBvA0MK.js → members-eHjNNDpv.js} +1 -1
  120. package/dist/client/assets/{monaco-editor-CVsx1Y4H.js → monaco-editor-DXS6EpEe.js} +1 -1
  121. package/dist/client/assets/{monitoring-stats-row-CKFb1Ge6.js → monitoring-stats-row-DMNgnpP1.js} +1 -1
  122. package/dist/client/assets/{multi-select-Nhsh_g37.js → multi-select-DzXLMoLM.js} +1 -1
  123. package/dist/client/assets/{oauth-callback-ai-provider-BOl0CEDj.js → oauth-callback-ai-provider-C7yfrXoI.js} +1 -1
  124. package/dist/client/assets/{oauth-callback-Bjh57K7w.js → oauth-callback-hWEALUDd.js} +1 -1
  125. package/dist/client/assets/{onboarding-Dc_Al6PG.js → onboarding-ChVVg5Tt.js} +1 -1
  126. package/dist/client/assets/{org-layout-CgCa7Pr9.js → org-layout-Gs4YXCJU.js} +1 -1
  127. package/dist/client/assets/{organization-choice-CalHG3K4.js → organization-choice-2j0s-URi.js} +1 -1
  128. package/dist/client/assets/{orgs-CEhzZqLc.js → orgs-Bc0T_S8f.js} +1 -1
  129. package/dist/client/assets/{page-seo-form-CXh_l7UE.js → page-seo-form-Dhp2UaWO.js} +1 -1
  130. package/dist/client/assets/{popover-qGOMX9S_.js → popover-BH69yCmw.js} +1 -1
  131. package/dist/client/assets/{post-editor-eTwzvVdX.js → post-editor-ClPwBicl.js} +1 -1
  132. package/dist/client/assets/{primitives-CmXU1T-E.js → primitives-BW5Yu4EI.js} +1 -1
  133. package/dist/client/assets/{profile-Dd2OzdL3.js → profile-BztRA1BA.js} +1 -1
  134. package/dist/client/assets/project-app-view-2l1tg7__.js +1 -0
  135. package/dist/client/assets/record-editor-DRypaazn.js +1 -0
  136. package/dist/client/assets/redirect-editor-HMDzyeF7.js +1 -0
  137. package/dist/client/assets/registry-kBVKGTVS.js +2 -0
  138. package/dist/client/assets/{registry-layout-BVO2B5jK.js → registry-layout-6ltnB5Yz.js} +1 -1
  139. package/dist/client/assets/{reports-fhnoMn21.js → reports-Cxini64Q.js} +1 -1
  140. package/dist/client/assets/{require-capability-JGCeDf3U.js → require-capability-f3q71kF5.js} +1 -1
  141. package/dist/client/assets/{required-auth-layout-DCzOHdNo.js → required-auth-layout-Ds7bjGvL.js} +1 -1
  142. package/dist/client/assets/{reset-password-DrG6fjzb.js → reset-password-CXbq6Tw-.js} +1 -1
  143. package/dist/client/assets/{roles-DeOQQgcA.js → roles-CspygFiB.js} +1 -1
  144. package/dist/client/assets/{search-input-F9xhFzZb.js → search-input-zK9i-Kh3.js} +1 -1
  145. package/dist/client/assets/{secrets-n59EEI-q.js → secrets-L8zybnQm.js} +1 -1
  146. package/dist/client/assets/sections-editor-DPOpZ-tE.js +2 -0
  147. package/dist/client/assets/{select-_dOe6pXx.js → select-CDC8kviA.js} +1 -1
  148. package/dist/client/assets/{select-model-D6wNUTIw.js → select-model-Bp5Xd4te.js} +1 -1
  149. package/dist/client/assets/{self-tool-result-D7uR9c68.js → self-tool-result-Cuj-33nr.js} +1 -1
  150. package/dist/client/assets/{seo-editor-DuD53iXt.js → seo-editor-4TGrgB3S.js} +1 -1
  151. package/dist/client/assets/{settings-layout-ByK-L25t.js → settings-layout-DlSc777F.js} +1 -1
  152. package/dist/client/assets/{settings-section-UtSQabVd.js → settings-section-D8TGOGYz.js} +1 -1
  153. package/dist/client/assets/{shell-controls-CMDBTcx-.js → shell-controls-CZERq1n5.js} +1 -1
  154. package/dist/client/assets/{shell-layout-W662mMxo.js → shell-layout-D4_bTkUU.js} +1 -1
  155. package/dist/client/assets/{sidebar-L-2DHgxw.js → sidebar-CZTkBKXl.js} +1 -1
  156. package/dist/client/assets/{skeleton-DfrPDW7m.js → skeleton-CGHtidUO.js} +1 -1
  157. package/dist/client/assets/{spinner-CqL1-WJS.js → spinner-BM_ia_uk.js} +1 -1
  158. package/dist/client/assets/{sso-CYgtpN6D.js → sso-C3QdMV1g.js} +1 -1
  159. package/dist/client/assets/{store-Dd3AZKFV.js → store-DpxJmuD5.js} +1 -1
  160. package/dist/client/assets/store-registry-DExoSMMF.js +2 -0
  161. package/dist/client/assets/{studio-tools-DUpBKt0a.js → studio-tools-DM-9vWPj.js} +1 -1
  162. package/dist/client/assets/{switch-iOussAkU.js → switch-D4_0M4ba.js} +1 -1
  163. package/dist/client/assets/{tab-id-DMRKF8Fi.js → tab-id-DOUygo4c.js} +1 -1
  164. package/dist/client/assets/{table-BOxaAGZh.js → table-l5OXWTTW.js} +1 -1
  165. package/dist/client/assets/{tabs-894S1xsZ.js → tabs-CZAVib3u.js} +1 -1
  166. package/dist/client/assets/{textarea-CbguX8n4.js → textarea-C9hZnZoz.js} +1 -1
  167. package/dist/client/assets/{toggle-group-3GncZfUF.js → toggle-group-DKmas1Id.js} +1 -1
  168. package/dist/client/assets/{toolbar-CuXZCv8Z.js → toolbar-BvOLPMGj.js} +1 -1
  169. package/dist/client/assets/{tooltip-DBVne4AF.js → tooltip-IARwLh0F.js} +1 -1
  170. package/dist/client/assets/{use-ai-providers-DqFPMLk-.js → use-ai-providers-B3l8wwZ5.js} +1 -1
  171. package/dist/client/assets/{use-automations-DwSRqKG3.js → use-automations-DVulOVRH.js} +1 -1
  172. package/dist/client/assets/{use-autosave-D9POSwPv.js → use-autosave-BEPEE2EQ.js} +1 -1
  173. package/dist/client/assets/{use-capability-DAKf45OY.js → use-capability-DjJpn-d1.js} +1 -1
  174. package/dist/client/assets/{use-clock-tick-BuxUk8gE.js → use-clock-tick-DUclydJW.js} +1 -1
  175. package/dist/client/assets/{use-connection-D84wEmq3.js → use-connection-C7KvffTt.js} +1 -1
  176. package/dist/client/assets/{use-copy-1gzsTk7e.js → use-copy-ASUaxQ1g.js} +1 -1
  177. package/dist/client/assets/{use-create-virtual-mcp-D5lupdtr.js → use-create-virtual-mcp-BuMDo7HS.js} +1 -1
  178. package/dist/client/assets/{use-debounced-autosave-BkqsEkvM.js → use-debounced-autosave-Dr7OLeNB.js} +1 -1
  179. package/dist/client/assets/{use-debounced-value-DTX69OpO.js → use-debounced-value-TXd87EPp.js} +1 -1
  180. package/dist/client/assets/{use-deco-credits-siOrPwDw.js → use-deco-credits-DQBmpudk.js} +1 -1
  181. package/dist/client/assets/{use-decopilot-events-B3VYeAac.js → use-decopilot-events-BtR8Mqm3.js} +1 -1
  182. package/dist/client/assets/{use-delete-connection-ffIWkXkz.js → use-delete-connection-DpZ0gvcX.js} +1 -1
  183. package/dist/client/assets/{use-deployment-admin-CSAYeyCZ.js → use-deployment-admin-B-a9-Z3F.js} +1 -1
  184. package/dist/client/assets/{use-file-configs-CMkPSwHd.js → use-file-configs-vPXbDrDt.js} +1 -1
  185. package/dist/client/assets/{use-infinite-scroll-BBKd7U1m.js → use-infinite-scroll-0YyrXUEB.js} +1 -1
  186. package/dist/client/assets/{use-join-requests-84ViCvBk.js → use-join-requests-L6gA0vgB.js} +1 -1
  187. package/dist/client/assets/{use-mcp-client-D4vqlivU.js → use-mcp-client-DpgCUtQL.js} +1 -1
  188. package/dist/client/assets/{use-mcp-tools-BuZR3DEy.js → use-mcp-tools-BpQEjUlC.js} +1 -1
  189. package/dist/client/assets/{use-members-pgAhwPGY.js → use-members-DlNGYhNw.js} +1 -1
  190. package/dist/client/assets/{use-mobile-BPcz5oma.js → use-mobile-ADgWnTRh.js} +1 -1
  191. package/dist/client/assets/{use-navigate-to-agent-2t98e2iP.js → use-navigate-to-agent-C_I5OT4C.js} +1 -1
  192. package/dist/client/assets/{use-open-billing-url-G75W9mBC.js → use-open-billing-url-B4KqcF2I.js} +1 -1
  193. package/dist/client/assets/{use-org-auth-client-DYf4FA9r.js → use-org-auth-client-CJimZSCq.js} +1 -1
  194. package/dist/client/assets/{use-org-sso-D8qrzFg1.js → use-org-sso-k8cw1RWC.js} +1 -1
  195. package/dist/client/assets/{use-organization-roles-BuEvu6jC.js → use-organization-roles-3TWNcJlb.js} +1 -1
  196. package/dist/client/assets/{use-organization-settings-ACe6_mfp.js → use-organization-settings-D0OJWoGn.js} +1 -1
  197. package/dist/client/assets/{use-registry-connections-BKOeC49K.js → use-registry-connections-C661e6FH.js} +1 -1
  198. package/dist/client/assets/{use-secrets-UG5AHlpi.js → use-secrets-Cmc4oF-J.js} +1 -1
  199. package/dist/client/assets/use-section-preview-base-D7lAQ6j7.js +1 -0
  200. package/dist/client/assets/{use-status-sounds-DiI3bhtT.js → use-status-sounds-2TtpMK-C.js} +1 -1
  201. package/dist/client/assets/{use-tags-BMlZpBli.js → use-tags-Bd6Uv4oo.js} +1 -1
  202. package/dist/client/assets/{use-view-mode-Diw6tqtu.js → use-view-mode-CXw_Kvrf.js} +1 -1
  203. package/dist/client/assets/{use-virtual-mcp-DqKFnf40.js → use-virtual-mcp-CEINdtXi.js} +1 -1
  204. package/dist/client/assets/useInfiniteQuery-CbDX819o.js +1 -0
  205. package/dist/client/assets/{useRouterState-OA3D7Heq.js → useRouterState-eCBwWfUY.js} +1 -1
  206. package/dist/client/assets/useSuspenseInfiniteQuery-DbnovJ-n.js +1 -0
  207. package/dist/client/assets/{users-CrV-tVSx.js → users-DTuWteU5.js} +1 -1
  208. package/dist/client/assets/{variant-calendar-DJpjooc2.js → variant-calendar-C_isZHgL.js} +1 -1
  209. package/dist/client/assets/{view-mode-toggle-C9_d1ZON.js → view-mode-toggle-mVooQxHk.js} +1 -1
  210. package/dist/client/index.html +1 -1
  211. package/dist/server/cli.js +1 -1
  212. package/dist/server/server.js +1 -1
  213. package/package.json +1 -1
  214. package/dist/client/assets/add-section-modal-CtrYQsis.js +0 -1
  215. package/dist/client/assets/app-editor-ByQtNG5C.js +0 -1
  216. package/dist/client/assets/category-editor-Bt4KqcPd.js +0 -1
  217. package/dist/client/assets/project-app-view-B1uNSx2S.js +0 -1
  218. package/dist/client/assets/record-editor-CekGsC2w.js +0 -1
  219. package/dist/client/assets/redirect-editor-D-WGVCRr.js +0 -1
  220. package/dist/client/assets/registry-CLRL8V6Z.js +0 -2
  221. package/dist/client/assets/sections-editor-BgC7lKma.js +0 -2
  222. package/dist/client/assets/store-registry-Bstmg07N.js +0 -2
  223. package/dist/client/assets/useInfiniteQuery-Cfh7y-Ho.js +0 -1
  224. package/dist/client/assets/useSuspenseInfiniteQuery-LCg94TuM.js +0 -1
@@ -1292,7 +1292,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var yu1=O(()=>{zx()});f
1292
1292
  `.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await pf`
1293
1293
  DELETE FROM kysely_migration WHERE name = ${X}
1294
1294
  `.execute($)}}async function om1($){await Mh6($),await kh6($);let Z=new pm1({db:$,provider:{getMigrations:()=>Promise.resolve(wl0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function Vh6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await mg0();let G=X??H6(),J=async()=>{if(!Z&&!X)await Jw(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await om1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function Sh6(){let $=H6(),Z=new pm1({db:$.db,provider:{getMigrations:()=>Promise.resolve(wl0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var am1=O(()=>{nm1();ig0();m7()});async function x50($){let Z={...process.env},X=V00($,Z);console.log(DU1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Bl1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (n$0(),i$0)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (ig0(),Ll1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (m7(),_c1)),{migrateToLatest:N}=await Promise.resolve().then(() => (am1(),rm1)),U=H(G.databaseUrl);await N({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return gu1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Bl0=O(()=>{zx();Ol1();y8()});var $i1={};w0($i1,{updateService:()=>gD,subscribeCliState:()=>Dl0,setTuiConsoleIntercepted:()=>f50,setServerUrl:()=>Em,setMigrationsDone:()=>Dm,setDevMode:()=>vh6,resetCliStateForTests:()=>Ch6,isTuiConsoleIntercepted:()=>b50,getCliState:()=>Ll0,addLogEntry:()=>Uw});function sm1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Ch6(){kQ=sm1()}function _h6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function Lm(){for(let $ of Ol0)$()}function Ll0(){return kQ}function Dl0($){return Ol0.add($),()=>Ol0.delete($)}function gD($){kQ={...kQ,services:kQ.services.map((Z)=>Z.name===$.name?$:Z)},Lm()}function Dm(){kQ={...kQ,migrationsStatus:"done"},Lm()}function Em($){kQ={...kQ,serverUrl:$},Lm()}function Uw($){let Z=[...kQ.logs,$];kQ={...kQ,logs:Z.length>500?Z.slice(-500):Z},Lm()}function vh6(){kQ={...kQ,services:[..._h6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Lm()}function f50($){em1=$}function b50(){return em1}var kQ,Ol0,em1=!1;var hD=O(()=>{kQ=sm1();Ol0=new Set});import{createServer as Zi1}from"net";function xh6($){return new Promise((Z)=>{let X=Zi1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function zm($){if(await xh6($))return $;let Z=await new Promise((X,Q)=>{let Y=Zi1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var El0=()=>{};function jm($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var zl0={};w0(zl0,{startDevServer:()=>bh6});import{join as fh6}from"path";function Xi1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
1295
- `);Q=G.pop()??"";for(let J of G){let K=jm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Uw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=jm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Uw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bh6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await zm(Number(Y)+1):await zm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await x50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)gD({name:L.name,status:"ready",port:L.port});Dm();let N=fh6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Xi1(F.stdout),Xi1(F.stderr);Em(G),gD({name:"Vite",status:"ready",port:Number(Y)}),gD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (n$0(),i$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var jl0=O(()=>{Bl0();hD();El0()});var y50;var Pl0=O(()=>{y50={name:"decocms",version:"4.189.4",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as gh6,Text as Qi1}from"ink";import{jsx as hh6,jsxs as Yi1}from"react/jsx-runtime";function Gi1({version:$}){return Yi1(gh6,{flexDirection:"column",marginTop:1,children:[w50.map((Z,X)=>hh6(Qi1,{color:B50[X],children:Z},X)),Yi1(Qi1,{dimColor:!0,children:[" v",$]})]})}var Ji1=O(()=>{Gm()});import{Box as uD,Text as Fw}from"ink";import{Spinner as uh6}from"@inkjs/ui";import{jsx as fY,jsxs as tf}from"react/jsx-runtime";function Ki1({status:$}){if($==="pending")return fY(uh6,{label:""});return fY(Fw,{color:"green",children:"\u2713"})}function ch6($){return`${$.name}: ${$.port||"...."}`}function Wi1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return tf(uD,{flexDirection:"column",paddingBottom:1,children:[fY(Gi1,{version:y50.version}),fY(uD,{marginBottom:1,children:fY(Fw,{dimColor:!0,children:"\u2500".repeat(80)})}),fY(uD,{children:tf(Fw,{dimColor:!0,children:["Home: ",X]})}),tf(uD,{gap:2,children:[$.map((Y)=>tf(uD,{gap:1,children:[fY(Fw,{children:ch6(Y)}),fY(Ki1,{status:Y.status})]},Y.name)),tf(uD,{gap:1,children:[fY(Fw,{children:"Migrations"}),fY(Ki1,{status:Z})]})]}),fY(uD,{children:Q?tf(Fw,{children:["Open in browser: ",fY(Fw,{color:"cyan",children:Q})]}):fY(Fw,{dimColor:!0,children:"Starting..."})})]})}var Hi1=O(()=>{Pl0();Ji1()});import{Box as lh6,Text as Pm}from"ink";import{jsx as Al0,jsxs as Tl0}from"react/jsx-runtime";function dh6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ni1({logs:$}){return Al0(lh6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Al0(Pm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Tl0(Pm,{children:[Tl0(Pm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Al0(Pm,{color:dh6(Z.status),children:Z.status}),Tl0(Pm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Ui1=()=>{};var Rl0={};w0(Rl0,{App:()=>nh6});import{Box as mh6}from"ink";import{useSyncExternalStore as ih6}from"react";import{jsx as Fi1,jsxs as ph6}from"react/jsx-runtime";function nh6({home:$}){let Z=ih6(Dl0,Ll0);return ph6(mh6,{flexDirection:"column",children:[Fi1(Wi1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Fi1(Ni1,{logs:Z.logs})]})}var Il0=O(()=>{Hi1();Ui1();hD()});var JJ="thread-gate",qN="decopilot-hosted-harness",lG="automations",ww="background-tools";var wi1="7";function Bi1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:wi1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Oi1=()=>{};function th6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function ql0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Li1(){let $=th6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:ql0($,"--cpu-prof-dir")??process.cwd(),name:ql0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(ql0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Di1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=xD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),g50=setInterval(()=>void Z().catch(()=>{}),$),g50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(g50)clearInterval(g50)}}var g50;var Ei1=()=>{};import*as oh6 from"bun:jsc";function zi1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{rh6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=ah6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var rh6,ah6;var ji1=O(()=>{({startSamplingProfiler:rh6,samplingProfilerStackTraces:ah6}=oh6)});function Pi1(){Li1();let $=[Di1(),Rc1(),zi1()];return()=>{for(let Z of $)Z()}}var Ai1=O(()=>{xg0();Ei1();ji1()});var cD=_((Ti1)=>{Object.defineProperty(Ti1,"__esModule",{value:!0});Ti1.RepublishHeaders=Ti1.DirectMsgHeaders=Ti1.JsHeaders=Ti1.AdvisoryKind=void 0;Ti1.isOrderedPushConsumerOptions=sh6;Ti1.isPullConsumer=eh6;Ti1.isPushConsumer=$u6;Ti1.isBoundPushConsumerOptions=Zu6;function sh6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function eh6($){return $.isPullConsumer()}function $u6($){return $.isPushConsumer()}function Zu6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ti1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ti1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ti1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ti1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var bY=_((Ii1)=>{Object.defineProperty(Ii1,"__esModule",{value:!0});Ii1.TD=Ii1.TE=Ii1.Empty=void 0;Ii1.encode=Nu6;Ii1.decode=Uu6;Ii1.Empty=new Uint8Array(0);Ii1.TE=new TextEncoder;Ii1.TD=new TextDecoder;function Hu6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Nu6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Ii1.TE.encode($[X]));if(Z.length===0)return Ii1.Empty;if(Z.length===1)return Z[0];return Hu6(...Z)}function Uu6($){if(!$||$.length===0)return"";return Ii1.TD.decode($)}});var yY=_((ki1)=>{Object.defineProperty(ki1,"__esModule",{value:!0});ki1.errors=ki1.PermissionViolationError=ki1.NoRespondersError=ki1.TimeoutError=ki1.RequestError=ki1.ProtocolError=ki1.ConnectionError=ki1.DrainingConnectionError=ki1.ClosedConnectionError=ki1.AuthorizationError=ki1.UserAuthenticationExpiredError=ki1.InvalidOperationError=ki1.InvalidArgumentError=ki1.InvalidSubjectError=void 0;class kl0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ki1.InvalidSubjectError=kl0;class h50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new h50(`${$} ${Z}`,X)}}ki1.InvalidArgumentError=h50;class Vl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ki1.InvalidOperationError=Vl0;class u50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new u50($);return null}}ki1.UserAuthenticationExpiredError=u50;class c50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new c50($);return null}}ki1.AuthorizationError=c50;class Sl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ki1.ClosedConnectionError=Sl0;class Cl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ki1.DrainingConnectionError=Cl0;class _l0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ki1.ConnectionError=_l0;class vl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ki1.ProtocolError=vl0;class xl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof l50}}ki1.RequestError=xl0;class fl0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ki1.TimeoutError=fl0;class l50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ki1.NoRespondersError=l50;class d50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new d50($,X,Q,Y)}}ki1.PermissionViolationError=d50;ki1.errors={AuthorizationError:c50,ClosedConnectionError:Sl0,ConnectionError:_l0,DrainingConnectionError:Cl0,InvalidArgumentError:h50,InvalidOperationError:Vl0,InvalidSubjectError:kl0,NoRespondersError:l50,PermissionViolationError:d50,ProtocolError:vl0,RequestError:xl0,TimeoutError:fl0,UserAuthenticationExpiredError:u50}});var KJ=_((vi1)=>{Object.defineProperty(vi1,"__esModule",{value:!0});vi1.SimpleMutex=vi1.Perf=void 0;vi1.extend=ku6;vi1.render=Vu6;vi1.timeout=Su6;vi1.delay=Cu6;vi1.deadline=_u6;vi1.deferred=yl0;vi1.debugDeferred=vu6;vi1.shuffle=xu6;vi1.collect=fu6;vi1.jitter=_i1;vi1.backoff=bu6;vi1.nanos=yu6;vi1.millis=gu6;vi1.randomToken=cu6;var Mu6=bY(),bl0=yY();function ku6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Vu6($){return Mu6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Su6($,Z=!0){let X=Z?new bl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new bl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Cu6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function _u6($,Z=1000){let X=yl0(),Q=setTimeout(()=>{X.reject(new bl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function yl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vu6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function xu6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function fu6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Si1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}vi1.Perf=Si1;class Ci1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=yl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}vi1.SimpleMutex=Ci1;function _i1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bu6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return _i1(X>Z?$[Z]:$[X])}}}function yu6($){return $*1e6}function gu6($){return Math.floor($/1e6)}var hu6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",MN=new Uint8Array(62);for(let $=0;$<62;$++)MN[$]=hu6.charCodeAt($);var uu6=218340105584896;function cu6(){let $=Math.floor(Math.random()*uu6),Z=$%62,X=MN[Z];$=($-Z)/62,Z=$%62;let Q=MN[Z];$=($-Z)/62,Z=$%62;let Y=MN[Z];$=($-Z)/62,Z=$%62;let G=MN[Z];$=($-Z)/62,Z=$%62;let J=MN[Z];$=($-Z)/62,Z=$%62;let K=MN[Z];$=($-Z)/62,Z=$%62;let W=MN[Z];$=($-Z)/62;let H=MN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var ci1=_((hi1)=>{Object.defineProperty(hi1,"__esModule",{value:!0});hi1.nuid=hi1.NuidImpl=void 0;var Qc6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Bw=62,i50=12,yi1=10,fi1=33,Yc6=333,bi1=i50+yi1,hl0=new Uint8Array(Bw);for(let $=0;$<Bw;$++)hl0[$]=Qc6.charCodeAt($);var m50=4294967296,gi1=BigInt(Bw)**BigInt(yi1),Am=Number(gi1/(1n<<32n)),gl0=Number(gi1%(1n<<32n));function Gc6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jc6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Gc6($)}class ul0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(bi1),this.cbuf=new Uint8Array(i50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Am+1)),this.seqLo=Math.floor(Math.random()*m50);while($++<8&&this.seqHi===Am&&this.seqLo>=gl0);if(this.seqHi===Am&&this.seqLo>=gl0)this.seqLo=0;this.inc=Math.random()*(Yc6-fi1)+fi1|0}setPre(){Jc6(this.cbuf);for(let $=0;$<i50;$++)this.buf[$]=hl0[this.cbuf[$]%Bw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=bi1-1;X>=i50;X--){let Q=Math.floor($/Bw),G=($-Q*Bw)*m50+Z,J=Math.floor(G/Bw),K=G-J*Bw;this.buf[X]=hl0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m50)this.seqLo-=m50,this.seqHi+=1;if(this.seqHi>Am||this.seqHi===Am&&this.seqLo>=gl0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}hi1.NuidImpl=ul0;hi1.nuid=new ul0});var ii1=_((di1)=>{Object.defineProperty(di1,"__esModule",{value:!0});di1.nuid=di1.Nuid=void 0;var li1=ci1();di1.Nuid=li1.NuidImpl;di1.nuid=li1.nuid});var p50=_((n50)=>{Object.defineProperty(n50,"__esModule",{value:!0});n50.nuid=n50.Nuid=void 0;var ni1=ii1();Object.defineProperty(n50,"Nuid",{enumerable:!0,get:function(){return ni1.Nuid}});Object.defineProperty(n50,"nuid",{enumerable:!0,get:function(){return ni1.nuid}})});var Ow=_((pi1)=>{Object.defineProperty(pi1,"__esModule",{value:!0});pi1.DEFAULT_HOST=pi1.DEFAULT_PORT=pi1.Match=void 0;pi1.syncIterator=Fc6;pi1.createInbox=wc6;var Nc6=p50(),Uc6=yY();pi1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Fc6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function wc6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Uc6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Nc6.nuid.next()}`}pi1.DEFAULT_PORT=4222;pi1.DEFAULT_HOST="127.0.0.1"});var Tm=_((ai1)=>{Object.defineProperty(ai1,"__esModule",{value:!0});ai1.DataBuffer=void 0;var oi1=bY();class ri1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return oi1.TE.encode($)}static toAscii($){return oi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}ai1.DataBuffer=ri1});var lD=_(($n1)=>{Object.defineProperty($n1,"__esModule",{value:!0});$n1.LF=$n1.CR=$n1.CRLF=$n1.CR_LF_LEN=$n1.CR_LF=void 0;$n1.setTransportFactory=Pc6;$n1.defaultPort=Ac6;$n1.getUrlParseFn=Tc6;$n1.newTransport=Rc6;$n1.getResolveFn=Ic6;$n1.protoLen=ei1;$n1.extractProtocolMessage=qc6;var Ec6=bY(),zc6=Ow(),jc6=Tm(),gY;function Pc6($){gY=$}function Ac6(){return gY!==void 0&&gY.defaultPort!==void 0?gY.defaultPort:zc6.DEFAULT_PORT}function Tc6(){return gY!==void 0&&gY.urlParseFn?gY.urlParseFn:void 0}function Rc6(){if(!gY||typeof gY.factory!=="function")throw Error("transport fn is not set");return gY.factory()}function Ic6(){return gY!==void 0&&gY.dnsResolveFn?gY.dnsResolveFn:void 0}$n1.CR_LF=`\r
1295
+ `);Q=G.pop()??"";for(let J of G){let K=jm(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Uw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=jm(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Uw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function bh6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await zm(Number(Y)+1):await zm(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await x50({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)gD({name:L.name,status:"ready",port:L.port});Dm();let N=fh6(import.meta.dir,"..","..","..","..",".."),U=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:N,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)Xi1(F.stdout),Xi1(F.stderr);Em(G),gD({name:"Vite",status:"ready",port:Number(Y)}),gD({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (n$0(),i$0));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var jl0=O(()=>{Bl0();hD();El0()});var y50;var Pl0=O(()=>{y50={name:"decocms",version:"4.190.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as gh6,Text as Qi1}from"ink";import{jsx as hh6,jsxs as Yi1}from"react/jsx-runtime";function Gi1({version:$}){return Yi1(gh6,{flexDirection:"column",marginTop:1,children:[w50.map((Z,X)=>hh6(Qi1,{color:B50[X],children:Z},X)),Yi1(Qi1,{dimColor:!0,children:[" v",$]})]})}var Ji1=O(()=>{Gm()});import{Box as uD,Text as Fw}from"ink";import{Spinner as uh6}from"@inkjs/ui";import{jsx as fY,jsxs as tf}from"react/jsx-runtime";function Ki1({status:$}){if($==="pending")return fY(uh6,{label:""});return fY(Fw,{color:"green",children:"\u2713"})}function ch6($){return`${$.name}: ${$.port||"...."}`}function Wi1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return tf(uD,{flexDirection:"column",paddingBottom:1,children:[fY(Gi1,{version:y50.version}),fY(uD,{marginBottom:1,children:fY(Fw,{dimColor:!0,children:"\u2500".repeat(80)})}),fY(uD,{children:tf(Fw,{dimColor:!0,children:["Home: ",X]})}),tf(uD,{gap:2,children:[$.map((Y)=>tf(uD,{gap:1,children:[fY(Fw,{children:ch6(Y)}),fY(Ki1,{status:Y.status})]},Y.name)),tf(uD,{gap:1,children:[fY(Fw,{children:"Migrations"}),fY(Ki1,{status:Z})]})]}),fY(uD,{children:Q?tf(Fw,{children:["Open in browser: ",fY(Fw,{color:"cyan",children:Q})]}):fY(Fw,{dimColor:!0,children:"Starting..."})})]})}var Hi1=O(()=>{Pl0();Ji1()});import{Box as lh6,Text as Pm}from"ink";import{jsx as Al0,jsxs as Tl0}from"react/jsx-runtime";function dh6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ni1({logs:$}){return Al0(lh6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Al0(Pm,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Tl0(Pm,{children:[Tl0(Pm,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Al0(Pm,{color:dh6(Z.status),children:Z.status}),Tl0(Pm,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Ui1=()=>{};var Rl0={};w0(Rl0,{App:()=>nh6});import{Box as mh6}from"ink";import{useSyncExternalStore as ih6}from"react";import{jsx as Fi1,jsxs as ph6}from"react/jsx-runtime";function nh6({home:$}){let Z=ih6(Dl0,Ll0);return ph6(mh6,{flexDirection:"column",children:[Fi1(Wi1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Fi1(Ni1,{logs:Z.logs})]})}var Il0=O(()=>{Hi1();Ui1();hD()});var JJ="thread-gate",qN="decopilot-hosted-harness",lG="automations",ww="background-tools";var wi1="7";function Bi1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:wi1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var Oi1=()=>{};function th6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function ql0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function Li1(){let $=th6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:ql0($,"--cpu-prof-dir")??process.cwd(),name:ql0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(ql0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Di1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=xD();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),g50=setInterval(()=>void Z().catch(()=>{}),$),g50.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(g50)clearInterval(g50)}}var g50;var Ei1=()=>{};import*as oh6 from"bun:jsc";function zi1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{rh6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=ah6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let N of K){let U=N.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??N.frames[0];if(!U)continue;let F=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${U.name??"?"} @ ${F}:${U.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((N,U)=>U[1]-N[1]).slice(0,8).map(([N,U])=>({frame:N,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var rh6,ah6;var ji1=O(()=>{({startSamplingProfiler:rh6,samplingProfilerStackTraces:ah6}=oh6)});function Pi1(){Li1();let $=[Di1(),Rc1(),zi1()];return()=>{for(let Z of $)Z()}}var Ai1=O(()=>{xg0();Ei1();ji1()});var cD=_((Ti1)=>{Object.defineProperty(Ti1,"__esModule",{value:!0});Ti1.RepublishHeaders=Ti1.DirectMsgHeaders=Ti1.JsHeaders=Ti1.AdvisoryKind=void 0;Ti1.isOrderedPushConsumerOptions=sh6;Ti1.isPullConsumer=eh6;Ti1.isPushConsumer=$u6;Ti1.isBoundPushConsumerOptions=Zu6;function sh6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function eh6($){return $.isPullConsumer()}function $u6($){return $.isPushConsumer()}function Zu6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Ti1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Ti1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Ti1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Ti1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var bY=_((Ii1)=>{Object.defineProperty(Ii1,"__esModule",{value:!0});Ii1.TD=Ii1.TE=Ii1.Empty=void 0;Ii1.encode=Nu6;Ii1.decode=Uu6;Ii1.Empty=new Uint8Array(0);Ii1.TE=new TextEncoder;Ii1.TD=new TextDecoder;function Hu6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Nu6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(Ii1.TE.encode($[X]));if(Z.length===0)return Ii1.Empty;if(Z.length===1)return Z[0];return Hu6(...Z)}function Uu6($){if(!$||$.length===0)return"";return Ii1.TD.decode($)}});var yY=_((ki1)=>{Object.defineProperty(ki1,"__esModule",{value:!0});ki1.errors=ki1.PermissionViolationError=ki1.NoRespondersError=ki1.TimeoutError=ki1.RequestError=ki1.ProtocolError=ki1.ConnectionError=ki1.DrainingConnectionError=ki1.ClosedConnectionError=ki1.AuthorizationError=ki1.UserAuthenticationExpiredError=ki1.InvalidOperationError=ki1.InvalidArgumentError=ki1.InvalidSubjectError=void 0;class kl0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}ki1.InvalidSubjectError=kl0;class h50 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new h50(`${$} ${Z}`,X)}}ki1.InvalidArgumentError=h50;class Vl0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}ki1.InvalidOperationError=Vl0;class u50 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new u50($);return null}}ki1.UserAuthenticationExpiredError=u50;class c50 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new c50($);return null}}ki1.AuthorizationError=c50;class Sl0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}ki1.ClosedConnectionError=Sl0;class Cl0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}ki1.DrainingConnectionError=Cl0;class _l0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}ki1.ConnectionError=_l0;class vl0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}ki1.ProtocolError=vl0;class xl0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof l50}}ki1.RequestError=xl0;class fl0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}ki1.TimeoutError=fl0;class l50 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}ki1.NoRespondersError=l50;class d50 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new d50($,X,Q,Y)}}ki1.PermissionViolationError=d50;ki1.errors={AuthorizationError:c50,ClosedConnectionError:Sl0,ConnectionError:_l0,DrainingConnectionError:Cl0,InvalidArgumentError:h50,InvalidOperationError:Vl0,InvalidSubjectError:kl0,NoRespondersError:l50,PermissionViolationError:d50,ProtocolError:vl0,RequestError:xl0,TimeoutError:fl0,UserAuthenticationExpiredError:u50}});var KJ=_((vi1)=>{Object.defineProperty(vi1,"__esModule",{value:!0});vi1.SimpleMutex=vi1.Perf=void 0;vi1.extend=ku6;vi1.render=Vu6;vi1.timeout=Su6;vi1.delay=Cu6;vi1.deadline=_u6;vi1.deferred=yl0;vi1.debugDeferred=vu6;vi1.shuffle=xu6;vi1.collect=fu6;vi1.jitter=_i1;vi1.backoff=bu6;vi1.nanos=yu6;vi1.millis=gu6;vi1.randomToken=cu6;var Mu6=bY(),bl0=yY();function ku6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function Vu6($){return Mu6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function Su6($,Z=!0){let X=Z?new bl0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new bl0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function Cu6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function _u6($,Z=1000){let X=yl0(),Q=setTimeout(()=>{X.reject(new bl0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function yl0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function vu6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function xu6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function fu6($){let Z=[];for await(let X of $)Z.push(X);return Z}class Si1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}vi1.Perf=Si1;class Ci1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=yl0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}vi1.SimpleMutex=Ci1;function _i1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function bu6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return _i1(X>Z?$[Z]:$[X])}}}function yu6($){return $*1e6}function gu6($){return Math.floor($/1e6)}var hu6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",MN=new Uint8Array(62);for(let $=0;$<62;$++)MN[$]=hu6.charCodeAt($);var uu6=218340105584896;function cu6(){let $=Math.floor(Math.random()*uu6),Z=$%62,X=MN[Z];$=($-Z)/62,Z=$%62;let Q=MN[Z];$=($-Z)/62,Z=$%62;let Y=MN[Z];$=($-Z)/62,Z=$%62;let G=MN[Z];$=($-Z)/62,Z=$%62;let J=MN[Z];$=($-Z)/62,Z=$%62;let K=MN[Z];$=($-Z)/62,Z=$%62;let W=MN[Z];$=($-Z)/62;let H=MN[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var ci1=_((hi1)=>{Object.defineProperty(hi1,"__esModule",{value:!0});hi1.nuid=hi1.NuidImpl=void 0;var Qc6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Bw=62,i50=12,yi1=10,fi1=33,Yc6=333,bi1=i50+yi1,hl0=new Uint8Array(Bw);for(let $=0;$<Bw;$++)hl0[$]=Qc6.charCodeAt($);var m50=4294967296,gi1=BigInt(Bw)**BigInt(yi1),Am=Number(gi1/(1n<<32n)),gl0=Number(gi1%(1n<<32n));function Gc6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Jc6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Gc6($)}class ul0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(bi1),this.cbuf=new Uint8Array(i50),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Am+1)),this.seqLo=Math.floor(Math.random()*m50);while($++<8&&this.seqHi===Am&&this.seqLo>=gl0);if(this.seqHi===Am&&this.seqLo>=gl0)this.seqLo=0;this.inc=Math.random()*(Yc6-fi1)+fi1|0}setPre(){Jc6(this.cbuf);for(let $=0;$<i50;$++)this.buf[$]=hl0[this.cbuf[$]%Bw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=bi1-1;X>=i50;X--){let Q=Math.floor($/Bw),G=($-Q*Bw)*m50+Z,J=Math.floor(G/Bw),K=G-J*Bw;this.buf[X]=hl0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=m50)this.seqLo-=m50,this.seqHi+=1;if(this.seqHi>Am||this.seqHi===Am&&this.seqLo>=gl0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}hi1.NuidImpl=ul0;hi1.nuid=new ul0});var ii1=_((di1)=>{Object.defineProperty(di1,"__esModule",{value:!0});di1.nuid=di1.Nuid=void 0;var li1=ci1();di1.Nuid=li1.NuidImpl;di1.nuid=li1.nuid});var p50=_((n50)=>{Object.defineProperty(n50,"__esModule",{value:!0});n50.nuid=n50.Nuid=void 0;var ni1=ii1();Object.defineProperty(n50,"Nuid",{enumerable:!0,get:function(){return ni1.Nuid}});Object.defineProperty(n50,"nuid",{enumerable:!0,get:function(){return ni1.nuid}})});var Ow=_((pi1)=>{Object.defineProperty(pi1,"__esModule",{value:!0});pi1.DEFAULT_HOST=pi1.DEFAULT_PORT=pi1.Match=void 0;pi1.syncIterator=Fc6;pi1.createInbox=wc6;var Nc6=p50(),Uc6=yY();pi1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function Fc6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function wc6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw Uc6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Nc6.nuid.next()}`}pi1.DEFAULT_PORT=4222;pi1.DEFAULT_HOST="127.0.0.1"});var Tm=_((ai1)=>{Object.defineProperty(ai1,"__esModule",{value:!0});ai1.DataBuffer=void 0;var oi1=bY();class ri1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return oi1.TE.encode($)}static toAscii($){return oi1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}ai1.DataBuffer=ri1});var lD=_(($n1)=>{Object.defineProperty($n1,"__esModule",{value:!0});$n1.LF=$n1.CR=$n1.CRLF=$n1.CR_LF_LEN=$n1.CR_LF=void 0;$n1.setTransportFactory=Pc6;$n1.defaultPort=Ac6;$n1.getUrlParseFn=Tc6;$n1.newTransport=Rc6;$n1.getResolveFn=Ic6;$n1.protoLen=ei1;$n1.extractProtocolMessage=qc6;var Ec6=bY(),zc6=Ow(),jc6=Tm(),gY;function Pc6($){gY=$}function Ac6(){return gY!==void 0&&gY.defaultPort!==void 0?gY.defaultPort:zc6.DEFAULT_PORT}function Tc6(){return gY!==void 0&&gY.urlParseFn?gY.urlParseFn:void 0}function Rc6(){if(!gY||typeof gY.factory!=="function")throw Error("transport fn is not set");return gY.factory()}function Ic6(){return gY!==void 0&&gY.dnsResolveFn?gY.dnsResolveFn:void 0}$n1.CR_LF=`\r
1296
1296
  `;$n1.CR_LF_LEN=$n1.CR_LF.length;$n1.CRLF=jc6.DataBuffer.fromAscii($n1.CR_LF);$n1.CR=new Uint8Array($n1.CRLF)[0];$n1.LF=new Uint8Array($n1.CRLF)[1];function ei1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===$n1.CR&&$[X]===$n1.LF)return X+1}return 0}function qc6($){let Z=ei1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return Ec6.TD.decode(Q)}return""}});var il0=_((Wn1)=>{Object.defineProperty(Wn1,"__esModule",{value:!0});Wn1.ipV4=Gn1;Wn1.isIP=yc6;Wn1.parseIP=Jn1;var Rm=4,dD=16,t50=48,Yn1=57,Xn1=65,fc6=70,Qn1=97,bc6=102,ml0=16777215;function Gn1($,Z,X,Q){let Y=new Uint8Array(dD);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function yc6($){return Jn1($)!==void 0}function Jn1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Kn1($);case":":return gc6($)}return}function Kn1($){let Z=new Uint8Array(Rm);for(let X=0;X<Rm;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=hc6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Gn1(Z[0],Z[1],Z[2],Z[3])}function gc6($){let Z=new Uint8Array(dD),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<dD){let{n:Y,c:G,ok:J}=uc6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=dD-Rm)return;if(Q+Rm>dD)return;let K=Kn1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Rm;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<dD){if(X<0)return;let Y=dD-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function hc6($){let Z=0,X=0;for(Z=0;Z<$.length&&t50<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Yn1;Z++)if(X=X*10+($.charCodeAt(Z)-t50),X>=ml0)return{n:ml0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function uc6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(t50<=$.charCodeAt(X)&&$.charCodeAt(X)<=Yn1)Z*=16,Z+=$.charCodeAt(X)-t50;else if(Qn1<=$.charCodeAt(X)&&$.charCodeAt(X)<=bc6)Z*=16,Z+=$.charCodeAt(X)-Qn1+10;else if(Xn1<=$.charCodeAt(X)&&$.charCodeAt(X)<=fc6)Z*=16,Z+=$.charCodeAt(X)-Xn1+10;else break;if(Z>=ml0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var al0=_((Nn1)=>{Object.defineProperty(Nn1,"__esModule",{value:!0});Nn1.Servers=Nn1.ServerImpl=void 0;Nn1.isIPV4OrHostname=Hn1;Nn1.hostPort=rl0;var nl0=lD(),pl0=KJ(),tl0=il0(),mc6=Ow(),ic6=yY();function Hn1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function ol0($){return!Hn1($)}function nc6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function rl0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=nc6($),ol0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=ol0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):mc6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class of{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=rl0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,tl0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${ol0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new of(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,pl0.shuffle)(Z);return this.resolves=Z,Z}}Nn1.ServerImpl=of;class o50{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw ic6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,nl0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=rl0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new of(Y))}if(this.randomize)(0,pl0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,tl0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,nl0.getUrlParseFn)();$=X?X($):$;let Q=new of($,Z);if((0,tl0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return o50.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return o50.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,nl0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new of(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,pl0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Nn1.Servers=o50});var r50=_((Bn1)=>{Object.defineProperty(Bn1,"__esModule",{value:!0});Bn1.QueuedIteratorImpl=void 0;var sl0=KJ(),Fn1=yY();class wn1{inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,sl0.deferred)(),this.yields=[],this.iterClosed=(0,sl0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new Fn1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Fn1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,sl0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}Bn1.QueuedIteratorImpl=wn1});var el0=_((En1)=>{Object.defineProperty(En1,"__esModule",{value:!0});En1.MuxSubscription=void 0;var rc6=Ow(),Ln1=yY();class Dn1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,rc6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new Ln1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Ln1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}En1.MuxSubscription=Dn1});var $d0=_((Pn1)=>{Object.defineProperty(Pn1,"__esModule",{value:!0});Pn1.Heartbeat=void 0;var ac6=KJ();class jn1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,ac6.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}Pn1.Heartbeat=jn1});var Qd0=_((qn1)=>{Object.defineProperty(qn1,"__esModule",{value:!0});qn1.DenoBuffer=qn1.MAX_SIZE=qn1.AssertionError=void 0;qn1.assert=Rn1;qn1.concat=In1;qn1.append=ec6;qn1.readAll=$l6;qn1.writeAll=Zl6;var sc6=bY();class Zd0 extends Error{constructor($){super($);this.name="AssertionError"}}qn1.AssertionError=Zd0;function Rn1($,Z="Assertion failed."){if(!$)throw new Zd0(Z)}var Tn1=32768;qn1.MAX_SIZE=4294967294;function a50($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function In1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function ec6($,Z){return In1($,Uint8Array.of(Z))}class Xd0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){Rn1($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=a50(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(sc6.TE.encode($))}write($){let Z=this._grow($.byteLength);return a50($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)a50(this._buf.subarray(this._off),this._buf);else if(Q+$>qn1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,qn1.MAX_SIZE));a50(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,qn1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(Tn1);while(!0){let Q=this.capacity-this.length<Tn1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}qn1.DenoBuffer=Xd0;function $l6($){let Z=new Xd0;return Z.readFrom($),Z.bytes()}function Zl6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var Jd0=_((Cn1)=>{Object.defineProperty(Cn1,"__esModule",{value:!0});Cn1.cc=Cn1.State=Cn1.Parser=Cn1.Kind=void 0;Cn1.describe=Wl6;var Yd0=Qd0(),Gd0=bY();Cn1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Wl6($){let Z,X="";switch($.kind){case Cn1.Kind.MSG:Z="MSG";break;case Cn1.Kind.OK:Z="OK";break;case Cn1.Kind.ERR:Z="ERR",X=Gd0.TD.decode($.data);break;case Cn1.Kind.PING:Z="PING";break;case Cn1.Kind.PONG:Z="PONG";break;case Cn1.Kind.INFO:Z="INFO",X=Gd0.TD.decode($.data)}return`${Z}: ${X}`}function kn1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var Vn1=48,Hl6=57,rf=67108864;class Sn1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=Cn1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case Cn1.State.OP_START:switch(X){case Cn1.cc.M:case Cn1.cc.m:this.state=Cn1.State.OP_M,this.hdr=-1,this.ma=kn1();break;case Cn1.cc.H:case Cn1.cc.h:this.state=Cn1.State.OP_H,this.hdr=0,this.ma=kn1();break;case Cn1.cc.P:case Cn1.cc.p:this.state=Cn1.State.OP_P;break;case Cn1.cc.PLUS:this.state=Cn1.State.OP_PLUS;break;case Cn1.cc.MINUS:this.state=Cn1.State.OP_MINUS;break;case Cn1.cc.I:case Cn1.cc.i:this.state=Cn1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_H:switch(X){case Cn1.cc.M:case Cn1.cc.m:this.state=Cn1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_M:switch(X){case Cn1.cc.S:case Cn1.cc.s:this.state=Cn1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MS:switch(X){case Cn1.cc.G:case Cn1.cc.g:this.state=Cn1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MSG:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:this.state=Cn1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MSG_SPC:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:continue;default:this.state=Cn1.State.MSG_ARG,this.as=Z}break;case Cn1.State.MSG_ARG:switch(X){case Cn1.cc.CR:this.drop=1;break;case Cn1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=Cn1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case Cn1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:Cn1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Cn1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:Cn1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=Cn1.State.MSG_END;break;case Cn1.State.MSG_END:switch(X){case Cn1.cc.NL:this.drop=0,this.as=Z+1,this.state=Cn1.State.OP_START;break;default:continue}break;case Cn1.State.OP_PLUS:switch(X){case Cn1.cc.O:case Cn1.cc.o:this.state=Cn1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PLUS_O:switch(X){case Cn1.cc.K:case Cn1.cc.k:this.state=Cn1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PLUS_OK:switch(X){case Cn1.cc.NL:this.dispatcher.push({kind:Cn1.Kind.OK}),this.drop=0,this.state=Cn1.State.OP_START;break}break;case Cn1.State.OP_MINUS:switch(X){case Cn1.cc.E:case Cn1.cc.e:this.state=Cn1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MINUS_E:switch(X){case Cn1.cc.R:case Cn1.cc.r:this.state=Cn1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MINUS_ER:switch(X){case Cn1.cc.R:case Cn1.cc.r:this.state=Cn1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MINUS_ERR:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:this.state=Cn1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_MINUS_ERR_SPC:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:continue;default:this.state=Cn1.State.MINUS_ERR_ARG,this.as=Z}break;case Cn1.State.MINUS_ERR_ARG:switch(X){case Cn1.cc.CR:this.drop=1;break;case Cn1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Cn1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=Cn1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case Cn1.State.OP_P:switch(X){case Cn1.cc.I:case Cn1.cc.i:this.state=Cn1.State.OP_PI;break;case Cn1.cc.O:case Cn1.cc.o:this.state=Cn1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PO:switch(X){case Cn1.cc.N:case Cn1.cc.n:this.state=Cn1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PON:switch(X){case Cn1.cc.G:case Cn1.cc.g:this.state=Cn1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PONG:switch(X){case Cn1.cc.NL:this.dispatcher.push({kind:Cn1.Kind.PONG}),this.drop=0,this.state=Cn1.State.OP_START;break}break;case Cn1.State.OP_PI:switch(X){case Cn1.cc.N:case Cn1.cc.n:this.state=Cn1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PIN:switch(X){case Cn1.cc.G:case Cn1.cc.g:this.state=Cn1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_PING:switch(X){case Cn1.cc.NL:this.dispatcher.push({kind:Cn1.Kind.PING}),this.drop=0,this.state=Cn1.State.OP_START;break}break;case Cn1.State.OP_I:switch(X){case Cn1.cc.N:case Cn1.cc.n:this.state=Cn1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_IN:switch(X){case Cn1.cc.F:case Cn1.cc.f:this.state=Cn1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_INF:switch(X){case Cn1.cc.O:case Cn1.cc.o:this.state=Cn1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_INFO:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:this.state=Cn1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case Cn1.State.OP_INFO_SPC:switch(X){case Cn1.cc.SPACE:case Cn1.cc.TAB:continue;default:this.state=Cn1.State.INFO_ARG,this.as=Z}break;case Cn1.State.INFO_ARG:switch(X){case Cn1.cc.CR:this.drop=1;break;case Cn1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:Cn1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=Cn1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===Cn1.State.MSG_ARG||this.state===Cn1.State.MINUS_ERR_ARG||this.state===Cn1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Yd0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===Cn1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Yd0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Yd0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Cn1.cc.SPACE:case Cn1.cc.TAB:case Cn1.cc.CR:case Cn1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],rf);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],rf);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${Gd0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case Cn1.cc.SPACE:case Cn1.cc.TAB:case Cn1.cc.CR:case Cn1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],rf),this.ma.size=this.protoParseInt(Z[3],rf);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],rf),this.ma.size=this.protoParseInt(Z[4],rf);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<Vn1||$[Q]>Hl6)return-1;X=X*10+($[Q]-Vn1)}return Z!==void 0&&X>Z?-1:X}}Cn1.Parser=Sn1;Cn1.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};Cn1.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var $90=_((vn1)=>{Object.defineProperty(vn1,"__esModule",{value:!0});vn1.MsgHdrsImpl=void 0;vn1.canonicalMIMEHeaderKey=Wd0;vn1.headers=Fl6;var _n1=bY(),WJ=Ow(),e50=yY();function Wd0($){let N=!0,U=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw e50.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(N&&97<=w&&w<=122)w-=32;else if(!N&&65<=w&&w<=90)w+=32;U[F]=w,N=w==45}return String.fromCharCode(...U)}function Fl6($=0,Z=""){if($===0&&Z!=="")throw e50.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw e50.InvalidArgumentError.format("description","is required");return new af($,Z)}var Kd0="NATS/1.0";class af{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new af,Q=_n1.TD.decode($).split(`\r
1297
1297
  `),Y=Q[0];if(Y!==Kd0){let G=Y.replace(Kd0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Kd0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
1298
1298
  ${Z}: ${X[Q]}`;return`${$}\r
@@ -2726,7 +2726,7 @@ Do NOT require review (requiresReview = false) when the changes are low-risk, su
2726
2726
 
2727
2727
  When unsure between the two, lean toward NOT requiring review for small frontend-only diffs, and toward requiring it for anything backend or large.
2728
2728
 
2729
- Respond with the structured verdict and a short reason.`,FC$;var wC$=B(()=>{S4();sw();G81();N16=J81.object({requiresReview:J81.boolean().describe("true if the changes should go through pull-request review"),reason:J81.string().describe("One short sentence explaining the decision (max ~120 chars)")});FC$={requiresReview:!1,reason:""}});function w16($){if(!$||$.includes(".."))return!1;return U16.test($)}function OC$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!w16(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function BC$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var U16;var DC$=B(()=>{U16=/^[\w./@-]+$/});function W81($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function LC$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function EC$($,Z,X,Q){if(!Q.connectionId)throw new bg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new bg(c7);await qx({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let F=H instanceof Error?H.message:c7;throw new bg(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await bw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=nE0($),N=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!N.ok){let H=await aw(N,O16).catch(()=>N.statusText);throw Error(`Failed to refresh sandbox git credentials (${N.status}): ${H}`)}}var O16=10485760,bg;var zC$=B(()=>{Lw();s$1();en();Rn();bg=class bg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function D16($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!B16.test(Z))throw Error(`Invalid branch name: ${$}`)}function _C($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(E16)])}function vC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function K81($,Z){let Q=(pE0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return pE0.set($,Y),Y.finally(()=>{if(pE0.get($)===Y)pE0.delete($)}),Q}async function SZ($,Z,X){let Q=vC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,N=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,N.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),N.set("content-type","application/json");let H=X?.signal,F={method:W,headers:N,body:K,...H?{signal:H}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...fY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?j16(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...fY}})};try{if(H){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function j16($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function tE0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok)try{let W=JSON.parse(J);throw Error(W.error??`Daemon error (${G.status})`)}catch(W){if(W instanceof Error&&W.message!==J)throw W;throw Error(`Daemon error (${G.status})`)}return JSON.parse(J)}function P16($){return AC$.includes($)}var B16,jC$=524288,L16=65536,E16=1e4,PC$=2000,z16,pE0,fY,AC$,TC$=()=>{let $=new D1;return $.use("/:virtualMcpId/:branch/*",z16),$.post("/:virtualMcpId/:branch/write",(Z)=>SZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>SZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>SZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>SZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>SZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>SZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>SZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return SZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return SZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>SZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>SZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!P16(X))return Z.json({error:`step must be one of: ${AC$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=a(Z.var.studioContext),G=Qw0(Q.virtualMcpMetadata);try{await Yw0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return SZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return tH(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return GC$(Z,{ctx:Z.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Z)=>SZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(PC$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>SZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(PC$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>SZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return K81(Q,async()=>{try{await e$1(J,X,Q);let W=LC$(Y,G);if(W)await EC$(J,X,Q,W)}catch(W){if(W instanceof bg)return Z.json({error:W.message},403,fY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,fY)}return SZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return K81(X,()=>SZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return K81(Q,async()=>{try{await e$1(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,fY)}return SZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",F7({maxSize:jC$,onError:(Z)=>Z.json({error:"Payload too large"},413,fY)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,N=W.diff,H=N!=null&&typeof N.diffs==="object"&&N.diffs!==null,[F,U]=X81(K)&&H?[K,N]:await Promise.all([tE0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),tE0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await HC$(J,F,U);return Z.json(w,200,fY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,fY);return Z.json({error:K},502,fY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",F7({maxSize:jC$,onError:(Z)=>Z.json({error:"Payload too large"},413,fY)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,N=W.diff,H=N!=null&&typeof N.diffs==="object"&&N.diffs!==null,[F,U]=X81(K)&&H?[K,N]:await Promise.all([tE0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),tE0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await UC$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,fY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,fY);return Z.json({error:K},502,fY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=W81(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",F7({maxSize:L16,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=OC$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=BC$(Y,J.resolveType),K=W81(W),N;try{N=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await N.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:N.status,headers:{"content-type":N.headers.get("content-type")??"application/json"}})}),$};var RC$=B(()=>{u8();TC();vg();ZC$();NH();QC$();B3();tw();YC$();JC$();Rn0();sn();G81();wC$();DC$();zC$();B16=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;z16=$C$(async($,Z)=>{let X=$.var.studioContext;try{$0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=a(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{D16(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=zn({orgId:Y.id,virtualMcpId:G,branch:J}),N=await LH(X,J,Q),H=XC$({userId:N,projectRef:K}),F=W.metadata??null,U;try{U=(await yX(X,{userId:N,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:H,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:N,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});pE0=new Map;fY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};AC$=["clone","install","start"]});var IC$=($)=>{let Z=new D1;if(Z.use("*",AC),Z.route("/",NE0()),Z.route("/",gM$()),Z.route("/",cV$()),Z.route("/",gV$()),Z.route("/",dE0()),Z.route("/tools",tV$()),Z.route("/",iV$()),Z.route("/",jV$({kvStorage:$.kvStorage})),Z.route("/",EV$()),Z.route("/fs",CV$({getConnection:$.getNatsConnection})),Z.route("/sandbox",TC$()),Z.route("/",fV$()),Z.route("/deco-sites",FE0()),Z.route("/sso",XE0()),Z.route("/",mE0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",VM$()),$.mountDevAssets)Z.route("/dev-assets",UE0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",js1()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",vV$()),Z.route("/mcp",yO0()),Z.route("/mcp/self",lE0()),Z.route("/mcp",uO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var qC$=B(()=>{u8();z11();CM$();R11();wE0();tt();L11();zV$();PV$();_V$();ki();K11();cO0();i$1();bV$();xV$();hV$();lV$();nV$();p$1();oV$();t$1();gO0();RC$()});function T16($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}async function R16($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(A16)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var A16=1e4,I16=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},MC$=()=>{let $=new D1;return $.use("*",I16),$.get("/",async(Z)=>{let X=d0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await R16(Q,Y);return Z.json({apps:T16(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var kC$=B(()=>{u8();V$()});import{z as M1}from"zod";function VK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function f16($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function x16($,Z,X){try{return JSON.parse($)}catch{throw new CC$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function y16($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:x16(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function g16($){let Z=$.map((X)=>{let Q=X.function.parameters?BY(X.function.parameters):BY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function h16($){if(!$)return;return{openai:{response_format:$}}}function u16(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function SC$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function VC$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var q16=256,M16,k16,S16,V16,C16,_16,v16,b16,CC$,_C$,vC$;var bC$=B(()=>{S4();u8();vg();MH();M16=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),k16=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),S16=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(k16).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),V16=M1.object({type:M1.literal("text")}),C16=M1.object({type:M1.literal("json_object")}),_16=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),v16=M1.union([V16,C16,_16]),b16=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(S16),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(M16).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:v16.optional(),user:M1.string().optional()});CC$=class CC$ extends Error{constructor($){super($);this.name="MessageConversionError"}};_C$=new D1;_C$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(VK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(VK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(VK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=b16.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(VK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=f16(G.model);if(!J)return $.json(VK("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((z)=>nB(z.providerId));if(!E)return $.json(VK("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let N;try{N=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(VK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=N.aiSdk.languageModel(K),F=y16(G.messages),U=G.tools?g16(G.tools):void 0,w=h16(G.response_format),O=u16(),D=Math.floor(Date.now()/1000);if(G.stream)return tH($,async(L)=>{let E=SC$(H,F,U,G,w,$.req.raw.signal);try{let z=_w(E),j=!1,A=0,P="",q=async()=>{if(P.length===0)return;let S=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{content:S},finish_reason:null}]})})};for await(let S of z.fullStream){if(!j&&(S.type==="text-delta"||S.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),j=!0;if(S.type==="text-delta"){if(P+=S.text,P.length>=q16)await q()}else if(S.type==="tool-call"){await q();let M=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:S.toolCallId,type:"function",function:{name:S.toolName,arguments:JSON.stringify(S.input)}}]},finish_reason:null}]})})}else if(S.type==="finish")await q(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:VC$(S.finishReason)}],usage:S.totalUsage?{prompt_tokens:S.totalUsage.inputTokens??0,completion_tokens:S.totalUsage.outputTokens??0,total_tokens:S.totalUsage.totalTokens??0}:void 0})})}await q(),await L.writeSSE({data:"[DONE]"})}catch(z){let j=z;console.error("[openai-compat:stream] Error:",j.message),await L.writeSSE({data:JSON.stringify({error:{message:j.message,type:"server_error"}})})}});else{let L=SC$(H,F,U,G,w,$.req.raw.signal),E=await Vw(L),z={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)z.tool_calls=E.toolCalls.map((j)=>({id:j.toolCallId,type:"function",function:{name:j.toolName,arguments:JSON.stringify("input"in j?j.input:{})}})),z.content=null;return $.json({id:O,object:"chat.completion",created:D,model:G.model,choices:[{index:0,message:z,finish_reason:VC$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(VK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(VK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(VK(Y.message,"server_error"),500)}});vC$=_C$});var xC$;var fC$=B(()=>{xC$={name:"decocms",version:"4.189.4",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function d16(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??l16}}var yC$,l16="https://ph.studio.decocms.com",gC$;var hC$=B(()=>{u8();_C0();vV();OZ();V$();Q11();fC$();yC$=new D1;yC$.get("/",($)=>{let Z={version:xC$.version,theme:IM1(),...aB().logo&&{logo:aB().logo},...JK()&&{internalUrl:M21()},...d0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!d0().firecrawlApiKey,auth:iq$(),posthog:d16(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!JK()&&d0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});gC$=yC$});function fg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function N81($){return(fg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function cC$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(fg($))}&sz=${Z}`}function uC$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function lC$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?uC$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):uC$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as c0}from"zod";var bC,m16,i16,n16,p16,dC$;var mC$=B(()=>{bC=c0.enum(["good","bad","neutral"]),m16=c0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},c0.object({kind:c0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:c0.coerce.string().optional(),tone:bC.optional(),muted:c0.boolean().optional(),delta:c0.coerce.string().optional(),deltaDir:c0.enum(["up","down","neutral"]).optional(),points:c0.array(c0.coerce.number()).optional(),label:c0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),i16=c0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},c0.array(m16)),n16={key:c0.coerce.string(),title:c0.coerce.string(),eyebrow:c0.coerce.string().optional(),headline:c0.coerce.string(),annotation:c0.coerce.string().optional(),methodology:c0.coerce.string().optional(),sources:c0.array(c0.object({name:c0.coerce.string(),logoUrl:c0.coerce.string()})).optional()},p16=c0.discriminatedUnion("template",[c0.object({template:c0.literal("cover"),score:c0.object({value:c0.coerce.number(),max:c0.coerce.number().optional(),grade:c0.coerce.string().optional(),label:c0.coerce.string().optional()}).optional(),brandImage:c0.coerce.string().optional(),screenshot:c0.coerce.string().optional(),mobileScreenshot:c0.coerce.string().optional()}),c0.object({template:c0.literal("cta"),ctaUrl:c0.coerce.string().optional(),ctaLabel:c0.coerce.string().optional(),bullets:c0.array(c0.coerce.string()).optional()}),c0.object({template:c0.literal("series"),points:c0.array(c0.coerce.number()).min(2),xLabels:c0.array(c0.coerce.string()).min(1),unit:c0.coerce.string().optional(),callout:c0.object({index:c0.coerce.number(),value:c0.coerce.string(),tone:bC.optional()})}),c0.object({template:c0.literal("threshold"),value:c0.coerce.string().default(""),metricLabel:c0.coerce.string().optional(),ratio:c0.coerce.number(),thresholdRatio:c0.coerce.number().optional(),thresholdLabel:c0.coerce.string().default(""),tone:bC.optional()}),c0.object({template:c0.literal("stats"),stats:c0.array(c0.object({value:c0.coerce.string(),label:c0.coerce.string(),tone:bC.optional()})).min(1)}),c0.object({template:c0.literal("bars"),items:c0.array(c0.object({value:c0.coerce.string(),label:c0.coerce.string(),ratio:c0.coerce.number(),tone:bC.optional()})).min(1)}),c0.object({template:c0.literal("gauges"),gauges:c0.array(c0.object({label:c0.coerce.string(),value:c0.coerce.string(),status:c0.enum(["good","warn","bad"]).catch("warn"),caption:c0.coerce.string().optional(),ratio:c0.coerce.number().optional()})).min(1)}),c0.object({template:c0.literal("checklist"),checks:c0.array(c0.object({label:c0.coerce.string(),status:c0.enum(["pass","fail","warn"]).catch("fail"),value:c0.coerce.string().optional()})).min(1)}),c0.object({template:c0.literal("table"),columns:c0.array(c0.object({label:c0.coerce.string(),align:c0.enum(["left","right"]).optional()})).min(1),rows:c0.array(i16).min(1),highlightRow:c0.coerce.number().optional()}),c0.object({template:c0.literal("products"),products:c0.array(c0.object({name:c0.coerce.string(),price:c0.coerce.string().optional(),image:c0.coerce.string().optional(),url:c0.coerce.string().optional()})).min(1)}),c0.object({template:c0.literal("list"),entries:c0.array(c0.object({label:c0.coerce.string(),severity:c0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:c0.coerce.number().optional()}),c0.object({template:c0.literal("keywords"),volumeLabel:c0.coerce.string().optional(),keywords:c0.array(c0.object({term:c0.coerce.string(),volume:c0.coerce.string(),position:c0.coerce.number().catch(0)})).min(1)}),c0.object({template:c0.literal("competitor"),metricLabel:c0.coerce.string().optional(),competitors:c0.array(c0.object({name:c0.coerce.string(),value:c0.coerce.string(),tone:bC.optional(),isYou:c0.boolean().optional()})).min(1)}),c0.object({template:c0.literal("scorecard"),rivalLabel:c0.coerce.string().optional(),dimensions:c0.array(c0.object({label:c0.coerce.string(),you:c0.coerce.string(),rival:c0.coerce.string().optional(),rivalName:c0.coerce.string().optional(),tone:bC.optional()})).min(1)})]),dC$=c0.object({...n16,template:p16})});function oE0($){let Z=[],X=[...$.sections].sort((Q,Y)=>Q.position-Y.position).map((Q)=>{let Y=dC$.safeParse(Q.props);if(Y.success)return Y.data;let G=Y.error.issues[0];return Z.push({section_type:Q.section_type,position:Q.position,reason:G?`${G.path.join(".")||"(root)"}: ${G.message}`:"contract violation"}),null}).filter((Q)=>Q!==null);return{deck:{meta:{...$.meta,scores:$.summary?.scores},slides:X},drops:Z}}var H81=B(()=>{mC$()});import{join as iC$}from"path";async function o16($){try{let Z=await fetch(`${UW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(t16)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=oE0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||N81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function xY($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function r16($,Z){let X=fg($),Q=Z?.brand?.trim()||N81(X),Y=cC$(X,128),J=`${(d0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=lC$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),N=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${xY(W)}</title>`,`<meta name="description" content="${xY(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${xY(W)}" />`,`<meta property="og:description" content="${xY(K)}" />`,`<meta property="og:url" content="${xY(J)}" />`,`<meta property="og:image" content="${xY(N)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${xY(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${xY(W)}" />`,`<meta name="twitter:description" content="${xY(K)}" />`,`<meta name="twitter:image" content="${xY(N)}" />`,`<meta name="twitter:image:alt" content="${xY(H)}" />`,`<link rel="canonical" href="${xY(J)}" />`,`<link rel="icon" href="${xY(Y)}" sizes="any" />`].join(`
2729
+ Respond with the structured verdict and a short reason.`,FC$;var wC$=B(()=>{S4();sw();G81();N16=J81.object({requiresReview:J81.boolean().describe("true if the changes should go through pull-request review"),reason:J81.string().describe("One short sentence explaining the decision (max ~120 chars)")});FC$={requiresReview:!1,reason:""}});function w16($){if(!$||$.includes(".."))return!1;return U16.test($)}function OC$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!w16(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function BC$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var U16;var DC$=B(()=>{U16=/^[\w./@-]+$/});function W81($){let Z;try{Z=new URL($)}catch{return null}if(!Z.hostname.endsWith(".localhost"))return null;let X=Z.host;return Z.hostname="127.0.0.1",{url:Z.toString(),hostHeader:X}}function LC$($,Z){let X=$?.githubRepo;if(!X?.owner||!X?.name)return null;if(!X.connectionId)return X;if(!Z.includes(X.connectionId))return null;return X}async function EC$($,Z,X,Q){if(!Q.connectionId)throw new bg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let Y=$.organization?.id;if(!Y)throw new bg(c7);await qx({ctx:$,connectionId:Q.connectionId,organizationId:Y,forceRefresh:!0,onLegacyMintError:(H)=>{let F=H instanceof Error?H.message:c7;throw new bg(F)}});let{cloneUrl:G,gitUserName:J,gitUserEmail:W}=await bw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=nE0($),N=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:G},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!N.ok){let H=await aw(N,O16).catch(()=>N.statusText);throw Error(`Failed to refresh sandbox git credentials (${N.status}): ${H}`)}}var O16=10485760,bg;var zC$=B(()=>{Lw();s$1();en();Rn();bg=class bg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function D16($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!B16.test(Z))throw Error(`Invalid branch name: ${$}`)}function _C($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(E16)])}function vC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function K81($,Z){let Q=(pE0.get($)??Promise.resolve()).catch(()=>{}).then(Z),Y=Q.catch(()=>{});return pE0.set($,Y),Y.finally(()=>{if(pE0.get($)===Y)pE0.delete($)}),Q}async function SZ($,Z,X){let Q=vC($);if(Q instanceof Response)return Q;let{claimName:Y,userId:G,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,N=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,N.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),N.set("content-type","application/json");let H=X?.signal,F={method:W,headers:N,body:K,...H?{signal:H}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(Y,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:G,projectRef:J},Y))w=await Q.proxyDaemonRequest(Y,Z,F);if(w.status===404){try{await w.body?.cancel()}catch{}return new Response(JSON.stringify({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."}),{status:410,headers:{"content-type":"application/json",...fY}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?j16(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...fY}})};try{if(H){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(H.aborted)return L(H.reason);H.addEventListener("abort",()=>L(H.reason),{once:!0})})])}return await U()}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:`Daemon unreachable: ${O}`},502)}}function j16($){try{let Z=JSON.parse($);if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&"repoDir"in Z)return JSON.stringify({...Z,repoDir:null})}catch{}return $}async function tE0($,Z,X,Q="GET",Y){let G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(G.status===404&&Y){try{await G.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(Y,Z))G=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(G.status===404){try{await G.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await G.text();if(!G.ok)try{let W=JSON.parse(J);throw Error(W.error??`Daemon error (${G.status})`)}catch(W){if(W instanceof Error&&W.message!==J)throw W;throw Error(`Daemon error (${G.status})`)}return JSON.parse(J)}function P16($){return AC$.includes($)}var B16,jC$=524288,L16=65536,E16=1e4,PC$=2000,z16,pE0,fY,AC$,TC$=()=>{let $=new D1;return $.use("/:virtualMcpId/:branch/*",z16),$.post("/:virtualMcpId/:branch/write",(Z)=>SZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>SZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>SZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>SZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>SZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>SZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>SZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:_C(Z)})),$.post("/:virtualMcpId/:branch/exec/:script",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return SZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}`)}),$.post("/:virtualMcpId/:branch/exec/:script/kill",async(Z)=>{let X=Z.req.param("script");if(!X)return Z.json({error:"missing script name"},400);return SZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>SZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>SZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!P16(X))return Z.json({error:`step must be one of: ${AC$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let Y=a(Z.var.studioContext),G=Qw0(Q.virtualMcpMetadata);try{await Yw0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:Y.id,userId:Q.callerUserId,entries:G})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return SZ(Z,`/_sandbox/setup/${X}`,{signal:Z.req.raw.signal,map404to410:!0})}),$.get("/:virtualMcpId/:branch/events",(Z)=>{let X=Z.get("vmClaim");if(!X.runner)return tH(Z,async(Q)=>{await Q.writeSSE({event:"phase",data:JSON.stringify({kind:"failed",reason:"unknown",message:"No sandbox runner configured on this studio instance."})})});return GC$(Z,{ctx:Z.var.studioContext,claimName:X.claimName,runner:X.runner,virtualMcpId:X.virtualMcpId,branch:X.branch,userId:X.userId,projectRef:X.projectRef,virtualMcpMetadata:X.virtualMcpMetadata})}),$.get("/:virtualMcpId/:branch/git/status",(Z)=>SZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(PC$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>SZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(PC$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>SZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:Y,connectionIds:G}=Z.get("vmClaim"),J=Z.var.studioContext;return K81(Q,async()=>{try{await e$1(J,X,Q);let W=LC$(Y,G);if(W)await EC$(J,X,Q,W)}catch(W){if(W instanceof bg)return Z.json({error:W.message},403,fY);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,fY)}return SZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return K81(X,()=>SZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.var.studioContext;return K81(Q,async()=>{try{await e$1(Y,X,Q)}catch(G){let J=G instanceof Error?G.message:String(G);return Z.json({error:J},502,fY)}return SZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",F7({maxSize:jC$,onError:(Z)=>Z.json({error:"Payload too large"},413,fY)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,N=W.diff,H=N!=null&&typeof N.diffs==="object"&&N.diffs!==null,[F,U]=X81(K)&&H?[K,N]:await Promise.all([tE0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),tE0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await HC$(J,F,U);return Z.json(w,200,fY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,fY);return Z.json({error:K},502,fY)}}),$.post("/:virtualMcpId/:branch/git/judge-review",F7({maxSize:jC$,onError:(Z)=>Z.json({error:"Payload too large"},413,fY)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:Y,projectRef:G}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,N=W.diff,H=N!=null&&typeof N.diffs==="object"&&N.diffs!==null,[F,U]=X81(K)&&H?[K,N]:await Promise.all([tE0(X,Q,"/_sandbox/git/status","GET",{userId:Y,projectRef:G}),tE0(X,Q,"/_sandbox/git/diff","GET",{userId:Y,projectRef:G})]),w=await UC$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,fY)}catch(W){let K=W instanceof Error?W.message:String(W);if(K==="SANDBOX_GONE")return Z.json({error:"Sandbox handle is gone. The sandbox needs to be re-provisioned."},410,fY);return Z.json({error:K},502,fY)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y=Z.req.query("path");if(!Y||!Y.startsWith("/")||Y.startsWith("//")||Y.includes("..")||Y.includes("\\"))return Z.json({error:"Path not allowed"},403);let G;try{G=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!G)return Z.json({error:"Preview not available"},502);let J=G.replace(/\/+$/,""),W=W81(`${J}${Y}`),K;try{K=await fetch(W?.url??`${J}${Y}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let N;try{N=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",F7({maxSize:L16,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=vC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),Y;try{Y=await X.getPreviewUrl(Q)}catch{return Z.json({error:"Preview not available"},502)}if(!Y)return Z.json({error:"Preview not available"},502);let G;try{G=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!G||typeof G!=="object"||Array.isArray(G))return Z.json({error:"Invalid JSON body"},400);let J=OC$(G);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=BC$(Y,J.resolveType),K=W81(W),N;try{N=await fetch(K?.url??W,{method:"POST",headers:{"content-type":"application/json",...K?{host:K.hostHeader}:{}},body:JSON.stringify(J.payload),signal:AbortSignal.timeout(30000)})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await N.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:N.status,headers:{"content-type":N.headers.get("content-type")??"application/json"}})}),$};var RC$=B(()=>{u8();TC();vg();ZC$();NH();QC$();B3();tw();YC$();JC$();Rn0();sn();G81();wC$();DC$();zC$();B16=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;z16=$C$(async($,Z)=>{let X=$.var.studioContext;try{$0(X)}catch{return $.json({error:"Unauthorized"},401)}let Q=W1(X);if(!Q)return $.json({error:"Unauthorized"},401);let Y;try{Y=a(X)}catch{return $.json({error:"Organization scope required"},403)}let G=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!G||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{D16(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(G);if(!W||W.organization_id!==Y.id)return $.json({error:"Virtual MCP not found"},404);let K=zn({orgId:Y.id,virtualMcpId:G,branch:J}),N=await LH(X,J,Q),H=XC$({userId:N,projectRef:K}),F=W.metadata??null,U;try{U=(await yX(X,{userId:N,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:H,callerUserId:Q,runner:U,virtualMcpId:G,branch:J,userId:N,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});pE0=new Map;fY={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};AC$=["clone","install","start"]});var IC$=($)=>{let Z=new D1;if(Z.use("*",AC),Z.route("/",NE0()),Z.route("/",gM$()),Z.route("/",cV$()),Z.route("/",gV$()),Z.route("/",dE0()),Z.route("/tools",tV$()),Z.route("/",iV$()),Z.route("/",jV$({kvStorage:$.kvStorage})),Z.route("/",EV$()),Z.route("/fs",CV$({getConnection:$.getNatsConnection})),Z.route("/sandbox",TC$()),Z.route("/",fV$()),Z.route("/deco-sites",FE0()),Z.route("/sso",XE0()),Z.route("/",mE0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",VM$()),$.mountDevAssets)Z.route("/dev-assets",UE0({orgFromPath:!0}));return Z.use("/mcp/:connectionId?",$.mcpAuth),Z.use("/mcp/:connectionId/ui-resource",$.mcpAuth),Z.use("/mcp/gateway/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/virtual-mcp/:virtualMcpId?",$.mcpAuth),Z.use("/mcp/self",$.mcpAuth),Z.use("/mcp/task-run/:threadId",$.mcpAuth),Z.route("/",js1()),Z.get("/mcp/:gateway?/:connectionId/.well-known/oauth-protected-resource/*",$.betterAuthProtectedResourceHandler),Z.get("/mcp/.well-known/oauth-protected-resource",$.betterAuthProtectedResourceHandler),Z.route("/mcp/task-run",vV$()),Z.route("/mcp",yO0()),Z.route("/mcp/self",lE0()),Z.route("/mcp",uO0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var qC$=B(()=>{u8();z11();CM$();R11();wE0();tt();L11();zV$();PV$();_V$();ki();K11();cO0();i$1();bV$();xV$();hV$();lV$();nV$();p$1();oV$();t$1();gO0();RC$()});function T16($){return $.filter((Z)=>Z.vendors?.alias).map((Z)=>({name:Z.name,title:Z.title,description:Z.description,logo:Z.logo,category:Z.category,vendor:{alias:Z.vendors.alias,url:Z.vendors.url}}))}async function R16($,Z){let X=await fetch(`${$}/rest/v1/apps?select=name,title,description,logo,category,vendors(alias,url)`,{headers:{apikey:Z,Authorization:`Bearer ${Z}`,Accept:"application/json"},signal:AbortSignal.timeout(A16)});if(!X.ok){let Q=await X.text().catch(()=>X.statusText);throw console.error(`[deco-apps] Supabase error (${X.status}): ${Q.slice(0,200)}`),Error(`External service error (${X.status})`)}return await X.json()}var A16=1e4,I16=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},MC$=()=>{let $=new D1;return $.use("*",I16),$.get("/",async(Z)=>{let X=d0(),Q=X.decoSupabaseUrl,Y=X.decoSupabaseServiceKey;if(!Q||!Y)return Z.json({apps:[]});try{let G=await R16(Q,Y);return Z.json({apps:T16(G)})}catch(G){return console.error("[deco-apps] GET error:",G),Z.json({error:"Failed to fetch apps"},502)}}),$};var kC$=B(()=>{u8();V$()});import{z as M1}from"zod";function VK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function f16($){if(!$)return null;let Z=$.indexOf(":");if(Z===-1)return{credentialId:null,modelId:$};let X=$.substring(0,Z),Q=$.substring(Z+1);if(!X||!Q)return null;return{credentialId:X,modelId:Q}}function x16($,Z,X){try{return JSON.parse($)}catch{throw new CC$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function y16($){let Z={};for(let X of $)if(X.role==="assistant"&&X.tool_calls)for(let Q of X.tool_calls)Z[Q.id]=Q.function.name;return $.map((X)=>{switch(X.role){case"system":return{role:"system",content:X.content};case"user":if(typeof X.content==="string")return{role:"user",content:X.content};return{role:"user",content:X.content.map((Y)=>{if(Y.type==="text")return{type:"text",text:Y.text};return{type:"image",image:Y.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((Y)=>({type:"tool-call",toolCallId:Y.id,toolName:Y.function.name,input:x16(Y.function.arguments,Y.id,Y.function.name)}))};return{role:"assistant",content:X.content??""};case"tool":let Q=Z[X.tool_call_id]??"unknown";return{role:"tool",content:[{type:"tool-result",toolCallId:X.tool_call_id,toolName:Q,output:{type:"text",value:X.content}}]}}})}function g16($){let Z=$.map((X)=>{let Q=X.function.parameters?BY(X.function.parameters):BY({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function h16($){if(!$)return;return{openai:{response_format:$}}}function u16(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function SC$($,Z,X,Q,Y,G){let J={model:$,messages:Z,tools:X,temperature:Q.temperature,maxTokens:Q.max_tokens,topP:Q.top_p,frequencyPenalty:Q.frequency_penalty,presencePenalty:Q.presence_penalty,stopSequences:Q.stop?Array.isArray(Q.stop)?Q.stop:[Q.stop]:void 0,abortSignal:G};return Y?{...J,providerOptions:Y}:J}function VC$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var q16=256,M16,k16,S16,V16,C16,_16,v16,b16,CC$,_C$,vC$;var bC$=B(()=>{S4();u8();vg();MH();M16=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),k16=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),S16=M1.discriminatedUnion("role",[M1.object({role:M1.literal("system"),content:M1.string(),name:M1.string().optional()}),M1.object({role:M1.literal("user"),content:M1.union([M1.string(),M1.array(M1.union([M1.object({type:M1.literal("text"),text:M1.string()}),M1.object({type:M1.literal("image_url"),image_url:M1.object({url:M1.string(),detail:M1.string().optional()})})]))]),name:M1.string().optional()}),M1.object({role:M1.literal("assistant"),content:M1.string().nullable().optional(),name:M1.string().optional(),tool_calls:M1.array(k16).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),V16=M1.object({type:M1.literal("text")}),C16=M1.object({type:M1.literal("json_object")}),_16=M1.object({type:M1.literal("json_schema"),json_schema:M1.object({name:M1.string(),description:M1.string().optional(),schema:M1.record(M1.string(),M1.unknown()),strict:M1.boolean().optional()})}),v16=M1.union([V16,C16,_16]),b16=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(S16),stream:M1.boolean().optional().default(!1),temperature:M1.number().min(0).max(2).optional(),max_tokens:M1.number().positive().optional(),top_p:M1.number().min(0).max(1).optional(),frequency_penalty:M1.number().min(-2).max(2).optional(),presence_penalty:M1.number().min(-2).max(2).optional(),stop:M1.union([M1.string(),M1.array(M1.string())]).optional(),tools:M1.array(M16).optional(),tool_choice:M1.union([M1.literal("auto"),M1.literal("none"),M1.literal("required"),M1.object({type:M1.literal("function"),function:M1.object({name:M1.string()})})]).optional(),response_format:v16.optional(),user:M1.string().optional()});CC$=class CC$ extends Error{constructor($){super($);this.name="MessageConversionError"}};_C$=new D1;_C$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(VK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(VK("Organization context is required. Ensure your API key has organization metadata.","invalid_request_error","organization"),400);if((Z.organization.slug??Z.organization.id)!==X)return $.json(VK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),Y=b16.safeParse(Q);if(!Y.success){let L=Y.error.issues[0]??{message:"Invalid request",path:[]};return $.json(VK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let G=Y.data,J=f16(G.model);if(!J)return $.json(VK("Invalid model format. Expected 'model_id' or 'credential_id:model_id' (e.g., 'claude-sonnet-4-6' or 'key_abc123:claude-sonnet-4-6')","invalid_request_error","model"),400);let{credentialId:W}=J,{modelId:K}=J;if(!W){let E=(await Z.storage.aiProviderKeys.list({organizationId:Z.organization.id})).find((z)=>nB(z.providerId));if(!E)return $.json(VK("No AI provider credentials configured for this organization. Add a credential in settings or specify one explicitly via 'credential_id:model_id'.","invalid_request_error","model"),400);W=E.id}let N;try{N=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(VK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let H=N.aiSdk.languageModel(K),F=y16(G.messages),U=G.tools?g16(G.tools):void 0,w=h16(G.response_format),O=u16(),D=Math.floor(Date.now()/1000);if(G.stream)return tH($,async(L)=>{let E=SC$(H,F,U,G,w,$.req.raw.signal);try{let z=_w(E),j=!1,A=0,P="",q=async()=>{if(P.length===0)return;let S=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{content:S},finish_reason:null}]})})};for await(let S of z.fullStream){if(!j&&(S.type==="text-delta"||S.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),j=!0;if(S.type==="text-delta"){if(P+=S.text,P.length>=q16)await q()}else if(S.type==="tool-call"){await q();let M=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{tool_calls:[{index:M,id:S.toolCallId,type:"function",function:{name:S.toolName,arguments:JSON.stringify(S.input)}}]},finish_reason:null}]})})}else if(S.type==="finish")await q(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:G.model,choices:[{index:0,delta:{},finish_reason:VC$(S.finishReason)}],usage:S.totalUsage?{prompt_tokens:S.totalUsage.inputTokens??0,completion_tokens:S.totalUsage.outputTokens??0,total_tokens:S.totalUsage.totalTokens??0}:void 0})})}await q(),await L.writeSSE({data:"[DONE]"})}catch(z){let j=z;console.error("[openai-compat:stream] Error:",j.message),await L.writeSSE({data:JSON.stringify({error:{message:j.message,type:"server_error"}})})}});else{let L=SC$(H,F,U,G,w,$.req.raw.signal),E=await Vw(L),z={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)z.tool_calls=E.toolCalls.map((j)=>({id:j.toolCallId,type:"function",function:{name:j.toolName,arguments:JSON.stringify("input"in j?j.input:{})}})),z.content=null;return $.json({id:O,object:"chat.completion",created:D,model:G.model,choices:[{index:0,message:z,finish_reason:VC$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let Y=Q;if(Y.name==="AbortError")return $.json(VK("Request aborted","invalid_request_error"),400);if(Y.name==="MessageConversionError")return $.json(VK(Y.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",Y.message,Y.stack),$.json(VK(Y.message,"server_error"),500)}});vC$=_C$});var xC$;var fC$=B(()=>{xC$={name:"decocms",version:"4.190.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});function d16(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??l16}}var yC$,l16="https://ph.studio.decocms.com",gC$;var hC$=B(()=>{u8();_C0();vV();OZ();V$();Q11();fC$();yC$=new D1;yC$.get("/",($)=>{let Z={version:xC$.version,theme:IM1(),...aB().logo&&{logo:aB().logo},...JK()&&{internalUrl:M21()},...d0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!d0().firecrawlApiKey,auth:iq$(),posthog:d16(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!JK()&&d0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});gC$=yC$});function fg($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function N81($){return(fg($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function cC$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(fg($))}&sz=${Z}`}function uC$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),Y=Q.lastIndexOf(" ");return`${(Y>Z*0.6?Q.slice(0,Y):Q).trimEnd()}\u2026`}function lC$($){let{brand:Z,domain:X,score:Q,verdict:Y}=$,G=typeof Q==="number"?`${Z} commerce report \u2014 ${Math.round(Q)}/100 \xB7 decocms`:`${Z} commerce report \xB7 decocms`,J=`See the full ${Z} scorecard \u2014 SEO, performance, conversion & AEO signals scored by decocms.`,W=Y?.trim()?uC$(`${Y.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):uC$(`How does ${X} really perform? ${J}`,200);return{title:G,description:W}}import{z as c0}from"zod";var bC,m16,i16,n16,p16,dC$;var mC$=B(()=>{bC=c0.enum(["good","bad","neutral"]),m16=c0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},c0.object({kind:c0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:c0.coerce.string().optional(),tone:bC.optional(),muted:c0.boolean().optional(),delta:c0.coerce.string().optional(),deltaDir:c0.enum(["up","down","neutral"]).optional(),points:c0.array(c0.coerce.number()).optional(),label:c0.coerce.string().optional()}).transform(($)=>{if($.kind==="badge"&&$.label==null)$.label=$.value??"";if($.kind==="score"){let Z=Number($.value);if(Number.isNaN(Z))return{...$,kind:"text"}}return $})),i16=c0.preprocess(($)=>{let Z=$;if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Array.isArray(Z.cells))Z=Z.cells;if(Array.isArray(Z)&&Z.length===1&&Array.isArray(Z[0]))Z=Z[0];if(Array.isArray(Z))return Z;if(Z&&typeof Z==="object")return Object.values(Z);return Z},c0.array(m16)),n16={key:c0.coerce.string(),title:c0.coerce.string(),eyebrow:c0.coerce.string().optional(),headline:c0.coerce.string(),annotation:c0.coerce.string().optional(),methodology:c0.coerce.string().optional(),sources:c0.array(c0.object({name:c0.coerce.string(),logoUrl:c0.coerce.string()})).optional()},p16=c0.discriminatedUnion("template",[c0.object({template:c0.literal("cover"),score:c0.object({value:c0.coerce.number(),max:c0.coerce.number().optional(),grade:c0.coerce.string().optional(),label:c0.coerce.string().optional()}).optional(),brandImage:c0.coerce.string().optional(),screenshot:c0.coerce.string().optional(),mobileScreenshot:c0.coerce.string().optional()}),c0.object({template:c0.literal("cta"),ctaUrl:c0.coerce.string().optional(),ctaLabel:c0.coerce.string().optional(),bullets:c0.array(c0.coerce.string()).optional()}),c0.object({template:c0.literal("series"),points:c0.array(c0.coerce.number()).min(2),xLabels:c0.array(c0.coerce.string()).min(1),unit:c0.coerce.string().optional(),callout:c0.object({index:c0.coerce.number(),value:c0.coerce.string(),tone:bC.optional()})}),c0.object({template:c0.literal("threshold"),value:c0.coerce.string().default(""),metricLabel:c0.coerce.string().optional(),ratio:c0.coerce.number(),thresholdRatio:c0.coerce.number().optional(),thresholdLabel:c0.coerce.string().default(""),tone:bC.optional()}),c0.object({template:c0.literal("stats"),stats:c0.array(c0.object({value:c0.coerce.string(),label:c0.coerce.string(),tone:bC.optional()})).min(1)}),c0.object({template:c0.literal("bars"),items:c0.array(c0.object({value:c0.coerce.string(),label:c0.coerce.string(),ratio:c0.coerce.number(),tone:bC.optional()})).min(1)}),c0.object({template:c0.literal("gauges"),gauges:c0.array(c0.object({label:c0.coerce.string(),value:c0.coerce.string(),status:c0.enum(["good","warn","bad"]).catch("warn"),caption:c0.coerce.string().optional(),ratio:c0.coerce.number().optional()})).min(1)}),c0.object({template:c0.literal("checklist"),checks:c0.array(c0.object({label:c0.coerce.string(),status:c0.enum(["pass","fail","warn"]).catch("fail"),value:c0.coerce.string().optional()})).min(1)}),c0.object({template:c0.literal("table"),columns:c0.array(c0.object({label:c0.coerce.string(),align:c0.enum(["left","right"]).optional()})).min(1),rows:c0.array(i16).min(1),highlightRow:c0.coerce.number().optional()}),c0.object({template:c0.literal("products"),products:c0.array(c0.object({name:c0.coerce.string(),price:c0.coerce.string().optional(),image:c0.coerce.string().optional(),url:c0.coerce.string().optional()})).min(1)}),c0.object({template:c0.literal("list"),entries:c0.array(c0.object({label:c0.coerce.string(),severity:c0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:c0.coerce.number().optional()}),c0.object({template:c0.literal("keywords"),volumeLabel:c0.coerce.string().optional(),keywords:c0.array(c0.object({term:c0.coerce.string(),volume:c0.coerce.string(),position:c0.coerce.number().catch(0)})).min(1)}),c0.object({template:c0.literal("competitor"),metricLabel:c0.coerce.string().optional(),competitors:c0.array(c0.object({name:c0.coerce.string(),value:c0.coerce.string(),tone:bC.optional(),isYou:c0.boolean().optional()})).min(1)}),c0.object({template:c0.literal("scorecard"),rivalLabel:c0.coerce.string().optional(),dimensions:c0.array(c0.object({label:c0.coerce.string(),you:c0.coerce.string(),rival:c0.coerce.string().optional(),rivalName:c0.coerce.string().optional(),tone:bC.optional()})).min(1)})]),dC$=c0.object({...n16,template:p16})});function oE0($){let Z=[],X=[...$.sections].sort((Q,Y)=>Q.position-Y.position).map((Q)=>{let Y=dC$.safeParse(Q.props);if(Y.success)return Y.data;let G=Y.error.issues[0];return Z.push({section_type:Q.section_type,position:Q.position,reason:G?`${G.path.join(".")||"(root)"}: ${G.message}`:"contract violation"}),null}).filter((Q)=>Q!==null);return{deck:{meta:{...$.meta,scores:$.summary?.scores},slides:X},drops:Z}}var H81=B(()=>{mC$()});import{join as iC$}from"path";async function o16($){try{let Z=await fetch(`${UW({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(t16)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=oE0(X);if(!Q.slides.length)return null;let Y=Q.slides.find((W)=>W.template.template==="cover"),G=Y?.template,J=G&&G.template==="cover"?G:void 0;return{brand:Q.meta.brand?.trim()||N81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:Y?.annotation?.trim()||Y?.headline?.trim()||void 0}}catch{return null}}function xY($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function r16($,Z){let X=fg($),Q=Z?.brand?.trim()||N81(X),Y=cC$(X,128),J=`${(d0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=lC$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),N=`${J}/og.png`,H=`${Q} commerce report by decocms`;return[`<title>${xY(W)}</title>`,`<meta name="description" content="${xY(K)}" />`,'<meta name="robots" content="noindex, follow" />','<meta property="og:type" content="website" />','<meta property="og:site_name" content="decocms" />',`<meta property="og:title" content="${xY(W)}" />`,`<meta property="og:description" content="${xY(K)}" />`,`<meta property="og:url" content="${xY(J)}" />`,`<meta property="og:image" content="${xY(N)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${xY(H)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${xY(W)}" />`,`<meta name="twitter:description" content="${xY(K)}" />`,`<meta name="twitter:image" content="${xY(N)}" />`,`<meta name="twitter:image:alt" content="${xY(H)}" />`,`<link rel="canonical" href="${xY(J)}" />`,`<link rel="icon" href="${xY(Y)}" sizes="any" />`].join(`
2730
2730
  `)}function a16($,Z){return $.replace(/<title>[\s\S]*?<\/title>\s*/i,"").replace(/<meta\s+name="(?:description|twitter:[^"]*)"[^>]*>\s*/gi,"").replace(/<meta\s+property="og:[^"]*"[^>]*>\s*/gi,"").replace(/<link\s+rel="icon"[^>]*>\s*/gi,"").replace("</head>",` ${Z}
2731
2731
  </head>`)}function nC$($){let Z=new D1;return Z.get("/:domain/og.png",async(X)=>{let Q=fg(X.req.param("domain")),Y=async()=>{let G=$?Bun.file(iC$($,"report-og-fallback.png")):null;if(!G||!await G.exists())return X.notFound();return X.body(new Uint8Array(await G.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let G=await fetch(`${UW({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(s16)}),J=G.headers.get("content-type")??"";if(!G.ok||!J.startsWith("image/")||!G.body)return Y();return X.body(G.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return Y()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),Y=$?iC$($,"index.html"):null,G=Y?Bun.file(Y):null;if(!G||!await G.exists())return X.notFound();let J=await G.text();try{let W=await o16(fg(Q)),K=r16(Q,W);return X.html(a16(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var t16=2500,s16=1e4;var pC$=B(()=>{u8();H81();RD();V$()});function Po($,Z){return fetch(`${UW({})}${$}`,Z)}async function e16($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let Y=Q.toString()?`?${Q.toString()}`:"",G=await Po(`/api/v2/public/diagnostics/${encodeURIComponent($)}${Y}`,{headers:{Accept:"application/json"}});if(G.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!G.ok)throw Error(`report read HTTP ${G.status}`);let J=await G.json(),{deck:W,drops:K}=oE0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var $$6,_3,rE0=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},tC$;var oC$=B(()=>{u8();IG();RD();H81();$$6=new Set(["complete","errored","terminated","unknown"]),_3=new D1;_3.use("*",async($,Z)=>{let X=await E8.api.getSession({headers:$.req.raw.headers});$.set("reportUser",X?.user?.id?{email:X.user.email}:void 0),await Z(),$.header("Cache-Control","private, no-store"),$.header("Vary","Cookie");return});_3.use("/run",rE0);_3.use("/status",rE0);_3.use("/link-token/*",rE0);_3.use("/suggest",rE0);_3.get("/site/:domain",async($)=>{let Z=$.req.param("domain").trim();if(!Z)return $.json({error:"domain is required"},400);let X=$.get("reportUser"),Q=$.req.query("key")?.trim()||void 0,Y=$.req.query("lang")?.trim()||void 0;try{let G=await e16(Z,Q,Y);if($.header("Cache-Control","private, no-store"),X||!G.deck)return $.json(G);return $.json({...G,deck:{...G.deck,slides:G.deck.slides.slice(0,1)},truncated:G.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});_3.post("/run",async($)=>{let Z=$.get("reportUser"),X;try{X=await $.req.json()}catch{return $.json({error:"invalid JSON"},400)}let Q=typeof X.domain==="string"?X.domain.trim():"";if(!Q)return $.json({error:"domain is required"},400);let Y=Z.email,G=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await Po("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${TD({})}`},body:JSON.stringify({url:Q,email:Y,distinct_id:G})});if(!J.ok)return $.json({error:`run HTTP ${J.status}`},502);let W=await J.json(),K=W.blocked?{state:"blocked"}:W.status==="fresh"?{state:"fresh"}:W.mode==="sync"?{state:"sync"}:{state:"running",id:W.id??null};return $.json(K)}catch{return $.json({error:"run failed"},502)}});_3.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await Po(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${TD({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let Y=(await X.json()).status??"unknown",G={done:$$6.has(Y),status:Y};return $.json(G)}catch{return $.json({error:"status failed"},502)}});_3.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await Po(`/api/v2/public/link-tokens/${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(X.status===404)return $.json(null);if(!X.ok)return $.json({error:`link token HTTP ${X.status}`},502);return $.json(await X.json())}catch{return $.json({error:"link token resolve failed"},502)}});_3.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await Po(`/api/v2/public/suggest?q=${encodeURIComponent(Z)}`,{headers:{Accept:"application/json"}});if(!X.ok)return $.json({suggestions:[]});let Q=await X.json();return $.json({suggestions:Array.isArray(Q.suggestions)?Q.suggestions:[]})}catch{return $.json({suggestions:[]})}});tC$=_3});import{createHmac as Z$6,timingSafeEqual as X$6}from"crypto";function rC$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let Y,G=[];for(let N of Z.split(",")){let H=N.indexOf("=");if(H<=0)continue;let F=N.slice(0,H).trim(),U=N.slice(H+1).trim();if(F==="t")Y=U;else if(F==="v1")G.push(U)}if(!Y||G.length===0)return!1;let J=Number(Y);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>Q$6)return!1;let W=Z$6("sha256",X).update(`${Y}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return G.some((N)=>{let H=Buffer.from(N,"hex");return K.length===H.length&&X$6(K,H)})}function aC$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=tG(Z),Q=tG(tG(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:CK(X.id),type:X.type,created:typeof X.created==="number"?X.created:void 0,livemode:typeof X.livemode==="boolean"?X.livemode:void 0,data:{object:Q}}}function Y$6($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function CK($){return typeof $==="string"?$:void 0}function tG($){return typeof $==="object"&&$!==null?$:void 0}function aE0($){return typeof $==="number"?new Date($*1000):null}function w81($){return CK($)??CK(tG($)?.id)}function G$6($){return w81($.subscription)??CK(tG(tG($.parent)?.subscription_details)?.subscription)}function J$6($){let Z=aE0($.current_period_end);if(Z)return Z;let X=tG($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let Y of X){let G=tG(Y)?.current_period_end;if(typeof G==="number"&&G>Q)Q=G}return Q>0?new Date(Q*1000):null}function F81($,Z){let X=aE0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function U81($,Z){let X=aE0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function W$6($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=CK(tG(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(CK(tG(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(CK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=CK(X.id);if(!J)return console.error("stripe webhook: topup session without id",{eventId:Z.id,organizationId:Q}),{handled:!1,reason:"topup session without id"};let W=Number(tG(X.metadata)?.creditCents);if(!Number.isInteger(W)||W<=0)return console.error("stripe webhook: paid topup with bad metadata \u2014 credit NOT applied",{eventId:Z.id,organizationId:Q,creditCents:tG(X.metadata)?.creditCents}),{handled:!1,reason:"bad topup metadata"};return{handled:!0,organizationId:Q,topUp:{creditCents:W,referenceId:`stripe-topup:${J}`}}}if(X.mode!=="subscription")return{handled:!1,reason:"not a subscription checkout"};if(CK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let Y=await $.getBilling(Q);if(!Y)return{handled:!1,reason:"unknown org"};let G=w81(X.subscription);if(Y.stripeSubscriptionId&&G&&Y.stripeSubscriptionId!==G)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:G};if(F81(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:w81(X.customer),stripeSubscriptionId:G,status:"active",lastStripeEventAt:U81(Z,Y)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=CK(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};let G=Z.type==="customer.subscription.deleted";if(!G&&F81(Z,Y))return{handled:!1,reason:"stale event"};let J=G?"canceled":Y$6(X.status);return await $.updateStripeState(Y.organizationId,{status:J,currentPeriodEnd:J$6(X),...G&&{stripeSubscriptionId:null},lastStripeEventAt:U81(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}case"invoice.paid":{let Q=G$6(X);if(!Q)return{handled:!1,reason:"no sub id"};let Y=await $.getBillingByStripeSubscriptionId(Q);if(!Y)return{handled:!1,reason:"unknown subscription"};if(F81(Z,Y))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Y.organizationId,{status:"active",currentPeriodEnd:aE0(X.period_end),lastStripeEventAt:U81(Z,Y)}),{handled:!0,organizationId:Y.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}async function sC$($){let Z=new TW(c8().db),X=await W$6(Z,$);if(X.handled&&X.topUp)await ZF$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId});if(!X.handled&&X.orphanSubscriptionId)try{await W1$(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof J3&&(Q.status===400||Q.status===404)))throw Q}return X}var Q$6=300;var eC$=B(()=>{YG();$n();do0()});var K$6=1048576,O81;var $_$=B(()=>{u8();TC();V$();eC$();O81=new D1;O81.post("/webhook",F7({maxSize:K$6,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=d0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!rC$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let Y=aC$(X);if(!Y)return $.json({error:"invalid payload"},400);let G=await sC$(Y);return console.log("stripe webhook",{eventId:Y.id,type:Y.type,livemode:Y.livemode,...G}),$.json({received:!0})})});function Z_$($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var X_$,N$6,H$6,Q_$;var Y_$=B(()=>{u8();AJ();Zy();Ev();X_$=new D1,N$6=["range","if-none-match","if-modified-since"],H$6=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];X_$.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),X=Z.organization?.id;if(!Z.auth?.user?.id){if(Og($))return $.redirect(`/login?next=${encodeURIComponent($.req.path)}`,302);throw new Q$(401,{message:"Authentication required"})}if(!X)throw new Q$(401,{message:"Organization context required"});let Q=$.req.path.replace(/^.*\/files\//,"");if(!Q)throw new Q$(400,{message:"Missing file key"});let Y=await Up(Q,Z);if(!Y)throw new Q$(503,{message:"Object storage not configured"});if(Y.startsWith("data:")&&PJ()){let K=Y.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new Q$(500,{message:"Invalid data URL from storage"});let[,N,H]=K,F=Buffer.from(H,"base64"),U=new Headers({"Content-Type":N,"Cache-Control":"private, max-age=86400"});return Z_$(U,N),new Response(F,{status:200,headers:U})}let G=new Headers;for(let K of N$6){let N=$.req.header(K);if(N)G.set(K,N)}let J=await fetch(Y,{headers:G});if(J.status===403||J.status===404)throw new Q$(404,{message:"File not found"});if(!J.ok&&J.status!==304&&J.status!==416)throw console.error(`[files] upstream storage error ${J.status} for key:`,Q),new Q$(502,{message:"Upstream storage error"});let W=new Headers;for(let K of H$6){let N=J.headers.get(K);if(N)W.set(K,N)}return W.set("Cache-Control","private, max-age=86400"),Z_$(W,W.get("content-type")??""),new Response(J.body,{status:J.status,headers:W})});Q_$=X_$});var Ao=C((fC)=>{var F$6=fC&&fC.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),U$6=fC&&fC.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))F$6(Z,$,X)};Object.defineProperty(fC,"__esModule",{value:!0});U$6(tQ(),fC)});var W_$=C((G_$)=>{Object.defineProperty(G_$,"__esModule",{value:!0});G_$.version=void 0;G_$.version="3.4.0"});var H_$=C((_K)=>{var w$6=_K&&_K.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(_K,"__esModule",{value:!0});_K.NodeTransport=_K.VERSION=void 0;_K.nodeResolveHost=z$6;var h6=Ao(),O$6=j0("net"),B81=j0("tls"),B$6=j0("path"),K_$=j0("fs"),D$6=w$6(j0("dns")),L$6=W_$();_K.VERSION=L$6.version;var E$6="nats.js";class N_${socket;version;lang;yields=[];signal=(0,h6.deferred)();closedNotification=(0,h6.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=E$6,this.version=_K.VERSION}async connect($,Z){this.tlsName=$.tlsName,this.options=Z;let{tls:X}=this.options,{handshakeFirst:Q}=X||{};try{if(Q===!0)this.socket=await this.tlsFirst($);else this.socket=await this.dial($);if(this.done)this.socket?.destroy();let Y=await this.peekInfo();(0,h6.checkOptions)(Y,Z);let{tls_required:G,tls_available:J}=Y,W=J===!0&&Z.tls!==null;if(!Q&&(G||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(G&&this.socket.encrypted!==!0)throw h6.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(Y){let G=Y;if(!G)G=new h6.errors.ConnectionError("error connecting - node provided an undefined error");let{code:J}=G,W=J==="ECONNREFUSED"?new h6.errors.ConnectionError("connection refused",{cause:G}):G;throw this.socket?.destroy(),W}}dial($){let Z=(0,h6.deferred)(),X,Q=(0,O$6.createConnection)($.port,$.hostname,()=>{Z.resolve(Q),Q.removeAllListeners()});return Q.on("error",(Y)=>{X=Y}),Q.on("close",()=>{Q.removeAllListeners(),Z.reject(X)}),Q.setNoDelay(!0),Z}get isClosed(){return this.done}close($){return this._closed($,!1)}peekInfo(){let $=(0,h6.deferred)(),Z;return this.socket.on("data",(X)=>{this.yields.push(X);let Q=h6.DataBuffer.concat(...this.yields),Y=(0,h6.extractProtocolMessage)(Q);if(Y!=="")try{let G=h6.INFO.exec(Y);if(!G)throw Error("unexpected response from server");let J=JSON.parse(G[1]);$.resolve(J)}catch(G){$.reject(G)}finally{this.socket.removeAllListeners()}}),this.socket.on("error",(X)=>{Z=X}),this.socket.on("close",()=>{this.socket.removeAllListeners(),$.reject(Z)}),$}loadFile($){if(!$)return Promise.resolve();let Z=(0,h6.deferred)();try{if($=(0,B$6.resolve)($),!(0,K_$.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,K_$.readFile)($,(X,Q)=>{if(X)return Z.reject(X);Z.resolve(Q)})}catch(X){Z.reject(X)}return Z}async loadClientCerts(){let $={},{certFile:Z,cert:X,caFile:Q,ca:Y,keyFile:G,key:J}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(X)$.cert=X;if(G){let W=await this.loadFile(G);if(W)$.key=W}else if(J)$.key=J;if(Q){let W=await this.loadFile(Q);if(W)$.ca=[W]}else if(Y)$.ca=Y;return Promise.resolve($)}catch(W){return Promise.reject(W)}}async tlsFirst($){let Z,X={servername:this.tlsName,rejectUnauthorized:!0};if(this.socket)X.socket=this.socket;if(typeof this.options.tls==="object")try{let Y=await this.loadClientCerts()||{};X=(0,h6.extend)(X,this.options.tls,Y)}catch(Y){return Promise.reject(new h6.errors.ConnectionError(Y.message,{cause:Y}))}let Q=(0,h6.deferred)();try{let Y=(0,B81.connect)($.port,$.hostname,X,()=>{Y.removeAllListeners(),Q.resolve(Y)});Y.on("error",(G)=>{Z=G}),Y.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!Y.authorized)throw Y.authorizationError}),Y.on("close",()=>{Q.reject(Z),Y.removeAllListeners()}),Y.setNoDelay(!0)}catch(Y){Q.reject(new h6.errors.ConnectionError(Y.message,{cause:Y}))}return Q}async startTLS(){let $,Z={socket:this.socket,servername:this.tlsName,rejectUnauthorized:!0};if(typeof this.options.tls==="object")try{let Q=await this.loadClientCerts()||{};Z=(0,h6.extend)(Z,this.options.tls,Q)}catch(Q){return Promise.reject(new h6.errors.ConnectionError(Q.message,{cause:Q}))}let X=(0,h6.deferred)();try{let Q=(0,B81.connect)(Z,()=>{Q.removeAllListeners(),X.resolve(Q)});Q.on("error",(Y)=>{$=Y}),Q.on("secureConnect",()=>{if(Z.rejectUnauthorized===!1)return;if(!Q.authorized)throw Q.authorizationError}),Q.on("close",()=>{X.reject($),Q.removeAllListeners()})}catch(Q){X.reject(new h6.errors.ConnectionError(Q.message,{cause:Q}))}return X}setupHandlers(){let $;this.socket.on("data",(Z)=>{return this.yields.push(Z),this.signal.resolve()}),this.socket.on("error",(Z)=>{$=Z}),this.socket.on("end",()=>{if(this.socket?.destroyed)return;this.socket?.write(new Uint8Array(0),()=>{this.socket?.end()})}),this.socket.on("close",()=>{this._closed($,!1)})}[Symbol.asyncIterator](){return this.iterate()}async*iterate(){while(!0){if(this.yields.length===0)await this.signal;let $=this.yields;this.yields=[];for(let Z=0;Z<$.length;Z++){if(this.options.debug)console.info(`> ${(0,h6.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,h6.deferred)()}}discard(){if(this.done=!0,this.socket)try{this.socket.removeAllListeners(),this.socket.destroy()}catch{}}disconnect(){this._closed(void 0,!0).then().catch()}isEncrypted(){return this.socket instanceof B81.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,h6.render)($)}`);let Z=(0,h6.deferred)();try{this.socket.write($,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,h6.render)($)}: ${X}`);return Z.reject(X)}return Z.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,h6.render)($)}: ${X}`);Z.reject(X)}return Z}send($){this._send($).catch((X)=>{})}async _closed($,Z=!0){if(!this.connected)return;if(this.done){this.socket?.destroy();return}if(this.closeError=$,!$&&this.socket&&Z)try{await this._send(new TextEncoder().encode(""))}catch(X){if(this.options.debug)console.log("transport close terminated with an error",X)}try{if(this.socket)this.socket.removeAllListeners(),this.socket?.destroy(),this.socket=void 0}catch(X){console.log(X)}this.done=!0,this.closedNotification.resolve(this.closeError)}closed(){return this.closedNotification}}_K.NodeTransport=N_$;function z$6($){let Z=(0,h6.deferred)();return D$6.default.lookup($,{all:!0},(X,Q)=>{if(X){Z.reject(X);return}let Y=[];for(let G of Q)Y.push(G.address);if(Y.length===0)Y.push($);Z.resolve(Y)}),Z}});var B_$=C((O_$)=>{Object.defineProperty(O_$,"__esModule",{value:!0});O_$.connect=j$6;var F_$=H_$(),U_$=Ao(),w_$=Ao();function j$6($={}){if((0,w_$.hasWsProtocol)($))return Promise.reject(w_$.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,U_$.setTransportFactory)({factory:()=>{return new F_$.NodeTransport},dnsResolveFn:F_$.nodeResolveHost}),U_$.NatsConnectionImpl.connect($)}});var D_$=C((oH)=>{var A$6=oH&&oH.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var Y=Object.getOwnPropertyDescriptor(Z,X);if(!Y||("get"in Y?!Z.__esModule:Y.writable||Y.configurable))Y={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,Y)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),T$6=oH&&oH.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))A$6(Z,$,X)};Object.defineProperty(oH,"__esModule",{value:!0});oH.connect=void 0;var R$6=B_$();Object.defineProperty(oH,"connect",{enumerable:!0,get:function(){return R$6.connect}});T$6(Ao(),oH)});function j_$($){let Z=$?.connectFn??k$6,X=null,Q=null,Y=!1,G=!1,J=!1,W=[];function K(){return X!==null&&!X.isClosed()&&!X.isDraining()&&!J}function N(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let U of W)try{U()}catch{}}function H(U){(async()=>{for await(let w of U.status())if(w.type==="disconnect")console.log("[NatsProvider] Disconnected"),J=!0;else if(w.type==="reconnect")console.log("[NatsProvider] Reconnected, re-firing ready callbacks"),J=!1,Q=null,N()})().catch(()=>{})}async function F(U,w){let O=0;while(!G)try{X=await Z({servers:U,timeout:M$6,reconnect:!0,maxReconnectAttempts:-1,...w?{authenticator:w}:{}}),console.log(`[NatsProvider] Connected to ${X.getServer()} after ${O} attempt(s)`),Q=null,J=!1,H(X),N();return}catch{O++;let D=lQ(q$6,I$6,O-1,2,0.5);await a$(D)}}return{init(U,w){if(Y)return;Y=!0,G=!1;let O=w?.creds?L_$.credsAuthenticator(new TextEncoder().encode(w.creds)):void 0;F(U,O).catch(()=>{})},isConnected(){return K()},getConnection(){return K()?X:null},getJetStream(){if(!K())return null;if(!Q)Q=z_$.jetstream(X);return Q},onReady(U){if(W.push(U),K())try{U()}catch{}},async drain(){if(G=!0,Y=!1,Q=null,J=!1,X){let U=X;X=null,await U.drain().catch(()=>{})}}}}function k$6($){return E_$.connect($)}var L_$,E_$,z_$,I$6=100,q$6=3000,M$6=3000;var P_$=B(()=>{K5();L_$=k(Wh(),1),E_$=k(D_$(),1),z_$=k($B(),1)});function D81($,Z){return`${$}.${Z}`}class L81{cache;constructor($){this.cache=Hg({ttlMs:$?.ttlMs??S$6,maxSize:$?.maxSize??V$6})}async get($,Z){return this.cache.get(D81($,Z))??null}async set($,Z,X){this.cache.set(D81($,Z),X)}async invalidate($,Z){this.cache.delete(D81($,Z))}teardown(){this.cache.clear()}}var S$6=600000,V$6=5000;var A_$=()=>{};function sE0($,Z){return`${$}:${Z}`}function E81($){let Z=Hg({ttlMs:$?.ttlMs??C$6,maxSize:$?.maxSize??_$6}),X=$?.getConnection,Q=crypto.randomUUID(),Y=new TextEncoder,G=new TextDecoder,J=null;function W(K,N){let H=X?.();if(!H)return;try{H.publish(T_$,Y.encode(JSON.stringify({organizationId:K,keyId:N,originId:Q})))}catch(F){console.warn("[ProviderKeyCache] Publish failed (non-critical):",F)}}return{get(K,N){return Z.get(sE0(K,N))},set(K,N,H){Z.set(sE0(K,N),H)},invalidate(K,N){Z.delete(sE0(K,N)),W(K,N)},start(){if(J)return;let K=X?.();if(!K)return;J=K.subscribe(T_$),(async()=>{for await(let N of J)try{let H=JSON.parse(G.decode(N.data));if(H.originId===Q)continue;Z.delete(sE0(H.organizationId,H.keyId))}catch{}})().catch(console.error)},teardown(){J?.unsubscribe(),J=null,Z.clear()}}}var T_$="studio.ai-provider-keys.invalidate",C$6=30000,_$6=5000;var R_$=()=>{};class z81{options;subscriptions=[];onCancel=null;encoder=new TextEncoder;originId=crypto.randomUUID();seenMessageIds=new Set;constructor($){this.options=$}async start($){if($)this.onCancel=$;if(this.subscriptions.length>0)return;if(!this.onCancel)return;let Z=this.options.getConnection();if(!Z)return;let X=new TextDecoder;this.subscriptions=I_$.map((Q)=>Z.subscribe(Q));for(let Q of this.subscriptions)(async()=>{for await(let Y of Q)try{let G=JSON.parse(X.decode(Y.data));if(G.originId===this.originId)continue;if(G.messageId&&this.hasSeen(G.messageId))continue;this.onCancel?.(G.taskId)}catch{}})().catch(console.error)}broadcast($){if(/[.*>\s]/.test($)){console.warn("[NatsCancelBroadcast] Invalid threadId, skipping broadcast");return}this.onCancel?.($);try{let Z=this.options.getConnection();if(!Z)return;let X=this.encoder.encode(JSON.stringify({taskId:$,originId:this.originId,messageId:crypto.randomUUID()}));for(let Q of I_$)Z.publish(Q,X)}catch(Z){console.warn("[NatsCancelBroadcast] Publish failed (non-critical):",Z)}}publishControlFrame($,Z){}async stop(){for(let $ of this.subscriptions)$.unsubscribe();this.subscriptions=[],this.seenMessageIds.clear(),this.onCancel=null}hasSeen($){if(this.seenMessageIds.has($))return!0;if(this.seenMessageIds.add($),this.seenMessageIds.size>1000){let Z=this.seenMessageIds.values().next().value;if(Z)this.seenMessageIds.delete(Z)}return!1}}var I_$;var q_$=B(()=>{I_$=["studio.decopilot.cancel","mesh.decopilot.cancel"]});var M_$=($)=>{let Z;return()=>Z??=$()},j81,P81;var k_$=B(()=>{N5();j81=M_$(()=>W8.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),P81=M_$(()=>W8.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function h$6(){return{name:AH,subjects:[`${KO0}.>`],storage:v3.StorageType.File,max_age:f$6,max_bytes:y$6,max_msgs_per_subject:g$6,discard:v3.DiscardPolicy.Old,retention:v3.RetentionPolicy.Limits,duplicate_window:x$6,num_replicas:1}}class C_${chunks=0;encodeMs=0;maxMs=0;bytes=0;windowStart=performance.now();constructor(){setInterval(()=>this.flush(),1e4).unref?.()}record($,Z){if(this.chunks++,this.encodeMs+=$,$>this.maxMs)this.maxMs=$;this.bytes+=Z}flush(){let $=performance.now(),Z=$-this.windowStart;if(this.chunks>0&&Z>0)console.warn(JSON.stringify({msg:"stream-encode-trace",windowMs:Math.round(Z),chunks:this.chunks,encodeMs:Math.round(this.encodeMs),pctOfLoop:+(this.encodeMs/Z*100).toFixed(1),maxChunkMs:+this.maxMs.toFixed(2),mbEncoded:+(this.bytes/1048576).toFixed(2)}));this.chunks=0,this.encodeMs=0,this.maxMs=0,this.bytes=0,this.windowStart=$}}function S_$($){let Z=V_$.headers();for(let[X,Q]of Object.entries($))Z.set(X,Q);return Z}function d$6($,Z){let X=0;return{publish(Q,Y,G,J){Q.publish(Y,G,J?{headers:J}:void 0).catch((W)=>{if(X++,b$6().add(1,{"org.id":Z??"unknown"}),X===1||X%100===0)console.warn(`[Decopilot] JetStream publish failed for thread ${$} (${X} total):`,W)})},get errorCount(){return X}}}function m$6($){if(!($ instanceof Error))return!1;if($.name==="TimeoutError")return!0;return/timeout|no responders|503/i.test($.message)}class A81{options;js=null;jsm=null;constructor($){this.options=$}async init(){let $=this.options.getConnection();if(!$){console.log("[Decopilot] StreamBuffer.init skipped: NATS not connected yet");return}let Z=h$6(),X=await dQ(async()=>{let Q=this.options.getJetStreamManager?await this.options.getJetStreamManager():await v3.jetstreamManager($);try{await Q.streams.info(AH),await Q.streams.update(AH,Z)}catch(Y){if(Y instanceof Error&&Y.message.includes("stream not found"))await Q.streams.add(Z);else if(Y instanceof Error&&/can ?not change.*storage|storage type/i.test(Y.message))await Q.streams.delete(AH),await Q.streams.add(Z);else throw Y}return Q},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:m$6});this.js=this.options.getJetStream(),this.jsm=X,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,X,Q){let Y=this.js;if(!Y)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let G=d$6(Z,Q),J=!1,W=()=>{if(J)return;J=!0;let N=yK$(Z);Y.publish(N.subject,N.data).catch(()=>{})};X.addEventListener("abort",W,{once:!0});let K=(N)=>{let H=performance.now(),F=ap0(N,{runId:Z}),U=performance.now()-H;if(j81().record(U),P81().add(1,{"org.id":Q??"unknown"}),l$6?.record(U,F.reduce((w,O)=>w+O.data.length,0)),F.length===0){console.warn(`[Decopilot] dropping oversized stream chunk for thread ${Z}`);return}for(let w of F)G.publish(Y,w.subject,w.data,w.headers?S_$(w.headers):void 0)};return(async()=>{let N=$.getReader(),H=0,F=0,U;try{while(!0){let{done:w,value:O}=await N.read();if(w)break;if(K(O),F++,++H>=64)H=0,await new Promise((D)=>setImmediate(D))}}catch(w){U=w,console.warn(`[Decopilot] stream pump error for thread ${Z}:`,w?.message??w)}finally{if(N.releaseLock(),W(),c$6)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:F,publishErrors:G.errorCount}))}if(U!==void 0)throw U})()}async publishRawChunk($,Z,X){let Q=this.js;if(!Q)return!1;let Y=performance.now(),G=ap0(Z,{runId:$,dedup:X});if(j81().record(performance.now()-Y),P81().add(1),G.length===0)return console.warn(`[Decopilot] dropping oversized raw chunk for thread ${$} (> MAX_CHUNKED_BYTES)`),!0;for(let J of G)await Q.publish(J.subject,J.data,{...J.headers?{headers:S_$(J.headers)}:{},...J.msgId?{msgID:J.msgId}:{}});return!0}async publishDone($,Z,X){let Q=this.js;if(!Q)return!1;let Y=xK$({runId:$,fenceToken:Z,finalSeq:X});return await Q.publish(Y.subject,Y.data,{msgID:Y.msgId}),!0}async createTailStream($,Z,X){let Q=this.js;if(!Q)return console.warn(`[Decopilot] createTailStream: JetStream client unavailable for thread ${$}; no live tail`),null;let Y=X?.deliverPolicy==="new"?v3.DeliverPolicy.New:v3.DeliverPolicy.All,G=X?.closeOnDone??!1,J=JO($),W;try{W=await(await Q.consumers.get(AH,{filter_subjects:J,deliver_policy:Y})).consume()}catch(D){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",D?.message??D),null}let H=wO0({messages:async function*(){try{for await(let D of W)yield{subject:D.subject,data:D.data,headers:D.headers}}finally{W.stop()}}(),onCancel:()=>W.stop()}).pipeThrough(NO0()).pipeThrough(HO0()).getReader(),F=!1,U=()=>{if(F)return;F=!0;try{H.releaseLock()}catch{}},w=!1,O=()=>{if(w)return;w=!0,W.stop(),H.cancel().catch(()=>{}),U()};return Z?.addEventListener("abort",O,{once:!0}),new ReadableStream({async pull(D){for(;;){let{done:L,value:E}=await H.read();if(L){O(),D.close();return}let z=E;if(z.kind==="done"){if(G){O(),D.close();return}continue}D.enqueue(z.chunk);return}},cancel(){O()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(AH,{filter:JO($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var v3,V_$,v$6=($)=>{let Z;return()=>Z??=$()},b$6,f$6=86400000000000,x$6=120000000000,y$6=4294967296,g$6=500000,u$6,c$6,l$6;var __$=B(()=>{K5();sp0();OO0();FO0();N5();k_$();v3=k($B(),1),V_$=k(Wh(),1),b$6=v$6(()=>W8.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"}));u$6=process.env.STREAM_ENCODE_TRACE==="1",c$6=process.env.DECOPILOT_STREAM_TRACE==="1";l$6=u$6?new C_$:null});function eE0($,Z,X,Q){if(!Q)return!1;return $.emit(Z,e3(X,Q.status,{title:Q.title??void 0,virtualMcpId:Q.virtual_mcp_id??void 0,createdBy:Q.created_by??void 0,triggerId:Q.trigger_id??null,branch:Q.branch??null,harnessId:Q.harness_id??void 0,createdAt:Q.created_at,updatedAt:Q.updated_at})),!0}var v_$=B(()=>{B8()});class T81{storage;options;timer=null;constructor($,Z={}){this.storage=$;this.options=Z}start(){if(this.timer)return;let $=this.options.intervalMs??300000;this.timer=setInterval(()=>{this.runOnce()},$)}async runOnce(){let $=this.options.staleAfterMs??3600000;try{let Z=await this.storage.sweepAbandoned($);if(Z>0)console.log(`[async-research-sweeper] marked ${Z} stale jobs as abandoned`);return Z}catch(Z){return console.error("[async-research-sweeper] sweep failed",Z),0}}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}class R81{taskBoard;contextFactory;options;timer=null;running=!1;cursor=null;constructor($,Z,X={}){this.taskBoard=$;this.contextFactory=Z;this.options=X}start(){if(this.timer)return;let $=this.options.intervalMs??i$6;this.timer=setInterval(()=>{this.runOnce()},$),this.timer.unref()}async runOnce(){if(this.running)return 0;this.running=!0;let $=0;try{let Z=this.options.batchSize??n$6,X=await this.taskBoard.listItemsPendingReview(Z,this.cursor),Q=X.at(-1);this.cursor=X.length===Z&&Q?{updatedAt:Q.updatedAt,id:Q.id}:null;for(let{id:Y,organizationId:G}of X)try{if(await this.reconcileItem(Y,G))$++}catch(J){console.error(`[task-board-review-sweeper] ${Y} failed`,J)}}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reconcileItem($,Z){let X=await this.taskBoard.getById($,Z);if(!X)return!1;if(X.status!=="in_review"||X.assigneeId!==W6)return!1;for(let J of X.threads){let W=J.lastMessage?Xy(J.lastMessage):null;if(!W)continue;await this.taskBoard.linkPr({taskBoardItemId:$,organizationId:Z,url:W.url,prNumber:W.number,repoOwner:W.owner,repoName:W.repo,connectionId:null})}let Q=await this.taskBoard.listPrs($,Z);if(Q.length===0)return!1;let Y=await this.contextFactory(Z,X.assignedBy??X.createdBy);if(!Y)return!1;let G=await Promise.all(Q.map(async(J)=>({...J,...await _t0(Y,Z,J)})));if(G.every((J)=>J.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${G.length} PR(s)) \u2014 proceeding on unknown`);if(!Ct0(G))return!1;return await PO0(Y,X),!0}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var i$6=60000,n$6=50;var b_$=B(()=>{C7();gw0();Mt0();Rp()});import{readdir as p$6,rm as $z0}from"fs/promises";import{join as Zz0}from"path";async function Xz0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-t$6),Z.setUTCHours(0,0,0,0);let X=0;try{let Q=await xC($);for(let Y of Q)if(/^\d{4}$/.test(Y))X+=await f_$($,Y,Z);else if(!Y.startsWith(".")){let G=Zz0($,Y),J=await xC(G);for(let K of J){if(!/^\d{4}$/.test(K))continue;X+=await f_$(G,K,Z)}if((await xC(G)).length===0)await $z0(G,{recursive:!0,force:!0})}}catch(Q){console.warn("monitoring retention cleanup failed:",Q)}return X}async function f_$($,Z,X){let Q=0,Y=Zz0($,Z),G=await xC(Y);for(let W of G){if(!/^\d{2}$/.test(W))continue;let K=Zz0(Y,W),N=await xC(K);for(let F of N){if(!/^\d{2}$/.test(F))continue;let U=new Date(`${Z}-${W}-${F}T00:00:00Z`);if(isNaN(U.getTime()))continue;if(U<X){let w=Zz0(K,F);await $z0(w,{recursive:!0,force:!0}),Q++}}if((await xC(K)).length===0)await $z0(K,{recursive:!0,force:!0})}if((await xC(Y)).length===0)await $z0(Y,{recursive:!0,force:!0});return Q}async function xC($){try{return(await p$6($)).filter((X)=>!X.startsWith("."))}catch{return[]}}var t$6=30;var I81=()=>{};import{DBOS as q81,SchedulerMode as o$6}from"@dbos-inc/dbos-sdk";async function a$6(){let $=[sG(),yC(),xK()],Z=0;for(let X of $)try{Z+=await Xz0(X)}catch(Q){console.error("[monitoring-retention] cleanup failed:",Q)}return console.log(`[monitoring-retention] deleted ${Z} day-dir(s) across ${$.length} signal dir(s)`),{deleted:Z,dirs:$.length}}async function s$6($,Z){await q81.runStep(()=>a$6(),{name:"monitoringRetention"})}function y_$(){if(x_$)return;x_$=!0;let $=q81.registerWorkflow(s$6,{name:"monitoringRetentionWorkflow"});q81.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:r$6,mode:o$6.ExactlyOncePerIntervalWhenActive})}var r$6="23 4 * * *",x_$=!1;var g_$=B(()=>{mQ();I81()});function h_$($){return async(Z,X)=>{let Q=await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["member.role","organization.id as orgId","organization.slug as orgSlug","organization.name as orgName"]).where("member.userId","=",X).where("member.organizationId","=",Z).executeTakeFirst();if(!Q)return console.warn(`[automationContextFactory] User ${X} not found in org ${Z} \u2014 returning null`),null;let Y=await Dw.create();Y.auth.user={id:X,role:Q.role},Y.organization={id:Q.orgId,slug:Q.orgSlug,name:Q.orgName};let G=await Ac0($.db,Z,Q.role);return Y.boundAuth=Pc0({auth:Y.authInstance,headers:new Headers,role:Q.role,permissions:G,userId:X}),Y.access=new rD(X,void 0,Y.boundAuth,Q.role,"self"),w50(Y,{id:Q.orgId,slug:Q.orgSlug}),Y}}var u_$=B(()=>{aD();Ii()});function e$6(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function Z86(){for(let $ of $86)$()}function c_$($){let Z=[...M81.logs,$];M81={...M81,logs:Z.length>500?Z.slice(-500):Z},Z86()}function k81(){return X86}var M81,$86,X86=!1;var S81=B(()=>{M81=e$6(),$86=new Set});import{EventEmitter as Q86}from"events";var V81;var l_$=B(()=>{S81();V81=new Q86;V81.on("request",($)=>{c_$($)})});function d_$(){return async($,Z)=>{let X=Date.now(),Q=$.req.method,Y=$.req.path;if(Y==="/api/auth/get-session"||Y.includes("favicon")){await Z();return}let G="",J=!1;if(Y.startsWith("/mcp")&&Q==="POST"){J=!0;try{if($.req.header("Content-Type")?.includes("application/json")){let U=await $.req.raw.clone().json();if(U.method==="tools/call"&&U.params?.name){let w=xg(U.params.name),O=U.params.arguments||{},D=Object.keys(O).map((E)=>xg(E)),L=D.length>0?D.slice(0,3).join(",")+(D.length>3?"\u2026":""):"";G=`${o6.tool}${w}${o6.dim}(${L})${o6.reset}`}else if(U.method)G=`${o6.dim}${xg(U.method)}${o6.reset}`}}catch{}}let W=xg(Y);if(Y.startsWith("/mcp/conn_")){let H=Y.split("/")[2]??"";W=`/mcp/${o6.mcp}${xg(H.slice(0,12))}\u2026${o6.reset}`}else if(Y==="/mcp")W=`${o6.mcp}/mcp${o6.reset}`;else if(Y==="/mcp/registry")W=`${o6.mcp}/mcp/registry${o6.reset}`;let K=G86(Q),N=J?"\u25C0":"\u2190";if(!k81())console.log(`${o6.dim}${N}${o6.reset} ${K}${Q}${o6.reset} ${W}${G?` ${G}`:""}`);try{await Z()}finally{let H=Date.now()-X,F=$.res.status,U=Y86(F),w=H<1000?`${H}ms`:`${(H/1000).toFixed(1)}s`,O=J?"\u25B6":"\u2192";if(!k81())console.log(`${o6.dim}${O}${o6.reset} ${K}${Q}${o6.reset} ${W}${G?` ${G}`:""} ${U}${F}${o6.reset} ${o6.duration}${w}${o6.reset}`);V81.emit("request",{method:Q,path:xg(Y),status:F,duration:H,timestamp:new Date})}}}var o6,Y86=($)=>{if($>=500)return o6.serverError;if($>=400)return o6.clientError;if($>=300)return o6.redirect;return o6.ok},G86=($)=>{return o6[$]||o6.reset},xg=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var m_$=B(()=>{S81();l_$();o6={reset:"\x1B[0m",dim:"\x1B[2m",bold:"\x1B[1m",GET:"\x1B[36m",POST:"\x1B[33m",PUT:"\x1B[35m",DELETE:"\x1B[31m",ok:"\x1B[32m",redirect:"\x1B[36m",clientError:"\x1B[33m",serverError:"\x1B[31m",mcp:"\x1B[35m",tool:"\x1B[96m",duration:"\x1B[90m"}});import{createHmac as t_$}from"crypto";import{mkdir as J86,readdir as W86,rm as i_$,stat as o_$}from"fs/promises";import{join as _81,relative as K86}from"path";import{z as L$}from"zod";function a_$($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return _81(N86,Z)}function s_$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function C81($,Z){let X=a_$($),Q=s_$(Z);return _81(X,Q)}function H86($,Z,X,Q){let Y=d0().encryptionKey||"dev-secret",G=`${$}:${Z}:${X}:${Q}`;return t_$("sha256",Y).update(G).digest("hex")}function p_$($,Z,X,Q,Y){let G=Math.floor(Date.now()/1000)+Q,J=H86(Z,X,G,Y),W=new URL(`/api/dev-assets/${Z}/${s_$(X)}`,$);return W.searchParams.set("expires",G.toString()),W.searchParams.set("signature",J),W.searchParams.set("method",Y),W.toString()}function e_$($,Z,X){let Q=`${$}:${Z.getTime()}:${X}`;return`"${t_$("md5","etag").update(Q).digest("hex")}"`}async function $v$($,Z,X,Q,Y){try{let G=await W86($,{withFileTypes:!0});for(let J of G){let W=_81($,J.name),N=K86(Z,W).replace(/\\/g,"/");if(X&&!N.startsWith(X))continue;if(J.isDirectory())if(Q){let H=N+"/";if(!X||H.startsWith(X)){if(!(X?N.slice(X.length):N).includes("/"))Y.commonPrefixes.add(H)}}else await $v$(W,Z,X,Q,Y);else if(J.isFile()){if(Q&&X){let H=N.slice(X.length);if(H.includes(Q)){let F=H.indexOf(Q),U=X+H.slice(0,F+1);Y.commonPrefixes.add(U);continue}}try{let H=await o_$(W);Y.objects.push({key:N,size:H.size,lastModified:H.mtime.toISOString(),etag:e_$(W,H.mtime,H.size)})}catch{}}}}catch{}}function Zv$($,Z){let Q=a($).id;return[{name:"LIST_OBJECTS",description:"List objects in the local assets directory with pagination support",inputSchema:L$.object({prefix:L$.string().optional(),maxKeys:L$.number().optional().default(1000),continuationToken:L$.string().optional(),delimiter:L$.string().optional()}),outputSchema:L$.object({objects:L$.array(L$.object({key:L$.string(),size:L$.number(),lastModified:L$.string(),etag:L$.string()})),nextContinuationToken:L$.string().optional(),isTruncated:L$.boolean(),commonPrefixes:L$.array(L$.string()).optional()}),handler:async(Y)=>{let G=Y,J=G.prefix||"",W=G.maxKeys??1000,K=G.delimiter,N=G.continuationToken,H=a_$(Q);await J86(H,{recursive:!0});let F={objects:[],commonPrefixes:new Set};await $v$(H,H,J,K,F),F.objects.sort((L,E)=>L.key.localeCompare(E.key));let U=0;if(N){if(U=F.objects.findIndex((L)=>L.key>N),U===-1)U=F.objects.length}let w=F.objects.slice(U,U+W),O=U+W<F.objects.length,D=O?w[w.length-1]?.key:void 0;return{objects:w,isTruncated:O,nextContinuationToken:D,commonPrefixes:Array.from(F.commonPrefixes).sort()}}},{name:"GET_OBJECT_METADATA",description:"Get metadata for a file in the local assets directory",inputSchema:L$.object({key:L$.string()}),outputSchema:L$.object({contentType:L$.string().optional(),contentLength:L$.number(),lastModified:L$.string(),etag:L$.string(),metadata:L$.record(L$.string(),L$.string()).optional()}),handler:async(Y)=>{let G=Y,J=C81(Q,G.key),W=await o_$(J);return{contentType:q11(G.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:e_$(J,W.mtime,W.size)}}},{name:"GET_PRESIGNED_URL",description:"Generate a presigned URL for downloading a file from local storage",inputSchema:L$.object({key:L$.string(),expiresIn:L$.number().optional()}),outputSchema:L$.object({url:L$.string(),expiresIn:L$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??n_$;return{url:p_$(Z,Q,G.key,J,"GET"),expiresIn:J}}},{name:"PUT_PRESIGNED_URL",description:"Generate a presigned URL for uploading a file to local storage",inputSchema:L$.object({key:L$.string(),expiresIn:L$.number().optional(),contentType:L$.string().optional()}),outputSchema:L$.object({url:L$.string(),expiresIn:L$.number()}),handler:async(Y)=>{let G=Y,J=G.expiresIn??n_$;return{url:p_$(Z,Q,G.key,J,"PUT"),expiresIn:J}}},{name:"DELETE_OBJECT",description:"Delete a single file from local storage",inputSchema:L$.object({key:L$.string()}),outputSchema:L$.object({success:L$.boolean(),key:L$.string()}),handler:async(Y)=>{let G=Y,J=C81(Q,G.key);try{return await i_$(J),{success:!0,key:G.key}}catch{return{success:!1,key:G.key}}}},{name:"DELETE_OBJECTS",description:"Delete multiple files from local storage",inputSchema:L$.object({keys:L$.array(L$.string()).max(1000)}),outputSchema:L$.object({deleted:L$.array(L$.string()),errors:L$.array(L$.object({key:L$.string(),message:L$.string()}))}),handler:async(Y)=>{let G=Y,J=[],W=[];return await Promise.all(G.keys.map(async(K)=>{let N=C81(Q,K);try{await i_$(N),J.push(K)}catch(H){W.push({key:K,message:H instanceof Error?H.message:"Unknown error"})}})),{deleted:J,errors:W}}}]}async function v81($,Z,X){let Q=Zv$(Z,X),Y=new NW({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:$5});for(let J of Q){let W="shape"in J.inputSchema?J.inputSchema.shape:L$.object({}).shape,K=J.outputSchema&&"shape"in J.outputSchema?J.outputSchema.shape:L$.object({}).shape;Y.registerTool(J.name,{description:J.description??"",inputSchema:W,outputSchema:K,annotations:J.annotations,_meta:J._meta},async(N)=>{try{let H=await J.handler(N);return{content:[{type:"text",text:JSON.stringify(H)}],structuredContent:H}}catch(H){return{content:[{type:"text",text:`Error: ${H.message}`}],isError:!0}}})}let G=new hX({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await Y.connect(G),hG(Y,G,$,"mcp:dev-assets")}async function Xv$($,Z,X,Q){let G=Zv$(X,Q).find((J)=>J.name===$);if(!G)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let J=await G.handler(Z);return{content:[{type:"text",text:JSON.stringify(J)}]}}catch(J){return{content:[{type:"text",text:J instanceof Error?J.message:String(J)}],isError:!0}}}var N86="./data/assets",n_$=3600,r_$,Qv$;var Yv$=B(()=>{V$();By();u8();Jl();cV();RX();wE0();r_$=new D1;r_$.all("/",async($)=>{let Z=$.get("studioContext"),X=new URL($.req.url),Q=`${X.protocol}//${X.host}`;return v81($.req.raw,Z,Q)});Qv$=r_$});var Gv$={};N4(Gv$,{mountDevRoutes:()=>F86});function F86($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`;return v81(Q.req.raw,Y,J)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Q)=>{let Y=Q.get("studioContext"),G=new URL(Q.req.url),J=`${G.protocol}//${G.host}`,W=Q.req.param("toolName");if(!W)return Q.json({error:"Missing tool name"},400);let K=await Q.req.json(),N=await Xv$(W,K,Y,J);if(N.isError)return Q.json(N.content,500);return Q.json(N.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",Qv$);let X=new D1;X.use("*",V3({mountPath:"/api/dev-assets"})),X.route("/",UE0({orgFromPath:!1})),$.route("/api/dev-assets",X)}var Jv$=B(()=>{u8();E11();wE0();Yv$()});import{sql as U86}from"kysely";import{randomUUID as Wv$}from"crypto";import{z as w86}from"zod";async function B86($){let Z=new Date().toISOString(),X=Wv$(),Q=x4.SELF($.organizationId),Y="registry.publish_request.created",G={requestId:$.request.id,requestedId:$.request.requested_id,title:$.request.title,status:$.request.status,createdAt:$.request.created_at,requester:{name:$.request.requester_name,email:$.request.requester_email}};await $.db.insertInto("events").values({id:X,organization_id:$.organizationId,type:"registry.publish_request.created",source:Q,specversion:"1.0",subject:$.request.id,time:Z,datacontenttype:"application/json",dataschema:null,data:JSON.stringify(G),cron:null,status:"pending",attempts:0,last_error:null,next_retry_at:null,created_at:Z,updated_at:Z}).execute();let J=await $.db.selectFrom("event_subscriptions").select(["id"]).where("organization_id","=",$.organizationId).where("enabled","=",1).where("event_type","=","registry.publish_request.created").where((W)=>W.or([W("publisher","is",null),W("publisher","=",Q)])).execute();if(J.length>0)await $.db.insertInto("event_deliveries").values(J.map((W)=>({id:Wv$(),event_id:X,subscription_id:W.id,status:"pending",attempts:0,last_error:null,delivered_at:null,next_retry_at:null,created_at:Z}))).execute();try{await U86`SELECT
2732
2732
  pg_notify('studio_events', ${X}),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "4.189.4",
3
+ "version": "4.190.0",
4
4
  "description": "Deco CMS — Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{c as F,b as X,r as g,j as r,m as Q}from"./index-C-_KNKWV.js";import{ag as _}from"./agent-icon-NDc2FlAH.js";import{i as Y}from"./SearchMd-CQmoxbw8.js";import{e as Z,d as ee,b as te,a as re}from"./dialog-CttGXndh.js";import{I as se}from"./input-DUANEN5d.js";import{J as le,K as oe,L as ie,M as J,N as ne}from"./index-DiKHCAn6.js";const ce=12,z=new Set,q=new Set;function ae(){for(const i of q)i()}function fe(i){return z.has(i)?!0:z.size>=ce?!1:(z.add(i),!0)}function K(i){z.delete(i)&&ae()}function ue(i){return q.add(i),()=>{q.delete(i)}}function de(i,e){const t=g.useRef(!1),[v,a]=g.useState(!1),n=g.useRef(null),f=g.useRef(null),o=g.useRef(null),s=g.useRef(i);s.current=i;const[c]=g.useState(()=>{const l=()=>{o.current?.(),o.current=null},u=()=>t.current?!0:fe(e)?(t.current=!0,a(!0),l(),!0):!1;return m=>{if(f.current=m,n.current&&(n.current.disconnect(),n.current=null),l(),!m){t.current&&(K(e),t.current=!1,a(!1));return}queueMicrotask(()=>{if(f.current!==m)return;const x=new IntersectionObserver(d=>{if(d[0]?.isIntersecting??!1){!u()&&!o.current&&(o.current=ue(()=>{f.current===m&&u()}));return}l(),t.current&&(K(e),t.current=!1,a(!1))},{root:s.current.current,rootMargin:"160px 0px"});x.observe(m),n.current=x})}});return{ref:c,iframeActive:v}}function me(i){const e=F.c(8),{previewUrl:t,title:v,scrollRootRef:a,slotId:n}=i,{ref:f,iframeActive:o}=de(a,n),[s,c]=g.useState(!1);let l;e[0]!==o||e[1]!==s||e[2]!==t||e[3]!==v?(l=o?r.jsxs(r.Fragment,{children:[!s&&r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-muted/40",children:r.jsx(_,{className:"h-8 w-8 animate-pulse text-muted-foreground/40"})}),r.jsx("iframe",{src:t,title:`Preview ${v}`,sandbox:"allow-scripts allow-same-origin",referrerPolicy:"no-referrer",className:"pointer-events-none h-[200%] w-[200%] origin-top-left scale-50 border-0 bg-white",tabIndex:-1,onLoad:()=>c(!0)})]}):r.jsx("div",{className:"flex h-full items-center justify-center",children:r.jsx(_,{className:"h-8 w-8 text-muted-foreground/30"})}),e[0]=o,e[1]=s,e[2]=t,e[3]=v,e[4]=l):l=e[4];let u;return e[5]!==f||e[6]!==l?(u=r.jsx("div",{ref:f,className:"relative aspect-[16/10] w-full overflow-hidden bg-muted/40",children:l}),e[5]=f,e[6]=l,e[7]=u):u=e[7],u}function pe(i){const e=F.c(26),{entry:t,previewUrl:v,scrollRootRef:a,onSelect:n}=i,f=t.isSavedBlock&&"border-global-section/35 hover:bg-global-section/8";let o;e[0]!==f?(o=Q("group flex flex-col overflow-hidden rounded-lg border bg-card text-left transition-colors","hover:border-primary/40 hover:bg-accent/30",f),e[0]=f,e[1]=o):o=e[1];let s;e[2]!==t.resolveType||e[3]!==t.title||e[4]!==v||e[5]!==a?(s=r.jsx(me,{previewUrl:v,title:t.title,scrollRootRef:a,slotId:t.resolveType}),e[2]=t.resolveType,e[3]=t.title,e[4]=v,e[5]=a,e[6]=s):s=e[6];let c;e[7]!==t.isSavedBlock?(c=t.isSavedBlock?{color:ne}:void 0,e[7]=t.isSavedBlock,e[8]=c):c=e[8];let l;e[9]!==c?(l=r.jsx(_,{className:"h-4 w-4 shrink-0",style:c}),e[9]=c,e[10]=l):l=e[10];let u;e[11]!==t.title?(u=r.jsx("p",{className:"truncate text-sm font-medium",children:t.title}),e[11]=t.title,e[12]=u):u=e[12];let m;e[13]!==t.description?(m=t.description&&r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:t.description}),e[13]=t.description,e[14]=m):m=e[14];let x;e[15]!==u||e[16]!==m?(x=r.jsxs("div",{className:"min-w-0 flex-1",children:[u,m]}),e[15]=u,e[16]=m,e[17]=x):x=e[17];let d;e[18]!==l||e[19]!==x?(d=r.jsxs("div",{className:"flex items-center gap-2 border-t px-3 py-2.5",children:[l,x]}),e[18]=l,e[19]=x,e[20]=d):d=e[20];let h;return e[21]!==n||e[22]!==o||e[23]!==s||e[24]!==d?(h=r.jsxs("button",{type:"button",onClick:n,className:o,children:[s,d]}),e[21]=n,e[22]=o,e[23]=s,e[24]=d,e[25]=h):h=e[25],h}function be(i){const e=F.c(51),{open:t,onOpenChange:v,meta:a,decofile:n,previewBaseUrl:f,onSelect:o}=i,s=X(),[c,l]=g.useState(""),[u,m]=g.useState(t),x=g.useRef(null);t!==u&&(m(t),t&&l(""));let d,h,S,b,j,N,y,R,w,C,T;if(e[0]!==n||e[1]!==a||e[2]!==v||e[3]!==o||e[4]!==t||e[5]!==f||e[6]!==c||e[7]!==s){const D=t&&a&&n?le(a,n):[],W=a?oe(a):"",G=n?ie(n):void 0,H=new Map;if(t&&W)for(const p of D)H.set(p.resolveType,J(f,W,p.previewBlock,G));const B=c.trim().toLowerCase(),V=B?D.filter(p=>p.title.toLowerCase().includes(B)||p.resolveType.toLowerCase().includes(B)||p.description?.toLowerCase().includes(B)):D;h=Z,C=t,T=v,d=ee,y="top-3 right-3",R="flex h-[90vh] max-h-[90vh] w-[96vw] max-w-[96vw] sm:max-w-[96vw] flex-col gap-0 overflow-hidden p-0";let A;e[19]!==s?(A=s("sectionsEditor.addSectionModal.title"),e[19]=s,e[20]=A):A=e[20];let E;e[21]!==A?(E=r.jsx(te,{children:A}),e[21]=A,e[22]=E):E=e[22];let U;e[23]===Symbol.for("react.memo_cache_sentinel")?(U=r.jsx(Y,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),e[23]=U):U=e[23];let $;e[24]===Symbol.for("react.memo_cache_sentinel")?($=p=>l(p.target.value),e[24]=$):$=e[24];let M;e[25]!==s?(M=s("sectionsEditor.addSectionModal.searchPlaceholder"),e[25]=s,e[26]=M):M=e[26];let O;e[27]!==c||e[28]!==M?(O=r.jsxs("div",{className:"relative pt-2",children:[U,r.jsx(se,{value:c,onChange:$,placeholder:M,className:"h-9 pl-8"})]}),e[27]=c,e[28]=M,e[29]=O):O=e[29],e[30]!==E||e[31]!==O?(w=r.jsxs(re,{className:"shrink-0 border-b px-4 py-3 text-left",children:[E,O]}),e[30]=E,e[31]=O,e[32]=w):w=e[32],j=x,N="min-h-0 flex-1 overflow-y-auto",S="p-4",b=V.length===0?r.jsx("p",{className:"py-8 text-center text-sm text-muted-foreground",children:s("sectionsEditor.addSectionModal.noSectionsFound")}):r.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:V.map(p=>r.jsx(pe,{entry:p,scrollRootRef:x,previewUrl:H.get(p.resolveType)??J(f,W,p.previewBlock,G),onSelect:()=>o(p)},p.resolveType))}),e[0]=n,e[1]=a,e[2]=v,e[3]=o,e[4]=t,e[5]=f,e[6]=c,e[7]=s,e[8]=d,e[9]=h,e[10]=S,e[11]=b,e[12]=j,e[13]=N,e[14]=y,e[15]=R,e[16]=w,e[17]=C,e[18]=T}else d=e[8],h=e[9],S=e[10],b=e[11],j=e[12],N=e[13],y=e[14],R=e[15],w=e[16],C=e[17],T=e[18];let I;e[33]!==S||e[34]!==b?(I=r.jsx("div",{className:S,children:b}),e[33]=S,e[34]=b,e[35]=I):I=e[35];let L;e[36]!==I||e[37]!==j||e[38]!==N?(L=r.jsx("div",{ref:j,className:N,children:I}),e[36]=I,e[37]=j,e[38]=N,e[39]=L):L=e[39];let P;e[40]!==d||e[41]!==L||e[42]!==y||e[43]!==R||e[44]!==w?(P=r.jsxs(d,{closeButtonClassName:y,className:R,children:[w,L]}),e[40]=d,e[41]=L,e[42]=y,e[43]=R,e[44]=w,e[45]=P):P=e[45];let k;return e[46]!==h||e[47]!==P||e[48]!==C||e[49]!==T?(k=r.jsx(h,{open:C,onOpenChange:T,children:P}),e[46]=h,e[47]=P,e[48]=C,e[49]=T,e[50]=k):k=e[50],k}export{be as A};