@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-preview.cjs","names":[],"sources":["../../../../src/components/features/images/image-preview.tsx"],"sourcesContent":["import { RemoveButton } from \"#/components/shared/buttons/remove-button\";\nimport { Thumbnail } from \"./thumbnail\";\n\ninterface ImagePreviewProps {\n src: string;\n onRemove?: () => void;\n size?: \"small\" | \"large\";\n}\n\nexport function ImagePreview({\n src,\n onRemove,\n size = \"small\",\n}: ImagePreviewProps) {\n return (\n <div data-testid=\"image-preview\" className=\"relative w-fit shrink-0 py-1\">\n <Thumbnail src={src} size={size} />\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n className=\"absolute right-[3px] top-[3px] cursor-pointer\"\n />\n )}\n </div>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-preview.cjs","names":[],"sources":["../../../../src/components/features/images/image-preview.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { RemoveButton } from \"#/components/shared/buttons/remove-button\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ImageLightbox } from \"./image-lightbox\";\nimport { Thumbnail } from \"./thumbnail\";\n\ninterface ImagePreviewProps {\n src: string;\n onRemove?: () => void;\n size?: \"small\" | \"large\";\n}\n\nexport function ImagePreview({\n src,\n onRemove,\n size = \"small\",\n}: ImagePreviewProps) {\n const { t } = useTranslation(\"openhands\");\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n return (\n <div data-testid=\"image-preview\" className=\"relative w-fit shrink-0 py-1\">\n <button\n type=\"button\"\n data-testid=\"expand-image-button\"\n aria-label={t(I18nKey.BUTTON$VIEW_FULL_SIZE_IMAGE)}\n onClick={() => setIsExpanded(true)}\n className=\"block cursor-zoom-in rounded-sm transition-opacity hover:opacity-80\"\n >\n <Thumbnail src={src} size={size} />\n </button>\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n aria-label={t(I18nKey.BUTTON$REMOVE_IMAGE)}\n className=\"absolute right-[3px] top-[3px] cursor-pointer\"\n />\n )}\n {isExpanded && (\n <ImageLightbox src={src} onClose={() => setIsExpanded(false)} />\n )}\n </div>\n );\n}\n"],"mappings":"gXAaA,SAAgB,EAAa,CAC3B,MACA,WACA,OAAO,SACa,CACpB,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAClC,CAAC,EAAY,GAAiB,EAAA,QAAM,SAAS,EAAK,EAExD,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,cAAY,gBAAgB,UAAU,wCAA3C,EACE,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,cAAY,sBACZ,aAAY,EAAE,EAAA,QAAQ,2BAA2B,EACjD,YAAe,EAAc,EAAI,EACjC,UAAU,gFAEV,EAAA,EAAA,KAAC,EAAA,UAAD,CAAgB,MAAW,MAAO,CAAA,CAC5B,CAAA,EACP,IACC,EAAA,EAAA,KAAC,EAAA,aAAD,CACE,QAAS,EACT,aAAY,EAAE,EAAA,QAAQ,mBAAmB,EACzC,UAAU,+CACX,CAAA,EAEF,IACC,EAAA,EAAA,KAAC,EAAA,cAAD,CAAoB,MAAK,YAAe,EAAc,EAAK,CAAI,CAAA,CAE9D,GAET"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
interface ImagePreviewProps {
|
|
2
3
|
src: string;
|
|
3
4
|
onRemove?: () => void;
|
|
4
5
|
size?: "small" | "large";
|
|
5
6
|
}
|
|
6
|
-
export declare function ImagePreview({ src, onRemove, size, }: ImagePreviewProps):
|
|
7
|
+
export declare function ImagePreview({ src, onRemove, size, }: ImagePreviewProps): React.JSX.Element;
|
|
7
8
|
export {};
|
|
@@ -1,21 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useTranslation as e } from "../../../node_modules/react-i18next/dist/es/useTranslation.js";
|
|
2
|
+
import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
3
|
+
import { RemoveButton as n } from "../../shared/buttons/remove-button.js";
|
|
4
|
+
import { ImageLightbox as r } from "./image-lightbox.js";
|
|
5
|
+
import { Thumbnail as i } from "./thumbnail.js";
|
|
6
|
+
import a from "react";
|
|
7
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
4
8
|
//#region src/components/features/images/image-preview.tsx
|
|
5
|
-
function
|
|
6
|
-
|
|
9
|
+
function c({ src: c, onRemove: l, size: u = "small" }) {
|
|
10
|
+
let { t: d } = e("openhands"), [f, p] = a.useState(!1);
|
|
11
|
+
return /* @__PURE__ */ s("div", {
|
|
7
12
|
"data-testid": "image-preview",
|
|
8
13
|
className: "relative w-fit shrink-0 py-1",
|
|
9
|
-
children: [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ o("button", {
|
|
16
|
+
type: "button",
|
|
17
|
+
"data-testid": "expand-image-button",
|
|
18
|
+
"aria-label": d(t.BUTTON$VIEW_FULL_SIZE_IMAGE),
|
|
19
|
+
onClick: () => p(!0),
|
|
20
|
+
className: "block cursor-zoom-in rounded-sm transition-opacity hover:opacity-80",
|
|
21
|
+
children: /* @__PURE__ */ o(i, {
|
|
22
|
+
src: c,
|
|
23
|
+
size: u
|
|
24
|
+
})
|
|
25
|
+
}),
|
|
26
|
+
l && /* @__PURE__ */ o(n, {
|
|
27
|
+
onClick: l,
|
|
28
|
+
"aria-label": d(t.BUTTON$REMOVE_IMAGE),
|
|
29
|
+
className: "absolute right-[3px] top-[3px] cursor-pointer"
|
|
30
|
+
}),
|
|
31
|
+
f && /* @__PURE__ */ o(r, {
|
|
32
|
+
src: c,
|
|
33
|
+
onClose: () => p(!1)
|
|
34
|
+
})
|
|
35
|
+
]
|
|
16
36
|
});
|
|
17
37
|
}
|
|
18
38
|
//#endregion
|
|
19
|
-
export {
|
|
39
|
+
export { c as ImagePreview };
|
|
20
40
|
|
|
21
41
|
//# sourceMappingURL=image-preview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-preview.js","names":[],"sources":["../../../../src/components/features/images/image-preview.tsx"],"sourcesContent":["import { RemoveButton } from \"#/components/shared/buttons/remove-button\";\nimport { Thumbnail } from \"./thumbnail\";\n\ninterface ImagePreviewProps {\n src: string;\n onRemove?: () => void;\n size?: \"small\" | \"large\";\n}\n\nexport function ImagePreview({\n src,\n onRemove,\n size = \"small\",\n}: ImagePreviewProps) {\n return (\n <div data-testid=\"image-preview\" className=\"relative w-fit shrink-0 py-1\">\n <Thumbnail src={src} size={size} />\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n className=\"absolute right-[3px] top-[3px] cursor-pointer\"\n />\n )}\n </div>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-preview.js","names":[],"sources":["../../../../src/components/features/images/image-preview.tsx"],"sourcesContent":["import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { RemoveButton } from \"#/components/shared/buttons/remove-button\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { ImageLightbox } from \"./image-lightbox\";\nimport { Thumbnail } from \"./thumbnail\";\n\ninterface ImagePreviewProps {\n src: string;\n onRemove?: () => void;\n size?: \"small\" | \"large\";\n}\n\nexport function ImagePreview({\n src,\n onRemove,\n size = \"small\",\n}: ImagePreviewProps) {\n const { t } = useTranslation(\"openhands\");\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n return (\n <div data-testid=\"image-preview\" className=\"relative w-fit shrink-0 py-1\">\n <button\n type=\"button\"\n data-testid=\"expand-image-button\"\n aria-label={t(I18nKey.BUTTON$VIEW_FULL_SIZE_IMAGE)}\n onClick={() => setIsExpanded(true)}\n className=\"block cursor-zoom-in rounded-sm transition-opacity hover:opacity-80\"\n >\n <Thumbnail src={src} size={size} />\n </button>\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n aria-label={t(I18nKey.BUTTON$REMOVE_IMAGE)}\n className=\"absolute right-[3px] top-[3px] cursor-pointer\"\n />\n )}\n {isExpanded && (\n <ImageLightbox src={src} onClose={() => setIsExpanded(false)} />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAaA,SAAgB,EAAa,EAC3B,QACA,aACA,UAAO,WACa;CACpB,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,CAAC,GAAY,KAAiB,EAAM,SAAS,EAAK;CAExD,OACE,kBAAC,OAAD;EAAK,eAAY;EAAgB,WAAU;YAA3C;GACE,kBAAC,UAAD;IACE,MAAK;IACL,eAAY;IACZ,cAAY,EAAE,EAAQ,2BAA2B;IACjD,eAAe,EAAc,EAAI;IACjC,WAAU;cAEV,kBAAC,GAAD;KAAgB;KAAW;IAAO,CAAA;GAC5B,CAAA;GACP,KACC,kBAAC,GAAD;IACE,SAAS;IACT,cAAY,EAAE,EAAQ,mBAAmB;IACzC,WAAU;GACX,CAAA;GAEF,KACC,kBAAC,GAAD;IAAoB;IAAK,eAAe,EAAc,EAAK;GAAI,CAAA;EAE9D;;AAET"}
|
|
@@ -4,10 +4,9 @@ interface SetupLlmStepProps {
|
|
|
4
4
|
onNext: () => void;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* default immediately.
|
|
7
|
+
* Fallback when the backend has not exposed a DB-selected OpenHands default.
|
|
8
|
+
* The onboarding override still marks the model dirty so Next persists the
|
|
9
|
+
* suggested model immediately.
|
|
11
10
|
*/
|
|
12
11
|
export declare const ONBOARDING_DEFAULT_LLM_MODEL = "openai/gpt-5.6-sol";
|
|
13
12
|
/**
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ProfileScopeItem {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string | null;
|
|
4
|
+
}
|
|
5
|
+
interface ProfileScopeListProps {
|
|
6
|
+
/** Prefix: the list is `<testId>-list`, each row `<testId>-<name>`. */
|
|
7
|
+
testId: string;
|
|
8
|
+
items: ProfileScopeItem[];
|
|
9
|
+
selected: string[];
|
|
10
|
+
isDisabled?: boolean;
|
|
11
|
+
onToggle: (name: string, checked: boolean) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Per-item toggles for a profile scope field such as `mcp_server_refs`.
|
|
15
|
+
*
|
|
16
|
+
* Rows are keyed by the wire name — the same identifier the API takes — so an
|
|
17
|
+
* entry this build has no description for is still legible and selectable.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ProfileScopeList({ testId, items, selected, isDisabled, onToggle, }: ProfileScopeListProps): import("react").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),t=require("../../../i18n/declaration.cjs"),n=require("../../../node_modules/lucide-react/dist/esm/icons/cloud.cjs"),r=require("../../../node_modules/lucide-react/dist/esm/icons/external-link.cjs"),i=require("../../../utils/utils.cjs"),a=require("../../../api/backend-registry/active-store.cjs"),
|
|
1
|
+
require("../../../_virtual/_rolldown/runtime.cjs");const e=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),t=require("../../../i18n/declaration.cjs"),n=require("../../../node_modules/lucide-react/dist/esm/icons/cloud.cjs"),r=require("../../../node_modules/lucide-react/dist/esm/icons/external-link.cjs"),i=require("../../../utils/utils.cjs"),a=require("../../../api/agent-server-config.cjs"),o=require("../../../api/backend-registry/active-store.cjs"),s=require("../../../contexts/active-backend-context.cjs"),c=require("../sidebar/sidebar-layout.cjs");let l=require("react/jsx-runtime");function u(){let{t:u}=e.useTranslation(`openhands`),{active:d}=s.useActiveBackendContext(),{backend:f,orgId:p}=d;if(o.isNoBackend(f)||f.kind!==`cloud`)return null;let m=a.getLockedCloudHost()!==null,h=p?`?org=${encodeURIComponent(p)}`:``;return(0,l.jsxs)(`a`,{"data-testid":`settings-cloud-link`,href:`${f.host.replace(/\/+$/,``)}/settings${h}`,target:m?void 0:`_blank`,rel:m?void 0:`noopener noreferrer`,className:i.cn(c.sidebarNavRowClassName({collapsed:!1}),c.SIDEBAR_ROW_INTERACTIVE_CLASS.idle),children:[(0,l.jsx)(`span`,{className:c.SIDEBAR_ICON_SLOT_CLASS,children:(0,l.jsx)(n.Cloud,{className:`size-4 shrink-0`,"aria-hidden":!0})}),(0,l.jsx)(`span`,{className:i.cn(c.sidebarNavLabelClassName(!1),`flex-1`),children:u(t.I18nKey.SETTINGS$CLOUD_SETTINGS_LINK)}),!m&&(0,l.jsx)(r.ExternalLink,{className:`size-4 shrink-0 text-[var(--oh-muted)]`,"aria-hidden":!0})]})}exports.CloudSettingsLink=u;
|
|
2
2
|
//# sourceMappingURL=cloud-settings-link.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-settings-link.cjs","names":[],"sources":["../../../../src/components/features/settings/cloud-settings-link.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { Cloud, ExternalLink } from \"lucide-react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useActiveBackendContext } from \"#/contexts/active-backend-context\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { cn } from \"#/utils/utils\";\nimport {\n SIDEBAR_ICON_SLOT_CLASS,\n SIDEBAR_ROW_INTERACTIVE_CLASS,\n sidebarNavLabelClassName,\n sidebarNavRowClassName,\n} from \"#/components/features/sidebar/sidebar-layout\";\n\n/**\n * Renders only for cloud backends — local backends have no equivalent\n * hosted settings page.\n */\nexport function CloudSettingsLink() {\n const { t } = useTranslation(\"openhands\");\n const { active } = useActiveBackendContext();\n const { backend, orgId } = active;\n\n if (isNoBackend(backend) || backend.kind !== \"cloud\") return null;\n\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 orgQuery = orgId ? `?org=${encodeURIComponent(orgId)}` : \"\";\n const cloudSettingsUrl = `${backend.host.replace(/\\/+$/, \"\")}/settings${orgQuery}`;\n\n return (\n <a\n data-testid=\"settings-cloud-link\"\n href={cloudSettingsUrl}\n target
|
|
1
|
+
{"version":3,"file":"cloud-settings-link.cjs","names":[],"sources":["../../../../src/components/features/settings/cloud-settings-link.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { Cloud, ExternalLink } from \"lucide-react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useActiveBackendContext } from \"#/contexts/active-backend-context\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { getLockedCloudHost } from \"#/api/agent-server-config\";\nimport { cn } from \"#/utils/utils\";\nimport {\n SIDEBAR_ICON_SLOT_CLASS,\n SIDEBAR_ROW_INTERACTIVE_CLASS,\n sidebarNavLabelClassName,\n sidebarNavRowClassName,\n} from \"#/components/features/sidebar/sidebar-layout\";\n\n/**\n * Renders only for cloud backends — local backends have no equivalent\n * hosted settings page. Opens in the same tab when the canvas is locked to a\n * Cloud host (SaaS / self-hosted OHE): the settings page shares that host\n * with the canvas, so Back should return here (OHE-3242).\n */\nexport function CloudSettingsLink() {\n const { t } = useTranslation(\"openhands\");\n const { active } = useActiveBackendContext();\n const { backend, orgId } = active;\n\n if (isNoBackend(backend) || backend.kind !== \"cloud\") return null;\n\n const isLockedToCloud = getLockedCloudHost() !== null;\n\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 orgQuery = orgId ? `?org=${encodeURIComponent(orgId)}` : \"\";\n const cloudSettingsUrl = `${backend.host.replace(/\\/+$/, \"\")}/settings${orgQuery}`;\n\n return (\n <a\n data-testid=\"settings-cloud-link\"\n href={cloudSettingsUrl}\n target={isLockedToCloud ? undefined : \"_blank\"}\n rel={isLockedToCloud ? undefined : \"noopener noreferrer\"}\n className={cn(\n sidebarNavRowClassName({ collapsed: false }),\n SIDEBAR_ROW_INTERACTIVE_CLASS.idle,\n )}\n >\n <span className={SIDEBAR_ICON_SLOT_CLASS}>\n <Cloud className=\"size-4 shrink-0\" aria-hidden />\n </span>\n <span className={cn(sidebarNavLabelClassName(false), \"flex-1\")}>\n {t(I18nKey.SETTINGS$CLOUD_SETTINGS_LINK)}\n </span>\n {!isLockedToCloud && (\n <ExternalLink\n className=\"size-4 shrink-0 text-[var(--oh-muted)]\"\n aria-hidden\n />\n )}\n </a>\n );\n}\n"],"mappings":"smBAoBA,SAAgB,GAAoB,CAClC,GAAM,CAAE,KAAM,EAAA,eAAe,WAAW,EAClC,CAAE,UAAW,EAAA,wBAAwB,EACrC,CAAE,UAAS,SAAU,EAE3B,GAAI,EAAA,YAAY,CAAO,GAAK,EAAQ,OAAS,QAAS,OAAO,KAE7D,IAAM,EAAkB,EAAA,mBAAmB,IAAM,KAI3C,EAAW,EAAQ,QAAQ,mBAAmB,CAAK,IAAM,GAG/D,OACE,EAAA,EAAA,MAAC,IAAD,CACE,cAAY,sBACZ,KAAM,GALkB,EAAQ,KAAK,QAAQ,OAAQ,EAAE,EAAE,WAAW,IAMpE,OAAQ,EAAkB,IAAA,GAAY,SACtC,IAAK,EAAkB,IAAA,GAAY,sBACnC,UAAW,EAAA,GACT,EAAA,uBAAuB,CAAE,UAAW,EAAM,CAAC,EAC3C,EAAA,8BAA8B,IAChC,WARF,EAUE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,kCACf,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAU,kBAAkB,cAAA,EAAa,CAAA,CAC5C,CAAA,GACN,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,GAAG,EAAA,yBAAyB,EAAK,EAAG,QAAQ,WAC1D,EAAE,EAAA,QAAQ,4BAA4B,CACnC,CAAA,EACL,CAAC,IACA,EAAA,EAAA,KAAC,EAAA,aAAD,CACE,UAAU,yCACV,cAAA,EACD,CAAA,CAEF,GAEP"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Renders only for cloud backends — local backends have no equivalent
|
|
3
|
-
* hosted settings page.
|
|
3
|
+
* hosted settings page. Opens in the same tab when the canvas is locked to a
|
|
4
|
+
* Cloud host (SaaS / self-hosted OHE): the settings page shares that host
|
|
5
|
+
* with the canvas, so Back should return here (OHE-3242).
|
|
4
6
|
*/
|
|
5
7
|
export declare function CloudSettingsLink(): import("react").JSX.Element | null;
|
|
@@ -3,34 +3,35 @@ import { I18nKey as t } from "../../../i18n/declaration.js";
|
|
|
3
3
|
import { Cloud as n } from "../../../node_modules/lucide-react/dist/esm/icons/cloud.js";
|
|
4
4
|
import { ExternalLink as r } from "../../../node_modules/lucide-react/dist/esm/icons/external-link.js";
|
|
5
5
|
import { cn as i } from "../../../utils/utils.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { getLockedCloudHost as a } from "../../../api/agent-server-config.js";
|
|
7
|
+
import { isNoBackend as o } from "../../../api/backend-registry/active-store.js";
|
|
8
|
+
import { useActiveBackendContext as s } from "../../../contexts/active-backend-context.js";
|
|
9
|
+
import { SIDEBAR_ICON_SLOT_CLASS as c, SIDEBAR_ROW_INTERACTIVE_CLASS as l, sidebarNavLabelClassName as u, sidebarNavRowClassName as d } from "../sidebar/sidebar-layout.js";
|
|
10
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
10
11
|
//#region src/components/features/settings/cloud-settings-link.tsx
|
|
11
|
-
function
|
|
12
|
-
let { t:
|
|
13
|
-
if (
|
|
14
|
-
let
|
|
15
|
-
return /* @__PURE__ */
|
|
12
|
+
function m() {
|
|
13
|
+
let { t: m } = e("openhands"), { active: h } = s(), { backend: g, orgId: _ } = h;
|
|
14
|
+
if (o(g) || g.kind !== "cloud") return null;
|
|
15
|
+
let v = a() !== null, y = _ ? `?org=${encodeURIComponent(_)}` : "";
|
|
16
|
+
return /* @__PURE__ */ p("a", {
|
|
16
17
|
"data-testid": "settings-cloud-link",
|
|
17
|
-
href: `${
|
|
18
|
-
target: "_blank",
|
|
19
|
-
rel: "noopener noreferrer",
|
|
20
|
-
className: i(
|
|
18
|
+
href: `${g.host.replace(/\/+$/, "")}/settings${y}`,
|
|
19
|
+
target: v ? void 0 : "_blank",
|
|
20
|
+
rel: v ? void 0 : "noopener noreferrer",
|
|
21
|
+
className: i(d({ collapsed: !1 }), l.idle),
|
|
21
22
|
children: [
|
|
22
|
-
/* @__PURE__ */
|
|
23
|
-
className:
|
|
24
|
-
children: /* @__PURE__ */
|
|
23
|
+
/* @__PURE__ */ f("span", {
|
|
24
|
+
className: c,
|
|
25
|
+
children: /* @__PURE__ */ f(n, {
|
|
25
26
|
className: "size-4 shrink-0",
|
|
26
27
|
"aria-hidden": !0
|
|
27
28
|
})
|
|
28
29
|
}),
|
|
29
|
-
/* @__PURE__ */
|
|
30
|
-
className: i(
|
|
31
|
-
children:
|
|
30
|
+
/* @__PURE__ */ f("span", {
|
|
31
|
+
className: i(u(!1), "flex-1"),
|
|
32
|
+
children: m(t.SETTINGS$CLOUD_SETTINGS_LINK)
|
|
32
33
|
}),
|
|
33
|
-
/* @__PURE__ */
|
|
34
|
+
!v && /* @__PURE__ */ f(r, {
|
|
34
35
|
className: "size-4 shrink-0 text-[var(--oh-muted)]",
|
|
35
36
|
"aria-hidden": !0
|
|
36
37
|
})
|
|
@@ -38,6 +39,6 @@ function p() {
|
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
//#endregion
|
|
41
|
-
export {
|
|
42
|
+
export { m as CloudSettingsLink };
|
|
42
43
|
|
|
43
44
|
//# sourceMappingURL=cloud-settings-link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-settings-link.js","names":[],"sources":["../../../../src/components/features/settings/cloud-settings-link.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { Cloud, ExternalLink } from \"lucide-react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useActiveBackendContext } from \"#/contexts/active-backend-context\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { cn } from \"#/utils/utils\";\nimport {\n SIDEBAR_ICON_SLOT_CLASS,\n SIDEBAR_ROW_INTERACTIVE_CLASS,\n sidebarNavLabelClassName,\n sidebarNavRowClassName,\n} from \"#/components/features/sidebar/sidebar-layout\";\n\n/**\n * Renders only for cloud backends — local backends have no equivalent\n * hosted settings page.\n */\nexport function CloudSettingsLink() {\n const { t } = useTranslation(\"openhands\");\n const { active } = useActiveBackendContext();\n const { backend, orgId } = active;\n\n if (isNoBackend(backend) || backend.kind !== \"cloud\") return null;\n\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 orgQuery = orgId ? `?org=${encodeURIComponent(orgId)}` : \"\";\n const cloudSettingsUrl = `${backend.host.replace(/\\/+$/, \"\")}/settings${orgQuery}`;\n\n return (\n <a\n data-testid=\"settings-cloud-link\"\n href={cloudSettingsUrl}\n target
|
|
1
|
+
{"version":3,"file":"cloud-settings-link.js","names":[],"sources":["../../../../src/components/features/settings/cloud-settings-link.tsx"],"sourcesContent":["import { useTranslation } from \"react-i18next\";\nimport { Cloud, ExternalLink } from \"lucide-react\";\nimport { I18nKey } from \"#/i18n/declaration\";\nimport { useActiveBackendContext } from \"#/contexts/active-backend-context\";\nimport { isNoBackend } from \"#/api/backend-registry/active-store\";\nimport { getLockedCloudHost } from \"#/api/agent-server-config\";\nimport { cn } from \"#/utils/utils\";\nimport {\n SIDEBAR_ICON_SLOT_CLASS,\n SIDEBAR_ROW_INTERACTIVE_CLASS,\n sidebarNavLabelClassName,\n sidebarNavRowClassName,\n} from \"#/components/features/sidebar/sidebar-layout\";\n\n/**\n * Renders only for cloud backends — local backends have no equivalent\n * hosted settings page. Opens in the same tab when the canvas is locked to a\n * Cloud host (SaaS / self-hosted OHE): the settings page shares that host\n * with the canvas, so Back should return here (OHE-3242).\n */\nexport function CloudSettingsLink() {\n const { t } = useTranslation(\"openhands\");\n const { active } = useActiveBackendContext();\n const { backend, orgId } = active;\n\n if (isNoBackend(backend) || backend.kind !== \"cloud\") return null;\n\n const isLockedToCloud = getLockedCloudHost() !== null;\n\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 orgQuery = orgId ? `?org=${encodeURIComponent(orgId)}` : \"\";\n const cloudSettingsUrl = `${backend.host.replace(/\\/+$/, \"\")}/settings${orgQuery}`;\n\n return (\n <a\n data-testid=\"settings-cloud-link\"\n href={cloudSettingsUrl}\n target={isLockedToCloud ? undefined : \"_blank\"}\n rel={isLockedToCloud ? undefined : \"noopener noreferrer\"}\n className={cn(\n sidebarNavRowClassName({ collapsed: false }),\n SIDEBAR_ROW_INTERACTIVE_CLASS.idle,\n )}\n >\n <span className={SIDEBAR_ICON_SLOT_CLASS}>\n <Cloud className=\"size-4 shrink-0\" aria-hidden />\n </span>\n <span className={cn(sidebarNavLabelClassName(false), \"flex-1\")}>\n {t(I18nKey.SETTINGS$CLOUD_SETTINGS_LINK)}\n </span>\n {!isLockedToCloud && (\n <ExternalLink\n className=\"size-4 shrink-0 text-[var(--oh-muted)]\"\n aria-hidden\n />\n )}\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAgB,IAAoB;CAClC,IAAM,EAAE,SAAM,EAAe,WAAW,GAClC,EAAE,cAAW,EAAwB,GACrC,EAAE,YAAS,aAAU;CAE3B,IAAI,EAAY,CAAO,KAAK,EAAQ,SAAS,SAAS,OAAO;CAE7D,IAAM,IAAkB,EAAmB,MAAM,MAI3C,IAAW,IAAQ,QAAQ,mBAAmB,CAAK,MAAM;CAG/D,OACE,kBAAC,KAAD;EACE,eAAY;EACZ,MAAM,GALkB,EAAQ,KAAK,QAAQ,QAAQ,EAAE,EAAE,WAAW;EAMpE,QAAQ,IAAkB,KAAA,IAAY;EACtC,KAAK,IAAkB,KAAA,IAAY;EACnC,WAAW,EACT,EAAuB,EAAE,WAAW,GAAM,CAAC,GAC3C,EAA8B,IAChC;YARF;GAUE,kBAAC,QAAD;IAAM,WAAW;cACf,kBAAC,GAAD;KAAO,WAAU;KAAkB,eAAA;IAAa,CAAA;GAC5C,CAAA;GACN,kBAAC,QAAD;IAAM,WAAW,EAAG,EAAyB,EAAK,GAAG,QAAQ;cAC1D,EAAE,EAAQ,4BAA4B;GACnC,CAAA;GACL,CAAC,KACA,kBAAC,GAAD;IACE,WAAU;IACV,eAAA;GACD,CAAA;EAEF;;AAEP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("../../../../_virtual/_rolldown/runtime.cjs");require("../../../../utils/custom-toast-handlers.cjs"),require("../../../../contexts/active-backend-context.cjs"),require("../../../../api/profiles-service/profiles-service.api.cjs"),require("../../../../hooks/query/use-settings.cjs"),require("../../../../
|
|
1
|
+
const e=require("../../../../_virtual/_rolldown/runtime.cjs");require("../../../../utils/custom-toast-handlers.cjs"),require("../../../../contexts/active-backend-context.cjs"),require("../../../../api/profiles-service/profiles-service.api.cjs"),require("../../../../hooks/query/use-settings.cjs"),require("../../../../hooks/query/use-free-models.cjs"),require("../../../../hooks/query/use-llm-profiles.cjs"),require("../../../../ui/typography.cjs"),require("../brand-button.cjs"),require("../../../../hooks/query/use-agent-settings-schema.cjs"),require("../llm-settings/llm-settings-inputs-skeleton.cjs"),require("./profile-name-input.cjs"),require("../../../../hooks/mutation/use-activate-llm-profile.cjs"),require("../../../../hooks/mutation/use-save-llm-profile.cjs"),require("./llm-profiles-manager.cjs"),require("../../../shared/buttons/back-nav-button.cjs"),require("../../../../contexts/settings-section-header-context.cjs"),require("../../../../routes/llm-settings.cjs");let t=require("react");t=e.__toESM(t,1),require("react/jsx-runtime");
|
|
@@ -2,11 +2,12 @@ import "../../../../utils/custom-toast-handlers.js";
|
|
|
2
2
|
import "../../../../contexts/active-backend-context.js";
|
|
3
3
|
import "../../../../api/profiles-service/profiles-service.api.js";
|
|
4
4
|
import "../../../../hooks/query/use-settings.js";
|
|
5
|
-
import "../../../../
|
|
5
|
+
import "../../../../hooks/query/use-free-models.js";
|
|
6
6
|
import "../../../../hooks/query/use-llm-profiles.js";
|
|
7
7
|
import "../../../../ui/typography.js";
|
|
8
8
|
import "../brand-button.js";
|
|
9
9
|
import "../../../../hooks/query/use-agent-settings-schema.js";
|
|
10
|
+
import "../llm-settings/llm-settings-inputs-skeleton.js";
|
|
10
11
|
import "./profile-name-input.js";
|
|
11
12
|
import "../../../../hooks/mutation/use-activate-llm-profile.js";
|
|
12
13
|
import "../../../../hooks/mutation/use-save-llm-profile.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require("../../../../_virtual/_rolldown/runtime.cjs"),require("../../../../utils/utils.cjs"),require("../../../../
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.cjs"),require("../../../../utils/utils.cjs"),require("../../../../hooks/query/use-free-models.cjs"),require("../../conversation-panel/ellipsis-button.cjs"),require("./profile-actions-menu.cjs"),require("../../../shared/badge.cjs"),require("../../../../utils/settings-list-classes.cjs"),require("react"),require("react/jsx-runtime");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../../../utils/utils.js";
|
|
2
|
-
import "../../../../
|
|
2
|
+
import "../../../../hooks/query/use-free-models.js";
|
|
3
3
|
import "../../conversation-panel/ellipsis-button.js";
|
|
4
4
|
import "./profile-actions-menu.js";
|
|
5
5
|
import "../../../shared/badge.js";
|
|
@@ -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("../../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs"),ee=require("../../../node_modules/lucide-react/dist/esm/icons/chevron-right.cjs"),i=require("../../../node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs"),a=require("../../../node_modules/lucide-react/dist/esm/icons/plus.cjs"),
|
|
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("../../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs"),ee=require("../../../node_modules/lucide-react/dist/esm/icons/chevron-right.cjs"),i=require("../../../node_modules/lucide-react/dist/esm/icons/panels-top-left.cjs"),a=require("../../../node_modules/lucide-react/dist/esm/icons/plus.cjs"),te=require("../../../node_modules/lucide-react/dist/esm/icons/server.cjs"),o=require("../../../node_modules/lucide-react/dist/esm/icons/settings.cjs"),s=require("../../../utils/utils.cjs"),ne=require("../../../api/agent-server-config.cjs"),c=require("../../../manifests/automation-interface.cjs"),l=require("../../shared/buttons/styled-tooltip.cjs"),u=require("../../shared/navigation-link.cjs"),d=require("./sidebar-layout.cjs"),f=require("./sidebar-collapsed-icon-slot.cjs"),p=require("./sidebar-nav-link.cjs"),m=require("../../shared/buttons/openhands-logo-button.cjs"),h=require("../../../hooks/use-pinned-home-route.cjs"),re=require("../backends/backend-status-dot.cjs"),g=require("../backends/backend-selector.cjs"),_=require("../command-menu/command-menu-trigger.cjs"),v=require("../settings/agent-canvas-version-tile.cjs"),y=require("../../../icons/automations.cjs"),b=require("./sidebar-conversation-list.cjs"),x=require("./sidebar-onboarding-checklist.cjs"),S=require("../canvas-extensions/canvas-extensions-runtime.cjs");let C=require("react");C=e.__toESM(C,1);let w=require("react/jsx-runtime");var T=18,E=34,D=Math.round(E*30/46);function O({collapsed:e,showCollapseToggle:C,showMobileCloseButton:O=!1,onCloseMobile:k,collapseToggleLabel:A,onCollapse:j,onExpand:M,showCollapsedExpandButton:N,isExtensionsActive:P,currentPath:F,activeBackend:I,activeOrgId:L,activeBackendHealth:R,collapsedBackendPopoverOpen:z,setCollapsedBackendPopoverOpen:B,collapsedBackendPopoverRef:V,collapsedBackendCloseTimer:H,onOpenAddBackend:U,onOpenManageBackends:W}){let{t:G}=t.useTranslation(`openhands`),{pages:K}=S.useCanvasExtensionsRuntime(),q=H,{isPinnedRoute:J,togglePinnedRoute:Y}=h.usePinnedHomeRoute(),X=(e,t)=>{let r=J(e);return{pinned:r,onToggle:()=>Y(e),label:G(r?n.I18nKey.SIDEBAR$UNPIN_AS_HOME:n.I18nKey.SIDEBAR$PIN_AS_HOME),testId:t}},Z=I.kind===`cloud`,ie=L?`?org=${encodeURIComponent(L)}`:``,Q=Z?`${I.host.replace(/\/+$/,``)}/settings${ie}`:null,$=ne.getLockedCloudHost()!==null;return(0,w.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,w.jsxs)(`div`,{className:d.sidebarHeaderRowClassName(e),children:[(0,w.jsxs)(`div`,{className:s.cn(e&&C?d.SIDEBAR_COLLAPSED_LOGO_WRAPPER_CLASS:`flex min-w-0 shrink-0 items-center`),children:[(0,w.jsx)(`div`,{className:s.cn(e&&C&&`flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150`,e&&N&&`opacity-0`),children:(0,w.jsx)(m.OpenHandsLogoButton,{logoWidth:E,logoHeight:D,logoClassName:`max-w-none`,className:s.cn(d.SIDEBAR_ICON_SLOT_CLASS,`overflow-visible`)})}),e&&C?(0,w.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":A,onClick:M,className:s.cn(d.SIDEBAR_COLLAPSE_TOGGLE_OVERLAY_CLASS,N?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`),children:(0,w.jsx)(ee.ChevronRight,{width:14,height:14})}):null]}),!e&&C?(0,w.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":A,onClick:j,className:s.cn(`hidden md:inline-flex ml-auto`,d.SIDEBAR_ICON_BUTTON_CLASS,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,w.jsx)(r.ChevronLeft,{width:14,height:14})}):null,!e&&O?(0,w.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-drawer-close`,onClick:k,"aria-label":G(n.I18nKey.SIDEBAR$CLOSE_MENU),className:s.cn(`inline-flex ml-auto`,d.SIDEBAR_ICON_BUTTON_CLASS,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,w.jsx)(r.ChevronLeft,{width:14,height:14})}):null]}),(0,w.jsxs)(`nav`,{className:d.sidebarNavListClassName(e),children:[(0,w.jsx)(_.CommandMenuTrigger,{collapsed:e}),(0,w.jsx)(p.SidebarNavLink,{to:`/conversations`,end:!0,label:G(n.I18nKey.SIDEBAR$NEW_CHAT),testId:`sidebar-conversations-link`,collapsed:e,icon:(0,w.jsx)(a.Plus,{width:T,height:T})}),(0,w.jsx)(p.SidebarNavLink,{to:h.CUSTOMIZE_PATH,label:G(n.I18nKey.NAV$CUSTOMIZE),testId:`sidebar-skills-link`,collapsed:e,forceActive:P,pinAction:X(h.CUSTOMIZE_PATH,`sidebar-pin-home-toggle-customize`),icon:(0,w.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:T,height:T,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,w.jsx)(`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`}),(0,w.jsx)(`path`,{d:`m7 16.5-4.74-2.85`}),(0,w.jsx)(`path`,{d:`m7 16.5 5-3`}),(0,w.jsx)(`path`,{d:`M7 16.5v5.17`}),(0,w.jsx)(`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`}),(0,w.jsx)(`path`,{d:`m17 16.5-5-3`}),(0,w.jsx)(`path`,{d:`m17 16.5 4.74-2.85`}),(0,w.jsx)(`path`,{d:`m17 16.5v5.17`}),(0,w.jsx)(`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`}),(0,w.jsx)(`path`,{d:`M12 8 7.26 5.15`}),(0,w.jsx)(`path`,{d:`m12 8 4.74-2.85`}),(0,w.jsx)(`path`,{d:`M12 13.5V8`})]})}),c.hasAutomationInterface()&&(0,w.jsx)(p.SidebarNavLink,{to:c.automationListPath(),label:c.getInterfaceCopy().sidebarLabel,testId:`sidebar-automations-link`,collapsed:e,icon:(0,w.jsx)(y.default,{width:T,height:T}),pinAction:X(c.automationListPath(),`sidebar-pin-home-toggle-automations`)}),K.map(t=>(0,w.jsx)(p.SidebarNavLink,{to:t.href,label:t.contribution.nav_label||t.contribution.title,testId:`sidebar-canvas-extension-${t.extension.name}-${t.contribution.id}`,collapsed:e,icon:(0,w.jsx)(i.PanelsTopLeft,{width:T,height:T})},`${t.extension.name}:${t.contribution.id}`))]}),(0,w.jsx)(b.SidebarConversationList,{collapsed:e}),e&&C?(0,w.jsxs)(`nav`,{className:s.cn(d.sidebarNavListClassName(e),`mt-auto pb-2 cursor-pointer`),children:[(0,w.jsx)(l.StyledTooltip,{content:G(n.I18nKey.SIDEBAR$SETTINGS),placement:`right`,children:Z&&Q?(0,w.jsxs)(`a`,{href:Q,target:$?void 0:`_blank`,rel:$?void 0:`noopener noreferrer`,"data-testid":`collapsed-settings-link`,"aria-label":G(n.I18nKey.SIDEBAR$SETTINGS),className:d.sidebarNavRowClassName({collapsed:!0}),children:[(0,w.jsx)(f.SidebarCollapsedIconSlot,{active:!1,children:(0,w.jsx)(o.Settings,{width:T,height:T})}),(0,w.jsx)(`span`,{className:d.sidebarNavLabelClassName(!0),children:G(n.I18nKey.SIDEBAR$SETTINGS)})]}):(0,w.jsxs)(u.NavigationLink,{to:`/settings`,"data-testid":`collapsed-settings-link`,"aria-label":G(n.I18nKey.SIDEBAR$SETTINGS),className:d.sidebarNavRowClassName({collapsed:!0}),children:[(0,w.jsx)(f.SidebarCollapsedIconSlot,{active:F.startsWith(`/settings`),children:(0,w.jsx)(o.Settings,{width:T,height:T})}),(0,w.jsx)(`span`,{className:d.sidebarNavLabelClassName(!0),children:G(n.I18nKey.SIDEBAR$SETTINGS)})]})}),(0,w.jsxs)(`div`,{className:`relative`,ref:V,onMouseEnter:()=>{q.current&&=(clearTimeout(q.current),null),B(!0)},onMouseLeave:()=>{q.current=setTimeout(()=>B(!1),150)},children:[(0,w.jsxs)(`button`,{type:`button`,"data-testid":`collapsed-backend-selector-link`,"aria-label":G(n.I18nKey.BACKEND$MANAGE),"aria-expanded":z,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onMouseUp:e=>e.stopPropagation(),className:s.cn(d.sidebarNavRowClassName({collapsed:!0}),`relative`),children:[(0,w.jsx)(f.SidebarCollapsedIconSlot,{active:z,children:(0,w.jsxs)(`span`,{className:`relative inline-flex size-[18px] shrink-0 items-center justify-center`,children:[(0,w.jsx)(re.BackendStatusDot,{isConnected:R?.isConnected??null,className:`absolute -left-0.5 -top-0.5 z-[1] pointer-events-none`}),(0,w.jsx)(te.Server,{width:T,height:T})]})}),(0,w.jsx)(`span`,{className:d.sidebarNavLabelClassName(!0),children:G(n.I18nKey.BACKEND$MANAGE)})]}),z?(0,w.jsx)(`div`,{className:`absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]`,onClick:e=>e.stopPropagation(),children:(0,w.jsx)(g.BackendSelector,{sidebarCollapsed:e,hideTrigger:!0,defaultOpen:!0,openUpward:!0,onSelectOption:()=>B(!1),onOpenAddBackend:U,onOpenManageBackends:W})}):null]})]}):null,e?null:(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{className:`mb-2 shrink-0 pr-2.5`,children:(0,w.jsx)(x.SidebarOnboardingChecklist,{collapsed:e})}),(0,w.jsxs)(`div`,{className:s.cn(`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`),children:[(0,w.jsx)(v.AgentCanvasVersionTile,{hideWhenUpToDate:!0}),(0,w.jsx)(g.BackendSelector,{sidebarCollapsed:e,openUpward:!0})]})]})]})}exports.SidebarRailBody=O;
|
|
2
2
|
//# sourceMappingURL=sidebar-rail-body.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-rail-body.cjs","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.cjs","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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"}
|
|
@@ -12,6 +12,7 @@ export interface SidebarRailBodyProps {
|
|
|
12
12
|
isExtensionsActive: boolean;
|
|
13
13
|
currentPath: string;
|
|
14
14
|
activeBackend: Backend;
|
|
15
|
+
activeOrgId: string | null;
|
|
15
16
|
activeBackendHealth: {
|
|
16
17
|
isConnected: boolean | null;
|
|
17
18
|
} | undefined;
|
|
@@ -22,4 +23,4 @@ export interface SidebarRailBodyProps {
|
|
|
22
23
|
onOpenAddBackend: () => void;
|
|
23
24
|
onOpenManageBackends: () => void;
|
|
24
25
|
}
|
|
25
|
-
export declare function SidebarRailBody({ collapsed, showCollapseToggle, showMobileCloseButton, onCloseMobile, collapseToggleLabel, onCollapse, onExpand, showCollapsedExpandButton, isExtensionsActive, currentPath, activeBackend, activeBackendHealth, collapsedBackendPopoverOpen, setCollapsedBackendPopoverOpen, collapsedBackendPopoverRef, collapsedBackendCloseTimer, onOpenAddBackend, onOpenManageBackends, }: SidebarRailBodyProps): React.JSX.Element;
|
|
26
|
+
export declare function SidebarRailBody({ collapsed, showCollapseToggle, showMobileCloseButton, onCloseMobile, collapseToggleLabel, onCollapse, onExpand, showCollapsedExpandButton, isExtensionsActive, currentPath, activeBackend, activeOrgId, activeBackendHealth, collapsedBackendPopoverOpen, setCollapsedBackendPopoverOpen, collapsedBackendPopoverRef, collapsedBackendCloseTimer, onOpenAddBackend, onOpenManageBackends, }: SidebarRailBodyProps): React.JSX.Element;
|