decocms 4.197.10 → 4.198.1

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 (226) hide show
  1. package/dist/client/assets/{AlertCircle-V5q6ZGsb.js → AlertCircle-BIbNxVjT.js} +1 -1
  2. package/dist/client/assets/{AreaChart-BvWJ2XQ7.js → AreaChart-BSeckxvp.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-DbHOnUIW.js → ArrowLeft-JNrncaC6.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-CpYG5jkO.js → ArrowUp-DwpC76c7.js} +1 -1
  5. package/dist/client/assets/{ArrowUpRight-BJayjxfI.js → ArrowUpRight-CcTjVvug.js} +1 -1
  6. package/dist/client/assets/{Check-DAEByF5B.js → Check-B_Nj-gHK.js} +1 -1
  7. package/dist/client/assets/{CheckCircle-CrW9H134.js → CheckCircle-Bw5tspDF.js} +1 -1
  8. package/dist/client/assets/{ChevronDown-Bjss5Vml.js → ChevronDown-CNBOIvzs.js} +1 -1
  9. package/dist/client/assets/{ChevronRight-BGjVmut6.js → ChevronRight-BZUn_enc.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-CX_YEMlY.js → ChevronUp-CdWs-_Dd.js} +1 -1
  11. package/dist/client/assets/{Copy01-B28h9bAF.js → Copy01-tmNhE-t9.js} +1 -1
  12. package/dist/client/assets/{CpuChip01-BWGWEcqe.js → CpuChip01-CrXiL_DJ.js} +1 -1
  13. package/dist/client/assets/{CreditCard01-0u0gKZIG.js → CreditCard01-DY3SMPbk.js} +1 -1
  14. package/dist/client/assets/{DotsVertical-BFha7Xto.js → DotsVertical-DfcdwSa4.js} +1 -1
  15. package/dist/client/assets/{Eye-DQdeduJV.js → Eye-cbaxQ-uM.js} +1 -1
  16. package/dist/client/assets/{FilterLines-CgznPcEi.js → FilterLines-D3AYXHFE.js} +1 -1
  17. package/dist/client/assets/{Globe01-CTIzc7FG.js → Globe01-DUDN_jNp.js} +1 -1
  18. package/dist/client/assets/{Globe04-J1R-pL3w.js → Globe04-B9iLrygy.js} +1 -1
  19. package/dist/client/assets/{HardDrive-UpxzOVXl.js → HardDrive-B-0a8X2k.js} +1 -1
  20. package/dist/client/assets/{Key01-DP2FPTTv.js → Key01-CobJpsot.js} +1 -1
  21. package/dist/client/assets/{LayoutLeft-DcaHX-AX.js → LayoutLeft-C7Efi9g6.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-Dn83fhF5.js → LinkExternal01-BIaY4WLz.js} +1 -1
  23. package/dist/client/assets/{LogOut01-eTb5Hb_a.js → LogOut01-D7LBNdI7.js} +1 -1
  24. package/dist/client/assets/{Monitor01-CweVCjuU.js → Monitor01-BXIP8OxW.js} +1 -1
  25. package/dist/client/assets/{Palette-B_kRpNqI.js → Palette-332kO0aN.js} +1 -1
  26. package/dist/client/assets/{Play-Dyt0eTtd.js → Play-Bw1dP5p6.js} +1 -1
  27. package/dist/client/assets/{Plus-C5jl13My.js → Plus-DzVetwWE.js} +1 -1
  28. package/dist/client/assets/{SearchLg-F_sh14Gy.js → SearchLg-D393-Nvq.js} +1 -1
  29. package/dist/client/assets/{SearchMd-KqjjXVY2.js → SearchMd-Bsq8aUFV.js} +1 -1
  30. package/dist/client/assets/{Settings02-BVdNx8mH.js → Settings02-B9hBvqRc.js} +1 -1
  31. package/dist/client/assets/{Share07-DtVcn7WC.js → Share07-C_evEhQ2.js} +1 -1
  32. package/dist/client/assets/{Shield01-DO64XOZV.js → Shield01-B8_2pB70.js} +1 -1
  33. package/dist/client/assets/{Star01-4zsGR6T5.js → Star01-DKcK1qJm.js} +1 -1
  34. package/dist/client/assets/{Stars01-Cf4ussTv.js → Stars01-DQF_ol_e.js} +1 -1
  35. package/dist/client/assets/{Stars02-6bvS1Npi.js → Stars02-D_L3-JNs.js} +1 -1
  36. package/dist/client/assets/{Sun-D2zYQSSr.js → Sun-BZ-2mMHx.js} +1 -1
  37. package/dist/client/assets/{SwitchHorizontal01-BoHqRaIO.js → SwitchHorizontal01-cX5yjouq.js} +1 -1
  38. package/dist/client/assets/{Tool01-C9uqHeLn.js → Tool01-Di5wrMOn.js} +1 -1
  39. package/dist/client/assets/{Tool02-Cq-7tfI8.js → Tool02-D9qHgvcl.js} +1 -1
  40. package/dist/client/assets/{Trash01-X4G23Jr7.js → Trash01-Cm0lKOZG.js} +1 -1
  41. package/dist/client/assets/{TrendUp01-D1FBIzHh.js → TrendUp01-BBnF39kN.js} +1 -1
  42. package/dist/client/assets/{Upload01-CSS9udHq.js → Upload01-BePdmFTv.js} +1 -1
  43. package/dist/client/assets/{User01-CDSa6ww6.js → User01-BW6ergBX.js} +1 -1
  44. package/dist/client/assets/{Users01-pRULjU57.js → Users01-BxRyw2mM.js} +1 -1
  45. package/dist/client/assets/{Users03-Cm21qo0h.js → Users03-CUTJivEE.js} +1 -1
  46. package/dist/client/assets/{X-CuRROejy.js → X-CpCDHfBC.js} +1 -1
  47. package/dist/client/assets/{XCircle-CXK7n7LR.js → XCircle-CPtnwfis.js} +1 -1
  48. package/dist/client/assets/{XClose-CB6SJUhu.js → XClose-DKk5mGZw.js} +1 -1
  49. package/dist/client/assets/{Zap-D2FSu33p.js → Zap-QZU9B0Ko.js} +1 -1
  50. package/dist/client/assets/{ZapSquare-oPnMoZHp.js → ZapSquare-ibRsxEay.js} +1 -1
  51. package/dist/client/assets/{access-gate-CrJOZowc.js → access-gate-C_-m-aJr.js} +1 -1
  52. package/dist/client/assets/{agent-icon-CKfOJSkG.js → agent-icon-BWZFNaWR.js} +1 -1
  53. package/dist/client/assets/{agents-list-DntMgnUv.js → agents-list-CJ25eHwR.js} +1 -1
  54. package/dist/client/assets/{ai-providers-rhjAy1-9.js → ai-providers-BU49yNv_.js} +1 -1
  55. package/dist/client/assets/{alert-DwZ8uYwL.js → alert-B7ewc3FR.js} +1 -1
  56. package/dist/client/assets/{alert-dialog-3zgDY-JS.js → alert-dialog-FBBdO1hK.js} +1 -1
  57. package/dist/client/assets/{app-editor-DVPLiGet.js → app-editor-DFKKNhPu.js} +1 -1
  58. package/dist/client/assets/{auth-DjwyiIK1.js → auth-BQ8cUt93.js} +1 -1
  59. package/dist/client/assets/{auth-catchall-B1n80k1M.js → auth-catchall-B1BWrfuo.js} +1 -1
  60. package/dist/client/assets/{auth-entry-D3lqIaPf.js → auth-entry-BPUfKuge.js} +1 -1
  61. package/dist/client/assets/{auth-split-layout-Ojf8ogUx.js → auth-split-layout-QsVtrXjW.js} +1 -1
  62. package/dist/client/assets/{authenticate-and-persist-oauth-DyECUkxO.js → authenticate-and-persist-oauth-D1OnAhxy.js} +1 -1
  63. package/dist/client/assets/{automation-list-row-pVBnexau.js → automation-list-row-Bc0NmrRb.js} +1 -1
  64. package/dist/client/assets/{automation-runs-CX-2JT3f.js → automation-runs-B0VppL3N.js} +1 -1
  65. package/dist/client/assets/{automations-DGbgRof5.js → automations-Betrni9I.js} +1 -1
  66. package/dist/client/assets/{avatar-CpQW9JpY.js → avatar-7DIElZMt.js} +1 -1
  67. package/dist/client/assets/{badge-B6cSZESa.js → badge-BHEOcTbG.js} +1 -1
  68. package/dist/client/assets/{billing-CkFRRgu2.js → billing-4CHfg28V.js} +1 -1
  69. package/dist/client/assets/{block-document-BqJJpA8m.js → block-document-i6LRoJ-D.js} +1 -1
  70. package/dist/client/assets/{brand-context-FZj3laHr.js → brand-context-CswxRPsc.js} +1 -1
  71. package/dist/client/assets/{buckets-CUv0ncw1.js → buckets-BpqKkzF7.js} +1 -1
  72. package/dist/client/assets/{bulk-category-panel-Bv1nm6ET.js → bulk-category-panel-DFH4-vHc.js} +1 -1
  73. package/dist/client/assets/{capability-load-error-DnFudlB5.js → capability-load-error-CyhrUz-o.js} +1 -1
  74. package/dist/client/assets/{card-BIirS6Wm.js → card-Dp-9GXlo.js} +1 -1
  75. package/dist/client/assets/{cards-CHHhP59y.js → cards-CfIxTQzU.js} +1 -1
  76. package/dist/client/assets/{category-editor-Df3UDhBN.js → category-editor-B40QqikJ.js} +1 -1
  77. package/dist/client/assets/{chat-context-D98_IvwC.js → chat-context-BryS1E_V.js} +1 -1
  78. package/dist/client/assets/{checkbox-CS6oiDYx.js → checkbox-Bs_gQDjo.js} +1 -1
  79. package/dist/client/assets/{cli-auth-success-Bxc_GwYc.js → cli-auth-success-DE5hMAIJ.js} +1 -1
  80. package/dist/client/assets/{collection-detail-Cj0ftBnV.js → collection-detail-CelCrd7J.js} +1 -1
  81. package/dist/client/assets/{collection-display-button-l7r334wD.js → collection-display-button-B_9JnGuZ.js} +1 -1
  82. package/dist/client/assets/{collection-search-CY1JClJ3.js → collection-search-BB8jrWzh.js} +1 -1
  83. package/dist/client/assets/{collection-table-wrapper-BsE0Uwov.js → collection-table-wrapper-CFwdQSZ5.js} +1 -1
  84. package/dist/client/assets/{collection-tabs-Dp3LyUPw.js → collection-tabs-HzwKgHFx.js} +1 -1
  85. package/dist/client/assets/{command-5yxpzkTc.js → command-oAPvKl-D.js} +1 -1
  86. package/dist/client/assets/{commerce-onboarding-wHzu60hU.js → commerce-onboarding-CnlM83M3.js} +1 -1
  87. package/dist/client/assets/{connect-CmDdRUOy.js → connect-CJCiDUfo.js} +1 -1
  88. package/dist/client/assets/{connection-DgUJaGux.js → connection-Dq0ykxIo.js} +1 -1
  89. package/dist/client/assets/{connection-card-CLBydNIu.js → connection-card-CXxAzxt-.js} +1 -1
  90. package/dist/client/assets/{connection-detail-DBkGq0H6.js → connection-detail-DbhCEOJL.js} +1 -1
  91. package/dist/client/assets/{connection-form-helpers-Tni1x7cy.js → connection-form-helpers-WwXYWqyk.js} +1 -1
  92. package/dist/client/assets/{connections-CYhJzeJz.js → connections-uOWuPqqr.js} +1 -1
  93. package/dist/client/assets/{decopilot-sse-pool-Dr020en0.js → decopilot-sse-pool-CLdQ7a7X.js} +1 -1
  94. package/dist/client/assets/{dialog-DlYbt7z3.js → dialog-DAFru5VU.js} +1 -1
  95. package/dist/client/assets/{domain-settings-BhnS8Y1z.js → domain-settings-CIDsy--Z.js} +1 -1
  96. package/dist/client/assets/{drawer-Cgi7pz9a.js → drawer-CsdgrCqs.js} +1 -1
  97. package/dist/client/assets/{dropdown-menu-BBCeToN_.js → dropdown-menu-DR-T_e02.js} +1 -1
  98. package/dist/client/assets/{empty-state-Vl-ZG0b9.js → empty-state-CwdKnKvp.js} +1 -1
  99. package/dist/client/assets/{extract-connection-data-dHqlMWep.js → extract-connection-data-Cx7cSiJo.js} +1 -1
  100. package/dist/client/assets/{file-explorer-BJ0ukpie.js → file-explorer-BGtos_rf.js} +1 -1
  101. package/dist/client/assets/{file-type-icon-D5D5i3YP.js → file-type-icon-BXkKuDnI.js} +1 -1
  102. package/dist/client/assets/{form-yy73gw2K.js → form-BFzX9jQB.js} +1 -1
  103. package/dist/client/assets/{general-CI3A6DWg.js → general-CEDqpd82.js} +1 -1
  104. package/dist/client/assets/{github-repo-picker-BH2ayUaO.js → github-repo-picker-Dnt_pLmG.js} +1 -1
  105. package/dist/client/assets/{hooks-CJHxKTUE.js → hooks-Ck0w6giS.js} +1 -1
  106. package/dist/client/assets/{index-DQtLFXTk.js → index-40vsYmi1.js} +4 -4
  107. package/dist/client/assets/{index-CcWxwSOv.js → index-CA6bctzC.js} +1 -1
  108. package/dist/client/assets/{index-B3XoS4IT.js → index-Cc0BIKZV.js} +1 -1
  109. package/dist/client/assets/index-D3Qiagvp.js +1 -0
  110. package/dist/client/assets/{index-BFV_VYUz.js → index-DESHD7l_.js} +1 -1
  111. package/dist/client/assets/{index-B_1Z9z44.js → index-Dt2OuZ-3.js} +1 -1
  112. package/dist/client/assets/{index-DmL7Zhiy.js → index-PSAqTFqg.js} +1 -1
  113. package/dist/client/assets/{index-U4KLKG0Q.js → index-PYvEj9rl.js} +6 -6
  114. package/dist/client/assets/{index-C1MGccCL.js → index-TS-1Qvxc.js} +1 -1
  115. package/dist/client/assets/{index-DPJwQpAe.js → index-WB9eGgJj.js} +1 -1
  116. package/dist/client/assets/{index-redirect-DzGaoHjj.js → index-redirect-D0fkfwe9.js} +1 -1
  117. package/dist/client/assets/{input-DSUm_Erg.js → input-c67DqalF.js} +1 -1
  118. package/dist/client/assets/{integration-icon-Cmjaxx59.js → integration-icon-CbnBAtSt.js} +1 -1
  119. package/dist/client/assets/{invite-member-dialog-DpEsLIsR.js → invite-member-dialog-DEsRbEi3.js} +1 -1
  120. package/dist/client/assets/{label-BfvSISi4.js → label-CiWl6zR8.js} +1 -1
  121. package/dist/client/assets/{layout-CCpcZA-o.js → layout-KK1MgaRZ.js} +1 -1
  122. package/dist/client/assets/{login-BU8lDE4x.js → login-B6sKYtnG.js} +1 -1
  123. package/dist/client/assets/{mcp-oauth-CxCw9mAZ.js → mcp-oauth-DFM9MSpi.js} +1 -1
  124. package/dist/client/assets/{members-Ble-PH_O.js → members-Bfpw9cpu.js} +1 -1
  125. package/dist/client/assets/{monaco-editor-or6u5lRp.js → monaco-editor-1VEbI-ff.js} +1 -1
  126. package/dist/client/assets/{monitoring-stats-row-BrsJF8DR.js → monitoring-stats-row-CVo2qQNH.js} +1 -1
  127. package/dist/client/assets/{multi-select-RUQMTstq.js → multi-select-B4DyE9eb.js} +1 -1
  128. package/dist/client/assets/{oauth-callback-CHMBnxyK.js → oauth-callback-Bv6BVeZo.js} +1 -1
  129. package/dist/client/assets/{oauth-callback-ai-provider-C_gUw-X4.js → oauth-callback-ai-provider-DXJKwN7i.js} +1 -1
  130. package/dist/client/assets/{onboarding-CsL1hjkt.js → onboarding-CZOQQSpb.js} +1 -1
  131. package/dist/client/assets/{org-layout-DTV_NSvx.js → org-layout-CEVXo4Hj.js} +1 -1
  132. package/dist/client/assets/{organization-choice-Bbzu3zoU.js → organization-choice-qLYRu1mJ.js} +1 -1
  133. package/dist/client/assets/{orgs-zKbqVh4s.js → orgs-jEJO14l8.js} +1 -1
  134. package/dist/client/assets/{page-seo-form-BN0SiVDd.js → page-seo-form-DcBpBjM3.js} +1 -1
  135. package/dist/client/assets/{popover-LB3jPZY1.js → popover-C3GV7NHT.js} +1 -1
  136. package/dist/client/assets/post-editor-C5h2pkA_.js +1 -0
  137. package/dist/client/assets/{primitives-SNKJiPyO.js → primitives-DxG_-v6Q.js} +1 -1
  138. package/dist/client/assets/{profile-BAQmhtRa.js → profile-B2LXJVMK.js} +1 -1
  139. package/dist/client/assets/{project-app-view-h0MzOhBC.js → project-app-view-Cr9viAZ9.js} +1 -1
  140. package/dist/client/assets/record-editor-DqQqXztj.js +1 -0
  141. package/dist/client/assets/{redirect-editor-D3Ir9FS3.js → redirect-editor-BW0lGYt1.js} +1 -1
  142. package/dist/client/assets/registry-BQpdlbwL.js +2 -0
  143. package/dist/client/assets/{registry-layout-X0o9TF3Z.js → registry-layout-7G5vaR5-.js} +4 -4
  144. package/dist/client/assets/{reports-C4ZXcxiE.js → reports-DDQO5s1F.js} +1 -1
  145. package/dist/client/assets/{require-capability-CrGKgtji.js → require-capability-CAxsHP25.js} +1 -1
  146. package/dist/client/assets/{required-auth-layout-jy5QJ-_y.js → required-auth-layout-T2z6aSD0.js} +1 -1
  147. package/dist/client/assets/{reset-password-K7bXbyHG.js → reset-password-CvhXzd8Y.js} +1 -1
  148. package/dist/client/assets/{roles-KVGYQGU9.js → roles-Ctse7z57.js} +1 -1
  149. package/dist/client/assets/{search-input-C0EkBLxj.js → search-input-ctAc0W8m.js} +1 -1
  150. package/dist/client/assets/{secrets-D-64en9F.js → secrets-BV-5oy2U.js} +1 -1
  151. package/dist/client/assets/{sections-editor-DEVx7fnk.js → sections-editor-D9Zay_Mg.js} +1 -1
  152. package/dist/client/assets/{select-D-apSMci.js → select-DTTczhz5.js} +1 -1
  153. package/dist/client/assets/{select-model-B6uVfhWc.js → select-model-CFihyE2L.js} +1 -1
  154. package/dist/client/assets/{self-tool-result-C0htamES.js → self-tool-result-TxiWbDY7.js} +1 -1
  155. package/dist/client/assets/{seo-editor-80AalZ7q.js → seo-editor-By5nGlTj.js} +1 -1
  156. package/dist/client/assets/{settings-layout-BPFqAegW.js → settings-layout-CqL_nZDN.js} +1 -1
  157. package/dist/client/assets/{settings-section-B3bCRATC.js → settings-section-CYzDucV_.js} +1 -1
  158. package/dist/client/assets/{shell-controls-Bsq3Cov_.js → shell-controls-D1rGlY-A.js} +1 -1
  159. package/dist/client/assets/{shell-layout-CDUa0RQi.js → shell-layout-B1GSO3br.js} +1 -1
  160. package/dist/client/assets/{sidebar-DQpwqVH6.js → sidebar-yF4RAeOF.js} +1 -1
  161. package/dist/client/assets/{skeleton-C4ladDy0.js → skeleton-BVCXxIvJ.js} +1 -1
  162. package/dist/client/assets/{spinner-BQC50G3I.js → spinner-CvOt4SrY.js} +1 -1
  163. package/dist/client/assets/{sso-DzXMWQrm.js → sso-CvXXHYxM.js} +1 -1
  164. package/dist/client/assets/{store-BOhFfiVO.js → store-BCYMwsuG.js} +1 -1
  165. package/dist/client/assets/store-registry-DbDzNXGn.js +2 -0
  166. package/dist/client/assets/{studio-tools-CBZ7-w7E.js → studio-tools-DqBTby73.js} +1 -1
  167. package/dist/client/assets/{switch-DUYCjSJv.js → switch-DQtuZQrl.js} +1 -1
  168. package/dist/client/assets/{synced-repos-D6612TVT.js → synced-repos-B4lY6bAa.js} +1 -1
  169. package/dist/client/assets/{tab-id-Cub_nviB.js → tab-id-k4oMd3Kq.js} +1 -1
  170. package/dist/client/assets/{table-BrHLfa07.js → table-ClUciDn4.js} +1 -1
  171. package/dist/client/assets/{tabs-D4u23tQO.js → tabs-GNMKCzfU.js} +1 -1
  172. package/dist/client/assets/{textarea-1PgWx7sr.js → textarea-CC00wWfB.js} +1 -1
  173. package/dist/client/assets/{toggle-group-9l3gKSIn.js → toggle-group-Fo28SZSJ.js} +1 -1
  174. package/dist/client/assets/{toolbar-CBPM3wJm.js → toolbar-Dq8G83dn.js} +1 -1
  175. package/dist/client/assets/{tooltip-oxGz82xn.js → tooltip-gufneU6i.js} +1 -1
  176. package/dist/client/assets/{use-ai-providers-CQN7J_3n.js → use-ai-providers-C0PU4vBf.js} +1 -1
  177. package/dist/client/assets/{use-automations-0gtBNMtm.js → use-automations-CuJzDcgN.js} +1 -1
  178. package/dist/client/assets/{use-autosave-DAb3LjfB.js → use-autosave-Bj5GBQ03.js} +1 -1
  179. package/dist/client/assets/{use-capability-C03WMdXO.js → use-capability-DIGMjvZ4.js} +1 -1
  180. package/dist/client/assets/{use-clock-tick-BHSy6RA8.js → use-clock-tick-CQ5WMkJ4.js} +1 -1
  181. package/dist/client/assets/{use-connection-DTT5IHiu.js → use-connection-BIE1ZM9Q.js} +1 -1
  182. package/dist/client/assets/{use-copy-DzYhimX2.js → use-copy-BFdepIlJ.js} +1 -1
  183. package/dist/client/assets/{use-create-virtual-mcp-CiJqGn3b.js → use-create-virtual-mcp-Bk3JFgs4.js} +1 -1
  184. package/dist/client/assets/{use-debounced-autosave-CfukZ-3I.js → use-debounced-autosave-D2aIHp9V.js} +1 -1
  185. package/dist/client/assets/{use-debounced-value-CouYt5rY.js → use-debounced-value-Cj_-uF6e.js} +1 -1
  186. package/dist/client/assets/{use-deco-credits-14iZTzLL.js → use-deco-credits-B5I1ipIA.js} +1 -1
  187. package/dist/client/assets/{use-decopilot-events-DcQ67ld6.js → use-decopilot-events-z457sLTv.js} +1 -1
  188. package/dist/client/assets/{use-delete-connection-RFk_9kEE.js → use-delete-connection-BYKpDKlA.js} +1 -1
  189. package/dist/client/assets/{use-deployment-admin-BaKBzevn.js → use-deployment-admin-ClIJXgko.js} +1 -1
  190. package/dist/client/assets/{use-file-configs-DZ9S6XiA.js → use-file-configs-BrR-HB5E.js} +1 -1
  191. package/dist/client/assets/{use-infinite-scroll-CGnIpLJw.js → use-infinite-scroll-DRTb36Sf.js} +1 -1
  192. package/dist/client/assets/{use-join-requests-CMNencDg.js → use-join-requests-Cc3OGOFJ.js} +1 -1
  193. package/dist/client/assets/{use-mcp-client-DBzQk09p.js → use-mcp-client-DJa-oLak.js} +1 -1
  194. package/dist/client/assets/{use-mcp-tools-DIk8gtU5.js → use-mcp-tools-A8LxjQHB.js} +1 -1
  195. package/dist/client/assets/{use-members-Bm7mhhwQ.js → use-members-B8sfkDFd.js} +1 -1
  196. package/dist/client/assets/{use-mobile-B-iR7fuq.js → use-mobile-CWfh0IvR.js} +1 -1
  197. package/dist/client/assets/{use-navigate-to-agent-DNEdwRRC.js → use-navigate-to-agent-CH34Pmos.js} +1 -1
  198. package/dist/client/assets/{use-open-billing-url-DFhwtLAH.js → use-open-billing-url-CQyHsaDf.js} +1 -1
  199. package/dist/client/assets/{use-org-auth-client-Bfgxgehq.js → use-org-auth-client-GAxA8mNj.js} +1 -1
  200. package/dist/client/assets/{use-org-sso-BLrrMByk.js → use-org-sso-DWulw-z5.js} +1 -1
  201. package/dist/client/assets/{use-organization-roles-Bu-22_hB.js → use-organization-roles-Imzuk9OO.js} +1 -1
  202. package/dist/client/assets/{use-organization-settings-Z1d_LhJ6.js → use-organization-settings-D9Dm1v9H.js} +1 -1
  203. package/dist/client/assets/{use-registry-connections-CCCZS0XT.js → use-registry-connections-BeG_rVWG.js} +1 -1
  204. package/dist/client/assets/{use-secrets-ZNl74urv.js → use-secrets-B6sP0fsa.js} +1 -1
  205. package/dist/client/assets/{use-section-preview-base-BsgHHYe1.js → use-section-preview-base-BQYP0s2f.js} +1 -1
  206. package/dist/client/assets/{use-status-sounds-TW0uho6k.js → use-status-sounds-CDuYaLPP.js} +1 -1
  207. package/dist/client/assets/{use-tags-BpNBUA8C.js → use-tags-ClqL7tiK.js} +1 -1
  208. package/dist/client/assets/{use-view-mode-CT3Z-WPt.js → use-view-mode-BP_tcXyq.js} +1 -1
  209. package/dist/client/assets/{use-virtual-mcp-DxafBc8a.js → use-virtual-mcp-JTMjOuzF.js} +1 -1
  210. package/dist/client/assets/useInfiniteQuery-BJ49akeX.js +1 -0
  211. package/dist/client/assets/{useRouterState-DQSKmQfk.js → useRouterState-BZZWM__-.js} +1 -1
  212. package/dist/client/assets/useSuspenseInfiniteQuery-BtNtPB4O.js +1 -0
  213. package/dist/client/assets/{users-DwvGAj2Y.js → users-3jk7spwK.js} +1 -1
  214. package/dist/client/assets/{variant-calendar-Dm548uok.js → variant-calendar-OLG0qkVW.js} +1 -1
  215. package/dist/client/assets/{view-mode-toggle-D3jq_w3J.js → view-mode-toggle-CInGt6IN.js} +1 -1
  216. package/dist/client/index.html +1 -1
  217. package/dist/server/cli.js +2 -2
  218. package/dist/server/server.js +1 -1
  219. package/package.json +1 -1
  220. package/dist/client/assets/index-HhomUO-s.js +0 -1
  221. package/dist/client/assets/post-editor-ZrGFXj8M.js +0 -1
  222. package/dist/client/assets/record-editor-Cbb9yqyi.js +0 -1
  223. package/dist/client/assets/registry-zeKMAirh.js +0 -2
  224. package/dist/client/assets/store-registry-CFBj0Hu2.js +0 -2
  225. package/dist/client/assets/useInfiniteQuery-i3dhUyy7.js +0 -1
  226. package/dist/client/assets/useSuspenseInfiniteQuery-BQytHROn.js +0 -1
@@ -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.`,g_$;var u_$=B(()=>{k4();dw();t81();E86=o81.object({requiresReview:o81.boolean().describe("true if the changes should go through pull-request review"),reason:o81.string().describe("One short sentence explaining the decision (max ~120 chars)")});g_$={requiresReview:!1,reason:""}});function A86($){if(!$||$.includes(".."))return!1;return P86.test($)}function c_$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!A86(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function l_$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var P86;var d_$=B(()=>{P86=/^[\w./@-]+$/});function r81($){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 m_$($,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 i_$($,Z,X,Q){if(!Q.connectionId)throw new mg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let G=$.organization?.id;if(!G)throw new mg(l7);await Tw({ctx:$,connectionId:Q.connectionId,organizationId:G,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:l7;throw new mg(F)}});let{cloneUrl:Y,gitUserName:J,gitUserEmail:W}=await Rw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Oj0($),H=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:Y},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!H.ok){let N=await cw(H,T86).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var T86=10485760,mg;var n_$=B(()=>{GN();c81();Ci();of();mg=class mg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function I86($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!R86.test(Z))throw Error(`Invalid branch name: ${$}`)}function cC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(M86)])}function lC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function a81($,Z){let Q=(Bj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),G=Q.catch(()=>{});return Bj0.set($,G),G.finally(()=>{if(Bj0.get($)===G)Bj0.delete($)}),Q}async function fZ($,Z,X){let Q=lC($);if(Q instanceof Response)return Q;let{claimName:G,userId:Y,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(G,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:Y,projectRef:J},G))w=await Q.proxyDaemonRequest(G,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",...gG}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?S86(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...gG}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.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 S86($){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 Dj0($,Z,X,Q="GET",G){let Y=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(Y.status===404&&G){try{await Y.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(G,Z))Y=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(Y.status===404){try{await Y.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await Y.text();if(!Y.ok)try{let W=JSON.parse(J);throw Error(W.error??`Daemon error (${Y.status})`)}catch(W){if(W instanceof Error&&W.message!==J)throw W;throw Error(`Daemon error (${Y.status})`)}return JSON.parse(J)}function V86($){return o_$.includes($)}var R86,p_$=524288,q86=65536,M86=1e4,t_$=2000,k86,Bj0,gG,o_$,r_$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",k86),$.post("/:virtualMcpId/:branch/write",(Z)=>fZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>fZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>fZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>fZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>fZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>fZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>fZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:cC(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 fZ(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 fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!V86(X))return Z.json({error:`step must be one of: ${o_$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let G=o(Z.var.studioContext),Y=mF0(Q.virtualMcpMetadata);try{await nF0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:G.id,userId:Q.callerUserId,entries:Y})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return fZ(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 XF(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 __$(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)=>fZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(t_$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(t_$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>fZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:G,connectionIds:Y}=Z.get("vmClaim"),J=Z.var.studioContext;return a81(Q,async()=>{try{await l81(J,X,Q);let W=m_$(G,Y);if(W)await i_$(J,X,Q,W)}catch(W){if(W instanceof mg)return Z.json({error:W.message},403,gG);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,gG)}return fZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return a81(X,()=>fZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),G=Z.var.studioContext;return a81(Q,async()=>{try{await l81(G,X,Q)}catch(Y){let J=Y instanceof Error?Y.message:String(Y);return Z.json({error:J},502,gG)}return fZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",HZ({maxSize:p_$,onError:(Z)=>Z.json({error:"Payload too large"},413,gG)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:G,projectRef:Y}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=i81(K)&&N?[K,H]:await Promise.all([Dj0(X,Q,"/_sandbox/git/status","GET",{userId:G,projectRef:Y}),Dj0(X,Q,"/_sandbox/git/diff","GET",{userId:G,projectRef:Y})]),w=await y_$(J,F,U);return Z.json(w,200,gG)}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,gG);return Z.json({error:K},502,gG)}}),$.post("/:virtualMcpId/:branch/git/judge-review",HZ({maxSize:p_$,onError:(Z)=>Z.json({error:"Payload too large"},413,gG)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:G,projectRef:Y}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=i81(K)&&N?[K,H]:await Promise.all([Dj0(X,Q,"/_sandbox/git/status","GET",{userId:G,projectRef:Y}),Dj0(X,Q,"/_sandbox/git/diff","GET",{userId:G,projectRef:Y})]),w=await h_$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,gG)}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,gG);return Z.json({error:K},502,gG)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),G=Z.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return Z.json({error:"Path not allowed"},403);let 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 J=Y.replace(/\/+$/,""),W=r81(`${J}${G}`),K;try{K=await fetch(W?.url??`${J}${G}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",HZ({maxSize:q86,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),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 Y;try{Y=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!Y||typeof Y!=="object"||Array.isArray(Y))return Z.json({error:"Invalid JSON body"},400);let J=c_$(Y);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=l_$(G,J.resolveType),K=r81(W),H;try{H=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 N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var a_$=B(()=>{y8();lO();dg();k_$();QN();V_$();B3();yw();C_$();v_$();Id0();Si();t81();u_$();d_$();n_$();R86=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;k86=M_$(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 G;try{G=o(X)}catch{return $.json({error:"Organization scope required"},403)}let Y=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!Y||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{I86(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==G.id)return $.json({error:"Virtual MCP not found"},404);let K=rm({orgId:G.id,virtualMcpId:Y,branch:J}),H=await wN(X,J,Q),N=S_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await hX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:Y,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Bj0=new Map;gG={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};o_$=["clone","install","start"]});var s_$=($)=>{let Z=new B1;if(Z.use("*",_C),Z.route("/",CE0()),Z.route("/",FS$()),Z.route("/",O_$()),Z.route("/",F_$()),Z.route("/",Fj0()),Z.route("/tools",P_$()),Z.route("/",E_$()),Z.route("/",pC$({kvStorage:$.kvStorage})),Z.route("/",iC$()),Z.route("/fs",G_$({getConnection:$.getNatsConnection})),Z.route("/sandbox",r_$()),Z.route("/",K_$()),Z.route("/deco-sites",vE0()),Z.route("/sso",RE0()),Z.route("/",Uj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",QS$()),$.mountDevAssets)Z.route("/dev-assets",bE0({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("/",sq$()),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",J_$()),Z.route("/mcp",pw0()),Z.route("/mcp/self",Nj0()),Z.route("/mcp",rw0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var e_$=B(()=>{y8();K$1();GS$();w$1();fE0();Yo();J$1();nC$();tC$();Y_$();Ln();a11();aw0();b81();W_$();H_$();U_$();B_$();j_$();x81();A_$();y81();tw0();a_$()});function _86($){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 v86($,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(C86)});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 C86=1e4,b86=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},$v$=()=>{let $=new B1;return $.use("*",b86),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,G=X.decoSupabaseServiceKey;if(!Q||!G)return Z.json({apps:[]});try{let Y=await v86(Q,G);return Z.json({apps:_86(Y)})}catch(Y){return console.error("[deco-apps] GET error:",Y),Z.json({error:"Failed to fetch apps"},502)}}),$};var Zv$=B(()=>{y8();S$()});import{z as M1}from"zod";function gK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function m86($){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 i86($,Z,X){try{return JSON.parse($)}catch{throw new Gv$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function n86($){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((G)=>{if(G.type==="text")return{type:"text",text:G.text};return{type:"image",image:G.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((G)=>({type:"tool-call",toolCallId:G.id,toolName:G.function.name,input:i86(G.function.arguments,G.id,G.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 p86($){let Z=$.map((X)=>{let Q=X.function.parameters?EG(X.function.parameters):EG({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function t86($){if(!$)return;return{openai:{response_format:$}}}function o86(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Xv$($,Z,X,Q,G,Y){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:Y};return G?{...J,providerOptions:G}:J}function Qv$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var f86=256,x86,y86,g86,h86,u86,c86,l86,d86,Gv$,Yv$,Jv$;var Wv$=B(()=>{k4();y8();dg();fN();x86=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),y86=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),g86=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(y86).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),h86=M1.object({type:M1.literal("text")}),u86=M1.object({type:M1.literal("json_object")}),c86=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()})}),l86=M1.union([h86,u86,c86]),d86=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(g86),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(x86).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:l86.optional(),user:M1.string().optional()});Gv$=class Gv$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Yv$=new B1;Yv$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(gK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(gK("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(gK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),G=d86.safeParse(Q);if(!G.success){let L=G.error.issues[0]??{message:"Invalid request",path:[]};return $.json(gK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let Y=G.data,J=m86(Y.model);if(!J)return $.json(gK("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((j)=>ZD(j.providerId));if(!E)return $.json(gK("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 H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(gK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=n86(Y.messages),U=Y.tools?p86(Y.tools):void 0,w=t86(Y.response_format),O=o86(),D=Math.floor(Date.now()/1000);if(Y.stream)return XF($,async(L)=>{let E=Xv$(N,F,U,Y,w,$.req.raw.signal);try{let j=Pw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=f86)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{},finish_reason:Qv$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await M(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Xv$(N,F,U,Y,w,$.req.raw.signal),E=await jw(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:D,model:Y.model,choices:[{index:0,message:j,finish_reason:Qv$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let G=Q;if(G.name==="AbortError")return $.json(gK("Request aborted","invalid_request_error"),400);if(G.name==="MessageConversionError")return $.json(gK(G.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",G.message,G.stack),$.json(gK(G.message,"server_error"),500)}});Jv$=Yv$});var Hv$;var Kv$=B(()=>{Hv$={name:"decocms",version:"4.197.10",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 s86(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??a86}}var Nv$,a86="https://ph.studio.decocms.com",Fv$;var Uv$=B(()=>{y8();vx0();IV();jZ();S$();n11();Kv$();Nv$=new B1;Nv$.get("/",($)=>{let Z={version:Hv$.version,theme:rh1(),...iD().logo&&{logo:iD().logo},...KK()&&{internalUrl:Rq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:Ek$(),posthog:s86(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!KK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Fv$=Nv$});function ig($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function s81($){return(ig($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function Ov$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(ig($))}&sz=${Z}`}function wv$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),G=Q.lastIndexOf(" ");return`${(G>Z*0.6?Q.slice(0,G):Q).trimEnd()}\u2026`}function Bv$($){let{brand:Z,domain:X,score:Q,verdict:G}=$,Y=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=G?.trim()?wv$(`${G.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):wv$(`How does ${X} really perform? ${J}`,200);return{title:Y,description:W}}import{z as l0}from"zod";var dC,e86,$46,Z46,X46,Dv$;var Lv$=B(()=>{dC=l0.enum(["good","bad","neutral"]),e86=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:dC.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.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 $})),$46=l0.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},l0.array(e86)),Z46={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},X46=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:dC.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:dC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:dC.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:dC.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array($46).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:dC.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:dC.optional()})).min(1)})]),Dv$=l0.object({...Z46,template:X46})});function Lj0($){let Z=[],X=[...$.sections].sort((G,Y)=>G.position-Y.position).map((G)=>{let Y=Dv$.safeParse(G.props);if(Y.success)return Y.data;let J=Y.error.issues[0];return Z.push({section_type:G.section_type,position:G.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((G)=>G!==null),Q=X.filter((G)=>G.template.template!=="cover"&&G.template.template!=="cta").map((G)=>({key:G.key,title:G.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var e81=B(()=>{Lv$()});import{join as Ev$}from"path";async function G46($){try{let Z=await fetch(`${_W({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(Q46)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Lj0(X);if(!Q.slides.length)return null;let G=Q.slides.find((W)=>W.template.template==="cover"),Y=G?.template,J=Y&&Y.template==="cover"?Y:void 0;return{brand:Q.meta.brand?.trim()||s81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:G?.annotation?.trim()||G?.headline?.trim()||void 0}}catch{return null}}function hG($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function Y46($,Z){let X=ig($),Q=Z?.brand?.trim()||s81(X),G=Ov$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=Bv$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${hG(W)}</title>`,`<meta name="description" content="${hG(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="${hG(W)}" />`,`<meta property="og:description" content="${hG(K)}" />`,`<meta property="og:url" content="${hG(J)}" />`,`<meta property="og:image" content="${hG(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${hG(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${hG(W)}" />`,`<meta name="twitter:description" content="${hG(K)}" />`,`<meta name="twitter:image" content="${hG(H)}" />`,`<meta name="twitter:image:alt" content="${hG(N)}" />`,`<link rel="canonical" href="${hG(J)}" />`,`<link rel="icon" href="${hG(G)}" sizes="any" />`].join(`
2729
+ Respond with the structured verdict and a short reason.`,g_$;var u_$=B(()=>{k4();dw();t81();E86=o81.object({requiresReview:o81.boolean().describe("true if the changes should go through pull-request review"),reason:o81.string().describe("One short sentence explaining the decision (max ~120 chars)")});g_$={requiresReview:!1,reason:""}});function A86($){if(!$||$.includes(".."))return!1;return P86.test($)}function c_$($){let Z=typeof $.__resolveType==="string"?$.__resolveType:null;if(!Z||!A86(Z))return null;let{__resolveType:X,...Q}=$;return{resolveType:Z,payload:Q}}function l_$($,Z){return`${$.replace(/\/+$/,"")}/deco/invoke/${Z}`}var P86;var d_$=B(()=>{P86=/^[\w./@-]+$/});function r81($){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 m_$($,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 i_$($,Z,X,Q){if(!Q.connectionId)throw new mg("Push requires a connected GitHub account. Connect mcp-github for this project and restart the sandbox.");let G=$.organization?.id;if(!G)throw new mg(l7);await Tw({ctx:$,connectionId:Q.connectionId,organizationId:G,forceRefresh:!0,onLegacyMintError:(N)=>{let F=N instanceof Error?N.message:l7;throw new mg(F)}});let{cloneUrl:Y,gitUserName:J,gitUserEmail:W}=await Rw(Q.connectionId,Q.owner,Q.name,$.db,$.vault),K=Oj0($),H=await Z.proxyDaemonRequest(X,"/_sandbox/config",{method:"PUT",headers:new Headers({"content-type":"application/json"}),body:JSON.stringify({git:{repository:{cloneUrl:Y},identity:{userName:J,userEmail:W}},...K?{operator:K}:{}})});if(!H.ok){let N=await cw(H,T86).catch(()=>H.statusText);throw Error(`Failed to refresh sandbox git credentials (${H.status}): ${N}`)}}var T86=10485760,mg;var n_$=B(()=>{GN();c81();Ci();of();mg=class mg extends Error{constructor($){super($);this.name="GitPushAuthError"}}});function I86($){let Z=$.startsWith("thread:")?$.slice(7):$;if(!Z||Z.length>255||Z.includes("..")||Z.startsWith("/")||Z.endsWith("/")||Z.endsWith(".lock")||!R86.test(Z))throw Error(`Invalid branch name: ${$}`)}function cC($){return AbortSignal.any([$.req.raw.signal,AbortSignal.timeout(M86)])}function lC($){let{runner:Z}=$.get("vmClaim");if(!Z)return $.json({error:"No sandbox runner configured"},503);return Z}function a81($,Z){let Q=(Bj0.get($)??Promise.resolve()).catch(()=>{}).then(Z),G=Q.catch(()=>{});return Bj0.set($,G),G.finally(()=>{if(Bj0.get($)===G)Bj0.delete($)}),Q}async function fZ($,Z,X){let Q=lC($);if(Q instanceof Response)return Q;let{claimName:G,userId:Y,projectRef:J}=$.get("vmClaim"),W=X?.method??"POST",K=null,H=new Headers;if(X?.jsonBody!==void 0)K=X.jsonBody,H.set("content-type","application/json");else if(X?.forwardJsonBody)K=await $.req.text(),H.set("content-type","application/json");let N=X?.signal,F={method:W,headers:H,body:K,...N?{signal:N}:{}},U=async()=>{let w=await Q.proxyDaemonRequest(G,Z,F);if(X?.map404to410&&w.status===404){try{await w.body?.cancel()}catch{}if(await Q.adoptLiveClaim?.({userId:Y,projectRef:J},G))w=await Q.proxyDaemonRequest(G,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",...gG}})}}let O=await w.text(),D=X?.redactRepoDirUnlessDesktop&&Q.kind!=="user-desktop"?S86(O):O,L=w.headers.get("content-type")??"application/json";return new Response(D,{status:w.status,headers:{"content-type":L,...gG}})};try{if(N){let w=U();return w.catch(()=>{}),await Promise.race([w,new Promise((D,L)=>{if(N.aborted)return L(N.reason);N.addEventListener("abort",()=>L(N.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 S86($){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 Dj0($,Z,X,Q="GET",G){let Y=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null});if(Y.status===404&&G){try{await Y.body?.cancel()}catch{}if(await $.adoptLiveClaim?.(G,Z))Y=await $.proxyDaemonRequest(Z,X,{method:Q,headers:new Headers,body:null})}if(Y.status===404){try{await Y.body?.cancel()}catch{}throw Error("SANDBOX_GONE")}let J=await Y.text();if(!Y.ok){let W=`Daemon error (${Y.status})`;try{W=JSON.parse(J).error??W}catch{}throw Error(W)}return JSON.parse(J)}function V86($){return o_$.includes($)}var R86,p_$=524288,q86=65536,M86=1e4,t_$=2000,k86,Bj0,gG,o_$,r_$=()=>{let $=new B1;return $.use("/:virtualMcpId/:branch/*",k86),$.post("/:virtualMcpId/:branch/write",(Z)=>fZ(Z,"/_sandbox/write",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/unlink",(Z)=>fZ(Z,"/_sandbox/unlink",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/mkdir",(Z)=>fZ(Z,"/_sandbox/mkdir",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/rename",(Z)=>fZ(Z,"/_sandbox/rename",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/read",(Z)=>fZ(Z,"/_sandbox/read",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/glob",(Z)=>fZ(Z,"/_sandbox/glob",{forwardJsonBody:!0,signal:cC(Z)})),$.post("/:virtualMcpId/:branch/grep",(Z)=>fZ(Z,"/_sandbox/grep",{forwardJsonBody:!0,signal:cC(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 fZ(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 fZ(Z,`/_sandbox/exec/${encodeURIComponent(X)}/kill`)}),$.get("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"GET",map404to410:!0,redactRepoDirUnlessDesktop:!0})),$.put("/:virtualMcpId/:branch/config",(Z)=>fZ(Z,"/_sandbox/config",{method:"PUT",forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/setup/:step",async(Z)=>{let X=Z.req.param("step");if(!X||!V86(X))return Z.json({error:`step must be one of: ${o_$.join(", ")}`},400);if(X==="start"){let Q=Z.get("vmClaim");if(Q.runner){let G=o(Z.var.studioContext),Y=mF0(Q.virtualMcpMetadata);try{await nF0({ctx:Z.var.studioContext,runner:Q.runner,handle:Q.claimName,orgId:G.id,userId:Q.callerUserId,entries:Y})}catch(J){let W=J instanceof Error?J.message:String(J);return Z.json({error:`Failed to push env to daemon: ${W}`},502)}}}return fZ(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 XF(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 __$(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)=>fZ(Z,"/_sandbox/git/status",{method:"GET",map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(t_$)])})),$.post("/:virtualMcpId/:branch/git/status",(Z)=>fZ(Z,"/_sandbox/git/status",{map404to410:!0,signal:AbortSignal.any([Z.req.raw.signal,AbortSignal.timeout(t_$)])})),$.post("/:virtualMcpId/:branch/git/diff",(Z)=>fZ(Z,"/_sandbox/git/diff",{forwardJsonBody:!0,map404to410:!0})),$.post("/:virtualMcpId/:branch/git/publish",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,virtualMcpMetadata:G,connectionIds:Y}=Z.get("vmClaim"),J=Z.var.studioContext;return a81(Q,async()=>{try{await l81(J,X,Q);let W=m_$(G,Y);if(W)await i_$(J,X,Q,W)}catch(W){if(W instanceof mg)return Z.json({error:W.message},403,gG);let K=W instanceof Error?W.message:String(W);return Z.json({error:K},502,gG)}return fZ(Z,"/_sandbox/git/publish",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/discard",(Z)=>{let{claimName:X}=Z.get("vmClaim");return a81(X,()=>fZ(Z,"/_sandbox/git/discard",{forwardJsonBody:!0,map404to410:!0}))}),$.post("/:virtualMcpId/:branch/git/rebase",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),G=Z.var.studioContext;return a81(Q,async()=>{try{await l81(G,X,Q)}catch(Y){let J=Y instanceof Error?Y.message:String(Y);return Z.json({error:J},502,gG)}return fZ(Z,"/_sandbox/git/rebase",{forwardJsonBody:!0,map404to410:!0})})}),$.post("/:virtualMcpId/:branch/git/suggest-commit",HZ({maxSize:p_$,onError:(Z)=>Z.json({error:"Payload too large"},413,gG)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:G,projectRef:Y}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=i81(K)&&N?[K,H]:await Promise.all([Dj0(X,Q,"/_sandbox/git/status","GET",{userId:G,projectRef:Y}),Dj0(X,Q,"/_sandbox/git/diff","GET",{userId:G,projectRef:Y})]),w=await y_$(J,F,U);return Z.json(w,200,gG)}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,gG);return Z.json({error:K},502,gG)}}),$.post("/:virtualMcpId/:branch/git/judge-review",HZ({maxSize:p_$,onError:(Z)=>Z.json({error:"Payload too large"},413,gG)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q,userId:G,projectRef:Y}=Z.get("vmClaim"),J=Z.var.studioContext;try{let W=await Z.req.json().catch(()=>({})),K=W.status,H=W.diff,N=H!=null&&typeof H.diffs==="object"&&H.diffs!==null,[F,U]=i81(K)&&N?[K,H]:await Promise.all([Dj0(X,Q,"/_sandbox/git/status","GET",{userId:G,projectRef:Y}),Dj0(X,Q,"/_sandbox/git/diff","GET",{userId:G,projectRef:Y})]),w=await h_$(J,F,U,typeof W.language==="string"?W.language:void 0);return Z.json(w,200,gG)}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,gG);return Z.json({error:K},502,gG)}}),$.get("/:virtualMcpId/:branch/preview-fetch",async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),G=Z.req.query("path");if(!G||!G.startsWith("/")||G.startsWith("//")||G.includes("..")||G.includes("\\"))return Z.json({error:"Path not allowed"},403);let 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 J=Y.replace(/\/+$/,""),W=r81(`${J}${G}`),K;try{K=await fetch(W?.url??`${J}${G}`,{...W?{headers:{host:W.hostHeader}}:{}})}catch{return Z.json({error:"Preview unreachable"},502)}let H;try{H=await K.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(H,{status:K.status,headers:{"content-type":K.headers.get("content-type")??"application/json"}})}),$.post("/:virtualMcpId/:branch/preview-invoke",HZ({maxSize:q86,onError:(Z)=>Z.json({error:"Payload too large"},413)}),async(Z)=>{let X=lC(Z);if(X instanceof Response)return X;let{claimName:Q}=Z.get("vmClaim"),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 Y;try{Y=await Z.req.json()}catch{return Z.json({error:"Invalid JSON body"},400)}if(!Y||typeof Y!=="object"||Array.isArray(Y))return Z.json({error:"Invalid JSON body"},400);let J=c_$(Y);if(!J)return Z.json({error:"Invalid or missing __resolveType"},400);let W=l_$(G,J.resolveType),K=r81(W),H;try{H=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 N;try{N=await H.text()}catch{return Z.json({error:"Preview unreachable"},502)}return new Response(N,{status:H.status,headers:{"content-type":H.headers.get("content-type")??"application/json"}})}),$};var a_$=B(()=>{y8();lO();dg();k_$();QN();V_$();B3();yw();C_$();v_$();Id0();Si();t81();u_$();d_$();n_$();R86=/^[a-zA-Z0-9][a-zA-Z0-9/._-]*$/;k86=M_$(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 G;try{G=o(X)}catch{return $.json({error:"Organization scope required"},403)}let Y=$.req.param("virtualMcpId"),J=$.req.param("branch");if(!Y||!J)return $.json({error:"virtualMcpId and branch are required"},400);try{I86(J)}catch(w){let O=w instanceof Error?w.message:String(w);return $.json({error:O},400)}let W=await X.storage.virtualMcps.findById(Y);if(!W||W.organization_id!==G.id)return $.json({error:"Virtual MCP not found"},404);let K=rm({orgId:G.id,virtualMcpId:Y,branch:J}),H=await wN(X,J,Q),N=S_$({userId:H,projectRef:K}),F=W.metadata??null,U;try{U=(await hX(X,{userId:H,branch:J,virtualMcpMetadata:F})).provider}catch{U=null}if(!U)return $.json({error:"No sandbox runner found"},404);return $.set("vmClaim",{claimName:N,callerUserId:Q,runner:U,virtualMcpId:Y,branch:J,userId:H,projectRef:K,virtualMcpMetadata:F,connectionIds:W.connections?.map((w)=>w.connection_id)??[]}),Z()});Bj0=new Map;gG={"Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache"};o_$=["clone","install","start"]});var s_$=($)=>{let Z=new B1;if(Z.use("*",_C),Z.route("/",CE0()),Z.route("/",FS$()),Z.route("/",O_$()),Z.route("/",F_$()),Z.route("/",Fj0()),Z.route("/tools",P_$()),Z.route("/",E_$()),Z.route("/",pC$({kvStorage:$.kvStorage})),Z.route("/",iC$()),Z.route("/fs",G_$({getConnection:$.getNatsConnection})),Z.route("/sandbox",r_$()),Z.route("/",K_$()),Z.route("/deco-sites",vE0()),Z.route("/sso",RE0()),Z.route("/",Uj0({tokenStorage:$.tokenStorage,automationEventDispatcher:$.automationEventDispatcher})),Z.route("/webhooks",QS$()),$.mountDevAssets)Z.route("/dev-assets",bE0({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("/",sq$()),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",J_$()),Z.route("/mcp",pw0()),Z.route("/mcp/self",Nj0()),Z.route("/mcp",rw0()),Z.all("/oauth-proxy/:connectionId/*",$.oauthProxyHandler),Z.get("/watch",$.watchHandler),Z};var e_$=B(()=>{y8();K$1();GS$();w$1();fE0();Yo();J$1();nC$();tC$();Y_$();Ln();a11();aw0();b81();W_$();H_$();U_$();B_$();j_$();x81();A_$();y81();tw0();a_$()});function _86($){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 v86($,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(C86)});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 C86=1e4,b86=async($,Z)=>{if(!$.get("studioContext").auth.user?.id)return $.json({error:"Unauthorized"},401);return Z()},$v$=()=>{let $=new B1;return $.use("*",b86),$.get("/",async(Z)=>{let X=c0(),Q=X.decoSupabaseUrl,G=X.decoSupabaseServiceKey;if(!Q||!G)return Z.json({apps:[]});try{let Y=await v86(Q,G);return Z.json({apps:_86(Y)})}catch(Y){return console.error("[deco-apps] GET error:",Y),Z.json({error:"Failed to fetch apps"},502)}}),$};var Zv$=B(()=>{y8();S$()});import{z as M1}from"zod";function gK($,Z="invalid_request_error",X=null,Q=null){return{error:{message:$,type:Z,param:X,code:Q}}}function m86($){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 i86($,Z,X){try{return JSON.parse($)}catch{throw new Gv$(`Invalid JSON in tool call arguments for function '${X}' (tool_call_id: ${Z}): ${$}`)}}function n86($){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((G)=>{if(G.type==="text")return{type:"text",text:G.text};return{type:"image",image:G.image_url.url}})};case"assistant":if(X.tool_calls&&X.tool_calls.length>0)return{role:"assistant",content:X.tool_calls.map((G)=>({type:"tool-call",toolCallId:G.id,toolName:G.function.name,input:i86(G.function.arguments,G.id,G.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 p86($){let Z=$.map((X)=>{let Q=X.function.parameters?EG(X.function.parameters):EG({type:"object",properties:{}});return[X.function.name,_$({description:X.function.description,inputSchema:Q})]});return Object.fromEntries(Z)}function t86($){if(!$)return;return{openai:{response_format:$}}}function o86(){return`chatcmpl-${crypto.randomUUID().replace(/-/g,"").substring(0,29)}`}function Xv$($,Z,X,Q,G,Y){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:Y};return G?{...J,providerOptions:G}:J}function Qv$($){if($==="tool-calls")return"tool_calls";if($==="length")return"length";return"stop"}var f86=256,x86,y86,g86,h86,u86,c86,l86,d86,Gv$,Yv$,Jv$;var Wv$=B(()=>{k4();y8();dg();fN();x86=M1.object({type:M1.literal("function"),function:M1.object({name:M1.string(),description:M1.string().optional(),parameters:M1.record(M1.string(),M1.unknown()).optional()})}),y86=M1.object({id:M1.string(),type:M1.literal("function"),function:M1.object({name:M1.string(),arguments:M1.string()})}),g86=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(y86).optional()}),M1.object({role:M1.literal("tool"),content:M1.string(),tool_call_id:M1.string()})]),h86=M1.object({type:M1.literal("text")}),u86=M1.object({type:M1.literal("json_object")}),c86=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()})}),l86=M1.union([h86,u86,c86]),d86=M1.object({model:M1.string().describe("Format: 'model_id' or 'credential_id:model_id'"),messages:M1.array(g86),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(x86).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:l86.optional(),user:M1.string().optional()});Gv$=class Gv$ extends Error{constructor($){super($);this.name="MessageConversionError"}};Yv$=new B1;Yv$.post("/:org/v1/chat/completions",async($)=>{let Z=$.get("studioContext"),X=$.req.param("org");try{if(!Z.auth.apiKey?.id)return $.json(gK("API key authentication required. Provide a valid API key via Authorization header.","authentication_error"),401);if(!Z.organization)return $.json(gK("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(gK("Organization mismatch. The API key's organization does not match the requested organization.","invalid_request_error","organization"),403);let Q=await $.req.json(),G=d86.safeParse(Q);if(!G.success){let L=G.error.issues[0]??{message:"Invalid request",path:[]};return $.json(gK(`Invalid request: ${L.message}`,"invalid_request_error",L.path.length>0?L.path.join("."):null),400)}let Y=G.data,J=m86(Y.model);if(!J)return $.json(gK("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((j)=>ZD(j.providerId));if(!E)return $.json(gK("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 H;try{H=await Z.aiProviders.activate(W,Z.organization.id)}catch{return $.json(gK(`AI provider credential not found or inaccessible: ${W}`,"invalid_request_error","model"),404)}let N=H.aiSdk.languageModel(K),F=n86(Y.messages),U=Y.tools?p86(Y.tools):void 0,w=t86(Y.response_format),O=o86(),D=Math.floor(Date.now()/1000);if(Y.stream)return XF($,async(L)=>{let E=Xv$(N,F,U,Y,w,$.req.raw.signal);try{let j=Pw(E),z=!1,A=0,P="",M=async()=>{if(P.length===0)return;let k=P;P="",await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{content:k},finish_reason:null}]})})};for await(let k of j.fullStream){if(!z&&(k.type==="text-delta"||k.type==="tool-call"))await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}),z=!0;if(k.type==="text-delta"){if(P+=k.text,P.length>=f86)await M()}else if(k.type==="tool-call"){await M();let q=A++;await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{tool_calls:[{index:q,id:k.toolCallId,type:"function",function:{name:k.toolName,arguments:JSON.stringify(k.input)}}]},finish_reason:null}]})})}else if(k.type==="finish")await M(),await L.writeSSE({data:JSON.stringify({id:O,object:"chat.completion.chunk",created:D,model:Y.model,choices:[{index:0,delta:{},finish_reason:Qv$(k.finishReason)}],usage:k.totalUsage?{prompt_tokens:k.totalUsage.inputTokens??0,completion_tokens:k.totalUsage.outputTokens??0,total_tokens:k.totalUsage.totalTokens??0}:void 0})})}await M(),await L.writeSSE({data:"[DONE]"})}catch(j){let z=j;console.error("[openai-compat:stream] Error:",z.message),await L.writeSSE({data:JSON.stringify({error:{message:z.message,type:"server_error"}})})}});else{let L=Xv$(N,F,U,Y,w,$.req.raw.signal),E=await jw(L),j={role:"assistant",content:E.text||null};if(E.toolCalls&&E.toolCalls.length>0)j.tool_calls=E.toolCalls.map((z)=>({id:z.toolCallId,type:"function",function:{name:z.toolName,arguments:JSON.stringify("input"in z?z.input:{})}})),j.content=null;return $.json({id:O,object:"chat.completion",created:D,model:Y.model,choices:[{index:0,message:j,finish_reason:Qv$(E.finishReason)}],usage:{prompt_tokens:E.usage?.inputTokens??0,completion_tokens:E.usage?.outputTokens??0,total_tokens:E.usage?.totalTokens??0}})}}catch(Q){let G=Q;if(G.name==="AbortError")return $.json(gK("Request aborted","invalid_request_error"),400);if(G.name==="MessageConversionError")return $.json(gK(G.message,"invalid_request_error","messages"),400);return console.error("[openai-compat] Error:",G.message,G.stack),$.json(gK(G.message,"server_error"),500)}});Jv$=Yv$});var Hv$;var Kv$=B(()=>{Hv$={name:"decocms",version:"4.198.1",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 s86(){let $=process.env.POSTHOG_KEY;if(!$)return null;return{key:$,host:process.env.POSTHOG_HOST??a86}}var Nv$,a86="https://ph.studio.decocms.com",Fv$;var Uv$=B(()=>{y8();vx0();IV();jZ();S$();n11();Kv$();Nv$=new B1;Nv$.get("/",($)=>{let Z={version:Hv$.version,theme:rh1(),...iD().logo&&{logo:iD().logo},...KK()&&{internalUrl:Rq1()},...c0().enableDecoImport&&{enableDecoImport:!0},brandExtractEnabled:!!c0().firecrawlApiKey,auth:Ek$(),posthog:s86(),googleMapsApiKey:process.env.GOOGLE_MAPS_API_KEY?.trim()||null,runtime:{agentSandbox:!KK()&&c0().sandboxProviderKind==="agent-sandbox"}};return $.header("Cache-Control","no-store"),$.json({success:!0,config:Z})});Fv$=Nv$});function ig($){let Z=($??"").trim().toLowerCase();return Z=Z.replace(/^https?:\/\//,""),Z=Z.replace(/^www\./,""),Z=Z.split(/[/?#]/)[0]??"",Z.replace(/\/+$/,"")}function s81($){return(ig($).split(".")[0]||$).replace(/[-_]/g," ").split(" ").filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")}function Ov$($,Z=64){return`https://www.google.com/s2/favicons?domain=${encodeURIComponent(ig($))}&sz=${Z}`}function wv$($,Z){let X=$.trim();if(X.length<=Z)return X;let Q=X.slice(0,Z-1),G=Q.lastIndexOf(" ");return`${(G>Z*0.6?Q.slice(0,G):Q).trimEnd()}\u2026`}function Bv$($){let{brand:Z,domain:X,score:Q,verdict:G}=$,Y=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=G?.trim()?wv$(`${G.trim().replace(/\s+/g," ")} \u2014 ${J}`,200):wv$(`How does ${X} really perform? ${J}`,200);return{title:Y,description:W}}import{z as l0}from"zod";var dC,e86,$46,Z46,X46,Dv$;var Lv$=B(()=>{dC=l0.enum(["good","bad","neutral"]),e86=l0.preprocess(($)=>{if(Array.isArray($))return{kind:"text",value:$.find((X)=>X!==null&&typeof X!=="object")??""};return $!==null&&typeof $==="object"?$:{kind:"text",value:$}},l0.object({kind:l0.enum(["text","number","sparkline","badge","score"]).catch("text"),value:l0.coerce.string().optional(),tone:dC.optional(),muted:l0.boolean().optional(),delta:l0.coerce.string().optional(),deltaDir:l0.enum(["up","down","neutral"]).optional(),points:l0.array(l0.coerce.number()).optional(),label:l0.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 $})),$46=l0.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},l0.array(e86)),Z46={key:l0.coerce.string(),title:l0.coerce.string(),eyebrow:l0.coerce.string().optional(),headline:l0.coerce.string(),annotation:l0.coerce.string().optional(),methodology:l0.coerce.string().optional(),sources:l0.array(l0.object({name:l0.coerce.string(),logoUrl:l0.coerce.string()})).optional()},X46=l0.discriminatedUnion("template",[l0.object({template:l0.literal("cover"),score:l0.object({value:l0.coerce.number(),max:l0.coerce.number().optional(),grade:l0.coerce.string().optional(),label:l0.coerce.string().optional()}).optional(),brandImage:l0.coerce.string().optional(),screenshot:l0.coerce.string().optional(),mobileScreenshot:l0.coerce.string().optional()}),l0.object({template:l0.literal("cta"),ctaUrl:l0.coerce.string().optional(),ctaLabel:l0.coerce.string().optional(),bullets:l0.array(l0.coerce.string()).optional()}),l0.object({template:l0.literal("series"),points:l0.array(l0.coerce.number()).min(2),xLabels:l0.array(l0.coerce.string()).min(1),unit:l0.coerce.string().optional(),callout:l0.object({index:l0.coerce.number(),value:l0.coerce.string(),tone:dC.optional()})}),l0.object({template:l0.literal("threshold"),value:l0.coerce.string().default(""),metricLabel:l0.coerce.string().optional(),ratio:l0.coerce.number(),thresholdRatio:l0.coerce.number().optional(),thresholdLabel:l0.coerce.string().default(""),tone:dC.optional()}),l0.object({template:l0.literal("stats"),stats:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),tone:dC.optional()})).min(1)}),l0.object({template:l0.literal("bars"),items:l0.array(l0.object({value:l0.coerce.string(),label:l0.coerce.string(),ratio:l0.coerce.number(),tone:dC.optional()})).min(1)}),l0.object({template:l0.literal("gauges"),gauges:l0.array(l0.object({label:l0.coerce.string(),value:l0.coerce.string(),status:l0.enum(["good","warn","bad"]).catch("warn"),caption:l0.coerce.string().optional(),ratio:l0.coerce.number().optional()})).min(1)}),l0.object({template:l0.literal("checklist"),checks:l0.array(l0.object({label:l0.coerce.string(),status:l0.enum(["pass","fail","warn"]).catch("fail"),value:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("table"),columns:l0.array(l0.object({label:l0.coerce.string(),align:l0.enum(["left","right"]).optional()})).min(1),rows:l0.array($46).min(1),highlightRow:l0.coerce.number().optional()}),l0.object({template:l0.literal("products"),products:l0.array(l0.object({name:l0.coerce.string(),price:l0.coerce.string().optional(),image:l0.coerce.string().optional(),url:l0.coerce.string().optional()})).min(1)}),l0.object({template:l0.literal("list"),entries:l0.array(l0.object({label:l0.coerce.string(),severity:l0.enum(["error","warning","notice"]).catch("notice")})).min(1),moreCount:l0.coerce.number().optional()}),l0.object({template:l0.literal("keywords"),volumeLabel:l0.coerce.string().optional(),keywords:l0.array(l0.object({term:l0.coerce.string(),volume:l0.coerce.string(),position:l0.coerce.number().catch(0)})).min(1)}),l0.object({template:l0.literal("competitor"),metricLabel:l0.coerce.string().optional(),competitors:l0.array(l0.object({name:l0.coerce.string(),value:l0.coerce.string(),tone:dC.optional(),isYou:l0.boolean().optional()})).min(1)}),l0.object({template:l0.literal("scorecard"),rivalLabel:l0.coerce.string().optional(),dimensions:l0.array(l0.object({label:l0.coerce.string(),you:l0.coerce.string(),rival:l0.coerce.string().optional(),rivalName:l0.coerce.string().optional(),tone:dC.optional()})).min(1)})]),Dv$=l0.object({...Z46,template:X46})});function Lj0($){let Z=[],X=[...$.sections].sort((G,Y)=>G.position-Y.position).map((G)=>{let Y=Dv$.safeParse(G.props);if(Y.success)return Y.data;let J=Y.error.issues[0];return Z.push({section_type:G.section_type,position:G.position,reason:J?`${J.path.join(".")||"(root)"}: ${J.message}`:"contract violation"}),null}).filter((G)=>G!==null),Q=X.filter((G)=>G.template.template!=="cover"&&G.template.template!=="cta").map((G)=>({key:G.key,title:G.title}));return{deck:{meta:{...$.meta,scores:$.summary?.scores,scannedAt:$.scanned_at,toc:Q},slides:X},drops:Z}}var e81=B(()=>{Lv$()});import{join as Ev$}from"path";async function G46($){try{let Z=await fetch(`${_W({})}/api/v2/public/diagnostics/${encodeURIComponent($)}`,{headers:{Accept:"application/json"},signal:AbortSignal.timeout(Q46)});if(!Z.ok)return null;let X=await Z.json(),{deck:Q}=Lj0(X);if(!Q.slides.length)return null;let G=Q.slides.find((W)=>W.template.template==="cover"),Y=G?.template,J=Y&&Y.template==="cover"?Y:void 0;return{brand:Q.meta.brand?.trim()||s81($),score:Q.meta.scores?.cover??J?.score?.value,verdict:G?.annotation?.trim()||G?.headline?.trim()||void 0}}catch{return null}}function hG($){return $.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function Y46($,Z){let X=ig($),Q=Z?.brand?.trim()||s81(X),G=Ov$(X,128),J=`${(c0().baseUrl??"https://studio.decocms.com").replace(/\/+$/,"")}/report/${encodeURIComponent(X)}`,{title:W,description:K}=Bv$({brand:Q,domain:X,score:Z?.score,verdict:Z?.verdict}),H=`${J}/og.png`,N=`${Q} commerce report by decocms`;return[`<title>${hG(W)}</title>`,`<meta name="description" content="${hG(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="${hG(W)}" />`,`<meta property="og:description" content="${hG(K)}" />`,`<meta property="og:url" content="${hG(J)}" />`,`<meta property="og:image" content="${hG(H)}" />`,'<meta property="og:image:width" content="1200" />','<meta property="og:image:height" content="630" />',`<meta property="og:image:alt" content="${hG(N)}" />`,'<meta name="twitter:card" content="summary_large_image" />',`<meta name="twitter:title" content="${hG(W)}" />`,`<meta name="twitter:description" content="${hG(K)}" />`,`<meta name="twitter:image" content="${hG(H)}" />`,`<meta name="twitter:image:alt" content="${hG(N)}" />`,`<link rel="canonical" href="${hG(J)}" />`,`<link rel="icon" href="${hG(G)}" sizes="any" />`].join(`
2730
2730
  `)}function J46($,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 jv$($){let Z=new B1;return Z.get("/:domain/og.png",async(X)=>{let Q=ig(X.req.param("domain")),G=async()=>{let Y=$?Bun.file(Ev$($,"report-og-fallback.png")):null;if(!Y||!await Y.exists())return X.notFound();return X.body(new Uint8Array(await Y.arrayBuffer()),200,{"Content-Type":"image/png","Cache-Control":"public, max-age=0, s-maxage=3600"})};try{let Y=await fetch(`${_W({})}/api/v2/public/diagnostics/${encodeURIComponent(Q)}/og.png`,{signal:AbortSignal.timeout(W46)}),J=Y.headers.get("content-type")??"";if(!Y.ok||!J.startsWith("image/")||!Y.body)return G();return X.body(Y.body,200,{"Content-Type":J,"Cache-Control":"public, max-age=0, s-maxage=604800"})}catch{return G()}}),Z.get("/:domain",async(X)=>{let Q=X.req.param("domain"),G=$?Ev$($,"index.html"):null,Y=G?Bun.file(G):null;if(!Y||!await Y.exists())return X.notFound();let J=await Y.text();try{let W=await G46(ig(Q)),K=Y46(Q,W);return X.html(J46(J,K),200,{"Cache-Control":"public, max-age=0, s-maxage=300"})}catch{return X.html(J)}}),Z}var Q46=2500,W46=1e4;var zv$=B(()=>{y8();e81();YL();S$()});function _o($,Z){return fetch(`${_W({})}${$}`,Z)}async function K46($,Z,X){let Q=new URLSearchParams;if(Z)Q.set("pw",Z);if(X)Q.set("lang",X);let G=Q.toString()?`?${Q.toString()}`:"",Y=await _o(`/api/v2/public/diagnostics/${encodeURIComponent($)}${G}`,{headers:{Accept:"application/json"}});if(Y.status===404)return{status:"not_found",deck:null,scanned_at:null,drops:[]};if(!Y.ok)throw Error(`report read HTTP ${Y.status}`);let J=await Y.json(),{deck:W,drops:K}=Lj0(J);return{status:W.slides.length?"ready":"empty",deck:W,scanned_at:J.scanned_at,drops:K}}var H46,c3,Ej0=async($,Z)=>{if(!$.get("reportUser"))return $.json({error:"Authentication required"},401);await Z();return},Pv$;var Av$=B(()=>{y8();PY();YL();e81();H46=new Set(["complete","errored","terminated","unknown"]),c3=new B1;c3.use("*",async($,Z)=>{let X=await j8.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});c3.use("/run",Ej0);c3.use("/status",Ej0);c3.use("/link-token/*",Ej0);c3.use("/suggest",Ej0);c3.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,G=$.req.query("lang")?.trim()||void 0;try{let Y=await K46(Z,Q,G);if($.header("Cache-Control","private, no-store"),X||!Y.deck)return $.json(Y);return $.json({...Y,deck:{...Y.deck,slides:Y.deck.slides.slice(0,1)},truncated:Y.status==="ready"})}catch{return $.json({error:"report read failed"},502)}});c3.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 G=Z.email,Y=typeof X.distinctId==="string"&&X.distinctId.trim()&&X.distinctId.length<=200?X.distinctId.trim():void 0;try{let J=await _o("/api/v2/diagnostics/run",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${GL({})}`},body:JSON.stringify({url:Q,email:G,distinct_id:Y})});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)}});c3.get("/status",async($)=>{let Z=$.req.query("id");if(!Z)return $.json({error:"id is required"},400);try{let X=await _o(`/api/v2/diagnostics/status?id=${encodeURIComponent(Z)}`,{headers:{Authorization:`Bearer ${GL({})}`}});if(!X.ok)return $.json({error:`status HTTP ${X.status}`},502);let G=(await X.json()).status??"unknown",Y={done:H46.has(G),status:G};return $.json(Y)}catch{return $.json({error:"status failed"},502)}});c3.get("/link-token/:id",async($)=>{let Z=$.req.param("id");try{let X=await _o(`/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)}});c3.get("/suggest",async($)=>{let Z=($.req.query("q")??"").trim().slice(0,64);if(Z.length<2)return $.json({suggestions:[]});try{let X=await _o(`/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:[]})}});Pv$=c3});import{createHmac as N46,timingSafeEqual as F46}from"crypto";function Rv$($,Z,X,Q=Date.now()){if(!Z||!X)return!1;let G,Y=[];for(let H of Z.split(",")){let N=H.indexOf("=");if(N<=0)continue;let F=H.slice(0,N).trim(),U=H.slice(N+1).trim();if(F==="t")G=U;else if(F==="v1")Y.push(U)}if(!G||Y.length===0)return!1;let J=Number(G);if(!Number.isFinite(J)||Math.abs(Q/1000-J)>U46)return!1;let W=N46("sha256",X).update(`${G}.${$}`).digest("hex"),K=Buffer.from(W,"hex");return Y.some((H)=>{let N=Buffer.from(H,"hex");return K.length===N.length&&F46(K,N)})}function Iv$($){let Z;try{Z=JSON.parse($)}catch{return null}let X=eY(Z),Q=eY(eY(X?.data)?.object);if(!X||typeof X.type!=="string"||!Q)return null;return{id:hK(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 qv$($){switch($){case"active":case"trialing":return"active";case"past_due":return"past_due";default:return"canceled"}}function hK($){return typeof $==="string"?$:void 0}function eY($){return typeof $==="object"&&$!==null?$:void 0}function jj0($){return typeof $==="number"?new Date($*1000):null}function X41($){return hK($)??hK(eY($)?.id)}function w46($){return X41($.subscription)??hK(eY(eY($.parent)?.subscription_details)?.subscription)}function O46($){let Z=jj0($.current_period_end);if(Z)return Z;let X=eY($.items)?.data;if(!Array.isArray(X))return null;let Q=0;for(let G of X){let Y=eY(G)?.current_period_end;if(typeof Y==="number"&&Y>Q)Q=Y}return Q>0?new Date(Q*1000):null}function $41($,Z){let X=jj0($.created);return!!X&&!!Z.lastStripeEventAt&&X<Z.lastStripeEventAt}function Z41($,Z){let X=jj0($.created);if(!X)return;return Z.lastStripeEventAt&&Z.lastStripeEventAt>X?void 0:X}async function B46($,Z){let X=Z.data.object;switch(Z.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":{let Q=hK(eY(X.metadata)?.orgId);if(!Q)return{handled:!1,reason:"no orgId"};if(hK(eY(X.metadata)?.kind)==="topup"){if(X.mode!=="payment")return{handled:!1,reason:"topup with wrong mode"};if(hK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let J=hK(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(eY(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:eY(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(hK(X.payment_status)!=="paid")return{handled:!1,reason:"payment not confirmed"};let G=await $.getBilling(Q);if(!G)return{handled:!1,reason:"unknown org"};let Y=X41(X.subscription);if(G.stripeSubscriptionId&&Y&&G.stripeSubscriptionId!==Y)return console.error("stripe webhook: refused checkout rebind",{organizationId:Q,eventId:Z.id}),{handled:!1,reason:"org already bound to another subscription",orphanSubscriptionId:Y};if($41(Z,G))return{handled:!1,reason:"stale event"};return await $.updateStripeState(Q,{stripeCustomerId:X41(X.customer),stripeSubscriptionId:Y,status:"active",lastStripeEventAt:Z41(Z,G)}),{handled:!0,organizationId:Q}}case"customer.subscription.updated":case"customer.subscription.deleted":{let Q=hK(X.id);if(!Q)return{handled:!1,reason:"no sub id"};let G=await $.getBillingByStripeSubscriptionId(Q);if(!G)return{handled:!1,reason:"unknown subscription"};let Y=Z.type==="customer.subscription.deleted";if(!Y&&$41(Z,G))return{handled:!1,reason:"stale event"};let J=Y?"canceled":qv$(X.status);return await $.updateStripeState(G.organizationId,{status:J,currentPeriodEnd:O46(X),...Y&&{stripeSubscriptionId:null},lastStripeEventAt:Z41(Z,G)}),{handled:!0,organizationId:G.organizationId}}case"invoice.paid":{let Q=w46(X);if(!Q)return{handled:!1,reason:"no sub id"};let G=await $.getBillingByStripeSubscriptionId(Q);if(!G)return{handled:!1,reason:"unknown subscription"};if($41(Z,G))return{handled:!1,reason:"stale event"};return await $.updateStripeState(G.organizationId,{status:"active",currentPeriodEnd:jj0(X.period_end),lastStripeEventAt:Z41(Z,G)}),{handled:!0,organizationId:G.organizationId}}default:return{handled:!1,reason:`unhandled event ${Z.type}`}}}function D46($,Z){if(!Z.handled||$.livemode===!1)return null;let X=$.data.object;if(Z.topUp)return{name:"credits_topup_succeeded",organizationId:Z.organizationId,properties:{credit_cents:Z.topUp.creditCents}};switch($.type){case"checkout.session.completed":case"checkout.session.async_payment_succeeded":return{name:"subscription_started",organizationId:Z.organizationId,properties:{}};case"customer.subscription.deleted":return{name:"subscription_canceled",organizationId:Z.organizationId,properties:{}};case"customer.subscription.updated":return{name:"subscription_updated",organizationId:Z.organizationId,properties:{status:qv$(X.status),...typeof X.cancel_at_period_end==="boolean"?{cancel_at_period_end:X.cancel_at_period_end}:{}}};case"invoice.paid":if(X.billing_reason==="subscription_create")return null;return{name:"subscription_renewed",organizationId:Z.organizationId,properties:{}};default:return null}}function Tv$($,Z){let X=D46($,Z);if(!X)return;hH({event:X.name,organizationId:X.organizationId,...$.id?{uuid:Gl1(`stripe:${$.id}:${X.name}`)}:{},...$.created?{timestamp:new Date($.created*1000)}:{},properties:X.properties})}async function Mv$($){let Z=new kW(m8().db),X=await B46(Z,$);if(!(X.handled&&X.topUp))Tv$($,X);if(X.handled&&X.topUp)await QF$({organizationId:X.organizationId,amountCents:X.topUp.creditCents,referenceId:X.topUp.referenceId}),Tv$($,X);if(!X.handled&&X.orphanSubscriptionId)try{await Lt1(X.orphanSubscriptionId),console.error("stripe webhook: canceled orphan subscription",{subscriptionId:X.orphanSubscriptionId,eventId:$.id})}catch(Q){if(!(Q instanceof eJ&&(Q.status===400||Q.status===404)))throw Q}return X}var U46=300;var kv$=B(()=>{wY();h4();qm();co0()});var L46=1048576,Q41;var Sv$=B(()=>{y8();lO();S$();kv$();Q41=new B1;Q41.post("/webhook",HZ({maxSize:L46,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=c0().stripeWebhookSecret;if(!Z)return $.json({error:"stripe billing not configured"},503);let X=await $.req.text();if(!Rv$(X,$.req.header("stripe-signature"),Z))return $.json({error:"invalid signature"},400);let G=Iv$(X);if(!G)return $.json({error:"invalid payload"},400);let Y=await Mv$(G);return console.log("stripe webhook",{eventId:G.id,type:G.type,livemode:G.livemode,...Y}),$.json({received:!0})})});import{timingSafeEqual as E46}from"crypto";function z46($,Z,X){if(!Z?.startsWith("sha256="))return!1;let Q=new Bun.CryptoHasher("sha256",X).update($).digest("hex"),G=Z.slice(7);if(G.length!==Q.length)return!1;return E46(Buffer.from(G),Buffer.from(Q))}var j46=5242880,G41;var Vv$=B(()=>{y8();lO();qi();G41=new B1;G41.post("/webhook",HZ({maxSize:j46,onError:($)=>$.json({error:"payload too large"},413)}),async($)=>{let Z=process.env.GITHUB_WEBHOOK_SECRET;if(!Z)return $.json({error:"github webhook not configured"},503);let X=await $.req.text();if(!z46(X,$.req.header("x-hub-signature-256"),Z))return $.json({error:"invalid signature"},400);if($.req.header("x-github-event")!=="push")return $.json({ok:!0,ignored:"event"});let Q;try{Q=JSON.parse(X)}catch{return $.json({error:"invalid payload"},400)}let G=Q.ref,Y=Q.repository?.full_name;if(!G||!Y)return $.json({ok:!0,ignored:"shape"});let W=(await jd0())?.markTenantPoolsDirty(Y,G)??[];return $.json({ok:!0,pools:W})})});function Cv$($,Z){if(Z.startsWith("text/html")||Z.startsWith("image/svg"))$.set("Content-Security-Policy","sandbox allow-scripts allow-modals allow-same-origin")}var _v$,P46,A46,vv$;var bv$=B(()=>{y8();dJ();Ix();kf();_v$=new B1,P46=["range","if-none-match","if-modified-since"],A46=["content-type","content-length","content-range","accept-ranges","etag","last-modified"];_v$.get("/:org/files/*",async($)=>{let Z=$.get("studioContext"),X=Z.organization?.id;if(!Z.auth?.user?.id){if(Rg($))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 G=await Xn(Q,Z);if(!G)throw new Q$(503,{message:"Object storage not configured"});if(G.startsWith("data:")&&tJ()){let K=G.match(/^data:([^;]+);base64,(.+)$/s);if(!K)throw new Q$(500,{message:"Invalid data URL from storage"});let[,H,N]=K,F=Buffer.from(N,"base64"),U=new Headers({"Content-Type":H,"Cache-Control":"private, max-age=86400"});return Cv$(U,H),new Response(F,{status:200,headers:U})}let Y=new Headers;for(let K of P46){let H=$.req.header(K);if(H)Y.set(K,H)}let J=await fetch(G,{headers:Y});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 A46){let H=J.headers.get(K);if(H)W.set(K,H)}return W.set("Cache-Control","private, max-age=86400"),Cv$(W,W.get("content-type")??""),new Response(J.body,{status:J.status,headers:W})});vv$=_v$});var vo=C((mC)=>{var T46=mC&&mC.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var G=Object.getOwnPropertyDescriptor(Z,X);if(!G||("get"in G?!Z.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,G)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),R46=mC&&mC.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))T46(Z,$,X)};Object.defineProperty(mC,"__esModule",{value:!0});R46(aQ(),mC)});var yv$=C((fv$)=>{Object.defineProperty(fv$,"__esModule",{value:!0});fv$.version=void 0;fv$.version="3.4.0"});var uv$=C((uK)=>{var I46=uK&&uK.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(uK,"__esModule",{value:!0});uK.NodeTransport=uK.VERSION=void 0;uK.nodeResolveHost=C46;var d6=vo(),q46=z0("net"),Y41=z0("tls"),M46=z0("path"),gv$=z0("fs"),k46=I46(z0("dns")),S46=yv$();uK.VERSION=S46.version;var V46="nats.js";class hv${socket;version;lang;yields=[];signal=(0,d6.deferred)();closedNotification=(0,d6.deferred)();options;connected=!1;tlsName="";done=!1;closeError;constructor(){this.lang=V46,this.version=uK.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 G=await this.peekInfo();(0,d6.checkOptions)(G,Z);let{tls_required:Y,tls_available:J}=G,W=J===!0&&Z.tls!==null;if(!Q&&(Y||W))this.socket=await this.startTLS();if(this.done)this.socket?.destroy();if(Y&&this.socket.encrypted!==!0)throw d6.errors.InvalidArgumentError.format("tls","is not available on this server");return this.connected=!0,this.setupHandlers(),this.signal.resolve(),Promise.resolve()}catch(G){let Y=G;if(!Y)Y=new d6.errors.ConnectionError("error connecting - node provided an undefined error");let{code:J}=Y,W=J==="ECONNREFUSED"?new d6.errors.ConnectionError("connection refused",{cause:Y}):Y;throw this.socket?.destroy(),W}}dial($){let Z=(0,d6.deferred)(),X,Q=(0,q46.createConnection)($.port,$.hostname,()=>{Z.resolve(Q),Q.removeAllListeners()});return Q.on("error",(G)=>{X=G}),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,d6.deferred)(),Z;return this.socket.on("data",(X)=>{this.yields.push(X);let Q=d6.DataBuffer.concat(...this.yields),G=(0,d6.extractProtocolMessage)(Q);if(G!=="")try{let Y=d6.INFO.exec(G);if(!Y)throw Error("unexpected response from server");let J=JSON.parse(Y[1]);$.resolve(J)}catch(Y){$.reject(Y)}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,d6.deferred)();try{if($=(0,M46.resolve)($),!(0,gv$.existsSync)($))Z.reject(Error(`${$} doesn't exist`));(0,gv$.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:G,keyFile:Y,key:J}=this.options.tls;try{if(Z){let W=await this.loadFile(Z);if(W)$.cert=W}else if(X)$.cert=X;if(Y){let W=await this.loadFile(Y);if(W)$.key=W}else if(J)$.key=J;if(Q){let W=await this.loadFile(Q);if(W)$.ca=[W]}else if(G)$.ca=G;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 G=await this.loadClientCerts()||{};X=(0,d6.extend)(X,this.options.tls,G)}catch(G){return Promise.reject(new d6.errors.ConnectionError(G.message,{cause:G}))}let Q=(0,d6.deferred)();try{let G=(0,Y41.connect)($.port,$.hostname,X,()=>{G.removeAllListeners(),Q.resolve(G)});G.on("error",(Y)=>{Z=Y}),G.on("secureConnect",()=>{if(X.rejectUnauthorized===!1)return;if(!G.authorized)throw G.authorizationError}),G.on("close",()=>{Q.reject(Z),G.removeAllListeners()}),G.setNoDelay(!0)}catch(G){Q.reject(new d6.errors.ConnectionError(G.message,{cause:G}))}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,d6.extend)(Z,this.options.tls,Q)}catch(Q){return Promise.reject(new d6.errors.ConnectionError(Q.message,{cause:Q}))}let X=(0,d6.deferred)();try{let Q=(0,Y41.connect)(Z,()=>{Q.removeAllListeners(),X.resolve(Q)});Q.on("error",(G)=>{$=G}),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 d6.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,d6.render)($[Z])}`);yield $[Z]}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,d6.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 Y41.TLSSocket}_send($){if(this.isClosed||this.socket===void 0)return Promise.resolve();if(this.options.debug)console.info(`< ${(0,d6.render)($)}`);let Z=(0,d6.deferred)();try{this.socket.write($,(X)=>{if(X){if(this.options.debug)console.error(`!!! ${(0,d6.render)($)}: ${X}`);return Z.reject(X)}return Z.resolve()})}catch(X){if(this.options.debug)console.error(`!!! ${(0,d6.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}}uK.NodeTransport=hv$;function C46($){let Z=(0,d6.deferred)();return k46.default.lookup($,{all:!0},(X,Q)=>{if(X){Z.reject(X);return}let G=[];for(let Y of Q)G.push(Y.address);if(G.length===0)G.push($);Z.resolve(G)}),Z}});var iv$=C((mv$)=>{Object.defineProperty(mv$,"__esModule",{value:!0});mv$.connect=_46;var cv$=uv$(),lv$=vo(),dv$=vo();function _46($={}){if((0,dv$.hasWsProtocol)($))return Promise.reject(dv$.errors.InvalidArgumentError.format("servers","node client doesn't support websockets, use the 'wsconnect' function instead"));return(0,lv$.setTransportFactory)({factory:()=>{return new cv$.NodeTransport},dnsResolveFn:cv$.nodeResolveHost}),lv$.NatsConnectionImpl.connect($)}});var nv$=C((QF)=>{var b46=QF&&QF.__createBinding||(Object.create?function($,Z,X,Q){if(Q===void 0)Q=X;var G=Object.getOwnPropertyDescriptor(Z,X);if(!G||("get"in G?!Z.__esModule:G.writable||G.configurable))G={enumerable:!0,get:function(){return Z[X]}};Object.defineProperty($,Q,G)}:function($,Z,X,Q){if(Q===void 0)Q=X;$[Q]=Z[X]}),f46=QF&&QF.__exportStar||function($,Z){for(var X in $)if(X!=="default"&&!Object.prototype.hasOwnProperty.call(Z,X))b46(Z,$,X)};Object.defineProperty(QF,"__esModule",{value:!0});QF.connect=void 0;var x46=iv$();Object.defineProperty(QF,"connect",{enumerable:!0,get:function(){return x46.connect}});f46(vo(),QF)});function rv$($){let Z=$?.connectFn??u46,X=null,Q=null,G=!1,Y=!1,J=!1,W=[];function K(){return X!==null&&!X.isClosed()&&!X.isDraining()&&!J}function H(){console.log(`[NatsProvider] fireReady: ${W.length} callbacks`);for(let U of W)try{U()}catch{}}function N(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,H()})().catch(()=>{})}async function F(U,w){let O=0;while(!Y)try{X=await Z({servers:U,timeout:h46,reconnect:!0,maxReconnectAttempts:-1,...w?{authenticator:w}:{}}),console.log(`[NatsProvider] Connected to ${X.getServer()} after ${O} attempt(s)`),Q=null,J=!1,N(X),H();return}catch{O++;let D=KX(g46,y46,O-1,2,0.5);await y$(D)}}return{init(U,w){if(G)return;G=!0,Y=!1;let O=w?.creds?pv$.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=ov$.jetstream(X);return Q},onReady(U){if(W.push(U),K())try{U()}catch{}},async drain(){if(Y=!0,G=!1,Q=null,J=!1,X){let U=X;X=null,await U.drain().catch(()=>{})}}}}function u46($){return tv$.connect($)}var pv$,tv$,ov$,y46=100,g46=3000,h46=3000;var av$=B(()=>{E6();pv$=S(Lh(),1),tv$=S(nv$(),1),ov$=S(HB(),1)});function J41($,Z){return`${$}.${Z}`}class W41{cache;constructor($){this.cache=Ng({ttlMs:$?.ttlMs??c46,maxSize:$?.maxSize??l46})}async get($,Z){return this.cache.get(J41($,Z))??null}async set($,Z,X){this.cache.set(J41($,Z),X)}async invalidate($,Z){this.cache.delete(J41($,Z))}teardown(){this.cache.clear()}}var c46=600000,l46=5000;var sv$=()=>{};function zj0($,Z){return`${$}:${Z}`}function K41($){let Z=Ng({ttlMs:$?.ttlMs??d46,maxSize:$?.maxSize??m46}),X=$?.getConnection,Q=crypto.randomUUID(),G=new TextEncoder,Y=new TextDecoder,J=null;function W(K,H){let N=X?.();if(!N)return;try{N.publish(ev$,G.encode(JSON.stringify({organizationId:K,keyId:H,originId:Q})))}catch(F){console.warn("[ProviderKeyCache] Publish failed (non-critical):",F)}}return{get(K,H){return Z.get(zj0(K,H))},set(K,H,N){Z.set(zj0(K,H),N)},invalidate(K,H){Z.delete(zj0(K,H)),W(K,H)},start(){if(J)return;let K=X?.();if(!K)return;J=K.subscribe(ev$),(async()=>{for await(let H of J)try{let N=JSON.parse(Y.decode(H.data));if(N.originId===Q)continue;Z.delete(zj0(N.organizationId,N.keyId))}catch{}})().catch(console.error)},teardown(){J?.unsubscribe(),J=null,Z.clear()}}}var ev$="studio.ai-provider-keys.invalidate",d46=30000,m46=5000;var $b$=()=>{};class H41{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=Zb$.map((Q)=>Z.subscribe(Q));for(let Q of this.subscriptions)(async()=>{for await(let G of Q)try{let Y=JSON.parse(X.decode(G.data));if(Y.originId===this.originId)continue;if(Y.messageId&&this.hasSeen(Y.messageId))continue;this.onCancel?.(Y.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 Zb$)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 Zb$;var Xb$=B(()=>{Zb$=["studio.decopilot.cancel","mesh.decopilot.cancel"]});var Qb$=($)=>{let Z;return()=>Z??=$()},N41,F41;var Gb$=B(()=>{U5();N41=Qb$(()=>K8.createHistogram("decopilot.stream.encode_ms",{description:"Per-chunk JSON.stringify+encode time for decopilot stream",unit:"ms"})),F41=Qb$(()=>K8.createCounter("decopilot.stream.published_chunks",{description:"Logical decopilot stream chunks published to JetStream",unit:"{chunks}"}))});function a46(){return{name:RN,subjects:[`${Dw0}.>`],storage:l3.StorageType.File,max_age:p46,max_bytes:o46,max_msgs_per_subject:r46,discard:l3.DiscardPolicy.Old,retention:l3.RetentionPolicy.Limits,duplicate_window:t46,num_replicas:1}}class Wb${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 Yb$($){let Z=Jb$.headers();for(let[X,Q]of Object.entries($))Z.set(X,Q);return Z}function Z66($,Z){let X=0;return{publish(Q,G,Y,J){Q.publish(G,Y,J?{headers:J}:void 0).catch((W)=>{if(X++,n46().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 X66($){if(!($ instanceof Error))return!1;if($.name==="TimeoutError")return!0;return/timeout|no responders|503/i.test($.message)}class U41{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=a46(),X=await gZ(async()=>{let Q=this.options.getJetStreamManager?await this.options.getJetStreamManager():await l3.jetstreamManager($);try{await Q.streams.info(RN),await Q.streams.update(RN,Z)}catch(G){if(G instanceof Error&&G.message.includes("stream not found"))await Q.streams.add(Z);else if(G instanceof Error&&/can ?not change.*storage|storage type/i.test(G.message))await Q.streams.delete(RN),await Q.streams.add(Z);else throw G}return Q},{maxAttempts:5,minTimeout:250,maxTimeout:4000,jitter:0.5,isRetriable:X66});this.js=this.options.getJetStream(),this.jsm=X,console.log(`[Decopilot] StreamBuffer.init ${this.js?"ready":"degraded (js=null)"}`)}pump($,Z,X,Q){let G=this.js;if(!G)return console.warn(`[Decopilot] pump: JetStream client unavailable for thread ${Z}; chunks NOT published to NATS`),Promise.resolve();let Y=Z66(Z,Q),J=!1,W=()=>{if(J)return;J=!0;let H=nJ$(Z);G.publish(H.subject,H.data).catch(()=>{})};X.addEventListener("abort",W,{once:!0});let K=(H)=>{let N=performance.now(),F=ui0(H,{runId:Z}),U=performance.now()-N;if(N41().record(U),F41().add(1,{"org.id":Q??"unknown"}),$66?.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)Y.publish(G,w.subject,w.data,w.headers?Yb$(w.headers):void 0)};return(async()=>{let H=$.getReader(),N=0,F=0,U;try{while(!0){let{done:w,value:O}=await H.read();if(w)break;if(K(O),F++,++N>=64)N=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(H.releaseLock(),W(),e46)console.warn(JSON.stringify({msg:"decopilot-stream-diag",event:"pump-done",taskId:Z,publishedChunks:F,publishErrors:Y.errorCount}))}if(U!==void 0)throw U})()}async publishRawChunk($,Z,X){let Q=this.js;if(!Q)return!1;let G=performance.now(),Y=ui0(Z,{runId:$,dedup:X});if(N41().record(performance.now()-G),F41().add(1),Y.length===0)return console.warn(`[Decopilot] dropping oversized raw chunk for thread ${$} (> MAX_CHUNKED_BYTES)`),!0;for(let J of Y)await Q.publish(J.subject,J.data,{...J.headers?{headers:Yb$(J.headers)}:{},...J.msgId?{msgID:J.msgId}:{}});return!0}async publishDone($,Z,X){let Q=this.js;if(!Q)return!1;let G=iJ$({runId:$,fenceToken:Z,finalSeq:X});return await Q.publish(G.subject,G.data,{msgID:G.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 G=X?.deliverPolicy==="new"?l3.DeliverPolicy.New:l3.DeliverPolicy.All,Y=X?.closeOnDone??!1,J=XO($),W;try{W=await(await Q.consumers.get(RN,{filter_subjects:J,deliver_policy:G})).consume()}catch(D){return console.warn("[Decopilot] JetStream tail unavailable (non-critical):",D?.message??D),null}let N=Pw0({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(Lw0()).pipeThrough(Ew0()).getReader(),F=!1,U=()=>{if(F)return;F=!0;try{N.releaseLock()}catch{}},w=!1,O=()=>{if(w)return;w=!0,W.stop(),N.cancel().catch(()=>{}),U()};return Z?.addEventListener("abort",O,{once:!0}),new ReadableStream({async pull(D){for(;;){let{done:L,value:E}=await N.read();if(L){O(),D.close();return}let j=E;if(j.kind==="done"){if(Y){O(),D.close();return}continue}D.enqueue(j.chunk);return}},cancel(){O()}})}purge($){if(!this.jsm)return;this.jsm.streams.purge(RN,{filter:XO($)}).catch(()=>{})}teardown(){this.js=null,this.jsm=null}}var l3,Jb$,i46=($)=>{let Z;return()=>Z??=$()},n46,p46=86400000000000,t46=120000000000,o46=4294967296,r46=500000,s46,e46,$66;var Kb$=B(()=>{E6();ci0();Aw0();jw0();U5();Gb$();l3=S(HB(),1),Jb$=S(Lh(),1),n46=i46(()=>K8.createCounter("decopilot.stream.publish_errors",{description:"Number of JetStream publish failures for decopilot stream chunks",unit:"{errors}"}));s46=process.env.STREAM_ENCODE_TRACE==="1",e46=process.env.DECOPILOT_STREAM_TRACE==="1";$66=s46?new Wb$:null});function Pj0($,Z,X,Q){if(!Q)return!1;return $.emit(Z,FW(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 Hb$=B(()=>{L8()});class w41{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 O41{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??Q66;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??Y66,X=this.options.itemIntervalMs??G66,Q=await this.taskBoard.listItemsPendingReview(Z,this.cursor,new Date(Date.now()-X)),G=Q.at(-1);this.cursor=Q.length===Z&&G?{updatedAt:G.updatedAt,id:G.id}:null;for(let{id:Y,organizationId:J}of Q)try{if(await this.reconcileItem(Y,J))$++}catch(W){console.error(`[task-board-review-sweeper] ${Y} failed`,W)}await this.reapNeverStartedThreads(Z),$+=await this.dispatchDueRetries(Z),await this.reactToUnhandledFailures(Z)}catch(Z){console.error("[task-board-review-sweeper] sweep failed",Z)}finally{this.running=!1}return $}async reapNeverStartedThreads($){try{let Z=await this.taskBoard.failNeverStartedLinkedThreads($,new Date(Date.now()-dG$),An0);for(let X of Z)console.warn(`[task-board-review-sweeper] failed never-started thread ${X.threadId} on ${X.itemId}`)}catch(Z){console.error("[task-board-review-sweeper] reaping failed",Z)}}async reactToUnhandledFailures($){let Z=await this.taskBoard.listItemsStuckAfterFailure($,new Date(Date.now()-W66));for(let{id:X,organizationId:Q,threadId:G}of Z)try{console.warn(`[task-board-review-sweeper] reacting to an unhandled failure on ${X}`),await Fi0(this.taskBoard,G,Q)}catch(Y){console.error(`[task-board-review-sweeper] unhandled-failure reaction for ${X} failed`,Y)}}async dispatchDueRetries($){let Z=0,X=await this.taskBoard.listItemsDueForRetry($,new Date);for(let{id:Q,organizationId:G,attempts:Y}of X)try{if(!await this.taskBoard.claimDueRetry(Q,G,new Date))continue;let J=await this.taskBoard.getById(Q,G);if(!J||J.status!=="in_progress"||J.assigneeId!==o4)continue;let W=await this.contextFactory(G,J.assignedBy??J.createdBy);if(!W)continue;await IN(W,J,{runClass:"retry"}),Z++,console.warn(`[task-board-review-sweeper] re-dispatched ${Q} after a failure (attempt ${Y})`)}catch(J){console.error(`[task-board-review-sweeper] retry dispatch for ${Q} failed`,J),await this.taskBoard.scheduleRunRetry(Q,G,Y,new Date(Date.now()+J66)).catch((W)=>console.error(`[task-board-review-sweeper] re-arming ${Q} failed`,W))}return Z}async reconcileItem($,Z){let X=await this.taskBoard.getById($,Z);if(!X)return!1;if(X.status!=="in_review"||X.assigneeId!==o4)return!1;await this.taskBoard.markSwept($,Z);let Q=await this.taskBoard.listPrs($,Z);if(Q.length===0)return!1;let G=await this.contextFactory(Z,X.assignedBy??X.createdBy);if(!G)return!1;if(await o3$(G,X))return!0;let Y=await Promise.all(Q.map(async(J)=>({...J,...await jn0(G,Z,J)})));if(Y.every((J)=>J.state===null))console.warn(`[task-board-review-sweeper] ${$}: no live PR state from GitHub (${Y.length} PR(s)) \u2014 proceeding on unknown`);if(!En0(Y))return!1;return await kw0(G,X),!0}dispose(){if(this.timer)clearInterval(this.timer),this.timer=null}}var Q66=60000,G66=300000,Y66=50,J66=60000,W66=120000;var Nb$=B(()=>{qZ();Fn0();QO();bw0();e9();Tn0();xx()});import{readdir as K66,rm as Aj0}from"fs/promises";import{join as Tj0}from"path";async function Rj0($){let Z=new Date;Z.setUTCDate(Z.getUTCDate()-H66),Z.setUTCHours(0,0,0,0);let X=0;try{let Q=await iC($);for(let G of Q)if(/^\d{4}$/.test(G))X+=await Fb$($,G,Z);else if(!G.startsWith(".")){let Y=Tj0($,G),J=await iC(Y);for(let K of J){if(!/^\d{4}$/.test(K))continue;X+=await Fb$(Y,K,Z)}if((await iC(Y)).length===0)await Aj0(Y,{recursive:!0,force:!0})}}catch(Q){console.warn("monitoring retention cleanup failed:",Q)}return X}async function Fb$($,Z,X){let Q=0,G=Tj0($,Z),Y=await iC(G);for(let W of Y){if(!/^\d{2}$/.test(W))continue;let K=Tj0(G,W),H=await iC(K);for(let F of H){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=Tj0(K,F);await Aj0(w,{recursive:!0,force:!0}),Q++}}if((await iC(K)).length===0)await Aj0(K,{recursive:!0,force:!0})}if((await iC(G)).length===0)await Aj0(G,{recursive:!0,force:!0});return Q}async function iC($){try{return(await K66($)).filter((X)=>!X.startsWith("."))}catch{return[]}}var H66=30;var B41=()=>{};import{DBOS as D41,SchedulerMode as N66}from"@dbos-inc/dbos-sdk";async function U66(){let $=[GJ(),nC(),lK()],Z=0;for(let X of $)try{Z+=await Rj0(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 w66($,Z){await D41.runStep(()=>U66(),{name:"monitoringRetention"})}function wb$(){if(Ub$)return;Ub$=!0;let $=D41.registerWorkflow(w66,{name:"monitoringRetentionWorkflow"});D41.registerScheduled($,{name:"monitoringRetentionWorkflow",crontab:F66,mode:N66.ExactlyOncePerIntervalWhenActive})}var F66="23 4 * * *",Ub$=!1;var Ob$=B(()=>{pQ();B41()});function Bb$($){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 G=await _K.create();G.auth.user={id:X,role:Q.role},G.organization={id:Q.orgId,slug:Q.orgSlug,name:Q.orgName};let Y=await v11($.db,Z,Q.role);return G.boundAuth=_11({auth:G.authInstance,headers:new Headers,role:Q.role,permissions:Y,userId:X}),G.access=new cD(X,void 0,G.boundAuth,Q.role,"self"),Ag(G,{id:Q.orgId,slug:Q.orgSlug}),G}}var Db$=B(()=>{lD();Bg()});function O66(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function D66(){for(let $ of B66)$()}function Lb$($){let Z=[...L41.logs,$];L41={...L41,logs:Z.length>500?Z.slice(-500):Z},D66()}function E41(){return L66}var L41,B66,L66=!1;var j41=B(()=>{L41=O66(),B66=new Set});import{EventEmitter as E66}from"events";var z41;var Eb$=B(()=>{j41();z41=new E66;z41.on("request",($)=>{Lb$($)})});function jb$(){return async($,Z)=>{let X=Date.now(),Q=$.req.method,G=$.req.path;if(G==="/api/auth/get-session"||G.includes("favicon")){await Z();return}let Y="",J=!1;if(G.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=ng(U.params.name),O=U.params.arguments||{},D=Object.keys(O).map((E)=>ng(E)),L=D.length>0?D.slice(0,3).join(",")+(D.length>3?"\u2026":""):"";Y=`${e6.tool}${w}${e6.dim}(${L})${e6.reset}`}else if(U.method)Y=`${e6.dim}${ng(U.method)}${e6.reset}`}}catch{}}let W=ng(G);if(G.startsWith("/mcp/conn_")){let N=G.split("/")[2]??"";W=`/mcp/${e6.mcp}${ng(N.slice(0,12))}\u2026${e6.reset}`}else if(G==="/mcp")W=`${e6.mcp}/mcp${e6.reset}`;else if(G==="/mcp/registry")W=`${e6.mcp}/mcp/registry${e6.reset}`;let K=z66(Q),H=J?"\u25C0":"\u2190";if(!E41())console.log(`${e6.dim}${H}${e6.reset} ${K}${Q}${e6.reset} ${W}${Y?` ${Y}`:""}`);try{await Z()}finally{let N=Date.now()-X,F=$.res.status,U=j66(F),w=N<1000?`${N}ms`:`${(N/1000).toFixed(1)}s`,O=J?"\u25B6":"\u2192";if(!E41())console.log(`${e6.dim}${O}${e6.reset} ${K}${Q}${e6.reset} ${W}${Y?` ${Y}`:""} ${U}${F}${e6.reset} ${e6.duration}${w}${e6.reset}`);z41.emit("request",{method:Q,path:ng(G),status:F,duration:N,timestamp:new Date})}}}var e6,j66=($)=>{if($>=500)return e6.serverError;if($>=400)return e6.clientError;if($>=300)return e6.redirect;return e6.ok},z66=($)=>{return e6[$]||e6.reset},ng=($)=>{return $.replace(/\r/g,"").replace(/\n/g,"").replace(/\x1b\[[0-9;]*m/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"")};var zb$=B(()=>{j41();Eb$();e6={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 Rb$}from"crypto";import{mkdir as P66,readdir as A66,rm as Pb$,stat as Ib$}from"fs/promises";import{join as A41,relative as T66}from"path";import{z as L$}from"zod";function Mb$($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return A41(R66,Z)}function kb$($){return $.replace(/^\/+/,"").replace(/\.\./g,"")}function P41($,Z){let X=Mb$($),Q=kb$(Z);return A41(X,Q)}function I66($,Z,X,Q){let G=c0().encryptionKey||"dev-secret",Y=`${$}:${Z}:${X}:${Q}`;return Rb$("sha256",G).update(Y).digest("hex")}function Tb$($,Z,X,Q,G){let Y=Math.floor(Date.now()/1000)+Q,J=I66(Z,X,Y,G),W=new URL(`/api/dev-assets/${Z}/${kb$(X)}`,$);return W.searchParams.set("expires",Y.toString()),W.searchParams.set("signature",J),W.searchParams.set("method",G),W.toString()}function Sb$($,Z,X){let Q=`${$}:${Z.getTime()}:${X}`;return`"${Rb$("md5","etag").update(Q).digest("hex")}"`}async function Vb$($,Z,X,Q,G){try{let Y=await A66($,{withFileTypes:!0});for(let J of Y){let W=A41($,J.name),H=T66(Z,W).replace(/\\/g,"/");if(X&&!H.startsWith(X))continue;if(J.isDirectory())if(Q){let N=H+"/";if(!X||N.startsWith(X)){if(!(X?H.slice(X.length):H).includes("/"))G.commonPrefixes.add(N)}}else await Vb$(W,Z,X,Q,G);else if(J.isFile()){if(Q&&X){let N=H.slice(X.length);if(N.includes(Q)){let F=N.indexOf(Q),U=X+N.slice(0,F+1);G.commonPrefixes.add(U);continue}}try{let N=await Ib$(W);G.objects.push({key:H,size:N.size,lastModified:N.mtime.toISOString(),etag:Sb$(W,N.mtime,N.size)})}catch{}}}}catch{}}function Cb$($,Z){let Q=o($).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(G)=>{let Y=G,J=Y.prefix||"",W=Y.maxKeys??1000,K=Y.delimiter,H=Y.continuationToken,N=Mb$(Q);await P66(N,{recursive:!0});let F={objects:[],commonPrefixes:new Set};await Vb$(N,N,J,K,F),F.objects.sort((L,E)=>L.key.localeCompare(E.key));let U=0;if(H){if(U=F.objects.findIndex((L)=>L.key>H),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(G)=>{let Y=G,J=P41(Q,Y.key),W=await Ib$(J);return{contentType:B$1(Y.key),contentLength:W.size,lastModified:W.mtime.toISOString(),etag:Sb$(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(G)=>{let Y=G,J=Y.expiresIn??Ab$;return{url:Tb$(Z,Q,Y.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(G)=>{let Y=G,J=Y.expiresIn??Ab$;return{url:Tb$(Z,Q,Y.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(G)=>{let Y=G,J=P41(Q,Y.key);try{return await Pb$(J),{success:!0,key:Y.key}}catch{return{success:!1,key:Y.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(G)=>{let Y=G,J=[],W=[];return await Promise.all(Y.keys.map(async(K)=>{let H=P41(Q,K);try{await Pb$(H),J.push(K)}catch(N){W.push({key:K,message:N instanceof Error?N.message:"Unknown error"})}})),{deleted:J,errors:W}}}]}async function T41($,Z,X){let Q=Cb$(Z,X),G=new EW({name:"dev-assets-mcp",version:"1.0.0"},{capabilities:{tools:{}},jsonSchemaValidator:G5});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;G.registerTool(J.name,{description:J.description??"",inputSchema:W,outputSchema:K,annotations:J.annotations,_meta:J._meta},async(H)=>{try{let N=await J.handler(H);return{content:[{type:"text",text:JSON.stringify(N)}],structuredContent:N}}catch(N){return{content:[{type:"text",text:`Error: ${N.message}`}],isError:!0}}})}let Y=new cX({enableJsonResponse:$.headers.get("Accept")?.includes("application/json")??!1});return await G.connect(Y),hY(G,Y,$,"mcp:dev-assets")}async function _b$($,Z,X,Q){let Y=Cb$(X,Q).find((J)=>J.name===$);if(!Y)return{content:[{type:"text",text:`Tool not found: ${$}`}],isError:!0};try{let J=await Y.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 R66="./data/assets",Ab$=3600,qb$,vb$;var bb$=B(()=>{S$();cx();y8();lc();vV();TX();fE0();qb$=new B1;qb$.all("/",async($)=>{let Z=$.get("studioContext"),X=new URL($.req.url),Q=`${X.protocol}//${X.host}`;return T41($.req.raw,Z,Q)});vb$=qb$});var fb$={};N4(fb$,{mountDevRoutes:()=>q66});function q66($,Z){$.all("/mcp/:connectionId{.*_dev-assets$}",Z,async(Q)=>{let G=Q.get("studioContext"),Y=new URL(Q.req.url),J=`${Y.protocol}//${Y.host}`;return T41(Q.req.raw,G,J)}),$.all("/mcp/:connectionId{.*_dev-assets$}/call-tool/:toolName",Z,async(Q)=>{let G=Q.get("studioContext"),Y=new URL(Q.req.url),J=`${Y.protocol}//${Y.host}`,W=Q.req.param("toolName");if(!W)return Q.json({error:"Missing tool name"},400);let K=await Q.req.json(),H=await _b$(W,K,G,J);if(H.isError)return Q.json(H.content,500);return Q.json(H.content)}),$.use("/mcp/dev-assets",Z),$.route("/mcp/dev-assets",vb$);let X=new B1;X.use("*",h3({mountPath:"/api/dev-assets"})),X.route("/",bE0({orgFromPath:!1})),$.route("/api/dev-assets",X)}var xb$=B(()=>{y8();W$1();fE0();bb$()});import{sql as M66}from"kysely";import{randomUUID as yb$}from"crypto";import{z as k66}from"zod";async function V66($){let Z=new Date().toISOString(),X=yb$(),Q=y4.SELF($.organizationId),G="registry.publish_request.created",Y={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(Y),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:yb$(),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 M66`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.197.10",
3
+ "version": "4.198.1",
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 M,d as Me,F as pe,b as W,G as hl,j as s,B as $s,r as L,E as as,H as xl,x as gl,K as Ds,e as xs,p as ce,I as Bt,m as G,a as Ft,J as bl,v as jl,t as Ht,M as vl,P as yl,n as _l,R as Sl,k as Nl,U as Cl,f as kl,u as Es,O as wl,W as Ml}from"./index-DQtLFXTk.js";import{u as Ct,S as cs,a as ds,b as ue,c as de,d as ne,e as zs,f as Al,g as Rs,h as Tl,i as ls,j as Il,k as Pl,l as Ol}from"./sidebar-DQpwqVH6.js";import{u as Fs}from"./use-mobile-B-iR7fuq.js";import{C as $l,p as Zt,s as Dl,a as El,n as zl}from"./self-tool-result-C0htamES.js";import{f as Rl,b as Ls,e as Gs,g as Fl,h as Ll,a as Gl,d as Bl}from"./dialog-DlYbt7z3.js";import{f as Hl,i as Ul,D as Wl}from"./tab-id-Cub_nviB.js";import{C as Kl,W as Bs,g as Vl,u as ql,S as Yl,a as Xl}from"./use-mcp-client-DBzQk09p.js";import{i as Hs}from"./XCircle-CXK7n7LR.js";import{u as Ql,a as ms}from"./use-organization-settings-Z1d_LhJ6.js";import{C as Jl,a as Zl,O as ns,A as fs,u as en,b as tn,c as sn,d as ln}from"./use-deco-credits-14iZTzLL.js";import{S as _e}from"./skeleton-C4ladDy0.js";import{i as Us}from"./LayoutLeft-DcaHX-AX.js";import{T as Ut,a as St}from"./toolbar-CBPM3wJm.js";import{P as Ws,a as Ks,b as Vs}from"./popover-LB3jPZY1.js";import{D as nn,a as on,b as rn}from"./drawer-Cgi7pz9a.js";import{A as is}from"./avatar-CpQW9JpY.js";import{T as Wt,a as Kt,b as qs,c as Vt}from"./tooltip-oxGz82xn.js";import{a as an}from"./Copy01-B28h9bAF.js";import{n as cn,i as dn}from"./Globe01-CTIzc7FG.js";import{t as mn,i as fn,a as un,b as pn,c as hn,d as Ys,A as Lt,e as gs,s as xn,f as gn,g as bn}from"./agent-icon-CKfOJSkG.js";import{n as jn}from"./LinkExternal01-Dn83fhF5.js";import{i as bs}from"./LogOut01-eTb5Hb_a.js";import{i as vn}from"./Monitor01-CweVCjuU.js";import{n as yn,a as _n}from"./Sun-D2zYQSSr.js";import{a as qt}from"./Settings02-BVdNx8mH.js";import{i as Sn}from"./Shield01-DO64XOZV.js";import{a as Nn}from"./Users03-Cm21qo0h.js";import{u as Cn}from"./use-deployment-admin-BaKBzevn.js";import{u as kn}from"./use-is-desktop-app-BNujXJc_.js";import{a as wn}from"./ZapSquare-oPnMoZHp.js";import{I as Xs}from"./invite-member-dialog-DpEsLIsR.js";import{i as Mn}from"./FilterLines-CgznPcEi.js";import{T as An,a as Tn}from"./toggle-group-9l3gKSIn.js";import{u as In,a as Qs,b as Pn,T as On}from"./hooks-CJHxKTUE.js";import{u as Js,f as $n}from"./shell-layout-CDUa0RQi.js";import{C as Dn,a as En,b as zn,c as Rn,d as Fn,e as Ln}from"./command-5yxpzkTc.js";import{u as us}from"./studio-tools-CBZ7-w7E.js";import{u as Zs}from"./use-virtual-mcp-DxafBc8a.js";import{i as el}from"./Zap-D2FSu33p.js";import{S as tl,M as Gn}from"./shell-controls-Bsq3Cov_.js";import{n as Bn}from"./Stars02-6bvS1Npi.js";import{g as Hn,u as Un,S as Wn}from"./use-clock-tick-BHSy6RA8.js";import{a as Kn}from"./format-time-BnbuEtat.js";import{g as Vn}from"./agent-capabilities-cXfbMfjV.js";import{t as qn}from"./ChevronDown-Bjss5Vml.js";import{i as Yn}from"./ChevronRight-BGjVmut6.js";import{A as Xn,a as Qn,b as Jn,c as Zn,d as ei,e as ti,f as si,g as li}from"./alert-dialog-3zgDY-JS.js";import{S as sl}from"./use-navigate-to-agent-DNEdwRRC.js";import{C as ni}from"./chat-context-D98_IvwC.js";import"./X-CuRROejy.js";import"./integration-icon-Cmjaxx59.js";import"./Tool02-Cq-7tfI8.js";import"./extract-connection-data-dHqlMWep.js";import"./metadata-dUsYcpuu.js";import"./provision-repo-scoped-github-connection-ufuvpGD9.js";import"./CheckCircle-CrW9H134.js";import"./form-yy73gw2K.js";import"./label-BfvSISi4.js";import"./input-DSUm_Erg.js";import"./Check-DAEByF5B.js";import"./Eye-DQdeduJV.js";import"./use-debounced-value-CouYt5rY.js";import"./authenticate-and-persist-oauth-DyECUkxO.js";import"./mcp-oauth-CxCw9mAZ.js";import"./auth-DjwyiIK1.js";import"./Plus-C5jl13My.js";import"./SearchMd-KqjjXVY2.js";import"./XClose-CB6SJUhu.js";import"./spinner-BQC50G3I.js";import"./github-repo-picker-BH2ayUaO.js";import"./collection-search-CY1JClJ3.js";import"./use-connection-DTT5IHiu.js";import"./ArrowLeft-DbHOnUIW.js";import"./Share07-DtVcn7WC.js";import"./use-mcp-tools-DIk8gtU5.js";import"./reusable-new-chat-CouMjkYR.js";import"./connection-card-CLBydNIu.js";import"./use-registry-connections-CCCZS0XT.js";import"./useInfiniteQuery-i3dhUyy7.js";import"./use-infinite-scroll-CGnIpLJw.js";import"./retry-CErkP7V6.js";import"./backoff-CrEUbyZT.js";import"./delay-CnY5UFtP.js";import"./connection-slug-eyAPH6o3.js";import"./card-BIirS6Wm.js";import"./select-D-apSMci.js";import"./ChevronUp-CX_YEMlY.js";import"./textarea-1PgWx7sr.js";import"./Star01-4zsGR6T5.js";import"./connection-form-helpers-Tni1x7cy.js";import"./Trash01-X4G23Jr7.js";import"./collection-tabs-Dp3LyUPw.js";import"./badge-B6cSZESa.js";import"./useSuspenseInfiniteQuery-BQytHROn.js";import"./use-ai-providers-CQN7J_3n.js";import"./User01-CDSa6ww6.js";import"./AlertCircle-V5q6ZGsb.js";import"./Tool01-C9uqHeLn.js";import"./ArrowUp-CpYG5jkO.js";import"./ArrowUpRight-BJayjxfI.js";import"./TrendUp01-D1FBIzHh.js";import"./DotsVertical-BFha7Xto.js";import"./CpuChip01-BWGWEcqe.js";import"./CreditCard01-0u0gKZIG.js";import"./Globe04-J1R-pL3w.js";import"./SwitchHorizontal01-BoHqRaIO.js";import"./HardDrive-UpxzOVXl.js";import"./Key01-DP2FPTTv.js";import"./Palette-B_kRpNqI.js";import"./Play-Dyt0eTtd.js";import"./SearchLg-F_sh14Gy.js";import"./Stars01-Cf4ussTv.js";import"./Upload01-CSS9udHq.js";import"./Users01-pRULjU57.js";import"./use-org-auth-client-Bfgxgehq.js";import"./use-organization-roles-Bu-22_hB.js";import"./decopilot-sse-pool-Dr020en0.js";import"./required-auth-layout-jy5QJ-_y.js";import"./use-org-sso-BLrrMByk.js";import"./index-DPJwQpAe.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-decopilot-events-DcQ67ld6.js";function ii(t){const e=M.c(22),{siteUrl:l}=t,i=Me(),{org:n}=pe(),r=W();let o;e[0]!==i||e[1]!==n.id||e[2]!==n.slug?(o=()=>{localStorage.setItem(hl.sidebarOpen(),JSON.stringify(!1)),i({to:"/$org/$taskId",params:{org:n.slug,taskId:crypto.randomUUID()},search:{virtualmcpid:Vl(n.id),main:Hl(Bs.COMMERCE_DISCOVERY(n.id),Kl),sidepanel:0}})},e[0]=i,e[1]=n.id,e[2]=n.slug,e[3]=o):o=e[3];const a=o;let m;e[4]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(Rl,{className:"bg-black/15 backdrop-blur-sm"}),e[4]=m):m=e[4];let c;e[5]!==r?(c=r("routes.commerceOnboarding.connectModal.dialogTitle"),e[5]=r,e[6]=c):c=e[6];let d;e[7]!==c?(d=s.jsx(Ls,{className:"sr-only",children:c}),e[7]=c,e[8]=d):d=e[8];let f;e[9]!==a||e[10]!==r?(f=()=>s.jsxs("div",{className:"grid gap-4 p-6",children:[s.jsx("p",{className:"text-sm text-muted-foreground",children:r("routes.commerceOnboarding.connectModal.loadError")}),s.jsxs($s,{type:"button",size:"xl",className:"w-full",onClick:a,children:[r("routes.commerceOnboarding.connectModal.continueButton"),s.jsx(Hs,{size:18})]})]}),e[9]=a,e[10]=r,e[11]=f):f=e[11];let u;e[12]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsx($l,{}),e[12]=u):u=e[12];let p;e[13]!==a||e[14]!==l?(p=s.jsx(L.Suspense,{fallback:u,children:s.jsx(ci,{siteUrlFromUrl:l,onComplete:a})}),e[13]=a,e[14]=l,e[15]=p):p=e[15];let h;e[16]!==f||e[17]!==p?(h=s.jsx(as,{fallback:f,children:p}),e[16]=f,e[17]=p,e[18]=h):h=e[18];let b;return e[19]!==d||e[20]!==h?(b=s.jsx(Gs,{open:!0,children:s.jsxs(Fl,{children:[m,s.jsxs(xl,{"data-slot":"commerce-connect-modal",onEscapeKeyDown:ai,onPointerDownOutside:ri,onInteractOutside:oi,className:"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 flex h-[calc(100dvh-1rem)] w-full max-w-[calc(100%-1rem)] translate-x-[-50%] translate-y-[-50%] flex-col overflow-hidden rounded-2xl border p-0 shadow-md duration-200 sm:max-w-lg md:h-auto md:max-h-[calc(100dvh-2rem)] lg:max-h-[calc(100dvh-4rem)] lg:max-w-5xl",children:[d,h]})]})}),e[19]=d,e[20]=h,e[21]=b):b=e[21],b}function oi(t){return t.preventDefault()}function ri(t){return t.preventDefault()}function ai(t){return t.preventDefault()}function ci({siteUrlFromUrl:t,onComplete:e}){const l=W(),{org:i}=pe(),n=Bs.COMMERCE_DISCOVERY(i.id),r=ql({connectionId:Yl,orgId:i.id,orgSlug:i.slug}),a=gl({queryKey:Ds.commerceDiscoveryConnection(i.id,n),queryFn:async()=>{const v=await r.callTool({name:"COLLECTION_CONNECTIONS_GET",arguments:{id:n}});return Zt(v)},retry:!1}).data.item,m=typeof a?.metadata?.siteUrl=="string"?a.metadata.siteUrl:void 0,c=t||m,d=Dl(c),[f,u]=L.useState(!0),[p,h]=L.useState(null),b=xs({mutationFn:async v=>Zt(await r.callTool({name:"COMMERCE_DISCOVERY_SETUP",arguments:{siteUrl:v}})),retry:!1}),g=xs({mutationFn:async v=>Zt(await r.callTool({name:"COMMERCE_DISCOVERY_RUN",arguments:{siteUrl:v}})),retry:!1}),x=async()=>{h(null),ce("commerce_onboarding_open_report_clicked",{domain:d??void 0,organization_id:i.id});const v=c?zl(c):null;if(v?.ok)try{let _=await g.mutateAsync(v.value);if(_.triggered||(ce("commerce_onboarding_run_reclaim",{domain:d??void 0,organization_id:i.id,reason:_.reason??"not_upgraded"}),await b.mutateAsync(v.value),_=await g.mutateAsync(v.value)),!_.triggered){ce("commerce_onboarding_run_failed",{domain:d??void 0,organization_id:i.id,error:_.reason??"not_triggered"}),h(l("routes.commerceOnboarding.connectModal.couldNotGenerateReport"));return}}catch(_){ce("commerce_onboarding_run_failed",{domain:d??void 0,organization_id:i.id,error:_ instanceof Error?_.message:String(_)}),h(l("routes.commerceOnboarding.connectModal.somethingWentWrong"));return}e()},j=Ql("demo_mode"),y=f||j;return s.jsx(Jl,{siteHost:d,footer:s.jsxs(s.Fragment,{children:[p?s.jsx("p",{className:"text-sm leading-5 text-destructive",role:"alert",children:p}):null,s.jsxs("div",{className:"flex gap-3",children:[s.jsx("div",{className:"min-w-0 flex-1",children:s.jsx(Zl,{ready:y,pending:g.isPending,label:g.isPending?l("routes.commerceOnboarding.connectModal.openingReport"):l("routes.commerceOnboarding.connectModal.viewDiagnostic"),onClick:()=>{x()},children:s.jsx(Hs,{size:18})})}),y?null:s.jsx($s,{type:"button",variant:"secondary",size:"lg",className:"h-auto min-h-12 shrink-0 rounded-lg py-3 text-base font-medium leading-tight",disabled:g.isPending,onClick:()=>{x()},children:l("routes.commerceOnboarding.connectModal.skip")})]})]}),children:s.jsx(El,{org:i,cdConnectionId:n,siteUrl:c,onReadinessChange:u})})}function di(t){const e=M.c(11),{onPointerDown:l,onDoubleClick:i}=t,n=W(),{state:r,isMobile:o}=Ct();if(o||r==="collapsed")return null;let a;e[0]!==n?(a=n("sidebar.sidebarResizeHandle.ariaLabel"),e[0]=n,e[1]=a):a=e[1];let m;e[2]!==n?(m=n("sidebar.sidebarResizeHandle.title"),e[2]=n,e[3]=m):m=e[3];let c,d;e[4]===Symbol.for("react.memo_cache_sentinel")?(c={left:"var(--sidebar-width)"},d=s.jsx("span",{className:"pointer-events-none absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-colors duration-150 group-hover/resize:bg-border group-active/resize:bg-border"}),e[4]=c,e[5]=d):(c=e[4],d=e[5]);let f;return e[6]!==i||e[7]!==l||e[8]!==a||e[9]!==m?(f=s.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":a,title:m,onPointerDown:l,onDoubleClick:i,className:"group/resize absolute top-0 z-20 h-full w-2 -translate-x-1/2 cursor-col-resize",style:c,children:d}),e[6]=i,e[7]=l,e[8]=a,e[9]=m,e[10]=f):f=e[10],f}const ps=240,mi=400,fi="sidebar.width";function wt(t){return Math.max(ps,Math.min(mi,t))}function ui(){const t=M.c(11),[e,l]=Bt(fi,pi),i=L.useRef(null);let n;t[0]!==l||t[1]!==e?(n=d=>{d.preventDefault();const f=d.clientX,u=wt(e),p=i.current??(typeof document<"u"?document.querySelector('[data-slot="sidebar-wrapper"]'):null),h=p?Array.from(p.querySelectorAll('[data-slot="sidebar"], [data-slot="sidebar-container"]')):[];for(const x of h)x.style.transition="none";const b=x=>{const j=wt(u+(x.clientX-f));p?.style.setProperty("--sidebar-width",`${j}px`)},g=x=>{const j=wt(u+(x.clientX-f));l(j);for(const y of h)y.style.transition="";window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",g),document.body.style.userSelect="",document.body.style.cursor=""};document.body.style.userSelect="none",document.body.style.cursor="col-resize",window.addEventListener("pointermove",b),window.addEventListener("pointerup",g)},t[0]=l,t[1]=e,t[2]=n):n=t[2];const r=n;let o;t[3]!==l?(o=()=>{l(ps)},t[3]=l,t[4]=o):o=t[4];const a=o;let m;t[5]!==e?(m=wt(e),t[5]=e,t[6]=m):m=t[6];let c;return t[7]!==r||t[8]!==a||t[9]!==m?(c={width:m,wrapperRef:i,onStartResize:r,resetWidth:a},t[7]=r,t[8]=a,t[9]=m,t[10]=c):c=t[10],c}function pi(t){return typeof t=="number"?wt(t):ps}function ll(){return[]}function nl(t){const e=M.c(3),{children:l}=t;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx("div",{className:"flex h-6 items-center",children:s.jsx("div",{className:"h-0.5 w-16 rounded-full bg-sidebar-foreground/15"})}),e[0]=i):i=e[0];let n;return e[1]!==l?(n=s.jsxs(cs,{className:"pt-0 pr-0 pb-2 pl-0 mt-2",children:[i,s.jsx(ds,{children:s.jsx(ue,{className:"gap-0.5",children:l})})]}),e[1]=l,e[2]=n):n=e[2],n}function il(t){const e=M.c(18),{item:l}=t,{isMobile:i,setOpenMobile:n}=Ct();let r;e[0]!==i||e[1]!==l||e[2]!==n?(r=()=>{ce("nav_item_clicked",{nav_key:l.key,nav_label:l.label,is_active:!!l.isActive,is_mobile:i}),l.onClick?.(),i&&n(!1)},e[0]=i,e[1]=l,e[2]=n,e[3]=r):r=e[3];const o=r,a=l.key,m=l.isActive&&"z-10";let c;e[4]!==m?(c=G(m),e[4]=m,e[5]=c):c=e[5];let d;e[6]!==l.label?(d=s.jsx("span",{children:l.label}),e[6]=l.label,e[7]=d):d=e[7];let f;e[8]!==o||e[9]!==l.icon||e[10]!==l.isActive||e[11]!==l.label||e[12]!==d?(f=s.jsxs(de,{onClick:o,isActive:l.isActive,tooltip:l.label,children:[l.icon,d]}),e[8]=o,e[9]=l.icon,e[10]=l.isActive,e[11]=l.label,e[12]=d,e[13]=f):f=e[13];let u;return e[14]!==l.key||e[15]!==c||e[16]!==f?(u=s.jsx(ne,{className:c,children:f},a),e[14]=l.key,e[15]=c,e[16]=f,e[17]=u):u=e[17],u}function hi(t){const e=M.c(12),{section:l}=t;switch(l.type){case"divider":{let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(zs,{className:"my-2"}),e[0]=i):i=e[0],i}case"spacer":{let i;return e[1]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx("div",{className:"flex-1"}),e[1]=i):i=e[1],i}case"group":{const i=l.group.label,n=l.group.defaultExpanded;let r;e[2]!==l.group.items?(r=l.group.items.map(gi),e[2]=l.group.items,e[3]=r):r=e[3];let o;return e[4]!==l.group.defaultExpanded||e[5]!==l.group.label||e[6]!==r?(o=s.jsx(nl,{label:i,defaultExpanded:n,children:r}),e[4]=l.group.defaultExpanded,e[5]=l.group.label,e[6]=r,e[7]=o):o=e[7],o}case"items":{let i;e[8]!==l.items?(i=l.items.map(xi),e[8]=l.items,e[9]=i):i=e[9];let n;return e[10]!==i?(n=s.jsx(cs,{className:"pt-0 pr-0 pb-0 pl-0",children:s.jsx(ds,{children:s.jsx(ue,{className:"gap-1.5",children:i})})}),e[10]=i,e[11]=n):n=e[11],n}case"custom":return l.content}}function xi(t){return s.jsx(il,{item:t},t.key)}function gi(t){return s.jsx(il,{item:t},t.key)}function bi(t){const e=M.c(17),{sections:l,footer:i,additionalContent:n,header:r,variant:o,contentClassName:a}=t,m=o===void 0?"sidebar":o;let c;e[0]!==r?(c=r&&s.jsx(Al,{className:"shrink-0 h-12 flex flex-row items-center px-2 py-0 group-data-[collapsible=icon]/sidebar:hidden",children:r}),e[0]=r,e[1]=c):c=e[1];let d;e[2]!==a?(d=G("flex flex-col flex-1 px-2 pb-2 gap-0.5",a),e[2]=a,e[3]=d):d=e[3];let f;e[4]!==l?(f=l.map(ji),e[4]=l,e[5]=f):f=e[5];let u;e[6]!==n?(u=n&&s.jsx("div",{className:"flex flex-col flex-1 min-h-0 group-data-[state=collapsed]/sidebar:mt-1 group-data-[state=expanded]/sidebar:mt-2",children:n}),e[6]=n,e[7]=u):u=e[7];let p;e[8]!==d||e[9]!==f||e[10]!==u?(p=s.jsxs(Rs,{className:d,children:[f,u]}),e[8]=d,e[9]=f,e[10]=u,e[11]=p):p=e[11];let h;return e[12]!==i||e[13]!==c||e[14]!==p||e[15]!==m?(h=s.jsxs(Tl,{variant:m,children:[c,p,i]}),e[12]=i,e[13]=c,e[14]=p,e[15]=m,e[16]=h):h=e[16],h}function ji(t,e){return s.jsx(hi,{section:t},e)}function ol(t){const e=M.c(2);let l;return e[0]!==t?(l=s.jsx(bi,{...t}),e[0]=t,e[1]=l):l=e[1],l}ol.Skeleton=function(){return s.jsx("div",{className:"flex flex-col gap-0.5",children:Array.from({length:8}).map((e,l)=>s.jsx("div",{className:"w-full h-8",children:s.jsx(_e,{className:"h-full bg-sidebar-accent rounded-md"})},l))})};function js(t){const e=M.c(18),{item:l,onClose:i}=t,n=l.isActive&&"z-10";let r;e[0]!==n?(r=G(n),e[0]=n,e[1]=r):r=e[1];let o;e[2]!==l||e[3]!==i?(o=()=>{l.onClick?.(),i()},e[2]=l,e[3]=i,e[4]=o):o=e[4];let a;e[5]!==l.icon?(a=s.jsx("span",{className:"[&>svg]:size-5 shrink-0",children:l.icon}),e[5]=l.icon,e[6]=a):a=e[6];let m;e[7]!==l.label?(m=s.jsx("span",{children:l.label}),e[7]=l.label,e[8]=m):m=e[8];let c;e[9]!==l.isActive||e[10]!==l.label||e[11]!==o||e[12]!==a||e[13]!==m?(c=s.jsxs(de,{onClick:o,isActive:l.isActive,tooltip:l.label,className:"h-10! text-sm!",children:[a,m]}),e[9]=l.isActive,e[10]=l.label,e[11]=o,e[12]=a,e[13]=m,e[14]=c):c=e[14];let d;return e[15]!==r||e[16]!==c?(d=s.jsx(ne,{className:r,children:c}),e[15]=r,e[16]=c,e[17]=d):d=e[17],d}function vi(t){const e=M.c(18),{section:l,onClose:i}=t;switch(l.type){case"divider":{let n;return e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(zs,{className:"my-2"}),e[0]=n):n=e[0],n}case"spacer":{let n;return e[1]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx("div",{className:"flex-1"}),e[1]=n):n=e[1],n}case"group":{const n=l.group.label,r=l.group.defaultExpanded;let o;if(e[2]!==i||e[3]!==l.group.items){let m;e[5]!==i?(m=c=>s.jsx(js,{item:c,onClose:i},c.key),e[5]=i,e[6]=m):m=e[6],o=l.group.items.map(m),e[2]=i,e[3]=l.group.items,e[4]=o}else o=e[4];let a;return e[7]!==l.group.defaultExpanded||e[8]!==l.group.label||e[9]!==o?(a=s.jsx(nl,{label:n,defaultExpanded:r,children:o}),e[7]=l.group.defaultExpanded,e[8]=l.group.label,e[9]=o,e[10]=a):a=e[10],a}case"items":{let n;if(e[11]!==i||e[12]!==l.items){let o;e[14]!==i?(o=a=>s.jsx(js,{item:a,onClose:i},a.key),e[14]=i,e[15]=o):o=e[15],n=l.items.map(o),e[11]=i,e[12]=l.items,e[13]=n}else n=e[13];let r;return e[16]!==n?(r=s.jsx(cs,{className:"pt-0 pr-0 pb-0 pl-0",children:s.jsx(ds,{children:s.jsx(ue,{className:"gap-1.5",children:n})})}),e[16]=n,e[17]=r):r=e[17],r}case"custom":return l.content}}function yi(t){const e=M.c(27),{sections:l,onClose:i,footer:n,additionalContent:r}=t;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(ns,{}),e[0]=o):o=e[0];let a;e[1]!==i?(a=s.jsx(fs,{onNavigate:i}),e[1]=i,e[2]=a):a=e[2];let m;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx("div",{className:"flex-1"}),e[3]=m):m=e[3];const c=W();let d;e[4]!==c?(d=c("sidebar.navigationMobile.closeSidebar"),e[4]=c,e[5]=d):d=e[5];let f;e[6]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsx(Us,{size:16}),e[6]=f):f=e[6];let u;e[7]!==i||e[8]!==d?(u=s.jsx(Ut,{onClick:i,"aria-label":d,children:f}),e[7]=i,e[8]=d,e[9]=u):u=e[9];let p;e[10]!==a||e[11]!==u?(p=s.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-0.5 px-1.5",children:[o,a,m,u]}),e[10]=a,e[11]=u,e[12]=p):p=e[12];let h;if(e[13]!==i||e[14]!==l){let j;e[16]!==i?(j=(y,v)=>s.jsx(vi,{section:y,onClose:i},v),e[16]=i,e[17]=j):j=e[17],h=l.map(j),e[13]=i,e[14]=l,e[15]=h}else h=e[15];let b;e[18]!==r?(b=r&&s.jsx("div",{className:"mt-3 flex flex-col flex-1 min-h-0",children:r}),e[18]=r,e[19]=b):b=e[19];let g;e[20]!==b||e[21]!==h?(g=s.jsxs(Rs,{className:"flex flex-col flex-1 px-2 py-2 gap-0",children:[h,b]}),e[20]=b,e[21]=h,e[22]=g):g=e[22];let x;return e[23]!==n||e[24]!==g||e[25]!==p?(x=s.jsxs("div",{className:"bg-sidebar flex h-full w-full flex-col","data-sidebar":"sidebar",children:[p,g,n]}),e[23]=n,e[24]=g,e[25]=p,e[26]=x):x=e[26],x}function Nt(t){const e=M.c(26),{item:l,onClose:i}=t;let n;e[0]!==l.className?(n=G("flex items-center gap-2.5 px-3 py-2 rounded-md text-sm text-left w-full transition-colors text-foreground/80 hover:bg-sidebar-accent hover:text-foreground",l.className),e[0]=l.className,e[1]=n):n=e[1];const r=n;if(l.href){const d=l.external?"_blank":void 0,f=l.external?"noopener noreferrer":void 0;let u;e[2]!==l.icon?(u=s.jsx("span",{className:"shrink-0 text-muted-foreground",children:l.icon}),e[2]=l.icon,e[3]=u):u=e[3];let p;e[4]!==l.label?(p=s.jsx("span",{className:"flex-1",children:l.label}),e[4]=l.label,e[5]=p):p=e[5];let h;return e[6]!==r||e[7]!==l.href||e[8]!==i||e[9]!==d||e[10]!==f||e[11]!==u||e[12]!==p?(h=s.jsxs("a",{href:l.href,target:d,rel:f,className:r,onClick:i,children:[u,p]}),e[6]=r,e[7]=l.href,e[8]=i,e[9]=d,e[10]=f,e[11]=u,e[12]=p,e[13]=h):h=e[13],h}let o;e[14]!==l||e[15]!==i?(o=()=>{l.onClick?.(),i()},e[14]=l,e[15]=i,e[16]=o):o=e[16];let a;e[17]!==l.icon?(a=s.jsx("span",{className:"shrink-0 text-muted-foreground",children:l.icon}),e[17]=l.icon,e[18]=a):a=e[18];let m;e[19]!==l.label?(m=s.jsx("span",{className:"flex-1",children:l.label}),e[19]=l.label,e[20]=m):m=e[20];let c;return e[21]!==r||e[22]!==o||e[23]!==a||e[24]!==m?(c=s.jsxs("button",{type:"button",onClick:o,className:r,children:[a,m]}),e[21]=r,e[22]=o,e[23]=a,e[24]=m,e[25]=c):c=e[25],c}function _i(){const t=M.c(4),e=W();let l;t[0]!==e?(l=e("common.accountPopover.impersonating"),t[0]=e,t[1]=l):l=t[1];let i;return t[2]!==l?(i=s.jsx("span",{className:"shrink-0 inline-flex items-center rounded-full bg-warning/10 px-2 py-0.5 text-[10px] font-medium text-warning",children:l}),t[2]=l,t[3]=i):i=t[3],i}function vs(t){const e=M.c(38),{user:l,userImage:i,isImpersonating:n,isMobile:r}=t,o=W(),a=r?"py-4 border-b border-border":"py-3 mx-1 mt-1";let m;e[0]!==a?(m=G("flex items-center gap-3 px-4",a),e[0]=a,e[1]=m):m=e[1];const c=l?.name??"U";let d;e[2]!==c||e[3]!==i?(d=s.jsx(is,{url:i,fallback:c,shape:"circle",size:"sm",className:"shrink-0"}),e[2]=c,e[3]=i,e[4]=d):d=e[4];let f;e[5]!==o||e[6]!==l?.name?(f=l?.name??o("common.accountPopover.defaultUserName"),e[5]=o,e[6]=l?.name,e[7]=f):f=e[7];let u;e[8]!==f?(u=s.jsx("p",{className:"text-sm font-medium truncate",children:f}),e[8]=f,e[9]=u):u=e[9];let p;e[10]!==n?(p=n&&s.jsx(_i,{}),e[10]=n,e[11]=p):p=e[11];let h;e[12]!==u||e[13]!==p?(h=s.jsxs("div",{className:"flex items-center gap-2",children:[u,p]}),e[12]=u,e[13]=p,e[14]=h):h=e[14];const b=l?.email;let g;e[15]!==b?(g=s.jsx("p",{className:"text-xs text-muted-foreground truncate",children:b}),e[15]=b,e[16]=g):g=e[16];let x;e[17]!==g||e[18]!==h?(x=s.jsxs("div",{className:"flex-1 min-w-0",children:[h,g]}),e[17]=g,e[18]=h,e[19]=x):x=e[19];let j;e[20]!==o||e[21]!==l?(j=()=>{l?.id&&navigator.clipboard.writeText(l.id).then(()=>{Ht.success(o("common.accountPopover.userIdCopied"))})},e[20]=o,e[21]=l,e[22]=j):j=e[22];let y;e[23]===Symbol.for("react.memo_cache_sentinel")?(y=s.jsx(an,{size:14}),e[23]=y):y=e[23];let v;e[24]!==j?(v=s.jsx(Wt,{asChild:!0,children:s.jsx("button",{type:"button",tabIndex:-1,onClick:j,className:"shrink-0 text-muted-foreground hover:text-foreground transition-colors",children:y})}),e[24]=j,e[25]=v):v=e[25];let _;e[26]!==o?(_=o("common.accountPopover.copyUserId"),e[26]=o,e[27]=_):_=e[27];let k;e[28]!==_?(k=s.jsx(Kt,{side:"right",children:s.jsx("p",{className:"text-xs",children:_})}),e[28]=_,e[29]=k):k=e[29];let S;e[30]!==v||e[31]!==k?(S=s.jsx(qs,{delayDuration:300,children:s.jsxs(Vt,{children:[v,k]})}),e[30]=v,e[31]=k,e[32]=S):S=e[32];let C;return e[33]!==x||e[34]!==S||e[35]!==m||e[36]!==d?(C=s.jsxs("div",{className:m,children:[d,x,S]}),e[33]=x,e[34]=S,e[35]=m,e[36]=d,e[37]=C):C=e[37],C}function ys(t){const e=M.c(35),{themeOptions:l,preferences:i,setPreferences:n,isMobile:r}=t,o=W(),a=r?"size-8":"size-7",m=r?"px-3 py-3":"px-2 py-1.5";let c;e[0]!==m?(c=G("flex items-center justify-between border-t border-border/50",m),e[0]=m,e[1]=c):c=e[1];let d;if(e[2]!==a||e[3]!==i.theme||e[4]!==n||e[5]!==l){let _;e[7]!==a||e[8]!==i.theme||e[9]!==n?(_=k=>{const{value:S,icon:C,label:N}=k;return s.jsx("button",{type:"button","aria-label":N,onClick:()=>n(A=>({...A,theme:S})),className:G(a,"rounded-md flex items-center justify-center transition-colors",i.theme===S?"bg-sidebar-accent text-foreground":"text-muted-foreground hover:bg-sidebar-accent/50 hover:text-foreground"),children:C},S)},e[7]=a,e[8]=i.theme,e[9]=n,e[10]=_):_=e[10],d=l.map(_),e[2]=a,e[3]=i.theme,e[4]=n,e[5]=l,e[6]=d}else d=e[6];let f;e[11]!==d?(f=s.jsx("div",{className:"flex items-center gap-0.5",children:d}),e[11]=d,e[12]=f):f=e[12];let u;e[13]!==i.enableSounds||e[14]!==o?(u=i.enableSounds?o("common.accountPopover.disableSounds"):o("common.accountPopover.enableSounds"),e[13]=i.enableSounds,e[14]=o,e[15]=u):u=e[15];let p;e[16]!==n?(p=()=>n(Si),e[16]=n,e[17]=p):p=e[17];const h=i.enableSounds?"text-foreground hover:bg-sidebar-accent/50":"text-muted-foreground hover:bg-sidebar-accent/50 hover:text-foreground";let b;e[18]!==a||e[19]!==h?(b=G(a,"rounded-md flex items-center justify-center transition-colors",h),e[18]=a,e[19]=h,e[20]=b):b=e[20];let g;e[21]!==i.enableSounds?(g=i.enableSounds?s.jsx(un,{size:14}):s.jsx(pn,{size:14}),e[21]=i.enableSounds,e[22]=g):g=e[22];let x;e[23]!==u||e[24]!==p||e[25]!==b||e[26]!==g?(x=s.jsx("button",{type:"button","aria-label":u,onClick:p,className:b,children:g}),e[23]=u,e[24]=p,e[25]=b,e[26]=g,e[27]=x):x=e[27];let j;e[28]===Symbol.for("react.memo_cache_sentinel")?(j=s.jsxs("span",{className:"text-xs text-muted-foreground/60",children:["v","4.197.10"]}),e[28]=j):j=e[28];let y;e[29]!==x?(y=s.jsxs("div",{className:"flex items-center gap-2",children:[x,j]}),e[29]=x,e[30]=y):y=e[30];let v;return e[31]!==y||e[32]!==c||e[33]!==f?(v=s.jsxs("div",{className:c,children:[f,y]}),e[31]=y,e[32]=c,e[33]=f,e[34]=v):v=e[34],v}function Si(t){return{...t,enableSounds:!t.enableSounds}}function _s(t){const e=M.c(54),{user:l,userImage:i,menuItems:n,signOutItem:r,stopImpersonatingItem:o,isImpersonating:a,themeOptions:m,preferences:c,setPreferences:d,close:f,isMobile:u}=t;if(u){let v;e[0]!==a||e[1]!==l||e[2]!==i?(v=s.jsx(vs,{user:l,userImage:i,isImpersonating:a,isMobile:!0}),e[0]=a,e[1]=l,e[2]=i,e[3]=v):v=e[3];let _;if(e[4]!==f||e[5]!==n){let O;e[7]!==f?(O=P=>s.jsx(Nt,{item:P,onClose:f},P.key),e[7]=f,e[8]=O):O=e[8],_=n.map(O),e[4]=f,e[5]=n,e[6]=_}else _=e[6];let k;e[9]!==f||e[10]!==o?(k=o&&s.jsx(Nt,{item:o,onClose:f}),e[9]=f,e[10]=o,e[11]=k):k=e[11];let S;e[12]!==f||e[13]!==r?(S=s.jsx(Nt,{item:r,onClose:f}),e[12]=f,e[13]=r,e[14]=S):S=e[14];let C;e[15]!==_||e[16]!==k||e[17]!==S?(C=s.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:s.jsxs("nav",{className:"flex flex-col px-2 pt-2 pb-2 gap-0.5",children:[_,k,S]})}),e[15]=_,e[16]=k,e[17]=S,e[18]=C):C=e[18];let N;e[19]!==c||e[20]!==d||e[21]!==m?(N=s.jsx(ys,{themeOptions:m,preferences:c,setPreferences:d,isMobile:!0}),e[19]=c,e[20]=d,e[21]=m,e[22]=N):N=e[22];let A;return e[23]!==v||e[24]!==C||e[25]!==N?(A=s.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[v,C,N]}),e[23]=v,e[24]=C,e[25]=N,e[26]=A):A=e[26],A}let p;e[27]!==a||e[28]!==l||e[29]!==i?(p=s.jsx(vs,{user:l,userImage:i,isImpersonating:a,isMobile:!1}),e[27]=a,e[28]=l,e[29]=i,e[30]=p):p=e[30];let h;if(e[31]!==f||e[32]!==n){let v;e[34]!==f?(v=_=>s.jsx(Nt,{item:_,onClose:f},_.key),e[34]=f,e[35]=v):v=e[35],h=n.map(v),e[31]=f,e[32]=n,e[33]=h}else h=e[33];let b;e[36]!==f||e[37]!==o?(b=o&&s.jsx(Nt,{item:o,onClose:f}),e[36]=f,e[37]=o,e[38]=b):b=e[38];let g;e[39]!==f||e[40]!==r?(g=s.jsx(Nt,{item:r,onClose:f}),e[39]=f,e[40]=r,e[41]=g):g=e[41];let x;e[42]!==h||e[43]!==b||e[44]!==g?(x=s.jsxs("nav",{className:"flex-1 flex flex-col px-2 pt-1 overflow-y-auto",children:[h,b,g]}),e[42]=h,e[43]=b,e[44]=g,e[45]=x):x=e[45];let j;e[46]!==c||e[47]!==d||e[48]!==m?(j=s.jsx(ys,{themeOptions:m,preferences:c,setPreferences:d,isMobile:!1}),e[46]=c,e[47]=d,e[48]=m,e[49]=j):j=e[49];let y;return e[50]!==p||e[51]!==x||e[52]!==j?(y=s.jsx("div",{className:"flex w-full flex-col overflow-hidden",children:s.jsxs("div",{className:"flex flex-col",children:[p,x,j]})}),e[50]=p,e[51]=x,e[52]=j,e[53]=y):y=e[53],y}function os(){const t=M.c(107),e=W(),{data:l}=Ft.useSession(),{org:i}=pe(),n=Me();let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org",shouldThrow:!1},t[0]=r):r=t[0];const a=bl(r)?.params.org,[m,c]=jl(),d=Fs(),{isAdmin:f}=Cn(),u=kn(),[p,h]=L.useState(!1),[b,g]=L.useState(!1),x=l?.user,j=x?.image,y=!!l?.session?.impersonatedBy;let v;t[1]===Symbol.for("react.memo_cache_sentinel")?(v=()=>h(!1),t[1]=v):v=t[1];const _=v;let k;t[2]!==e?(k=e("common.accountPopover.preferences"),t[2]=e,t[3]=k):k=t[3];let S;t[4]===Symbol.for("react.memo_cache_sentinel")?(S=s.jsx(qt,{size:16}),t[4]=S):S=t[4];let C;t[5]!==n||t[6]!==a?(C=()=>{n({to:"/$org/settings/profile",params:{org:a??""}})},t[5]=n,t[6]=a,t[7]=C):C=t[7];let N;t[8]!==k||t[9]!==C?(N={key:"preferences",label:k,icon:S,onClick:C},t[8]=k,t[9]=C,t[10]=N):N=t[10];let A;t[11]!==i||t[12]!==n?(A=i?[{key:"connect-clients",label:"Connect to Agents",icon:s.jsx(jn,{size:16}),onClick:()=>{n({to:"/$org/settings/connect",params:{org:i.slug}})}}]:[],t[11]=i,t[12]=n,t[13]=A):A=t[13];let O;t[14]!==u||t[15]!==e?(O=Ul()&&!u?[{key:"install-on-mac",label:e("downloadApp.installOnMac"),icon:s.jsx(cn,{size:16}),onClick:()=>g(!0)}]:[],t[14]=u,t[15]=e,t[16]=O):O=t[16];let P;t[17]!==e?(P=e("common.accountPopover.termsOfUse"),t[17]=e,t[18]=P):P=t[18];let $;t[19]===Symbol.for("react.memo_cache_sentinel")?($=s.jsx(fn,{size:16}),t[19]=$):$=t[19];let E;t[20]!==P?(E={key:"terms",label:P,icon:$,href:"https://www.decocms.com/terms-of-use",external:!0},t[20]=P,t[21]=E):E=t[21];let T;t[22]!==e?(T=e("common.accountPopover.privacyPolicy"),t[22]=e,t[23]=T):T=t[23];let z;t[24]===Symbol.for("react.memo_cache_sentinel")?(z=s.jsx(Sn,{size:16}),t[24]=z):z=t[24];let D;t[25]!==T?(D={key:"privacy",label:T,icon:z,href:"https://www.decocms.com/privacy-policy",external:!0},t[25]=T,t[26]=D):D=t[26];let I;t[27]!==e?(I=e("common.accountPopover.githubRepo"),t[27]=e,t[28]=I):I=t[28];let B;t[29]===Symbol.for("react.memo_cache_sentinel")?(B=s.jsx(vl,{className:"w-4 h-4"}),t[29]=B):B=t[29];let Y;t[30]!==I?(Y={key:"github",label:I,icon:B,href:"https://github.com/decocms/studio",external:!0},t[30]=I,t[31]=Y):Y=t[31];let F;t[32]!==e?(F=e("common.accountPopover.community"),t[32]=e,t[33]=F):F=t[33];let H;t[34]===Symbol.for("react.memo_cache_sentinel")?(H=s.jsx(Nn,{size:16}),t[34]=H):H=t[34];let V;t[35]!==F?(V={key:"community",label:F,icon:H,href:"https://decocms.com/discord",external:!0},t[35]=F,t[36]=V):V=t[36];let Q;t[37]!==e?(Q=e("common.accountPopover.homepage"),t[37]=e,t[38]=Q):Q=t[38];let se;t[39]===Symbol.for("react.memo_cache_sentinel")?(se=s.jsx(dn,{size:16}),t[39]=se):se=t[39];let J;t[40]!==Q?(J={key:"homepage",label:Q,icon:se,href:"https://decocms.com",external:!0},t[40]=Q,t[41]=J):J=t[41];let me;t[42]!==f||t[43]!==n||t[44]!==e?(me=f?[{key:"admin-dashboard",label:e("common.accountPopover.adminDashboard"),icon:s.jsx(mn,{size:16}),onClick:()=>n({to:"/_admin"}),className:"text-warning"}]:[],t[42]=f,t[43]=n,t[44]=e,t[45]=me):me=t[45];let he;t[46]!==E||t[47]!==D||t[48]!==Y||t[49]!==V||t[50]!==J||t[51]!==me||t[52]!==N||t[53]!==A||t[54]!==O?(he=[N,...A,...O,E,D,Y,V,J,...me],t[46]=E,t[47]=D,t[48]=Y,t[49]=V,t[50]=J,t[51]=me,t[52]=N,t[53]=A,t[54]=O,t[55]=he):he=t[55];const fe=he;let xe;t[56]!==e?(xe=e("common.accountPopover.signOut"),t[56]=e,t[57]=xe):xe=t[57];let ge;t[58]===Symbol.for("react.memo_cache_sentinel")?(ge=s.jsx(bs,{size:16}),t[58]=ge):ge=t[58];let Ae;t[59]!==xe?(Ae={key:"logout",label:xe,icon:ge,onClick:Ci},t[59]=xe,t[60]=Ae):Ae=t[60];const Se=Ae;let ke;t[61]!==y||t[62]!==e?(ke=y?{key:"stop-impersonating",label:e("common.accountPopover.stopImpersonation"),icon:s.jsx(bs,{size:16}),onClick:async()=>{const{error:Ie}=await Ft.admin.stopImpersonating();if(Ie){Ht.error(Ie.message||e("common.accountPopover.failedToStopImpersonation"));return}window.location.href="/"},className:"text-warning"}:null,t[61]=y,t[62]=e,t[63]=ke):ke=t[63];const kt=ke;let Te;t[64]===Symbol.for("react.memo_cache_sentinel")?(Te=s.jsx(yn,{size:14}),t[64]=Te):Te=t[64];let Ne;t[65]!==e?(Ne=e("common.accountPopover.lightTheme"),t[65]=e,t[66]=Ne):Ne=t[66];let q;t[67]!==Ne?(q={value:"light",icon:Te,label:Ne},t[67]=Ne,t[68]=q):q=t[68];let be;t[69]===Symbol.for("react.memo_cache_sentinel")?(be=s.jsx(_n,{size:14}),t[69]=be):be=t[69];let Z;t[70]!==e?(Z=e("common.accountPopover.darkTheme"),t[70]=e,t[71]=Z):Z=t[71];let ie;t[72]!==Z?(ie={value:"dark",icon:be,label:Z},t[72]=Z,t[73]=ie):ie=t[73];let Ce;t[74]===Symbol.for("react.memo_cache_sentinel")?(Ce=s.jsx(vn,{size:14}),t[74]=Ce):Ce=t[74];let oe;t[75]!==e?(oe=e("common.accountPopover.systemTheme"),t[75]=e,t[76]=oe):oe=t[76];let ee;t[77]!==oe?(ee={value:"system",icon:Ce,label:oe},t[77]=oe,t[78]=ee):ee=t[78];let je;t[79]!==q||t[80]!==ie||t[81]!==ee?(je=[q,ie,ee],t[79]=q,t[80]=ie,t[81]=ee,t[82]=je):je=t[82];const we=je;let ve;t[83]!==y||t[84]!==d||t[85]!==fe||t[86]!==m||t[87]!==c||t[88]!==Se||t[89]!==kt||t[90]!==we||t[91]!==x||t[92]!==j?(ve={user:x,userImage:j,menuItems:fe,signOutItem:Se,stopImpersonatingItem:kt,isImpersonating:y,themeOptions:we,preferences:m,setPreferences:c,close:_,isMobile:d},t[83]=y,t[84]=d,t[85]=fe,t[86]=m,t[87]=c,t[88]=Se,t[89]=kt,t[90]=we,t[91]=x,t[92]=j,t[93]=ve):ve=t[93];const X=ve;let re;t[94]!==y||t[95]!==d||t[96]!==p||t[97]!==X||t[98]!==e||t[99]!==x?.name||t[100]!==j?(re=d?s.jsxs(nn,{open:p,onOpenChange:h,direction:"bottom",children:[s.jsxs("button",{type:"button",onClick:()=>h(!0),className:G("flex items-center gap-3 w-full px-3 py-2.5 rounded-lg transition-colors text-sm text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground",y&&"border-2 border-dashed border-warning"),children:[s.jsx(is,{url:j,fallback:x?.name??"U",shape:"circle",size:"2xs",className:"shrink-0"}),s.jsx("span",{className:"truncate",children:x?.name??e("common.accountPopover.defaultAccountLabel")})]}),s.jsxs(on,{className:"h-[80dvh] p-0",children:[s.jsx(rn,{className:"sr-only",children:e("common.accountPopover.account")}),s.jsx(_s,{...X})]})]}):s.jsxs(Ws,{open:p,onOpenChange:h,children:[s.jsx(Ks,{asChild:!0,children:s.jsxs(de,{tooltip:x?.name??e("common.accountPopover.defaultAccountLabel"),className:G("rounded-md",y&&"border-2 border-dashed border-warning"),children:[s.jsx(is,{url:j,fallback:x?.name??"U",shape:"circle",size:"xs",className:"shrink-0"}),s.jsx("span",{className:"truncate",children:x?.name??e("common.accountPopover.defaultAccountLabel")})]})}),s.jsx(Vs,{side:"right",align:"end",sideOffset:18,collisionPadding:16,className:"w-[280px] p-0 flex flex-col max-h-[520px]",onCloseAutoFocus:Ni,children:s.jsx(_s,{...X})})]}),t[94]=y,t[95]=d,t[96]=p,t[97]=X,t[98]=e,t[99]=x?.name,t[100]=j,t[101]=re):re=t[101];let te;t[102]!==b?(te=s.jsx(Wl,{open:b,onOpenChange:g}),t[102]=b,t[103]=te):te=t[103];let ye;return t[104]!==re||t[105]!==te?(ye=s.jsxs(s.Fragment,{children:[re,te]}),t[104]=re,t[105]=te,t[106]=ye):ye=t[106],ye}function Ni(t){return t.preventDefault()}function Ci(){ce("signed_out",{source:"account_popover"}),yl(),Ft.signOut()}class ki extends L.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,l){}render(){return this.state.hasError?null:this.props.children}}function wi(t){return t<=1?"text-destructive":t<=5?"text-warning":"text-foreground/70"}function Mi(){const t=M.c(17),e=Me(),{org:l}=pe(),{hasDecoKey:i,balanceDollars:n}=en();if(!i)return null;let r;t[0]!==n?(r=n!=null?`Credits: $${n.toFixed(2)}`:"Credits",t[0]=n,t[1]=r):r=t[1];let o;t[2]!==n?(o=G(n!=null&&wi(n)),t[2]=n,t[3]=o):o=t[3];let a;t[4]!==e||t[5]!==l.slug?(a=()=>e({to:"/$org/settings/ai-providers",params:{org:l.slug}}),t[4]=e,t[5]=l.slug,t[6]=a):a=t[6];let m;t[7]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(hn,{}),t[7]=m):m=t[7];let c;t[8]!==n?(c=n!=null?`$${n.toFixed(2)}`:"Credits",t[8]=n,t[9]=c):c=t[9];let d;t[10]!==c?(d=s.jsx("span",{children:c}),t[10]=c,t[11]=d):d=t[11];let f;return t[12]!==r||t[13]!==o||t[14]!==a||t[15]!==d?(f=s.jsx(ue,{children:s.jsx(ne,{children:s.jsxs(de,{tooltip:r,className:o,onClick:a,children:[m,d]})})}),t[12]=r,t[13]=o,t[14]=a,t[15]=d,t[16]=f):f=t[16],f}function Ss(){const t=M.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx(ki,{children:s.jsx(L.Suspense,{fallback:null,children:s.jsx(Mi,{})})}),t[0]=e):e=t[0],e}function Ai(){const t=M.c(14),e=W(),l=Me(),{org:i}=pe();let n;t[0]!==e?(n=e("sidebar.sidebarFooter.settings"),t[0]=e,t[1]=n):n=t[1];let r;t[2]!==l||t[3]!==i.slug?(r=()=>l({to:"/$org/settings",params:{org:i.slug}}),t[2]=l,t[3]=i.slug,t[4]=r):r=t[4];let o;t[5]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(qt,{}),t[5]=o):o=t[5];let a;t[6]!==e?(a=e("sidebar.sidebarFooter.settings"),t[6]=e,t[7]=a):a=t[7];let m;t[8]!==a?(m=s.jsx("span",{children:a}),t[8]=a,t[9]=m):m=t[9];let c;return t[10]!==n||t[11]!==r||t[12]!==m?(c=s.jsxs(de,{tooltip:n,onClick:r,children:[o,m]}),t[10]=n,t[11]=r,t[12]=m,t[13]=c):c=t[13],c}function Ti(){const t=M.c(9),e=W(),l=Me(),{org:i}=pe();let n;t[0]!==e?(n=e("sidebar.sidebarFooter.settings"),t[0]=e,t[1]=n):n=t[1];let r;t[2]!==l||t[3]!==i.slug?(r=()=>l({to:"/$org/settings",params:{org:i.slug}}),t[2]=l,t[3]=i.slug,t[4]=r):r=t[4];let o;t[5]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(qt,{size:15}),t[5]=o):o=t[5];let a;return t[6]!==n||t[7]!==r?(a=s.jsx("button",{type:"button","aria-label":n,onClick:r,className:"shrink-0 flex items-center justify-center size-7 rounded-md text-sidebar-foreground/60 hover:bg-sidebar-accent hover:text-sidebar-foreground transition-colors",children:o}),t[6]=n,t[7]=r,t[8]=a):a=t[8],a}function Ns(){const t=M.c(29),e=W(),[l,i]=L.useState(!1);let n;t[0]!==e?(n=e("sidebar.sidebarFooter.inviteMembers"),t[0]=e,t[1]=n):n=t[1];let r;t[2]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(Ys,{}),t[2]=r):r=t[2];let o;t[3]!==e?(o=e("sidebar.sidebarFooter.inviteMembers"),t[3]=e,t[4]=o):o=t[4];let a;t[5]!==o?(a=s.jsx("span",{children:o}),t[5]=o,t[6]=a):a=t[6];let m;t[7]!==n||t[8]!==a?(m=s.jsx(ne,{children:s.jsx(Xs,{trigger:s.jsxs(de,{tooltip:n,children:[r,a]})})}),t[7]=n,t[8]=a,t[9]=m):m=t[9];let c;t[10]!==e?(c=e("sidebar.sidebarFooter.addConnection"),t[10]=e,t[11]=c):c=t[11];let d,f;t[12]===Symbol.for("react.memo_cache_sentinel")?(d=()=>i(!0),f=s.jsx(wn,{}),t[12]=d,t[13]=f):(d=t[12],f=t[13]);let u;t[14]!==e?(u=e("sidebar.sidebarFooter.addConnection"),t[14]=e,t[15]=u):u=t[15];let p;t[16]!==u?(p=s.jsx("span",{children:u}),t[16]=u,t[17]=p):p=t[17];let h;t[18]!==c||t[19]!==p?(h=s.jsx(ne,{children:s.jsxs(de,{tooltip:c,onClick:d,children:[f,p]})}),t[18]=c,t[19]=p,t[20]=h):h=t[20];let b;t[21]!==h||t[22]!==m?(b=s.jsxs(ue,{className:"gap-0.5",children:[m,h]}),t[21]=h,t[22]=m,t[23]=b):b=t[23];let g;t[24]!==l?(g=s.jsx(tn,{open:l,onOpenChange:i,mode:"browse"}),t[24]=l,t[25]=g):g=t[25];let x;return t[26]!==b||t[27]!==g?(x=s.jsxs(s.Fragment,{children:[b,g]}),t[26]=b,t[27]=g,t[28]=x):x=t[28],x}function Cs(){const t=M.c(10),e=W();let l;t[0]!==e?(l=e("sidebar.sidebarFooter.inviteMembers"),t[0]=e,t[1]=l):l=t[1];let i;t[2]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(Ys,{}),t[2]=i):i=t[2];let n;t[3]!==e?(n=e("sidebar.sidebarFooter.inviteMembers"),t[3]=e,t[4]=n):n=t[4];let r;t[5]!==n?(r=s.jsx("span",{children:n}),t[5]=n,t[6]=r):r=t[6];let o;return t[7]!==l||t[8]!==r?(o=s.jsx(ue,{className:"gap-0.5",children:s.jsx(ne,{children:s.jsx(Xs,{trigger:s.jsxs(de,{tooltip:l,children:[i,r]})})})}),t[7]=l,t[8]=r,t[9]=o):o=t[9],o}function Ii(){const t=M.c(17),{state:e}=Ct(),l=e==="collapsed",i=ms(),n=!i;if(l){let c;t[0]!==n?(c=n&&s.jsx(Ss,{}),t[0]=n,t[1]=c):c=t[1];let d;t[2]!==i?(d=i?s.jsx(Cs,{}):s.jsx(Ns,{}),t[2]=i,t[3]=d):d=t[3];let f;t[4]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsx(ne,{children:s.jsx(Ai,{})}),t[4]=f):f=t[4];let u;t[5]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsxs(ue,{children:[f,s.jsx(ne,{children:s.jsx(os,{})})]}),t[5]=u):u=t[5];let p;return t[6]!==c||t[7]!==d?(p=s.jsxs(ls,{className:"px-2 pb-3 gap-1",children:[c,d,u]}),t[6]=c,t[7]=d,t[8]=p):p=t[8],p}let r;t[9]!==n?(r=n&&s.jsx(Ss,{}),t[9]=n,t[10]=r):r=t[10];let o;t[11]!==i?(o=i?s.jsx(Cs,{}):s.jsx(Ns,{}),t[11]=i,t[12]=o):o=t[12];let a;t[13]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(ue,{className:"gap-0.5",children:s.jsx(ne,{children:s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx("div",{className:"flex-1 min-w-0",children:s.jsx(os,{})}),s.jsx(Ti,{})]})})}),t[13]=a):a=t[13];let m;return t[14]!==r||t[15]!==o?(m=s.jsxs(ls,{className:"px-2 pb-3 gap-0.5",children:[r,o,a]}),t[14]=r,t[15]=o,t[16]=m):m=t[16],m}function Pi(){const t=M.c(11),e=W(),l=Me(),{org:i}=pe(),{setOpenMobile:n}=Ct();let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx("div",{className:"flex-1 min-w-0",children:s.jsx(ue,{children:s.jsx(ne,{children:s.jsx(os,{})})})}),t[0]=r):r=t[0];let o;t[1]!==e?(o=e("sidebar.sidebarFooterMobile.settings"),t[1]=e,t[2]=o):o=t[2];let a;t[3]!==l||t[4]!==i.slug||t[5]!==n?(a=()=>{l({to:"/$org/settings",params:{org:i.slug}}),n(!1)},t[3]=l,t[4]=i.slug,t[5]=n,t[6]=a):a=t[6];let m;t[7]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx(qt,{className:"size-4"}),t[7]=m):m=t[7];let c;return t[8]!==o||t[9]!==a?(c=s.jsx(ls,{className:"px-2 pb-3",children:s.jsxs("div",{className:"flex items-center gap-1",children:[r,s.jsx(Ut,{"aria-label":o,onClick:a,children:m})]})}),t[8]=o,t[9]=a,t[10]=c):c=t[10],c}function ks(t){const e=M.c(15),{className:l,wrapperClassName:i,children:n}=t,[r,o]=L.useState(!1);let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=x=>{x&&o(x.scrollHeight>x.clientHeight+1)},e[0]=a):a=e[0];const m=a;let c;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=x=>{const j=x.currentTarget;o(j.scrollHeight-j.scrollTop>j.clientHeight+1)},e[1]=c):c=e[1];const d=c;let f;e[2]!==i?(f=G("relative",i),e[2]=i,e[3]=f):f=e[3];let u;e[4]!==n||e[5]!==l?(u=s.jsx("div",{ref:m,onScroll:d,className:l,children:n}),e[4]=n,e[5]=l,e[6]=u):u=e[6];const p=r?"opacity-100":"opacity-0";let h;e[7]!==p?(h=G("pointer-events-none absolute right-0 bottom-0 left-0 h-10 bg-gradient-to-t from-sidebar to-transparent transition-opacity duration-150",p),e[7]=p,e[8]=h):h=e[8];let b;e[9]!==h?(b=s.jsx("div",{"aria-hidden":!0,className:h}),e[9]=h,e[10]=b):b=e[10];let g;return e[11]!==f||e[12]!==u||e[13]!==b?(g=s.jsxs("div",{className:f,children:[u,b]}),e[11]=f,e[12]=u,e[13]=b,e[14]=g):g=e[14],g}function Oi(t){const e=M.c(9),{virtualMcpId:l,size:i,showAutomationBadge:n}=t,r=i===void 0?"sm":i,o=W();let a;e[0]!==r||e[1]!==l?(a=l?s.jsx($i,{virtualMcpId:l,size:r}):s.jsx(Lt,{icon:null,name:"?",size:r}),e[0]=r,e[1]=l,e[2]=a):a=e[2];let m;e[3]!==n||e[4]!==o?(m=n&&s.jsx("span",{"aria-label":o("tasksPanel.mcpAvatar.automationTriggered"),className:"absolute -bottom-0.5 -right-0.5 flex size-4 items-center justify-center rounded-full bg-blue-500 border border-blue-600 text-white",children:s.jsx(el,{size:10,className:"text-white"})}),e[3]=n,e[4]=o,e[5]=m):m=e[5];let c;return e[6]!==a||e[7]!==m?(c=s.jsxs("div",{className:"relative shrink-0",children:[a,m]}),e[6]=a,e[7]=m,e[8]=c):c=e[8],c}function $i(t){const e=M.c(6),{virtualMcpId:l,size:i}=t,n=Zs(l);if(!n){let a;return e[0]!==i?(a=s.jsx(Lt,{icon:null,name:"?",size:i}),e[0]=i,e[1]=a):a=e[1],a}const r=n.icon??null;let o;return e[2]!==n.title||e[3]!==i||e[4]!==r?(o=s.jsx(Lt,{icon:r,name:n.title,size:i}),e[2]=n.title,e[3]=i,e[4]=r,e[5]=o):o=e[5],o}function es(t){const e=M.c(51),{open:l,onOpenChange:i}=t,[n,r]=L.useState(""),{org:o}=pe(),{setTaskId:a}=Js(),m=us(),c=W();let d,f,u;e[0]!==o.id||e[1]!==n?(u=n.trim(),f=_l,d=Ds.globalSearch(o.id,u),e[0]=o.id,e[1]=n,e[2]=d,e[3]=f,e[4]=u):(d=e[2],f=e[3],u=e[4]);let p;e[5]!==m||e[6]!==u?(p=async()=>await m.call("GLOBAL_SEARCH",{query:u,limit:u?20:10}),e[5]=m,e[6]=u,e[7]=p):p=e[7];let h;e[8]!==l||e[9]!==d||e[10]!==p?(h={queryKey:d,enabled:l,queryFn:p,staleTime:1e4},e[8]=l,e[9]=d,e[10]=p,e[11]=h):h=e[11];const{data:b,isFetching:g}=f(h);let x;e[12]!==b?.items?(x=b?.items??[],e[12]=b?.items,e[13]=x):x=e[13];const j=x;let y;e[14]!==i?(y=I=>{I||r(""),i(I)},e[14]=i,e[15]=y):y=e[15];const v=y;let _;e[16]!==v||e[17]!==a?(_=I=>{v(!1),a(I.id,I.virtual_mcp_id??void 0)},e[16]=v,e[17]=a,e[18]=_):_=e[18];const k=_;let S;e[19]!==c?(S=c("tasksPanel.globalSearchDialog.title"),e[19]=c,e[20]=S):S=e[20];let C;e[21]!==S?(C=s.jsx(Ls,{children:S}),e[21]=S,e[22]=C):C=e[22];let N;e[23]!==c?(N=c("tasksPanel.globalSearchDialog.description"),e[23]=c,e[24]=N):N=e[24];let A;e[25]!==N?(A=s.jsx(Ll,{children:N}),e[25]=N,e[26]=A):A=e[26];let O;e[27]!==A||e[28]!==C?(O=s.jsxs(Gl,{className:"sr-only",children:[C,A]}),e[27]=A,e[28]=C,e[29]=O):O=e[29];let P;e[30]!==c?(P=c("tasksPanel.globalSearchDialog.placeholder"),e[30]=c,e[31]=P):P=e[31];let $;e[32]!==n||e[33]!==P?($=s.jsx(Fn,{value:n,onValueChange:r,placeholder:P}),e[32]=n,e[33]=P,e[34]=$):$=e[34];let E;e[35]!==k||e[36]!==g||e[37]!==j||e[38]!==c||e[39]!==u?(E=s.jsx(Dn,{children:g&&j.length===0?s.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:c("tasksPanel.globalSearchDialog.searching")}):j.length===0?s.jsx(En,{children:c("tasksPanel.globalSearchDialog.noResults")}):s.jsx(zn,{heading:u?void 0:c("tasksPanel.globalSearchDialog.recent"),children:j.map(I=>I.type==="thread"?s.jsxs(Rn,{value:`thread:${I.id}:${I.title}`,onSelect:()=>k(I),className:"gap-2.5",children:[s.jsx(Oi,{virtualMcpId:I.virtual_mcp_id,size:"xs"}),s.jsx("div",{className:"flex-1 min-w-0",children:s.jsx("div",{className:"text-sm text-foreground truncate",children:I.title||c("tasksPanel.globalSearchDialog.untitledChat")})}),s.jsx("span",{className:"text-xs text-muted-foreground shrink-0",children:new Date(I.updated_at).toLocaleDateString("en-US",{month:"short",day:"numeric"})})]},`thread:${I.id}`):null)})}),e[35]=k,e[36]=g,e[37]=j,e[38]=c,e[39]=u,e[40]=E):E=e[40];let T;e[41]!==$||e[42]!==E?(T=s.jsxs(Ln,{shouldFilter:!1,className:"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:[$,E]}),e[41]=$,e[42]=E,e[43]=T):T=e[43];let z;e[44]!==O||e[45]!==T?(z=s.jsxs(Bl,{className:"overflow-hidden p-0",closeButtonClassName:"hidden",children:[O,T]}),e[44]=O,e[45]=T,e[46]=z):z=e[46];let D;return e[47]!==v||e[48]!==l||e[49]!==z?(D=s.jsx(Gs,{open:l,onOpenChange:v,children:z}),e[47]=v,e[48]=l,e[49]=z,e[50]=D):D=e[50],D}function Di(t){return t==="ephemeral"||t.startsWith("thread:")}function rl(t){const e=M.c(45),{task:l,isActive:i,onClick:n,onArchive:r,showAutomationBadge:o,showAgentIcon:a,hideStatusIdle:m,indented:c}=t,d=W(),f=Hn(l.status),u=f.icon,p=l.metadata?.kind==="tool_call_run",h=Zs(p?void 0:l.virtual_mcp_id);let b;e[0]!==h?(b=Vn(h),e[0]=h,e[1]=b):b=e[1];const g=b;Un(6e4);const x=o||!!l.trigger_id,j=l.id,y="button",v=0;let _;e[2]!==n?(_=F=>{F.target===F.currentTarget&&(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),n())},e[2]=n,e[3]=_):_=e[3];const k=c?"-ml-4 pl-6":"pl-[7px]",S=i?"bg-accent text-accent-foreground":"hover:bg-accent/60";let C;e[4]!==k||e[5]!==S?(C=G("group/row flex items-center gap-2 py-1.5 rounded-md cursor-pointer transition-colors",k,"focus-visible:outline-none focus-visible:inset-ring-2 focus-visible:inset-ring-ring/50",S),e[4]=k,e[5]=S,e[6]=C):C=e[6];let N;e[7]!==p||e[8]!==a||e[9]!==h?.icon||e[10]!==h?.title?(N=a&&!p&&s.jsx(Lt,{icon:h?.icon??null,name:h?.title??"?",size:"2xs"}),e[7]=p,e[8]=a,e[9]=h?.icon,e[10]=h?.title,e[11]=N):N=e[11];let A;e[12]!==x||e[13]!==d?(A=x&&s.jsx(el,{size:12,"aria-label":d("tasksPanel.taskRow.automationTriggered"),className:"shrink-0 text-blue-500"}),e[12]=x,e[13]=d,e[14]=A):A=e[14];let O;e[15]!==d||e[16]!==l.title?(O=l.title||d("tasksPanel.taskRow.untitledTask"),e[15]=d,e[16]=l.title,e[17]=O):O=e[17];let P;e[18]!==O?(P=s.jsx("div",{className:"text-sm text-foreground truncate",children:O}),e[18]=O,e[19]=P):P=e[19];let $;e[20]!==A||e[21]!==P?($=s.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[A,P]}),e[20]=A,e[21]=P,e[22]=$):$=e[22];let E;e[23]!==g||e[24]!==i||e[25]!==l.branch||e[26]!==l.updated_at?(E=l.updated_at&&s.jsxs("div",{className:G("flex items-center gap-1 text-[11px] min-w-0",i?"text-accent-foreground/70":"text-muted-foreground/60"),children:[l.branch&&!Di(l.branch)?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"truncate font-mono",children:l.branch}),s.jsx("span",{className:"shrink-0",children:"·"})]}):g?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"truncate",children:[g.owner,"/",g.name]}),s.jsx("span",{className:"shrink-0",children:"·"})]}):null,s.jsx("span",{className:"shrink-0",children:Kn(new Date(l.updated_at))})]}),e[23]=g,e[24]=i,e[25]=l.branch,e[26]=l.updated_at,e[27]=E):E=e[27];let T;e[28]!==$||e[29]!==E?(T=s.jsxs("div",{className:"flex-1 min-w-0",children:[$,E]}),e[28]=$,e[29]=E,e[30]=T):T=e[30];const z="shrink-0 grid [grid-template-areas:'slot'] items-center justify-items-center",D=!m&&s.jsx("span",{className:G("[grid-area:slot] flex size-8 items-center justify-center pointer-events-none transition-opacity",r&&"group-hover/row:opacity-0"),"aria-label":d("tasksPanel.taskRow.statusLabel",{status:f.label}),children:s.jsx(u,{size:14,className:G(f.iconClassName,l.status==="in_progress"&&"animate-spin")})});let I;e[31]!==r||e[32]!==d?(I=r&&s.jsxs(Vt,{children:[s.jsx(Wt,{asChild:!0,children:s.jsx("button",{type:"button","aria-label":d("tasksPanel.taskRow.archiveTask"),onClick:F=>{F.stopPropagation(),r()},className:"[grid-area:slot] opacity-0 pointer-events-none group-hover/row:opacity-100 group-hover/row:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto transition-opacity flex size-8 items-center justify-center rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:s.jsx(Sl,{size:14})})}),s.jsx(Kt,{side:"right",children:d("tasksPanel.taskRow.archive")})]}),e[31]=r,e[32]=d,e[33]=I):I=e[33];let B;e[34]!==D||e[35]!==I?(B=s.jsxs("div",{className:z,children:[D,I]}),e[34]=D,e[35]=I,e[36]=B):B=e[36];let Y;return e[37]!==n||e[38]!==T||e[39]!==B||e[40]!==_||e[41]!==C||e[42]!==N||e[43]!==l.id?(Y=s.jsxs("div",{"data-task-id":j,role:y,tabIndex:v,onClick:n,onKeyDown:_,className:C,children:[N,T,B]}),e[37]=n,e[38]=T,e[39]=B,e[40]=_,e[41]=C,e[42]=N,e[43]=l.id,e[44]=Y):Y=e[44],Y}const ws=["requires_action","in_progress","failed","expired","completed"];function Ei(t){const e=new Map(ws.map(l=>[l,[]]));for(const l of t){const i=l.status??"completed";(e.get(i)??e.get("completed")).push(l)}return ws.map(l=>({status:l,threads:e.get(l)}))}const zi="sidebar.group.expanded.";function Ri(t,e){const l=M.c(3),[i,n]=Bt(`${zi}${t}`,e);let r;return l[0]!==i||l[1]!==n?(r=[i,n],l[0]=i,l[1]=n,l[2]=r):r=l[2],r}function al(t){const e=M.c(18),{onClick:l,isFetching:i,indented:n}=t,r=W();let o;e[0]!==r?(o=r("sidebar.showMoreButton.ariaLabel"),e[0]=r,e[1]=o):o=e[1];const a=n?"-ml-4 pl-6 pr-2":"px-2";let m;e[2]!==a?(m=G("flex items-center gap-2 py-1.5 rounded-md text-sm text-muted-foreground",a,"hover:bg-accent/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50","transition-colors disabled:cursor-progress disabled:opacity-60"),e[2]=a,e[3]=m):m=e[3];let c;e[4]!==i?(c=i&&s.jsx(Nl,{size:14,className:"animate-spin"}),e[4]=i,e[5]=c):c=e[5];let d;e[6]!==i||e[7]!==r?(d=r(i?"sidebar.showMoreButton.loading":"sidebar.showMoreButton.showMore"),e[6]=i,e[7]=r,e[8]=d):d=e[8];let f;e[9]!==d?(f=s.jsx("span",{children:d}),e[9]=d,e[10]=f):f=e[10];let u;return e[11]!==i||e[12]!==l||e[13]!==o||e[14]!==m||e[15]!==c||e[16]!==f?(u=s.jsxs("button",{type:"button","aria-label":o,onClick:l,disabled:i,className:m,children:[c,f]}),e[11]=i,e[12]=l,e[13]=o,e[14]=m,e[15]=c,e[16]=f,e[17]=u):u=e[17],u}function Fi(t,e,l,i){return[t,e,l,i.type,i.member,i.currentUserId??""].join("|")}function Li(t){return t.member==="mine"&&!t.currentUserId}const cl=4;let Rt=0;const rs=[];function Gi(){for(;Rt<cl&&rs.length>0;){const t=rs.shift();t&&t()}}function dl(t){return new Promise((e,l)=>{const i=()=>{Rt++,t().then(e,l).finally(()=>{Rt--,Gi()})};Rt<cl?i():rs.push(i)})}const Yt=10;function Ms(t,e,l,i,n){const r={hidden:!1};i.member==="mine"&&i.currentUserId&&(r.created_by=i.currentUserId),i.type==="automation"&&(r.has_trigger=!0),i.type==="manual"&&(r.has_trigger=!1);const o={where:r,limit:n,offset:l,orderBy:[{field:["updated_at"],direction:"desc"}]};return o.status=e,o}function Bi(t,e,l,i){let n=0;for(const r of t)ml(r,e,l,i)&&n++;return n}function ts(t,e,l,i){return Bi(t,e,l,i)}function Hi(t,e){return!!(t>=Yt||t===0&&e)}function As(t,e){return t<e}function Ui(t,e){return e===!1?!1:e===!0?!0:t}function ml(t,e,l,i){return!(t.hidden||(t.status??"completed")!==l||i.member==="mine"&&i.currentUserId&&t.created_by!==i.currentUserId||i.type==="automation"&&!t.trigger_id||i.type==="manual"&&t.trigger_id)}const Gt=new Map,zt=new Map;function Wi(t,e){return e?t>=Yt?!0:null:!1}function Ts(t){return Gt.get(t)}function Ki(t,e){Gt.set(t,e)}function Vi(t,e,l){const i=Gt.get(t);if(i!==void 0){l(i);return}let n=zt.get(t);n||(n=dl(e).then(r=>(Gt.set(t,r),zt.delete(t),r)).catch(()=>(zt.delete(t),Promise.reject(new Error("group probe failed")))),zt.set(t,n)),n.then(l,()=>l(!1))}function Is(t){const e=t,l=Array.isArray(e.items)?e.items:[];return{items:l,hasMore:e.hasMore??l.length===Yt,totalCount:typeof e.totalCount=="number"?e.totalCount:void 0}}function qi(t,e,l,i,n){let r=0;for(const o of t)e.has(o.id)||ml(o,l,i,n)&&r++;return r}function Yi(t,e,l,i){const n=M.c(8),{org:r}=pe(),o=Fi(r.id,t,e,l);let a;n[0]!==l?(a=Li(l),n[0]=l,n[1]=a):a=n[1];const m=a,[c,d]=L.useState({isFetching:!1,isProbing:!1,identity:o,probeSubscribedIdentity:null,serverHasMore:null});c.identity!==o&&d({isFetching:!1,isProbing:!1,identity:o,probeSubscribedIdentity:null,serverHasMore:null});const f=In(),{threads:u,hasMore:p}=Qs(),h=ts(u,t,e,l),b=Hi(h,p),g=Wi(h,p),x=us();if(c.identity===o&&c.serverHasMore===null){const S=g??Ts(o);S!==void 0&&d({isFetching:!1,isProbing:!1,identity:o,probeSubscribedIdentity:c.probeSubscribedIdentity,serverHasMore:S})}!m&&c.identity===o&&c.serverHasMore===null&&g===null&&Ts(o)===void 0&&c.probeSubscribedIdentity!==o&&(d(S=>S.identity===o?{...S,isProbing:!0,probeSubscribedIdentity:o}:S),Vi(o,async()=>{const S=Ms(t,e,0,l,1),C=await x.call("COLLECTION_THREADS_LIST",S),{totalCount:N}=Is(C),A=ts(f.threads.get(),t,e,l);return N===void 0?!1:As(A,N)},S=>{d(C=>C.identity!==o?C:{...C,isProbing:!1,serverHasMore:S})}));const y=async function(){if(c.isFetching||c.isProbing||m)return;const C=o;d(N=>N.identity===C?{...N,isFetching:!0}:N);try{const N=ts(u,t,e,l),A=Ms(t,e,N,l,Yt),O=await dl(()=>x.call("COLLECTION_THREADS_LIST",A)),{items:P,hasMore:$,totalCount:E}=Is(O),T=new Set(u.map(Xi)),z=qi(P,T,t,e,l),D=N;f.mergeThreads(P),d(I=>{if(I.identity!==C)return I;let B;return E!==void 0?B=As(D+z,E):B=P.length===0||z===0?!1:$,Ki(C,B),{...I,isFetching:!1,serverHasMore:B}})}catch(N){const A=N,O=A instanceof Error?A.message:String(A);Ht.error(`Could not load more tasks: ${O}`),d(P=>P.identity===C?{...P,isFetching:!1}:P)}},v=c.isFetching||c.isProbing,_=!m&&!v&&Ui(b,c.serverHasMore);let k;return n[2]!==v||n[3]!==y||n[4]!==_||n[5]!==c.isProbing||n[6]!==c.serverHasMore?(k={hasMore:_,isFetching:v,isProbing:c.isProbing,serverHasMore:c.serverHasMore,loadMore:y},n[2]=v,n[3]=y,n[4]=_,n[5]=c.isProbing,n[6]=c.serverHasMore,n[7]=k):k=n[7],k}function Xi(t){return t.id}function Qi(t){const e=M.c(20),{status:l,threads:i,activeTaskId:n,onSelectTask:r,onArchiveTask:o,canArchive:a,filters:m}=t,{isFetching:c,isProbing:d,loadMore:f,hasMore:u,serverHasMore:p}=Yi("status",l,m),[h,b]=L.useState(!1);!h&&i.length===0&&p===!0&&!c&&!d&&(b(!0),queueMicrotask(()=>{f()}));let g;if(e[0]!==n||e[1]!==a||e[2]!==m||e[3]!==o||e[4]!==r||e[5]!==i){let y;e[7]!==n||e[8]!==a||e[9]!==m||e[10]!==o||e[11]!==r?(y=v=>s.jsx(rl,{task:v,isActive:n===v.id,onClick:()=>r(v),onArchive:a&&v.created_by===m.currentUserId?()=>o(v):void 0,showAutomationBadge:!!v.trigger_id,showAgentIcon:!0,hideStatusIdle:!0,indented:!0},v.id),e[7]=n,e[8]=a,e[9]=m,e[10]=o,e[11]=r,e[12]=y):y=e[12],g=i.map(y),e[0]=n,e[1]=a,e[2]=m,e[3]=o,e[4]=r,e[5]=i,e[6]=g}else g=e[6];let x;e[13]!==u||e[14]!==c||e[15]!==f?(x=(u||c)&&s.jsx(al,{onClick:()=>{f()},isFetching:c,indented:!0}),e[13]=u,e[14]=c,e[15]=f,e[16]=x):x=e[16];let j;return e[17]!==g||e[18]!==x?(j=s.jsxs(s.Fragment,{children:[g,x]}),e[17]=g,e[18]=x,e[19]=j):j=e[19],j}function Ji(t){const e=M.c(36),{status:l,threads:i,activeTaskId:n,onSelectTask:r,onArchiveTask:o,canArchive:a,filters:m}=t,c=Wn[l],d=c.icon,[f,u]=Ri(`status-${l}`,!1);let p;e[0]!==f||e[1]!==u?(p=function(){u(!f)},e[0]=f,e[1]=u,e[2]=p):p=e[2];const h=p;let b;e[3]!==h?(b=C=>{C.target===C.currentTarget&&(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),h())},e[3]=h,e[4]=b):b=e[4];let g;e[5]!==d||e[6]!==c.iconClassName?(g=s.jsx("span",{className:"absolute inset-0 flex items-center justify-center transition-opacity group-hover/group:opacity-0",children:s.jsx(d,{size:12,className:c.iconClassName})}),e[5]=d,e[6]=c.iconClassName,e[7]=g):g=e[7];let x;e[8]!==f?(x=s.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-muted-foreground opacity-0 transition-opacity group-hover/group:opacity-100",children:f?s.jsx(qn,{size:14}):s.jsx(Yn,{size:14})}),e[8]=f,e[9]=x):x=e[9];let j;e[10]!==g||e[11]!==x?(j=s.jsxs("div",{className:"relative size-5 shrink-0 flex items-center justify-center",children:[g,x]}),e[10]=g,e[11]=x,e[12]=j):j=e[12];let y;e[13]!==c.label?(y=s.jsx("span",{className:"flex-1 truncate",children:c.label}),e[13]=c.label,e[14]=y):y=e[14];let v;e[15]!==i.length?(v=s.jsx("div",{className:"size-5 shrink-0 flex items-center justify-center",children:s.jsx("span",{className:"text-xs text-muted-foreground tabular-nums",children:i.length})}),e[15]=i.length,e[16]=v):v=e[16];let _;e[17]!==f||e[18]!==h||e[19]!==b||e[20]!==j||e[21]!==y||e[22]!==v?(_=s.jsxs("div",{role:"button",tabIndex:0,"aria-expanded":f,onClick:h,onKeyDown:b,className:"group/group flex items-center gap-2 px-2 py-1.5 rounded-md text-sm font-medium text-foreground cursor-pointer hover:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 transition-colors",children:[j,y,v]}),e[17]=f,e[18]=h,e[19]=b,e[20]=j,e[21]=y,e[22]=v,e[23]=_):_=e[23];let k;e[24]!==n||e[25]!==a||e[26]!==f||e[27]!==m||e[28]!==o||e[29]!==r||e[30]!==l||e[31]!==i?(k=f&&s.jsx("div",{className:"flex flex-col gap-0.5 pb-1 pl-4",children:s.jsx(Qi,{status:l,threads:i,activeTaskId:n,onSelectTask:r,onArchiveTask:o,canArchive:a,filters:m})}),e[24]=n,e[25]=a,e[26]=f,e[27]=m,e[28]=o,e[29]=r,e[30]=l,e[31]=i,e[32]=k):k=e[32];let S;return e[33]!==_||e[34]!==k?(S=s.jsxs("div",{className:"flex flex-col gap-0.5",children:[_,k]}),e[33]=_,e[34]=k,e[35]=S):S=e[35],S}function Ps(t){const e=M.c(38),{threads:l,groupBy:i,activeTaskId:n,onSelectTask:r,onArchiveTask:o,filters:a,hasMore:m,isFetchingMore:c,onLoadMore:d,filtersActive:f}=t;if(l.length===0&&!m&&!c){let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(Bn,{className:"size-6 opacity-60"}),e[0]=g):g=e[0];const x=f?"No chats match your filters":"No chats yet";let j;return e[1]!==x?(j=s.jsxs("div",{className:"flex flex-col items-center justify-center gap-2 px-4 py-12 text-center text-muted-foreground",children:[g,s.jsx("p",{className:"text-sm",children:x})]}),e[1]=x,e[2]=j):j=e[2],j}const u=l.length>1||m;if(i==="status"){let g;if(e[3]!==n||e[4]!==u||e[5]!==a||e[6]!==o||e[7]!==r||e[8]!==l){let j;e[10]!==n||e[11]!==u||e[12]!==a||e[13]!==o||e[14]!==r?(j=y=>s.jsx(Ji,{status:y.status,threads:y.threads,activeTaskId:n,onSelectTask:r,onArchiveTask:o,canArchive:u,filters:a},y.status),e[10]=n,e[11]=u,e[12]=a,e[13]=o,e[14]=r,e[15]=j):j=e[15],g=Ei(l).map(j),e[3]=n,e[4]=u,e[5]=a,e[6]=o,e[7]=r,e[8]=l,e[9]=g}else g=e[9];let x;return e[16]!==g?(x=s.jsx(s.Fragment,{children:g}),e[16]=g,e[17]=x):x=e[17],x}let p;if(e[18]!==n||e[19]!==u||e[20]!==a||e[21]!==o||e[22]!==r||e[23]!==l){let g;e[25]!==n||e[26]!==u||e[27]!==a||e[28]!==o||e[29]!==r?(g=x=>s.jsx(rl,{task:x,isActive:n===x.id,onClick:()=>r(x),onArchive:u&&x.created_by===a.currentUserId?()=>o(x):void 0,showAutomationBadge:!!x.trigger_id,showAgentIcon:!0},x.id),e[25]=n,e[26]=u,e[27]=a,e[28]=o,e[29]=r,e[30]=g):g=e[30],p=l.map(g),e[18]=n,e[19]=u,e[20]=a,e[21]=o,e[22]=r,e[23]=l,e[24]=p}else p=e[24];let h;e[31]!==m||e[32]!==c||e[33]!==d?(h=(m||c)&&s.jsx(al,{onClick:d,isFetching:c}),e[31]=m,e[32]=c,e[33]=d,e[34]=h):h=e[34];let b;return e[35]!==p||e[36]!==h?(b=s.jsxs(s.Fragment,{children:[p,h]}),e[35]=p,e[36]=h,e[37]=b):b=e[37],b}function Zi(t,e,l){if(!l)return;const i=t.findIndex(n=>n.id===e);if(i!==-1){for(let n=i+1;n<t.length;n++){const r=t[n];if(r?.created_by===l)return r}for(let n=i-1;n>=0;n--){const r=t[n];if(r?.created_by===l)return r}}}function eo(t){const e=M.c(43),{branch:l,onOutcome:i}=t,n=W();let r;e[0]!==i?(r=S=>{S||i("cancel")},e[0]=i,e[1]=r):r=e[1];let o;e[2]!==n?(o=n("sidebar.archiveWorktreeDialog.title"),e[2]=n,e[3]=o):o=e[3];let a;e[4]!==o?(a=s.jsx(Xn,{children:o}),e[4]=o,e[5]=a):a=e[5];let m;e[6]!==n?(m=n("sidebar.archiveWorktreeDialog.stopsAndDeletesBefore"),e[6]=n,e[7]=m):m=e[7];let c;e[8]!==l?(c=s.jsx("span",{className:"font-mono",children:l}),e[8]=l,e[9]=c):c=e[9];let d;e[10]!==n?(d=n("sidebar.archiveWorktreeDialog.stopsAndDeletesAfter"),e[10]=n,e[11]=d):d=e[11];let f;e[12]!==m||e[13]!==c||e[14]!==d?(f=s.jsxs(Qn,{children:[m," ",c," ",d]}),e[12]=m,e[13]=c,e[14]=d,e[15]=f):f=e[15];let u;e[16]!==a||e[17]!==f?(u=s.jsxs(Jn,{children:[a,f]}),e[16]=a,e[17]=f,e[18]=u):u=e[18];let p;e[19]!==i?(p=()=>i("cancel"),e[19]=i,e[20]=p):p=e[20];let h;e[21]!==n?(h=n("sidebar.archiveWorktreeDialog.cancel"),e[21]=n,e[22]=h):h=e[22];let b;e[23]!==h||e[24]!==p?(b=s.jsx(Zn,{onClick:p,children:h}),e[23]=h,e[24]=p,e[25]=b):b=e[25];let g;e[26]===Symbol.for("react.memo_cache_sentinel")?(g=G(Cl({variant:"destructive"})),e[26]=g):g=e[26];let x;e[27]!==i?(x=()=>i("confirm"),e[27]=i,e[28]=x):x=e[28];let j;e[29]!==n?(j=n("sidebar.archiveWorktreeDialog.confirm"),e[29]=n,e[30]=j):j=e[30];let y;e[31]!==x||e[32]!==j?(y=s.jsx(ei,{className:g,onClick:x,children:j}),e[31]=x,e[32]=j,e[33]=y):y=e[33];let v;e[34]!==b||e[35]!==y?(v=s.jsxs(ti,{children:[b,y]}),e[34]=b,e[35]=y,e[36]=v):v=e[36];let _;e[37]!==v||e[38]!==u?(_=s.jsxs(si,{children:[u,v]}),e[37]=v,e[38]=u,e[39]=_):_=e[39];let k;return e[40]!==r||e[41]!==_?(k=s.jsx(li,{open:!0,onOpenChange:r,children:_}),e[40]=r,e[41]=_,e[42]=k):k=e[42],k}function to(t,e){return null}function so(t,e){return t.some(l=>l.id!==e.taskId&&!l.hidden&&l.branch===e.branch&&l.virtual_mcp_id===e.virtualMcpId)}const lo=["archive","reclaim-worktree"],no=[];function io(t){return t==="confirm"?lo:no}function Os(t){const e=M.c(17),{label:l,onClick:i,active:n,children:r}=t,[o,a]=L.useState(!1);let m,c,d,f;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>a(!0),c=()=>a(!1),d=()=>a(!0),f=()=>a(!1),e[0]=m,e[1]=c,e[2]=d,e[3]=f):(m=e[0],c=e[1],d=e[2],f=e[3]);const u=n&&"bg-sidebar-accent text-foreground";let p;e[4]!==u?(p=G("md:size-[34px] rounded-lg",u),e[4]=u,e[5]=p):p=e[5];let h;e[6]!==r||e[7]!==l||e[8]!==i||e[9]!==p?(h=s.jsx(Wt,{asChild:!0,children:s.jsx(Ut,{"aria-label":l,onClick:i,onPointerEnter:m,onPointerLeave:c,onFocus:d,onBlur:f,className:p,children:r})}),e[6]=r,e[7]=l,e[8]=i,e[9]=p,e[10]=h):h=e[10];let b;e[11]!==l?(b=s.jsx(Kt,{side:"bottom",children:l}),e[11]=l,e[12]=b):b=e[12];let g;return e[13]!==o||e[14]!==h||e[15]!==b?(g=s.jsxs(Vt,{open:o,children:[h,b]}),e[13]=o,e[14]=h,e[15]=b,e[16]=g):g=e[16],g}function ss(t){const e=M.c(13),{label:l,value:i,onChange:n,options:r}=t;let o;e[0]!==l?(o=s.jsx("span",{className:"text-sm text-muted-foreground",children:l}),e[0]=l,e[1]=o):o=e[1];let a;e[2]!==n?(a=f=>f&&n(f),e[2]=n,e[3]=a):a=e[3];let m;e[4]!==r?(m=r.map(oo),e[4]=r,e[5]=m):m=e[5];let c;e[6]!==a||e[7]!==m||e[8]!==i?(c=s.jsx(Tn,{type:"single",size:"sm",value:i,onValueChange:a,className:"gap-0.5 rounded-lg border border-border bg-muted/50 p-0.5",children:m}),e[6]=a,e[7]=m,e[8]=i,e[9]=c):c=e[9];let d;return e[10]!==o||e[11]!==c?(d=s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[o,c]}),e[10]=o,e[11]=c,e[12]=d):d=e[12],d}function oo(t){return s.jsxs(An,{value:t.value,className:"h-6 gap-1.5 rounded-md border border-transparent px-2 text-xs font-medium text-muted-foreground hover:bg-transparent data-[state=on]:border-border data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm",children:[t.icon,t.label]},t.value)}function fl(t){const e=M.c(239);let l;e[0]!==t?(l=t===void 0?{}:t,e[0]=t,e[1]=l):l=e[1];const{onNavigate:i}=l,n=W(),{data:r}=Ft.useSession(),o=r?.user?.id,{org:a}=pe();let m;e[2]!==a.id?(m=Xl(a.id),e[2]=a.id,e[3]=m):m=e[3];const c=m.id,{threads:d,hasMore:f,isFetchingMore:u,fetchNextPage:p}=Qs(),h=d.filter(mo),{hide:b,setScope:g}=Pn(),x=Me(),j=us(),{setTaskId:y,createNewTask:v}=Js();let _;e[4]===Symbol.for("react.memo_cache_sentinel")?(_={strict:!1},e[4]=_):_=e[4];const k=kl(_);let S;e[5]===Symbol.for("react.memo_cache_sentinel")?(S={strict:!1},e[5]=S):S=e[5];const C=Es(S),N=k.taskId??null;let A;e[6]!==N||e[7]!==d||e[8]!==C.virtualmcpid?(A=C.virtualmcpid??d.find(w=>w.id===N)?.virtual_mcp_id??null,e[6]=N,e[7]=d,e[8]=C.virtualmcpid,e[9]=A):A=e[9];const O=A;let P;e[10]!==i?(P=()=>{i?.()},e[10]=i,e[11]=P):P=e[11];const $=P,E=[...h].sort(co),[T,z]=L.useState("all"),[D,I]=L.useState("flat"),[B,Y]=Bt("sidebar-threads-scope-all",!1),[F,H]=L.useState(!1),[V,Q]=L.useState(!1),[se,J]=L.useState(null),me=o??null;let he;e[12]!==me||e[13]!==T?(he={type:T,member:"mine",currentUserId:me},e[12]=me,e[13]=T,e[14]=he):he=e[14];const fe=he,xe={};B||(xe.created_by="me"),g(xe);let ge;e[15]!==o?(ge=w=>o?w.filter(R=>R.created_by===o):[],e[15]=o,e[16]=ge):ge=e[16];const Ae=ge;let Se;e[17]!==T?(Se=w=>T==="automation"?w.filter(ao):T==="manual"?w.filter(ro):w,e[17]=T,e[18]=Se):Se=e[18];const ke=Se,kt=Ae(E),Te=ke(kt),Ne=ke(E),q=B?Ne:Te;let be;e[19]!==N||e[20]!==$||e[21]!==o||e[22]!==b||e[23]!==x||e[24]!==a.slug||e[25]!==y||e[26]!==q?(be=w=>{const R=w.id===N,U=b(w.id);if($n(w.id),!R)return U;const K=Zi(q,w.id,o);return $(),K?y(K.id,K.virtual_mcp_id):x({to:"/$org",params:{org:a.slug}}),U},e[19]=N,e[20]=$,e[21]=o,e[22]=b,e[23]=x,e[24]=a.slug,e[25]=y,e[26]=q,e[27]=be):be=e[27];const Z=be;let ie;e[28]!==j||e[29]!==n?(ie=async w=>{try{await j.call("SANDBOX_DELETE",{virtualMcpId:w.virtualMcpId,branch:w.branch,sandboxProviderKind:"user-desktop",removeWorktree:!0})}catch{Ht.error(n("sidebar.archiveWorktreeDialog.reclaimFailed",{branch:w.branch}))}},e[28]=j,e[29]=n,e[30]=ie):ie=e[30];const Ce=ie;let oe;e[31]!==d||e[32]!==Z||e[33]!==o||e[34]!==J?(oe=w=>{if(o&&w.created_by&&w.created_by!==o)return;const R=to();if(!R||so(d,R)){Z(w);return}J({task:w,target:R})},e[31]=d,e[32]=Z,e[33]=o,e[34]=J,e[35]=oe):oe=e[35];const ee=oe;let je;e[36]!==Z||e[37]!==se||e[38]!==Ce||e[39]!==J?(je=w=>{const R=se;R&&(J(null),(async()=>{for(const U of io(w))if(U==="archive")try{await Z(R.task)}catch{return}else await Ce(R.target)})())},e[36]=Z,e[37]=se,e[38]=Ce,e[39]=J,e[40]=je):je=e[40];const we=je;let ve;e[41]!==we||e[42]!==se?(ve=se?s.jsx(eo,{branch:se.target.branch,onOutcome:we}):null,e[41]=we,e[42]=se,e[43]=ve):ve=e[43];const X=ve;let re;e[44]!==$||e[45]!==y?(re=w=>{$(),y(w.id,w.virtual_mcp_id)},e[44]=$,e[45]=y,e[46]=re):re=e[46];const te=re;let ye;e[47]!==O||e[48]!==N||e[49]!==d||e[50]!==$||e[51]!==v||e[52]!==c?(ye=()=>{const w=O??c,R=d.find(U=>U.id===N)?.branch??null;ce("sidebar_new_thread_clicked",{virtual_mcp_id:w}),$(),v(w,R)},e[47]=O,e[48]=N,e[49]=d,e[50]=$,e[51]=v,e[52]=c,e[53]=ye):ye=e[53];const Ie=ye,{state:pl,isMobile:hs,toggleSidebar:Xt}=Ct();if(pl==="collapsed"&&!hs){let w;e[54]!==a?(w=s.jsx(ln,{org:a,size:"sm"}),e[54]=a,e[55]=w):w=e[55];let R;e[56]!==a.name||e[57]!==w?(R=s.jsx(de,{tooltip:a.name,children:w}),e[56]=a.name,e[57]=w,e[58]=R):R=e[58];let U;e[59]!==a.slug||e[60]!==R?(U=s.jsx("div",{className:"flex h-12 shrink-0 items-center justify-center",children:s.jsx(sn,{orgParam:a.slug,side:"right",align:"start",trigger:R})}),e[59]=a.slug,e[60]=R,e[61]=U):U=e[61];let K;e[62]!==n?(K=n("sidebar.taskGroupsList.toggleSidebar"),e[62]=n,e[63]=K):K=e[63];let ae;e[64]!==n?(ae=n("sidebar.taskGroupsList.toggleSidebar"),e[64]=n,e[65]=ae):ae=e[65];let $t;e[66]===Symbol.for("react.memo_cache_sentinel")?($t=s.jsx(Us,{size:16}),e[66]=$t):$t=e[66];let xt;e[67]!==K||e[68]!==ae||e[69]!==Xt?(xt=s.jsx(ne,{children:s.jsx(de,{"aria-label":K,tooltip:ae,onClick:Xt,children:$t})}),e[67]=K,e[68]=ae,e[69]=Xt,e[70]=xt):xt=e[70];let gt;e[71]!==n?(gt=n("sidebar.taskGroupsList.searchChats"),e[71]=n,e[72]=gt):gt=e[72];let bt;e[73]!==n?(bt=n("sidebar.taskGroupsList.searchChats"),e[73]=n,e[74]=bt):bt=e[74];let jt;e[75]!==Q||e[76]!==H?(jt=()=>{ce("tasks_panel_search_opened"),Q(!0),H(!0)},e[75]=Q,e[76]=H,e[77]=jt):jt=e[77];let Dt;e[78]===Symbol.for("react.memo_cache_sentinel")?(Dt=s.jsx(gs,{size:16}),e[78]=Dt):Dt=e[78];let vt;e[79]!==gt||e[80]!==bt||e[81]!==jt?(vt=s.jsx(ne,{children:s.jsx(de,{"aria-label":gt,tooltip:bt,onClick:jt,children:Dt})}),e[79]=gt,e[80]=bt,e[81]=jt,e[82]=vt):vt=e[82];let yt;e[83]!==xt||e[84]!==vt?(yt=s.jsxs(ue,{className:"mt-2 min-h-0 gap-1.5 overflow-y-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:[xt,vt]}),e[83]=xt,e[84]=vt,e[85]=yt):yt=e[85];let _t;e[86]!==V||e[87]!==F||e[88]!==H?(_t=V&&s.jsx(es,{open:F,onOpenChange:H}),e[86]=V,e[87]=F,e[88]=H,e[89]=_t):_t=e[89];let Et;return e[90]!==X||e[91]!==U||e[92]!==yt||e[93]!==_t?(Et=s.jsxs("div",{className:"flex flex-col min-h-0 flex-1 -mt-1 w-[calc(var(--sidebar-width-icon)-1rem)]",children:[U,yt,_t,X]}),e[90]=X,e[91]=U,e[92]=yt,e[93]=_t,e[94]=Et):Et=e[94],Et}const le=D!=="flat"||T!=="all"||B===!0;let Pe;e[95]!==n?(Pe=n("sidebar.taskGroupsList.filterChats"),e[95]=n,e[96]=Pe):Pe=e[96];let Mt;e[97]===Symbol.for("react.memo_cache_sentinel")?(Mt=s.jsx(Mn,{size:16}),e[97]=Mt):Mt=e[97];let Oe;e[98]!==le?(Oe=le&&s.jsx("span",{className:"absolute right-1 top-1 size-1.5 rounded-full bg-primary ring-2 ring-sidebar"}),e[98]=le,e[99]=Oe):Oe=e[99];let $e;e[100]!==le||e[101]!==Pe||e[102]!==Oe?($e=s.jsx(Wt,{asChild:!0,children:s.jsx(Ks,{asChild:!0,children:s.jsxs(Ut,{"aria-label":Pe,active:le,className:"md:size-[34px] rounded-lg",children:[Mt,Oe]})})}),e[100]=le,e[101]=Pe,e[102]=Oe,e[103]=$e):$e=e[103];let De;e[104]!==n?(De=n("sidebar.taskGroupsList.filterChats"),e[104]=n,e[105]=De):De=e[105];let Ee;e[106]!==De?(Ee=s.jsx(Kt,{side:"bottom",children:De}),e[106]=De,e[107]=Ee):Ee=e[107];let ze;e[108]!==$e||e[109]!==Ee?(ze=s.jsxs(Vt,{children:[$e,Ee]}),e[108]=$e,e[109]=Ee,e[110]=ze):ze=e[110];let Re;e[111]!==n?(Re=n("sidebar.taskGroupsList.filterView"),e[111]=n,e[112]=Re):Re=e[112];let Fe;e[113]!==I?(Fe=w=>{ce("tasks_panel_group_by_changed",{to_value:w}),I(w)},e[113]=I,e[114]=Fe):Fe=e[114];let Le;e[115]!==n?(Le=n("sidebar.taskGroupsList.viewList"),e[115]=n,e[116]=Le):Le=e[116];let At;e[117]===Symbol.for("react.memo_cache_sentinel")?(At=s.jsx(xn,{size:13}),e[117]=At):At=e[117];let Ge;e[118]!==Le?(Ge={value:"flat",label:Le,icon:At},e[118]=Le,e[119]=Ge):Ge=e[119];let Be;e[120]!==n?(Be=n("sidebar.taskGroupsList.viewStatus"),e[120]=n,e[121]=Be):Be=e[121];let Tt;e[122]===Symbol.for("react.memo_cache_sentinel")?(Tt=s.jsx(gn,{size:13}),e[122]=Tt):Tt=e[122];let He;e[123]!==Be?(He={value:"status",label:Be,icon:Tt},e[123]=Be,e[124]=He):He=e[124];let Ue;e[125]!==Ge||e[126]!==He?(Ue=[Ge,He],e[125]=Ge,e[126]=He,e[127]=Ue):Ue=e[127];let We;e[128]!==D||e[129]!==Re||e[130]!==Fe||e[131]!==Ue?(We=s.jsx(ss,{label:Re,value:D,onChange:Fe,options:Ue}),e[128]=D,e[129]=Re,e[130]=Fe,e[131]=Ue,e[132]=We):We=e[132];let Ke;e[133]!==n?(Ke=n("sidebar.taskGroupsList.filterType"),e[133]=n,e[134]=Ke):Ke=e[134];let Ve;e[135]!==z?(Ve=w=>{ce("tasks_panel_filter_changed",{to_value:w}),z(w)},e[135]=z,e[136]=Ve):Ve=e[136];let qe;e[137]!==n?(qe=n("sidebar.taskGroupsList.typeAll"),e[137]=n,e[138]=qe):qe=e[138];let Ye;e[139]!==qe?(Ye={value:"all",label:qe},e[139]=qe,e[140]=Ye):Ye=e[140];let Xe;e[141]!==n?(Xe=n("sidebar.taskGroupsList.typeChats"),e[141]=n,e[142]=Xe):Xe=e[142];let Qe;e[143]!==Xe?(Qe={value:"manual",label:Xe},e[143]=Xe,e[144]=Qe):Qe=e[144];let Je;e[145]!==n?(Je=n("sidebar.taskGroupsList.typeAuto"),e[145]=n,e[146]=Je):Je=e[146];let Ze;e[147]!==Je?(Ze={value:"automation",label:Je},e[147]=Je,e[148]=Ze):Ze=e[148];let et;e[149]!==Ye||e[150]!==Qe||e[151]!==Ze?(et=[Ye,Qe,Ze],e[149]=Ye,e[150]=Qe,e[151]=Ze,e[152]=et):et=e[152];let tt;e[153]!==Ke||e[154]!==Ve||e[155]!==et||e[156]!==T?(tt=s.jsx(ss,{label:Ke,value:T,onChange:Ve,options:et}),e[153]=Ke,e[154]=Ve,e[155]=et,e[156]=T,e[157]=tt):tt=e[157];let st;e[158]!==n?(st=n("sidebar.taskGroupsList.filterScope"),e[158]=n,e[159]=st):st=e[159];const Qt=B?"team":"mine";let lt;e[160]!==Y?(lt=w=>Y(w==="team"),e[160]=Y,e[161]=lt):lt=e[161];let nt;e[162]!==n?(nt=n("sidebar.taskGroupsList.scopeMine"),e[162]=n,e[163]=nt):nt=e[163];let it;e[164]!==nt?(it={value:"mine",label:nt},e[164]=nt,e[165]=it):it=e[165];let ot;e[166]!==n?(ot=n("sidebar.taskGroupsList.scopeTeam"),e[166]=n,e[167]=ot):ot=e[167];let rt;e[168]!==ot?(rt={value:"team",label:ot},e[168]=ot,e[169]=rt):rt=e[169];let at;e[170]!==it||e[171]!==rt?(at=[it,rt],e[170]=it,e[171]=rt,e[172]=at):at=e[172];let ct;e[173]!==st||e[174]!==Qt||e[175]!==lt||e[176]!==at?(ct=s.jsx(ss,{label:st,value:Qt,onChange:lt,options:at}),e[173]=st,e[174]=Qt,e[175]=lt,e[176]=at,e[177]=ct):ct=e[177];let dt;e[178]!==We||e[179]!==tt||e[180]!==ct?(dt=s.jsxs(Vs,{align:"start",className:"w-64 flex flex-col gap-3 p-3",children:[We,tt,ct]}),e[178]=We,e[179]=tt,e[180]=ct,e[181]=dt):dt=e[181];let It;e[182]!==ze||e[183]!==dt?(It=s.jsxs(Ws,{children:[ze,dt]}),e[182]=ze,e[183]=dt,e[184]=It):It=e[184];const Jt=It;let Pt;e[185]!==Jt||e[186]!==Ie||e[187]!==Q||e[188]!==H||e[189]!==n?(Pt=w=>s.jsx(qs,{delayDuration:300,children:s.jsxs("div",{className:G("shrink-0 flex items-center justify-between",w?"h-10":"h-10 md:h-[34px] mb-2"),children:[s.jsxs("div",{className:"flex items-center gap-0.5",children:[!w&&s.jsx(tl,{className:"md:size-[34px] rounded-lg"}),Jt]}),s.jsxs("div",{className:"flex items-center gap-0.5",children:[s.jsx(Os,{label:n("sidebar.taskGroupsList.searchChats"),onClick:()=>{ce("tasks_panel_search_opened"),Q(!0),H(!0)},children:s.jsx(gs,{size:16})}),s.jsx(Os,{label:n("sidebar.taskGroupsList.newChat"),onClick:()=>{Ie()},children:s.jsx(bn,{size:16})})]})]})}),e[185]=Jt,e[186]=Ie,e[187]=Q,e[188]=H,e[189]=n,e[190]=Pt):Pt=e[190];const mt=Pt;if(hs){let w;e[191]!==mt?(w=mt(!0),e[191]=mt,e[192]=w):w=e[192];let R;e[193]!==p?(R=()=>{p()},e[193]=p,e[194]=R):R=e[194];let U;e[195]!==N||e[196]!==fe||e[197]!==le||e[198]!==D||e[199]!==ee||e[200]!==te||e[201]!==f||e[202]!==u||e[203]!==R||e[204]!==q?(U=s.jsx(ks,{wrapperClassName:"flex-1 min-h-0",className:"flex flex-col gap-0.5 overflow-y-auto overscroll-contain px-1 h-full",children:s.jsx(Ps,{threads:q,groupBy:D,activeTaskId:N,onSelectTask:te,onArchiveTask:ee,filters:fe,hasMore:f,isFetchingMore:u,onLoadMore:R,filtersActive:le})}),e[195]=N,e[196]=fe,e[197]=le,e[198]=D,e[199]=ee,e[200]=te,e[201]=f,e[202]=u,e[203]=R,e[204]=q,e[205]=U):U=e[205];let K;e[206]!==V||e[207]!==F||e[208]!==H?(K=V&&s.jsx(es,{open:F,onOpenChange:H}),e[206]=V,e[207]=F,e[208]=H,e[209]=K):K=e[209];let ae;return e[210]!==X||e[211]!==w||e[212]!==U||e[213]!==K?(ae=s.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[w,U,K,X]}),e[210]=X,e[211]=w,e[212]=U,e[213]=K,e[214]=ae):ae=e[214],ae}let ft;e[215]!==mt?(ft=mt(!1),e[215]=mt,e[216]=ft):ft=e[216];let ut;e[217]!==p?(ut=()=>{p()},e[217]=p,e[218]=ut):ut=e[218];let pt;e[219]!==N||e[220]!==fe||e[221]!==le||e[222]!==D||e[223]!==ee||e[224]!==te||e[225]!==f||e[226]!==u||e[227]!==ut||e[228]!==q?(pt=s.jsx("div",{className:"flex-1 min-h-0 flex flex-col gap-0.5 -mr-2 pr-2",children:s.jsx(ks,{wrapperClassName:"flex-1 min-h-0",className:"flex flex-col gap-0.5 overflow-y-auto overscroll-contain h-full",children:s.jsx(Ps,{threads:q,groupBy:D,activeTaskId:N,onSelectTask:te,onArchiveTask:ee,filters:fe,hasMore:f,isFetchingMore:u,onLoadMore:ut,filtersActive:le})})}),e[219]=N,e[220]=fe,e[221]=le,e[222]=D,e[223]=ee,e[224]=te,e[225]=f,e[226]=u,e[227]=ut,e[228]=q,e[229]=pt):pt=e[229];let ht;e[230]!==V||e[231]!==F||e[232]!==H?(ht=V&&s.jsx(es,{open:F,onOpenChange:H}),e[230]=V,e[231]=F,e[232]=H,e[233]=ht):ht=e[233];let Ot;return e[234]!==X||e[235]!==ft||e[236]!==pt||e[237]!==ht?(Ot=s.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[ft,pt,ht,X]}),e[234]=X,e[235]=ft,e[236]=pt,e[237]=ht,e[238]=Ot):Ot=e[238],Ot}function ro(t){return!t.trigger_id}function ao(t){return!!t.trigger_id}function co(t,e){return(e.updated_at??"").localeCompare(t.updated_at??"")}function mo(t){return!t.hidden}const fo=5,uo=[{nameWidth:"w-24",taskRows:2},{nameWidth:"w-28",taskRows:0},{nameWidth:"w-20",taskRows:1},{nameWidth:"w-32",taskRows:0},{nameWidth:"w-24",taskRows:0}];function ul(){const t=M.c(3),{state:e}=Ct();if(e==="collapsed"){let n;return t[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx("div",{className:"flex flex-col gap-1.5",children:Array.from({length:fo}).map(xo)}),t[0]=n):n=t[0],n}let l;t[1]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsxs("div",{className:"shrink-0 px-1 h-10 md:h-7 mb-2 flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx(_e,{className:"size-6 rounded-md"}),s.jsx(_e,{className:"size-6 rounded-md"}),s.jsx(_e,{className:"size-6 rounded-md"})]}),s.jsx(_e,{className:"h-6 w-20 rounded-md"})]}),t[1]=l):l=t[1];let i;return t[2]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[l,s.jsx("div",{className:"flex flex-col gap-0.5",children:uo.map(po)})]}),t[2]=i):i=t[2],i}function po(t,e){return s.jsxs("div",{className:"flex flex-col gap-0.5",children:[s.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5",children:[s.jsx(_e,{className:"size-5 rounded-full shrink-0"}),s.jsx(_e,{className:G("h-3",t.nameWidth,"rounded-sm")})]}),t.taskRows>0&&s.jsx("div",{className:"flex flex-col gap-0.5 pb-1 pl-4",children:Array.from({length:t.taskRows}).map(ho)})]},e)}function ho(t,e){return s.jsx("div",{className:"flex items-center gap-2 px-2 py-1.5",children:s.jsx(_e,{className:"h-3 flex-1 rounded-sm"})},e)}function xo(t,e){return s.jsx(_e,{className:"size-10 rounded-lg mx-auto"},e)}function go(){const t=M.c(2);if(ms()){let i;return t[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(ns,{showName:!0}),t[0]=i):i=t[0],i}let l;return t[1]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsxs(s.Fragment,{children:[s.jsx(ns,{}),s.jsx(fs,{})]}),t[1]=l):l=t[1],l}function bo(){const t=M.c(5),e=ll();let l,i;t[0]===Symbol.for("react.memo_cache_sentinel")?(l=s.jsx(Ii,{}),i=s.jsx(go,{}),t[0]=l,t[1]=i):(l=t[0],i=t[1]);let n;t[2]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(as,{children:s.jsx(L.Suspense,{fallback:s.jsx(ul,{}),children:s.jsx(fl,{})})}),t[2]=n):n=t[2];let r;return t[3]!==e?(r=s.jsx(sl,{children:s.jsx(ol,{sections:e,footer:l,header:i,additionalContent:n})}),t[3]=e,t[4]=r):r=t[4],r}function jo(t){const e=M.c(8),{onClose:l}=t,i=ll();let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(Pi,{}),e[0]=n):n=e[0];let r;e[1]===Symbol.for("react.memo_cache_sentinel")?(r=s.jsx(ul,{}),e[1]=r):r=e[1];let o;e[2]!==l?(o=s.jsx(as,{children:s.jsx(L.Suspense,{fallback:r,children:s.jsx(fl,{onNavigate:l})})}),e[2]=l,e[3]=o):o=e[3];let a;return e[4]!==l||e[5]!==i||e[6]!==o?(a=s.jsx(sl,{children:s.jsx(yi,{sections:i,onClose:l,footer:n,additionalContent:o})}),e[4]=l,e[5]=i,e[6]=o,e[7]=a):a=e[7],a}const vo="sidebar.open";function yo(){const t=M.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=s.jsx(Ml,{}),t[0]=e):e=t[0],e}function Ra(){const t=M.c(36),e=Fs(),l=ms();let i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i={strict:!1},t[0]=i):i=t[0];const{connect:n,siteUrl:r}=Es(i),o=n==="1",[a,m]=Bt(vo,!1),{width:c,wrapperRef:d,onStartResize:f,resetWidth:u}=ui(),p=e;let h;t[1]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(tl,{}),t[1]=h):h=t[1];let b;t[2]!==l?(b=!l&&s.jsx("div",{className:"flex min-w-0 flex-1 items-center",children:s.jsx(fs,{})}),t[2]=l,t[3]=b):b=t[3];let g,x,j,y;t[4]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(St.TogglesSlot,{}),x=s.jsx(St.TabsSlot,{className:"shrink-0"}),j=s.jsx(St.CenterSlot,{}),y=s.jsx(St.RightSlot,{}),t[4]=g,t[5]=x,t[6]=j,t[7]=y):(g=t[4],x=t[5],j=t[6],y=t[7]);let v;t[8]!==b?(v=s.jsx(St.Header,{className:"grid-cols-1 px-1",children:s.jsxs("div",{className:"flex w-full min-w-0 items-center gap-1",children:[h,b,g,x,j,y]})}),t[8]=b,t[9]=v):v=t[9];const _=v;let k;t[10]===Symbol.for("react.memo_cache_sentinel")?(k={background:"transparent",containerType:"inline-size"},t[10]=k):k=t[10];let S;t[11]===Symbol.for("react.memo_cache_sentinel")?(S=s.jsx(Il,{className:"flex flex-col min-h-0",style:k,children:s.jsx("div",{className:"flex flex-col h-full min-h-0",children:s.jsx("div",{className:"relative flex-1 min-h-0 flex flex-row",children:s.jsx(L.Suspense,{fallback:s.jsx(yo,{}),children:s.jsx(wl,{})})})})}),t[11]=S):S=t[11];const C=S,N=p&&_,A=`${c}px`;let O;t[12]!==A?(O={"--sidebar-width":A,"--sidebar-width-icon":"3.125rem"},t[12]=A,t[13]=O):O=t[13];const P=O;let $;t[14]!==e||t[15]!==f||t[16]!==u?($=!e&&s.jsxs(s.Fragment,{children:[s.jsx(bo,{}),s.jsx(di,{onPointerDown:f,onDoubleClick:u})]}),t[14]=e,t[15]=f,t[16]=u,t[17]=$):$=t[17];let E;t[18]!==P||t[19]!==$||t[20]!==d?(E=s.jsxs(Pl,{ref:d,className:"flex-1 bg-sidebar relative min-h-0",style:P,children:[$,C]}),t[18]=P,t[19]=$,t[20]=d,t[21]=E):E=t[21];let T;t[22]!==e?(T=e&&s.jsx(Gn,{renderSidebar:_o}),t[22]=e,t[23]=T):T=t[23];let z;t[24]!==r||t[25]!==o?(z=o&&s.jsx(ii,{siteUrl:r}),t[24]=r,t[25]=o,t[26]=z):z=t[26];let D;t[27]!==N||t[28]!==E||t[29]!==T||t[30]!==z?(D=s.jsx(ni,{children:s.jsxs("div",{className:"app-shell-root flex flex-col h-dvh overflow-hidden",children:[N,E,T,z]})}),t[27]=N,t[28]=E,t[29]=T,t[30]=z,t[31]=D):D=t[31];let I;return t[32]!==m||t[33]!==a||t[34]!==D?(I=s.jsx(On,{children:s.jsx(St.Provider,{children:s.jsx(Ol,{open:a,onOpenChange:m,children:D})})}),t[32]=m,t[33]=a,t[34]=D,t[35]=I):I=t[35],I}function _o(t){const{onClose:e}=t;return s.jsx("div",{className:"flex h-full",children:s.jsx("div",{className:"w-full bg-sidebar flex flex-col overflow-y-auto group/sidebar","data-state":"expanded",children:s.jsx(jo,{onClose:e})})})}export{Ra as default};