@openhands/agent-canvas 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/README.md +1 -1
  2. package/README.windows.md +2 -2
  3. package/build/assets/acp-providers-BQ4o4vqy.js +1 -0
  4. package/build/assets/active-backend-context-BsLfwrXB.js +2 -0
  5. package/build/assets/{agent-context-settings-CJUrcBut.js → agent-context-settings-D9i6ezoJ.js} +1 -1
  6. package/build/assets/{agent-profiles-service.api-Biieml2L.js → agent-profiles-service.api-U-9YzDFU.js} +1 -1
  7. package/build/assets/agent-profiles-settings-D-bUV2PX.js +1 -0
  8. package/build/assets/agent-server-client-options-EHB23gyx.js +1 -0
  9. package/build/assets/agent-server-config-C_x8Otd9.js +1 -0
  10. package/build/assets/agent-server-conversation-service.api-BaVQ6NpE.js +88 -0
  11. package/build/assets/agent-settings-BZJHtaIK.js +2 -0
  12. package/build/assets/agent-settings-D4snDd6u.js +1 -0
  13. package/build/assets/alert-banner-BkVt_8Or.js +1 -0
  14. package/build/assets/{api-error-message-Ve79qDcN.js → api-error-message-BXo0lCI5.js} +1 -1
  15. package/build/assets/api-key-entry-screen-fAIld-n7.js +1 -0
  16. package/build/assets/app-settings-DITbrM2u.js +1 -0
  17. package/build/assets/automation-detail-DawHmaOl.js +3 -0
  18. package/build/assets/automation-disabled-reason-DtgC8Ppt.js +1 -0
  19. package/build/assets/{automation-export-DxY47m3T.js → automation-export-Kv6e0bHx.js} +1 -1
  20. package/build/assets/automation-git-sync-Dd98G_Oz.js +1 -0
  21. package/build/assets/automation-setup-route-Cdc109ZD.js +3 -0
  22. package/build/assets/{automation-templates-4C4PM8K7.js → automation-templates-Xhr-FDAB.js} +1 -1
  23. package/build/assets/automations-list-BeP1LuzQ.js +1 -0
  24. package/build/assets/{back-nav-button-B8tH0BEp.js → back-nav-button-DWNiN277.js} +1 -1
  25. package/build/assets/backend-form-modal-DeaUJIik.js +1 -0
  26. package/build/assets/backend-synced-settings-badge-Br85iWIY.js +1 -0
  27. package/build/assets/badge-Cdnei7Ly.js +1 -0
  28. package/build/assets/{base-modal-DTULovNc.js → base-modal-Ds7grR67.js} +1 -1
  29. package/build/assets/{bot-CLMxGFaq.js → bot-ByolqPEr.js} +1 -1
  30. package/build/assets/{brand-button-DxPO4Lf8.js → brand-button-mQq2Ld1I.js} +1 -1
  31. package/build/assets/browser-Bfum8fkE.js +46 -0
  32. package/build/assets/browser-tab-CmYT4j_r.js +1 -0
  33. package/build/assets/canvas-extension-page-CokKSVRG.js +1 -0
  34. package/build/assets/canvas-extensions-BoQEYG-2.js +1 -0
  35. package/build/assets/{canvas-extensions-runtime-DdnkgJXV.js → canvas-extensions-runtime-Du2M5iEX.js} +1 -1
  36. package/build/assets/{chat-send-button-B3SFSIg5.js → chat-send-button-DM3JgMc2.js} +1 -1
  37. package/build/assets/check-Bo8s5Ylg.js +1 -0
  38. package/build/assets/chevron-down-Cr6Fn_wS.js +1 -0
  39. package/build/assets/chevron-right-CfdfRn-8.js +1 -0
  40. package/build/assets/circle-check-5pH3qCji.js +1 -0
  41. package/build/assets/circle-plus-check-toggle-BbYBiUwv.js +1 -0
  42. package/build/assets/{cloud-funnel-analytics-BQanUEEC.js → cloud-funnel-analytics-D02kgq1s.js} +1 -1
  43. package/build/assets/{cog-VBlRo6iw.js → cog-Dy1eWbSZ.js} +1 -1
  44. package/build/assets/command-menu-mehU3Evb.js +1 -0
  45. package/build/assets/commits-tab-DhQW8CXi.js +1 -0
  46. package/build/assets/{condenser-settings-eVKFMvap.js → condenser-settings-eRk6Fkx6.js} +1 -1
  47. package/build/assets/confirmation-modal-BmVt_c0I.js +1 -0
  48. package/build/assets/{context-menu-list-item-DDROe12Z.js → context-menu-list-item-lx2zk9G7.js} +1 -1
  49. package/build/assets/{conversation-BnjJSFf5.js → conversation-BOj0ENI6.js} +8 -8
  50. package/build/assets/conversation-SouWlGvs.js +1 -0
  51. package/build/assets/conversation-panel-SouWlGvs.js +1 -0
  52. package/build/assets/conversation-state-store-C6YncQNo.js +1 -0
  53. package/build/assets/conversation-store-DC-JlJuq.js +6 -0
  54. package/build/assets/{conversation-tab-empty-state-DKlzAz5c.js → conversation-tab-empty-state-DIhwCC2J.js} +1 -1
  55. package/build/assets/copy-to-clipboard-button-DVNXLylP.js +1 -0
  56. package/build/assets/device-verify-LP-x7nra.js +1 -0
  57. package/build/assets/{dropdown-classes-B9kJVDIk.js → dropdown-classes-goDldkiu.js} +1 -1
  58. package/build/assets/edit-automation-modal-BJJR9wSW.js +1 -0
  59. package/build/assets/empty-state-Cd-TFe7i.js +1 -0
  60. package/build/assets/{entry.client-Ds8LVp-E.js → entry.client-CJdjIvMZ.js} +2 -2
  61. package/build/assets/enum-filter-dropdown-pocrz9AL.js +1 -0
  62. package/build/assets/environment-switch-overlay-Dwe78wRl.js +1 -0
  63. package/build/assets/error-state-SuWwztxV.js +1 -0
  64. package/build/assets/extensions-hub-O0esK3Er.js +1 -0
  65. package/build/assets/extensions-navigation-CgCVSXje.js +1 -0
  66. package/build/assets/{external-link-DQtv7eTh.js → external-link-Bd7Tga-1.js} +1 -1
  67. package/build/assets/files-tab-B_6t8ljw.js +1 -0
  68. package/build/assets/{form-control-classes-B-z85REi.js → form-control-classes-lQfLxzH4.js} +1 -1
  69. package/build/assets/format-model-name-Dfh9Udrx.js +1 -0
  70. package/build/assets/get-git-path-Bp5rsUkl.js +1 -0
  71. package/build/assets/git-repo-dropdown-CbD0_LPN.js +1 -0
  72. package/build/assets/git-repo-dropdown-DPQVumZg.js +1 -0
  73. package/build/assets/highlighted-source-view-Bp0sgK-f.js +1 -0
  74. package/build/assets/home-BghzJd-D.js +1 -0
  75. package/build/assets/home-CXZ8zawS.js +1 -0
  76. package/build/assets/home-automation-run-tooltip-BdpCckKO.js +1 -0
  77. package/build/assets/home-store-DNQpfIEO.js +1 -0
  78. package/build/assets/hooks-service-DkxnQa4N.js +1 -0
  79. package/build/assets/index-home-Ca6Q5CtT.js +1 -0
  80. package/build/assets/info-BcajzHn1.js +1 -0
  81. package/build/assets/install-server-modal-DvxxYKia.js +1 -0
  82. package/build/assets/{key-CfXbJa8w.js → key-CwTE6XJj.js} +1 -1
  83. package/build/assets/launch-jsRGPRBx.js +1 -0
  84. package/build/assets/link-external-B4gx3EeM.js +1 -0
  85. package/build/assets/list-filter-B8PQk3RA.js +1 -0
  86. package/build/assets/{list-todo-ByXMdY4W.js → list-todo-Caa8E1X_.js} +1 -1
  87. package/build/assets/llm-not-configured-banner-DMdL1vaX.js +27 -0
  88. package/build/assets/llm-settings-dkQ5Oq7W.js +1 -0
  89. package/build/assets/llm-settings-lNDerSlu.js +1 -0
  90. package/build/assets/{llm-subscription-service-aDNBQ7Gq.js → llm-subscription-service-BiQaZbvv.js} +1 -1
  91. package/build/assets/loader-circle-BxJgk73D.js +1 -0
  92. package/build/assets/{loading-spinner-DfHI77BA.js → loading-spinner-DK1sAwVg.js} +1 -1
  93. package/build/assets/manage-backends-modal-DqCJohsX.js +1 -0
  94. package/build/assets/manifest-ff93dc8c.js +1 -0
  95. package/build/assets/manifest-subpage-layout-sxuPqfUr.js +1 -0
  96. package/build/assets/{map-provider-DXvssjw9.js → map-provider-iRs80q_6.js} +1 -1
  97. package/build/assets/markdown-renderer-BH5pqDuJ.js +8 -0
  98. package/build/assets/mcp-BtaJDXnP.js +1 -0
  99. package/build/assets/mcp-installed-servers-Br4ZLsjr.js +1 -0
  100. package/build/assets/mcp-marketplace-utils-BwEnDYqm.js +1 -0
  101. package/build/assets/mcp-page-DwbnQpVs.js +9 -0
  102. package/build/assets/messages-DmFJlW6c.js +41 -0
  103. package/build/assets/{modal-body-DJw4xBki.js → modal-body-DBweM2EN.js} +1 -1
  104. package/build/assets/{modal-classes-Dg0ngBPO.js → modal-classes-jvG85nkU.js} +1 -1
  105. package/build/assets/modal-close-button-BrM5fNnn.js +1 -0
  106. package/build/assets/{mouse-pointer-click-DEhsSUpu.js → mouse-pointer-click-BXlRN92t.js} +1 -1
  107. package/build/assets/onboarding-CQ8T6T0U.js +1 -0
  108. package/build/assets/onboarding-modal-CnliiaSN.js +1 -0
  109. package/build/assets/{organization-service.api-Cyg1Tn03.js → organization-service.api-DmFUEmu5.js} +1 -1
  110. package/build/assets/parse-git-remote-url-BG8pcKL8.js +1 -0
  111. package/build/assets/{pencil-D5c47kyN.js → pencil-q-ihqDYv.js} +1 -1
  112. package/build/assets/{pin-C7vMagvf.js → pin-BdroVQdN.js} +1 -1
  113. package/build/assets/planner-tab-CXph_C9F.js +1 -0
  114. package/build/assets/{plug-CeaqeF6u.js → plug-7ACOEbMs.js} +1 -1
  115. package/build/assets/{plugins-management-service-Bh_pBuf-.js → plugins-management-service-CcEpfNKz.js} +1 -1
  116. package/build/assets/plus-C2e21TFC.js +1 -0
  117. package/build/assets/{profiles-service.api-BbOK0EkF.js → profiles-service.api-DdF_4Zhe.js} +1 -1
  118. package/build/assets/providers-BWRnl31s.js +1 -0
  119. package/build/assets/proxy-DbEf3Nqr.js +1 -0
  120. package/build/assets/{puzzle-DdAqbUrb.js → puzzle-LJYnuxKe.js} +1 -1
  121. package/build/assets/react-BX7IV650.js +1 -0
  122. package/build/assets/recommended-automations-launcher-r0oI91HN.js +1 -0
  123. package/build/assets/{refresh-cw-DEQdPCpH.js → refresh-cw-BtdC3T8P.js} +1 -1
  124. package/build/assets/root-j2fFRlWS.js +2 -0
  125. package/build/assets/root-layout-CfGgm2lo.js +2 -0
  126. package/build/assets/root-sEWn3ha1.css +1 -0
  127. package/build/assets/schema-field-c3Ncgm4x.js +1 -0
  128. package/build/assets/sdk-section-page-DFEiuiFQ.js +1 -0
  129. package/build/assets/secret-form-WXXNFqTM.js +1 -0
  130. package/build/assets/{secrets-service-Cr8g8xuv.js → secrets-service-DU6wh3wX.js} +1 -1
  131. package/build/assets/secrets-settings-BEqbPvjy.js +1 -0
  132. package/build/assets/settings-DjaSQwFh.js +1 -0
  133. package/build/assets/settings-dropdown-input-BRR2OZwi.js +1 -0
  134. package/build/assets/settings-index-DHv4XFcM.js +1 -0
  135. package/build/assets/settings-input-Cm4VxUon.js +1 -0
  136. package/build/assets/{settings-list-classes-Ds4jPBHK.js → settings-list-classes-CaUfKZ33.js} +1 -1
  137. package/build/assets/settings-modal-djXuAnBO.js +1 -0
  138. package/build/assets/settings-nav-DFb3hBMr.js +16 -0
  139. package/build/assets/{settings-service.api-9_xdv_mh.js → settings-service.api-Q9lKW1TX.js} +1 -1
  140. package/build/assets/settings-switch-seaSJc7t.js +1 -0
  141. package/build/assets/{settings-utils-8GIIgOQL.js → settings-utils-BTaaRhLZ.js} +1 -1
  142. package/build/assets/shared-conversation-x3rxVCon.js +1 -0
  143. package/build/assets/{shield-check-DO7wa_eu.js → shield-check-C3Rl0NF8.js} +1 -1
  144. package/build/assets/{sidebar-layout-EPfWxk11.js → sidebar-layout-B6mcvvdV.js} +1 -1
  145. package/build/assets/sidebar-mobile-menu-toggle-CEqS8KnA.js +1 -0
  146. package/build/assets/{sidebar-nav-link-_t4_Ef-9.js → sidebar-nav-link-BTHX11LG.js} +1 -1
  147. package/build/assets/{sidebar-onboarding-checklist-storage-DbDX-Wvj.js → sidebar-onboarding-checklist-storage-BP1kzn6p.js} +1 -1
  148. package/build/assets/sidebar-store-DAZVH-DR.js +1 -0
  149. package/build/assets/skill-card-pill-row-TD39nfP3.js +1 -0
  150. package/build/assets/{skill-filter-BBeZ4JEP.js → skill-filter-CdBbbwjm.js} +2 -2
  151. package/build/assets/{skill-icon-badge-BDhQ-tQ0.js → skill-icon-badge-vUEp7gsC.js} +1 -1
  152. package/build/assets/skill-scope-BTRBQt0-.js +1 -0
  153. package/build/assets/skills-plugins-k1tUNAw4.js +1 -0
  154. package/build/assets/skills-settings-CENviPT7.js +1 -0
  155. package/build/assets/{styled-tooltip-Pd22BIvr.js → styled-tooltip-DVAlWYnL.js} +1 -1
  156. package/build/assets/task-list-tab-BLKF_x9f.js +1 -0
  157. package/build/assets/{terminal-onXx0_Qz.js → terminal-Ckbnqb23.js} +1 -1
  158. package/build/assets/{toggle-switch-lwQtxDcm.js → toggle-switch-DeiG9Mf6.js} +1 -1
  159. package/build/assets/{trash-2-ZhKuTLiz.js → trash-2-Bb40zQzs.js} +1 -1
  160. package/build/assets/trash-CXN2R54L.js +1 -0
  161. package/build/assets/{triangle-alert-BajLPpQg.js → triangle-alert-DEdu-b_L.js} +1 -1
  162. package/build/assets/{typography-HLLg_FAn.js → typography-NarNyelM.js} +1 -1
  163. package/build/assets/usage-tab-Drd3O006.js +1 -0
  164. package/build/assets/use-acp-credential-form-CJ5wPsQm.js +1 -0
  165. package/build/assets/{use-activate-agent-profile-BLKML6vQ.js → use-activate-agent-profile-iQZ0U3qV.js} +1 -1
  166. package/build/assets/use-agent-profiles-LCvb5OXT.js +1 -0
  167. package/build/assets/{use-automation-health-BZkQNEA8.js → use-automation-health-DdgSa8sA.js} +1 -1
  168. package/build/assets/{use-automation-permissions-B_RpvL-s.js → use-automation-permissions-D3kEeieu.js} +1 -1
  169. package/build/assets/{use-automations-Cg0PDIZr.js → use-automations-CEubcYTD.js} +1 -1
  170. package/build/assets/{use-can-manage-org-profiles-BbN6KfDr.js → use-can-manage-org-profiles-CB8ybxFK.js} +1 -1
  171. package/build/assets/{use-canvas-extensions-CFUpHat6.js → use-canvas-extensions-BMacwi2v.js} +1 -1
  172. package/build/assets/{use-cloud-current-user-id-Dk0rjr63.js → use-cloud-current-user-id-BEKRd6XZ.js} +1 -1
  173. package/build/assets/{use-config-DpafU_QP.js → use-config-3WYcJsgC.js} +1 -1
  174. package/build/assets/{use-create-conversation-1YgmAHt-.js → use-create-conversation-Be-eVpFp.js} +1 -1
  175. package/build/assets/use-create-secret-Bk9ZxTjl.js +1 -0
  176. package/build/assets/use-free-models-Ci3FkKEm.js +1 -0
  177. package/build/assets/{use-get-secrets-CQ4b0qK8.js → use-get-secrets-fqS0kxt6.js} +1 -1
  178. package/build/assets/use-is-authed-A2Yinlt0.js +1 -0
  179. package/build/assets/{use-launch-skill-in-chat-DeYa1tFM.js → use-launch-skill-in-chat-QbXDhiHr.js} +1 -1
  180. package/build/assets/use-llm-configured-B71ZEVg2.js +1 -0
  181. package/build/assets/use-llm-profiles-xtCBMbef.js +1 -0
  182. package/build/assets/{use-manifest-capabilities-AOWGcu0j.js → use-manifest-capabilities-Bso6A_-A.js} +1 -1
  183. package/build/assets/{use-onboarding-completion-CoINurkm.js → use-onboarding-completion-CEgjL02y.js} +1 -1
  184. package/build/assets/{use-pinned-home-route-D6krwXjy.js → use-pinned-home-route-pK4IlJ-p.js} +1 -1
  185. package/build/assets/{use-plugins-marketplace-mLsIDhBv.js → use-plugins-marketplace-B8-ZEB34.js} +1 -1
  186. package/build/assets/use-save-agent-profile-D7hJuW_u.js +1 -0
  187. package/build/assets/{use-save-settings-3U5K9-8x.js → use-save-settings-CikTu5xV.js} +1 -1
  188. package/build/assets/{use-settings-Dn00UISA.js → use-settings-BWIH5EuN.js} +1 -1
  189. package/build/assets/use-settings-nav-items-DSKwLDnd.js +1 -0
  190. package/build/assets/use-tracking-ChnSFChv.js +3 -0
  191. package/build/assets/{use-user-conversation-ZWlXtbZb.js → use-user-conversation-C_l65DqW.js} +1 -1
  192. package/build/assets/{useInfiniteQuery-BzrRqjLg.js → useInfiniteQuery-CtSRG7uW.js} +1 -1
  193. package/build/assets/{useMutation-CJuK90oc.js → useMutation-Cszf8mKy.js} +1 -1
  194. package/build/assets/useQueries-pUohFMSP.js +1 -0
  195. package/build/assets/useQuery-DAAacS7O.js +1 -0
  196. package/build/assets/useTranslation-CCgUjPJF.js +1 -0
  197. package/build/assets/utils-D-gOfhmN.js +1 -0
  198. package/build/assets/{vendor~conversation-panel~conversation-4eJ0tml3.js → vendor~conversation-panel~conversation-C22sJuWZ.js} +1 -1
  199. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-D6owle9R.js +2 -0
  200. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js +185 -0
  201. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-40UR63Gt.js +1 -0
  202. package/build/assets/{vendor~index-home~home~conversation-panel~conversation-CSFLzmTN.js → vendor~index-home~home~conversation-panel~conversation-UTl7gUo9.js} +1 -1
  203. package/build/assets/{vendor~root-layout-n8XCEXG8.js → vendor~root-layout-CcdIqs-C.js} +1 -1
  204. package/build/assets/{vendor~root-layout~conversation-panel~conversation-3Idg1_U3.js → vendor~root-layout~conversation-panel~conversation-C3EBV3kp.js} +1 -1
  205. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BCe0JJVy.js +1 -0
  206. package/build/assets/{vendor~root-layout~index-home~home~conversation-panel~conversation-DgQ564nC.js → vendor~root-layout~index-home~home~conversation-panel~conversation-BGGbPcYh.js} +1 -1
  207. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-BFRW8wt-.js +48 -0
  208. package/build/assets/{vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-BPjI-atc.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~skills-setti~eo2nf80n-3eJ4ExtV.js} +1 -1
  209. package/build/assets/{verification-settings-u2POabjH.js → verification-settings-PKtoIUUY.js} +1 -1
  210. package/build/assets/{wrench-CkgI4rxA.js → wrench-B8Wg_nbp.js} +1 -1
  211. package/build/assets/{x-By6qCmtY.js → x-CX8lVGwm.js} +1 -1
  212. package/build/index.html +4 -4
  213. package/build/locales/ar/openhands.json +16 -2
  214. package/build/locales/ca/openhands.json +16 -2
  215. package/build/locales/de/openhands.json +16 -2
  216. package/build/locales/en/openhands.json +16 -2
  217. package/build/locales/es/openhands.json +16 -2
  218. package/build/locales/fr/openhands.json +16 -2
  219. package/build/locales/it/openhands.json +16 -2
  220. package/build/locales/ja/openhands.json +16 -2
  221. package/build/locales/ko-KR/openhands.json +16 -2
  222. package/build/locales/no/openhands.json +16 -2
  223. package/build/locales/pt/openhands.json +16 -2
  224. package/build/locales/tr/openhands.json +16 -2
  225. package/build/locales/uk/openhands.json +16 -2
  226. package/build/locales/zh-CN/openhands.json +16 -2
  227. package/build/locales/zh-TW/openhands.json +16 -2
  228. package/config/defaults.json +3 -3
  229. package/dist/api/cloud/organization-service.api.cjs.map +1 -1
  230. package/dist/api/cloud/organization-service.api.d.ts +9 -1
  231. package/dist/api/cloud/organization-service.api.js.map +1 -1
  232. package/dist/api/config-service/config-service.api.cjs +1 -1
  233. package/dist/api/config-service/config-service.api.cjs.map +1 -1
  234. package/dist/api/config-service/config-service.api.js +6 -2
  235. package/dist/api/config-service/config-service.api.js.map +1 -1
  236. package/dist/api/config-service/config-service.types.d.ts +13 -0
  237. package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs +3 -3
  238. package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs.map +1 -1
  239. package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js +12 -16
  240. package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js.map +1 -1
  241. package/dist/components/features/automations/automation-card.cjs +1 -1
  242. package/dist/components/features/automations/automation-card.cjs.map +1 -1
  243. package/dist/components/features/automations/automation-card.js +39 -38
  244. package/dist/components/features/automations/automation-card.js.map +1 -1
  245. package/dist/components/features/automations/automation-list-row.cjs +1 -1
  246. package/dist/components/features/automations/automation-list-row.cjs.map +1 -1
  247. package/dist/components/features/automations/automation-list-row.js +73 -72
  248. package/dist/components/features/automations/automation-list-row.js.map +1 -1
  249. package/dist/components/features/automations/build-automation-menu-items.cjs +1 -1
  250. package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -1
  251. package/dist/components/features/automations/build-automation-menu-items.d.ts +3 -1
  252. package/dist/components/features/automations/build-automation-menu-items.js +12 -11
  253. package/dist/components/features/automations/build-automation-menu-items.js.map +1 -1
  254. package/dist/components/features/automations/detail/configuration-section.d.ts +7 -1
  255. package/dist/components/features/automations/detail/detail-header.d.ts +8 -5
  256. package/dist/components/features/automations/detail/disabled-reason-banner.d.ts +16 -0
  257. package/dist/components/features/backends/backend-selector.cjs +1 -1
  258. package/dist/components/features/backends/backend-selector.cjs.map +1 -1
  259. package/dist/components/features/backends/backend-selector.js +112 -112
  260. package/dist/components/features/backends/backend-selector.js.map +1 -1
  261. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +1 -1
  262. package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -1
  263. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +62 -61
  264. package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -1
  265. package/dist/components/features/chat/model-messages.cjs +1 -1
  266. package/dist/components/features/chat/model-messages.cjs.map +1 -1
  267. package/dist/components/features/chat/model-messages.js +27 -26
  268. package/dist/components/features/chat/model-messages.js.map +1 -1
  269. package/dist/components/features/conversation-panel/budget-display.cjs +1 -1
  270. package/dist/components/features/conversation-panel/budget-display.cjs.map +1 -1
  271. package/dist/components/features/conversation-panel/budget-display.d.ts +1 -2
  272. package/dist/components/features/conversation-panel/budget-display.js +12 -19
  273. package/dist/components/features/conversation-panel/budget-display.js.map +1 -1
  274. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
  275. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
  276. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +45 -44
  277. package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js.map +1 -1
  278. package/dist/components/features/home/featured-automations/build-home-automation-menu-items.d.ts +1 -2
  279. package/dist/components/features/home/featured-automations/build-pinned-automation-menu-items.d.ts +0 -1
  280. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +1 -1
  281. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -1
  282. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +38 -29
  283. package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
  284. package/dist/components/features/images/image-lightbox.cjs +2 -0
  285. package/dist/components/features/images/image-lightbox.cjs.map +1 -0
  286. package/dist/components/features/images/image-lightbox.d.ts +11 -0
  287. package/dist/components/features/images/image-lightbox.js +37 -0
  288. package/dist/components/features/images/image-lightbox.js.map +1 -0
  289. package/dist/components/features/images/image-preview.cjs +1 -1
  290. package/dist/components/features/images/image-preview.cjs.map +1 -1
  291. package/dist/components/features/images/image-preview.d.ts +2 -1
  292. package/dist/components/features/images/image-preview.js +33 -13
  293. package/dist/components/features/images/image-preview.js.map +1 -1
  294. package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +3 -4
  295. package/dist/components/features/settings/agent-profiles/profile-scope-list.d.ts +20 -0
  296. package/dist/components/features/settings/cloud-settings-link.cjs +1 -1
  297. package/dist/components/features/settings/cloud-settings-link.cjs.map +1 -1
  298. package/dist/components/features/settings/cloud-settings-link.d.ts +3 -1
  299. package/dist/components/features/settings/cloud-settings-link.js +22 -21
  300. package/dist/components/features/settings/cloud-settings-link.js.map +1 -1
  301. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
  302. package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -1
  303. package/dist/components/features/settings/llm-profiles/profile-row.cjs +1 -1
  304. package/dist/components/features/settings/llm-profiles/profile-row.js +1 -1
  305. package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
  306. package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
  307. package/dist/components/features/sidebar/sidebar-rail-body.d.ts +2 -1
  308. package/dist/components/features/sidebar/sidebar-rail-body.js +143 -142
  309. package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
  310. package/dist/components/features/sidebar/sidebar.cjs +1 -1
  311. package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
  312. package/dist/components/features/sidebar/sidebar.js +28 -27
  313. package/dist/components/features/sidebar/sidebar.js.map +1 -1
  314. package/dist/components/providers/agent-server-ui-providers.cjs +1 -1
  315. package/dist/components/providers/agent-server-ui-providers.cjs.map +1 -1
  316. package/dist/components/providers/agent-server-ui-providers.js +33 -29
  317. package/dist/components/providers/agent-server-ui-providers.js.map +1 -1
  318. package/dist/components/shared/buttons/remove-button.cjs +1 -1
  319. package/dist/components/shared/buttons/remove-button.cjs.map +1 -1
  320. package/dist/components/shared/buttons/remove-button.d.ts +2 -1
  321. package/dist/components/shared/buttons/remove-button.js +2 -1
  322. package/dist/components/shared/buttons/remove-button.js.map +1 -1
  323. package/dist/components/shared/free-models-note.cjs +2 -0
  324. package/dist/components/shared/free-models-note.cjs.map +1 -0
  325. package/dist/components/shared/free-models-note.d.ts +3 -0
  326. package/dist/components/shared/free-models-note.js +20 -0
  327. package/dist/components/shared/free-models-note.js.map +1 -0
  328. package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
  329. package/dist/components/shared/modals/settings/model-selector.cjs.map +1 -1
  330. package/dist/components/shared/modals/settings/model-selector.js +102 -112
  331. package/dist/components/shared/modals/settings/model-selector.js.map +1 -1
  332. package/dist/config/defaults.cjs +1 -1
  333. package/dist/config/defaults.cjs.map +1 -1
  334. package/dist/config/defaults.js +3 -3
  335. package/dist/config/defaults.js.map +1 -1
  336. package/dist/constants/acp-providers.cjs +1 -1
  337. package/dist/constants/acp-providers.cjs.map +1 -1
  338. package/dist/constants/acp-providers.d.ts +7 -0
  339. package/dist/constants/acp-providers.js +20 -16
  340. package/dist/constants/acp-providers.js.map +1 -1
  341. package/dist/constants/profile-scope.d.ts +21 -0
  342. package/dist/hooks/chat/use-slash-command.cjs +1 -1
  343. package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
  344. package/dist/hooks/chat/use-slash-command.js +63 -62
  345. package/dist/hooks/chat/use-slash-command.js.map +1 -1
  346. package/dist/hooks/query/use-automation-sdk-version.cjs +1 -1
  347. package/dist/hooks/query/use-automation-sdk-version.cjs.map +1 -1
  348. package/dist/hooks/query/use-automation-sdk-version.js +3 -1
  349. package/dist/hooks/query/use-automation-sdk-version.js.map +1 -1
  350. package/dist/hooks/query/use-free-models.cjs +2 -0
  351. package/dist/hooks/query/use-free-models.cjs.map +1 -0
  352. package/dist/hooks/query/use-free-models.d.ts +23 -0
  353. package/dist/hooks/query/use-free-models.js +67 -0
  354. package/dist/hooks/query/use-free-models.js.map +1 -0
  355. package/dist/hooks/query/use-local-git-info.cjs.map +1 -1
  356. package/dist/hooks/query/use-local-git-info.js.map +1 -1
  357. package/dist/hooks/query/use-provider-models.cjs +1 -1
  358. package/dist/hooks/query/use-provider-models.cjs.map +1 -1
  359. package/dist/hooks/query/use-provider-models.js +34 -25
  360. package/dist/hooks/query/use-provider-models.js.map +1 -1
  361. package/dist/hooks/query/use-search-providers.cjs +1 -1
  362. package/dist/hooks/query/use-search-providers.cjs.map +1 -1
  363. package/dist/hooks/query/use-search-providers.js +31 -19
  364. package/dist/hooks/query/use-search-providers.js.map +1 -1
  365. package/dist/hooks/use-drag-resize.cjs +1 -1
  366. package/dist/hooks/use-drag-resize.cjs.map +1 -1
  367. package/dist/hooks/use-drag-resize.js +8 -9
  368. package/dist/hooks/use-drag-resize.js.map +1 -1
  369. package/dist/hooks/use-home-automation-actions.cjs +1 -1
  370. package/dist/hooks/use-home-automation-actions.cjs.map +1 -1
  371. package/dist/hooks/use-home-automation-actions.d.ts +1 -2
  372. package/dist/hooks/use-home-automation-actions.js +0 -1
  373. package/dist/hooks/use-home-automation-actions.js.map +1 -1
  374. package/dist/i18n/declaration.cjs +1 -1
  375. package/dist/i18n/declaration.cjs.map +1 -1
  376. package/dist/i18n/declaration.d.ts +16 -2
  377. package/dist/i18n/declaration.js +1 -1
  378. package/dist/i18n/declaration.js.map +1 -1
  379. package/dist/i18n/translation.cjs +3 -3
  380. package/dist/i18n/translation.cjs.map +1 -1
  381. package/dist/i18n/translation.js +255 -17
  382. package/dist/i18n/translation.js.map +1 -1
  383. package/dist/locales/ar/openhands.json +16 -2
  384. package/dist/locales/ca/openhands.json +16 -2
  385. package/dist/locales/de/openhands.json +16 -2
  386. package/dist/locales/en/openhands.json +16 -2
  387. package/dist/locales/es/openhands.json +16 -2
  388. package/dist/locales/fr/openhands.json +16 -2
  389. package/dist/locales/it/openhands.json +16 -2
  390. package/dist/locales/ja/openhands.json +16 -2
  391. package/dist/locales/ko-KR/openhands.json +16 -2
  392. package/dist/locales/no/openhands.json +16 -2
  393. package/dist/locales/pt/openhands.json +16 -2
  394. package/dist/locales/tr/openhands.json +16 -2
  395. package/dist/locales/uk/openhands.json +16 -2
  396. package/dist/locales/zh-CN/openhands.json +16 -2
  397. package/dist/locales/zh-TW/openhands.json +16 -2
  398. package/dist/manifests/manifest-validation.cjs +1 -1
  399. package/dist/manifests/manifest-validation.cjs.map +1 -1
  400. package/dist/manifests/manifest-validation.js +2 -2
  401. package/dist/manifests/manifest-validation.js.map +1 -1
  402. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
  403. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
  404. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +15 -8
  405. package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
  406. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
  407. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
  408. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +11 -13
  409. package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
  410. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
  411. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
  412. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +6 -0
  413. package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
  414. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +1 -1
  415. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs.map +1 -1
  416. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +3 -6
  417. package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js.map +1 -1
  418. package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs +1 -1
  419. package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs.map +1 -1
  420. package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js +9 -12
  421. package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js.map +1 -1
  422. package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs +2 -0
  423. package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs.map +1 -0
  424. package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js +41 -0
  425. package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js.map +1 -0
  426. package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs +1 -1
  427. package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs.map +1 -1
  428. package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js +3 -6
  429. package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js.map +1 -1
  430. package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -1
  431. package/dist/node_modules/@openhands/typescript-client/dist/clients.js +1 -1
  432. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs +1 -1
  433. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs.map +1 -1
  434. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js +199 -61
  435. package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
  436. package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs +1 -1
  437. package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs.map +1 -1
  438. package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js +9 -8
  439. package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js.map +1 -1
  440. package/dist/package.cjs +1 -1
  441. package/dist/package.cjs.map +1 -1
  442. package/dist/package.js +2 -2
  443. package/dist/package.js.map +1 -1
  444. package/dist/routes/agent-settings.d.ts +5 -0
  445. package/dist/routes/app-settings.cjs +1 -1
  446. package/dist/routes/app-settings.cjs.map +1 -1
  447. package/dist/routes/app-settings.js +52 -47
  448. package/dist/routes/app-settings.js.map +1 -1
  449. package/dist/routes/llm-settings.cjs +1 -1
  450. package/dist/routes/llm-settings.cjs.map +1 -1
  451. package/dist/routes/llm-settings.js +137 -145
  452. package/dist/routes/llm-settings.js.map +1 -1
  453. package/dist/stores/free-models-store.cjs +2 -0
  454. package/dist/stores/free-models-store.cjs.map +1 -0
  455. package/dist/stores/free-models-store.d.ts +30 -0
  456. package/dist/stores/free-models-store.js +22 -0
  457. package/dist/stores/free-models-store.js.map +1 -0
  458. package/dist/types/automation.cjs.map +1 -1
  459. package/dist/types/automation.d.ts +23 -1
  460. package/dist/types/automation.js.map +1 -1
  461. package/dist/utils/automation-disabled-reason.cjs +2 -0
  462. package/dist/utils/automation-disabled-reason.cjs.map +1 -0
  463. package/dist/utils/automation-disabled-reason.d.ts +32 -0
  464. package/dist/utils/automation-disabled-reason.js +19 -0
  465. package/dist/utils/automation-disabled-reason.js.map +1 -0
  466. package/dist/utils/format-model-name.cjs +1 -1
  467. package/dist/utils/format-model-name.cjs.map +1 -1
  468. package/dist/utils/format-model-name.d.ts +27 -6
  469. package/dist/utils/format-model-name.js +14 -6
  470. package/dist/utils/format-model-name.js.map +1 -1
  471. package/dist/utils/parse-git-remote-url.cjs +1 -1
  472. package/dist/utils/parse-git-remote-url.cjs.map +1 -1
  473. package/dist/utils/parse-git-remote-url.d.ts +5 -1
  474. package/dist/utils/parse-git-remote-url.js +20 -13
  475. package/dist/utils/parse-git-remote-url.js.map +1 -1
  476. package/package.json +2 -2
  477. package/scripts/check-sdk-version-sync.mjs +79 -8
  478. package/scripts/dev-safe.mjs +1 -1
  479. package/scripts/static-server.mjs +24 -7
  480. package/build/assets/acp-providers-DrjNsPOH.js +0 -1
  481. package/build/assets/active-backend-context-rZiLJRUc.js +0 -2
  482. package/build/assets/agent-profiles-settings-x6RvPsq7.js +0 -1
  483. package/build/assets/agent-server-client-options-BikiNwTa.js +0 -1
  484. package/build/assets/agent-server-conversation-service.api-DYFsNHKf.js +0 -88
  485. package/build/assets/agent-settings-BJyovpJ_.js +0 -1
  486. package/build/assets/agent-settings-CpY3zObk.js +0 -2
  487. package/build/assets/alert-banner-vARz1idS.js +0 -1
  488. package/build/assets/api-key-entry-screen-CsMuBhoP.js +0 -1
  489. package/build/assets/app-settings-BaJ7nfHt.js +0 -1
  490. package/build/assets/automation-detail-CVoGDrKq.js +0 -3
  491. package/build/assets/automation-git-sync-CRMP9Bbm.js +0 -1
  492. package/build/assets/automation-setup-route-072beLz1.js +0 -3
  493. package/build/assets/automations-list-xuqTSQL4.js +0 -1
  494. package/build/assets/backend-form-modal-0aJmWdsa.js +0 -1
  495. package/build/assets/backend-synced-settings-badge-B7rKWBir.js +0 -1
  496. package/build/assets/badge-CcGx2TaV.js +0 -1
  497. package/build/assets/browser-C-_qBasq.js +0 -46
  498. package/build/assets/browser-tab-DZanIw5m.js +0 -1
  499. package/build/assets/canvas-extension-page-o_cWgE9B.js +0 -1
  500. package/build/assets/canvas-extensions-DSgNlCha.js +0 -1
  501. package/build/assets/check-fDEfgSzj.js +0 -1
  502. package/build/assets/chevron-down-CFrWHqu8.js +0 -1
  503. package/build/assets/chevron-right-C5roOrJu.js +0 -1
  504. package/build/assets/circle-check-ClTzJTdb.js +0 -1
  505. package/build/assets/circle-plus-check-toggle-Fr-h-mbL.js +0 -1
  506. package/build/assets/command-menu-BT3Ia5Ru.js +0 -1
  507. package/build/assets/commits-tab-2jhtaohl.js +0 -1
  508. package/build/assets/confirmation-modal-gIFHeZt6.js +0 -1
  509. package/build/assets/conversation-DZ578rOX.js +0 -1
  510. package/build/assets/conversation-panel-DZ578rOX.js +0 -1
  511. package/build/assets/conversation-state-store-D1_G_9I-.js +0 -1
  512. package/build/assets/conversation-store-DVVfkCsk.js +0 -6
  513. package/build/assets/copy-to-clipboard-button-B3w0X7WH.js +0 -1
  514. package/build/assets/device-verify-BfkCzyFB.js +0 -1
  515. package/build/assets/edit-automation-modal-BwhJ39JT.js +0 -1
  516. package/build/assets/empty-state-RZz0OfnY.js +0 -1
  517. package/build/assets/enum-filter-dropdown-C4pW0ORd.js +0 -1
  518. package/build/assets/environment-switch-overlay-P2ZAuzov.js +0 -1
  519. package/build/assets/error-state-B_5cgNPJ.js +0 -1
  520. package/build/assets/extensions-hub-DsaUr4ca.js +0 -1
  521. package/build/assets/extensions-navigation-CRMZd-FE.js +0 -1
  522. package/build/assets/files-tab-CCgAcVdc.js +0 -1
  523. package/build/assets/format-model-name-CasAP3nd.js +0 -1
  524. package/build/assets/get-git-path-EHrSDxTM.js +0 -1
  525. package/build/assets/git-repo-dropdown-D2WEQ97X.js +0 -1
  526. package/build/assets/git-repo-dropdown-DVeCUUXG.js +0 -1
  527. package/build/assets/highlighted-source-view-DjHO3SdW.js +0 -1
  528. package/build/assets/home-BorS_vdS.js +0 -1
  529. package/build/assets/home-aIMbHw5M.js +0 -1
  530. package/build/assets/home-automation-run-tooltip-CpHNFiFl.js +0 -1
  531. package/build/assets/home-store-DyXz0w6d.js +0 -1
  532. package/build/assets/hooks-service-C6dpRtZM.js +0 -1
  533. package/build/assets/index-home-zKFuKK2B.js +0 -1
  534. package/build/assets/info-CTIdjttz.js +0 -1
  535. package/build/assets/install-server-modal-DUiZMc8u.js +0 -1
  536. package/build/assets/kebab-menu-item-content-mm04SBD3.js +0 -1
  537. package/build/assets/launch-BSIf9KEg.js +0 -1
  538. package/build/assets/link-external-BNZzCM1I.js +0 -1
  539. package/build/assets/list-filter-CNpqTWVY.js +0 -1
  540. package/build/assets/llm-not-configured-banner-z_QRSeV0.js +0 -27
  541. package/build/assets/llm-settings-B-5AHMiX.js +0 -1
  542. package/build/assets/llm-settings-B3SjHDmA.js +0 -1
  543. package/build/assets/loader-circle-Dex47vVW.js +0 -1
  544. package/build/assets/manage-backends-modal-q1NdFisr.js +0 -1
  545. package/build/assets/manifest-8920b615.js +0 -1
  546. package/build/assets/manifest-subpage-layout-BQQy5ipR.js +0 -1
  547. package/build/assets/markdown-renderer-rivLvYh-.js +0 -8
  548. package/build/assets/mcp-CEXDhQWn.js +0 -1
  549. package/build/assets/mcp-marketplace-utils-Cn_NIMWM.js +0 -1
  550. package/build/assets/mcp-page-LGYIICMG.js +0 -9
  551. package/build/assets/messages-DUSeANAh.js +0 -41
  552. package/build/assets/modal-close-button-B9j4nasm.js +0 -1
  553. package/build/assets/onboarding-BjFebfs5.js +0 -1
  554. package/build/assets/onboarding-modal-DDTjOpyd.js +0 -1
  555. package/build/assets/parse-git-remote-url-DpDM9bK6.js +0 -1
  556. package/build/assets/planner-tab-D8f2Y3rn.js +0 -1
  557. package/build/assets/plus-B3wvU06-.js +0 -1
  558. package/build/assets/providers-2gIIkz2N.js +0 -1
  559. package/build/assets/proxy-CBgMd2zf.js +0 -1
  560. package/build/assets/recommended-automations-launcher-YLAQTp4s.js +0 -1
  561. package/build/assets/root-Bye_XmEL.js +0 -2
  562. package/build/assets/root-Cnwwzgo0.css +0 -1
  563. package/build/assets/root-layout-CSAwxBGM.js +0 -2
  564. package/build/assets/schema-field-CK0xYNbO.js +0 -1
  565. package/build/assets/sdk-section-page-Da73Rs_o.js +0 -1
  566. package/build/assets/secret-form-CB2VwYYg.js +0 -1
  567. package/build/assets/secrets-settings-Bh0udeKv.js +0 -1
  568. package/build/assets/settings-DmyIgRxO.js +0 -1
  569. package/build/assets/settings-dropdown-input-DVpyD87C.js +0 -1
  570. package/build/assets/settings-index-BSJUFmjE.js +0 -1
  571. package/build/assets/settings-input-C0dd8Utu.js +0 -1
  572. package/build/assets/settings-modal-yStgEh2o.js +0 -1
  573. package/build/assets/settings-switch-B78Khmyz.js +0 -1
  574. package/build/assets/shared-conversation-DM96X4KV.js +0 -1
  575. package/build/assets/sidebar-mobile-menu-toggle-D5GR5xT9.js +0 -1
  576. package/build/assets/sidebar-store-CSDFK0W5.js +0 -1
  577. package/build/assets/skill-card-pill-row-989y15jV.js +0 -1
  578. package/build/assets/skill-scope-Dz3kPH3P.js +0 -1
  579. package/build/assets/skills-plugins-e3CYGdUJ.js +0 -1
  580. package/build/assets/skills-settings-3e-FuHw_.js +0 -1
  581. package/build/assets/task-list-tab-3Jg8ywch.js +0 -1
  582. package/build/assets/trash-B6OIe4yX.js +0 -1
  583. package/build/assets/usage-tab-Cm-9j3UK.js +0 -1
  584. package/build/assets/use-acp-credential-form-BARcvjYE.js +0 -1
  585. package/build/assets/use-agent-profiles-1P91KSXz.js +0 -1
  586. package/build/assets/use-create-secret-D8p9ybQj.js +0 -1
  587. package/build/assets/use-is-authed-BRPjCRKM.js +0 -1
  588. package/build/assets/use-llm-configured-DGm8FiRR.js +0 -1
  589. package/build/assets/use-llm-profiles-BTTtpW4z.js +0 -1
  590. package/build/assets/use-save-agent-profile-CxyO9YG-.js +0 -1
  591. package/build/assets/use-settings-nav-items-vrjxTqcu.js +0 -16
  592. package/build/assets/use-tracking-B9prBsrq.js +0 -3
  593. package/build/assets/useQueries-CykmpT-a.js +0 -1
  594. package/build/assets/useQuery-S6j94er1.js +0 -1
  595. package/build/assets/utils-BOco8mxR.js +0 -1
  596. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js +0 -2
  597. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BfkNGovw.js +0 -185
  598. package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-DnDoaYNi.js +0 -1
  599. package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-DkPlXWl9.js +0 -1
  600. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js +0 -48
  601. package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~iyia17eu-CV850oio.js +0 -1
@@ -7,116 +7,117 @@ import { Plus as a } from "../../../node_modules/lucide-react/dist/esm/icons/plu
7
7
  import { Server as o } from "../../../node_modules/lucide-react/dist/esm/icons/server.js";
8
8
  import { Settings as s } from "../../../node_modules/lucide-react/dist/esm/icons/settings.js";
9
9
  import { cn as c } from "../../../utils/utils.js";
10
- import { automationListPath as l, getInterfaceCopy as u, hasAutomationInterface as d } from "../../../manifests/automation-interface.js";
11
- import { StyledTooltip as f } from "../../shared/buttons/styled-tooltip.js";
12
- import { NavigationLink as p } from "../../shared/navigation-link.js";
13
- import { SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS as m, SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS as h, SIDEBAR_ICON_BUTTON_CLASS as g, SIDEBAR_ICON_SLOT_CLASS as ee, sidebarHeaderRowClassName as te, sidebarNavLabelClassName as _, sidebarNavListClassName as v, sidebarNavRowClassName as y } from "./sidebar-layout.js";
10
+ import { getLockedCloudHost as l } from "../../../api/agent-server-config.js";
11
+ import { automationListPath as u, getInterfaceCopy as d, hasAutomationInterface as f } from "../../../manifests/automation-interface.js";
12
+ import { StyledTooltip as p } from "../../shared/buttons/styled-tooltip.js";
13
+ import { NavigationLink as m } from "../../shared/navigation-link.js";
14
+ import { SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS as ee, SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS as te, SIDEBAR_ICON_BUTTON_CLASS as h, SIDEBAR_ICON_SLOT_CLASS as ne, sidebarHeaderRowClassName as g, sidebarNavLabelClassName as _, sidebarNavListClassName as v, sidebarNavRowClassName as y } from "./sidebar-layout.js";
14
15
  import { SidebarCollapsedIconSlot as b } from "./sidebar-collapsed-icon-slot.js";
15
16
  import { SidebarNavLink as x } from "./sidebar-nav-link.js";
16
17
  import { OpenHandsLogoButton as S } from "../../shared/buttons/openhands-logo-button.js";
17
- import { CUSTOMIZE_PATH as C, usePinnedHomeRoute as ne } from "../../../hooks/use-pinned-home-route.js";
18
- import { BackendStatusDot as w } from "../backends/backend-status-dot.js";
19
- import { BackendSelector as T } from "../backends/backend-selector.js";
18
+ import { CUSTOMIZE_PATH as C, usePinnedHomeRoute as w } from "../../../hooks/use-pinned-home-route.js";
19
+ import { BackendStatusDot as T } from "../backends/backend-status-dot.js";
20
+ import { BackendSelector as E } from "../backends/backend-selector.js";
20
21
  import { CommandMenuTrigger as re } from "../command-menu/command-menu-trigger.js";
21
22
  import { AgentCanvasVersionTile as ie } from "../settings/agent-canvas-version-tile.js";
22
23
  import ae from "../../../icons/automations.js";
23
- import { SidebarConversationList as E } from "./sidebar-conversation-list.js";
24
- import { SidebarOnboardingChecklist as D } from "./sidebar-onboarding-checklist.js";
25
- import { useCanvasExtensionsRuntime as O } from "../canvas-extensions/canvas-extensions-runtime.js";
24
+ import { SidebarConversationList as oe } from "./sidebar-conversation-list.js";
25
+ import { SidebarOnboardingChecklist as se } from "./sidebar-onboarding-checklist.js";
26
+ import { useCanvasExtensionsRuntime as D } from "../canvas-extensions/canvas-extensions-runtime.js";
26
27
  import "react";
27
- import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
28
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
28
29
  //#region src/components/features/sidebar/sidebar-rail-body.tsx
29
- var M = 18, N = 34, P = Math.round(N * 30 / 46);
30
- function F({ collapsed: F, showCollapseToggle: I, showMobileCloseButton: L = !1, onCloseMobile: R, collapseToggleLabel: z, onCollapse: B, onExpand: V, showCollapsedExpandButton: H, isExtensionsActive: U, currentPath: W, activeBackend: G, activeBackendHealth: K, collapsedBackendPopoverOpen: q, setCollapsedBackendPopoverOpen: J, collapsedBackendPopoverRef: oe, collapsedBackendCloseTimer: se, onOpenAddBackend: ce, onOpenManageBackends: le }) {
31
- let { t: Y } = e("openhands"), { pages: ue } = O(), X = se, { isPinnedRoute: de, togglePinnedRoute: fe } = ne(), Z = (e, n) => {
32
- let r = de(e);
30
+ var j = 18, M = 34, N = Math.round(M * 30 / 46);
31
+ function P({ collapsed: P, showCollapseToggle: F, showMobileCloseButton: I = !1, onCloseMobile: L, collapseToggleLabel: R, onCollapse: z, onExpand: B, showCollapsedExpandButton: V, isExtensionsActive: ce, currentPath: H, activeBackend: U, activeOrgId: W, activeBackendHealth: G, collapsedBackendPopoverOpen: K, setCollapsedBackendPopoverOpen: q, collapsedBackendPopoverRef: le, collapsedBackendCloseTimer: ue, onOpenAddBackend: de, onOpenManageBackends: fe }) {
32
+ let { t: J } = e("openhands"), { pages: pe } = D(), Y = ue, { isPinnedRoute: me, togglePinnedRoute: he } = w(), X = (e, n) => {
33
+ let r = me(e);
33
34
  return {
34
35
  pinned: r,
35
- onToggle: () => fe(e),
36
- label: Y(r ? t.SIDEBAR$UNPIN_AS_HOME : t.SIDEBAR$PIN_AS_HOME),
36
+ onToggle: () => he(e),
37
+ label: J(r ? t.SIDEBAR$UNPIN_AS_HOME : t.SIDEBAR$PIN_AS_HOME),
37
38
  testId: n
38
39
  };
39
- }, Q = G.kind === "cloud", $ = Q ? `${G.host.replace(/\/+$/, "")}/settings` : null;
40
- return /* @__PURE__ */ j("div", {
40
+ }, Z = U.kind === "cloud", ge = W ? `?org=${encodeURIComponent(W)}` : "", Q = Z ? `${U.host.replace(/\/+$/, "")}/settings${ge}` : null, $ = l() !== null;
41
+ return /* @__PURE__ */ A("div", {
41
42
  className: "flex min-h-0 flex-1 flex-col",
42
43
  children: [
43
- /* @__PURE__ */ j("div", {
44
- className: te(F),
44
+ /* @__PURE__ */ A("div", {
45
+ className: g(P),
45
46
  children: [
46
- /* @__PURE__ */ j("div", {
47
- className: c(F && I ? m : "flex min-w-0 shrink-0 items-center"),
48
- children: [/* @__PURE__ */ A("div", {
49
- className: c(F && I && "flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150", F && H && "opacity-0"),
50
- children: /* @__PURE__ */ A(S, {
51
- logoWidth: N,
52
- logoHeight: P,
47
+ /* @__PURE__ */ A("div", {
48
+ className: c(P && F ? ee : "flex min-w-0 shrink-0 items-center"),
49
+ children: [/* @__PURE__ */ k("div", {
50
+ className: c(P && F && "flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150", P && V && "opacity-0"),
51
+ children: /* @__PURE__ */ k(S, {
52
+ logoWidth: M,
53
+ logoHeight: N,
53
54
  logoClassName: "max-w-none",
54
- className: c(ee, "overflow-visible")
55
+ className: c(ne, "overflow-visible")
55
56
  })
56
- }), F && I ? /* @__PURE__ */ A("button", {
57
+ }), P && F ? /* @__PURE__ */ k("button", {
57
58
  type: "button",
58
59
  "data-testid": "sidebar-collapse-toggle",
59
- "aria-pressed": F,
60
- "aria-label": z,
61
- onClick: V,
62
- className: c(h, H ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none"),
63
- children: /* @__PURE__ */ A(r, {
60
+ "aria-pressed": P,
61
+ "aria-label": R,
62
+ onClick: B,
63
+ className: c(te, V ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none"),
64
+ children: /* @__PURE__ */ k(r, {
64
65
  width: 14,
65
66
  height: 14
66
67
  })
67
68
  }) : null]
68
69
  }),
69
- !F && I ? /* @__PURE__ */ A("button", {
70
+ !P && F ? /* @__PURE__ */ k("button", {
70
71
  type: "button",
71
72
  "data-testid": "sidebar-collapse-toggle",
72
- "aria-pressed": F,
73
- "aria-label": z,
74
- onClick: B,
75
- className: c("hidden md:inline-flex ml-auto", g, "text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]"),
76
- children: /* @__PURE__ */ A(n, {
73
+ "aria-pressed": P,
74
+ "aria-label": R,
75
+ onClick: z,
76
+ className: c("hidden md:inline-flex ml-auto", h, "text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]"),
77
+ children: /* @__PURE__ */ k(n, {
77
78
  width: 14,
78
79
  height: 14
79
80
  })
80
81
  }) : null,
81
- !F && L ? /* @__PURE__ */ A("button", {
82
+ !P && I ? /* @__PURE__ */ k("button", {
82
83
  type: "button",
83
84
  "data-testid": "sidebar-mobile-drawer-close",
84
- onClick: R,
85
- "aria-label": Y(t.SIDEBAR$CLOSE_MENU),
86
- className: c("inline-flex ml-auto", g, "text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]"),
87
- children: /* @__PURE__ */ A(n, {
85
+ onClick: L,
86
+ "aria-label": J(t.SIDEBAR$CLOSE_MENU),
87
+ className: c("inline-flex ml-auto", h, "text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]"),
88
+ children: /* @__PURE__ */ k(n, {
88
89
  width: 14,
89
90
  height: 14
90
91
  })
91
92
  }) : null
92
93
  ]
93
94
  }),
94
- /* @__PURE__ */ j("nav", {
95
- className: v(F),
95
+ /* @__PURE__ */ A("nav", {
96
+ className: v(P),
96
97
  children: [
97
- /* @__PURE__ */ A(re, { collapsed: F }),
98
- /* @__PURE__ */ A(x, {
98
+ /* @__PURE__ */ k(re, { collapsed: P }),
99
+ /* @__PURE__ */ k(x, {
99
100
  to: "/conversations",
100
101
  end: !0,
101
- label: Y(t.SIDEBAR$NEW_CHAT),
102
+ label: J(t.SIDEBAR$NEW_CHAT),
102
103
  testId: "sidebar-conversations-link",
103
- collapsed: F,
104
- icon: /* @__PURE__ */ A(a, {
105
- width: M,
106
- height: M
104
+ collapsed: P,
105
+ icon: /* @__PURE__ */ k(a, {
106
+ width: j,
107
+ height: j
107
108
  })
108
109
  }),
109
- /* @__PURE__ */ A(x, {
110
+ /* @__PURE__ */ k(x, {
110
111
  to: C,
111
- label: Y(t.NAV$CUSTOMIZE),
112
+ label: J(t.NAV$CUSTOMIZE),
112
113
  testId: "sidebar-skills-link",
113
- collapsed: F,
114
- forceActive: U,
115
- pinAction: Z(C, "sidebar-pin-home-toggle-customize"),
116
- icon: /* @__PURE__ */ j("svg", {
114
+ collapsed: P,
115
+ forceActive: ce,
116
+ pinAction: X(C, "sidebar-pin-home-toggle-customize"),
117
+ icon: /* @__PURE__ */ A("svg", {
117
118
  xmlns: "http://www.w3.org/2000/svg",
118
- width: M,
119
- height: M,
119
+ width: j,
120
+ height: j,
120
121
  viewBox: "0 0 24 24",
121
122
  fill: "none",
122
123
  stroke: "currentColor",
@@ -125,140 +126,140 @@ function F({ collapsed: F, showCollapseToggle: I, showMobileCloseButton: L = !1,
125
126
  strokeLinejoin: "round",
126
127
  "aria-hidden": "true",
127
128
  children: [
128
- /* @__PURE__ */ A("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
129
- /* @__PURE__ */ A("path", { d: "m7 16.5-4.74-2.85" }),
130
- /* @__PURE__ */ A("path", { d: "m7 16.5 5-3" }),
131
- /* @__PURE__ */ A("path", { d: "M7 16.5v5.17" }),
132
- /* @__PURE__ */ A("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
133
- /* @__PURE__ */ A("path", { d: "m17 16.5-5-3" }),
134
- /* @__PURE__ */ A("path", { d: "m17 16.5 4.74-2.85" }),
135
- /* @__PURE__ */ A("path", { d: "m17 16.5v5.17" }),
136
- /* @__PURE__ */ A("path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
137
- /* @__PURE__ */ A("path", { d: "M12 8 7.26 5.15" }),
138
- /* @__PURE__ */ A("path", { d: "m12 8 4.74-2.85" }),
139
- /* @__PURE__ */ A("path", { d: "M12 13.5V8" })
129
+ /* @__PURE__ */ k("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
130
+ /* @__PURE__ */ k("path", { d: "m7 16.5-4.74-2.85" }),
131
+ /* @__PURE__ */ k("path", { d: "m7 16.5 5-3" }),
132
+ /* @__PURE__ */ k("path", { d: "M7 16.5v5.17" }),
133
+ /* @__PURE__ */ k("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
134
+ /* @__PURE__ */ k("path", { d: "m17 16.5-5-3" }),
135
+ /* @__PURE__ */ k("path", { d: "m17 16.5 4.74-2.85" }),
136
+ /* @__PURE__ */ k("path", { d: "m17 16.5v5.17" }),
137
+ /* @__PURE__ */ k("path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
138
+ /* @__PURE__ */ k("path", { d: "M12 8 7.26 5.15" }),
139
+ /* @__PURE__ */ k("path", { d: "m12 8 4.74-2.85" }),
140
+ /* @__PURE__ */ k("path", { d: "M12 13.5V8" })
140
141
  ]
141
142
  })
142
143
  }),
143
- d() && /* @__PURE__ */ A(x, {
144
- to: l(),
145
- label: u().sidebarLabel,
144
+ f() && /* @__PURE__ */ k(x, {
145
+ to: u(),
146
+ label: d().sidebarLabel,
146
147
  testId: "sidebar-automations-link",
147
- collapsed: F,
148
- icon: /* @__PURE__ */ A(ae, {
149
- width: M,
150
- height: M
148
+ collapsed: P,
149
+ icon: /* @__PURE__ */ k(ae, {
150
+ width: j,
151
+ height: j
151
152
  }),
152
- pinAction: Z(l(), "sidebar-pin-home-toggle-automations")
153
+ pinAction: X(u(), "sidebar-pin-home-toggle-automations")
153
154
  }),
154
- ue.map((e) => /* @__PURE__ */ A(x, {
155
+ pe.map((e) => /* @__PURE__ */ k(x, {
155
156
  to: e.href,
156
157
  label: e.contribution.nav_label || e.contribution.title,
157
158
  testId: `sidebar-canvas-extension-${e.extension.name}-${e.contribution.id}`,
158
- collapsed: F,
159
- icon: /* @__PURE__ */ A(i, {
160
- width: M,
161
- height: M
159
+ collapsed: P,
160
+ icon: /* @__PURE__ */ k(i, {
161
+ width: j,
162
+ height: j
162
163
  })
163
164
  }, `${e.extension.name}:${e.contribution.id}`))
164
165
  ]
165
166
  }),
166
- /* @__PURE__ */ A(E, { collapsed: F }),
167
- F && I ? /* @__PURE__ */ j("nav", {
168
- className: c(v(F), "mt-auto pb-2 cursor-pointer"),
169
- children: [/* @__PURE__ */ A(f, {
170
- content: Y(t.SIDEBAR$SETTINGS),
167
+ /* @__PURE__ */ k(oe, { collapsed: P }),
168
+ P && F ? /* @__PURE__ */ A("nav", {
169
+ className: c(v(P), "mt-auto pb-2 cursor-pointer"),
170
+ children: [/* @__PURE__ */ k(p, {
171
+ content: J(t.SIDEBAR$SETTINGS),
171
172
  placement: "right",
172
- children: Q && $ ? /* @__PURE__ */ j("a", {
173
- href: $,
174
- target: "_blank",
175
- rel: "noopener noreferrer",
173
+ children: Z && Q ? /* @__PURE__ */ A("a", {
174
+ href: Q,
175
+ target: $ ? void 0 : "_blank",
176
+ rel: $ ? void 0 : "noopener noreferrer",
176
177
  "data-testid": "collapsed-settings-link",
177
- "aria-label": Y(t.SIDEBAR$SETTINGS),
178
+ "aria-label": J(t.SIDEBAR$SETTINGS),
178
179
  className: y({ collapsed: !0 }),
179
- children: [/* @__PURE__ */ A(b, {
180
+ children: [/* @__PURE__ */ k(b, {
180
181
  active: !1,
181
- children: /* @__PURE__ */ A(s, {
182
- width: M,
183
- height: M
182
+ children: /* @__PURE__ */ k(s, {
183
+ width: j,
184
+ height: j
184
185
  })
185
- }), /* @__PURE__ */ A("span", {
186
+ }), /* @__PURE__ */ k("span", {
186
187
  className: _(!0),
187
- children: Y(t.SIDEBAR$SETTINGS)
188
+ children: J(t.SIDEBAR$SETTINGS)
188
189
  })]
189
- }) : /* @__PURE__ */ j(p, {
190
+ }) : /* @__PURE__ */ A(m, {
190
191
  to: "/settings",
191
192
  "data-testid": "collapsed-settings-link",
192
- "aria-label": Y(t.SIDEBAR$SETTINGS),
193
+ "aria-label": J(t.SIDEBAR$SETTINGS),
193
194
  className: y({ collapsed: !0 }),
194
- children: [/* @__PURE__ */ A(b, {
195
- active: W.startsWith("/settings"),
196
- children: /* @__PURE__ */ A(s, {
197
- width: M,
198
- height: M
195
+ children: [/* @__PURE__ */ k(b, {
196
+ active: H.startsWith("/settings"),
197
+ children: /* @__PURE__ */ k(s, {
198
+ width: j,
199
+ height: j
199
200
  })
200
- }), /* @__PURE__ */ A("span", {
201
+ }), /* @__PURE__ */ k("span", {
201
202
  className: _(!0),
202
- children: Y(t.SIDEBAR$SETTINGS)
203
+ children: J(t.SIDEBAR$SETTINGS)
203
204
  })]
204
205
  })
205
- }), /* @__PURE__ */ j("div", {
206
+ }), /* @__PURE__ */ A("div", {
206
207
  className: "relative",
207
- ref: oe,
208
+ ref: le,
208
209
  onMouseEnter: () => {
209
- X.current &&= (clearTimeout(X.current), null), J(!0);
210
+ Y.current &&= (clearTimeout(Y.current), null), q(!0);
210
211
  },
211
212
  onMouseLeave: () => {
212
- X.current = setTimeout(() => J(!1), 150);
213
+ Y.current = setTimeout(() => q(!1), 150);
213
214
  },
214
- children: [/* @__PURE__ */ j("button", {
215
+ children: [/* @__PURE__ */ A("button", {
215
216
  type: "button",
216
217
  "data-testid": "collapsed-backend-selector-link",
217
- "aria-label": Y(t.BACKEND$MANAGE),
218
- "aria-expanded": q,
218
+ "aria-label": J(t.BACKEND$MANAGE),
219
+ "aria-expanded": K,
219
220
  onMouseDown: (e) => {
220
221
  e.preventDefault(), e.stopPropagation();
221
222
  },
222
223
  onMouseUp: (e) => e.stopPropagation(),
223
224
  className: c(y({ collapsed: !0 }), "relative"),
224
- children: [/* @__PURE__ */ A(b, {
225
- active: q,
226
- children: /* @__PURE__ */ j("span", {
225
+ children: [/* @__PURE__ */ k(b, {
226
+ active: K,
227
+ children: /* @__PURE__ */ A("span", {
227
228
  className: "relative inline-flex size-[18px] shrink-0 items-center justify-center",
228
- children: [/* @__PURE__ */ A(w, {
229
- isConnected: K?.isConnected ?? null,
229
+ children: [/* @__PURE__ */ k(T, {
230
+ isConnected: G?.isConnected ?? null,
230
231
  className: "absolute -left-0.5 -top-0.5 z-[1] pointer-events-none"
231
- }), /* @__PURE__ */ A(o, {
232
- width: M,
233
- height: M
232
+ }), /* @__PURE__ */ k(o, {
233
+ width: j,
234
+ height: j
234
235
  })]
235
236
  })
236
- }), /* @__PURE__ */ A("span", {
237
+ }), /* @__PURE__ */ k("span", {
237
238
  className: _(!0),
238
- children: Y(t.BACKEND$MANAGE)
239
+ children: J(t.BACKEND$MANAGE)
239
240
  })]
240
- }), q ? /* @__PURE__ */ A("div", {
241
+ }), K ? /* @__PURE__ */ k("div", {
241
242
  className: "absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]",
242
243
  onClick: (e) => e.stopPropagation(),
243
- children: /* @__PURE__ */ A(T, {
244
- sidebarCollapsed: F,
244
+ children: /* @__PURE__ */ k(E, {
245
+ sidebarCollapsed: P,
245
246
  hideTrigger: !0,
246
247
  defaultOpen: !0,
247
248
  openUpward: !0,
248
- onSelectOption: () => J(!1),
249
- onOpenAddBackend: ce,
250
- onOpenManageBackends: le
249
+ onSelectOption: () => q(!1),
250
+ onOpenAddBackend: de,
251
+ onOpenManageBackends: fe
251
252
  })
252
253
  }) : null]
253
254
  })]
254
255
  }) : null,
255
- F ? null : /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("div", {
256
+ P ? null : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k("div", {
256
257
  className: "mb-2 shrink-0 pr-2.5",
257
- children: /* @__PURE__ */ A(D, { collapsed: F })
258
- }), /* @__PURE__ */ j("div", {
258
+ children: /* @__PURE__ */ k(se, { collapsed: P })
259
+ }), /* @__PURE__ */ A("div", {
259
260
  className: c("flex flex-col items-stretch max-w-none box-border shrink-0 gap-2", "-ml-2.5 w-[calc(100%+0.625rem)] border-t border-[var(--oh-border)] pt-2 px-2.5"),
260
- children: [/* @__PURE__ */ A(ie, { hideWhenUpToDate: !0 }), /* @__PURE__ */ A(T, {
261
- sidebarCollapsed: F,
261
+ children: [/* @__PURE__ */ k(ie, { hideWhenUpToDate: !0 }), /* @__PURE__ */ k(E, {
262
+ sidebarCollapsed: P,
262
263
  openUpward: !0
263
264
  })]
264
265
  })] })
@@ -266,6 +267,6 @@ function F({ collapsed: F, showCollapseToggle: I, showMobileCloseButton: L = !1,
266
267
  });
267
268
  }
268
269
  //#endregion
269
- export { F as SidebarRailBody };
270
+ export { P as SidebarRailBody };
270
271
 
271
272
  //# sourceMappingURL=sidebar-rail-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-rail-body.js","names":[],"sources":["../../../../src/components/features/sidebar/sidebar-rail-body.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ChevronLeft,\n ChevronRight,\n Plus,\n Server,\n Settings,\n PanelsTopLeft,\n} from \"lucide-react\";\nimport { OpenHandsLogoButton } from \"#/components/shared/buttons/openhands-logo-button\";\nimport { NavigationLink } from \"#/components/shared/navigation-link\";\nimport {\n automationListPath,\n getInterfaceCopy,\n hasAutomationInterface,\n} from \"#/manifests/automation-interface\";\nimport {\n CUSTOMIZE_PATH,\n usePinnedHomeRoute,\n} from \"#/hooks/use-pinned-home-route\";\nimport { SidebarCollapsedIconSlot } from \"./sidebar-collapsed-icon-slot\";\nimport { SidebarNavLink } from \"./sidebar-nav-link\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\nimport { StyledTooltip } from \"#/components/shared/buttons/styled-tooltip\";\nimport { BackendSelector } from \"#/components/features/backends/backend-selector\";\nimport { BackendStatusDot } from \"#/components/features/backends/backend-status-dot\";\nimport { CommandMenuTrigger } from \"#/components/features/command-menu/command-menu-trigger\";\nimport { AgentCanvasVersionTile } from \"#/components/features/settings/agent-canvas-version-tile\";\nimport { SidebarConversationList } from \"./sidebar-conversation-list\";\nimport { SidebarOnboardingChecklist } from \"./sidebar-onboarding-checklist\";\nimport AutomationsIcon from \"#/icons/automations.svg?react\";\nimport {\n SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS,\n SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS,\n SIDEBAR_ICON_BUTTON_CLASS,\n SIDEBAR_ICON_SLOT_CLASS,\n sidebarHeaderRowClassName,\n sidebarNavLabelClassName,\n sidebarNavListClassName,\n sidebarNavRowClassName,\n} from \"./sidebar-layout\";\nimport { useCanvasExtensionsRuntime } from \"#/components/features/canvas-extensions/canvas-extensions-runtime\";\nimport type { Backend } from \"#/api/backend-registry/types\";\n\nconst ICON_SIZE = 18;\nconst SIDEBAR_LOGO_WIDTH = 34;\nconst SIDEBAR_LOGO_HEIGHT = Math.round((SIDEBAR_LOGO_WIDTH * 30) / 46);\n\nexport interface SidebarRailBodyProps {\n collapsed: boolean;\n showCollapseToggle: boolean;\n showMobileCloseButton?: boolean;\n onCloseMobile?: () => void;\n collapseToggleLabel: string;\n onCollapse: () => void;\n onExpand: () => void;\n showCollapsedExpandButton: boolean;\n isExtensionsActive: boolean;\n currentPath: string;\n activeBackend: Backend;\n activeBackendHealth: { isConnected: boolean | null } | undefined;\n collapsedBackendPopoverOpen: boolean;\n setCollapsedBackendPopoverOpen: (open: boolean) => void;\n collapsedBackendPopoverRef: React.RefObject<HTMLDivElement | null>;\n collapsedBackendCloseTimer: React.MutableRefObject<ReturnType<\n typeof setTimeout\n > | null>;\n onOpenAddBackend: () => void;\n onOpenManageBackends: () => void;\n}\n\nexport function SidebarRailBody({\n collapsed,\n showCollapseToggle,\n showMobileCloseButton = false,\n onCloseMobile,\n collapseToggleLabel,\n onCollapse,\n onExpand,\n showCollapsedExpandButton,\n isExtensionsActive,\n currentPath,\n activeBackend,\n activeBackendHealth,\n collapsedBackendPopoverOpen,\n setCollapsedBackendPopoverOpen,\n collapsedBackendPopoverRef,\n collapsedBackendCloseTimer,\n onOpenAddBackend,\n onOpenManageBackends,\n}: SidebarRailBodyProps) {\n const { t } = useTranslation(\"openhands\");\n const { pages: canvasExtensionPages } = useCanvasExtensionsRuntime();\n const backendCloseTimerRef = collapsedBackendCloseTimer;\n const { isPinnedRoute, togglePinnedRoute } = usePinnedHomeRoute();\n\n const buildPinAction = (path: string, testId: string) => {\n const pinned = isPinnedRoute(path);\n return {\n pinned,\n onToggle: () => togglePinnedRoute(path),\n label: pinned\n ? t(I18nKey.SIDEBAR$UNPIN_AS_HOME)\n : t(I18nKey.SIDEBAR$PIN_AS_HOME),\n testId,\n };\n };\n\n const isCloudBackend = activeBackend.kind === \"cloud\";\n const cloudSettingsUrl = isCloudBackend\n ? `${activeBackend.host.replace(/\\/+$/, \"\")}/settings`\n : null;\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <div className={sidebarHeaderRowClassName(collapsed)}>\n <div\n className={cn(\n collapsed && showCollapseToggle\n ? SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS\n : \"flex min-w-0 shrink-0 items-center\",\n )}\n >\n <div\n className={cn(\n collapsed &&\n showCollapseToggle &&\n \"flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150\",\n collapsed && showCollapsedExpandButton && \"opacity-0\",\n )}\n >\n <OpenHandsLogoButton\n logoWidth={SIDEBAR_LOGO_WIDTH}\n logoHeight={SIDEBAR_LOGO_HEIGHT}\n logoClassName=\"max-w-none\"\n className={cn(SIDEBAR_ICON_SLOT_CLASS, \"overflow-visible\")}\n />\n </div>\n {collapsed && showCollapseToggle ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-collapse-toggle\"\n aria-pressed={collapsed}\n aria-label={collapseToggleLabel}\n onClick={onExpand}\n className={cn(\n SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS,\n showCollapsedExpandButton\n ? \"opacity-100 pointer-events-auto\"\n : \"opacity-0 pointer-events-none\",\n )}\n >\n <ChevronRight width={14} height={14} />\n </button>\n ) : null}\n </div>\n {!collapsed && showCollapseToggle ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-collapse-toggle\"\n aria-pressed={collapsed}\n aria-label={collapseToggleLabel}\n onClick={onCollapse}\n className={cn(\n \"hidden md:inline-flex ml-auto\",\n SIDEBAR_ICON_BUTTON_CLASS,\n \"text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]\",\n )}\n >\n <ChevronLeft width={14} height={14} />\n </button>\n ) : null}\n {!collapsed && showMobileCloseButton ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-mobile-drawer-close\"\n onClick={onCloseMobile}\n aria-label={t(I18nKey.SIDEBAR$CLOSE_MENU)}\n className={cn(\n \"inline-flex ml-auto\",\n SIDEBAR_ICON_BUTTON_CLASS,\n \"text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]\",\n )}\n >\n <ChevronLeft width={14} height={14} />\n </button>\n ) : null}\n </div>\n\n <nav className={sidebarNavListClassName(collapsed)}>\n <CommandMenuTrigger collapsed={collapsed} />\n <SidebarNavLink\n to=\"/conversations\"\n end\n label={t(I18nKey.SIDEBAR$NEW_CHAT)}\n testId=\"sidebar-conversations-link\"\n collapsed={collapsed}\n icon={<Plus width={ICON_SIZE} height={ICON_SIZE} />}\n />\n <SidebarNavLink\n to={CUSTOMIZE_PATH}\n label={t(I18nKey.NAV$CUSTOMIZE)}\n testId=\"sidebar-skills-link\"\n collapsed={collapsed}\n forceActive={isExtensionsActive}\n pinAction={buildPinAction(\n CUSTOMIZE_PATH,\n \"sidebar-pin-home-toggle-customize\",\n )}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={ICON_SIZE}\n height={ICON_SIZE}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\" />\n <path d=\"m7 16.5-4.74-2.85\" />\n <path d=\"m7 16.5 5-3\" />\n <path d=\"M7 16.5v5.17\" />\n <path d=\"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\" />\n <path d=\"m17 16.5-5-3\" />\n <path d=\"m17 16.5 4.74-2.85\" />\n <path d=\"m17 16.5v5.17\" />\n <path d=\"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\" />\n <path d=\"M12 8 7.26 5.15\" />\n <path d=\"m12 8 4.74-2.85\" />\n <path d=\"M12 13.5V8\" />\n </svg>\n }\n />\n {/* The interface manifest owns this entry's label, so an absent\n manifest leaves the rail without it rather than with host copy. */}\n {hasAutomationInterface() && (\n <SidebarNavLink\n to={automationListPath()}\n label={getInterfaceCopy().sidebarLabel}\n testId=\"sidebar-automations-link\"\n collapsed={collapsed}\n icon={<AutomationsIcon width={ICON_SIZE} height={ICON_SIZE} />}\n pinAction={buildPinAction(\n automationListPath(),\n \"sidebar-pin-home-toggle-automations\",\n )}\n />\n )}\n {canvasExtensionPages.map((page) => (\n <SidebarNavLink\n key={`${page.extension.name}:${page.contribution.id}`}\n to={page.href}\n label={page.contribution.nav_label || page.contribution.title}\n testId={`sidebar-canvas-extension-${page.extension.name}-${page.contribution.id}`}\n collapsed={collapsed}\n icon={<PanelsTopLeft width={ICON_SIZE} height={ICON_SIZE} />}\n />\n ))}\n </nav>\n\n <SidebarConversationList collapsed={collapsed} />\n\n {collapsed && showCollapseToggle ? (\n <nav\n className={cn(\n sidebarNavListClassName(collapsed),\n \"mt-auto pb-2 cursor-pointer\",\n )}\n >\n <StyledTooltip\n content={t(I18nKey.SIDEBAR$SETTINGS)}\n placement=\"right\"\n >\n {isCloudBackend && cloudSettingsUrl ? (\n <a\n href={cloudSettingsUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid=\"collapsed-settings-link\"\n aria-label={t(I18nKey.SIDEBAR$SETTINGS)}\n className={sidebarNavRowClassName({ collapsed: true })}\n >\n <SidebarCollapsedIconSlot active={false}>\n <Settings width={ICON_SIZE} height={ICON_SIZE} />\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.SIDEBAR$SETTINGS)}\n </span>\n </a>\n ) : (\n <NavigationLink\n to=\"/settings\"\n data-testid=\"collapsed-settings-link\"\n aria-label={t(I18nKey.SIDEBAR$SETTINGS)}\n className={sidebarNavRowClassName({ collapsed: true })}\n >\n <SidebarCollapsedIconSlot\n active={currentPath.startsWith(\"/settings\")}\n >\n <Settings width={ICON_SIZE} height={ICON_SIZE} />\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.SIDEBAR$SETTINGS)}\n </span>\n </NavigationLink>\n )}\n </StyledTooltip>\n <div\n className=\"relative\"\n ref={collapsedBackendPopoverRef}\n onMouseEnter={() => {\n if (backendCloseTimerRef.current) {\n clearTimeout(backendCloseTimerRef.current);\n backendCloseTimerRef.current = null;\n }\n setCollapsedBackendPopoverOpen(true);\n }}\n onMouseLeave={() => {\n backendCloseTimerRef.current = setTimeout(\n () => setCollapsedBackendPopoverOpen(false),\n 150,\n );\n }}\n >\n <button\n type=\"button\"\n data-testid=\"collapsed-backend-selector-link\"\n aria-label={t(I18nKey.BACKEND$MANAGE)}\n aria-expanded={collapsedBackendPopoverOpen}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onMouseUp={(event) => event.stopPropagation()}\n className={cn(\n sidebarNavRowClassName({ collapsed: true }),\n \"relative\",\n )}\n >\n <SidebarCollapsedIconSlot active={collapsedBackendPopoverOpen}>\n <span className=\"relative inline-flex size-[18px] shrink-0 items-center justify-center\">\n <BackendStatusDot\n isConnected={activeBackendHealth?.isConnected ?? null}\n className=\"absolute -left-0.5 -top-0.5 z-[1] pointer-events-none\"\n />\n <Server width={ICON_SIZE} height={ICON_SIZE} />\n </span>\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.BACKEND$MANAGE)}\n </span>\n </button>\n {collapsedBackendPopoverOpen ? (\n <div\n className=\"absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]\"\n onClick={(event) => event.stopPropagation()}\n >\n <BackendSelector\n sidebarCollapsed={collapsed}\n hideTrigger\n defaultOpen\n openUpward\n onSelectOption={() => setCollapsedBackendPopoverOpen(false)}\n onOpenAddBackend={onOpenAddBackend}\n onOpenManageBackends={onOpenManageBackends}\n />\n </div>\n ) : null}\n </div>\n </nav>\n ) : null}\n\n {!collapsed ? (\n <>\n <div className=\"mb-2 shrink-0 pr-2.5\">\n <SidebarOnboardingChecklist collapsed={collapsed} />\n </div>\n <div\n className={cn(\n \"flex flex-col items-stretch max-w-none box-border shrink-0 gap-2\",\n \"-ml-2.5 w-[calc(100%+0.625rem)] border-t border-[var(--oh-border)] pt-2 px-2.5\",\n )}\n >\n <AgentCanvasVersionTile hideWhenUpToDate />\n <BackendSelector sidebarCollapsed={collapsed} openUpward />\n </div>\n </>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar-rail-body.js","names":[],"sources":["../../../../src/components/features/sidebar/sidebar-rail-body.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ChevronLeft,\n ChevronRight,\n Plus,\n Server,\n Settings,\n PanelsTopLeft,\n} from \"lucide-react\";\nimport { OpenHandsLogoButton } from \"#/components/shared/buttons/openhands-logo-button\";\nimport { NavigationLink } from \"#/components/shared/navigation-link\";\nimport { getLockedCloudHost } from \"#/api/agent-server-config\";\nimport {\n automationListPath,\n getInterfaceCopy,\n hasAutomationInterface,\n} from \"#/manifests/automation-interface\";\nimport {\n CUSTOMIZE_PATH,\n usePinnedHomeRoute,\n} from \"#/hooks/use-pinned-home-route\";\nimport { SidebarCollapsedIconSlot } from \"./sidebar-collapsed-icon-slot\";\nimport { SidebarNavLink } from \"./sidebar-nav-link\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { cn } from \"#/utils/utils\";\nimport { StyledTooltip } from \"#/components/shared/buttons/styled-tooltip\";\nimport { BackendSelector } from \"#/components/features/backends/backend-selector\";\nimport { BackendStatusDot } from \"#/components/features/backends/backend-status-dot\";\nimport { CommandMenuTrigger } from \"#/components/features/command-menu/command-menu-trigger\";\nimport { AgentCanvasVersionTile } from \"#/components/features/settings/agent-canvas-version-tile\";\nimport { SidebarConversationList } from \"./sidebar-conversation-list\";\nimport { SidebarOnboardingChecklist } from \"./sidebar-onboarding-checklist\";\nimport AutomationsIcon from \"#/icons/automations.svg?react\";\nimport {\n SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS,\n SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS,\n SIDEBAR_ICON_BUTTON_CLASS,\n SIDEBAR_ICON_SLOT_CLASS,\n sidebarHeaderRowClassName,\n sidebarNavLabelClassName,\n sidebarNavListClassName,\n sidebarNavRowClassName,\n} from \"./sidebar-layout\";\nimport { useCanvasExtensionsRuntime } from \"#/components/features/canvas-extensions/canvas-extensions-runtime\";\nimport type { Backend } from \"#/api/backend-registry/types\";\n\nconst ICON_SIZE = 18;\nconst SIDEBAR_LOGO_WIDTH = 34;\nconst SIDEBAR_LOGO_HEIGHT = Math.round((SIDEBAR_LOGO_WIDTH * 30) / 46);\n\nexport interface SidebarRailBodyProps {\n collapsed: boolean;\n showCollapseToggle: boolean;\n showMobileCloseButton?: boolean;\n onCloseMobile?: () => void;\n collapseToggleLabel: string;\n onCollapse: () => void;\n onExpand: () => void;\n showCollapsedExpandButton: boolean;\n isExtensionsActive: boolean;\n currentPath: string;\n activeBackend: Backend;\n activeOrgId: string | null;\n activeBackendHealth: { isConnected: boolean | null } | undefined;\n collapsedBackendPopoverOpen: boolean;\n setCollapsedBackendPopoverOpen: (open: boolean) => void;\n collapsedBackendPopoverRef: React.RefObject<HTMLDivElement | null>;\n collapsedBackendCloseTimer: React.MutableRefObject<ReturnType<\n typeof setTimeout\n > | null>;\n onOpenAddBackend: () => void;\n onOpenManageBackends: () => void;\n}\n\nexport function SidebarRailBody({\n collapsed,\n showCollapseToggle,\n showMobileCloseButton = false,\n onCloseMobile,\n collapseToggleLabel,\n onCollapse,\n onExpand,\n showCollapsedExpandButton,\n isExtensionsActive,\n currentPath,\n activeBackend,\n activeOrgId,\n activeBackendHealth,\n collapsedBackendPopoverOpen,\n setCollapsedBackendPopoverOpen,\n collapsedBackendPopoverRef,\n collapsedBackendCloseTimer,\n onOpenAddBackend,\n onOpenManageBackends,\n}: SidebarRailBodyProps) {\n const { t } = useTranslation(\"openhands\");\n const { pages: canvasExtensionPages } = useCanvasExtensionsRuntime();\n const backendCloseTimerRef = collapsedBackendCloseTimer;\n const { isPinnedRoute, togglePinnedRoute } = usePinnedHomeRoute();\n\n const buildPinAction = (path: string, testId: string) => {\n const pinned = isPinnedRoute(path);\n return {\n pinned,\n onToggle: () => togglePinnedRoute(path),\n label: pinned\n ? t(I18nKey.SIDEBAR$UNPIN_AS_HOME)\n : t(I18nKey.SIDEBAR$PIN_AS_HOME),\n testId,\n };\n };\n\n const isCloudBackend = activeBackend.kind === \"cloud\";\n // `org` is consumed by the cloud settings loader so the page opens on the\n // org that is active here instead of the cloud's last-used org.\n const cloudSettingsOrgQuery = activeOrgId\n ? `?org=${encodeURIComponent(activeOrgId)}`\n : \"\";\n const cloudSettingsUrl = isCloudBackend\n ? `${activeBackend.host.replace(/\\/+$/, \"\")}/settings${cloudSettingsOrgQuery}`\n : null;\n // Locked-to-Cloud (SaaS / self-hosted OHE) serves the canvas at /canvas on\n // the cloud host itself, so cloud settings open in this tab and Back\n // returns here (OHE-3242). Standalone / Electron keep the new tab.\n const isLockedToCloud = getLockedCloudHost() !== null;\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <div className={sidebarHeaderRowClassName(collapsed)}>\n <div\n className={cn(\n collapsed && showCollapseToggle\n ? SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS\n : \"flex min-w-0 shrink-0 items-center\",\n )}\n >\n <div\n className={cn(\n collapsed &&\n showCollapseToggle &&\n \"flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150\",\n collapsed && showCollapsedExpandButton && \"opacity-0\",\n )}\n >\n <OpenHandsLogoButton\n logoWidth={SIDEBAR_LOGO_WIDTH}\n logoHeight={SIDEBAR_LOGO_HEIGHT}\n logoClassName=\"max-w-none\"\n className={cn(SIDEBAR_ICON_SLOT_CLASS, \"overflow-visible\")}\n />\n </div>\n {collapsed && showCollapseToggle ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-collapse-toggle\"\n aria-pressed={collapsed}\n aria-label={collapseToggleLabel}\n onClick={onExpand}\n className={cn(\n SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS,\n showCollapsedExpandButton\n ? \"opacity-100 pointer-events-auto\"\n : \"opacity-0 pointer-events-none\",\n )}\n >\n <ChevronRight width={14} height={14} />\n </button>\n ) : null}\n </div>\n {!collapsed && showCollapseToggle ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-collapse-toggle\"\n aria-pressed={collapsed}\n aria-label={collapseToggleLabel}\n onClick={onCollapse}\n className={cn(\n \"hidden md:inline-flex ml-auto\",\n SIDEBAR_ICON_BUTTON_CLASS,\n \"text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]\",\n )}\n >\n <ChevronLeft width={14} height={14} />\n </button>\n ) : null}\n {!collapsed && showMobileCloseButton ? (\n <button\n type=\"button\"\n data-testid=\"sidebar-mobile-drawer-close\"\n onClick={onCloseMobile}\n aria-label={t(I18nKey.SIDEBAR$CLOSE_MENU)}\n className={cn(\n \"inline-flex ml-auto\",\n SIDEBAR_ICON_BUTTON_CLASS,\n \"text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]\",\n )}\n >\n <ChevronLeft width={14} height={14} />\n </button>\n ) : null}\n </div>\n\n <nav className={sidebarNavListClassName(collapsed)}>\n <CommandMenuTrigger collapsed={collapsed} />\n <SidebarNavLink\n to=\"/conversations\"\n end\n label={t(I18nKey.SIDEBAR$NEW_CHAT)}\n testId=\"sidebar-conversations-link\"\n collapsed={collapsed}\n icon={<Plus width={ICON_SIZE} height={ICON_SIZE} />}\n />\n <SidebarNavLink\n to={CUSTOMIZE_PATH}\n label={t(I18nKey.NAV$CUSTOMIZE)}\n testId=\"sidebar-skills-link\"\n collapsed={collapsed}\n forceActive={isExtensionsActive}\n pinAction={buildPinAction(\n CUSTOMIZE_PATH,\n \"sidebar-pin-home-toggle-customize\",\n )}\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={ICON_SIZE}\n height={ICON_SIZE}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\" />\n <path d=\"m7 16.5-4.74-2.85\" />\n <path d=\"m7 16.5 5-3\" />\n <path d=\"M7 16.5v5.17\" />\n <path d=\"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\" />\n <path d=\"m17 16.5-5-3\" />\n <path d=\"m17 16.5 4.74-2.85\" />\n <path d=\"m17 16.5v5.17\" />\n <path d=\"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\" />\n <path d=\"M12 8 7.26 5.15\" />\n <path d=\"m12 8 4.74-2.85\" />\n <path d=\"M12 13.5V8\" />\n </svg>\n }\n />\n {/* The interface manifest owns this entry's label, so an absent\n manifest leaves the rail without it rather than with host copy. */}\n {hasAutomationInterface() && (\n <SidebarNavLink\n to={automationListPath()}\n label={getInterfaceCopy().sidebarLabel}\n testId=\"sidebar-automations-link\"\n collapsed={collapsed}\n icon={<AutomationsIcon width={ICON_SIZE} height={ICON_SIZE} />}\n pinAction={buildPinAction(\n automationListPath(),\n \"sidebar-pin-home-toggle-automations\",\n )}\n />\n )}\n {canvasExtensionPages.map((page) => (\n <SidebarNavLink\n key={`${page.extension.name}:${page.contribution.id}`}\n to={page.href}\n label={page.contribution.nav_label || page.contribution.title}\n testId={`sidebar-canvas-extension-${page.extension.name}-${page.contribution.id}`}\n collapsed={collapsed}\n icon={<PanelsTopLeft width={ICON_SIZE} height={ICON_SIZE} />}\n />\n ))}\n </nav>\n\n <SidebarConversationList collapsed={collapsed} />\n\n {collapsed && showCollapseToggle ? (\n <nav\n className={cn(\n sidebarNavListClassName(collapsed),\n \"mt-auto pb-2 cursor-pointer\",\n )}\n >\n <StyledTooltip\n content={t(I18nKey.SIDEBAR$SETTINGS)}\n placement=\"right\"\n >\n {isCloudBackend && cloudSettingsUrl ? (\n <a\n href={cloudSettingsUrl}\n target={isLockedToCloud ? undefined : \"_blank\"}\n rel={isLockedToCloud ? undefined : \"noopener noreferrer\"}\n data-testid=\"collapsed-settings-link\"\n aria-label={t(I18nKey.SIDEBAR$SETTINGS)}\n className={sidebarNavRowClassName({ collapsed: true })}\n >\n <SidebarCollapsedIconSlot active={false}>\n <Settings width={ICON_SIZE} height={ICON_SIZE} />\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.SIDEBAR$SETTINGS)}\n </span>\n </a>\n ) : (\n <NavigationLink\n to=\"/settings\"\n data-testid=\"collapsed-settings-link\"\n aria-label={t(I18nKey.SIDEBAR$SETTINGS)}\n className={sidebarNavRowClassName({ collapsed: true })}\n >\n <SidebarCollapsedIconSlot\n active={currentPath.startsWith(\"/settings\")}\n >\n <Settings width={ICON_SIZE} height={ICON_SIZE} />\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.SIDEBAR$SETTINGS)}\n </span>\n </NavigationLink>\n )}\n </StyledTooltip>\n <div\n className=\"relative\"\n ref={collapsedBackendPopoverRef}\n onMouseEnter={() => {\n if (backendCloseTimerRef.current) {\n clearTimeout(backendCloseTimerRef.current);\n backendCloseTimerRef.current = null;\n }\n setCollapsedBackendPopoverOpen(true);\n }}\n onMouseLeave={() => {\n backendCloseTimerRef.current = setTimeout(\n () => setCollapsedBackendPopoverOpen(false),\n 150,\n );\n }}\n >\n <button\n type=\"button\"\n data-testid=\"collapsed-backend-selector-link\"\n aria-label={t(I18nKey.BACKEND$MANAGE)}\n aria-expanded={collapsedBackendPopoverOpen}\n onMouseDown={(event) => {\n event.preventDefault();\n event.stopPropagation();\n }}\n onMouseUp={(event) => event.stopPropagation()}\n className={cn(\n sidebarNavRowClassName({ collapsed: true }),\n \"relative\",\n )}\n >\n <SidebarCollapsedIconSlot active={collapsedBackendPopoverOpen}>\n <span className=\"relative inline-flex size-[18px] shrink-0 items-center justify-center\">\n <BackendStatusDot\n isConnected={activeBackendHealth?.isConnected ?? null}\n className=\"absolute -left-0.5 -top-0.5 z-[1] pointer-events-none\"\n />\n <Server width={ICON_SIZE} height={ICON_SIZE} />\n </span>\n </SidebarCollapsedIconSlot>\n <span className={sidebarNavLabelClassName(true)}>\n {t(I18nKey.BACKEND$MANAGE)}\n </span>\n </button>\n {collapsedBackendPopoverOpen ? (\n <div\n className=\"absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]\"\n onClick={(event) => event.stopPropagation()}\n >\n <BackendSelector\n sidebarCollapsed={collapsed}\n hideTrigger\n defaultOpen\n openUpward\n onSelectOption={() => setCollapsedBackendPopoverOpen(false)}\n onOpenAddBackend={onOpenAddBackend}\n onOpenManageBackends={onOpenManageBackends}\n />\n </div>\n ) : null}\n </div>\n </nav>\n ) : null}\n\n {!collapsed ? (\n <>\n <div className=\"mb-2 shrink-0 pr-2.5\">\n <SidebarOnboardingChecklist collapsed={collapsed} />\n </div>\n <div\n className={cn(\n \"flex flex-col items-stretch max-w-none box-border shrink-0 gap-2\",\n \"-ml-2.5 w-[calc(100%+0.625rem)] border-t border-[var(--oh-border)] pt-2 px-2.5\",\n )}\n >\n <AgentCanvasVersionTile hideWhenUpToDate />\n <BackendSelector sidebarCollapsed={collapsed} openUpward />\n </div>\n </>\n ) : null}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../../../i18n/declaration.cjs"),r=require("../../../utils/utils.cjs"),i=require("../../../context/navigation-context.cjs"),a=require("../../../utils/custom-toast-handlers.cjs"),o=require("../../../contexts/active-backend-context.cjs"),s=require("../../../hooks/query/use-settings.cjs"),c=require("../../../hooks/use-click-outside-element.cjs"),l=require("../../../hooks/query/use-config.cjs"),u=require("./sidebar-mobile-nav-context.cjs"),d=require("../../../hooks/query/use-backends-health.cjs"),f=require("./sidebar-rail-body.cjs"),p=require("../../../stores/sidebar-store.cjs");let m=require("react");m=e.__toESM(m,1);let h=require("react/jsx-runtime");var g=m.default.lazy(()=>Promise.resolve().then(()=>require("../../shared/modals/settings/settings-modal.cjs")).then(e=>({default:e.SettingsModal}))),_=m.default.lazy(()=>Promise.resolve().then(()=>require("../backends/add-backend-modal.cjs")).then(e=>({default:e.AddBackendModal}))),v=m.default.lazy(()=>Promise.resolve().then(()=>require("../backends/manage-backends-modal.cjs")).then(e=>({default:e.ManageBackendsModal}))),y=250;function b(){let{t:e}=t.useTranslation(`openhands`),{currentPath:b}=i.useNavigation(),{data:x}=l.useConfig(),{data:S,error:C,isError:w,isFetching:T}=s.useSettings(),{backends:E,active:D}=o.useActiveBackendContext(),O=d.useBackendsHealth(E)[D.backend.id],k=p.useSidebarStore(e=>e.collapsed),A=p.useSidebarStore(e=>e.setCollapsed),[ee,j]=m.default.useState(!1),[M,N]=m.default.useState(!1),P=m.default.useRef(null),[F,I]=m.default.useState(!1),[L,R]=m.default.useState(!1),[z,B]=m.default.useState(!1),V=m.default.useRef(!1),[,H]=m.default.useReducer(e=>e+1,0),{isOpen:U,close:W}=u.useSidebarMobileNav(),[G,K]=m.default.useState(!1),[q,J]=m.default.useState(!1),Y=c.useClickOutsideElement(()=>N(!1)),X=s.getErrorStatus(C);m.default.useEffect(()=>{W()},[b,W]),m.default.useEffect(()=>{if(U){K(!0);let e=requestAnimationFrame(()=>{J(!0)});return()=>cancelAnimationFrame(e)}J(!1);let e=window.setTimeout(()=>{K(!1)},y);return()=>window.clearTimeout(e)},[U]),m.default.useEffect(()=>{if(!U)return;let e=e=>{e.key===`Escape`&&W()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[U,W]),m.default.useEffect(()=>{b===`/settings`?j(!1):!T&&w&&X!==404?a.displayErrorToast(e(n.I18nKey.SETTINGS$FETCH_ERROR)):X===404&&!x?.feature_flags?.hide_llm_settings&&j(!0)},[b,T,w,X,x?.feature_flags?.hide_llm_settings,e]);let Z=e(k?n.I18nKey.SIDEBAR$EXPAND:n.I18nKey.SIDEBAR$COLLAPSE),Q=m.default.useCallback(e=>{if(!k)return;let t=e.target;t instanceof HTMLElement&&(t.closest(`a,button,input,textarea,select,[role='button'],[role='link']`)||A(!1))},[k,A]),$={collapseToggleLabel:Z,onCollapse:m.default.useCallback(()=>{B(!1),V.current=!0,H(),A(!0),window.setTimeout(()=>{V.current=!1,H()},250)},[A]),onExpand:()=>A(!1),showCollapsedExpandButton:k&&z&&!V.current,isExtensionsActive:b===`/customize`||b.startsWith(`/skills`)||b===`/plugins`||b===`/apps`||b===`/mcp`,currentPath:b,activeBackend:D.backend,activeBackendHealth:O,collapsedBackendPopoverOpen:M,setCollapsedBackendPopoverOpen:N,collapsedBackendPopoverRef:Y,collapsedBackendCloseTimer:P,onOpenAddBackend:()=>I(!0),onOpenManageBackends:()=>R(!0)};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`aside`,{"aria-label":e(n.I18nKey.SIDEBAR$NAVIGATION_LABEL),"data-collapsed":k?`true`:`false`,onClick:Q,onMouseEnter:()=>{k&&B(!0)},onMouseLeave:()=>{B(!1)},className:r.cn(`max-md:hidden flex bg-base flex-col min-h-0 transition-[width,min-width] duration-200`,`md:border-r md:border-[var(--oh-border)] md:h-full`,k?`md:w-[60px] md:min-w-[60px] md:px-2.5`:`md:w-[300px] md:min-w-[300px] pb-2 md:pl-2.5 md:pr-0`,b===`/`&&`md:pb-3`),children:(0,h.jsx)(f.SidebarRailBody,{collapsed:k,showCollapseToggle:!0,...$})}),G?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:r.cn(`fixed inset-0 z-40 bg-black/50 md:hidden`,`transition-opacity ease-in-out motion-reduce:transition-none`,q?`opacity-100`:`pointer-events-none opacity-0`),style:{transitionDuration:`${y}ms`},onClick:W,"aria-hidden":!q}),(0,h.jsx)(`aside`,{"aria-label":e(n.I18nKey.SIDEBAR$NAVIGATION_LABEL),"data-testid":`sidebar-mobile-drawer`,"aria-hidden":!q,className:r.cn(`fixed inset-y-0 left-0 z-50 flex min-h-0 w-[min(300px,85vw)] flex-col bg-base`,`border-r border-[var(--oh-border)] pb-2 pl-2.5 pr-0 md:hidden`,`transition-transform ease-in-out motion-reduce:transition-none`,q?`translate-x-0`:`-translate-x-full`),style:{transitionDuration:`${y}ms`},children:(0,h.jsx)(f.SidebarRailBody,{collapsed:!1,showCollapseToggle:!1,showMobileCloseButton:!0,onCloseMobile:W,...$})})]}):null,ee&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(g,{settings:S,onClose:()=>j(!1)})}),F&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(_,{onClose:()=>I(!1)})}),L&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(v,{onClose:()=>R(!1)})})]})}exports.Sidebar=b;
1
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),n=require("../../../i18n/declaration.cjs"),r=require("../../../utils/utils.cjs"),i=require("../../../context/navigation-context.cjs"),a=require("../../../utils/custom-toast-handlers.cjs"),o=require("../../../contexts/active-backend-context.cjs"),s=require("../../../hooks/query/use-settings.cjs"),c=require("../../../hooks/use-click-outside-element.cjs"),l=require("../../../hooks/query/use-config.cjs"),u=require("./sidebar-mobile-nav-context.cjs"),d=require("../../../hooks/query/use-backends-health.cjs"),f=require("./sidebar-rail-body.cjs"),p=require("../../../stores/sidebar-store.cjs");let m=require("react");m=e.__toESM(m,1);let h=require("react/jsx-runtime");var g=m.default.lazy(()=>Promise.resolve().then(()=>require("../../shared/modals/settings/settings-modal.cjs")).then(e=>({default:e.SettingsModal}))),_=m.default.lazy(()=>Promise.resolve().then(()=>require("../backends/add-backend-modal.cjs")).then(e=>({default:e.AddBackendModal}))),v=m.default.lazy(()=>Promise.resolve().then(()=>require("../backends/manage-backends-modal.cjs")).then(e=>({default:e.ManageBackendsModal}))),y=250;function b(){let{t:e}=t.useTranslation(`openhands`),{currentPath:b}=i.useNavigation(),{data:x}=l.useConfig(),{data:S,error:C,isError:w,isFetching:T}=s.useSettings(),{backends:E,active:D}=o.useActiveBackendContext(),O=d.useBackendsHealth(E)[D.backend.id],k=p.useSidebarStore(e=>e.collapsed),A=p.useSidebarStore(e=>e.setCollapsed),[ee,j]=m.default.useState(!1),[M,N]=m.default.useState(!1),P=m.default.useRef(null),[F,I]=m.default.useState(!1),[L,R]=m.default.useState(!1),[z,B]=m.default.useState(!1),V=m.default.useRef(!1),[,H]=m.default.useReducer(e=>e+1,0),{isOpen:U,close:W}=u.useSidebarMobileNav(),[G,K]=m.default.useState(!1),[q,J]=m.default.useState(!1),Y=c.useClickOutsideElement(()=>N(!1)),X=s.getErrorStatus(C);m.default.useEffect(()=>{W()},[b,W]),m.default.useEffect(()=>{if(U){K(!0);let e=requestAnimationFrame(()=>{J(!0)});return()=>cancelAnimationFrame(e)}J(!1);let e=window.setTimeout(()=>{K(!1)},y);return()=>window.clearTimeout(e)},[U]),m.default.useEffect(()=>{if(!U)return;let e=e=>{e.key===`Escape`&&W()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[U,W]),m.default.useEffect(()=>{b===`/settings`?j(!1):!T&&w&&X!==404?a.displayErrorToast(e(n.I18nKey.SETTINGS$FETCH_ERROR)):X===404&&!x?.feature_flags?.hide_llm_settings&&j(!0)},[b,T,w,X,x?.feature_flags?.hide_llm_settings,e]);let Z=e(k?n.I18nKey.SIDEBAR$EXPAND:n.I18nKey.SIDEBAR$COLLAPSE),Q=m.default.useCallback(e=>{if(!k)return;let t=e.target;t instanceof HTMLElement&&(t.closest(`a,button,input,textarea,select,[role='button'],[role='link']`)||A(!1))},[k,A]),$={collapseToggleLabel:Z,onCollapse:m.default.useCallback(()=>{B(!1),V.current=!0,H(),A(!0),window.setTimeout(()=>{V.current=!1,H()},250)},[A]),onExpand:()=>A(!1),showCollapsedExpandButton:k&&z&&!V.current,isExtensionsActive:b===`/customize`||b.startsWith(`/skills`)||b===`/plugins`||b===`/apps`||b===`/mcp`,currentPath:b,activeBackend:D.backend,activeOrgId:D.orgId,activeBackendHealth:O,collapsedBackendPopoverOpen:M,setCollapsedBackendPopoverOpen:N,collapsedBackendPopoverRef:Y,collapsedBackendCloseTimer:P,onOpenAddBackend:()=>I(!0),onOpenManageBackends:()=>R(!0)};return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`aside`,{"aria-label":e(n.I18nKey.SIDEBAR$NAVIGATION_LABEL),"data-collapsed":k?`true`:`false`,onClick:Q,onMouseEnter:()=>{k&&B(!0)},onMouseLeave:()=>{B(!1)},className:r.cn(`max-md:hidden flex bg-base flex-col min-h-0 transition-[width,min-width] duration-200`,`md:border-r md:border-[var(--oh-border)] md:h-full`,k?`md:w-[60px] md:min-w-[60px] md:px-2.5`:`md:w-[300px] md:min-w-[300px] pb-2 md:pl-2.5 md:pr-0`,b===`/`&&`md:pb-3`),children:(0,h.jsx)(f.SidebarRailBody,{collapsed:k,showCollapseToggle:!0,...$})}),G?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:r.cn(`fixed inset-0 z-40 bg-black/50 md:hidden`,`transition-opacity ease-in-out motion-reduce:transition-none`,q?`opacity-100`:`pointer-events-none opacity-0`),style:{transitionDuration:`${y}ms`},onClick:W,"aria-hidden":!q}),(0,h.jsx)(`aside`,{"aria-label":e(n.I18nKey.SIDEBAR$NAVIGATION_LABEL),"data-testid":`sidebar-mobile-drawer`,"aria-hidden":!q,className:r.cn(`fixed inset-y-0 left-0 z-50 flex min-h-0 w-[min(300px,85vw)] flex-col bg-base`,`border-r border-[var(--oh-border)] pb-2 pl-2.5 pr-0 md:hidden`,`transition-transform ease-in-out motion-reduce:transition-none`,q?`translate-x-0`:`-translate-x-full`),style:{transitionDuration:`${y}ms`},children:(0,h.jsx)(f.SidebarRailBody,{collapsed:!1,showCollapseToggle:!1,showMobileCloseButton:!0,onCloseMobile:W,...$})})]}):null,ee&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(g,{settings:S,onClose:()=>j(!1)})}),F&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(_,{onClose:()=>I(!1)})}),L&&(0,h.jsx)(m.default.Suspense,{fallback:null,children:(0,h.jsx)(v,{onClose:()=>R(!1)})})]})}exports.Sidebar=b;
2
2
  //# sourceMappingURL=sidebar.cjs.map