@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.
- package/README.md +1 -1
- package/README.windows.md +2 -2
- package/build/assets/acp-providers-BQ4o4vqy.js +1 -0
- package/build/assets/active-backend-context-BsLfwrXB.js +2 -0
- package/build/assets/{agent-context-settings-CJUrcBut.js → agent-context-settings-D9i6ezoJ.js} +1 -1
- package/build/assets/{agent-profiles-service.api-Biieml2L.js → agent-profiles-service.api-U-9YzDFU.js} +1 -1
- package/build/assets/agent-profiles-settings-D-bUV2PX.js +1 -0
- package/build/assets/agent-server-client-options-EHB23gyx.js +1 -0
- package/build/assets/agent-server-config-C_x8Otd9.js +1 -0
- package/build/assets/agent-server-conversation-service.api-BaVQ6NpE.js +88 -0
- package/build/assets/agent-settings-BZJHtaIK.js +2 -0
- package/build/assets/agent-settings-D4snDd6u.js +1 -0
- package/build/assets/alert-banner-BkVt_8Or.js +1 -0
- package/build/assets/{api-error-message-Ve79qDcN.js → api-error-message-BXo0lCI5.js} +1 -1
- package/build/assets/api-key-entry-screen-fAIld-n7.js +1 -0
- package/build/assets/app-settings-DITbrM2u.js +1 -0
- package/build/assets/automation-detail-DawHmaOl.js +3 -0
- package/build/assets/automation-disabled-reason-DtgC8Ppt.js +1 -0
- package/build/assets/{automation-export-DxY47m3T.js → automation-export-Kv6e0bHx.js} +1 -1
- package/build/assets/automation-git-sync-Dd98G_Oz.js +1 -0
- package/build/assets/automation-setup-route-Cdc109ZD.js +3 -0
- package/build/assets/{automation-templates-4C4PM8K7.js → automation-templates-Xhr-FDAB.js} +1 -1
- package/build/assets/automations-list-BeP1LuzQ.js +1 -0
- package/build/assets/{back-nav-button-B8tH0BEp.js → back-nav-button-DWNiN277.js} +1 -1
- package/build/assets/backend-form-modal-DeaUJIik.js +1 -0
- package/build/assets/backend-synced-settings-badge-Br85iWIY.js +1 -0
- package/build/assets/badge-Cdnei7Ly.js +1 -0
- package/build/assets/{base-modal-DTULovNc.js → base-modal-Ds7grR67.js} +1 -1
- package/build/assets/{bot-CLMxGFaq.js → bot-ByolqPEr.js} +1 -1
- package/build/assets/{brand-button-DxPO4Lf8.js → brand-button-mQq2Ld1I.js} +1 -1
- package/build/assets/browser-Bfum8fkE.js +46 -0
- package/build/assets/browser-tab-CmYT4j_r.js +1 -0
- package/build/assets/canvas-extension-page-CokKSVRG.js +1 -0
- package/build/assets/canvas-extensions-BoQEYG-2.js +1 -0
- package/build/assets/{canvas-extensions-runtime-DdnkgJXV.js → canvas-extensions-runtime-Du2M5iEX.js} +1 -1
- package/build/assets/{chat-send-button-B3SFSIg5.js → chat-send-button-DM3JgMc2.js} +1 -1
- package/build/assets/check-Bo8s5Ylg.js +1 -0
- package/build/assets/chevron-down-Cr6Fn_wS.js +1 -0
- package/build/assets/chevron-right-CfdfRn-8.js +1 -0
- package/build/assets/circle-check-5pH3qCji.js +1 -0
- package/build/assets/circle-plus-check-toggle-BbYBiUwv.js +1 -0
- package/build/assets/{cloud-funnel-analytics-BQanUEEC.js → cloud-funnel-analytics-D02kgq1s.js} +1 -1
- package/build/assets/{cog-VBlRo6iw.js → cog-Dy1eWbSZ.js} +1 -1
- package/build/assets/command-menu-mehU3Evb.js +1 -0
- package/build/assets/commits-tab-DhQW8CXi.js +1 -0
- package/build/assets/{condenser-settings-eVKFMvap.js → condenser-settings-eRk6Fkx6.js} +1 -1
- package/build/assets/confirmation-modal-BmVt_c0I.js +1 -0
- package/build/assets/{context-menu-list-item-DDROe12Z.js → context-menu-list-item-lx2zk9G7.js} +1 -1
- package/build/assets/{conversation-BnjJSFf5.js → conversation-BOj0ENI6.js} +8 -8
- package/build/assets/conversation-SouWlGvs.js +1 -0
- package/build/assets/conversation-panel-SouWlGvs.js +1 -0
- package/build/assets/conversation-state-store-C6YncQNo.js +1 -0
- package/build/assets/conversation-store-DC-JlJuq.js +6 -0
- package/build/assets/{conversation-tab-empty-state-DKlzAz5c.js → conversation-tab-empty-state-DIhwCC2J.js} +1 -1
- package/build/assets/copy-to-clipboard-button-DVNXLylP.js +1 -0
- package/build/assets/device-verify-LP-x7nra.js +1 -0
- package/build/assets/{dropdown-classes-B9kJVDIk.js → dropdown-classes-goDldkiu.js} +1 -1
- package/build/assets/edit-automation-modal-BJJR9wSW.js +1 -0
- package/build/assets/empty-state-Cd-TFe7i.js +1 -0
- package/build/assets/{entry.client-Ds8LVp-E.js → entry.client-CJdjIvMZ.js} +2 -2
- package/build/assets/enum-filter-dropdown-pocrz9AL.js +1 -0
- package/build/assets/environment-switch-overlay-Dwe78wRl.js +1 -0
- package/build/assets/error-state-SuWwztxV.js +1 -0
- package/build/assets/extensions-hub-O0esK3Er.js +1 -0
- package/build/assets/extensions-navigation-CgCVSXje.js +1 -0
- package/build/assets/{external-link-DQtv7eTh.js → external-link-Bd7Tga-1.js} +1 -1
- package/build/assets/files-tab-B_6t8ljw.js +1 -0
- package/build/assets/{form-control-classes-B-z85REi.js → form-control-classes-lQfLxzH4.js} +1 -1
- package/build/assets/format-model-name-Dfh9Udrx.js +1 -0
- package/build/assets/get-git-path-Bp5rsUkl.js +1 -0
- package/build/assets/git-repo-dropdown-CbD0_LPN.js +1 -0
- package/build/assets/git-repo-dropdown-DPQVumZg.js +1 -0
- package/build/assets/highlighted-source-view-Bp0sgK-f.js +1 -0
- package/build/assets/home-BghzJd-D.js +1 -0
- package/build/assets/home-CXZ8zawS.js +1 -0
- package/build/assets/home-automation-run-tooltip-BdpCckKO.js +1 -0
- package/build/assets/home-store-DNQpfIEO.js +1 -0
- package/build/assets/hooks-service-DkxnQa4N.js +1 -0
- package/build/assets/index-home-Ca6Q5CtT.js +1 -0
- package/build/assets/info-BcajzHn1.js +1 -0
- package/build/assets/install-server-modal-DvxxYKia.js +1 -0
- package/build/assets/{key-CfXbJa8w.js → key-CwTE6XJj.js} +1 -1
- package/build/assets/launch-jsRGPRBx.js +1 -0
- package/build/assets/link-external-B4gx3EeM.js +1 -0
- package/build/assets/list-filter-B8PQk3RA.js +1 -0
- package/build/assets/{list-todo-ByXMdY4W.js → list-todo-Caa8E1X_.js} +1 -1
- package/build/assets/llm-not-configured-banner-DMdL1vaX.js +27 -0
- package/build/assets/llm-settings-dkQ5Oq7W.js +1 -0
- package/build/assets/llm-settings-lNDerSlu.js +1 -0
- package/build/assets/{llm-subscription-service-aDNBQ7Gq.js → llm-subscription-service-BiQaZbvv.js} +1 -1
- package/build/assets/loader-circle-BxJgk73D.js +1 -0
- package/build/assets/{loading-spinner-DfHI77BA.js → loading-spinner-DK1sAwVg.js} +1 -1
- package/build/assets/manage-backends-modal-DqCJohsX.js +1 -0
- package/build/assets/manifest-ff93dc8c.js +1 -0
- package/build/assets/manifest-subpage-layout-sxuPqfUr.js +1 -0
- package/build/assets/{map-provider-DXvssjw9.js → map-provider-iRs80q_6.js} +1 -1
- package/build/assets/markdown-renderer-BH5pqDuJ.js +8 -0
- package/build/assets/mcp-BtaJDXnP.js +1 -0
- package/build/assets/mcp-installed-servers-Br4ZLsjr.js +1 -0
- package/build/assets/mcp-marketplace-utils-BwEnDYqm.js +1 -0
- package/build/assets/mcp-page-DwbnQpVs.js +9 -0
- package/build/assets/messages-DmFJlW6c.js +41 -0
- package/build/assets/{modal-body-DJw4xBki.js → modal-body-DBweM2EN.js} +1 -1
- package/build/assets/{modal-classes-Dg0ngBPO.js → modal-classes-jvG85nkU.js} +1 -1
- package/build/assets/modal-close-button-BrM5fNnn.js +1 -0
- package/build/assets/{mouse-pointer-click-DEhsSUpu.js → mouse-pointer-click-BXlRN92t.js} +1 -1
- package/build/assets/onboarding-CQ8T6T0U.js +1 -0
- package/build/assets/onboarding-modal-CnliiaSN.js +1 -0
- package/build/assets/{organization-service.api-Cyg1Tn03.js → organization-service.api-DmFUEmu5.js} +1 -1
- package/build/assets/parse-git-remote-url-BG8pcKL8.js +1 -0
- package/build/assets/{pencil-D5c47kyN.js → pencil-q-ihqDYv.js} +1 -1
- package/build/assets/{pin-C7vMagvf.js → pin-BdroVQdN.js} +1 -1
- package/build/assets/planner-tab-CXph_C9F.js +1 -0
- package/build/assets/{plug-CeaqeF6u.js → plug-7ACOEbMs.js} +1 -1
- package/build/assets/{plugins-management-service-Bh_pBuf-.js → plugins-management-service-CcEpfNKz.js} +1 -1
- package/build/assets/plus-C2e21TFC.js +1 -0
- package/build/assets/{profiles-service.api-BbOK0EkF.js → profiles-service.api-DdF_4Zhe.js} +1 -1
- package/build/assets/providers-BWRnl31s.js +1 -0
- package/build/assets/proxy-DbEf3Nqr.js +1 -0
- package/build/assets/{puzzle-DdAqbUrb.js → puzzle-LJYnuxKe.js} +1 -1
- package/build/assets/react-BX7IV650.js +1 -0
- package/build/assets/recommended-automations-launcher-r0oI91HN.js +1 -0
- package/build/assets/{refresh-cw-DEQdPCpH.js → refresh-cw-BtdC3T8P.js} +1 -1
- package/build/assets/root-j2fFRlWS.js +2 -0
- package/build/assets/root-layout-CfGgm2lo.js +2 -0
- package/build/assets/root-sEWn3ha1.css +1 -0
- package/build/assets/schema-field-c3Ncgm4x.js +1 -0
- package/build/assets/sdk-section-page-DFEiuiFQ.js +1 -0
- package/build/assets/secret-form-WXXNFqTM.js +1 -0
- package/build/assets/{secrets-service-Cr8g8xuv.js → secrets-service-DU6wh3wX.js} +1 -1
- package/build/assets/secrets-settings-BEqbPvjy.js +1 -0
- package/build/assets/settings-DjaSQwFh.js +1 -0
- package/build/assets/settings-dropdown-input-BRR2OZwi.js +1 -0
- package/build/assets/settings-index-DHv4XFcM.js +1 -0
- package/build/assets/settings-input-Cm4VxUon.js +1 -0
- package/build/assets/{settings-list-classes-Ds4jPBHK.js → settings-list-classes-CaUfKZ33.js} +1 -1
- package/build/assets/settings-modal-djXuAnBO.js +1 -0
- package/build/assets/settings-nav-DFb3hBMr.js +16 -0
- package/build/assets/{settings-service.api-9_xdv_mh.js → settings-service.api-Q9lKW1TX.js} +1 -1
- package/build/assets/settings-switch-seaSJc7t.js +1 -0
- package/build/assets/{settings-utils-8GIIgOQL.js → settings-utils-BTaaRhLZ.js} +1 -1
- package/build/assets/shared-conversation-x3rxVCon.js +1 -0
- package/build/assets/{shield-check-DO7wa_eu.js → shield-check-C3Rl0NF8.js} +1 -1
- package/build/assets/{sidebar-layout-EPfWxk11.js → sidebar-layout-B6mcvvdV.js} +1 -1
- package/build/assets/sidebar-mobile-menu-toggle-CEqS8KnA.js +1 -0
- package/build/assets/{sidebar-nav-link-_t4_Ef-9.js → sidebar-nav-link-BTHX11LG.js} +1 -1
- package/build/assets/{sidebar-onboarding-checklist-storage-DbDX-Wvj.js → sidebar-onboarding-checklist-storage-BP1kzn6p.js} +1 -1
- package/build/assets/sidebar-store-DAZVH-DR.js +1 -0
- package/build/assets/skill-card-pill-row-TD39nfP3.js +1 -0
- package/build/assets/{skill-filter-BBeZ4JEP.js → skill-filter-CdBbbwjm.js} +2 -2
- package/build/assets/{skill-icon-badge-BDhQ-tQ0.js → skill-icon-badge-vUEp7gsC.js} +1 -1
- package/build/assets/skill-scope-BTRBQt0-.js +1 -0
- package/build/assets/skills-plugins-k1tUNAw4.js +1 -0
- package/build/assets/skills-settings-CENviPT7.js +1 -0
- package/build/assets/{styled-tooltip-Pd22BIvr.js → styled-tooltip-DVAlWYnL.js} +1 -1
- package/build/assets/task-list-tab-BLKF_x9f.js +1 -0
- package/build/assets/{terminal-onXx0_Qz.js → terminal-Ckbnqb23.js} +1 -1
- package/build/assets/{toggle-switch-lwQtxDcm.js → toggle-switch-DeiG9Mf6.js} +1 -1
- package/build/assets/{trash-2-ZhKuTLiz.js → trash-2-Bb40zQzs.js} +1 -1
- package/build/assets/trash-CXN2R54L.js +1 -0
- package/build/assets/{triangle-alert-BajLPpQg.js → triangle-alert-DEdu-b_L.js} +1 -1
- package/build/assets/{typography-HLLg_FAn.js → typography-NarNyelM.js} +1 -1
- package/build/assets/usage-tab-Drd3O006.js +1 -0
- package/build/assets/use-acp-credential-form-CJ5wPsQm.js +1 -0
- package/build/assets/{use-activate-agent-profile-BLKML6vQ.js → use-activate-agent-profile-iQZ0U3qV.js} +1 -1
- package/build/assets/use-agent-profiles-LCvb5OXT.js +1 -0
- package/build/assets/{use-automation-health-BZkQNEA8.js → use-automation-health-DdgSa8sA.js} +1 -1
- package/build/assets/{use-automation-permissions-B_RpvL-s.js → use-automation-permissions-D3kEeieu.js} +1 -1
- package/build/assets/{use-automations-Cg0PDIZr.js → use-automations-CEubcYTD.js} +1 -1
- package/build/assets/{use-can-manage-org-profiles-BbN6KfDr.js → use-can-manage-org-profiles-CB8ybxFK.js} +1 -1
- package/build/assets/{use-canvas-extensions-CFUpHat6.js → use-canvas-extensions-BMacwi2v.js} +1 -1
- package/build/assets/{use-cloud-current-user-id-Dk0rjr63.js → use-cloud-current-user-id-BEKRd6XZ.js} +1 -1
- package/build/assets/{use-config-DpafU_QP.js → use-config-3WYcJsgC.js} +1 -1
- package/build/assets/{use-create-conversation-1YgmAHt-.js → use-create-conversation-Be-eVpFp.js} +1 -1
- package/build/assets/use-create-secret-Bk9ZxTjl.js +1 -0
- package/build/assets/use-free-models-Ci3FkKEm.js +1 -0
- package/build/assets/{use-get-secrets-CQ4b0qK8.js → use-get-secrets-fqS0kxt6.js} +1 -1
- package/build/assets/use-is-authed-A2Yinlt0.js +1 -0
- package/build/assets/{use-launch-skill-in-chat-DeYa1tFM.js → use-launch-skill-in-chat-QbXDhiHr.js} +1 -1
- package/build/assets/use-llm-configured-B71ZEVg2.js +1 -0
- package/build/assets/use-llm-profiles-xtCBMbef.js +1 -0
- package/build/assets/{use-manifest-capabilities-AOWGcu0j.js → use-manifest-capabilities-Bso6A_-A.js} +1 -1
- package/build/assets/{use-onboarding-completion-CoINurkm.js → use-onboarding-completion-CEgjL02y.js} +1 -1
- package/build/assets/{use-pinned-home-route-D6krwXjy.js → use-pinned-home-route-pK4IlJ-p.js} +1 -1
- package/build/assets/{use-plugins-marketplace-mLsIDhBv.js → use-plugins-marketplace-B8-ZEB34.js} +1 -1
- package/build/assets/use-save-agent-profile-D7hJuW_u.js +1 -0
- package/build/assets/{use-save-settings-3U5K9-8x.js → use-save-settings-CikTu5xV.js} +1 -1
- package/build/assets/{use-settings-Dn00UISA.js → use-settings-BWIH5EuN.js} +1 -1
- package/build/assets/use-settings-nav-items-DSKwLDnd.js +1 -0
- package/build/assets/use-tracking-ChnSFChv.js +3 -0
- package/build/assets/{use-user-conversation-ZWlXtbZb.js → use-user-conversation-C_l65DqW.js} +1 -1
- package/build/assets/{useInfiniteQuery-BzrRqjLg.js → useInfiniteQuery-CtSRG7uW.js} +1 -1
- package/build/assets/{useMutation-CJuK90oc.js → useMutation-Cszf8mKy.js} +1 -1
- package/build/assets/useQueries-pUohFMSP.js +1 -0
- package/build/assets/useQuery-DAAacS7O.js +1 -0
- package/build/assets/useTranslation-CCgUjPJF.js +1 -0
- package/build/assets/utils-D-gOfhmN.js +1 -0
- package/build/assets/{vendor~conversation-panel~conversation-4eJ0tml3.js → vendor~conversation-panel~conversation-C22sJuWZ.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-D6owle9R.js +2 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BXXGJNDU.js +185 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-40UR63Gt.js +1 -0
- package/build/assets/{vendor~index-home~home~conversation-panel~conversation-CSFLzmTN.js → vendor~index-home~home~conversation-panel~conversation-UTl7gUo9.js} +1 -1
- package/build/assets/{vendor~root-layout-n8XCEXG8.js → vendor~root-layout-CcdIqs-C.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation-3Idg1_U3.js → vendor~root-layout~conversation-panel~conversation-C3EBV3kp.js} +1 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-BCe0JJVy.js +1 -0
- 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
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-BFRW8wt-.js +48 -0
- 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
- package/build/assets/{verification-settings-u2POabjH.js → verification-settings-PKtoIUUY.js} +1 -1
- package/build/assets/{wrench-CkgI4rxA.js → wrench-B8Wg_nbp.js} +1 -1
- package/build/assets/{x-By6qCmtY.js → x-CX8lVGwm.js} +1 -1
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +16 -2
- package/build/locales/ca/openhands.json +16 -2
- package/build/locales/de/openhands.json +16 -2
- package/build/locales/en/openhands.json +16 -2
- package/build/locales/es/openhands.json +16 -2
- package/build/locales/fr/openhands.json +16 -2
- package/build/locales/it/openhands.json +16 -2
- package/build/locales/ja/openhands.json +16 -2
- package/build/locales/ko-KR/openhands.json +16 -2
- package/build/locales/no/openhands.json +16 -2
- package/build/locales/pt/openhands.json +16 -2
- package/build/locales/tr/openhands.json +16 -2
- package/build/locales/uk/openhands.json +16 -2
- package/build/locales/zh-CN/openhands.json +16 -2
- package/build/locales/zh-TW/openhands.json +16 -2
- package/config/defaults.json +3 -3
- package/dist/api/cloud/organization-service.api.cjs.map +1 -1
- package/dist/api/cloud/organization-service.api.d.ts +9 -1
- package/dist/api/cloud/organization-service.api.js.map +1 -1
- package/dist/api/config-service/config-service.api.cjs +1 -1
- package/dist/api/config-service/config-service.api.cjs.map +1 -1
- package/dist/api/config-service/config-service.api.js +6 -2
- package/dist/api/config-service/config-service.api.js.map +1 -1
- package/dist/api/config-service/config-service.types.d.ts +13 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs +3 -3
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js +12 -16
- package/dist/components/conversation-events/chat/event-content-helpers/get-skill-ready-content.js.map +1 -1
- package/dist/components/features/automations/automation-card.cjs +1 -1
- package/dist/components/features/automations/automation-card.cjs.map +1 -1
- package/dist/components/features/automations/automation-card.js +39 -38
- package/dist/components/features/automations/automation-card.js.map +1 -1
- package/dist/components/features/automations/automation-list-row.cjs +1 -1
- package/dist/components/features/automations/automation-list-row.cjs.map +1 -1
- package/dist/components/features/automations/automation-list-row.js +73 -72
- package/dist/components/features/automations/automation-list-row.js.map +1 -1
- package/dist/components/features/automations/build-automation-menu-items.cjs +1 -1
- package/dist/components/features/automations/build-automation-menu-items.cjs.map +1 -1
- package/dist/components/features/automations/build-automation-menu-items.d.ts +3 -1
- package/dist/components/features/automations/build-automation-menu-items.js +12 -11
- package/dist/components/features/automations/build-automation-menu-items.js.map +1 -1
- package/dist/components/features/automations/detail/configuration-section.d.ts +7 -1
- package/dist/components/features/automations/detail/detail-header.d.ts +8 -5
- package/dist/components/features/automations/detail/disabled-reason-banner.d.ts +16 -0
- package/dist/components/features/backends/backend-selector.cjs +1 -1
- package/dist/components/features/backends/backend-selector.cjs.map +1 -1
- package/dist/components/features/backends/backend-selector.js +112 -112
- package/dist/components/features/backends/backend-selector.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js +62 -61
- package/dist/components/features/chat/components/chat-input-llm-profile-picker.js.map +1 -1
- package/dist/components/features/chat/model-messages.cjs +1 -1
- package/dist/components/features/chat/model-messages.cjs.map +1 -1
- package/dist/components/features/chat/model-messages.js +27 -26
- package/dist/components/features/chat/model-messages.js.map +1 -1
- package/dist/components/features/conversation-panel/budget-display.cjs +1 -1
- package/dist/components/features/conversation-panel/budget-display.cjs.map +1 -1
- package/dist/components/features/conversation-panel/budget-display.d.ts +1 -2
- package/dist/components/features/conversation-panel/budget-display.js +12 -19
- package/dist/components/features/conversation-panel/budget-display.js.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.cjs.map +1 -1
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js +45 -44
- package/dist/components/features/conversation-panel/conversation-card/conversation-card-footer.js.map +1 -1
- package/dist/components/features/home/featured-automations/build-home-automation-menu-items.d.ts +1 -2
- package/dist/components/features/home/featured-automations/build-pinned-automation-menu-items.d.ts +0 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.cjs.map +1 -1
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js +38 -29
- package/dist/components/features/home/featured-automations/home-automation-run-tooltip.js.map +1 -1
- package/dist/components/features/images/image-lightbox.cjs +2 -0
- package/dist/components/features/images/image-lightbox.cjs.map +1 -0
- package/dist/components/features/images/image-lightbox.d.ts +11 -0
- package/dist/components/features/images/image-lightbox.js +37 -0
- package/dist/components/features/images/image-lightbox.js.map +1 -0
- package/dist/components/features/images/image-preview.cjs +1 -1
- package/dist/components/features/images/image-preview.cjs.map +1 -1
- package/dist/components/features/images/image-preview.d.ts +2 -1
- package/dist/components/features/images/image-preview.js +33 -13
- package/dist/components/features/images/image-preview.js.map +1 -1
- package/dist/components/features/onboarding/steps/setup-llm-step.d.ts +3 -4
- package/dist/components/features/settings/agent-profiles/profile-scope-list.d.ts +20 -0
- package/dist/components/features/settings/cloud-settings-link.cjs +1 -1
- package/dist/components/features/settings/cloud-settings-link.cjs.map +1 -1
- package/dist/components/features/settings/cloud-settings-link.d.ts +3 -1
- package/dist/components/features/settings/cloud-settings-link.js +22 -21
- package/dist/components/features/settings/cloud-settings-link.js.map +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/llm-settings-local-view.js +2 -1
- package/dist/components/features/settings/llm-profiles/profile-row.cjs +1 -1
- package/dist/components/features/settings/llm-profiles/profile-row.js +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar-rail-body.d.ts +2 -1
- package/dist/components/features/sidebar/sidebar-rail-body.js +143 -142
- package/dist/components/features/sidebar/sidebar-rail-body.js.map +1 -1
- package/dist/components/features/sidebar/sidebar.cjs +1 -1
- package/dist/components/features/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/features/sidebar/sidebar.js +28 -27
- package/dist/components/features/sidebar/sidebar.js.map +1 -1
- package/dist/components/providers/agent-server-ui-providers.cjs +1 -1
- package/dist/components/providers/agent-server-ui-providers.cjs.map +1 -1
- package/dist/components/providers/agent-server-ui-providers.js +33 -29
- package/dist/components/providers/agent-server-ui-providers.js.map +1 -1
- package/dist/components/shared/buttons/remove-button.cjs +1 -1
- package/dist/components/shared/buttons/remove-button.cjs.map +1 -1
- package/dist/components/shared/buttons/remove-button.d.ts +2 -1
- package/dist/components/shared/buttons/remove-button.js +2 -1
- package/dist/components/shared/buttons/remove-button.js.map +1 -1
- package/dist/components/shared/free-models-note.cjs +2 -0
- package/dist/components/shared/free-models-note.cjs.map +1 -0
- package/dist/components/shared/free-models-note.d.ts +3 -0
- package/dist/components/shared/free-models-note.js +20 -0
- package/dist/components/shared/free-models-note.js.map +1 -0
- package/dist/components/shared/modals/settings/model-selector.cjs +1 -1
- package/dist/components/shared/modals/settings/model-selector.cjs.map +1 -1
- package/dist/components/shared/modals/settings/model-selector.js +102 -112
- package/dist/components/shared/modals/settings/model-selector.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +3 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/acp-providers.cjs +1 -1
- package/dist/constants/acp-providers.cjs.map +1 -1
- package/dist/constants/acp-providers.d.ts +7 -0
- package/dist/constants/acp-providers.js +20 -16
- package/dist/constants/acp-providers.js.map +1 -1
- package/dist/constants/profile-scope.d.ts +21 -0
- package/dist/hooks/chat/use-slash-command.cjs +1 -1
- package/dist/hooks/chat/use-slash-command.cjs.map +1 -1
- package/dist/hooks/chat/use-slash-command.js +63 -62
- package/dist/hooks/chat/use-slash-command.js.map +1 -1
- package/dist/hooks/query/use-automation-sdk-version.cjs +1 -1
- package/dist/hooks/query/use-automation-sdk-version.cjs.map +1 -1
- package/dist/hooks/query/use-automation-sdk-version.js +3 -1
- package/dist/hooks/query/use-automation-sdk-version.js.map +1 -1
- package/dist/hooks/query/use-free-models.cjs +2 -0
- package/dist/hooks/query/use-free-models.cjs.map +1 -0
- package/dist/hooks/query/use-free-models.d.ts +23 -0
- package/dist/hooks/query/use-free-models.js +67 -0
- package/dist/hooks/query/use-free-models.js.map +1 -0
- package/dist/hooks/query/use-local-git-info.cjs.map +1 -1
- package/dist/hooks/query/use-local-git-info.js.map +1 -1
- package/dist/hooks/query/use-provider-models.cjs +1 -1
- package/dist/hooks/query/use-provider-models.cjs.map +1 -1
- package/dist/hooks/query/use-provider-models.js +34 -25
- package/dist/hooks/query/use-provider-models.js.map +1 -1
- package/dist/hooks/query/use-search-providers.cjs +1 -1
- package/dist/hooks/query/use-search-providers.cjs.map +1 -1
- package/dist/hooks/query/use-search-providers.js +31 -19
- package/dist/hooks/query/use-search-providers.js.map +1 -1
- package/dist/hooks/use-drag-resize.cjs +1 -1
- package/dist/hooks/use-drag-resize.cjs.map +1 -1
- package/dist/hooks/use-drag-resize.js +8 -9
- package/dist/hooks/use-drag-resize.js.map +1 -1
- package/dist/hooks/use-home-automation-actions.cjs +1 -1
- package/dist/hooks/use-home-automation-actions.cjs.map +1 -1
- package/dist/hooks/use-home-automation-actions.d.ts +1 -2
- package/dist/hooks/use-home-automation-actions.js +0 -1
- package/dist/hooks/use-home-automation-actions.js.map +1 -1
- package/dist/i18n/declaration.cjs +1 -1
- package/dist/i18n/declaration.cjs.map +1 -1
- package/dist/i18n/declaration.d.ts +16 -2
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +255 -17
- package/dist/i18n/translation.js.map +1 -1
- package/dist/locales/ar/openhands.json +16 -2
- package/dist/locales/ca/openhands.json +16 -2
- package/dist/locales/de/openhands.json +16 -2
- package/dist/locales/en/openhands.json +16 -2
- package/dist/locales/es/openhands.json +16 -2
- package/dist/locales/fr/openhands.json +16 -2
- package/dist/locales/it/openhands.json +16 -2
- package/dist/locales/ja/openhands.json +16 -2
- package/dist/locales/ko-KR/openhands.json +16 -2
- package/dist/locales/no/openhands.json +16 -2
- package/dist/locales/pt/openhands.json +16 -2
- package/dist/locales/tr/openhands.json +16 -2
- package/dist/locales/uk/openhands.json +16 -2
- package/dist/locales/zh-CN/openhands.json +16 -2
- package/dist/locales/zh-TW/openhands.json +16 -2
- package/dist/manifests/manifest-validation.cjs +1 -1
- package/dist/manifests/manifest-validation.cjs.map +1 -1
- package/dist/manifests/manifest-validation.js +2 -2
- package/dist/manifests/manifest-validation.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js +15 -8
- package/dist/node_modules/@openhands/typescript-client/dist/client/agent-server-compatibility.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js +11 -13
- package/dist/node_modules/@openhands/typescript-client/dist/client/bash-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js +6 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/conversation-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js +3 -6
- package/dist/node_modules/@openhands/typescript-client/dist/client/desktop-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js +9 -12
- package/dist/node_modules/@openhands/typescript-client/dist/client/file-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js +41 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/runtime-transport.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js +3 -6
- package/dist/node_modules/@openhands/typescript-client/dist/client/vscode-client.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/clients.js +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js +199 -61
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js +9 -8
- package/dist/node_modules/@openhands/typescript-client/dist/workspace/remote-workspace.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +2 -2
- package/dist/package.js.map +1 -1
- package/dist/routes/agent-settings.d.ts +5 -0
- package/dist/routes/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +52 -47
- package/dist/routes/app-settings.js.map +1 -1
- package/dist/routes/llm-settings.cjs +1 -1
- package/dist/routes/llm-settings.cjs.map +1 -1
- package/dist/routes/llm-settings.js +137 -145
- package/dist/routes/llm-settings.js.map +1 -1
- package/dist/stores/free-models-store.cjs +2 -0
- package/dist/stores/free-models-store.cjs.map +1 -0
- package/dist/stores/free-models-store.d.ts +30 -0
- package/dist/stores/free-models-store.js +22 -0
- package/dist/stores/free-models-store.js.map +1 -0
- package/dist/types/automation.cjs.map +1 -1
- package/dist/types/automation.d.ts +23 -1
- package/dist/types/automation.js.map +1 -1
- package/dist/utils/automation-disabled-reason.cjs +2 -0
- package/dist/utils/automation-disabled-reason.cjs.map +1 -0
- package/dist/utils/automation-disabled-reason.d.ts +32 -0
- package/dist/utils/automation-disabled-reason.js +19 -0
- package/dist/utils/automation-disabled-reason.js.map +1 -0
- package/dist/utils/format-model-name.cjs +1 -1
- package/dist/utils/format-model-name.cjs.map +1 -1
- package/dist/utils/format-model-name.d.ts +27 -6
- package/dist/utils/format-model-name.js +14 -6
- package/dist/utils/format-model-name.js.map +1 -1
- package/dist/utils/parse-git-remote-url.cjs +1 -1
- package/dist/utils/parse-git-remote-url.cjs.map +1 -1
- package/dist/utils/parse-git-remote-url.d.ts +5 -1
- package/dist/utils/parse-git-remote-url.js +20 -13
- package/dist/utils/parse-git-remote-url.js.map +1 -1
- package/package.json +2 -2
- package/scripts/check-sdk-version-sync.mjs +79 -8
- package/scripts/dev-safe.mjs +1 -1
- package/scripts/static-server.mjs +24 -7
- package/build/assets/acp-providers-DrjNsPOH.js +0 -1
- package/build/assets/active-backend-context-rZiLJRUc.js +0 -2
- package/build/assets/agent-profiles-settings-x6RvPsq7.js +0 -1
- package/build/assets/agent-server-client-options-BikiNwTa.js +0 -1
- package/build/assets/agent-server-conversation-service.api-DYFsNHKf.js +0 -88
- package/build/assets/agent-settings-BJyovpJ_.js +0 -1
- package/build/assets/agent-settings-CpY3zObk.js +0 -2
- package/build/assets/alert-banner-vARz1idS.js +0 -1
- package/build/assets/api-key-entry-screen-CsMuBhoP.js +0 -1
- package/build/assets/app-settings-BaJ7nfHt.js +0 -1
- package/build/assets/automation-detail-CVoGDrKq.js +0 -3
- package/build/assets/automation-git-sync-CRMP9Bbm.js +0 -1
- package/build/assets/automation-setup-route-072beLz1.js +0 -3
- package/build/assets/automations-list-xuqTSQL4.js +0 -1
- package/build/assets/backend-form-modal-0aJmWdsa.js +0 -1
- package/build/assets/backend-synced-settings-badge-B7rKWBir.js +0 -1
- package/build/assets/badge-CcGx2TaV.js +0 -1
- package/build/assets/browser-C-_qBasq.js +0 -46
- package/build/assets/browser-tab-DZanIw5m.js +0 -1
- package/build/assets/canvas-extension-page-o_cWgE9B.js +0 -1
- package/build/assets/canvas-extensions-DSgNlCha.js +0 -1
- package/build/assets/check-fDEfgSzj.js +0 -1
- package/build/assets/chevron-down-CFrWHqu8.js +0 -1
- package/build/assets/chevron-right-C5roOrJu.js +0 -1
- package/build/assets/circle-check-ClTzJTdb.js +0 -1
- package/build/assets/circle-plus-check-toggle-Fr-h-mbL.js +0 -1
- package/build/assets/command-menu-BT3Ia5Ru.js +0 -1
- package/build/assets/commits-tab-2jhtaohl.js +0 -1
- package/build/assets/confirmation-modal-gIFHeZt6.js +0 -1
- package/build/assets/conversation-DZ578rOX.js +0 -1
- package/build/assets/conversation-panel-DZ578rOX.js +0 -1
- package/build/assets/conversation-state-store-D1_G_9I-.js +0 -1
- package/build/assets/conversation-store-DVVfkCsk.js +0 -6
- package/build/assets/copy-to-clipboard-button-B3w0X7WH.js +0 -1
- package/build/assets/device-verify-BfkCzyFB.js +0 -1
- package/build/assets/edit-automation-modal-BwhJ39JT.js +0 -1
- package/build/assets/empty-state-RZz0OfnY.js +0 -1
- package/build/assets/enum-filter-dropdown-C4pW0ORd.js +0 -1
- package/build/assets/environment-switch-overlay-P2ZAuzov.js +0 -1
- package/build/assets/error-state-B_5cgNPJ.js +0 -1
- package/build/assets/extensions-hub-DsaUr4ca.js +0 -1
- package/build/assets/extensions-navigation-CRMZd-FE.js +0 -1
- package/build/assets/files-tab-CCgAcVdc.js +0 -1
- package/build/assets/format-model-name-CasAP3nd.js +0 -1
- package/build/assets/get-git-path-EHrSDxTM.js +0 -1
- package/build/assets/git-repo-dropdown-D2WEQ97X.js +0 -1
- package/build/assets/git-repo-dropdown-DVeCUUXG.js +0 -1
- package/build/assets/highlighted-source-view-DjHO3SdW.js +0 -1
- package/build/assets/home-BorS_vdS.js +0 -1
- package/build/assets/home-aIMbHw5M.js +0 -1
- package/build/assets/home-automation-run-tooltip-CpHNFiFl.js +0 -1
- package/build/assets/home-store-DyXz0w6d.js +0 -1
- package/build/assets/hooks-service-C6dpRtZM.js +0 -1
- package/build/assets/index-home-zKFuKK2B.js +0 -1
- package/build/assets/info-CTIdjttz.js +0 -1
- package/build/assets/install-server-modal-DUiZMc8u.js +0 -1
- package/build/assets/kebab-menu-item-content-mm04SBD3.js +0 -1
- package/build/assets/launch-BSIf9KEg.js +0 -1
- package/build/assets/link-external-BNZzCM1I.js +0 -1
- package/build/assets/list-filter-CNpqTWVY.js +0 -1
- package/build/assets/llm-not-configured-banner-z_QRSeV0.js +0 -27
- package/build/assets/llm-settings-B-5AHMiX.js +0 -1
- package/build/assets/llm-settings-B3SjHDmA.js +0 -1
- package/build/assets/loader-circle-Dex47vVW.js +0 -1
- package/build/assets/manage-backends-modal-q1NdFisr.js +0 -1
- package/build/assets/manifest-8920b615.js +0 -1
- package/build/assets/manifest-subpage-layout-BQQy5ipR.js +0 -1
- package/build/assets/markdown-renderer-rivLvYh-.js +0 -8
- package/build/assets/mcp-CEXDhQWn.js +0 -1
- package/build/assets/mcp-marketplace-utils-Cn_NIMWM.js +0 -1
- package/build/assets/mcp-page-LGYIICMG.js +0 -9
- package/build/assets/messages-DUSeANAh.js +0 -41
- package/build/assets/modal-close-button-B9j4nasm.js +0 -1
- package/build/assets/onboarding-BjFebfs5.js +0 -1
- package/build/assets/onboarding-modal-DDTjOpyd.js +0 -1
- package/build/assets/parse-git-remote-url-DpDM9bK6.js +0 -1
- package/build/assets/planner-tab-D8f2Y3rn.js +0 -1
- package/build/assets/plus-B3wvU06-.js +0 -1
- package/build/assets/providers-2gIIkz2N.js +0 -1
- package/build/assets/proxy-CBgMd2zf.js +0 -1
- package/build/assets/recommended-automations-launcher-YLAQTp4s.js +0 -1
- package/build/assets/root-Bye_XmEL.js +0 -2
- package/build/assets/root-Cnwwzgo0.css +0 -1
- package/build/assets/root-layout-CSAwxBGM.js +0 -2
- package/build/assets/schema-field-CK0xYNbO.js +0 -1
- package/build/assets/sdk-section-page-Da73Rs_o.js +0 -1
- package/build/assets/secret-form-CB2VwYYg.js +0 -1
- package/build/assets/secrets-settings-Bh0udeKv.js +0 -1
- package/build/assets/settings-DmyIgRxO.js +0 -1
- package/build/assets/settings-dropdown-input-DVpyD87C.js +0 -1
- package/build/assets/settings-index-BSJUFmjE.js +0 -1
- package/build/assets/settings-input-C0dd8Utu.js +0 -1
- package/build/assets/settings-modal-yStgEh2o.js +0 -1
- package/build/assets/settings-switch-B78Khmyz.js +0 -1
- package/build/assets/shared-conversation-DM96X4KV.js +0 -1
- package/build/assets/sidebar-mobile-menu-toggle-D5GR5xT9.js +0 -1
- package/build/assets/sidebar-store-CSDFK0W5.js +0 -1
- package/build/assets/skill-card-pill-row-989y15jV.js +0 -1
- package/build/assets/skill-scope-Dz3kPH3P.js +0 -1
- package/build/assets/skills-plugins-e3CYGdUJ.js +0 -1
- package/build/assets/skills-settings-3e-FuHw_.js +0 -1
- package/build/assets/task-list-tab-3Jg8ywch.js +0 -1
- package/build/assets/trash-B6OIe4yX.js +0 -1
- package/build/assets/usage-tab-Cm-9j3UK.js +0 -1
- package/build/assets/use-acp-credential-form-BARcvjYE.js +0 -1
- package/build/assets/use-agent-profiles-1P91KSXz.js +0 -1
- package/build/assets/use-create-secret-D8p9ybQj.js +0 -1
- package/build/assets/use-is-authed-BRPjCRKM.js +0 -1
- package/build/assets/use-llm-configured-DGm8FiRR.js +0 -1
- package/build/assets/use-llm-profiles-BTTtpW4z.js +0 -1
- package/build/assets/use-save-agent-profile-CxyO9YG-.js +0 -1
- package/build/assets/use-settings-nav-items-vrjxTqcu.js +0 -16
- package/build/assets/use-tracking-B9prBsrq.js +0 -3
- package/build/assets/useQueries-CykmpT-a.js +0 -1
- package/build/assets/useQuery-S6j94er1.js +0 -1
- package/build/assets/utils-BOco8mxR.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~b0x1wrp2-Z0lly3FE.js +0 -2
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~czjee3a3-BfkNGovw.js +0 -185
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ew9ih1s8-DnDoaYNi.js +0 -1
- package/build/assets/vendor~root-layout~conversation-panel~conversation~skills-settings~automations-list~shared-~bovqqk8e-DkPlXWl9.js +0 -1
- package/build/assets/vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~inibp4qe-CnsDDzeE.js +0 -48
- 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 {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
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
|
|
18
|
-
import { BackendStatusDot as
|
|
19
|
-
import { BackendSelector as
|
|
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
|
|
24
|
-
import { SidebarOnboardingChecklist as
|
|
25
|
-
import { useCanvasExtensionsRuntime as
|
|
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
|
|
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
|
|
30
|
-
function
|
|
31
|
-
let { t:
|
|
32
|
-
let r =
|
|
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: () =>
|
|
36
|
-
label:
|
|
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
|
-
},
|
|
40
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
44
|
-
className:
|
|
44
|
+
/* @__PURE__ */ A("div", {
|
|
45
|
+
className: g(P),
|
|
45
46
|
children: [
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
className: c(
|
|
48
|
-
children: [/* @__PURE__ */
|
|
49
|
-
className: c(
|
|
50
|
-
children: /* @__PURE__ */
|
|
51
|
-
logoWidth:
|
|
52
|
-
logoHeight:
|
|
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(
|
|
55
|
+
className: c(ne, "overflow-visible")
|
|
55
56
|
})
|
|
56
|
-
}),
|
|
57
|
+
}), P && F ? /* @__PURE__ */ k("button", {
|
|
57
58
|
type: "button",
|
|
58
59
|
"data-testid": "sidebar-collapse-toggle",
|
|
59
|
-
"aria-pressed":
|
|
60
|
-
"aria-label":
|
|
61
|
-
onClick:
|
|
62
|
-
className: c(
|
|
63
|
-
children: /* @__PURE__ */
|
|
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
|
-
!
|
|
70
|
+
!P && F ? /* @__PURE__ */ k("button", {
|
|
70
71
|
type: "button",
|
|
71
72
|
"data-testid": "sidebar-collapse-toggle",
|
|
72
|
-
"aria-pressed":
|
|
73
|
-
"aria-label":
|
|
74
|
-
onClick:
|
|
75
|
-
className: c("hidden md:inline-flex ml-auto",
|
|
76
|
-
children: /* @__PURE__ */
|
|
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
|
-
!
|
|
82
|
+
!P && I ? /* @__PURE__ */ k("button", {
|
|
82
83
|
type: "button",
|
|
83
84
|
"data-testid": "sidebar-mobile-drawer-close",
|
|
84
|
-
onClick:
|
|
85
|
-
"aria-label":
|
|
86
|
-
className: c("inline-flex ml-auto",
|
|
87
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
95
|
-
className: v(
|
|
95
|
+
/* @__PURE__ */ A("nav", {
|
|
96
|
+
className: v(P),
|
|
96
97
|
children: [
|
|
97
|
-
/* @__PURE__ */
|
|
98
|
-
/* @__PURE__ */
|
|
98
|
+
/* @__PURE__ */ k(re, { collapsed: P }),
|
|
99
|
+
/* @__PURE__ */ k(x, {
|
|
99
100
|
to: "/conversations",
|
|
100
101
|
end: !0,
|
|
101
|
-
label:
|
|
102
|
+
label: J(t.SIDEBAR$NEW_CHAT),
|
|
102
103
|
testId: "sidebar-conversations-link",
|
|
103
|
-
collapsed:
|
|
104
|
-
icon: /* @__PURE__ */
|
|
105
|
-
width:
|
|
106
|
-
height:
|
|
104
|
+
collapsed: P,
|
|
105
|
+
icon: /* @__PURE__ */ k(a, {
|
|
106
|
+
width: j,
|
|
107
|
+
height: j
|
|
107
108
|
})
|
|
108
109
|
}),
|
|
109
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ k(x, {
|
|
110
111
|
to: C,
|
|
111
|
-
label:
|
|
112
|
+
label: J(t.NAV$CUSTOMIZE),
|
|
112
113
|
testId: "sidebar-skills-link",
|
|
113
|
-
collapsed:
|
|
114
|
-
forceActive:
|
|
115
|
-
pinAction:
|
|
116
|
-
icon: /* @__PURE__ */
|
|
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:
|
|
119
|
-
height:
|
|
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__ */
|
|
129
|
-
/* @__PURE__ */
|
|
130
|
-
/* @__PURE__ */
|
|
131
|
-
/* @__PURE__ */
|
|
132
|
-
/* @__PURE__ */
|
|
133
|
-
/* @__PURE__ */
|
|
134
|
-
/* @__PURE__ */
|
|
135
|
-
/* @__PURE__ */
|
|
136
|
-
/* @__PURE__ */
|
|
137
|
-
/* @__PURE__ */
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
/* @__PURE__ */
|
|
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
|
-
|
|
144
|
-
to:
|
|
145
|
-
label:
|
|
144
|
+
f() && /* @__PURE__ */ k(x, {
|
|
145
|
+
to: u(),
|
|
146
|
+
label: d().sidebarLabel,
|
|
146
147
|
testId: "sidebar-automations-link",
|
|
147
|
-
collapsed:
|
|
148
|
-
icon: /* @__PURE__ */
|
|
149
|
-
width:
|
|
150
|
-
height:
|
|
148
|
+
collapsed: P,
|
|
149
|
+
icon: /* @__PURE__ */ k(ae, {
|
|
150
|
+
width: j,
|
|
151
|
+
height: j
|
|
151
152
|
}),
|
|
152
|
-
pinAction:
|
|
153
|
+
pinAction: X(u(), "sidebar-pin-home-toggle-automations")
|
|
153
154
|
}),
|
|
154
|
-
|
|
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:
|
|
159
|
-
icon: /* @__PURE__ */
|
|
160
|
-
width:
|
|
161
|
-
height:
|
|
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__ */
|
|
167
|
-
|
|
168
|
-
className: c(v(
|
|
169
|
-
children: [/* @__PURE__ */
|
|
170
|
-
content:
|
|
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:
|
|
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":
|
|
178
|
+
"aria-label": J(t.SIDEBAR$SETTINGS),
|
|
178
179
|
className: y({ collapsed: !0 }),
|
|
179
|
-
children: [/* @__PURE__ */
|
|
180
|
+
children: [/* @__PURE__ */ k(b, {
|
|
180
181
|
active: !1,
|
|
181
|
-
children: /* @__PURE__ */
|
|
182
|
-
width:
|
|
183
|
-
height:
|
|
182
|
+
children: /* @__PURE__ */ k(s, {
|
|
183
|
+
width: j,
|
|
184
|
+
height: j
|
|
184
185
|
})
|
|
185
|
-
}), /* @__PURE__ */
|
|
186
|
+
}), /* @__PURE__ */ k("span", {
|
|
186
187
|
className: _(!0),
|
|
187
|
-
children:
|
|
188
|
+
children: J(t.SIDEBAR$SETTINGS)
|
|
188
189
|
})]
|
|
189
|
-
}) : /* @__PURE__ */
|
|
190
|
+
}) : /* @__PURE__ */ A(m, {
|
|
190
191
|
to: "/settings",
|
|
191
192
|
"data-testid": "collapsed-settings-link",
|
|
192
|
-
"aria-label":
|
|
193
|
+
"aria-label": J(t.SIDEBAR$SETTINGS),
|
|
193
194
|
className: y({ collapsed: !0 }),
|
|
194
|
-
children: [/* @__PURE__ */
|
|
195
|
-
active:
|
|
196
|
-
children: /* @__PURE__ */
|
|
197
|
-
width:
|
|
198
|
-
height:
|
|
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__ */
|
|
201
|
+
}), /* @__PURE__ */ k("span", {
|
|
201
202
|
className: _(!0),
|
|
202
|
-
children:
|
|
203
|
+
children: J(t.SIDEBAR$SETTINGS)
|
|
203
204
|
})]
|
|
204
205
|
})
|
|
205
|
-
}), /* @__PURE__ */
|
|
206
|
+
}), /* @__PURE__ */ A("div", {
|
|
206
207
|
className: "relative",
|
|
207
|
-
ref:
|
|
208
|
+
ref: le,
|
|
208
209
|
onMouseEnter: () => {
|
|
209
|
-
|
|
210
|
+
Y.current &&= (clearTimeout(Y.current), null), q(!0);
|
|
210
211
|
},
|
|
211
212
|
onMouseLeave: () => {
|
|
212
|
-
|
|
213
|
+
Y.current = setTimeout(() => q(!1), 150);
|
|
213
214
|
},
|
|
214
|
-
children: [/* @__PURE__ */
|
|
215
|
+
children: [/* @__PURE__ */ A("button", {
|
|
215
216
|
type: "button",
|
|
216
217
|
"data-testid": "collapsed-backend-selector-link",
|
|
217
|
-
"aria-label":
|
|
218
|
-
"aria-expanded":
|
|
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__ */
|
|
225
|
-
active:
|
|
226
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
229
|
-
isConnected:
|
|
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__ */
|
|
232
|
-
width:
|
|
233
|
-
height:
|
|
232
|
+
}), /* @__PURE__ */ k(o, {
|
|
233
|
+
width: j,
|
|
234
|
+
height: j
|
|
234
235
|
})]
|
|
235
236
|
})
|
|
236
|
-
}), /* @__PURE__ */
|
|
237
|
+
}), /* @__PURE__ */ k("span", {
|
|
237
238
|
className: _(!0),
|
|
238
|
-
children:
|
|
239
|
+
children: J(t.BACKEND$MANAGE)
|
|
239
240
|
})]
|
|
240
|
-
}),
|
|
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__ */
|
|
244
|
-
sidebarCollapsed:
|
|
244
|
+
children: /* @__PURE__ */ k(E, {
|
|
245
|
+
sidebarCollapsed: P,
|
|
245
246
|
hideTrigger: !0,
|
|
246
247
|
defaultOpen: !0,
|
|
247
248
|
openUpward: !0,
|
|
248
|
-
onSelectOption: () =>
|
|
249
|
-
onOpenAddBackend:
|
|
250
|
-
onOpenManageBackends:
|
|
249
|
+
onSelectOption: () => q(!1),
|
|
250
|
+
onOpenAddBackend: de,
|
|
251
|
+
onOpenManageBackends: fe
|
|
251
252
|
})
|
|
252
253
|
}) : null]
|
|
253
254
|
})]
|
|
254
255
|
}) : null,
|
|
255
|
-
|
|
256
|
+
P ? null : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k("div", {
|
|
256
257
|
className: "mb-2 shrink-0 pr-2.5",
|
|
257
|
-
children: /* @__PURE__ */
|
|
258
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
261
|
-
sidebarCollapsed:
|
|
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 {
|
|
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
|