@openhands/agent-canvas 1.3.0 → 1.5.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 +11 -12
- package/README.windows.md +4 -2
- package/build/assets/{Trans-DY6toRDu.js → Trans-DqF_OEZB.js} +1 -1
- package/build/assets/{acp-providers-Djl6vNn-.js → acp-providers-BQwoUBpe.js} +1 -1
- package/build/assets/active-backend-context-BCXRv5pm.js +1 -0
- package/build/assets/{add-backend-modal-DljoP9lc.js → add-backend-modal-BKHzq5no.js} +1 -1
- package/build/assets/{agent-profiles-settings-BJMmTZgv.js → agent-profiles-settings-CEp5CIz8.js} +1 -1
- package/build/assets/agent-server-compatibility-D6DSanlx.js +1 -0
- package/build/assets/agent-server-conversation-service.api-cylugfDz.js +41 -0
- package/build/assets/{agent-settings-lUknCeaF.js → agent-settings-C-tann3x.js} +2 -2
- package/build/assets/agent-settings-DGUKNSnU.js +1 -0
- package/build/assets/{alert-banner-Bpf2NQJq.js → alert-banner-Dd4woGbm.js} +1 -1
- package/build/assets/api-key-entry-screen-Bll_CkuQ.js +1 -0
- package/build/assets/app-settings-BpViWwpC.js +1 -0
- package/build/assets/automation-detail-Z9dN2f5l.js +2 -0
- package/build/assets/automation-export-D5uL0Tf8.js +2 -0
- package/build/assets/automations-list-BMOWcqzZ.js +1 -0
- package/build/assets/{back-nav-button-CUS2mi-U.js → back-nav-button-ZUDTMOTB.js} +1 -1
- package/build/assets/backend-form-modal-DhBT8P4g.js +1 -0
- package/build/assets/{backend-synced-settings-badge-CanzmG12.js → backend-synced-settings-badge-Db_REKVw.js} +1 -1
- package/build/assets/{base-modal-BuF2f0YL.js → base-modal-Cb0C6m0Q.js} +1 -1
- package/build/assets/{bot-D7eUAuSB.js → bot-C-EA6685.js} +1 -1
- package/build/assets/{brand-button-vMVuyDXu.js → brand-button-2Tp3aXk1.js} +1 -1
- package/build/assets/{browser-BifzWIBd.js → browser-QYLVr1kS.js} +2 -2
- package/build/assets/browser-store-BGXOGo-R.js +1 -0
- package/build/assets/{browser-tab-CkkqJnqw.js → browser-tab-BTTP1OE2.js} +1 -1
- package/build/assets/canvas-ui-BhxjoA1f.js +1 -0
- package/build/assets/{chat-send-button-B_jc5z5C.js → chat-send-button-BZHG2hAW.js} +1 -1
- package/build/assets/check-TbOEtHKj.js +1 -0
- package/build/assets/{chevron-down-CI8A6tet.js → chevron-down-D7IvFMBM.js} +1 -1
- package/build/assets/{circle-plus-check-toggle-C5YxjxvI.js → circle-plus-check-toggle-QQJKUnF6.js} +1 -1
- package/build/assets/client-source-Biqarhgr.js +1 -0
- package/build/assets/cloud-funnel-analytics-D-27T5Ao.js +1 -0
- package/build/assets/{combobox-caret-DoObzqf4.js → combobox-caret-A5jMVHgE.js} +1 -1
- package/build/assets/{command-menu-D-JV3Wqm.js → command-menu-BMVEme4H.js} +1 -1
- package/build/assets/{command-store-D8J5LMW1.js → command-store-jrWX_CcW.js} +1 -1
- package/build/assets/condenser-settings-CIa6eyB4.js +1 -0
- package/build/assets/{confirmation-modal-BGLu6XJN.js → confirmation-modal-4n_944zq.js} +1 -1
- package/build/assets/{context-menu-list-item-BD5_EaKN.js → context-menu-list-item-DvfFic5I.js} +1 -1
- package/build/assets/conversation-CHnEXGRM.js +1 -0
- package/build/assets/conversation-D4o4dG2t.js +89 -0
- package/build/assets/conversation-panel-11FjLCId.js +1 -0
- package/build/assets/conversation-service.api-0JG_fF9d.js +1 -0
- package/build/assets/conversation-state-store-JiUQp02U.js +1 -0
- package/build/assets/{conversation-store-LptbOvKa.js → conversation-store-BCSpLuEf.js} +1 -1
- package/build/assets/{conversation-tab-empty-state-B2dDYEwf.js → conversation-tab-empty-state-BUhKVwoi.js} +1 -1
- package/build/assets/{copy-3JCw_XFB.js → copy-D1YGjP-C.js} +1 -1
- package/build/assets/{copy-to-clipboard-button-CaR52OnA.js → copy-to-clipboard-button-Dp4Q_hXi.js} +1 -1
- package/build/assets/declaration-BGsHjPEW.js +1 -0
- package/build/assets/{device-verify-BsznkV-a.js → device-verify-CM086oKs.js} +1 -1
- package/build/assets/{dropdown-classes-DJSXeLqc.js → dropdown-classes-DZq0BQjb.js} +1 -1
- package/build/assets/{ellipsis-button-C5Z-tPFp.js → ellipsis-button-TPJdyxnK.js} +1 -1
- package/build/assets/{entry.client-JixNvFrr.js → entry.client-DypYHsYm.js} +2 -2
- package/build/assets/{enum-filter-dropdown-DXbVwiNZ.js → enum-filter-dropdown-CW_mBg0e.js} +1 -1
- package/build/assets/{environment-switch-overlay-DZQfRGTx.js → environment-switch-overlay-6laJch-9.js} +1 -1
- package/build/assets/{extensions-hub-DfvgqzTc.js → extensions-hub-BJFbFfKS.js} +1 -1
- package/build/assets/{extensions-navigation-D9i0DL62.js → extensions-navigation-DqSl7CJw.js} +1 -1
- package/build/assets/{external-link-D2zJjE9G.js → external-link-lhdITPqq.js} +1 -1
- package/build/assets/files-tab-c316dKAq.js +1 -0
- package/build/assets/{files-tab-store-DJsPxYdg.js → files-tab-store-tfCav6bB.js} +1 -1
- package/build/assets/{form-control-classes-ChpNBe9n.js → form-control-classes-CvUaw8_L.js} +1 -1
- package/build/assets/format-time-delta-DhDbkD7V.js +1 -0
- package/build/assets/git-provider-icon-DUb2pEos.js +1 -0
- package/build/assets/home-BQ-DC06B.js +1 -0
- package/build/assets/home-D7ds4Jyw.js +1 -0
- package/build/assets/index-home-BRFDWs_4.js +1 -0
- package/build/assets/install-server-modal-CvHvzZj3.js +1 -0
- package/build/assets/{launch-BgIlZLSX.js → launch-A47TK2Me.js} +1 -1
- package/build/assets/lesson-plan-DSf95kQ2.js +4 -0
- package/build/assets/{list-todo-BfH6yYUK.js → list-todo-CAtvkzcy.js} +1 -1
- package/build/assets/llm-not-configured-banner-B7DR8SPs.js +27 -0
- package/build/assets/llm-settings-Ch4ZbW3c.js +1 -0
- package/build/assets/llm-settings-Cvi7q4ox.js +1 -0
- package/build/assets/llm-subscription-service-Cz1yBBvE.js +1 -0
- package/build/assets/loader-circle-CsAsfLIs.js +1 -0
- package/build/assets/{loading-spinner-BLdswi6q.js → loading-spinner-Txxx1I1p.js} +1 -1
- package/build/assets/manage-backends-modal-DAVhNUCe.js +1 -0
- package/build/assets/manifest-958c741a.js +1 -0
- package/build/assets/{markdown-renderer-DMT7Zkpd.js → markdown-renderer-B6cJJ_MN.js} +1 -1
- package/build/assets/{mcp-CHkklDMv.js → mcp-BwssgMpg.js} +2 -2
- package/build/assets/{messages-B3RugH7P.js → messages-D8MeG2ZQ.js} +26 -26
- package/build/assets/{modal-body-DouOE5KH.js → modal-body-CDZdZ-eT.js} +1 -1
- package/build/assets/{modal-classes-Cf-4tbHz.js → modal-classes-B4oit_4c.js} +1 -1
- package/build/assets/{modal-close-button-B6CfxxJj.js → modal-close-button-DQElFMPo.js} +1 -1
- package/build/assets/model-selector-BxTbbKub.js +1 -0
- package/build/assets/{navigation-link-D8hfwvxI.js → navigation-link-imH6S7h2.js} +1 -1
- package/build/assets/onboarding-CyicadGt.js +1 -0
- package/build/assets/onboarding-modal-DQwihcTz.js +1 -0
- package/build/assets/option-service.api-DAkg_F7p.js +1 -0
- package/build/assets/organization-service.api-QknzKDh3.js +1 -0
- package/build/assets/package-Dk_VtWJ4.js +1 -0
- package/build/assets/path-utils-BECGet7G.js +1 -0
- package/build/assets/{pencil-Dj2XjKmI.js → pencil-CWhApFIT.js} +1 -1
- package/build/assets/{plan-components-CcCBmCzW.js → plan-components-CgPHWz3E.js} +1 -1
- package/build/assets/{planner-tab-CCqdXxkL.js → planner-tab-DPKHmMAX.js} +1 -1
- package/build/assets/plugins-management-service-DuTTxquo.js +1 -0
- package/build/assets/profiles-service.api-D6jvZOWu.js +1 -0
- package/build/assets/providers-B8pxQK8x.js +1 -0
- package/build/assets/proxy-CuhhyjdX.js +1 -0
- package/build/assets/{recommended-automations-launcher-CVEF_1pc.js → recommended-automations-launcher-DA6DWS7V.js} +1 -1
- package/build/assets/{refresh-cw-DM82EIyx.js → refresh-cw-B9B7-vsy.js} +1 -1
- package/build/assets/root-BhP6bTBB.js +2 -0
- package/build/assets/root-CYWeTrWE.css +1 -0
- package/build/assets/root-layout-oBaHHW4s.js +2 -0
- package/build/assets/{runtime-waiting-state-BsXLElvN.js → runtime-waiting-state-DeD9G7yJ.js} +1 -1
- package/build/assets/schema-field-BOLdL_U7.js +1 -0
- package/build/assets/sdk-section-page-ZIltERxf.js +1 -0
- package/build/assets/{sdk-settings-schema-Cv7M9eSe.js → sdk-settings-schema-Ba_Pa9uf.js} +1 -1
- package/build/assets/search-dIQ09UY2.js +1 -0
- package/build/assets/secrets-service-50DElFny.js +1 -0
- package/build/assets/{secrets-settings-DxTx9HgU.js → secrets-settings-Digl7JLe.js} +1 -1
- package/build/assets/{segmented-toggle-DyQqPhoD.js → segmented-toggle-C1-ZVyr5.js} +1 -1
- package/build/assets/settings-BfgLHsgd.js +1 -0
- package/build/assets/{settings-dropdown-input-BjunGXJb.js → settings-dropdown-input-BD5C9fBn.js} +1 -1
- package/build/assets/{settings-index-BjeuYFFa.js → settings-index-CODBijya.js} +1 -1
- package/build/assets/{settings-input-bD6npsDm.js → settings-input-CzNOq-Pj.js} +1 -1
- package/build/assets/{settings-list-classes-Dp_OgzN0.js → settings-list-classes-CuxH9ZoR.js} +1 -1
- package/build/assets/settings-modal-BcSWpKI0.js +1 -0
- package/build/assets/settings-service.api-Bsu1PvYO.js +1 -0
- package/build/assets/{settings-switch-5cuxl8Dc.js → settings-switch-DqmHAfWJ.js} +1 -1
- package/build/assets/{settings-utils-BMdG65By.js → settings-utils-B1lBErvV.js} +1 -1
- package/build/assets/shared-conversation-CDskdmrb.js +1 -0
- package/build/assets/{sidebar-layout-DuzJMMw-.js → sidebar-layout-Cn6eQaEI.js} +1 -1
- package/build/assets/{sidebar-mobile-menu-toggle-CMmAYkh8.js → sidebar-mobile-menu-toggle-DmCmZgq1.js} +1 -1
- package/build/assets/{sidebar-nav-link-5AlTT5-j.js → sidebar-nav-link-DMc8AIe7.js} +1 -1
- package/build/assets/{sidebar-store-CZuE8AH5.js → sidebar-store-DXWSCFpa.js} +1 -1
- package/build/assets/{skill-card-pill-row-eTIkE4nz.js → skill-card-pill-row-DOIWjiMF.js} +1 -1
- package/build/assets/skills-plugins-DLgINYuY.js +1 -0
- package/build/assets/{skills-settings-BYn4-AQQ.js → skills-settings-DPiCWalR.js} +2 -2
- package/build/assets/{square-chevron-right-Czw3FFWc.js → square-chevron-right-DE-JN-2Z.js} +1 -1
- package/build/assets/{styled-tooltip-CgX2oRaK.js → styled-tooltip-CvsjHuIf.js} +1 -1
- package/build/assets/{suspense-X5dBsJzn.js → suspense-DmZ3MSSh.js} +1 -1
- package/build/assets/{task-list-tab-0k9PhuqO.js → task-list-tab-CuhcDycu.js} +1 -1
- package/build/assets/telemetry-DHiTRl5_.js +2 -0
- package/build/assets/{terminal-BsGcSpRS.js → terminal-CVqF-tCD.js} +1 -1
- package/build/assets/{toggle-switch-2j5wwR85.js → toggle-switch-CS0ClOy2.js} +1 -1
- package/build/assets/{trash-2-Be_7y3Mn.js → trash-2-BU6BlW4i.js} +1 -1
- package/build/assets/{typography-D8mHDeNG.js → typography-CQn9wyEX.js} +1 -1
- package/build/assets/use-acp-credential-form-LlfZO_DD.js +1 -0
- package/build/assets/{use-activate-agent-profile-WaAZYz4E.js → use-activate-agent-profile-DpQjsXM0.js} +1 -1
- package/build/assets/{use-active-agent-profile-CYY3vGar.js → use-active-agent-profile-Gw_uJujV.js} +1 -1
- package/build/assets/{use-active-conversation-D-r929nx.js → use-active-conversation-B0sttISF.js} +1 -1
- package/build/assets/use-agent-profiles-LHZEK0Gg.js +1 -0
- package/build/assets/{use-agent-state-DijdVAQ0.js → use-agent-state-C5uA0bRj.js} +1 -1
- package/build/assets/use-backends-health-DKt1SmiU.js +1 -0
- package/build/assets/{use-can-manage-org-profiles-BEo0peGn.js → use-can-manage-org-profiles-BAtqsbCi.js} +1 -1
- package/build/assets/use-cloud-current-user-id-C8m1oBy4.js +1 -0
- package/build/assets/use-config-CXy4vD0H.js +1 -0
- package/build/assets/use-create-conversation-CWQGNQ9J.js +1 -0
- package/build/assets/{use-create-secret-D5O5qdWC.js → use-create-secret-BIrsX3OB.js} +1 -1
- package/build/assets/{use-event-store-DjgU4wfO.js → use-event-store-CsD17BKu.js} +1 -1
- package/build/assets/{use-handle-plan-click-Mn_SNTCh.js → use-handle-plan-click-DEuO7Byo.js} +1 -1
- package/build/assets/use-is-authed-Dvbpiu3B.js +1 -0
- package/build/assets/{use-launch-skill-in-chat-BnoDgvAy.js → use-launch-skill-in-chat-CdHOoQGM.js} +1 -1
- package/build/assets/use-llm-profiles-DQpQxVOD.js +1 -0
- package/build/assets/use-plugins-marketplace-Bkk07W_M.js +1 -0
- package/build/assets/use-runtime-is-ready-D4pkGT6E.js +1 -0
- package/build/assets/use-save-agent-profile-BxEsjnW0.js +1 -0
- package/build/assets/{use-save-settings-D1HoCDbn.js → use-save-settings-ioSUMqbE.js} +1 -1
- package/build/assets/use-settings-DNJC4gqu.js +1 -0
- package/build/assets/use-settings-nav-items-BUsrDbVR.js +16 -0
- package/build/assets/use-skills-BsmKm23M.js +1 -0
- package/build/assets/{use-task-list-AVBLbbcR.js → use-task-list-rs7Xbzl8.js} +1 -1
- package/build/assets/{use-tracking-2ZwQwpg_.js → use-tracking-poxQHMwR.js} +1 -1
- package/build/assets/{use-user-conversation-OAfenBRG.js → use-user-conversation-B337kUKB.js} +1 -1
- package/build/assets/{useMutation-DCE9RcgK.js → useMutation-u8UgRgDK.js} +1 -1
- package/build/assets/{useMutationState-BUab8Kxr.js → useMutationState-OnAsCLA_.js} +1 -1
- package/build/assets/{useQueries-CRzaAqzH.js → useQueries-BpIlT8Mt.js} +1 -1
- package/build/assets/{useQuery-CpjHYtZc.js → useQuery-D5pEZbY0.js} +1 -1
- package/build/assets/{useTranslation-CDRCKC9-.js → useTranslation-Cbf5AGg_.js} +1 -1
- package/build/assets/{utils-D3U3rlqr.js → utils-DB9LsAzA.js} +1 -1
- package/build/assets/{vendor~browser-Cvg7jXCP.js → vendor~browser-5Njjw1Cl.js} +1 -1
- package/build/assets/{vendor~browser-tab-Di0kh5Zw.js → vendor~browser-tab-Xn94EtUo.js} +1 -1
- package/build/assets/{vendor~entry.client-9tWQ_Ugw.js → vendor~entry.client-DDuH4--y.js} +1 -1
- package/build/assets/{vendor~entry.client-D6BtSOtn.js → vendor~entry.client-DQGrNspu.js} +1 -1
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~dhilvkxv-BIieS_OD.js +2 -0
- package/build/assets/vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~iztiaf2o-rqo6vRFz.js +185 -0
- package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~ljq5gbus-B2XD4bi2.js} +1 -1
- package/build/assets/{vendor~files-tab-B02k3xvx.js → vendor~files-tab-CiC3-lGh.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation-CYMF9JYB.js → vendor~index-home~home~conversation-panel~conversation-ChmYLVgz.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-9UMeuPV6.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-B8XNNEQZ.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-d8aETPbZ.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CnJRLn5s.js} +1 -1
- package/build/assets/vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DWteoTyr.js +2 -0
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-D7EUmQ8Y.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-Dc5nKwLO.js} +1 -1
- package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BD0GaRGa.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-tlf6AnDe.js} +1 -1
- package/build/assets/{vendor~launch-CHXA9cJu.js → vendor~launch-28DK5Rsl.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js → vendor~root-layout~conversation-panel~conversation-8tIsyrPj.js} +1 -1
- package/build/assets/{vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js → vendor~root-layout~conversation-panel~conversation~shared-conversation-lYNG9C1U.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js → vendor~root-layout~index-home~home~conversation-panel~conversation-Zhq6xAxR.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js → vendor~root-layout~index-home~home~conversation-panel~conversation~shared-conversation~aler~gfu7qdtz-B81b08bw.js} +1 -1
- package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js → vendor~root~root-layout~index-home~home~conversation-panel~conversation~launch~extensions-h~ftka0fnu-jpyLM1Nn.js} +2 -2
- package/build/assets/{verification-settings-DnXS6VWv.js → verification-settings-HRgEM-_3.js} +1 -1
- package/build/assets/x-ZE4iplpF.js +1 -0
- package/build/index.html +4 -4
- package/build/locales/ar/openhands.json +9 -0
- package/build/locales/ca/openhands.json +9 -0
- package/build/locales/de/openhands.json +9 -0
- package/build/locales/en/openhands.json +10 -1
- package/build/locales/es/openhands.json +9 -0
- package/build/locales/fr/openhands.json +9 -0
- package/build/locales/it/openhands.json +9 -0
- package/build/locales/ja/openhands.json +9 -0
- package/build/locales/ko-KR/openhands.json +9 -0
- package/build/locales/no/openhands.json +9 -0
- package/build/locales/pt/openhands.json +9 -0
- package/build/locales/tr/openhands.json +9 -0
- package/build/locales/uk/openhands.json +9 -0
- package/build/locales/zh-CN/openhands.json +9 -0
- package/build/locales/zh-TW/openhands.json +9 -0
- package/config/defaults.json +5 -4
- package/dist/api/agent-server-adapter.cjs +3 -3
- package/dist/api/agent-server-adapter.cjs.map +1 -1
- package/dist/api/agent-server-adapter.d.ts +9 -1
- package/dist/api/agent-server-adapter.js +105 -102
- package/dist/api/agent-server-adapter.js.map +1 -1
- package/dist/api/agent-server-config.cjs +1 -1
- package/dist/api/agent-server-config.cjs.map +1 -1
- package/dist/api/agent-server-config.d.ts +3 -0
- package/dist/api/agent-server-config.js +45 -23
- package/dist/api/agent-server-config.js.map +1 -1
- package/dist/api/backend-registry/auth.cjs +1 -1
- package/dist/api/backend-registry/auth.cjs.map +1 -1
- package/dist/api/backend-registry/auth.js +1 -1
- package/dist/api/backend-registry/auth.js.map +1 -1
- package/dist/api/backend-registry/default-backend.cjs +1 -1
- package/dist/api/backend-registry/default-backend.cjs.map +1 -1
- package/dist/api/backend-registry/default-backend.d.ts +3 -0
- package/dist/api/backend-registry/default-backend.js +22 -10
- package/dist/api/backend-registry/default-backend.js.map +1 -1
- package/dist/api/backend-registry/storage.cjs +1 -1
- package/dist/api/backend-registry/storage.cjs.map +1 -1
- package/dist/api/backend-registry/storage.js +38 -33
- package/dist/api/backend-registry/storage.js.map +1 -1
- package/dist/api/backend-registry/types.d.ts +2 -0
- package/dist/api/canvas-ui-client-tool.cjs +38 -0
- package/dist/api/canvas-ui-client-tool.cjs.map +1 -0
- package/dist/api/canvas-ui-client-tool.d.ts +14 -0
- package/dist/api/canvas-ui-client-tool.js +47 -0
- package/dist/api/canvas-ui-client-tool.js.map +1 -0
- package/dist/api/client-source.cjs +2 -0
- package/dist/api/client-source.cjs.map +1 -0
- package/dist/api/client-source.d.ts +9 -0
- package/dist/api/client-source.js +10 -0
- package/dist/api/client-source.js.map +1 -0
- package/dist/api/cloud/client.cjs +2 -0
- package/dist/api/cloud/client.cjs.map +1 -0
- package/dist/api/cloud/client.d.ts +4 -0
- package/dist/api/cloud/client.js +38 -0
- package/dist/api/cloud/client.js.map +1 -0
- package/dist/api/cloud/conversation-service.api.cjs +1 -1
- package/dist/api/cloud/conversation-service.api.cjs.map +1 -1
- package/dist/api/cloud/conversation-service.api.js +33 -31
- package/dist/api/cloud/conversation-service.api.js.map +1 -1
- package/dist/api/cloud/organization-service.api.cjs +1 -1
- package/dist/api/cloud/organization-service.api.cjs.map +1 -1
- package/dist/api/cloud/organization-service.api.js +11 -10
- package/dist/api/cloud/organization-service.api.js.map +1 -1
- package/dist/api/cloud/proxy.cjs +1 -1
- package/dist/api/cloud/proxy.cjs.map +1 -1
- package/dist/api/cloud/proxy.d.ts +2 -40
- package/dist/api/cloud/proxy.js +14 -39
- package/dist/api/cloud/proxy.js.map +1 -1
- package/dist/api/conversation-metadata-store.cjs +1 -1
- package/dist/api/conversation-metadata-store.cjs.map +1 -1
- package/dist/api/conversation-metadata-store.d.ts +2 -9
- package/dist/api/conversation-metadata-store.js +13 -9
- package/dist/api/conversation-metadata-store.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.cjs.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.d.ts +2 -1
- package/dist/api/conversation-service/agent-server-conversation-service.api.js +98 -88
- package/dist/api/conversation-service/agent-server-conversation-service.api.js.map +1 -1
- package/dist/api/conversation-service/agent-server-conversation-service.types.d.ts +5 -0
- package/dist/api/device-flow-client.cjs +1 -1
- package/dist/api/device-flow-client.cjs.map +1 -1
- package/dist/api/device-flow-client.d.ts +4 -58
- package/dist/api/device-flow-client.js +8 -98
- package/dist/api/device-flow-client.js.map +1 -1
- package/dist/api/git-service/agent-server-git-service.api.cjs +1 -1
- package/dist/api/git-service/agent-server-git-service.api.cjs.map +1 -1
- package/dist/api/git-service/agent-server-git-service.api.d.ts +10 -2
- package/dist/api/git-service/agent-server-git-service.api.js +107 -40
- package/dist/api/git-service/agent-server-git-service.api.js.map +1 -1
- package/dist/api/open-hands.types.d.ts +11 -0
- package/dist/api/secrets-service.cjs +1 -1
- package/dist/api/secrets-service.cjs.map +1 -1
- package/dist/api/secrets-service.js +15 -14
- package/dist/api/secrets-service.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js +73 -64
- package/dist/components/conversation-events/chat/event-content-helpers/get-event-content.js.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.cjs +2 -2
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.cjs.map +1 -1
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.js +2 -0
- package/dist/components/conversation-events/chat/event-content-helpers/get-observation-content.js.map +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs +1 -1
- package/dist/components/features/backends/backend-form-modal.cjs.map +1 -1
- package/dist/components/features/backends/backend-form-modal.d.ts +7 -3
- package/dist/components/features/backends/backend-form-modal.js +216 -201
- package/dist/components/features/backends/backend-form-modal.js.map +1 -1
- package/dist/components/features/backends/backend-row.cjs +1 -1
- package/dist/components/features/backends/backend-row.cjs.map +1 -1
- package/dist/components/features/backends/backend-row.js +2 -1
- package/dist/components/features/backends/backend-row.js.map +1 -1
- 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 +51 -51
- package/dist/components/features/backends/backend-selector.js.map +1 -1
- package/dist/components/features/backends/device-flow-auth.cjs +1 -1
- package/dist/components/features/backends/device-flow-auth.cjs.map +1 -1
- package/dist/components/features/backends/device-flow-auth.d.ts +4 -1
- package/dist/components/features/backends/device-flow-auth.js +38 -38
- package/dist/components/features/backends/device-flow-auth.js.map +1 -1
- package/dist/components/features/chat/chat-interface.cjs +2 -2
- package/dist/components/features/chat/chat-interface.cjs.map +1 -1
- package/dist/components/features/chat/chat-interface.js +173 -165
- package/dist/components/features/chat/chat-interface.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-actions.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-actions.d.ts +2 -1
- package/dist/components/features/chat/components/chat-input-actions.js +44 -43
- package/dist/components/features/chat/components/chat-input-actions.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-container.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-container.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-container.d.ts +2 -1
- package/dist/components/features/chat/components/chat-input-container.js +20 -19
- package/dist/components/features/chat/components/chat-input-container.js.map +1 -1
- package/dist/components/features/chat/components/chat-input-profile-picker.cjs +1 -1
- package/dist/components/features/chat/components/chat-input-profile-picker.cjs.map +1 -1
- package/dist/components/features/chat/components/chat-input-profile-picker.js +44 -32
- package/dist/components/features/chat/components/chat-input-profile-picker.js.map +1 -1
- package/dist/components/features/chat/components/resolve-picker-kind.cjs +1 -1
- package/dist/components/features/chat/components/resolve-picker-kind.cjs.map +1 -1
- package/dist/components/features/chat/components/resolve-picker-kind.d.ts +10 -22
- package/dist/components/features/chat/components/resolve-picker-kind.js +6 -3
- package/dist/components/features/chat/components/resolve-picker-kind.js.map +1 -1
- package/dist/components/features/chat/custom-chat-input.cjs +1 -1
- package/dist/components/features/chat/custom-chat-input.cjs.map +1 -1
- package/dist/components/features/chat/custom-chat-input.d.ts +2 -1
- package/dist/components/features/chat/custom-chat-input.js +52 -51
- package/dist/components/features/chat/custom-chat-input.js.map +1 -1
- package/dist/components/features/chat/interactive-chat-box.cjs +1 -1
- package/dist/components/features/chat/interactive-chat-box.cjs.map +1 -1
- package/dist/components/features/chat/interactive-chat-box.d.ts +2 -1
- package/dist/components/features/chat/interactive-chat-box.js +9 -8
- package/dist/components/features/chat/interactive-chat-box.js.map +1 -1
- package/dist/components/features/diff-viewer/commit-list.cjs +2 -0
- package/dist/components/features/diff-viewer/commit-list.cjs.map +1 -0
- package/dist/components/features/diff-viewer/commit-list.d.ts +13 -0
- package/dist/components/features/diff-viewer/commit-list.js +27 -0
- package/dist/components/features/diff-viewer/commit-list.js.map +1 -0
- package/dist/components/features/diff-viewer/commit-row.cjs +2 -0
- package/dist/components/features/diff-viewer/commit-row.cjs.map +1 -0
- package/dist/components/features/diff-viewer/commit-row.d.ts +14 -0
- package/dist/components/features/diff-viewer/commit-row.js +59 -0
- package/dist/components/features/diff-viewer/commit-row.js.map +1 -0
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.cjs.map +1 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.d.ts +7 -1
- package/dist/components/features/diff-viewer/file-diff-viewer.js +40 -39
- package/dist/components/features/diff-viewer/file-diff-viewer.js.map +1 -1
- package/dist/components/features/plugins/plugin-detail-modal.d.ts +2 -1
- package/dist/components/shared/modals/settings/settings-modal.cjs +1 -1
- package/dist/components/shared/modals/settings/settings-modal.cjs.map +1 -1
- package/dist/components/shared/modals/settings/settings-modal.js +23 -22
- package/dist/components/shared/modals/settings/settings-modal.js.map +1 -1
- package/dist/config/defaults.cjs +1 -1
- package/dist/config/defaults.cjs.map +1 -1
- package/dist/config/defaults.js +5 -4
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants/acp-providers.cjs.map +1 -1
- package/dist/constants/acp-providers.d.ts +1 -1
- package/dist/constants/acp-providers.js.map +1 -1
- package/dist/constants/canvas-ui.cjs +2 -0
- package/dist/constants/canvas-ui.cjs.map +1 -0
- package/dist/constants/canvas-ui.d.ts +8 -0
- package/dist/constants/canvas-ui.js +6 -0
- package/dist/constants/canvas-ui.js.map +1 -0
- package/dist/contexts/conversation-websocket-context.cjs.map +1 -1
- package/dist/contexts/conversation-websocket-context.js.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs +1 -1
- package/dist/hooks/mutation/use-create-conversation.cjs.map +1 -1
- package/dist/hooks/mutation/use-create-conversation.d.ts +2 -1
- package/dist/hooks/mutation/use-create-conversation.js +52 -52
- package/dist/hooks/mutation/use-create-conversation.js.map +1 -1
- package/dist/hooks/query/query-keys.cjs +1 -1
- package/dist/hooks/query/query-keys.cjs.map +1 -1
- package/dist/hooks/query/query-keys.d.ts +2 -0
- package/dist/hooks/query/query-keys.js +4 -1
- package/dist/hooks/query/query-keys.js.map +1 -1
- package/dist/hooks/query/use-backends-health.cjs +1 -1
- package/dist/hooks/query/use-backends-health.cjs.map +1 -1
- package/dist/hooks/query/use-backends-health.js +50 -48
- package/dist/hooks/query/use-backends-health.js.map +1 -1
- package/dist/hooks/query/use-cloud-organizations.cjs +1 -1
- package/dist/hooks/query/use-cloud-organizations.cjs.map +1 -1
- package/dist/hooks/query/use-cloud-organizations.d.ts +1 -0
- package/dist/hooks/query/use-cloud-organizations.js +5 -2
- package/dist/hooks/query/use-cloud-organizations.js.map +1 -1
- package/dist/hooks/query/use-commit-changes.cjs +2 -0
- package/dist/hooks/query/use-commit-changes.cjs.map +1 -0
- package/dist/hooks/query/use-commit-changes.d.ts +5 -0
- package/dist/hooks/query/use-commit-changes.js +34 -0
- package/dist/hooks/query/use-commit-changes.js.map +1 -0
- package/dist/hooks/query/use-task-polling.cjs +1 -1
- package/dist/hooks/query/use-task-polling.cjs.map +1 -1
- package/dist/hooks/query/use-task-polling.d.ts +3 -2
- package/dist/hooks/query/use-task-polling.js +53 -40
- package/dist/hooks/query/use-task-polling.js.map +1 -1
- package/dist/hooks/query/use-unified-git-commits.cjs +2 -0
- package/dist/hooks/query/use-unified-git-commits.cjs.map +1 -0
- package/dist/hooks/query/use-unified-git-commits.d.ts +10 -0
- package/dist/hooks/query/use-unified-git-commits.js +41 -0
- package/dist/hooks/query/use-unified-git-commits.js.map +1 -0
- package/dist/hooks/query/use-unified-git-diff.cjs +1 -1
- package/dist/hooks/query/use-unified-git-diff.cjs.map +1 -1
- package/dist/hooks/query/use-unified-git-diff.d.ts +5 -0
- package/dist/hooks/query/use-unified-git-diff.js +11 -4
- package/dist/hooks/query/use-unified-git-diff.js.map +1 -1
- package/dist/hooks/use-acp-model-context.cjs +1 -1
- package/dist/hooks/use-acp-model-context.cjs.map +1 -1
- package/dist/hooks/use-acp-model-context.d.ts +4 -1
- package/dist/hooks/use-acp-model-context.js +9 -8
- package/dist/hooks/use-acp-model-context.js.map +1 -1
- package/dist/hooks/use-auto-refresh-files-on-edit.cjs +1 -1
- package/dist/hooks/use-auto-refresh-files-on-edit.cjs.map +1 -1
- package/dist/hooks/use-auto-refresh-files-on-edit.js +1 -1
- package/dist/hooks/use-auto-refresh-files-on-edit.js.map +1 -1
- package/dist/hooks/use-chat-input-model-state.cjs.map +1 -1
- package/dist/hooks/use-chat-input-model-state.d.ts +2 -1
- package/dist/hooks/use-chat-input-model-state.js.map +1 -1
- package/dist/hooks/use-chat-input-profile-state.cjs +1 -1
- package/dist/hooks/use-chat-input-profile-state.cjs.map +1 -1
- package/dist/hooks/use-chat-input-profile-state.d.ts +1 -10
- package/dist/hooks/use-chat-input-profile-state.js +42 -15
- package/dist/hooks/use-chat-input-profile-state.js.map +1 -1
- package/dist/hooks/use-device-flow.cjs +1 -1
- package/dist/hooks/use-device-flow.cjs.map +1 -1
- package/dist/hooks/use-device-flow.d.ts +4 -1
- package/dist/hooks/use-device-flow.js +42 -40
- package/dist/hooks/use-device-flow.js.map +1 -1
- package/dist/hooks/use-tracking.cjs.map +1 -1
- package/dist/hooks/use-tracking.d.ts +2 -1
- package/dist/hooks/use-tracking.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 +9 -0
- package/dist/i18n/declaration.js +1 -1
- package/dist/i18n/declaration.js.map +1 -1
- package/dist/i18n/index.cjs +1 -1
- package/dist/i18n/index.cjs.map +1 -1
- package/dist/i18n/index.js +19 -18
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/translation.cjs +3 -3
- package/dist/i18n/translation.cjs.map +1 -1
- package/dist/i18n/translation.js +154 -1
- package/dist/i18n/translation.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +32 -32
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/locales/ar/openhands.json +9 -0
- package/dist/locales/ca/openhands.json +9 -0
- package/dist/locales/de/openhands.json +9 -0
- package/dist/locales/en/openhands.json +10 -1
- package/dist/locales/es/openhands.json +9 -0
- package/dist/locales/fr/openhands.json +9 -0
- package/dist/locales/it/openhands.json +9 -0
- package/dist/locales/ja/openhands.json +9 -0
- package/dist/locales/ko-KR/openhands.json +9 -0
- package/dist/locales/no/openhands.json +9 -0
- package/dist/locales/pt/openhands.json +9 -0
- package/dist/locales/tr/openhands.json +9 -0
- package/dist/locales/uk/openhands.json +9 -0
- package/dist/locales/zh-CN/openhands.json +9 -0
- package/dist/locales/zh-TW/openhands.json +9 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.js +351 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/cloud-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.js +106 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/device-flow-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs +2 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.cjs.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js +69 -0
- package/dist/node_modules/@openhands/typescript-client/dist/client/openhands-client.js.map +1 -0
- package/dist/node_modules/@openhands/typescript-client/dist/clients.cjs +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/clients.js +3 -0
- 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 +18 -2
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp-providers.js.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp.cjs.map +1 -1
- package/dist/node_modules/@openhands/typescript-client/dist/models/acp.js.map +1 -1
- package/dist/node_modules/axios/index.cjs +1 -1
- package/dist/node_modules/axios/index.js +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/app-settings.cjs +1 -1
- package/dist/routes/app-settings.cjs.map +1 -1
- package/dist/routes/app-settings.js +67 -66
- package/dist/routes/app-settings.js.map +1 -1
- package/dist/routes/commits-tab.cjs +2 -0
- package/dist/routes/commits-tab.cjs.map +1 -0
- package/dist/routes/commits-tab.d.ts +8 -0
- package/dist/routes/commits-tab.js +45 -0
- package/dist/routes/commits-tab.js.map +1 -0
- package/dist/routes/files-tab.cjs +1 -1
- package/dist/routes/files-tab.cjs.map +1 -1
- package/dist/routes/files-tab.js +148 -127
- package/dist/routes/files-tab.js.map +1 -1
- package/dist/services/cloud-funnel-analytics.cjs +2 -0
- package/dist/services/cloud-funnel-analytics.cjs.map +1 -0
- package/dist/services/cloud-funnel-analytics.d.ts +12 -0
- package/dist/services/cloud-funnel-analytics.js +53 -0
- package/dist/services/cloud-funnel-analytics.js.map +1 -0
- package/dist/services/telemetry.cjs +1 -1
- package/dist/services/telemetry.cjs.map +1 -1
- package/dist/services/telemetry.js +49 -47
- package/dist/services/telemetry.js.map +1 -1
- package/dist/types/agent-server/core/base/action.d.ts +5 -4
- package/dist/types/agent-server/core/base/base.d.ts +3 -2
- package/dist/types/agent-server/core/base/observation.d.ts +1 -1
- package/dist/types/agent-server/type-guards.cjs +1 -1
- package/dist/types/agent-server/type-guards.cjs.map +1 -1
- package/dist/types/agent-server/type-guards.d.ts +3 -5
- package/dist/types/agent-server/type-guards.js +2 -1
- package/dist/types/agent-server/type-guards.js.map +1 -1
- package/dist/types/automation.d.ts +5 -0
- package/dist/utils/api-error-message.d.ts +11 -0
- package/dist/utils/automation-timeout.d.ts +19 -0
- package/dist/utils/base-path.cjs +2 -0
- package/dist/utils/base-path.cjs.map +1 -0
- package/dist/utils/base-path.d.ts +2 -0
- package/dist/utils/base-path.js +23 -0
- package/dist/utils/base-path.js.map +1 -0
- package/package.json +2 -2
- package/scripts/check-sdk-version-sync.mjs +6 -6
- package/scripts/dev-safe.mjs +7 -8
- package/scripts/dev-static.mjs +3 -0
- package/scripts/dev-with-automation.mjs +3 -0
- package/scripts/docker-build.mjs +4 -0
- package/scripts/static-server.mjs +93 -7
- package/tools/canvas_ui_tool.py +14 -8
- package/build/assets/active-backend-context-B3umL5R-.js +0 -1
- package/build/assets/agent-server-client-options-DVLRd9sw.js +0 -1
- package/build/assets/agent-server-conversation-service.api-D_ZvtJjG.js +0 -5
- package/build/assets/agent-settings-BVVFzBWS.js +0 -1
- package/build/assets/api-key-entry-screen-CWEHcPJA.js +0 -1
- package/build/assets/app-settings-Dj90qosy.js +0 -1
- package/build/assets/automation-detail-CXJU0_gF.js +0 -2
- package/build/assets/automation-export-FWY9LPsG.js +0 -2
- package/build/assets/automations-list-DDGBkWLC.js +0 -1
- package/build/assets/backend-form-modal-DSbrafX2.js +0 -1
- package/build/assets/browser-store-BI6uklCG.js +0 -1
- package/build/assets/check-Bvi71siz.js +0 -1
- package/build/assets/condenser-settings-30cX9SK6.js +0 -1
- package/build/assets/conversation-BltULtFA.js +0 -89
- package/build/assets/conversation-e0a0_X4S.js +0 -1
- package/build/assets/conversation-panel-Cr9_ZGI-.js +0 -1
- package/build/assets/conversation-service.api-DQaKzIRj.js +0 -1
- package/build/assets/conversation-state-store-B2Bp32XI.js +0 -1
- package/build/assets/declaration-gq8V5eTU.js +0 -1
- package/build/assets/files-tab-DDtEJcGE.js +0 -1
- package/build/assets/git-provider-icon-BjkecAuV.js +0 -1
- package/build/assets/home-BCKWpKpf.js +0 -1
- package/build/assets/index-redirect-CUUJiNki.js +0 -1
- package/build/assets/install-server-modal-BIugLhVB.js +0 -1
- package/build/assets/lesson-plan-DgpP80mJ.js +0 -4
- package/build/assets/llm-not-configured-banner-BlX8NifC.js +0 -27
- package/build/assets/llm-settings-DJmbryaE.js +0 -1
- package/build/assets/llm-settings-kU5v0H1Z.js +0 -1
- package/build/assets/llm-subscription-service-CKyaV24y.js +0 -1
- package/build/assets/loader-circle-BEykUKYG.js +0 -1
- package/build/assets/manage-backends-modal-C8FJQIZR.js +0 -1
- package/build/assets/manifest-56d40d7c.js +0 -1
- package/build/assets/model-selector-BOj1wBlq.js +0 -1
- package/build/assets/mouse-pointer-click-PdEQPL6v.js +0 -1
- package/build/assets/onboarding-DYhDxmI9.js +0 -1
- package/build/assets/onboarding-modal-CP_WxDC9.js +0 -1
- package/build/assets/option-service.api-C0tYT4-r.js +0 -1
- package/build/assets/organization-service.api-CnynNoT-.js +0 -1
- package/build/assets/path-utils-DWcgCGen.js +0 -1
- package/build/assets/plugins-management-service-BAp70KN7.js +0 -1
- package/build/assets/profiles-service.api-CeYEmSM3.js +0 -1
- package/build/assets/providers-BxCuC9bZ.js +0 -1
- package/build/assets/proxy-CHmFkV16.js +0 -1
- package/build/assets/root-V8fkplMy.css +0 -1
- package/build/assets/root-layout-CttG_lQi.js +0 -2
- package/build/assets/root-uJ2t9rCQ.js +0 -2
- package/build/assets/schema-field-xUr6rDd6.js +0 -1
- package/build/assets/sdk-section-page-CbLrVUa3.js +0 -1
- package/build/assets/search-4DHskuhE.js +0 -1
- package/build/assets/secrets-service-CZYjNxFw.js +0 -1
- package/build/assets/settings-DnlfS09K.js +0 -1
- package/build/assets/settings-modal-DfTcL-mV.js +0 -1
- package/build/assets/settings-service.api-K4ncGlBv.js +0 -1
- package/build/assets/shared-conversation-DWtBkJv7.js +0 -1
- package/build/assets/skills-plugins-BJ040luO.js +0 -1
- package/build/assets/use-acp-credential-form-EtnbtYt0.js +0 -1
- package/build/assets/use-agent-profiles-DEAMFp-W.js +0 -1
- package/build/assets/use-backends-health-DkC7tKkC.js +0 -1
- package/build/assets/use-cloud-current-user-id-Dm99wXp2.js +0 -1
- package/build/assets/use-config-CHzNIHpv.js +0 -1
- package/build/assets/use-create-conversation-CTsvZ96U.js +0 -1
- package/build/assets/use-is-authed-_dhQ2Xuj.js +0 -1
- package/build/assets/use-llm-profiles-BMhPDlwQ.js +0 -1
- package/build/assets/use-plugins-marketplace-BGb-KgfD.js +0 -1
- package/build/assets/use-runtime-is-ready-CC-KrLKe.js +0 -1
- package/build/assets/use-save-agent-profile-CLMmbx_X.js +0 -1
- package/build/assets/use-settings-BReAMxCG.js +0 -1
- package/build/assets/use-settings-nav-items-xe1YgLnE.js +0 -16
- package/build/assets/use-skills-Dqo-pDDx.js +0 -1
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js +0 -177
- package/build/assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js +0 -10
- package/build/assets/vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-CqXiHwjU.js +0 -2
- package/build/assets/x-Cb0WAtak.js +0 -1
- /package/build/assets/{__vite-browser-external-4xJsU2-u.js → __vite-browser-external-DU-Cb_sT.js} +0 -0
- /package/build/assets/{automation-BU8zu-FP.js → automation-BVEmGghX.js} +0 -0
- /package/build/assets/{checkmark-h7udgXMM.js → checkmark-DhcMGwtO.js} +0 -0
- /package/build/assets/{close-p3Op5lxI.js → close-DO5Rq_CS.js} +0 -0
- /package/build/assets/{code-tag-DYlAhEQY.js → code-tag-BvjtzUsr.js} +0 -0
- /package/build/assets/{color-themes-DPBzNtVg.js → color-themes-bVMmJJG6.js} +0 -0
- /package/build/assets/{common-Dh7OqABE.js → common-CxbUL3nR.js} +0 -0
- /package/build/assets/{conversation-local-storage-F6zVMM--.js → conversation-local-storage-B31voBg7.js} +0 -0
- /package/build/assets/{copy-BLmGeJcd.js → copy-DLUw2us-.js} +0 -0
- /package/build/assets/{createLucideIcon-CVAsW2Yo.js → createLucideIcon-D4Tak8A1.js} +0 -0
- /package/build/assets/{dist-CodhvuAP.js → dist-Dj01FXbZ.js} +0 -0
- /package/build/assets/{environment-switch-store-DkjlKWzN.js → environment-switch-store-D9hB9PvY.js} +0 -0
- /package/build/assets/{extension-module-card-classes-9V3J9J_b.js → extension-module-card-classes-BlO4w702.js} +0 -0
- /package/build/assets/{folder-mMWFvaw0.js → folder-ynxP2EIL.js} +0 -0
- /package/build/assets/{get-language-from-path-CPNnuVhI.js → get-language-from-path-rWEQrOGU.js} +0 -0
- /package/build/assets/{git-status-mapper-BI8FyUVp.js → git-status-mapper-C3rfzUex.js} +0 -0
- /package/build/assets/{handle-capture-consent-CPMXU29K.js → handle-capture-consent-DDnXMC9Y.js} +0 -0
- /package/build/assets/{iconBase-DaTRRUjy.js → iconBase-CuvxAQZ5.js} +0 -0
- /package/build/assets/{link-external-DfKQroKX.js → link-external-BVDiJfZt.js} +0 -0
- /package/build/assets/{llm-subscription-DtsX5Lhg.js → llm-subscription-BkdHwtQe.js} +0 -0
- /package/build/assets/{map-provider-BM2SJarp.js → map-provider-XSFHmdDs.js} +0 -0
- /package/build/assets/{middleware-DYHYNAnP.js → middleware-CWYDMVuG.js} +0 -0
- /package/build/assets/{modal-backdrop-zVwfOJZr.js → modal-backdrop-Dsmzgr5s.js} +0 -0
- /package/build/assets/{navigation-context-DPs2G0X8.js → navigation-context-SjzfpygH.js} +0 -0
- /package/build/assets/{objectWithoutPropertiesLoose-BgYIAs2y.js → objectWithoutPropertiesLoose-CQwg6tC0.js} +0 -0
- /package/build/assets/{openhands-logo-bcNw5bkY.js → openhands-logo-C-gDp1wr.js} +0 -0
- /package/build/assets/{react-DPDgL6du.js → react-ao3tWj6K.js} +0 -0
- /package/build/assets/{search-BsjCEFNf.js → search-pb4UKTfK.js} +0 -0
- /package/build/assets/{settings-mQUckT0g.js → settings-DksoDv5z.js} +0 -0
- /package/build/assets/{settings-gear-MXCyZW0x.js → settings-gear-D_HVvE5L.js} +0 -0
- /package/build/assets/{settings-like-page-layout-classes-DENKlZpD.js → settings-like-page-layout-classes-DLrsPCaI.js} +0 -0
- /package/build/assets/{settings-section-header-context-COMOIaxV.js → settings-section-header-context-C2MUIG88.js} +0 -0
- /package/build/assets/{skills-9cDZONKh.js → skills-CH4xgIh-.js} +0 -0
- /package/build/assets/{switch-skeleton-DqQwalyu.js → switch-skeleton-BpSOvZ-n.js} +0 -0
- /package/build/assets/{terminal-BuLtIrb9.js → terminal-Dokfkxn0.js} +0 -0
- /package/build/assets/{u-check-circle-BqoIxNz_.js → u-check-circle-DPWVO-9N.js} +0 -0
- /package/build/assets/{u-check-circle-half-LiwZkuFe.js → u-check-circle-half-BGNAAjOW.js} +0 -0
- /package/build/assets/{u-edit-DJ90xc8Z.js → u-edit-BIskOoEG.js} +0 -0
- /package/build/assets/{use-breakpoint-B-O0lQ84.js → use-breakpoint-OjLm94cF.js} +0 -0
- /package/build/assets/{use-click-outside-element-Bf4Omzot.js → use-click-outside-element-Jpt2WWd7.js} +0 -0
- /package/build/assets/{use-onboarding-completion-C_Swglzp.js → use-onboarding-completion-DkRpDTsD.js} +0 -0
- /package/build/assets/{v4-DbCkTSoU.js → v4-DPgam_jW.js} +0 -0
- /package/build/assets/{vendor~browser-Dqd33JyP.js → vendor~browser-BvEKaLBz.js} +0 -0
- /package/build/assets/{vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js → vendor~conversation-panel~conversation~alert-banner-CznX01nZ.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~e0djk9ee-Cw6LUe8p.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~g9hift2g-DmmpG9SI.js} +0 -0
- /package/build/assets/{vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js → vendor~entry.client~root~root-layout~index-home~home~conversation-panel~conversation~launch~jkpzbynd-CkpBIhVe.js} +0 -0
- /package/build/assets/{vendor~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-DTzw2x50.js → vendor~index-home~home~conversation-panel~conversation~shared-conversation~planner-tab~files-tab-BuL5kjfS.js} +0 -0
- /package/build/assets/{vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js → vendor~root-layout~index-home~home~conversation-panel~conversation~launch~skills-settings~a~j2jlu22h-DUYl8gbZ.js} +0 -0
- /package/build/assets/{vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js → vendor~root-layout~index-home~home~mcp~automations-list~onboarding-modal-pIgQDxTc.js} +0 -0
- /package/build/assets/{vendor~terminal-aeP3PnKf.js → vendor~terminal-jAaNQWS9.js} +0 -0
- /package/build/assets/{x-mark-Batp6gXa.js → x-mark-C5przfXl.js} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/settings-modal-DfTcL-mV.js","assets/rolldown-runtime-BFRubm34.js","assets/vendor-styling-CI0PQ3ab.js","assets/declaration-gq8V5eTU.js","assets/useTranslation-CDRCKC9-.js","assets/model-selector-BOj1wBlq.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js","assets/useQuery-CpjHYtZc.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js","assets/suspense-X5dBsJzn.js","assets/agent-server-client-options-DVLRd9sw.js","assets/proxy-CHmFkV16.js","assets/utils-D3U3rlqr.js","assets/common-Dh7OqABE.js","assets/combobox-caret-DoObzqf4.js","assets/form-control-classes-ChpNBe9n.js","assets/sdk-settings-schema-Cv7M9eSe.js","assets/dist-CodhvuAP.js","assets/llm-subscription-DtsX5Lhg.js","assets/map-provider-BM2SJarp.js","assets/brand-button-vMVuyDXu.js","assets/settings-input-bD6npsDm.js","assets/base-modal-BuF2f0YL.js","assets/modal-body-DouOE5KH.js","assets/modal-classes-Cf-4tbHz.js","assets/modal-backdrop-zVwfOJZr.js","assets/navigation-context-DPs2G0X8.js","assets/use-save-settings-D1HoCDbn.js","assets/active-backend-context-B3umL5R-.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js","assets/createLucideIcon-CVAsW2Yo.js","assets/useMutation-DCE9RcgK.js","assets/settings-service.api-K4ncGlBv.js","assets/settings-mQUckT0g.js","assets/use-settings-BReAMxCG.js","assets/use-tracking-2ZwQwpg_.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js","assets/settings-utils-BMdG65By.js","assets/add-backend-modal-DljoP9lc.js","assets/backend-form-modal-DSbrafX2.js","assets/segmented-toggle-DyQqPhoD.js","assets/modal-close-button-B6CfxxJj.js","assets/use-backends-health-DkC7tKkC.js","assets/useQueries-CRzaAqzH.js","assets/organization-service.api-CnynNoT-.js","assets/manage-backends-modal-C8FJQIZR.js","assets/pencil-Dj2XjKmI.js","assets/refresh-cw-DM82EIyx.js","assets/trash-2-Be_7y3Mn.js","assets/confirmation-modal-BGLu6XJN.js","assets/use-cloud-current-user-id-Dm99wXp2.js","assets/environment-switch-overlay-DZQfRGTx.js","assets/environment-switch-store-DkjlKWzN.js","assets/alert-banner-Bpf2NQJq.js","assets/vendor~conversation-panel~conversation~alert-banner-DHDkknt5.js","assets/vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js","assets/iconBase-DaTRRUjy.js","assets/close-p3Op5lxI.js","assets/typography-D8mHDeNG.js","assets/command-menu-D-JV3Wqm.js","assets/bot-D7eUAuSB.js","assets/list-todo-BfH6yYUK.js","assets/search-4DHskuhE.js","assets/sidebar-store-CZuE8AH5.js","assets/middleware-DYHYNAnP.js","assets/react-DPDgL6du.js","assets/x-Cb0WAtak.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,St as n,a as r,bt as i,xt as a}from"./vendor-styling-CI0PQ3ab.js";import{A as o,C as s,F as c,L as l,M as u,N as d,P as f,R as p,c as m,j as h,k as g}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js";import{h as _,m as v,r as y,t as b}from"./path-utils-DWcgCGen.js";import{t as x}from"./useQuery-CpjHYtZc.js";import{t as S}from"./useTranslation-CDRCKC9-.js";import{t as C}from"./declaration-gq8V5eTU.js";import{A as w,U as T,j as E,n as D,r as O}from"./active-backend-context-B3umL5R-.js";import{t as k}from"./createLucideIcon-CVAsW2Yo.js";import{t as A}from"./bot-D7eUAuSB.js";import{t as j}from"./check-Bvi71siz.js";import{n as M,t as N}from"./vendor~root-layout~conversation-panel~conversation-CpiTHpHl.js";import{r as P}from"./onboarding-modal-CP_WxDC9.js";import{n as F,t as I}from"./vendor~root-layout~home~conversation-panel~conversation-Cn2jwSga.js";import{a as ee,c as L,d as R,f as z,i as B,l as te,n as ne,o as re,p as ie,r as ae,s as oe,t as V,u as se}from"./onboarding-DYhDxmI9.js";import{t as ce}from"./mouse-pointer-click-PdEQPL6v.js";import{n as le}from"./refresh-cw-DM82EIyx.js";import{t as ue}from"./search-4DHskuhE.js";import{n as de,r as H,t as fe}from"./sidebar-store-CZuE8AH5.js";import{i as pe}from"./llm-settings-kU5v0H1Z.js";import{t as me}from"./trash-2-Be_7y3Mn.js";import{t as he}from"./x-Cb0WAtak.js";import{S as ge,b as _e,t as U,y as ve}from"./utils-D3U3rlqr.js";import{t as W}from"./common-Dh7OqABE.js";import{p as ye}from"./agent-server-client-options-DVLRd9sw.js";import{n as G}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js";import{a as be}from"./use-backends-health-DkC7tKkC.js";import{t as xe}from"./modal-backdrop-zVwfOJZr.js";import{n as Se}from"./modal-body-DouOE5KH.js";import{i as Ce,r as K}from"./base-modal-BuF2f0YL.js";import{_ as we,c as Te}from"./form-control-classes-ChpNBe9n.js";import{t as q}from"./loading-spinner-BLdswi6q.js";import{t as Ee}from"./use-config-CHzNIHpv.js";import{n as De,t as Oe}from"./navigation-context-DPs2G0X8.js";import{t as ke}from"./openhands-logo-bcNw5bkY.js";import{t as Ae}from"./navigation-link-D8hfwvxI.js";import{a as je,d as J,f as Me,i as Ne,l as Pe,n as Fe,r as Ie,u as Le}from"./sidebar-layout-DuzJMMw-.js";import{n as Re,t as ze}from"./sidebar-nav-link-5AlTT5-j.js";import{t as Be}from"./styled-tooltip-CgX2oRaK.js";import{a as Ve,d as He,f as Ue,i as We,l as Ge,n as Ke,o as qe,r as Je,u as Ye}from"./dropdown-classes-DJSXeLqc.js";import{r as Xe,t as Ze}from"./combobox-caret-DoObzqf4.js";import{_ as Qe,a as $e,c as et,d as tt,f as nt,g as rt,h as it,i as at,l as ot,m as st,n as ct,p as lt,r as ut,s as dt,t as ft,u as pt}from"./git-provider-icon-BjkecAuV.js";import{n as mt,t as ht}from"./use-cloud-current-user-id-Dm99wXp2.js";import{s as gt}from"./environment-switch-store-DkjlKWzN.js";import{t as _t}from"./react-DPDgL6du.js";import{r as vt,t as yt}from"./middleware-DYHYNAnP.js";import{t as bt}from"./conversation-store-LptbOvKa.js";import{a as xt}from"./backend-form-modal-DSbrafX2.js";import{r as St,t as Ct}from"./use-settings-BReAMxCG.js";import{t as wt}from"./use-tracking-2ZwQwpg_.js";import{t as Tt}from"./add-backend-modal-DljoP9lc.js";import{t as Et}from"./manage-backends-modal-C8FJQIZR.js";import{t as Dt}from"./agent-server-conversation-service.api-D_ZvtJjG.js";import{c as Ot,d as kt,u as At}from"./acp-providers-Djl6vNn-.js";import{t as jt}from"./use-is-authed-_dhQ2Xuj.js";import{a as Mt,c as Nt,d as Pt,f as Ft,i as It,l as Lt,o as Rt,r as zt,s as Bt,t as Vt,u as Ht}from"./sidebar-mobile-menu-toggle-CMmAYkh8.js";import{t as Ut}from"./use-click-outside-element-Bf4Omzot.js";import{t as Wt}from"./use-llm-profiles-BMhPDlwQ.js";import{t as Gt}from"./use-create-conversation-CTsvZ96U.js";import{r as Kt}from"./recommended-automations-launcher-CVEF_1pc.js";import{t as qt}from"./conversation-service.api-DQaKzIRj.js";import{r as Jt,t as Yt}from"./vendor~root-layout~conversation-panel~conversation~shared-conversation-_TdZcNMD.js";import{n as Xt,t as Zt}from"./context-menu-list-item-BD5_EaKN.js";import{i as Qt,r as $t,t as en}from"./ellipsis-button-C5Z-tPFp.js";import{t as tn}from"./u-edit-DJ90xc8Z.js";import{t as nn}from"./skills-9cDZONKh.js";import{a as rn,o as an,t as on}from"./vendor~root-layout~home~conversation-panel~conversation~shared-conversation~alert-banner~pl~rqjteh0a-CZM4hwUT.js";import{t as sn}from"./search-BsjCEFNf.js";import{t as cn}from"./handle-capture-consent-CPMXU29K.js";import{t as ln}from"./use-save-settings-D1HoCDbn.js";import{t as un}from"./use-user-conversation-OAfenBRG.js";import{t as dn}from"./conversation-state-store-B2Bp32XI.js";var fn=k(`calendar-arrow-down`,[[`path`,{d:`m14 18 4 4 4-4`,key:`1waygx`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M18 14v8`,key:`irew45`}],[`path`,{d:`M21 11.354V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7.343`,key:`bse4f3`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}]]),pn=k(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),mn=k(`clock-arrow-down`,[[`path`,{d:`M12 6v6l2 1`,key:`19cm8n`}],[`path`,{d:`M12.337 21.994a10 10 0 1 1 9.588-8.767`,key:`28moa`}],[`path`,{d:`m14 18 4 4 4-4`,key:`1waygx`}],[`path`,{d:`M18 14v8`,key:`irew45`}]]),hn=k(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),gn=k(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),_n=k(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),vn=k(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),yn=k(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),bn=k(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),xn=k(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Sn=k(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),Y=e(t(),1),X=i(),Cn=46,wn=30;function Tn({className:e,logoClassName:t,logoWidth:n=Cn,logoHeight:r=wn}={}){let{t:i}=S(`openhands`);return(0,X.jsx)(Ae,{to:`/conversations`,"aria-label":i(C.BRANDING$OPENHANDS_LOGO),className:U(e),children:(0,X.jsx)(ke,{width:n,height:r,className:U(`shrink-0`,t)})})}function En(){return(0,X.jsx)(`div`,{className:`animate-spin h-4 w-4 border-2 border-transparent border-t-white rounded-full`,"data-testid":`dropdown-loading`})}function Dn({onClear:e}){return(0,X.jsx)(`button`,{type:`button`,"data-testid":`dropdown-clear`,onClick:e,"aria-label":`Clear selection`,className:`text-white hover:text-[var(--oh-text-tertiary)]`,children:(0,X.jsx)(he,{size:14})})}function On({isOpen:e,isDisabled:t,getToggleButtonProps:n}){return(0,X.jsx)(`button`,{type:`button`,"data-testid":`dropdown-trigger`,...n({disabled:t,className:U(Xe,`text-current`,e&&`rotate-180`,t&&`cursor-not-allowed`)}),children:(0,X.jsx)(Ze,{})})}function kn({isOpen:e,filteredOptions:t,selectedItem:n,emptyMessage:r,getMenuProps:i,getItemProps:a,footer:o,openUpward:s=!1,fitContent:c=!1}){return(0,X.jsxs)(`div`,{className:U(`absolute z-50 overflow-hidden text-white`,c?`min-w-full w-max`:`w-full`,s?`bottom-full mb-1`:`mt-1`,`bg-tertiary rounded-[6px] context-menu-box-shadow p-1`,`max-h-60 overflow-auto`,!e&&`hidden`),children:[(0,X.jsxs)(`ul`,{...i({className:U(`p-0`,We)}),children:[e&&t.length===0&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,children:r}),e&&t.map((e,t)=>(0,X.jsxs)(`li`,{...a({item:e,index:t,className:U(qe,`focus:outline-none`,n?.value===e.value&&`bg-[var(--oh-interactive-selected)] text-white`)}),children:[e.prefix?(0,X.jsx)(`span`,{className:Ye,children:e.prefix}):null,(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:e.label})]},e.value))]}),e&&o?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Qe,{inset:`menu`}),(0,X.jsx)(`div`,{className:`p-0`,children:o})]}):null]})}function An({placeholder:e,isDisabled:t,getInputProps:n,italicPlaceholder:r=!0,fitContent:i=!1}){return(0,X.jsx)(`input`,{...n({placeholder:e,disabled:t,className:U(`outline-none bg-transparent text-white not-italic`,i?`w-auto field-sizing-content whitespace-nowrap text-sm`:`flex-1 min-w-0`,r&&`placeholder:italic placeholder:text-tertiary-alt`,!r&&`placeholder:text-tertiary-alt`,Te,`px-0 not-italic text-inherit`)})})}var jn={position:`absolute`,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,border:0};function Mn({options:e,emptyMessage:t=`No options`,clearable:n=!1,loading:r=!1,disabled:i=!1,placeholder:a,defaultValue:o,onChange:s,testId:c,className:l,footer:u,openUpward:d=!1,hideTrigger:f=!1,defaultOpen:p=!1,openOnHover:m=!1,italicPlaceholder:h=!0,fitContent:g=!1}){let _=Y.useRef(null),[v,y]=(0,Y.useState)(o?.label??``),[b,x]=(0,Y.useState)(``);Y.useEffect(()=>()=>{_.current&&=(clearTimeout(_.current),null)},[]);let S=e.filter(e=>e.label.toLowerCase().includes(b.toLowerCase())),{isOpen:C,selectedItem:w,selectItem:T,openMenu:E,closeMenu:D,getToggleButtonProps:O,getMenuProps:k,getItemProps:A,getInputProps:j}=I({items:S,itemToString:e=>e?.label??``,inputValue:v,stateReducer:(e,t)=>t.type===I.stateChangeTypes.InputClick&&e.isOpen?{...t.changes,isOpen:!0}:t.changes,initialIsOpen:p,onInputValueChange:({inputValue:e})=>{y(e??``),x(e??``)},defaultSelectedItem:o,onSelectedItemChange:({selectedItem:e})=>{s?.(e??null)},onIsOpenChange:({isOpen:e,selectedItem:t})=>{e?(y(``),x(``)):(y(t?.label??``),x(``))}}),M=r||i,N=w?e.find(e=>e.value===w.value)??w:null,P=e=>j({...e,onChange:e=>{y(e.target.value),x(e.target.value)}});return(0,X.jsxs)(`div`,{className:U(`relative`,g?`inline-block w-auto`:`w-full`),"data-testid":c,onMouseEnter:m?()=>{_.current&&=(clearTimeout(_.current),null),E()}:void 0,onMouseLeave:m?()=>{_.current&&clearTimeout(_.current),_.current=setTimeout(()=>D(),150)}:void 0,children:[f?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`input`,{...P({"aria-label":a??`Filter options`,tabIndex:-1}),style:jn}),(0,X.jsx)(`button`,{type:`button`,...O({tabIndex:-1}),style:jn,"aria-hidden":!0})]}):(0,X.jsxs)(`div`,{className:U(Ue,g?`w-auto`:`w-full`,M&&`cursor-not-allowed opacity-60`,l),children:[N?.prefix?(0,X.jsx)(`span`,{className:`flex items-center shrink-0`,children:N.prefix}):null,(0,X.jsx)(An,{placeholder:a,isDisabled:M,getInputProps:P,italicPlaceholder:h,fitContent:g}),r&&(0,X.jsx)(En,{}),n&&w&&(0,X.jsx)(Dn,{onClear:()=>T(null)}),(0,X.jsx)(On,{isOpen:C,isDisabled:M,getToggleButtonProps:O})]}),(0,X.jsx)(kn,{isOpen:C,filteredOptions:S,selectedItem:w,emptyMessage:t,getMenuProps:k,getItemProps:A,footer:u,openUpward:d,fitContent:g})]})}var Nn=`::`;function Pn(e,t){return t?`${e}${Nn}${t}`:e}function Fn(e){let[t,n]=e.split(Nn);return{backendId:t,orgId:n??null}}function In(e){return(0,X.jsx)(xt,{isConnected:e?.isConnected??null})}function Ln(){return(0,X.jsx)(xt,{isConnected:`unavailable`})}function Rn(e,t,n,r,i){let a=[],o=e.filter(e=>e.kind===`local`),s=e.filter(e=>e.kind===`cloud`);for(let e of o)a.push({value:Pn(e.id,null),label:e.name,prefix:In(i[e.id])});for(let e of s){let o=n[e.id],s=In(i[e.id]);if(!o||o.orgs.length===0)a.push({value:Pn(e.id,null),label:e.name,prefix:s});else{let n=r[e.id]?.userId??null;for(let r of o.orgs){let i=n&&n===r.id?t:r.name;a.push({value:Pn(e.id,r.id),label:`${e.name} – ${i}`,prefix:s})}}}return a}function zn({openUpward:e=!1,hideTrigger:t=!1,defaultOpen:n=!1,onSelectOption:r,onOpenAddBackend:i,onOpenManageBackends:a,sidebarCollapsed:s=!1}={}){let{t:c}=S(`openhands`),{backends:l,active:d,setActive:f}=O(),p=mt(),m=ht(),h=be(l),g=u(),_=o(`/settings`),v=o(`/settings/*`),y=o(`/conversations/:conversationId`),b=o(`/automations/:automationId`),[x,w]=Y.useState(!1),[T,E]=Y.useState(!1),D=c(C.BACKEND$PERSONAL_WORKSPACE),k=Y.useMemo(()=>Rn(l,D,p,m,h),[l,D,p,m,h]),A=ye(d.backend),j=c(C.BACKEND$NO_BACKEND_AVAILABLE),M=Pn(d.backend.id,d.orgId),N=A?void 0:k.find(e=>e.value===M),P=!!(_||v),F=c(C.SIDEBAR$SETTINGS),I=bt(e=>e.isRightPanelShown),ee=!s||y&&I?`top`:`left`,L=Object.values(p).some(e=>e.isLoading);Y.useEffect(()=>{if(A||d.backend.kind!==`cloud`||d.orgId)return;let{backend:e}=d,t=p[e.id];if(!t||t.orgs.length===0)return;let n=m[e.id]?.userId??null,r=(n?t.orgs.find(e=>e.id===n):void 0)??t.orgs[0];r&&f(e.id,r.id)},[d,p,m,f,A]);let R=Y.useCallback(()=>{if(i){i(),r?.();return}w(!0)},[i,r]),z=Y.useCallback(()=>{if(a){a(),r?.();return}E(!0)},[a,r]),B=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),te=Y.useCallback(e=>{B(e),R()},[R,B]),ne=Y.useCallback(e=>{B(e),R()},[R,B]),re=Y.useCallback(e=>{B(e),z()},[z,B]),ie=Y.useCallback(e=>{B(e),z()},[z,B]),ae=(0,X.jsxs)(`div`,{className:We,children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`add-backend-menu-item`,onMouseDown:B,onTouchStart:B,onTouchEnd:ne,onClick:te,className:U(Ke,`cursor-pointer rounded-md`),children:[(0,X.jsx)(`span`,{className:Ye,"aria-hidden":!0,children:(0,X.jsx)(le,{width:16,height:16})}),c(C.BACKEND$ADD)]}),(0,X.jsxs)(`button`,{type:`button`,"data-testid":`manage-backends-menu-item`,onMouseDown:B,onTouchStart:B,onTouchEnd:ie,onClick:re,className:U(Ke,`cursor-pointer rounded-md`),children:[(0,X.jsx)(`span`,{className:Ye,"aria-hidden":!0,children:(0,X.jsx)(H,{width:16,height:16})}),c(C.BACKEND$MANAGE)]})]}),oe=Y.useCallback(async e=>{if(e===M)return;let{backendId:t,orgId:n}=Fn(e),i=l.find(e=>e.id===t);i&&(gt(k.find(t=>t.value===e)?.label??i.name),await new Promise(e=>{setTimeout(e,400)}),y?g(`/conversations`):b&&g(`/automations`),f(i.id,n),r?.())},[M,l,y,b,g,k,f,c,r]);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[(0,X.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,X.jsx)(Mn,{testId:`backend-selector`,defaultValue:N??{value:M,label:A?j:d.backend.name,prefix:A?Ln():In(h[d.backend.id])},footer:ae,openUpward:e,hideTrigger:t,defaultOpen:n,openOnHover:!t,onChange:e=>{e&&oe(e.value)},placeholder:A?j:d.backend.name,loading:L,options:k,className:`h-10 px-2 py-0 bg-transparent border-transparent hover:bg-[var(--oh-surface-raised)] focus-within:bg-[var(--oh-surface-raised)] focus-within:border-transparent focus-within:ring-0`},`${M}-${N?.label??``}`)}),t?null:(0,X.jsx)(Be,{content:F,placement:ee,offset:10,children:(0,X.jsx)(Ae,{to:`/settings`,"data-testid":`backend-selector-settings-link`,"data-active":P,"aria-label":F,className:U(P?`inline-flex items-center justify-center shrink-0 w-9 h-9 rounded-md bg-tertiary text-white font-normal cursor-pointer`:`inline-flex items-center justify-center shrink-0 w-9 h-9 rounded-md text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)] cursor-pointer`,we),children:(0,X.jsx)(H,{width:16,height:16})})})]}),x?(0,X.jsx)(Tt,{onClose:()=>w(!1)}):null,T?(0,X.jsx)(Et,{onClose:()=>E(!1)}):null]})}var Bn=`command-menu-trigger`,Vn=18;function Hn({collapsed:e}){let{t}=S(`openhands`),n=de(e=>e.open),r=t(C.COMMAND_MENU$OPEN_LABEL),i=(0,X.jsxs)(`button`,{type:`button`,"data-testid":Bn,"aria-label":r,onClick:n,className:U(Me({collapsed:e}),e?`cursor-pointer`:`group justify-between border border-[var(--oh-border-subtle)] bg-[var(--oh-surface)]/50 hover:border-[var(--oh-border)] hover:bg-[var(--oh-surface-raised)]`),children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[e?(0,X.jsx)(Re,{active:!1,children:(0,X.jsx)(ue,{width:Vn,height:Vn})}):(0,X.jsx)(`span`,{className:U(je,`text-[var(--oh-muted)] group-hover:text-white`),"aria-hidden":`true`,children:(0,X.jsx)(ue,{width:Vn,height:Vn})}),(0,X.jsx)(`span`,{className:Le(e),children:r})]}),e?null:(0,X.jsx)(`kbd`,{className:`rounded-md border border-[var(--oh-border)] bg-black/20 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.12em] text-[var(--oh-text-dim)]`,children:t(C.COMMAND_MENU$SHORTCUT)})]});return e?(0,X.jsx)(Be,{content:r,placement:`right`,children:i}):i}var Un=(e=20)=>{let{data:t}=jt(),n=D(),r=!ye(n.backend);return _({queryKey:[`user`,`conversations`,`paginated`,e,n.backend.id,n.orgId],queryFn:async({pageParam:t})=>await Dt.searchConversations(e,t),enabled:!!t&&r,getNextPageParam:e=>e.next_page_id,initialPageParam:void 0,refetchInterval:1e4,meta:{backendId:n.backend.id}})},Wn=(e=10)=>x({queryKey:[`start-tasks`,`search`,e],queryFn:()=>[],select:e=>e.filter(e=>e.status!==`READY`&&e.status!==`ERROR`)});function Gn({onConfirm:e,onClose:t,onCancel:n}){let{t:r}=S(`openhands`);return(0,X.jsx)(xe,{onClose:n,children:(0,X.jsxs)(Se,{testID:`confirm-new-conversation-modal`,children:[(0,X.jsx)(K,{title:r(C.CONVERSATION$EXIT_WARNING)}),(0,X.jsxs)(`div`,{className:`flex w-full justify-end gap-2`,children:[(0,X.jsx)(Ce,{text:r(C.BUTTON$CANCEL),onClick:t,className:`bg-tertiary`}),(0,X.jsx)(Ce,{text:r(C.ACTION$CONFIRM),onClick:e,className:`bg-[#C63143]`})]})]})})}var Kn=e=>e.includes(`Z`)||e.match(/[+-]\d{2}:\d{2}$/)!==null?new Date(e):new Date(`${e}Z`),qn=e=>{let t=typeof e==`string`?Kn(e):e,n=new Date().getTime()-t.getTime(),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60),o=Math.floor(a/24),s=Math.floor(o/30),c=Math.floor(s/12);return r<60?`${r}s`:i<60?`${i}m`:a<24?`${a}h`:o<30?`${o}d`:s<12?`${s}mo`:`${c}y`};function Jn({titleMode:e,title:t,onSave:n,isConversationArchived:r}){return e===`edit`?(0,X.jsx)(`input`,{autoFocus:!0,"data-testid":`conversation-card-title`,onClick:e=>{e.preventDefault(),e.stopPropagation()},onBlur:e=>{n(e.currentTarget?.value?.trim?.()??``)},onKeyUp:e=>{e.nativeEvent.isComposing||e.key===`Enter`&&e.currentTarget.blur()},type:`text`,defaultValue:t,className:`text-sm leading-6 font-semibold bg-transparent w-full`}):(0,X.jsx)(`p`,{"data-testid":`conversation-card-title`,className:U(`text-xs leading-6 font-semibold bg-transparent truncate overflow-hidden`,r&&`opacity-60`),children:t})}var Yn=e=>{switch(e){case W.FINISHED:return`check`;case W.RUNNING:return`working`;case W.IDLE:case W.WAITING_FOR_CONFIRMATION:return`active`;case W.PAUSED:return`paused`;case W.ERROR:case W.STUCK:return`error`;default:return`unknown`}},Xn=(e,t)=>{if(t)return`COMMON$ARCHIVED`;switch(e){case`check`:return`COMMON$FINISHED`;case`working`:case`active`:return`COMMON$WORKING`;case`paused`:return`COMMON$PAUSED`;case`error`:return`COMMON$ERROR`;default:return`COMMON$STOPPED`}};function Zn(e){switch(e){case`check`:return(0,X.jsx)(`svg`,{"data-testid":`conversation-status-check`,viewBox:`0 0 12 12`,className:`w-2.5 h-2.5 stroke-[var(--oh-status-success)]`,fill:`none`,strokeWidth:2.25,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,X.jsx)(`path`,{d:`M2.5 6.5 5 9l4.5-5.5`})});case`working`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-working`,className:`w-1.5 h-1.5 rounded-full animate-pulse bg-[var(--oh-status-success)]`});case`active`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-active`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-status-success)]`});case`paused`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-paused`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-muted)]`});case`error`:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-error`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-status-error)]`});default:return(0,X.jsx)(`span`,{"data-testid":`conversation-status-unknown`,className:`w-1.5 h-1.5 rounded-full bg-[var(--oh-color-tertiary)]`})}}function Qn({executionStatus:e,sandboxStatus:t,showTooltip:n=!0}){let{t:r}=S(`openhands`),i=t===`MISSING`,a=t===`ERROR`?`error`:i?`paused`:Yn(e),o=r(Xn(a,i)),s=(0,X.jsx)(`div`,{className:`w-2.5 h-2.5 flex items-center justify-center shrink-0`,children:i?(0,X.jsx)(Yt,{"data-testid":`conversation-status-archived`,size:10,className:`shrink-0 text-[var(--oh-muted)] opacity-60`,"aria-hidden":!0}):Zn(a)});return n?(0,X.jsx)(Be,{content:o,placement:`right`,showArrow:!0,tooltipClassName:`bg-base text-white text-xs shadow-lg`,children:s}):s}function $n({title:e,titleMode:t,onTitleSave:n,executionStatus:r,sandboxStatus:i}){let a=st(i);return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden`,children:[r!==void 0&&(0,X.jsx)(`div`,{className:`flex w-[18px] shrink-0 items-center justify-center`,children:(0,X.jsx)(Qn,{executionStatus:r,sandboxStatus:i,showTooltip:!1})}),(0,X.jsx)(Jn,{title:e,titleMode:t,onSave:n,isConversationArchived:a})]})}var er=e(a(),1);function tr({onClose:e,onDelete:t,onStop:n,onEdit:r,onDisplayCost:i,onShowAgentTools:a,onShowSkills:o,onDownloadViaVSCode:s,onDownloadConversation:c,position:l=`bottom`,floatingStyle:u,ignoreOutsideClickRef:d}){let{t:f}=S(`openhands`),{backend:p}=D(),m=Ut(e,d),h=p.kind===`cloud`?C.COMMON$CLOSE_CONVERSATION_STOP_RUNTIME:C.COMMON$STOP_CONVERSATION,g=(0,Y.useCallback)((e,t,n)=>{let r=e.filter(e=>e!=null);return r.length>0?n?(0,X.jsx)(Y.Fragment,{children:r},t):(0,X.jsxs)(Y.Fragment,{children:[r,(0,X.jsx)(Qe,{inset:`menu`})]},t):null},[]),_=u!=null;return(0,X.jsxs)(Xt,{ref:m,testId:`context-menu`,style:_?u:void 0,theme:_?`popover`:`default`,position:_?`none`:l,alignment:_?`none`:`right`,spacing:_?`none`:`default`,className:_?`mt-0 min-w-[200px] w-max max-w-[min(280px,100vw-16px)]`:`z-[200] mt-0`,children:[g([r&&(0,X.jsx)(Zt,{testId:`edit-button`,onClick:r,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(tn,{width:16,height:16}),text:f(C.BUTTON$RENAME)})},`edit-button`)],`edit-section`),g([a&&(0,X.jsx)(Zt,{testId:`show-agent-tools-button`,onClick:a,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(lt,{width:16,height:16}),text:f(C.BUTTON$SHOW_AGENT_TOOLS_AND_METADATA)})},`show-agent-tools-button`),o&&(0,X.jsx)(Zt,{testId:`show-skills-button`,onClick:o,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(nn,{width:16,height:16,className:`stroke-[1.75]`,"aria-hidden":!0}),text:f(C.CONVERSATION$SHOW_SKILLS)})},`show-skills-button`)],`tools-section`),g([n&&(0,X.jsx)(Zt,{testId:`stop-button`,onClick:n,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(nt,{width:16,height:16}),text:f(h)})},`stop-button`),s&&(0,X.jsx)(Zt,{testId:`download-vscode-button`,onClick:s,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(Nt,{width:16,height:16}),text:f(C.BUTTON$DOWNLOAD_VIA_VSCODE)})},`download-vscode-button`),c&&(0,X.jsx)(Zt,{testId:`download-trajectory-button`,onClick:c,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(Nt,{width:16,height:16}),text:f(C.BUTTON$DOWNLOAD_CONVERSATION_DATA)})},`download-trajectory-button`)],`control-section`),g([i&&(0,X.jsx)(Zt,{testId:`display-cost-button`,onClick:i,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)(Bt,{width:16,height:16}),text:f(C.BUTTON$DISPLAY_COST)})},`display-cost-button`),t&&(0,X.jsx)(Zt,{testId:`delete-button`,onClick:t,children:(0,X.jsx)(Qt,{icon:(0,X.jsx)($t,{width:16,height:16}),text:f(C.COMMON$DELETE_CONVERSATION)})},`delete-button`)],`info-section`,!0)]})}function nr({contextMenuOpen:e,onContextMenuToggle:t,onDelete:n,onStop:r,onEdit:i,onDownloadViaVSCode:a,onDownloadConversation:o,executionStatus:s,conversationId:c,showOptions:l}){let u=ge(s),d=_e(s),f=(0,Y.useRef)(null),[,p]=(0,Y.useReducer)(e=>e+1,0);(0,Y.useLayoutEffect)(()=>{if(!e)return;p();let t=0,n=()=>{t||=window.requestAnimationFrame(()=>{t=0,p()})};return window.addEventListener(`resize`,n),window.addEventListener(`scroll`,n,!0),()=>{t&&window.cancelAnimationFrame(t),window.removeEventListener(`resize`,n),window.removeEventListener(`scroll`,n,!0)}},[e]);let m=(()=>{if(!e||!f.current)return;let t=f.current.getBoundingClientRect(),n=Number(window.innerWidth)||0,r=Number(window.innerHeight)||0,i=Number(t.bottom)||0,a=Number(t.right)||0;return{position:`fixed`,top:i+280+8>r?Math.max(8,t.top-280-4):i+4,right:Math.max(8,n-a),zIndex:1e5}})(),h=typeof document<`u`?document.body:null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(en,{ref:f,onClick:n=>{n.preventDefault(),n.stopPropagation(),t(!e)},className:U(u&&`opacity-60`)}),e&&m&&h?(0,er.createPortal)((0,X.jsx)(tr,{ignoreOutsideClickRef:f,floatingStyle:m,onClose:()=>t(!1),onDelete:n,onStop:d?r:void 0,onEdit:i,onDownloadViaVSCode:c&&l?a:void 0,onDownloadConversation:c?o:void 0,position:`bottom`}),h):null]})}function rr(e){return e?e.split(`/`).pop()||e:null}var ir={bitbucket:on,bitbucket_data_center:on,github:rn,gitlab:an};function ar({selectedRepository:e}){let t=e.git_provider?ir[e.git_provider]:null;return(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 overflow-hidden`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[t&&(0,X.jsx)(t,{size:14,className:`shrink-0 text-[var(--oh-muted)]`}),e.git_provider===`azure_devops`&&(0,X.jsx)(tt,{className:`h-[14px] w-[14px] shrink-0 text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{"data-testid":`conversation-card-selected-repository`,className:`min-w-0 truncate text-xs text-[var(--oh-muted)]`,children:e.selected_repository})]}),(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,X.jsx)(Jt,{size:12,className:`shrink-0 text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{"data-testid":`conversation-card-selected-branch`,className:`min-w-0 truncate text-xs text-[var(--oh-muted)]`,children:e.selected_branch})]})]})}function or({workspaceWorkingDir:e}){let{t}=S(`openhands`),n=e?b(e).trim():``;return n?(0,X.jsx)(`span`,{className:`truncate min-w-0 text-xs text-[var(--oh-muted)] flex-1`,title:e??void 0,children:n}):(0,X.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-[var(--oh-muted)] flex-1 min-w-0 overflow-hidden`,children:[(0,X.jsx)(y,{width:14,height:14,className:`text-[var(--oh-muted)]`}),(0,X.jsx)(`span`,{className:`truncate min-w-0`,children:t(C.COMMON$NO_REPOSITORY)})]})}function sr({selectedRepository:e,lastUpdatedAt:t,createdAt:n,executionStatus:r,workspaceWorkingDir:i,showRepositoryMetadata:a=!0,showTimestamp:o=!0,llmModel:s,showAgentChip:c=!1,agentKind:l=null,acpServer:u=null}){let{t:d}=S(`openhands`),f=ge(r),p=null;if(c)if(l===`acp`){let e=Ot(u)??d(C.CONVERSATION$ACP_AGENT_GENERIC),t=At(u,s),n=t??e;p={kind:kt(u),text:n,tooltip:t?`${e} · ${t}`:e}}else s&&(p={kind:`openhands`,text:rr(s)??s,tooltip:s});let m=r===void 0?void 0:`pl-[26px]`;return(0,X.jsxs)(`div`,{className:U(`flex flex-col gap-0.5 mt-0.5 w-full min-w-0`,f&&`opacity-60`),children:[p?(0,X.jsx)(`div`,{className:m,children:(0,X.jsxs)(`span`,{"data-testid":`conversation-card-agent-chip`,className:`inline-flex items-center gap-1 text-xs text-[var(--oh-muted)] max-w-full min-w-0`,title:p.tooltip,children:[(0,X.jsx)(P,{kind:p.kind}),(0,X.jsx)(`span`,{className:`truncate`,children:p.text})]})}):null,(0,X.jsxs)(`div`,{className:U(`flex flex-row items-center gap-2 w-full min-w-0`,a&&m),children:[a&&(e?.selected_repository?(0,X.jsx)(ar,{selectedRepository:e}):(0,X.jsx)(or,{workspaceWorkingDir:i})),(0,X.jsx)(`div`,{className:`flex items-center gap-2 shrink-0 ml-auto`,children:o&&(n??t)&&(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)] text-right`,children:(0,X.jsx)(`time`,{children:`${qn(t??n)} ${d(C.CONVERSATION$AGO)}`})})})]})]})}function cr(){let{t:e}=S(`openhands`);return(0,X.jsxs)(`span`,{"data-testid":`error-badge`,className:`flex items-center gap-1 px-1.5 py-0.5 bg-[var(--oh-status-error)] text-white text-xs font-medium rounded-full`,children:[(0,X.jsx)(pt,{className:`text-white w-3 h-3`}),(0,X.jsx)(`span`,{children:e(C.COMMON$ERROR)})]})}function lr({onClick:e,onDelete:t,onStop:n,onChangeTitle:r,showOptions:i,title:a,selectedRepository:o,lastUpdatedAt:s,createdAt:c,conversationId:l,executionStatus:u,sandboxStatus:d,contextMenuOpen:f=!1,onContextMenuToggle:p,isActive:m=!1,workspaceWorkingDir:h,showRepositoryMetadata:g=!0,llmModel:_=null,showLlmProfiles:v=!1,agentKind:y=null,acpServer:b=null,isPinned:x=!1,onTogglePin:w,alwaysShowPinIcon:T=!1}){let{t:E}=S(`openhands`),{trackDownloadVsCodeButtonClicked:D}=wt(),[O,k]=Y.useState(`view`),{mutateAsync:A}=ot(),j=e=>{e!==``&&e!==a&&r?.(e),k(`view`)},M=e=>{e.preventDefault(),e.stopPropagation(),t?.(),p?.(!1)},N=e=>{e.preventDefault(),e.stopPropagation(),n?.(),p?.(!1)},P=e=>{e.preventDefault(),e.stopPropagation(),k(`edit`),p?.(!1)},F=async e=>{if(e.preventDefault(),e.stopPropagation(),D(),l)try{let e=await qt.getVSCodeUrl(l);if(e.vscode_url){let t=Lt(e.vscode_url);t&&window.open(t,`_blank`)}}catch{}p?.(!1)},I=async e=>{e.preventDefault(),e.stopPropagation(),l&&await A(l),p?.(!1)},ee=e=>{e.preventDefault(),e.stopPropagation(),w?.()},L=()=>(0,X.jsx)(`button`,{type:`button`,"data-testid":l?`conversation-pin-toggle-${l}`:`conversation-pin-toggle`,"aria-pressed":x,"aria-label":E(x?C.CONVERSATION_PANEL$UNPIN_CONVERSATION:C.CONVERSATION_PANEL$PIN_CONVERSATION),onClick:ee,className:U(`flex shrink-0 cursor-pointer items-center justify-center rounded-md p-1`,`text-[var(--oh-muted)] hover:bg-white/10 hover:text-white`),children:(0,X.jsx)(bn,{className:U(`h-3.5 w-3.5`,x&&`fill-current`),"aria-hidden":!0})}),R=!!(t||r||i),z=R||!!w,B=T&&x&&!!w,te=g||v&&(y===`acp`||!!_);return(0,X.jsxs)(`div`,{"data-testid":`conversation-card`,"data-context-menu-open":f.toString(),"data-active":m?`true`:`false`,onClick:e,className:U(`group relative h-auto w-full cursor-pointer rounded-md py-1 pl-2 pr-1 transition-colors`,!f&&`hover:bg-[var(--oh-surface)]`,(m||f)&&`bg-[var(--oh-surface)]`),children:[(0,X.jsxs)(`div`,{className:`flex items-center w-full min-w-0`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden`,children:[(0,X.jsx)($n,{title:a,titleMode:O,onTitleSave:j,executionStatus:u,sandboxStatus:d}),d===`ERROR`&&(0,X.jsx)(cr,{})]}),(0,X.jsxs)(`div`,{className:U(`relative ml-auto pl-2 flex items-center justify-end shrink-0`,B?`min-w-[3.75rem]`:z&&`group-hover:min-w-[3.75rem] group-focus-within:min-w-[3.75rem]`,f&&`min-w-[3.75rem]`),children:[!B&&(c??s)&&(0,X.jsx)(`p`,{className:U(`text-xs text-[var(--oh-muted)] text-right whitespace-nowrap transition-opacity -translate-x-1.5`,z&&`group-hover:opacity-0 group-focus-within:opacity-0`,f&&`opacity-0`),children:(0,X.jsx)(`time`,{children:qn(s??c)})}),z?(0,X.jsxs)(`div`,{className:U(`absolute right-0 top-1/2 flex -translate-y-1/2 items-center gap-0.5 transition-opacity`,B?`pointer-events-auto visible opacity-100`:U(`pointer-events-none opacity-0 invisible`,`group-hover:pointer-events-auto group-hover:opacity-100 group-hover:visible`,`group-focus-within:pointer-events-auto group-focus-within:opacity-100 group-focus-within:visible`),f&&`pointer-events-auto visible opacity-100`),children:[w?L():null,B&&(c??s)&&R?(0,X.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,X.jsx)(`div`,{className:U(!f&&`invisible pointer-events-none group-hover:visible group-hover:pointer-events-auto group-focus-within:visible group-focus-within:pointer-events-auto`),children:(0,X.jsx)(nr,{contextMenuOpen:f,onContextMenuToggle:p||(()=>{}),onDelete:t&&M,onStop:n&&N,onEdit:r&&P,onDownloadViaVSCode:F,onDownloadConversation:I,executionStatus:u,conversationId:l,showOptions:i})}),(0,X.jsx)(`p`,{className:U(`pointer-events-none absolute inset-0 flex items-center justify-end`,`text-xs text-[var(--oh-muted)] whitespace-nowrap -translate-x-1.5`,`group-hover:hidden group-focus-within:hidden`,f&&`hidden`),children:(0,X.jsx)(`time`,{children:qn(s??c)})})]}):null,!B&&R?(0,X.jsx)(nr,{contextMenuOpen:f,onContextMenuToggle:p||(()=>{}),onDelete:t&&M,onStop:n&&N,onEdit:r&&P,onDownloadViaVSCode:F,onDownloadConversation:I,executionStatus:u,conversationId:l,showOptions:i}):null]}):null]})]}),te&&(0,X.jsx)(sr,{selectedRepository:o,lastUpdatedAt:s,createdAt:c,executionStatus:u,workspaceWorkingDir:h,showRepositoryMetadata:g,showTimestamp:!1,llmModel:_,showAgentChip:v,agentKind:y,acpServer:b})]})}var ur={bitbucket:on,bitbucket_data_center:on,github:rn,gitlab:an};function dr({label:e,children:t}){return(0,X.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,X.jsx)(`span`,{className:`w-20 shrink-0 text-[var(--oh-muted)]`,children:e}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 break-words text-[var(--oh-foreground)]`,children:t})]})}function fr({title:e,executionStatus:t,sandboxStatus:n,selectedRepository:r,workspaceWorkingDir:i,llmModel:a,createdAt:o}){let{t:s}=S(`openhands`),c=r?.selected_repository??null,l=r?.selected_branch??null,u=r?.git_provider??null,d=u?ur[u]:null,f=o?new Date(o).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):null;return(0,X.jsxs)(`div`,{className:`flex w-[280px] flex-col gap-3 p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[t===void 0?null:(0,X.jsx)(`div`,{className:`mt-0.5`,children:(0,X.jsx)(Qn,{executionStatus:t,sandboxStatus:n,showTooltip:!1})}),(0,X.jsx)(`span`,{className:`break-words text-sm font-medium text-white`,children:e})]}),(0,X.jsxs)(`dl`,{className:`flex flex-col gap-1.5`,children:[c?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(dr,{label:s(C.CONVERSATION$REPOSITORY),children:(0,X.jsxs)(`span`,{className:`inline-flex min-w-0 items-start gap-1.5`,children:[d?(0,X.jsx)(d,{size:12,className:`mt-0.5 shrink-0`}):null,u===`azure_devops`?(0,X.jsx)(tt,{className:`mt-0.5 h-3 w-3 shrink-0`}):null,(0,X.jsx)(`span`,{className:`break-all`,children:c})]})}),l?(0,X.jsx)(dr,{label:s(C.CONVERSATION$BRANCH),children:(0,X.jsxs)(`span`,{className:`inline-flex min-w-0 items-start gap-1.5`,children:[(0,X.jsx)(Jt,{size:11,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`break-all`,children:l})]})}):null]}):i?(0,X.jsx)(dr,{label:s(C.CONVERSATION_PANEL$PREVIEW_DIRECTORY),children:(0,X.jsxs)(`span`,{className:`inline-flex min-w-0 items-start gap-1.5`,children:[(0,X.jsx)(ie,{size:12,className:`mt-0.5 shrink-0`}),(0,X.jsx)(`span`,{className:`break-all`,children:i})]})}):null,a?(0,X.jsx)(dr,{label:s(C.CONVERSATION_PANEL$PREVIEW_MODEL),children:(0,X.jsx)(`span`,{className:`break-all`,children:a})}):null,f?(0,X.jsx)(dr,{label:s(C.CONVERSATION$CREATED),children:f}):null]})]})}function pr({taskStatus:e}){return(0,X.jsx)(`div`,{className:U(`w-2 h-2 rounded-full flex-shrink-0`,(()=>{switch(e){case`READY`:return`bg-green-500`;case`ERROR`:return`bg-red-500`;case`WORKING`:case`WAITING_FOR_SANDBOX`:case`PREPARING_REPOSITORY`:case`RUNNING_SETUP_SCRIPT`:case`SETTING_UP_GIT_HOOKS`:case`SETTING_UP_SKILLS`:case`STARTING_CONVERSATION`:return`bg-yellow-500 animate-pulse`;default:return`bg-[var(--oh-interactive-selected)]`}})()),"aria-label":`Task status: ${e}`})}function mr({taskStatus:e}){let{t}=S(`openhands`);return e===`WORKING`?null:(0,X.jsx)(`span`,{className:U(`text-xs font-medium px-2 py-0.5 rounded border flex-shrink-0`,(()=>{switch(e){case`READY`:return`bg-green-500/10 text-green-400 border-green-500/20`;case`ERROR`:return`bg-red-500/10 text-red-400 border-red-500/20`;default:return`bg-yellow-500/10 text-yellow-400 border-yellow-500/20`}})()),children:t(ve(e))})}function hr({title:e,taskStatus:t}){return(0,X.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0 overflow-hidden mr-2`,children:[(0,X.jsx)(`div`,{className:`flex items-center`,children:(0,X.jsx)(pr,{taskStatus:t})}),(0,X.jsx)(`h3`,{className:`text-sm font-medium text-content-2 truncate flex-1`,children:e}),(0,X.jsx)(mr,{taskStatus:t})]})}function gr({selectedRepository:e,createdAt:t,detail:n}){let{t:r}=S(`openhands`);return(0,X.jsxs)(`div`,{className:U(`flex flex-col gap-1 mt-1`),children:[(0,X.jsxs)(`div`,{className:`flex flex-row justify-between items-center`,children:[e?(0,X.jsx)(ar,{selectedRepository:e}):(0,X.jsx)(or,{}),t&&(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)] flex-1 text-right`,children:(0,X.jsx)(`time`,{children:`${qn(t)} ${r(C.CONVERSATION$AGO)}`})})]}),n&&(0,X.jsx)(`div`,{className:`text-xs text-[var(--oh-text-subtle)] truncate`,children:n})]})}function _r({task:e,onClick:t}){let{t:n}=S(`openhands`),r=e.request.title||e.detail||n(C.CONVERSATION$STARTING_CONVERSATION),i=e.request.selected_repository?{selected_repository:e.request.selected_repository,selected_branch:e.request.selected_branch||null,git_provider:e.request.git_provider||null}:null;return(0,X.jsxs)(`div`,{"data-testid":`start-task-card`,onClick:t,className:U(`relative h-auto w-full p-3.5 border-b border-[var(--oh-border)] cursor-pointer`,`hover:bg-tertiary`),children:[(0,X.jsx)(`div`,{className:`flex items-center justify-between w-full`,children:(0,X.jsx)(hr,{title:r,taskStatus:e.status})}),(0,X.jsx)(gr,{selectedRepository:i,createdAt:e.created_at,detail:e.detail})]})}function vr({compact:e=!1}){return e?(0,X.jsx)(`div`,{"data-testid":`conversation-card-skeleton-compact`,className:`skeleton-stagger flex flex-col items-center gap-1.5 py-1`,"aria-hidden":!0,children:[0,1,2].map(e=>(0,X.jsx)(`div`,{className:`h-1.5 w-7 shrink-0 skeleton`},`conversation-skeleton-compact-${e}`))}):(0,X.jsx)(`div`,{"data-testid":`conversation-card-skeleton`,className:`skeleton-stagger flex flex-col gap-1.5 py-0.5`,"aria-hidden":!0,children:[0,1,2].map(e=>(0,X.jsx)(`div`,{className:`h-6 min-h-6 w-full skeleton`},`conversation-skeleton-row-${e}`))})}function yr({conversationId:e,title:t,selectedRepository:n,executionStatus:i,sandboxStatus:a,lastUpdatedAt:o,createdAt:s,workspaceWorkingDir:c,isActive:l=!1,onClose:u,showRepositoryMetadata:d=!0,llmModel:f=null,showLlmProfiles:p=!1,agentKind:m=null,acpServer:h=null}){let{t:g}=S(`openhands`);return(0,X.jsx)(r,{content:(0,X.jsxs)(`div`,{className:`w-[260px] p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,X.jsx)(Qn,{executionStatus:i,sandboxStatus:a,showTooltip:!1}),(0,X.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,title:t,children:t||g(C.CONVERSATION$UNTITLED)})]}),(0,X.jsx)(sr,{selectedRepository:n,lastUpdatedAt:o,createdAt:s,executionStatus:i,workspaceWorkingDir:c,showRepositoryMetadata:d,llmModel:f,showAgentChip:p,agentKind:m,acpServer:h})]}),placement:`right`,closeDelay:100,className:`bg-[var(--oh-surface)] text-white border border-[var(--oh-border-subtle)] shadow-xl p-0`,disableAnimation:!1,children:(0,X.jsx)(Ae,{to:`/conversations/${e}`,onClick:u,"data-testid":`compact-conversation-row`,"data-conversation-id":e,"aria-label":t||e,className:({isActive:e})=>U(`flex items-center justify-center w-10 h-9 mx-auto rounded-md`,`transition-colors cursor-pointer`,e||l?`bg-tertiary`:`hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(Qn,{executionStatus:i,sandboxStatus:a,showTooltip:!1})})})}var br={showOlderConversations:!0,showRepoBranchMetadata:!1,showLlmProfiles:!0,showHoverMetadata:!0,organizeMode:`chronological`,conversationSort:`updated`,threadScope:`all`,groupFolderOrder:[]},Z=_t()(vt(e=>({...br,setShowOlderConversations:t=>e(()=>({showOlderConversations:t})),toggleShowOlderConversations:()=>e(e=>({showOlderConversations:!e.showOlderConversations})),setShowRepoBranchMetadata:t=>e(()=>({showRepoBranchMetadata:t})),toggleShowRepoBranchMetadata:()=>e(e=>({showRepoBranchMetadata:!e.showRepoBranchMetadata})),setShowLlmProfiles:t=>e(()=>({showLlmProfiles:t})),toggleShowLlmProfiles:()=>e(e=>({showLlmProfiles:!e.showLlmProfiles})),setShowHoverMetadata:t=>e(()=>({showHoverMetadata:t})),toggleShowHoverMetadata:()=>e(e=>({showHoverMetadata:!e.showHoverMetadata})),setOrganizeMode:t=>e(()=>({organizeMode:t})),setConversationSort:t=>e(()=>({conversationSort:t})),setThreadScope:t=>e(()=>({threadScope:t})),setGroupFolderOrder:t=>e(()=>({groupFolderOrder:[...t]}))}),{name:`conversation-panel-preferences`,storage:yt(()=>localStorage),partialize:e=>({showOlderConversations:e.showOlderConversations,showRepoBranchMetadata:e.showRepoBranchMetadata,showLlmProfiles:e.showLlmProfiles,showHoverMetadata:e.showHoverMetadata,organizeMode:e.organizeMode,conversationSort:e.conversationSort,threadScope:e.threadScope,groupFolderOrder:e.groupFolderOrder})})),xr=`px-2 pb-1 pt-1`,Sr=`text-[11px] font-semibold uppercase tracking-wide text-[var(--oh-muted)]`;function Cr({children:e,suffix:t}){return t==null?(0,X.jsx)(`div`,{role:`presentation`,className:U(xr,Sr),children:e}):(0,X.jsxs)(`div`,{role:`presentation`,className:U(`flex items-baseline justify-between gap-2`,xr),children:[(0,X.jsx)(`span`,{className:U(`min-w-0 truncate text-left`,Sr),children:e}),t]})}function wr(){return(0,X.jsx)(Qe,{inset:`menu`})}function Q({icon:e,label:t,selected:n,onClick:r,testId:i,disabled:a}){return(0,X.jsxs)(`button`,{type:`button`,role:n===void 0?`menuitem`:`menuitemradio`,"aria-checked":n===void 0?void 0:!!n,"data-testid":i,disabled:a,onClick:r,className:U(`group`,qe,`text-[var(--oh-foreground)] disabled:opacity-50`),children:[(0,X.jsx)(e,{className:U(`h-3.5 w-3.5`,Ge),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t}),n?(0,X.jsx)(j,{className:`ml-auto h-3.5 w-3.5 shrink-0 text-white`,"aria-hidden":!0}):null]})}var Tr=e=>e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e;function Er({filterMenuOpen:e,setFilterMenuOpen:t,menuRef:n,backendKind:r,organizeMode:i,setOrganizeMode:a,conversationSort:o,setConversationSort:s,threadScope:c,setThreadScope:l,showOlderConversations:u,toggleShowOlderConversations:d,showRepoBranchMetadata:f,toggleShowRepoBranchMetadata:p,showLlmProfiles:m,toggleShowLlmProfiles:h,showHoverMetadata:g,toggleShowHoverMetadata:_,totalConversationsCount:v,onRequestDeleteAll:y}){let{t:b}=S(`openhands`),x=b(r===`local`?C.CONVERSATION_PANEL$BY_WORKSPACE:C.CONVERSATION_PANEL$BY_REPOSITORY),w=Y.useRef(null),T=Y.useRef(null),E=Y.useRef(e);return Y.useEffect(()=>{e?(T.current?.querySelector(`[role="menuitem"], [role="menuitemradio"]`))?.focus():E.current&&w.current?.focus(),E.current=e},[e]),(0,X.jsxs)(`div`,{ref:n,className:`relative shrink-0 pr-0.5`,children:[(0,X.jsx)(`button`,{ref:w,type:`button`,"data-testid":`older-conversations-filter-toggle`,"aria-label":b(C.CONVERSATION_PANEL$FILTER_LABEL),"aria-haspopup":`menu`,"aria-expanded":e,onClick:()=>t(!e),className:U(`inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`,Je),children:(0,X.jsx)(vn,{className:`lucide lucide-list-filter shrink-0`,width:14,height:14,strokeWidth:2,"aria-hidden":!0})}),e?(0,X.jsxs)(`div`,{ref:T,role:`menu`,"aria-orientation":`vertical`,"aria-label":b(C.CONVERSATION_PANEL$FILTER_LABEL),tabIndex:-1,"data-testid":`older-conversations-filter-menu`,onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),t(!1);return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let n=T.current;if(!n)return;let r=Array.from(n.querySelectorAll(`[role="menuitem"], [role="menuitemradio"]`)).filter(e=>!e.disabled);if(r.length===0)return;let i=r.indexOf(document.activeElement),a=e.key===`ArrowDown`?1:-1,o=((i===-1?0:i)+a+r.length)%r.length;e.preventDefault(),r[o]?.focus()},className:U(`absolute right-0 top-full z-50 mt-0 w-64 rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 text-[var(--oh-foreground)] shadow-lg`,We,He),children:[(0,X.jsx)(Cr,{children:b(C.CONVERSATION_PANEL$ORGANIZE)}),(0,X.jsx)(Q,{icon:ie,label:x,selected:i===`grouped`,onClick:()=>{a(`grouped`),t(!1)}}),(0,X.jsx)(Q,{icon:pn,label:b(C.CONVERSATION_PANEL$CHRONOLOGICAL),selected:i===`chronological`,onClick:()=>{a(`chronological`),t(!1)}}),(0,X.jsx)(wr,{}),(0,X.jsx)(Cr,{children:b(C.CONVERSATION_PANEL$SORT_BY)}),(0,X.jsx)(Q,{icon:fn,label:b(C.CONVERSATION_PANEL$SORT_CREATED),selected:o===`created`,onClick:()=>{s(`created`),t(!1)}}),(0,X.jsx)(Q,{icon:mn,label:b(C.CONVERSATION_PANEL$SORT_UPDATED),selected:o===`updated`,onClick:()=>{s(`updated`),t(!1)}}),(0,X.jsx)(wr,{}),(0,X.jsx)(Cr,{children:b(C.CONVERSATION_PANEL$SHOW)}),(0,X.jsx)(Q,{icon:yn,label:b(C.CONVERSATION_PANEL$ALL_THREADS),selected:c===`all`,onClick:()=>{l(`all`),t(!1)}}),(0,X.jsx)(Q,{icon:Sn,label:b(C.CONVERSATION_PANEL$RELEVANT_THREADS),selected:c===`relevant`,onClick:()=>{l(`relevant`),t(!1)}}),(0,X.jsx)(wr,{}),(0,X.jsx)(Cr,{children:b(C.CONVERSATION_PANEL$METADATA)}),(0,X.jsx)(Q,{icon:A,label:b(C.CONVERSATION_PANEL$LLM_MODEL),selected:m,testId:`toggle-llm-profiles`,onClick:()=>{h(),t(!1)}}),(0,X.jsx)(Q,{icon:z,label:b(C.CONVERSATION_PANEL$REPO_BRANCH),selected:f,testId:`toggle-repo-branch-metadata`,onClick:()=>{p(),t(!1)}}),(0,X.jsx)(Q,{icon:ce,label:b(C.CONVERSATION_PANEL$HOVER_METADATA),selected:g,testId:`toggle-hover-metadata`,onClick:()=>{_(),t(!1)}}),(0,X.jsx)(wr,{}),(0,X.jsx)(Cr,{suffix:(0,X.jsx)(`span`,{className:`shrink-0 text-right text-[10px] font-medium normal-case tracking-normal text-[var(--oh-muted)]/70`,children:b(C.CONVERSATION_PANEL$OLDER_OVER_ONE_HOUR)}),children:b(C.CONVERSATION_PANEL$OLDER_SECTION)}),(0,X.jsx)(Q,{testId:`toggle-older-conversations`,icon:u?hn:gn,label:Tr(b(u?C.CONVERSATION$HIDE:C.CONVERSATION$SHOW_ALL)),onClick:()=>{d(),t(!1)}}),(0,X.jsx)(wr,{}),(0,X.jsx)(Q,{testId:`delete-all-conversations`,icon:me,label:Tr(b(C.CONVERSATION$DELETE_ALL)),disabled:v===0,onClick:()=>{v!==0&&(y(),t(!1))}})]}):null]})}var Dr=U(`z-50 flex flex-col rounded-md border border-[var(--oh-border-subtle)] bg-tertiary px-1 py-1 text-white shadow-lg`,Ve);function Or(e,t){let{open:n,enabled:r,targetWidth:i=256}=t,[a,o]=Y.useState(null),s=Y.useCallback(()=>{let t=e.current;if(!t)return;let n=t.getBoundingClientRect(),r=Math.min(i,window.innerWidth-16),a=n.right-r;a<8&&(a=8),a+r>window.innerWidth-8&&(a=Math.max(8,window.innerWidth-8-r)),o({top:n.bottom+4,left:a,width:r})},[e,i]);return Y.useLayoutEffect(()=>{if(!n||!r){o(null);return}return s(),window.addEventListener(`resize`,s),window.addEventListener(`scroll`,s,!0),()=>{window.removeEventListener(`resize`,s),window.removeEventListener(`scroll`,s,!0)}},[n,r,s]),a}function kr({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=De(),[s,c]=Y.useState(!1),l=Y.useRef(null),u=Y.useRef(null),d=Or(u,{open:s,enabled:i}),{data:f,error:p}=oe(),m=f?.workspaceParents??[],{mutate:h}=te(),{mutate:g}=se(),{mutate:_}=L(),{mutate:v}=R(),{workspaces:y}=re(),b=ee(p,a),[x,w]=Y.useState(!1),[T,E]=Y.useState(!1),{mutate:D,isPending:O}=Gt(),k=Kt(),A=O||k;Y.useEffect(()=>{if(!s||x||T)return;let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s,x,T]),Y.useEffect(()=>{if(!s||x||T)return;let e=e=>{e.key===`Escape`&&c(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,x,T]);let j=e=>{A||D({workingDir:e,entryPoint:`sidebar_local_menu`},{onSuccess:e=>{c(!1),o(`/conversations/${e.conversation_id}`)}})},M=qe,N=Y.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),P=Y.useCallback(()=>{c(e=>!e)},[]),F=s&&(!i||d!==null),I=!!b,z=i&&d?{position:`fixed`,top:d.top,left:d.left,width:d.width}:void 0,ne=(0,X.jsx)(`button`,{type:`button`,"data-testid":`add-workspaces-button`,disabled:I,onMouseDown:N,onClick:e=>{e.preventDefault(),e.stopPropagation(),!I&&w(!0)},className:M,children:a(C.HOME$ADD_WORKSPACES)}),ie=b?(0,X.jsx)(Be,{content:b,placement:`top`,children:(0,X.jsx)(`span`,{className:`block`,children:ne})}):ne;return(0,X.jsxs)(`div`,{className:U(!i&&`relative`,t),ref:l,children:[(0,X.jsx)(`span`,{ref:u,className:`inline-flex`,children:e({onClick:P,"aria-expanded":s,"aria-haspopup":`menu`,disabled:A})}),F&&(0,X.jsxs)(`div`,{"data-testid":r,className:U(Dr,!i&&U(`absolute top-full mt-0`,n)),style:z,children:[(0,X.jsxs)(`ul`,{className:U(`max-h-[40vh] overflow-y-auto sm:max-h-[280px]`,We),children:[(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,disabled:A,"data-testid":`launch-no-workspace`,onClick:()=>j(),className:M,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-muted)]`,children:a(C.HOME$NO_WORKSPACE_OPTION)})})}),y.map(e=>(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,disabled:A,"data-testid":`launch-workspace`,"data-workspace-path":e.path,onClick:()=>j(e.path),className:M,children:[(0,X.jsx)(`span`,{className:Ye,"aria-hidden":!0,children:(0,X.jsx)(et,{width:14,height:14})}),(0,X.jsx)(`span`,{className:`truncate`,children:e.name})]})},e.id))]}),(0,X.jsxs)(`div`,{className:U(`flex flex-col`,We),"data-testid":`new-conversation-menu-footer`,children:[(0,X.jsx)(Qe,{inset:`menu`,testId:`new-conversation-menu-footer-divider`}),ie,(y.length>0||m.length>0)&&(0,X.jsx)(`button`,{type:`button`,"data-testid":`manage-workspaces-button`,onMouseDown:N,onClick:e=>{e.preventDefault(),e.stopPropagation(),E(!0)},className:M,children:a(C.HOME$MANAGE_WORKSPACES)})]})]}),(0,X.jsx)(B,{isOpen:x,onClose:()=>w(!1),onAdd:e=>h(e),onAddParent:e=>_(e)}),(0,X.jsx)(ae,{isOpen:T,workspaces:y,workspaceParents:m,onClose:()=>E(!1),onRemove:e=>g(e),onRemoveParent:e=>v(e)})]})}function Ar({repo:e,disabled:t,onSelect:n,itemClass:r}){return(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{type:`button`,disabled:t,"data-testid":`launch-repository`,"data-repo-name":e.full_name,onClick:()=>n(e),className:r,children:[(0,X.jsx)(`span`,{className:Ye,"aria-hidden":!0,children:(0,X.jsx)(et,{width:14,height:14})}),(0,X.jsx)(`span`,{className:`truncate`,children:e.full_name})]})})}function jr({trigger:e,className:t,popoverClassName:n,popoverTestId:r=`new-conversation-popover`,useFixedPlacement:i=!1}){let{t:a}=S(`openhands`),{navigate:o}=De(),{providers:s}=dt(),{lastSelectedProvider:c,setLastSelectedProvider:l}=ct(),[u,d]=Y.useState(!1),f=Y.useRef(null),p=Y.useRef(null),m=Or(p,{open:u,enabled:i}),[h,g]=Y.useState(c??null),[_,v]=Y.useState(``),y=ut(_,300);Y.useEffect(()=>{if(s.length===0){h!==null&&g(null);return}h&&s.includes(h)||g(c&&s.includes(c)?c:s[0])},[s,h,c]);let{data:b,isLoading:x,isError:w,hasNextPage:T,isFetchingNextPage:E,fetchNextPage:D}=$e({provider:h}),{data:O,isLoading:k}=at(y,h),A=Y.useMemo(()=>b?.pages.flatMap(e=>e.items)??[],[b]),j=y?O??[]:A,{mutate:M,isPending:N}=Gt(),P=Kt(),F=N||P;Y.useEffect(()=>{if(!u)return;let e=e=>{f.current&&!f.current.contains(e.target)&&d(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[u]),Y.useEffect(()=>{if(!u)return;let e=e=>{e.key===`Escape`&&d(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[u]);let I=e=>{F||M({repository:{name:e.full_name,gitProvider:e.git_provider,branch:e.main_branch??`main`},entryPoint:`sidebar_cloud_menu`},{onSuccess:e=>{d(!1),o(`/conversations/${e.conversation_id}`)}})},ee=e=>{g(e),l(e),v(``)},L=qe;Y.useEffect(()=>{u&&(y||!T||E||x||j.length===0||j.length>=10||D())},[u,y,T,E,x,j.length,D]);let R=y?k:x,z=!y&&T&&j.length>0,B=Y.useCallback(()=>{d(e=>!e)},[]),te=u&&(!i||m!==null),ne=i&&m?{position:`fixed`,top:m.top,left:m.left,width:m.width}:void 0;return(0,X.jsxs)(`div`,{className:U(!i&&`relative`,t),ref:f,children:[(0,X.jsx)(`span`,{ref:p,className:`inline-flex`,children:e({onClick:B,"aria-expanded":u,"aria-haspopup":`menu`,disabled:F})}),te&&(0,X.jsxs)(`div`,{"data-testid":r,className:U(Dr,!i&&U(`absolute top-full mt-0`,n)),style:ne,children:[s.length>1&&(0,X.jsx)(`div`,{className:`flex items-center gap-1 px-1 py-1`,"data-testid":`cloud-provider-tabs`,children:s.map(e=>{let t=e===h;return(0,X.jsxs)(`button`,{type:`button`,"data-testid":`cloud-provider-tab-${e}`,onClick:()=>ee(e),className:U(`flex items-center gap-1 rounded border px-2 py-1 text-xs`,`transition-none`,t?`border-[var(--oh-border-subtle)] bg-[var(--oh-interactive-hover)] text-white`:`border-transparent text-[var(--oh-text-secondary)] hover:text-white`),children:[(0,X.jsx)(ft,{gitProvider:e}),(0,X.jsx)(`span`,{className:`capitalize`,children:e})]},e)})}),(0,X.jsx)(`div`,{className:`px-2`,children:(0,X.jsxs)(`div`,{className:`relative`,children:[(0,X.jsx)(sn,{width:16,height:16,"aria-hidden":!0,className:`pointer-events-none absolute left-0 top-1/2 -translate-y-1/2 text-[var(--oh-muted)]`}),(0,X.jsx)(`input`,{type:`text`,"data-testid":`cloud-repo-search-input`,value:_,onChange:e=>v(e.target.value),placeholder:a(C.COMMON$SEARCH_REPOSITORIES),disabled:!h,className:U(`w-full border-0 bg-transparent py-1.5 pl-6 pr-0 text-sm text-white`,`outline-none placeholder:text-[var(--oh-muted)]`,`focus:outline-none focus:ring-0`,`disabled:cursor-not-allowed disabled:opacity-60`)})]})}),(0,X.jsx)(Qe,{inset:`menu`}),(0,X.jsxs)(`ul`,{className:U(`max-h-[40vh] overflow-y-auto custom-scrollbar-always sm:max-h-[280px]`,We),children:[R&&j.length===0&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,"data-testid":`cloud-repo-loading`,children:a(C.HOME$LOADING_REPOSITORIES)}),w&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[#F87171]`,"data-testid":`cloud-repo-error`,children:a(C.HOME$FAILED_TO_LOAD_REPOSITORIES)}),!R&&!w&&j.length===0&&!!h&&(0,X.jsx)(`li`,{className:`px-2 py-2 text-sm text-[var(--oh-muted)] italic`,"data-testid":`cloud-repo-empty`,children:a(C.GITHUB$NO_RESULTS)}),j.map(e=>(0,X.jsx)(Ar,{repo:e,disabled:F,onSelect:I,itemClass:L},`${e.git_provider}:${e.id}`)),z&&(0,X.jsx)(`li`,{children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`cloud-repo-load-more`,disabled:E,onClick:()=>D(),className:L,children:(0,X.jsx)(`span`,{className:`text-[var(--oh-text-secondary)]`,children:a(E?C.HOME$LOADING_MORE_REPOSITORIES:C.CONVERSATION$LOAD_MORE)})})})]})]})]})}var Mr=U(`inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,`text-[var(--oh-muted)] transition-colors`,`hover:bg-[var(--oh-surface-raised)] hover:text-white`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,`disabled:cursor-not-allowed disabled:opacity-50`);function Nr({backendKind:e}){let{t}=S(`openhands`),n=t(C.CONVERSATION_PANEL$NEW_THREAD_FOLDER_ARIA),r=(0,X.jsx)(_n,{className:`h-4 w-4 shrink-0`,"aria-hidden":!0,strokeWidth:2});return e===`local`?(0,X.jsx)(kr,{useFixedPlacement:!0,popoverTestId:`conversation-panel-new-thread-popover`,popoverClassName:``,trigger:({onClick:e,"aria-expanded":t,disabled:i,"aria-haspopup":a})=>(0,X.jsx)(`button`,{type:`button`,className:Mr,"aria-label":n,"aria-expanded":t,"aria-haspopup":a,disabled:i,"data-testid":`conversation-panel-new-thread-picker`,onClick:e,children:r})}):(0,X.jsx)(jr,{useFixedPlacement:!0,popoverTestId:`conversation-panel-new-thread-popover`,popoverClassName:``,trigger:({onClick:e,"aria-expanded":t,disabled:i,"aria-haspopup":a})=>(0,X.jsx)(`button`,{type:`button`,className:Mr,"aria-label":n,"aria-expanded":t,"aria-haspopup":a,disabled:i,"data-testid":`conversation-panel-new-thread-picker`,onClick:e,children:r})})}function Pr(e,t){let n=t.limit??5;if(t.expanded||e.length<=n)return{visibleConversations:[...e],isPreviewTruncated:e.length>n,isShowingAll:!0};let r=t.activeConversationId==null?-1:e.findIndex(e=>e.id===t.activeConversationId);if(r>=n){let t=e[r];return{visibleConversations:[...e.slice(0,n-1),t],isPreviewTruncated:!0,isShowingAll:!1}}return{visibleConversations:e.slice(0,n),isPreviewTruncated:e.length>n,isShowingAll:!1}}function Fr(e,t){let n=new Map(t.map(e=>[e.id,e]));return e.map(e=>n.get(e)).filter(e=>e!=null)}function Ir(e,t){if(t.length===0)return[...e];let n=new Set(t);return e.filter(e=>!n.has(e.id))}function Lr(e,t,n){if(t===`local`)return e===`__none_workspace`?{}:e.startsWith(`ws:`)?{workingDir:e.slice(3)}:{};if(e===`__none_repo`)return{};if(e.startsWith(`repo:`)){let t=e.slice(5),r=n[0];return{repository:{name:t,gitProvider:r?.git_provider??`github`,branch:r?.selected_branch??`main`}}}return{}}function Rr(e){if(!e)return 0;let t=Date.parse(e);return Number.isFinite(t)?t:0}function zr(e,t){let n=t===`created`?`created_at`:`updated_at`;return[...e].sort((e,t)=>Rr(t[n])-Rr(e[n]))}function Br(e){let t=e.selected_workspace?.trim().replace(/\/+$/,``);if(!t)return{id:`__none_workspace`,label:``};let n=t.split(`/`).filter(Boolean).pop()??t;return{id:`ws:${t}`,label:n}}function Vr(e){let t=e.selected_repository?.trim().replace(/\/+$/,``);if(!t)return{id:`__none_repo`,label:``};let n=t.split(`/`).filter(Boolean),r=n.length?(n[n.length-1]??t).replace(/\.git$/,``):t.replace(/\.git$/,``);return{id:`repo:${t}`,label:r}}function Hr(e,t,n,r){let i=new Map;for(let n of e){let{id:e,label:a}=t===`local`?Br(n):Vr(n),o=e===`__none_workspace`?r.emptyWorkspace:e===`__none_repo`?r.emptyRepository:a,s=i.get(e);s?s.conversations.push(n):i.set(e,{label:o,conversations:[n]})}let a=[...i.entries()].map(([e,r])=>{let i=zr(r.conversations,n);return{id:e,label:r.label,conversations:i,launch:Lr(e,t,i)}}),o=e=>e.conversations.reduce((e,t)=>Math.max(e,Rr(n===`created`?t.created_at:t.updated_at)),0);return a.sort((e,t)=>o(t)-o(e)),a}function Ur(e,t){if(t.length===0)return[...e];let n=new Map(e.map(e=>[e.id,e])),r=[],i=new Set;for(let e of t){let t=n.get(e);t&&(r.push(t),i.add(e))}for(let t of e)i.has(t.id)||r.push(t);return r}function Wr(e,t,n,r,i=`after`){if(n===r)return[...e];let a=Ur(t.map(e=>({id:e})),e).map(e=>e.id),o=a.indexOf(n),s=a.indexOf(r);if(o<0||s<0)return[...e];let c=[...a];c.splice(o,1);let l=c.indexOf(r),u=i===`before`?l:l+1;return c.splice(u,0,n),c}function Gr({group:e,expanded:t,previewExpanded:n,isDragging:r,dropIndicatorPosition:i,animateLayout:a,isCreatingConversationFlow:o,activeConversationId:s,onToggleExpanded:c,onDragStart:l,onDragEnd:u,onDragOver:d,onDragLeave:f,onDrop:p,onTogglePreviewExpanded:m,onLaunchFromGroup:h,renderConversationCard:g}){let{t:_}=S(`openhands`),v=(0,Y.useRef)(null),y=`thread-folder-${e.id.replace(/[^a-zA-Z0-9_-]/g,`-`)}`,b=e.id.replace(/[^a-zA-Z0-9_-]/g,`-`),{visibleConversations:x,isPreviewTruncated:w,isShowingAll:T}=Pr(e.conversations,{expanded:n,activeConversationId:s});return(0,X.jsxs)(N.section,{ref:v,layout:a?`position`:!1,transition:{type:`spring`,stiffness:600,damping:45},"aria-labelledby":y,"data-testid":`thread-folder-${b}`,onDragOver:d,onDragLeave:f,onDrop:p,className:`relative rounded-md`,children:[i?(0,X.jsx)(`div`,{"aria-hidden":!0,"data-testid":`thread-folder-drop-indicator-${b}`,className:U(`pointer-events-none absolute inset-x-0 z-10 h-0.5 rounded-full bg-[var(--oh-accent)]`,i===`before`?`-top-0.5`:`-bottom-0.5`)}):null,(0,X.jsxs)(`div`,{className:U(r&&`opacity-0`),children:[(0,X.jsxs)(`div`,{className:U(`flex h-8 w-full min-w-0 items-center gap-0.5 rounded-md pl-2 pr-1 text-sm font-normal`,`text-[var(--oh-muted)] transition-colors hover:bg-[var(--oh-surface-raised)] hover:text-white`),children:[(0,X.jsxs)(`button`,{type:`button`,draggable:!0,id:y,"aria-expanded":t,"aria-controls":`thread-folder-content-${b}`,"data-testid":`thread-folder-drag-${b}`,"aria-label":_(t?C.CONVERSATION_PANEL$COLLAPSE_FOLDER:C.CONVERSATION_PANEL$EXPAND_FOLDER,{label:e.label}),onClick:c,onDragStart:t=>{t.stopPropagation();let{dataTransfer:n}=t;if(n){n.effectAllowed=`move`,n.setData(`text/plain`,e.id);let r=v.current;if(r&&typeof n.setDragImage==`function`){let e=r.getBoundingClientRect(),i=r.cloneNode(!0);i.style.position=`fixed`,i.style.top=`0`,i.style.left=`-9999px`,i.style.width=`${e.width}px`,i.style.margin=`0`,i.style.pointerEvents=`none`,i.style.borderRadius=`0.5rem`,i.style.padding=`0.25rem`,i.style.backgroundColor=`var(--oh-surface-raised)`,i.style.boxShadow=`0 8px 24px rgba(0, 0, 0, 0.35)`,document.body.appendChild(i),n.setDragImage(i,t.clientX-e.left,t.clientY-e.top),window.setTimeout(()=>i.remove(),0)}}l()},onDragEnd:e=>{e.stopPropagation(),u()},className:U(`group/folder flex min-h-8 min-w-0 flex-1 cursor-grab items-center gap-2 rounded-md py-1 text-left text-inherit outline-none active:cursor-grabbing`,`focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`),children:[(0,X.jsx)(ie,{className:U(`h-4 w-4 shrink-0`,t?`hidden group-hover/folder:block`:`block group-hover/folder:hidden`),"aria-hidden":!0}),(0,X.jsx)(F,{className:U(`h-4 w-4 shrink-0`,t?`block group-hover/folder:hidden`:`hidden group-hover/folder:block`),"aria-hidden":!0}),(0,X.jsx)(`span`,{className:`truncate`,children:e.label})]}),(0,X.jsx)(`button`,{type:`button`,className:U(`inline-flex h-6 w-6 shrink-0 cursor-pointer items-center justify-center rounded-md`,`text-inherit transition-colors`,`hover:bg-white/10 hover:text-white`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--oh-border)]`,`disabled:cursor-not-allowed disabled:opacity-50`),disabled:o,"aria-label":_(C.CONVERSATION_PANEL$ADD_CONVERSATION_TO_GROUP,{label:e.label}),"data-testid":`add-conversation-to-group-${b}`,onClick:e=>{e.preventDefault(),e.stopPropagation(),h()},children:(0,X.jsx)(le,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0,strokeWidth:2})})]}),t?(0,X.jsxs)(`div`,{id:`thread-folder-content-${b}`,className:`mt-0.5 space-y-0.5`,children:[x.map(g),w?(0,X.jsx)(`div`,{className:`pl-2`,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`thread-folder-view-more-${b}`,onClick:m,className:`cursor-pointer text-xs text-[var(--oh-text-dim)] hover:text-white`,children:_(T?C.CONVERSATION_PANEL$LESS:C.CONVERSATION_PANEL$MORE)})}):null]}):null]})]})}function Kr({groups:e,groupIds:t,groupFolderOrder:n,setGroupFolderOrder:r,collapsedGroupIds:i,expandedGroupPreviewIds:a,onToggleGroupCollapsed:o,onToggleGroupPreviewExpanded:s,isCreatingConversationFlow:c,activeConversationId:l,onLaunchFromGroup:u,renderConversationCard:d}){let{t:f}=S(`openhands`),[p,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(null),[_,v]=(0,Y.useState)(null),[y,b]=(0,Y.useState)(!1),x=(0,Y.useRef)(null);(0,Y.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let w=(0,Y.useCallback)(()=>{x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{b(!1),x.current=null},300)},[]),T=(0,Y.useCallback)(()=>{m(null),g(null),v(null)},[]),E=(0,Y.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();return e.clientY<t.top+t.height/2?`before`:`after`},[]),D=(0,Y.useCallback)((e,i)=>{if(!p||p===e){T(),w();return}r(Wr(n,t,p,e,i)),T(),w()},[p,n,t,T,r,w]);return(0,X.jsx)(`nav`,{"aria-label":f(C.SIDEBAR$CONVERSATIONS),className:`space-y-1 md:space-y-0.5 pb-1`,children:e.map(e=>(0,X.jsx)(Gr,{group:e,expanded:!i.has(e.id),previewExpanded:a.has(e.id),isDragging:p===e.id,dropIndicatorPosition:h===e.id&&p!==e.id?_:null,animateLayout:y,isCreatingConversationFlow:c,activeConversationId:l,onToggleExpanded:()=>o(e.id),onDragStart:()=>{b(!0),m(e.id)},onDragEnd:()=>{T(),w()},onDragOver:t=>{t.preventDefault();let{dataTransfer:n}=t;n&&(n.dropEffect=`move`),g(e.id),v(E(t))},onDragLeave:()=>{g(t=>t===e.id?null:t)},onDrop:t=>{t.preventDefault(),D(e.id,E(t))},onTogglePreviewExpanded:()=>s(e.id),onLaunchFromGroup:()=>u(e.launch),renderConversationCard:d},e.id))})}function qr({pinnedConversations:e,isPreviewExpanded:t,onTogglePreviewExpanded:n,activeConversationId:r,showDivider:i=!1,renderConversationCard:a}){let{t:o}=S(`openhands`),{visibleConversations:s,isPreviewTruncated:c,isShowingAll:l}=Pr(e,{limit:5,expanded:t,activeConversationId:r});return(0,X.jsxs)(`section`,{"data-testid":`conversation-panel-pinned-section`,className:U(`pt-1`,i?`mb-2 border-b border-[var(--oh-border-subtle)] pb-2`:`pb-2`),children:[(0,X.jsxs)(`h3`,{className:`flex items-center gap-1.5 py-1.5 pl-2 text-sm font-normal text-[var(--oh-muted)]`,children:[(0,X.jsx)(bn,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),o(C.CONVERSATION_PANEL$PINNED)]}),(0,X.jsx)(`div`,{className:`space-y-0.5`,children:s.map(a)}),c?(0,X.jsx)(`div`,{className:`pl-2 pt-0.5`,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`conversation-panel-pinned-view-more`,onClick:n,className:`cursor-pointer text-xs text-[var(--oh-text-dim)] hover:text-white`,children:o(l?C.CONVERSATION_PANEL$LESS:C.CONVERSATION_PANEL$MORE)})}):null]})}var Jr={pinsByBackendId:{}};function Yr(e,t){return e[t]??[]}var Xr=_t()(vt((e,t)=>({...Jr,pinConversation:(n,r)=>{let i=Yr(t().pinsByBackendId,n);i.includes(r)||e(e=>({pinsByBackendId:{...e.pinsByBackendId,[n]:[r,...i]}}))},unpinConversation:(n,r)=>{let i=Yr(t().pinsByBackendId,n);i.includes(r)&&e(e=>({pinsByBackendId:{...e.pinsByBackendId,[n]:i.filter(e=>e!==r)}}))},togglePin:(e,n)=>{Yr(t().pinsByBackendId,e).includes(n)?t().unpinConversation(e,n):t().pinConversation(e,n)},pruneMissingConversations:(n,r)=>{let i=new Set(r),a=Yr(t().pinsByBackendId,n),o=a.filter(e=>i.has(e));o.length!==a.length&&e(e=>({pinsByBackendId:{...e.pinsByBackendId,[n]:o}}))}}),{name:`pinned-conversations`,storage:yt(()=>localStorage),partialize:e=>({pinsByBackendId:e.pinsByBackendId})})),Zr=()=>{},Qr=[],$r=3600*1e3,ei=e=>{let t=Date.now()-$r,n=[],r=[];for(let i of e){let e=i.updated_at?Date.parse(i.updated_at):NaN;Number.isFinite(e)&&e<t?r.push(i):n.push(i)}return{recent:n,older:r}};function ti({onClose:e,compact:t=!1}){let{t:n}=S(`openhands`),{conversationId:i,navigate:a}=De(),{backend:o}=D(),s=Ut(e??Zr),[c,l]=Y.useState(!1),[u,d]=Y.useState(!1),[f,p]=Y.useState(!1),[m,h]=Y.useState(!1),g=Z(e=>e.showOlderConversations),_=Z(e=>e.toggleShowOlderConversations),v=Z(e=>e.showRepoBranchMetadata),y=Z(e=>e.toggleShowRepoBranchMetadata),b=Z(e=>e.showLlmProfiles),x=Z(e=>e.toggleShowLlmProfiles),T=Z(e=>e.showHoverMetadata),O=Z(e=>e.toggleShowHoverMetadata),k=Z(e=>e.organizeMode),A=Z(e=>e.setOrganizeMode),j=Z(e=>e.conversationSort),M=Z(e=>e.setConversationSort),N=Z(e=>e.threadScope),P=Z(e=>e.setThreadScope),F=Z(e=>e.groupFolderOrder),I=Z(e=>e.setGroupFolderOrder),[ee,L]=Y.useState(!1),[R,z]=Y.useState(!1),B=Ut(()=>{L(!1)}),[te,ne]=Y.useState(()=>new Set),[re,ie]=Y.useState(()=>new Set),[ae,oe]=Y.useState(!1),V=Xr(e=>e.pinsByBackendId[o.id]??Qr),se=Xr(e=>e.togglePin),ce=Xr(e=>e.pruneMissingConversations),le=Y.useCallback(e=>{ne(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ue=Y.useCallback(e=>{ie(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);Y.useEffect(()=>{k!==`grouped`&&(ne(new Set),ie(new Set))},[k]);let de=Y.useRef(null),[H,fe]=Y.useState(null),[pe,me]=Y.useState(null),[he,ge]=Y.useState(null),{data:ve,isLoading:W,isFetched:ye,hasNextPage:G,isFetching:be,isFetchingNextPage:xe,fetchNextPage:Se}=Un(),{data:Ce}=Wn(),K=Y.useMemo(()=>{let e=ve?.pages.flatMap(e=>e.items)??[],t=new Set;return e.filter(e=>t.has(e.id)?!1:(t.add(e.id),!0))},[ve]),we=Y.useMemo(()=>Fr(V,K),[K,V]);Y.useEffect(()=>{ye&&ce(o.id,K.map(e=>e.id))},[o.id,K,ye,ce]),Y.useEffect(()=>{V.length===0&&oe(!1)},[V.length]);let Te=Y.useMemo(()=>{let e=N===`relevant`?K.filter(e=>_e(e.execution_status)):K;return t?e:Ir(e,V)},[t,K,V,N]),{recent:q,older:Ee}=Y.useMemo(()=>ei(Te),[Te]),Oe=Y.useMemo(()=>zr(g?[...q,...Ee]:q,j),[q,Ee,g,j]),ke=Y.useMemo(()=>({emptyWorkspace:n(C.CONVERSATION_PANEL$NO_WORKSPACE),emptyRepository:n(C.CONVERSATION_PANEL$NO_REPOSITORY)}),[n]),je=Y.useMemo(()=>t||k!==`grouped`?null:Hr([...q,...g?Ee:[]],o.kind,j,ke),[o.kind,t,j,ke,Ee,k,q,g]),J=Y.useMemo(()=>je?Ur(je,F):null,[je,F]),Me=Y.useMemo(()=>je?.map(e=>e.id)??[],[je]),Ne=Y.useMemo(()=>zr(q.filter(e=>_e(e.execution_status)),j),[j,q]),Pe=Oe.length,Fe=Y.useMemo(()=>J?J.reduce((e,t)=>e+t.conversations.length,0):0,[J]),Ie=k===`grouped`&&!t?Fe===0:Pe===0,Le=k===`grouped`&&!t?Fe:Pe,[Re,ze]=Y.useState(null),Be=Y.useRef(Le);Be.current=Le;let Ve=Y.useCallback(()=>{G&&ze(Be.current)},[G]);Y.useEffect(()=>{if(Re!==null){if(Le>Re){ze(null);return}if(!G){ze(null);return}be||xe||Se()}},[Re,Le,G,be,xe,Se]);let He=Re!==null||xe,{mutate:Ue,mutateAsync:We}=rt(),{mutate:Ge}=it(),{mutate:Ke}=Ht(),qe=Ee.length>0&&!g,Je=!!G&&!qe&&!t&&!Ie,{mutate:Ye}=Gt(),Xe=Kt(),Ze=Y.useCallback(e=>{Xe||Ye({workingDir:e.workingDir,repository:e.repository,entryPoint:`sidebar_relaunch_project`},{onSuccess:e=>{a(`/conversations/${e.conversation_id}`)}})},[Ye,Xe,a]),Qe=Y.useCallback((e,t)=>{l(!0),fe(e),me(t)},[]),$e=Y.useCallback(e=>{d(!0),fe(e)},[]),et=Y.useCallback((e,t)=>{Ke({conversationId:e,newTitle:t},{onSuccess:()=>{E(n(C.CONVERSATION$TITLE_UPDATED))}})},[n,Ke]),tt=()=>{H&&Ue({conversationId:H},{onSuccess:()=>{H===i&&a(`/conversations`)}})},nt=()=>{H&&Ge({conversationId:H})},at=async()=>{let e=K.map(e=>e.id),t=await Promise.allSettled(e.map(e=>We({conversationId:e}))),n=t.flatMap((t,n)=>t.status===`fulfilled`?[e[n]]:[]),r=t.length-n.length;i!==null&&n.includes(i)&&a(`/conversations`),r>0&&w(`${r} conversation${r===1?``:`s`} could not be deleted.`)},ot=Y.useCallback((n,a)=>{let s=V.includes(n.id);return t?(0,X.jsx)(yr,{conversationId:n.id,title:n.title??``,selectedRepository:{selected_repository:n.selected_repository,selected_branch:n.selected_branch,git_provider:n.git_provider},executionStatus:n.execution_status,sandboxStatus:n.sandbox_status,lastUpdatedAt:n.updated_at,createdAt:n.created_at,workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,isActive:n.id===i,onClose:e,showRepositoryMetadata:v,llmModel:n.llm_model,showLlmProfiles:b,agentKind:n.agent_kind,acpServer:n.acp_server},n.id):(0,X.jsx)(r,{placement:`right-start`,delay:1e3,closeDelay:100,isDisabled:!T||he===n.id,disableAnimation:!1,className:`rounded-xl border border-[var(--oh-border)] bg-base-secondary p-0 text-white shadow-xl`,content:(0,X.jsx)(fr,{title:n.title??``,executionStatus:n.execution_status,sandboxStatus:n.sandbox_status,selectedRepository:{selected_repository:n.selected_repository,selected_branch:n.selected_branch,git_provider:n.git_provider},workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,llmModel:n.llm_model,createdAt:n.created_at}),children:(0,X.jsx)(Ae,{to:`/conversations/${n.id}`,onClick:e,className:U(`block rounded-md transition-colors`,he!==n.id&&`hover:bg-[var(--oh-surface)]`,(n.id===i||he===n.id)&&`bg-[var(--oh-surface)]`),children:(0,X.jsx)(lr,{onDelete:()=>Qe(n.id,n.title??``),onStop:()=>$e(n.id),onChangeTitle:e=>et(n.id,e),title:n.title??``,selectedRepository:{selected_repository:n.selected_repository,selected_branch:n.selected_branch,git_provider:n.git_provider},lastUpdatedAt:n.updated_at,createdAt:n.created_at,executionStatus:n.execution_status,sandboxStatus:n.sandbox_status,conversationId:n.id,contextMenuOpen:he===n.id,onContextMenuToggle:e=>ge(e?n.id:null),isActive:n.id===i,workspaceWorkingDir:n.selected_workspace??n.workspace?.working_dir,showRepositoryMetadata:v,llmModel:n.llm_model,showLlmProfiles:b,agentKind:n.agent_kind,acpServer:n.acp_server,isPinned:s,onTogglePin:()=>se(o.id,n.id),alwaysShowPinIcon:s&&!a?.inPinnedSection})})},n.id)},[o.id,t,i,et,Qe,$e,e,he,V,v,b,T,se]),st=W||!ye,ct=!t&&!st&&we.length>0,lt=ye&&!W&&!t&&Ie&&!ct&&!Ce?.length;return(0,X.jsxs)(`div`,{ref:s,"data-testid":`conversation-panel`,className:`flex h-full min-h-0 w-full flex-col`,children:[!t&&(0,X.jsx)(`div`,{className:U(`-ml-2.5 w-[calc(100%+0.625rem)] max-w-none box-border border-b`,R?`border-[var(--oh-border)]`:`border-transparent`),children:(0,X.jsxs)(`div`,{"data-testid":`older-conversations-summary`,className:`flex min-w-0 flex-nowrap items-center gap-x-2 py-2 pl-4 pr-2.5 text-[var(--oh-muted)]`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium text-[var(--oh-muted)]`,children:n(C.SIDEBAR$CONVERSATIONS)}),(0,X.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-0.5`,children:[(0,X.jsx)(Nr,{backendKind:o.kind}),(0,X.jsx)(Er,{filterMenuOpen:ee,setFilterMenuOpen:L,menuRef:B,backendKind:o.kind,organizeMode:k,setOrganizeMode:A,conversationSort:j,setConversationSort:M,threadScope:N,setThreadScope:P,showOlderConversations:g,toggleShowOlderConversations:_,showRepoBranchMetadata:v,toggleShowRepoBranchMetadata:y,showLlmProfiles:b,toggleShowLlmProfiles:x,showHoverMetadata:T,toggleShowHoverMetadata:O,totalConversationsCount:K.length,onRequestDeleteAll:()=>h(!0)})]})]})}),(0,X.jsxs)(`div`,{ref:de,"data-testid":`conversation-panel-list-scroll`,onScroll:e=>{z(e.currentTarget.scrollTop>0)},className:U(`flex min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden overscroll-contain custom-scrollbar-always`,!t&&`conversation-panel-list-scroll`),children:[st&&(0,X.jsx)(vr,{compact:t}),!t&<&&(0,X.jsx)(`div`,{"data-testid":`conversation-panel-empty-state`,className:`flex min-h-0 flex-1 flex-col items-center justify-center px-4 py-8`,children:(0,X.jsx)(`p`,{className:`text-xs text-[var(--oh-muted)]`,children:n(C.CONVERSATION$NO_CONVERSATIONS)})}),ct?(0,X.jsx)(qr,{pinnedConversations:we,isPreviewExpanded:ae,onTogglePreviewExpanded:()=>oe(e=>!e),activeConversationId:i,showDivider:!t&&k===`chronological`,renderConversationCard:e=>ot(e,{inPinnedSection:!0})}):null,!t&&Ce?.map(t=>(0,X.jsx)(Ae,{to:`/conversations/task-${t.id}`,onClick:e,className:`block`,children:(0,X.jsx)(_r,{task:t})},t.id)),!st&&t?Ne.map(e=>ot(e)):null,!st&&!t&&k===`grouped`&&J&&J.length>0?(0,X.jsx)(Kr,{groups:J,groupIds:Me,groupFolderOrder:F,setGroupFolderOrder:I,collapsedGroupIds:te,expandedGroupPreviewIds:re,onToggleGroupCollapsed:le,onToggleGroupPreviewExpanded:ue,isCreatingConversationFlow:Xe,activeConversationId:i,onLaunchFromGroup:Ze,renderConversationCard:e=>ot(e)}):null,!st&&!t&&k===`chronological`?(0,X.jsx)(`div`,{className:`space-y-0.5`,children:Oe.map(e=>ot(e))}):null,Je&&(He?(0,X.jsx)(`div`,{className:`py-1`,children:(0,X.jsx)(vr,{compact:t})}):(0,X.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,X.jsx)(`button`,{type:`button`,"data-testid":`load-more-conversations`,onClick:Ve,className:`text-xs text-[var(--oh-muted)] hover:text-white`,children:n(C.CONVERSATION$LOAD_MORE)})}))]}),c&&(0,X.jsx)(Ft,{onConfirm:()=>{tt(),l(!1),me(null)},onCancel:()=>{l(!1),me(null)},conversationTitle:pe??void 0}),m&&(0,X.jsx)(Ft,{title:n(C.CONVERSATION$CONFIRM_DELETE_ALL_TITLE),description:n(C.CONVERSATION$CONFIRM_DELETE_ALL_DESC,{count:K.length}),onConfirm:async()=>{await at(),h(!1)},onCancel:()=>h(!1)}),u&&(0,X.jsx)(Pt,{onConfirm:()=>{nt(),d(!1)},onCancel:()=>d(!1)}),f&&(0,X.jsx)(Gn,{onConfirm:()=>{e?.()},onClose:()=>p(!1),onCancel:()=>p(!1)})]})}function ni({collapsed:e}){return e?null:(0,X.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0`,children:(0,X.jsx)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col`,children:(0,X.jsx)(ti,{})})})}var ri=e=>(0,X.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 20 20`,fill:`none`,...e,children:[(0,X.jsx)(`mask`,{id:`mask0_18339_1445`,style:{maskType:`luminance`},maskUnits:`userSpaceOnUse`,x:1,y:1,width:18,height:18,children:(0,X.jsx)(`path`,{d:`M19 1H1V19H19V1Z`,fill:`white`})}),(0,X.jsxs)(`g`,{mask:`url(#mask0_18339_1445)`,children:[(0,X.jsx)(`path`,{d:`M10 18.1818V16.5454`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M10 1.81836V3.45472`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M1.81824 10H3.4546`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M18.1818 10H16.5454`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M5.93359 17.1019L6.74359 15.6782`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M14.0663 2.89844L13.2563 4.32208`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M2.89819 5.93359L4.32183 6.74359`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M17.1019 14.0663L15.6782 13.2563`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M5.92542 2.90625L6.7436 4.3217`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M14.0909 17.0854L13.2727 15.6699`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M17.0855 5.90918L15.67 6.72736`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M2.91455 14.0911L4.33001 13.2729`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M10 16.5455C13.615 16.5455 16.5455 13.615 16.5455 10C16.5455 6.38509 13.615 3.45459 10 3.45459C6.38509 3.45459 3.45459 6.38509 3.45459 10C3.45459 13.615 6.38509 16.5455 10 16.5455Z`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,X.jsx)(`path`,{d:`M12.5854 9.77916L8.80545 7.59461C8.63363 7.49643 8.41272 7.61916 8.41272 7.81552V12.1846C8.41272 12.381 8.62545 12.5119 8.80545 12.4055L12.5854 10.221C12.7573 10.1228 12.7573 9.86916 12.5854 9.77098V9.77916Z`,fill:`currentColor`,stroke:`currentColor`,strokeWidth:1.67,strokeLinecap:`round`,strokeLinejoin:`round`})]})]}),$=18,ii=34,ai=Math.round(ii*30/46);function oi({collapsed:e,showCollapseToggle:t,showMobileCloseButton:n=!1,onCloseMobile:r,collapseToggleLabel:i,onCollapse:a,onExpand:o,showCollapsedExpandButton:s,isExtensionsActive:c,currentPath:l,activeBackendHealth:u,collapsedBackendPopoverOpen:d,setCollapsedBackendPopoverOpen:f,collapsedBackendPopoverRef:p,collapsedBackendCloseTimer:m,onOpenAddBackend:h,onOpenManageBackends:g}){let{t:_}=S(`openhands`),y=m;return(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,X.jsxs)(`div`,{className:Pe(e),children:[(0,X.jsxs)(`div`,{className:U(e&&t?Fe:`flex min-w-0 shrink-0 items-center`),children:[(0,X.jsx)(`div`,{className:U(e&&t&&`flex h-full w-full items-center justify-start pl-2.5 transition-opacity duration-150`,e&&s&&`opacity-0`),children:(0,X.jsx)(Tn,{logoWidth:ii,logoHeight:ai,logoClassName:`max-w-none`,className:U(je,`overflow-visible`)})}),e&&t?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":i,onClick:o,className:U(Ie,s?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`),children:(0,X.jsx)(v,{width:14,height:14})}):null]}),!e&&t?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-collapse-toggle`,"aria-pressed":e,"aria-label":i,onClick:a,className:U(`hidden md:inline-flex ml-auto`,Ne,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(M,{width:14,height:14})}):null,!e&&n?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-drawer-close`,onClick:r,"aria-label":_(C.SIDEBAR$CLOSE_MENU),className:U(`inline-flex ml-auto`,Ne,`text-[var(--oh-muted)] hover:text-white hover:bg-[var(--oh-surface-raised)]`),children:(0,X.jsx)(M,{width:14,height:14})}):null]}),(0,X.jsxs)(`nav`,{className:J(e),children:[(0,X.jsx)(Hn,{collapsed:e}),(0,X.jsx)(ze,{to:`/conversations`,end:!0,label:_(C.SIDEBAR$NEW_CHAT),testId:`sidebar-conversations-link`,collapsed:e,icon:(0,X.jsx)(le,{width:$,height:$})}),(0,X.jsx)(ze,{to:`/customize`,label:_(C.NAV$CUSTOMIZE),testId:`sidebar-skills-link`,collapsed:e,forceActive:c,icon:(0,X.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:$,height:$,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,X.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,X.jsx)(`path`,{d:`m7 16.5-4.74-2.85`}),(0,X.jsx)(`path`,{d:`m7 16.5 5-3`}),(0,X.jsx)(`path`,{d:`M7 16.5v5.17`}),(0,X.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,X.jsx)(`path`,{d:`m17 16.5-5-3`}),(0,X.jsx)(`path`,{d:`m17 16.5 4.74-2.85`}),(0,X.jsx)(`path`,{d:`m17 16.5v5.17`}),(0,X.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,X.jsx)(`path`,{d:`M12 8 7.26 5.15`}),(0,X.jsx)(`path`,{d:`m12 8 4.74-2.85`}),(0,X.jsx)(`path`,{d:`M12 13.5V8`})]})}),(0,X.jsx)(ze,{to:`/automations`,label:_(C.SIDEBAR$AUTOMATIONS),testId:`sidebar-automations-link`,collapsed:e,icon:(0,X.jsx)(ri,{width:$,height:$})})]}),(0,X.jsx)(ni,{collapsed:e}),e&&t?(0,X.jsxs)(`nav`,{className:U(J(e),`mt-auto pb-2 cursor-pointer`),children:[(0,X.jsx)(Be,{content:_(C.SIDEBAR$SETTINGS),placement:`right`,children:(0,X.jsxs)(Ae,{to:`/settings`,"data-testid":`collapsed-settings-link`,"aria-label":_(C.SIDEBAR$SETTINGS),className:Me({collapsed:!0}),children:[(0,X.jsx)(Re,{active:l.startsWith(`/settings`),children:(0,X.jsx)(H,{width:$,height:$})}),(0,X.jsx)(`span`,{className:Le(!0),children:_(C.SIDEBAR$SETTINGS)})]})}),(0,X.jsxs)(`div`,{className:`relative`,ref:p,onMouseEnter:()=>{y.current&&=(clearTimeout(y.current),null),f(!0)},onMouseLeave:()=>{y.current=setTimeout(()=>f(!1),150)},children:[(0,X.jsxs)(`button`,{type:`button`,"data-testid":`collapsed-backend-selector-link`,"aria-label":_(C.BACKEND$MANAGE),"aria-expanded":d,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onMouseUp:e=>e.stopPropagation(),className:U(Me({collapsed:!0}),`relative`),children:[(0,X.jsx)(Re,{active:d,children:(0,X.jsxs)(`span`,{className:`relative inline-flex size-[18px] shrink-0 items-center justify-center`,children:[(0,X.jsx)(xt,{isConnected:u?.isConnected??null,className:`absolute -left-0.5 -top-0.5 z-[1] pointer-events-none`}),(0,X.jsx)(xn,{width:$,height:$})]})}),(0,X.jsx)(`span`,{className:Le(!0),children:_(C.BACKEND$MANAGE)})]}),d?(0,X.jsx)(`div`,{className:`absolute bottom-[-4px] left-full pl-2.5 z-40 w-[272px]`,onClick:e=>e.stopPropagation(),children:(0,X.jsx)(zn,{sidebarCollapsed:e,hideTrigger:!0,defaultOpen:!0,openUpward:!0,onSelectOption:()=>f(!1),onOpenAddBackend:h,onOpenManageBackends:g})}):null]})]}):null,e?null:(0,X.jsx)(`div`,{className:U(`flex flex-col items-stretch max-w-none box-border shrink-0`,`-ml-2.5 w-[calc(100%+0.625rem)] border-t border-[var(--oh-border)] pt-2 px-2.5`),children:(0,X.jsx)(zn,{sidebarCollapsed:e,openUpward:!0})})]})}var si=Y.lazy(()=>n(()=>import(`./settings-modal-DfTcL-mV.js`).then(e=>({default:e.SettingsModal})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]))),ci=Y.lazy(()=>n(()=>import(`./add-backend-modal-DljoP9lc.js`).then(e=>e.n).then(e=>({default:e.AddBackendModal})),__vite__mapDeps([39,1,2,40,28,6,29,8,30,3,10,12,13,7,9,4,41,20,15,21,25,23,42,26,43,44,45,11,35,36,37,34,32,33,24]))),li=Y.lazy(()=>n(()=>import(`./manage-backends-modal-C8FJQIZR.js`).then(e=>e.n).then(e=>({default:e.ManageBackendsModal})),__vite__mapDeps([46,1,2,28,6,29,8,30,3,10,12,13,7,9,47,48,49,4,40,41,20,15,21,25,23,42,26,43,44,45,11,35,36,37,34,32,33,24,50,51]))),ui=250;function di(){let{t:e}=S(`openhands`),{currentPath:t}=De(),{data:n}=Ee(),{data:r,error:i,isError:a,isFetching:o}=St(),{backends:s,active:c}=O(),l=be(s)[c.backend.id],u=fe(e=>e.collapsed),d=fe(e=>e.setCollapsed),[f,p]=Y.useState(!1),[m,h]=Y.useState(!1),g=Y.useRef(null),[_,v]=Y.useState(!1),[y,b]=Y.useState(!1),[x,T]=Y.useState(!1),E=Y.useRef(!1),[,D]=Y.useReducer(e=>e+1,0),{isOpen:k,close:A}=Rt(),[j,M]=Y.useState(!1),[N,P]=Y.useState(!1),F=Ut(()=>h(!1)),I=Ct(i);Y.useEffect(()=>{A()},[t,A]),Y.useEffect(()=>{if(k){M(!0);let e=requestAnimationFrame(()=>{P(!0)});return()=>cancelAnimationFrame(e)}P(!1);let e=window.setTimeout(()=>{M(!1)},ui);return()=>window.clearTimeout(e)},[k]),Y.useEffect(()=>{if(!k)return;let e=e=>{e.key===`Escape`&&A()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[k,A]),Y.useEffect(()=>{t===`/settings`?p(!1):!o&&a&&I!==404?w(e(C.SETTINGS$FETCH_ERROR)):I===404&&!n?.feature_flags?.hide_llm_settings&&p(!0)},[t,o,a,I,n?.feature_flags?.hide_llm_settings,e]);let ee=e(u?C.SIDEBAR$EXPAND:C.SIDEBAR$COLLAPSE),L=Y.useCallback(e=>{if(!u)return;let t=e.target;t instanceof HTMLElement&&(t.closest(`a,button,input,textarea,select,[role='button'],[role='link']`)||d(!1))},[u,d]),R={collapseToggleLabel:ee,onCollapse:Y.useCallback(()=>{T(!1),E.current=!0,D(),d(!0),window.setTimeout(()=>{E.current=!1,D()},250)},[d]),onExpand:()=>d(!1),showCollapsedExpandButton:u&&x&&!E.current,isExtensionsActive:t===`/customize`||t.startsWith(`/skills`)||t===`/plugins`||t===`/mcp`,currentPath:t,activeBackendHealth:l,collapsedBackendPopoverOpen:m,setCollapsedBackendPopoverOpen:h,collapsedBackendPopoverRef:F,collapsedBackendCloseTimer:g,onOpenAddBackend:()=>v(!0),onOpenManageBackends:()=>b(!0)};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`aside`,{"aria-label":e(C.SIDEBAR$NAVIGATION_LABEL),"data-collapsed":u?`true`:`false`,onClick:L,onMouseEnter:()=>{u&&T(!0)},onMouseLeave:()=>{T(!1)},className:U(`max-md:hidden flex bg-base flex-col min-h-0 transition-[width,min-width] duration-200`,`md:border-r md:border-[var(--oh-border)] md:h-full`,u?`md:w-[60px] md:min-w-[60px] md:px-2.5`:`md:w-[300px] md:min-w-[300px] pb-2 md:pl-2.5 md:pr-0`,t===`/`&&`md:pb-3`),children:(0,X.jsx)(oi,{collapsed:u,showCollapseToggle:!0,...R})}),j?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:U(`fixed inset-0 z-40 bg-black/50 md:hidden`,`transition-opacity ease-in-out motion-reduce:transition-none`,N?`opacity-100`:`pointer-events-none opacity-0`),style:{transitionDuration:`${ui}ms`},onClick:A,"aria-hidden":!N}),(0,X.jsx)(`aside`,{"aria-label":e(C.SIDEBAR$NAVIGATION_LABEL),"data-testid":`sidebar-mobile-drawer`,"aria-hidden":!N,className:U(`fixed inset-y-0 left-0 z-50 flex min-h-0 w-[min(300px,85vw)] flex-col bg-base`,`border-r border-[var(--oh-border)] pb-2 pl-2.5 pr-0 md:hidden`,`transition-transform ease-in-out motion-reduce:transition-none`,N?`translate-x-0`:`-translate-x-full`),style:{transitionDuration:`${ui}ms`},children:(0,X.jsx)(oi,{collapsed:!1,showCollapseToggle:!1,showMobileCloseButton:!0,onCloseMobile:A,...R})})]}):null,f&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(si,{settings:r,onClose:()=>p(!1)})}),_&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(ci,{onClose:()=>v(!1)})}),y&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(li,{onClose:()=>b(!1)})})]})}var fi=`/settings`,pi=`/customize`,mi=[`/skills`,`/mcp`,`/plugins`];function hi(e){return e===fi?{mode:`menu`}:e.startsWith(`${fi}/`)&&e.length>9?{mode:`back`,backTo:fi,backLabelKey:C.SETTINGS$TITLE}:e===pi?{mode:`menu`}:mi.some(t=>e===t||e.startsWith(`${t}/`))?{mode:`back`,backTo:pi,backLabelKey:C.NAV$CUSTOMIZE}:{mode:`menu`}}function gi(){let{t:e}=S(`openhands`),{currentPath:t,navigate:n}=De(),r=hi(t);return(0,X.jsxs)(`header`,{className:`flex md:hidden h-12 shrink-0 items-center gap-2 px-2.5`,"aria-label":e(C.SIDEBAR$NAVIGATION_LABEL),children:[(0,X.jsx)(Vt,{}),r.mode===`back`&&r.backTo?(0,X.jsx)(`button`,{type:`button`,"data-testid":`sidebar-mobile-back-button`,onClick:()=>n(r.backTo),"aria-label":e(r.backLabelKey??C.COMMON$BACK),className:zt,children:(0,X.jsx)(M,{size:20,className:It,"aria-hidden":!0,strokeWidth:2})}):null]})}var _i=()=>{let e=G(),{mutate:t}=ln();return{migrateUserConsent:Y.useCallback(async n=>{let r=localStorage.getItem(`analytics-consent`);r&&(n?.handleAnalyticsWasPresentInLocalStorage(),t({user_consents_to_analytics:r===`true`},{onSuccess:()=>{cn(e,r===`true`)}}),localStorage.removeItem(`analytics-consent`))},[e,t])}};function vi(){let{backend:e}=D(),t=e.kind===`local`,{data:n}=Wt(),{mutate:r,isPending:i}=pe(),a=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{a.current=null},[e.id]),(0,Y.useEffect)(()=>{if(!t||i||!n)return;let{profiles:e,active_profile:o}=n,s=o!=null&&e.some(e=>e.name===o);if(e.length===0||s){a.current=null;return}let c=e.find(e=>e.api_key_set)??e[0];a.current!==c.name&&(a.current=c.name,r(c.name))},[t,n,i,r])}var yi=()=>{let e=G(),{data:t}=St();Y.useEffect(()=>{!e||t===void 0||cn(e,t.user_consents_to_analytics===!0)},[e,t])},bi=()=>{let e=G(),{backend:t}=D(),{data:n}=St(),r=ht(),i=Y.useRef(!1),a=t.kind===`cloud`,o=a?r[t.id]?.userId??null:null,s=n?.user_consents_to_analytics;Y.useEffect(()=>{if(!(!e||!a||n===void 0)){if(s===!0&&o){e.identify(o,{email:n.email??n.git_user_email??void 0}),i.current=!0;return}(s===!1||i.current&&!o)&&(e.reset(),i.current=!1)}},[e,a,s,o,n?.email,n])};function xi(e){switch(e){case W.RUNNING:return`🟢`;case W.FINISHED:case W.IDLE:case W.WAITING_FOR_CONFIRMATION:return`✅`;case W.PAUSED:return`⚪`;case W.ERROR:case W.STUCK:return`🔴`;default:return null}}var Si=`OpenHands`,Ci=()=>{let{conversationId:e}=f(),{data:t}=un(e??null),n=dn(e=>e.execution_status),r=t?.title,i=e&&r?`${r} | ${Si}`:Si;if(!e)return i;let a=xi(n??t?.execution_status??null);return a?`${a} ${i}`:i};function wi({children:e}){let{pathname:t}=g(),n=u(),r=d(),i=h(),a=Y.useMemo(()=>{for(let e=i.length-1;e>=0;--e){let t=i[e]?.params?.conversationId;if(t)return t}return null},[i]);return(0,X.jsx)(Oe,{value:Y.useMemo(()=>({currentPath:t,conversationId:a,isNavigating:!!r.location,navigate:(e,t)=>n(e,t)}),[t,a,r.location,n]),children:e})}var Ti=Y.lazy(()=>n(()=>import(`./environment-switch-overlay-DZQfRGTx.js`),__vite__mapDeps([52,1,2,3,4,53]))),Ei=Y.lazy(()=>n(()=>import(`./alert-banner-Bpf2NQJq.js`).then(e=>({default:e.AlertBanner})),__vite__mapDeps([54,1,2,55,3,4,56,57,12,13,26,58,59,17]))),Di=Y.lazy(()=>n(()=>import(`./command-menu-D-JV3Wqm.js`).then(e=>({default:e.CommandMenu})),__vite__mapDeps([60,1,2,30,61,62,63,64,65,66,67,3,4,12,13,26]))),Oi=p(function(){let e=c(),{t}=S(`openhands`);return s(e)?(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:e.status}),(0,X.jsx)(`p`,{children:e.statusText}),(0,X.jsx)(`pre`,{children:e.data instanceof Object?JSON.stringify(e.data):e.data})]}):e instanceof Error?(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`h1`,{children:t(C.ERROR$GENERIC)}),(0,X.jsx)(`pre`,{children:e.message})]}):(0,X.jsx)(`div`,{children:(0,X.jsx)(`h1`,{children:t(C.ERROR$UNKNOWN)})})}),ki=l(function(){let e=g(),t=Ci(),{data:n}=St(),{migrateUserConsent:r}=_i(),i=Ee();if(yi(),bi(),vi(),Y.useEffect(()=>{n?.language&&T.changeLanguage(n.language)},[n?.language]),Y.useEffect(()=>{r()},[r]),i.isLoading)return(0,X.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-base`,children:(0,X.jsx)(q,{size:`large`})});let a=/^\/conversations\/[^/]+/.test(e.pathname),o=ne(e.search);return(0,X.jsx)(wi,{children:(0,X.jsxs)(Mt,{children:[(0,X.jsxs)(`div`,{"data-testid":`root-layout`,className:`h-screen lg:min-w-5xl flex flex-col md:flex-row bg-base overflow-hidden p-0`,children:[(0,X.jsx)(`title`,{children:t}),(0,X.jsx)(di,{}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col w-full min-w-0 h-full gap-3`,children:[a?null:(0,X.jsx)(gi,{}),i.data&&(i.data.maintenance_start_time||i.data.faulty_models&&i.data.faulty_models.length>0||i.data.error_message)&&(0,X.jsx)(Y.Suspense,{fallback:null,children:(0,X.jsx)(Ei,{maintenanceStartTime:i.data.maintenance_start_time,faultyModels:i.data.faulty_models,errorMessage:i.data.error_message,updatedAt:i.data.updated_at})}),(0,X.jsx)(`div`,{id:`root-outlet`,className:`relative flex-1 overflow-auto px-0 custom-scrollbar`,children:(0,X.jsx)(m,{})})]})]}),(0,X.jsxs)(Y.Suspense,{fallback:null,children:[(0,X.jsx)(Ti,{}),(0,X.jsx)(Di,{})]}),o?(0,X.jsx)(V,{}):null]})})});export{Oi as ErrorBoundary,ki as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js","assets/rolldown-runtime-BFRubm34.js","assets/manage-backends-modal-C8FJQIZR.js","assets/vendor-styling-CI0PQ3ab.js","assets/active-backend-context-B3umL5R-.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js","assets/createLucideIcon-CVAsW2Yo.js","assets/declaration-gq8V5eTU.js","assets/agent-server-client-options-DVLRd9sw.js","assets/utils-D3U3rlqr.js","assets/common-Dh7OqABE.js","assets/useQuery-CpjHYtZc.js","assets/suspense-X5dBsJzn.js","assets/pencil-Dj2XjKmI.js","assets/refresh-cw-DM82EIyx.js","assets/trash-2-Be_7y3Mn.js","assets/useTranslation-CDRCKC9-.js","assets/backend-form-modal-DSbrafX2.js","assets/segmented-toggle-DyQqPhoD.js","assets/brand-button-vMVuyDXu.js","assets/form-control-classes-ChpNBe9n.js","assets/settings-input-bD6npsDm.js","assets/modal-backdrop-zVwfOJZr.js","assets/modal-body-DouOE5KH.js","assets/modal-close-button-B6CfxxJj.js","assets/navigation-context-DPs2G0X8.js","assets/use-backends-health-DkC7tKkC.js","assets/useQueries-CRzaAqzH.js","assets/organization-service.api-CnynNoT-.js","assets/proxy-CHmFkV16.js","assets/use-tracking-2ZwQwpg_.js","assets/vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~nn5zty47-Zl0G1QCy.js","assets/use-settings-BReAMxCG.js","assets/settings-service.api-K4ncGlBv.js","assets/settings-mQUckT0g.js","assets/modal-classes-Cf-4tbHz.js","assets/confirmation-modal-BGLu6XJN.js","assets/use-cloud-current-user-id-Dm99wXp2.js","assets/api-key-entry-screen-CWEHcPJA.js","assets/onboarding-modal-CP_WxDC9.js","assets/recommended-automations-launcher-CVEF_1pc.js","assets/vendor~root-layout~home~mcp~automations-list~onboarding-modal-CXyYYvYh.js","assets/useMutationState-BUab8Kxr.js","assets/install-server-modal-BIugLhVB.js","assets/useMutation-DCE9RcgK.js","assets/bot-D7eUAuSB.js","assets/v4-DbCkTSoU.js","assets/secrets-service-CZYjNxFw.js","assets/styled-tooltip-CgX2oRaK.js","assets/skill-card-pill-row-eTIkE4nz.js","assets/extension-module-card-classes-9V3J9J_b.js","assets/circle-plus-check-toggle-C5YxjxvI.js","assets/checkmark-h7udgXMM.js","assets/x-mark-Batp6gXa.js","assets/use-create-conversation-CTsvZ96U.js","assets/use-agent-profiles-DEAMFp-W.js","assets/agent-server-conversation-service.api-D_ZvtJjG.js","assets/vendor~root-layout~home~conversation-panel~conversation~launch~skills-settings~automations-~ki5qnp0d-rV6d1Iv_.js","assets/vendor~root-layout~home~conversation-panel~conversation~launch~settings~settings-index~agen~enjl5xdm-mMKDm94D.js","assets/profiles-service.api-CeYEmSM3.js","assets/llm-subscription-service-CKyaV24y.js","assets/llm-subscription-DtsX5Lhg.js","assets/acp-providers-Djl6vNn-.js","assets/plugins-management-service-BAp70KN7.js","assets/use-llm-profiles-BMhPDlwQ.js","assets/conversation-store-LptbOvKa.js","assets/middleware-DYHYNAnP.js","assets/react-DPDgL6du.js","assets/conversation-local-storage-F6zVMM--.js","assets/chat-send-button-B_jc5z5C.js","assets/check-Bvi71siz.js","assets/loader-circle-BEykUKYG.js","assets/llm-settings-kU5v0H1Z.js","assets/back-nav-button-CUS2mi-U.js","assets/navigation-link-D8hfwvxI.js","assets/copy-3JCw_XFB.js","assets/external-link-D2zJjE9G.js","assets/vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js","assets/model-selector-BOj1wBlq.js","assets/combobox-caret-DoObzqf4.js","assets/sdk-settings-schema-Cv7M9eSe.js","assets/dist-CodhvuAP.js","assets/map-provider-BM2SJarp.js","assets/ellipsis-button-C5Z-tPFp.js","assets/dropdown-classes-DJSXeLqc.js","assets/use-can-manage-org-profiles-BEo0peGn.js","assets/base-modal-BuF2f0YL.js","assets/sdk-section-page-CbLrVUa3.js","assets/switch-skeleton-DqQwalyu.js","assets/schema-field-xUr6rDd6.js","assets/settings-dropdown-input-BjunGXJb.js","assets/settings-switch-5cuxl8Dc.js","assets/toggle-switch-2j5wwR85.js","assets/use-is-authed-_dhQ2Xuj.js","assets/typography-D8mHDeNG.js","assets/use-save-settings-D1HoCDbn.js","assets/copy-to-clipboard-button-CaR52OnA.js","assets/copy-BLmGeJcd.js","assets/loading-spinner-BLdswi6q.js","assets/settings-section-header-context-COMOIaxV.js","assets/u-check-circle-BqoIxNz_.js","assets/u-edit-DJ90xc8Z.js","assets/settings-list-classes-Dp_OgzN0.js","assets/use-acp-credential-form-EtnbtYt0.js","assets/use-create-secret-D5O5qdWC.js","assets/openhands-logo-bcNw5bkY.js","assets/use-activate-agent-profile-WaAZYz4E.js","assets/use-save-agent-profile-CLMmbx_X.js","assets/terminal-BuLtIrb9.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,St as n,bt as r}from"./vendor-styling-CI0PQ3ab.js";import{L as i,M as a,N as o,a as s,c,d as l,f as u,i as d,k as f}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js";import{n as p}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js";import{t as m}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~d1e18dtv-5Q6lQJdE.js";import{t as ee}from"./useTranslation-CDRCKC9-.js";import{t as h}from"./declaration-gq8V5eTU.js";import{r as g}from"./providers-BxCuC9bZ.js";import{d as _,g as v,k as y,m as b,r as x,v as S}from"./active-backend-context-B3umL5R-.js";import{D as C,O as te,T as ne,u as w}from"./agent-server-client-options-DVLRd9sw.js";import{a as re,n as ie,t as ae}from"./use-backends-health-DkC7tKkC.js";import{t as oe}from"./modal-backdrop-zVwfOJZr.js";import{n as se}from"./modal-body-DouOE5KH.js";import{n as ce,r as T}from"./base-modal-BuF2f0YL.js";import{t as E}from"./brand-button-vMVuyDXu.js";import{t as D}from"./loading-spinner-BLdswi6q.js";import{t as O}from"./use-config-CHzNIHpv.js";import{t as k}from"./use-onboarding-completion-C_Swglzp.js";import{t as A}from"./navigation-context-DPs2G0X8.js";import{i as j,n as M}from"./color-themes-DPBzNtVg.js";var N=e(t(),1),P={name:`@openhands/agent-canvas`,version:`1.3.0`,description:`Agent Canvas UI for OpenHands - run AI coding agents with a visual interface`,license:`MIT`,private:!1,type:`module`,repository:{type:`git`,url:`https://github.com/OpenHands/agent-canvas`},homepage:`https://github.com/OpenHands/agent-canvas#readme`,bugs:{url:`https://github.com/OpenHands/agent-canvas/issues`},bin:{"agent-canvas":`bin/agent-canvas.mjs`},engines:{node:`>=22.12.0`},dependencies:{"@heroui/react":`2.8.10`,"@microlink/react-json-view":`1.31.20`,"@monaco-editor/react":`4.7.0`,"@openhands/extensions":`0.9.0`,"@openhands/typescript-client":`1.32.1`,"@react-router/node":`7.17.0`,"@react-router/serve":`7.17.0`,"@tailwindcss/vite":`4.2.4`,"@tanstack/react-query":`5.100.9`,"@types/shell-quote":`1.7.5`,"@uidotdev/usehooks":`2.4.1`,"@xterm/addon-fit":`0.11.0`,"@xterm/xterm":`6.0.0`,axios:`1.16.0`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,downshift:`9.3.2`,"framer-motion":`12.38.0`,httpxy:`0.5.3`,i18next:`26.0.8`,"i18next-browser-languagedetector":`8.2.1`,"i18next-http-backend":`4.0.0`,isbot:`5.1.39`,"lucide-react":`1.14.0`,"monaco-editor":`0.55.1`,"posthog-js":`1.372.6`,react:`19.2.5`,"react-dom":`19.2.5`,"react-hot-toast":`2.6.0`,"react-i18next":`17.0.6`,"react-icons":`5.6.0`,"react-markdown":`10.1.0`,"react-router":`7.17.0`,"react-syntax-highlighter":`16.1.1`,"rehype-raw":`7.0.0`,"rehype-sanitize":`6.0.0`,"remark-breaks":`4.0.0`,"remark-gfm":`4.0.1`,"shell-quote":`1.8.4`,sirv:`3.0.2`,"sirv-cli":`3.0.1`,"socket.io-client":`4.8.3`,"tailwind-merge":`3.5.0`,"tailwind-scrollbar":`4.0.2`,"unist-util-visit":`5.1.0`,uuid:`14.0.0`,vite:`8.0.10`,winston:`3.19.0`,"winston-daily-rotate-file":`5.0.0`,zustand:`5.0.12`},scripts:{dev:`node --env-file-if-exists=.env scripts/dev-with-automation.mjs`,"dev:static":`node --env-file-if-exists=.env scripts/dev-static.mjs`,"dev:extra-backend":`node --env-file-if-exists=.env scripts/dev-extra-backend.mjs`,"dev:minimal":`node --env-file-if-exists=.env scripts/dev-safe.mjs`,"dev:frontend":`npm run make-i18n && cross-env VITE_MOCK_API=false react-router dev`,"dev:mock":`npm run make-i18n && cross-env VITE_MOCK_API=true react-router dev`,build:`npm run build:app`,"build:mock":`npm run make-i18n && cross-env VITE_MOCK_API=true react-router build`,start:`npx sirv-cli build/ --single`,test:`npm run make-i18n && vitest run`,"test:e2e":`playwright test --pass-with-no-tests`,"test:e2e:live":`node --env-file-if-exists=.env tests/e2e/live/scripts/run-live-e2e.mjs`,"test:e2e:mock-llm":`playwright test --config=playwright.mock-llm.config.ts`,"test:e2e:mock-llm:docker":`playwright test --config=playwright.mock-llm-docker.config.ts`,"test:coverage":`npm run make-i18n && vitest run --coverage`,dev_wsl:`VITE_WATCH_USE_POLLING=true vite`,preview:`vite preview`,"make-i18n":`node scripts/make-i18n-translations.cjs`,prelint:`npm run make-i18n`,lint:`npm run typecheck && eslint src && prettier --check src/**/*.{ts,tsx}`,"lint:fix":`eslint src --fix && prettier --write src/**/*.{ts,tsx}`,prepare:`husky`,typecheck:`react-router typegen && tsc`,"typecheck:staged":`react-router typegen && npx tsc --noEmit --skipLibCheck`,"check-translation-completeness":`node scripts/check-translation-completeness.cjs`,"build:app":`npm run make-i18n && react-router build`,"build:lib":`npm run make-i18n && react-router typegen && cross-env BUILD_LIB=true VITE_APP_ENV=production vite build && tsc -p tsconfig.lib.json`,"build:docker":`node scripts/docker-build.mjs`,"example:acp-docker:env":`node scripts/gen-acp-docker-env.mjs`},"lint-staged":{"src/**/*.{ts,tsx,js}":[`eslint --fix`,`prettier --write`],"src/**/*.{ts,tsx}":[`node scripts/run-staged-typecheck.mjs`],"src/**/*":[`npm run check-translation-completeness`]},devDependencies:{"@eslint/eslintrc":`3.3.1`,"@eslint/js":`9.39.4`,"@mswjs/socket.io-binding":`0.2.0`,"@playwright/test":`1.59.1`,"@react-router/dev":`7.17.0`,"@tailwindcss/typography":`0.5.19`,"@tanstack/eslint-plugin-query":`5.100.9`,"@testing-library/dom":`10.4.1`,"@testing-library/jest-dom":`6.9.1`,"@testing-library/react":`16.3.2`,"@testing-library/user-event":`14.6.1`,"@types/mdast":`4.0.4`,"@types/node":`25.6.0`,"@types/react":`19.2.14`,"@types/react-dom":`19.2.3`,"@types/react-syntax-highlighter":`15.5.13`,"@typescript-eslint/eslint-plugin":`8.59.2`,"@typescript-eslint/parser":`8.59.2`,"@vercel/react-router":`1.3.0`,"@vitest/coverage-v8":`4.1.5`,"cross-env":`10.1.0`,eslint:`9.39.4`,"eslint-config-prettier":`10.1.8`,"eslint-import-resolver-typescript":`4.4.4`,"eslint-plugin-i18next":`6.1.4`,"eslint-plugin-import-x":`4.16.2`,"eslint-plugin-jsx-a11y":`6.10.2`,"eslint-plugin-prettier":`5.5.5`,"eslint-plugin-react":`7.37.5`,"eslint-plugin-react-hooks":`7.1.1`,"eslint-plugin-unused-imports":`4.4.1`,globals:`16.5.0`,husky:`9.1.7`,jsdom:`29.1.1`,"lint-staged":`16.4.0`,msw:`2.14.2`,"postcss-prefix-selector":`2.1.1`,prettier:`3.8.3`,tailwindcss:`4.2.4`,typescript:`6.0.3`,"vite-plugin-svgr":`5.2.0`,vitest:`4.1.5`},packageManager:`npm@10.5.0`,volta:{node:`22.12.0`},msw:{workerDirectory:[`public`]},overrides:{"@vercel/static-config":{ajv:`8.20.0`},dompurify:`3.4.7`},main:`./dist/index.cjs`,module:`./dist/index.js`,types:`./dist/index.d.ts`,files:[`dist`,`bin`,`build`,`config`,`scripts`,`tools`],exports:{".":{types:`./dist/index.d.ts`,import:`./dist/index.js`,require:`./dist/index.cjs`},"./browser":{types:`./dist/components/browser/index.d.ts`,import:`./dist/components/browser/index.js`,require:`./dist/components/browser/index.cjs`},"./conversation":{types:`./dist/components/conversation/index.d.ts`,import:`./dist/components/conversation/index.js`,require:`./dist/components/conversation/index.cjs`},"./files":{types:`./dist/components/files/index.d.ts`,import:`./dist/components/files/index.js`,require:`./dist/components/files/index.cjs`},"./settings":{types:`./dist/components/settings/index.d.ts`,import:`./dist/components/settings/index.js`,require:`./dist/components/settings/index.cjs`},"./sidebar":{types:`./dist/components/sidebar/index.d.ts`,import:`./dist/components/sidebar/index.js`,require:`./dist/components/sidebar/index.cjs`},"./terminal":{types:`./dist/components/terminal/index.d.ts`,import:`./dist/components/terminal/index.js`,require:`./dist/components/terminal/index.cjs`},"./i18n":{types:`./dist/i18n/index.d.ts`,import:`./dist/i18n/index.js`,require:`./dist/i18n/index.cjs`},"./package.json":`./package.json`},peerDependencies:{react:`19.2.5`,"react-dom":`19.2.5`,"react-router":`7.17.0`}},F=`openhands-telemetry-consent`,I=`openhands-telemetry-first-use`,L=`openhands-telemetry-session`,R=`phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK`,z=`https://z.openhands.dev`,B=`https://us.posthog.com`,V=!1,H=null;function U(){return typeof window<`u`&&typeof localStorage<`u`}async function W(){if(!U())return null;if(H)return H;try{let{default:e}=await n(async()=>{let{default:e}=await import(`./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~skills-set~k6tszsdc-Bb-xMtbv.js`).then(e=>e.n);return{default:e}},__vite__mapDeps([0,1]));return H=e,e}catch{return null}}function G(){return typeof process<`u`&&{}?.DO_NOT_TRACK===`1`||typeof navigator<`u`&&(navigator.doNotTrack===`1`||typeof window<`u`&&window.doNotTrack===`1`)}async function K(e=!1){if(V)return H;let t=await W();return t?(t.init(R,{api_host:z,ui_host:B,opt_out_capturing_by_default:!e,capture_pageview:!1,autocapture:!1,persistence:`localStorage`,disable_session_recording:!0,loaded:e=>{e.register({package_name:P.name,package_version:P.version})}}),V=!0,t):null}function q(){if(!U())return`pending`;if(G())return`denied`;try{let e=localStorage.getItem(F);if(e===`granted`||e===`denied`)return e}catch{}return`pending`}async function J(e){if(U())try{localStorage.setItem(F,e);let t=await K();if(!t)return;e===`granted`?t.opt_in_capturing():t.opt_out_capturing()}catch{}}function Y(){return q()===`granted`}function X(){if(!U())return!1;try{return localStorage.getItem(I)===`true`}catch{return!1}}function le(){if(U())try{localStorage.setItem(I,`true`)}catch{}}async function ue(){if(G()||X())return;let e=await K(!0);e&&((e.has_opted_out_capturing?.()??!1)&&e.opt_in_capturing(),e.capture(`canvas_install`,{platform:typeof navigator<`u`?navigator.platform:`unknown`,user_agent:typeof navigator<`u`?navigator.userAgent:`unknown`,referrer:typeof document<`u`?document.referrer:``,url_origin:typeof window<`u`?window.location.origin:``,embedded:typeof window<`u`&&window.self!==window.top}),le(),q()!==`granted`&&e.opt_out_capturing())}function de(){if(!U())return!1;try{return sessionStorage.getItem(L)===`true`}catch{return!1}}function fe(){if(U())try{sessionStorage.setItem(L,`true`)}catch{}}async function pe(){if(!Y()||de())return;let e=await K();e&&(e.capture(`canvas_new_session`,{is_first_use:!X()}),fe())}async function me(e,t={}){if(!Y())return;let n=await K();n&&n.capture(e,t)}async function he(){if(U())try{localStorage.removeItem(F),localStorage.removeItem(I),sessionStorage.removeItem(L),V&&H&&H.reset()}catch{}}function ge(){let[e,t]=(0,N.useState)(()=>q()),n=(0,N.useRef)(!1);(0,N.useEffect)(()=>{n.current||(n.current=!0,ue())},[]),(0,N.useEffect)(()=>{e===`granted`&&pe()},[e]);let r=(0,N.useCallback)(async()=>{await J(`granted`),t(`granted`)},[]),i=(0,N.useCallback)(async()=>{await J(`denied`),t(`denied`)},[]),a=(0,N.useCallback)((t,n)=>{e===`granted`&&me(t,n)},[e]),o=(0,N.useCallback)(()=>{he(),t(`pending`)},[]);return{consent:e,isEnabled:e===`granted`,showConsentPrompt:e===`pending`,grantConsent:r,denyConsent:i,track:a,clearData:o}}var Z=r();function _e({onChoice:e}){let{t,ready:n}=ee(`openhands`),{showConsentPrompt:r,grantConsent:i,denyConsent:a}=ge(),[o,s]=(0,N.useState)(!1);return(0,N.useEffect)(()=>{if(n&&r){let e=setTimeout(()=>s(!0),50);return()=>clearTimeout(e)}s(!1)},[n,r]),o?(0,Z.jsx)(oe,{elevated:!0,"aria-label":t(h.TELEMETRY$CONSENT_TITLE),children:(0,Z.jsx)(`form`,{"data-testid":`telemetry-consent-form`,onSubmit:t=>{t.preventDefault();let n=new FormData(t.currentTarget).get(`analytics`)===`on`;n?i():a(),e?.(n)},className:`flex flex-col gap-2`,children:(0,Z.jsxs)(se,{className:`border border-[var(--oh-border)]`,children:[(0,Z.jsx)(T,{title:t(h.TELEMETRY$CONSENT_TITLE)}),(0,Z.jsx)(ce,{children:t(h.TELEMETRY$CONSENT_DESCRIPTION)}),(0,Z.jsxs)(`label`,{className:`flex gap-2 items-center self-start text-sm cursor-pointer`,children:[(0,Z.jsx)(`input`,{name:`analytics`,type:`checkbox`,defaultChecked:!0,className:`w-4 h-4 cursor-pointer`}),t(h.TELEMETRY$SEND_ANONYMOUS_DATA)]}),(0,Z.jsx)(E,{testId:`confirm-telemetry-preferences`,type:`submit`,variant:`primary`,className:`w-full`,children:t(h.TELEMETRY$CONFIRM_PREFERENCES)})]})})}):null}function ve(){return N.useEffect(()=>{M(j())},[]),null}var ye=N.lazy(()=>n(()=>import(`./manage-backends-modal-C8FJQIZR.js`).then(e=>e.n).then(e=>({default:e.ManageBackendsModal})),__vite__mapDeps([2,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,0,34,35,36,37,38,39]))),be=N.lazy(()=>n(()=>import(`./api-key-entry-screen-CWEHcPJA.js`),__vite__mapDeps([40,1,3,4,5,6,7,8,9,10,11,12,18,19,13,14,20,21,22,23,24,25,26,27,28,29,30,31,32,33,0,34,35,36,37]))),xe=N.lazy(()=>n(()=>import(`./onboarding-modal-CP_WxDC9.js`).then(e=>e.n).then(e=>({default:e.OnboardingModal})),__vite__mapDeps([41,1,3,4,5,6,7,8,9,10,11,12,42,43,44,18,35,31,36,45,46,47,48,49,21,22,23,50,24,26,34,13,14,37,51,52,53,54,55,27,56,57,58,59,60,61,62,63,64,65,66,32,33,0,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,30,88,25,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,19,20,28,29,107,108,109,110])));function Q({children:e}){return(0,Z.jsxs)(`html`,{lang:`en`,children:[(0,Z.jsxs)(`head`,{children:[(0,Z.jsx)(`meta`,{charSet:`utf-8`}),(0,Z.jsx)(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1`}),(0,Z.jsx)(s,{}),(0,Z.jsx)(d,{})]}),(0,Z.jsxs)(`body`,{"data-agent-server-ui":``,className:`m-0`,children:[(0,Z.jsxs)(g,{contentClassName:`min-h-screen`,children:[(0,Z.jsx)(ve,{}),e,(0,Z.jsx)(m,{toastOptions:y}),(0,Z.jsx)(_e,{}),(0,Z.jsx)(`div`,{id:`modal-portal-exit`})]}),(0,Z.jsx)(u,{}),(0,Z.jsx)(l,{})]})]})}function $(){return(0,Z.jsx)(`main`,{className:`min-h-screen bg-base px-6 py-10 text-white`,children:(0,Z.jsx)(`div`,{className:`mx-auto flex min-h-screen max-w-6xl items-center justify-center`,children:(0,Z.jsx)(`div`,{className:`rounded-3xl border border-white/10 bg-base/80 px-8 py-10 shadow-2xl`,children:(0,Z.jsx)(D,{size:`large`})})})})}function Se(){let e=p(),t=N.useCallback(()=>{w()&&(b(),e.invalidateQueries({queryKey:_.WEB_CLIENT_CONFIG}))},[e]);return(0,Z.jsx)(`main`,{"data-testid":`agent-server-onboarding-screen`,className:`min-h-screen bg-base`,children:(0,Z.jsx)(N.Suspense,{fallback:null,children:(0,Z.jsx)(ye,{onClose:t,recoveryMode:!0})})})}function Ce({onClose:e}){let t=f(),n=a(),r=o(),i=t.pathname.match(/^\/conversations\/([^/]+)/)?.[1]??null;return(0,Z.jsx)(`main`,{"data-testid":`first-run-onboarding-screen`,className:`min-h-screen bg-base`,children:(0,Z.jsx)(A,{value:N.useMemo(()=>({currentPath:t.pathname,conversationId:i,isNavigating:!!r.location,navigate:(e,t)=>n(e,t)}),[i,t.pathname,n,r.location]),children:(0,Z.jsx)(N.Suspense,{fallback:(0,Z.jsx)($,{}),children:(0,Z.jsx)(xe,{onClose:e})})})})}var we=()=>[{rel:`icon`,type:`image/svg+xml`,href:`/favicon.svg`}],Te=()=>[{title:`OpenHands`},{name:`description`,content:`Let's Start Building!`}],Ee=i(function(){let e=C(),t=!!w()?.apiKey,n=e&&!t,{active:r}=x(),i=ne(),a=i!==null,o=a&&r.backend.kind===`cloud`&&te(r.backend.host,i),{isCompleted:s,markCompleted:l}=k(),u=a&&!o||!s,d=O({enabled:!n&&!u}),f=re(r.backend.kind===`cloud`?[r.backend]:[])[r.backend.id],p=r.backend.kind===`cloud`&&f?.isConnected===!1&&ie(f.lastError),m=r.backend.kind===`cloud`&&f?.disabled===!0&&ae(f.lastError);return u?(0,Z.jsx)(Ce,{onClose:l}):n||v(d.error)?(0,Z.jsx)(N.Suspense,{fallback:(0,Z.jsx)($,{}),children:(0,Z.jsx)(be,{})}):d.isPending||d.isLoading?(0,Z.jsx)($,{}):p||m||S(d.error)?(0,Z.jsx)(Se,{}):(0,Z.jsx)(c,{})});export{Q as Layout,Ee as default,we as links,Te as meta};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{t as r}from"./useQuery-CpjHYtZc.js";import{t as i}from"./useTranslation-CDRCKC9-.js";import{n as a}from"./active-backend-context-B3umL5R-.js";import{t as o}from"./utils-D3U3rlqr.js";import{p as s}from"./agent-server-client-options-DVLRd9sw.js";import{h as c,l}from"./form-control-classes-ChpNBe9n.js";import{n as u,t as d}from"./settings-input-bD6npsDm.js";import{t as f}from"./settings-service.api-K4ncGlBv.js";import{i as p}from"./llm-subscription-DtsX5Lhg.js";import{t as m}from"./use-is-authed-_dhQ2Xuj.js";import{f as h,g,h as _,m as v,p as y}from"./sdk-settings-schema-Cv7M9eSe.js";import{t as b}from"./settings-dropdown-input-BjunGXJb.js";import{r as x}from"./typography-D8mHDeNG.js";import{t as S}from"./settings-switch-5cuxl8Dc.js";var C=e(t(),1),w=`llm`;function T(e){if(!e?.sections)return e;let t=!1,n=e.sections.map(e=>{if(e.key!==w)return e;let n=new Set(e.fields.map(e=>e.key)),r=p.filter(e=>!n.has(e.key));return r.length===0?e:(t=!0,{...e,fields:[...e.fields,...r]})});return t?{...e,sections:n}:e}var E=(e,t)=>{let{data:n}=m(),{backend:i,orgId:o}=a(),c=!s(i),{data:l,error:u,isLoading:d,isFetching:p}=r({queryKey:[`settings-schema`,e,i.id,o,i.kind,i.host,i.apiKey],queryFn:e===`conversation`?f.getConversationSettingsSchema:f.getSettingsSchema,retry:!1,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,enabled:!t&&!!n&&c,meta:{disableToast:!0}}),h=(0,C.useMemo)(()=>e===`agent`?T(t):t,[t,e]),g=(0,C.useMemo)(()=>e===`agent`?T(l):l,[l,e]);return t?{data:h,error:null,isLoading:!1,isFetching:!1}:{data:g,error:u,isLoading:d,isFetching:p}},D=e=>E(`agent`,e),O=e=>E(`conversation`,e),k=n(),A={"llm.api_key":{textKey:`SCHEMA$LLM$API_KEY$HELP_TEXT`,linkTextKey:`SCHEMA$LLM$API_KEY$HELP_LINK_TEXT`,href:`https://docs.openhands.dev/usage/local-setup#getting-an-api-key`},"verification.critic_api_key":{textKey:`SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_TEXT`,linkTextKey:`SETTINGS$NAV_API_KEYS`,suffixKey:`SCHEMA$VERIFICATION$CRITIC_API_KEY$HELP_SUFFIX`,href:`https://app.all-hands.dev/settings/api-keys`,hideDescription:!0}};function j({field:e}){let{t}=i(`openhands`),n=A[e.key],r=v(t,e.key,e.description);return(0,k.jsxs)(k.Fragment,{children:[r&&!n?.hideDescription?(0,k.jsx)(x.Paragraph,{className:`text-tertiary-alt text-xs leading-5`,children:r}):null,n?(0,k.jsx)(g,{testId:`help-link-${e.key}`,text:t(n.textKey),linkText:t(n.linkTextKey),href:n.href,suffix:n.suffixKey?` ${t(n.suffixKey)}`:void 0,size:`settings`,linkColor:`white`}):null]})}var M=new Set([`verification.critic_api_key`]);function N(e){return e.choices.length>0}function P(e){return e.value_type===`boolean`&&!N(e)}function F(e){return e.value_type===`array`||e.value_type===`object`}function I(e){return e.key.endsWith(`url`)||e.key.endsWith(`_url`)}function L(e){return e.secret?`password`:e.value_type===`integer`||e.value_type===`number`?`number`:e.value_type===`string`&&I(e)?`url`:`text`}function R({field:e,value:t,isDisabled:n,onChange:r}){let{t:a}=i(`openhands`),s=_(a,e.key,e.label),f=h(e.key);return P(e)?(0,k.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,k.jsx)(S,{testId:`sdk-settings-${e.key}`,isToggled:!!t,isDisabled:n,onToggle:r,children:s}),(0,k.jsx)(`div`,{className:c,children:(0,k.jsx)(j,{field:e})})]}):N(e)?(0,k.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,k.jsx)(b,{testId:`sdk-settings-${e.key}`,name:e.key,label:s,items:e.choices.map(t=>({key:String(t.value),label:y(a,e.key,t.value,t.label)})),selectedKey:t===``?void 0:String(t),isClearable:!e.required,required:e.required,showOptionalTag:!e.required,isDisabled:n,onSelectionChange:e=>r(String(e??``))}),(0,k.jsx)(j,{field:e})]}):F(e)?(0,k.jsxs)(`label`,{className:`flex flex-col gap-2.5 w-full`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,k.jsx)(`span`,{className:`text-sm`,children:s}),e.required?null:(0,k.jsx)(u,{})]}),(0,k.jsx)(`textarea`,{"data-testid":`sdk-settings-${e.key}`,name:e.key,value:String(t??``),required:e.required,disabled:n,onChange:e=>r(e.target.value),className:o(l,`min-h-32 font-mono placeholder:italic`,`disabled:bg-[var(--oh-surface-raised)] disabled:border-[var(--oh-border-subtle)]`)}),(0,k.jsx)(j,{field:e})]}):(0,k.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,k.jsx)(d,{testId:`sdk-settings-${e.key}`,name:e.key,label:s,type:L(e),value:String(t??``),required:e.required,showOptionalTag:!e.required,isDisabled:n,onChange:r,className:`w-full`,min:f?.min,max:f?.max,step:f?.step}),(0,k.jsx)(j,{field:e})]})}export{O as i,R as n,D as r,M as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{t as r}from"./useTranslation-CDRCKC9-.js";import{t as i}from"./declaration-gq8V5eTU.js";import{v as a}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{A as o,P as s,j as ee}from"./active-backend-context-B3umL5R-.js";import{t as c}from"./utils-D3U3rlqr.js";import{_ as l}from"./form-control-classes-ChpNBe9n.js";import{t as te}from"./brand-button-vMVuyDXu.js";import{r as ne}from"./use-settings-BReAMxCG.js";import{t as re}from"./use-save-settings-D1HoCDbn.js";import{c as ie,l as ae,n as oe,o as se,r as u,s as d,t as f,u as ce}from"./sdk-settings-schema-Cv7M9eSe.js";import{i as le,n as ue,r as p,t as de}from"./schema-field-xUr6rDd6.js";import{n as m,t as h}from"./switch-skeleton-DqQwalyu.js";import{o as fe}from"./extension-module-card-classes-9V3J9J_b.js";var g=e(t(),1),_=n();function v(){return(0,_.jsx)(`div`,{className:`w-[250px] h-[20px] skeleton`})}function y(){return(0,_.jsxs)(`div`,{"data-testid":`app-settings-skeleton`,className:`px-11 py-9 flex flex-col gap-6`,children:[(0,_.jsx)(h,{}),(0,_.jsx)(m,{}),(0,_.jsx)(m,{}),(0,_.jsx)(m,{}),(0,_.jsx)(v,{}),(0,_.jsx)(h,{}),(0,_.jsx)(h,{}),(0,_.jsx)(m,{})]})}var b=(e,t)=>c(`w-fit px-2 py-2 text-sm cursor-pointer rounded-none bg-transparent`,l,`border-b-2 pb-2`,e?`text-white border-white`:`text-[var(--oh-muted)] border-transparent hover:text-white`,t&&`pointer-events-none opacity-30 cursor-not-allowed`);function pe({view:e,setView:t,showAdvanced:n,showAll:a,isDisabled:o=!1}){let{t:s}=r(`openhands`);return!n&&!a?null:(0,_.jsxs)(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:`mb-6 flex items-center gap-2`,children:[(0,_.jsx)(`button`,{"data-testid":`sdk-section-basic-toggle`,type:`button`,role:`tab`,"aria-selected":e===`basic`,disabled:o,className:b(e===`basic`,o),onClick:()=>t(`basic`),children:s(i.SETTINGS$BASIC)}),n?(0,_.jsx)(`button`,{"data-testid":`sdk-section-advanced-toggle`,type:`button`,role:`tab`,"aria-selected":e===`advanced`,disabled:o,className:b(e===`advanced`,o),onClick:()=>t(`advanced`),children:s(i.SETTINGS$ADVANCED)}):null,a?(0,_.jsx)(`button`,{"data-testid":`sdk-section-all-toggle`,type:`button`,role:`tab`,"aria-selected":e===`all`,disabled:o,className:b(e===`all`,o),onClick:()=>t(`all`),children:s(i.SETTINGS$ALL)}):null]})}var me=new Set,x={basic:0,advanced:1,all:2},he=(e,t)=>x[t]<x[e]?t:e,ge=(e,t)=>x[t]>x[e]?t:e,_e=(e,{showAdvanced:t,showAll:n})=>e===`all`?n?`all`:t?`advanced`:`basic`:e===`advanced`?t?`advanced`:n?`all`:`basic`:`basic`,ve={agent_settings:`agent_settings_diff`,conversation_settings:`conversation_settings_diff`},ye=(e,t)=>e instanceof a?e.response?.status===401?`${t} This agent server requires X-Session-API-Key. Set VITE_SESSION_API_KEY in the frontend to the same value used by the backend SESSION_API_KEY or OH_SESSION_API_KEYS_0.`:e.response?.status===404?`${t} This backend does not expose /api/settings/* schema endpoints. Upgrade to a recent openhands-agent-server release.`:t:t;function S({settingsSources:e,scope:t=`personal`,header:n,extraDirty:a=!1,buildPayload:c,onSaveSuccess:l,getInitialView:m,forceShowAdvancedView:h=!1,allowAllView:v=!0,initialValueOverrides:b,embedded:x=!1,hideSaveButton:S=!1,suppressSuccessToast:be=!1,onSaveControlChange:C,testId:xe=`sdk-section-settings-screen`}){let{t:w}=r(`openhands`),{mutate:Se,isPending:T}=re(t),{data:E,isLoading:Ce,isFetching:D}=ne(t),O=p(E?.agent_settings_schema),k=le(E?.conversation_settings_schema),A=g.useMemo(()=>JSON.stringify(e.map(e=>({source:e.settingsSource,sectionKeys:e.sectionKeys,excludeKeys:e.excludeKeys?Array.from(e.excludeKeys).sort():null}))),[e]),j=g.useMemo(()=>JSON.parse(A).map(e=>({settingsSource:e.source,sectionKeys:e.sectionKeys,excludeKeys:e.excludeKeys?new Set(e.excludeKeys):void 0})),[A]),M=g.useCallback(e=>e===`conversation_settings`?k.data:O.data,[O.data,k.data]),we=j.some(e=>e.settingsSource===`conversation_settings`?k.isLoading:O.isLoading),N=g.useMemo(()=>j.map(e=>{let t=M(e.settingsSource);if(!ce(t))return{...e,filteredSchema:null};let n=new Set(e.sectionKeys),r={...t,sections:t.sections.filter(e=>n.has(e.key))};return{...e,filteredSchema:r}}),[j,M]),P=h||N.some(e=>d(e.filteredSchema)),F=v&&N.some(e=>ie(e.filteredSchema)),Te=g.useMemo(()=>ye(j.reduce((e,t)=>e??(t.settingsSource===`conversation_settings`?k.error:O.error),null),w(i.SETTINGS$SDK_SCHEMA_UNAVAILABLE)),[j,O.error,k.error,w]),Ee=g.useMemo(()=>b?JSON.stringify(b):``,[b]),[I,L]=g.useState(`basic`),[R,z]=g.useState({}),[B,V]=g.useState({}),H=g.useRef(!1),U=g.useMemo(()=>{if(!E)return null;let e={};for(let t of N){if(!t.filteredSchema)return null;e[t.settingsSource]={...e[t.settingsSource]??{},...f(E,t.filteredSchema,t.settingsSource)}}if(b){let t=N[0]?.settingsSource;t&&e[t]&&(e[t]={...e[t],...b})}return e},[E,N,Ee]),W=g.useMemo(()=>{if(!E)return null;let e=null;for(let t of N){if(!t.filteredSchema)return null;let n=m?m(E,t.filteredSchema):ae(E,t.filteredSchema,t.settingsSource);e=e?ge(e,n):n}return e?_e(e,{showAdvanced:P,showAll:F}):null},[E,N,m,P,F]);g.useEffect(()=>{H.current=!1,L(`basic`),z({}),V({})},[t,A]),g.useEffect(()=>{if(!(!U||!W)){if(z(U),b){let e=N[0]?.settingsSource;if(e){let t=Object.fromEntries(Object.keys(b).map(e=>[e,!0]));V({[e]:t})}else V({})}else V({});L(e=>H.current?he(e,W):(H.current=!0,W))}},[U,W]);let G=g.useMemo(()=>{let e=new Map;for(let t of N)if(t.filteredSchema)for(let n of t.filteredSchema.sections)for(let r of n.fields)e.has(r.key)||e.set(r.key,t.settingsSource);return e},[N]),K=g.useMemo(()=>{let e={};for(let t of N)Object.assign(e,R[t.settingsSource]??{});return e},[N,R]),q=g.useMemo(()=>{let e={};for(let t of N)Object.assign(e,B[t.settingsSource]??{});return e},[N,B]),J=g.useCallback((e,t)=>{let n=G.get(e);n&&(z(r=>({...r,[n]:{...r[n]??{},[e]:t}})),V(t=>({...t,[n]:{...t[n]??{},[e]:!0}})))},[G]),De=g.useCallback(e=>{o(s(e)||w(i.ERROR$GENERIC))},[w]),Y=g.useRef(()=>{}),Oe=g.useCallback(()=>{Y.current()},[]),X=g.useRef(()=>({})),ke=g.useCallback(()=>X.current(),[]),Z=()=>{if(N.some(e=>!e.filteredSchema))return;let e;try{let t={};for(let e of N){let n=e.filteredSchema,r=u(n,R[e.settingsSource]??{},B[e.settingsSource]??{},I);if(Object.keys(r).length>0){let n=ve[e.settingsSource];t[n]={...t[n]??{},...r}}}e=c?c(t,{values:K,dirty:q,view:I}):t}catch(e){o(e instanceof Error?e.message:w(i.ERROR$GENERIC));return}Object.keys(e).length!==0&&Se(e,{onError:De,onSuccess:()=>{be||ee(w(i.SETTINGS$SAVED_WARNING)),V({}),l?.()}})};Y.current=Z,X.current=()=>{let e={};for(let t of N){if(!t.filteredSchema)continue;let n=R[t.settingsSource]??{},r=B[t.settingsSource]??{};Object.assign(e,oe(t.filteredSchema,n,r))}return e};let Q=Object.keys(q).length>0,$=Q||a;return g.useEffect(()=>{C&&C({save:Oe,isSaving:T,isDirty:$,values:K,view:I,getDirtyPayload:ke})},[T,$,K,I]),(Ce||D)&&!E||we?(0,_.jsx)(y,{}):N.some(e=>e.filteredSchema&&e.filteredSchema.sections.length>0)?Object.keys(K).length===0?(0,_.jsx)(y,{}):(0,_.jsxs)(`div`,{"data-testid":xe,className:x?`relative flex min-h-0 w-full flex-1 flex-col`:`relative w-full min-h-0`,children:[(0,_.jsx)(pe,{view:I,setView:L,showAdvanced:P,showAll:F,isDisabled:!1}),(0,_.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[n?.({values:K,isDisabled:!1,view:I,onChange:J}),N.map(e=>{if(!e.filteredSchema)return null;let t=R[e.settingsSource]??{};return se(e.filteredSchema,{...K,...t},I,e.excludeKeys??me).map(n=>(0,_.jsx)(`section`,{className:`flex flex-col gap-4`,children:(0,_.jsx)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:n.fields.map(e=>(0,_.jsx)(`div`,{className:de.has(e.key)?`xl:col-span-2`:void 0,children:(0,_.jsx)(ue,{field:e,value:t[e.key],isDisabled:!1,onChange:t=>J(e.key,t)})},e.key))})},`${e.settingsSource}:${n.key}`))}),S?null:(0,_.jsx)(`div`,{className:`flex justify-start pt-2`,children:(0,_.jsx)(te,{testId:`save-button`,type:`button`,variant:`primary`,isDisabled:T||!Q&&!a,onClick:Z,children:w(T?i.SETTINGS$SAVING:i.SETTINGS$SAVE_CHANGES)})})]})]}):(0,_.jsx)(`div`,{"data-testid":`sdk-schema-unavailable`,className:fe,children:(0,_.jsx)(`p`,{className:`text-sm text-[var(--oh-muted)]`,children:Te})})}export{S as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-CVAsW2Yo.js";var t=e(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-BFRubm34.js";import{o as t}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{c as n,n as r}from"./agent-server-client-options-DVLRd9sw.js";import{t as i}from"./proxy-CHmFkV16.js";var a=100;function o(){let e=n().backend;if(e.kind!==`cloud`)throw Error(`Cloud secrets call requires a cloud backend.`);return e}async function s(){let e=o(),t=[],n=null;do{let r=new URLSearchParams({limit:String(a)});n&&r.set(`page_id`,n);let o=await i({backend:e,method:`GET`,path:`/api/v1/secrets/search?${r.toString()}`});t.push(...o.items??[]),n=o.next_page_id}while(n);return t}async function c(e,t,n){await i({backend:o(),method:`POST`,path:`/api/v1/secrets`,body:{name:e,value:t,description:n}})}async function l(e,t,n){await i({backend:o(),method:`PUT`,path:`/api/v1/secrets/${encodeURIComponent(e)}`,body:{name:t,description:n}})}async function u(e){await i({backend:o(),method:`DELETE`,path:`/api/v1/secrets/${encodeURIComponent(e)}`})}var d=e({SecretsService:()=>p});async function f(e,t=3,n=500){for(let r=0;r<t;r+=1)try{return await e()}catch(e){if(r>=t-1)throw e;let i=n*2**r;await new Promise(e=>{setTimeout(e,i)})}throw Error(`Retry attempts exhausted`)}var p=class{static async getSecrets(){try{return n().backend.kind===`cloud`?await f(()=>s()):(await f(()=>new t(r()).listSecrets())).secrets.map(e=>({name:e.name,description:e.description}))}catch(e){return console.error(`Failed to fetch secrets after retries:`,e),[]}}static async createSecret(e,i,a){if(n().backend.kind===`cloud`){await f(()=>c(e,i,a));return}await f(()=>new t(r()).upsertSecret({name:e,value:i,description:a}))}static async updateSecret(e,t,r){if(n().backend.kind===`cloud`){await f(()=>l(e,t,r));return}await this.createSecret(e,t,r)}static async deleteSecret(e){try{if(n().backend.kind===`cloud`){await f(()=>u(e));return}await f(()=>new t(r()).deleteSecret(e))}catch(e){if(e&&typeof e==`object`&&`response`in e&&e.response?.status===404)return;throw e}}};export{d as n,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{E as r,L as i,c as a,j as o,k as s}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js";import{t as c}from"./useTranslation-CDRCKC9-.js";import{t as l}from"./declaration-gq8V5eTU.js";import{C as u,a as d,d as f,f as p,i as m,o as h}from"./active-backend-context-B3umL5R-.js";import{n as g,r as _,t as v}from"./use-settings-nav-items-xe1YgLnE.js";import{t as y}from"./utils-D3U3rlqr.js";import{c as b}from"./agent-server-client-options-DVLRd9sw.js";import{t as x}from"./option-service.api-C0tYT4-r.js";import"./navigation-link-D8hfwvxI.js";import"./sidebar-layout-DuzJMMw-.js";import{t as S}from"./sidebar-nav-link-5AlTT5-j.js";import{n as C}from"./use-settings-BReAMxCG.js";import{n as w}from"./use-agent-profiles-DEAMFp-W.js";import"./close-p3Op5lxI.js";import{r as T}from"./typography-D8mHDeNG.js";import{t as E}from"./settings-section-header-context-COMOIaxV.js";import"./settings-gear-MXCyZW0x.js";import{n as D,r as O}from"./settings-utils-BMdG65By.js";import{t as k}from"./use-breakpoint-B-O0lQ84.js";import{t as A}from"./backend-synced-settings-badge-CanzmG12.js";import{t as j}from"./settings-like-page-layout-classes-DENKlZpD.js";var M=e(t(),1),N=n();function P({navigationItems:e}){let{t}=c(`openhands`),n=e.filter(e=>e.type===`item`);return(0,N.jsxs)(`aside`,{"data-testid":`settings-navbar-desktop`,className:y(`hidden md:flex md:w-[260px] md:shrink-0 md:flex-col md:gap-2`,`md:sticky md:top-8 md:self-start md:pl-8`),children:[(0,N.jsx)(T.Text,{className:`px-2 text-sm font-normal text-white`,children:t(l.SETTINGS$TITLE)}),(0,N.jsxs)(`div`,{className:`flex flex-col gap-0.5 pt-0.5`,children:[n.map(e=>(0,N.jsx)(S,{to:e.item.to,label:t(e.item.text),end:!0,testId:`sidebar-settings-${e.item.to}`,icon:e.item.icon,disabled:e.disabled,disabledReason:e.disabled&&e.disabledAgentName?t(l.SETTINGS$AGENT_DISABLED_TOOLTIP,{agentName:e.disabledAgentName}):void 0},e.item.to)),(0,N.jsx)(_,{})]}),(0,N.jsx)(`div`,{className:`px-2 pt-3`,children:(0,N.jsx)(A,{})})]})}function F({children:e,navigationItems:t}){return(0,N.jsx)(`div`,{className:`flex h-full flex-col md:pt-8`,children:(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-1 gap-10 md:items-start`,children:[(0,N.jsx)(P,{navigationItems:t}),(0,N.jsx)(`main`,{className:j,children:(0,N.jsx)(`div`,{className:`mx-auto w-full min-w-0 max-w-[800px]`,children:e})})]})})}async function I(){try{let e=b(),t;try{let n=await u.fetchQuery({queryKey:[...m.all,e.backend.id,e.orgId],queryFn:w.listProfiles,staleTime:0,...d}),r=n?.active_agent_profile_id??null,i=n?.profiles.find(e=>e.id!=null&&e.id===r);i&&(t=i.agent_kind===`acp`)}catch{}if(t===void 0&&(t=(await u.fetchQuery({queryKey:[...p.byScope(`personal`),e.backend.id,e.orgId],queryFn:()=>C(`personal`),staleTime:0}))?.agent_settings?.agent_kind===`acp`),t)return r(`/settings/agents`)}catch{}return null}var L=async({request:e})=>{let{pathname:t}=new URL(e.url),n=(await u.fetchQuery({queryKey:f.WEB_CLIENT_CONFIG,queryFn:x.getConfig,...h}))?.feature_flags;if(O(t,n)){let e=D(n);if(e&&e!==t)return r(e)}if(g.find(e=>e.to===t)?.disabledByAcp){let e=await I();if(e)return e}return null};function R(){let{t:e}=c(`openhands`),t=s(),n=o(),r=v(),i=k(768),[l,u]=(0,M.useState)(!1),{currentSectionTitle:d,currentSectionSubtitle:f}=(0,M.useMemo)(()=>{let e=r.find(e=>e.type===`item`&&e.item.to===t.pathname);if(e?.type===`item`)return{currentSectionTitle:e.item.text,currentSectionSubtitle:e.item.subtitle};let n=r.find(e=>e.type===`item`);return n?.type===`item`?{currentSectionTitle:n.item.text,currentSectionSubtitle:n.item.subtitle}:{currentSectionTitle:`SETTINGS$TITLE`,currentSectionSubtitle:null}},[r,t.pathname]),p=n.find(e=>e.pathname===t.pathname)?.handle,m=i&&t.pathname===`/settings`;return(0,N.jsx)(`main`,{"data-testid":`settings-screen`,className:`min-h-0`,children:(0,N.jsx)(E,{setHideSectionHeader:u,children:(0,N.jsx)(F,{navigationItems:r,children:(0,N.jsxs)(`div`,{className:`flex flex-col gap-6 pb-8`,children:[!(p?.hideTitle===!0||m||l)&&(0,N.jsxs)(`header`,{className:`space-y-1`,children:[(0,N.jsx)(T.H2,{children:e(d)}),f?(0,N.jsx)(`p`,{"data-testid":`settings-page-subtitle`,className:`text-sm leading-5 text-tertiary-light`,children:e(f)}):null]}),(0,N.jsx)(a,{})]})})})})}var z=i(R);export{L as clientLoader,z as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{t as r}from"./useTranslation-CDRCKC9-.js";import{t as i}from"./declaration-gq8V5eTU.js";import{F as a,t as o}from"./utils-D3U3rlqr.js";import{t as s}from"./modal-backdrop-zVwfOJZr.js";import{r as c,t as l}from"./modal-body-DouOE5KH.js";import{t as u}from"./base-modal-BuF2f0YL.js";import{t as d}from"./modal-classes-Cf-4tbHz.js";import{t as f}from"./brand-button-vMVuyDXu.js";import{n as p}from"./navigation-context-DPs2G0X8.js";import{t as m}from"./settings-input-bD6npsDm.js";import{t as h}from"./settings-mQUckT0g.js";import{t as g}from"./use-tracking-2ZwQwpg_.js";import{t as _}from"./use-save-settings-D1HoCDbn.js";import{t as v}from"./model-selector-BOj1wBlq.js";import{a as y,g as b}from"./sdk-settings-schema-Cv7M9eSe.js";import{t as x}from"./settings-utils-BMdG65By.js";var S=e(t(),1),C=n();function w({testId:e,title:t,description:n,buttons:r}){return(0,C.jsx)(u,{testId:e,title:t,description:n,buttons:[{text:r.danger.text,onClick:r.danger.onClick,className:`bg-danger`},{text:r.cancel.text,onClick:r.cancel.onClick,className:`bg-[var(--oh-interactive-selected)]`}]})}function T({settings:e,onClose:t}){let{trackSettingsSaved:n}=g(),{mutate:o}=_(),{currentPath:c}=p(),{t:l}=r(`openhands`),u=S.useRef(null),[d,h]=S.useState(!1),T=async e=>{let r=x(e);await o(r,{onSuccess:()=>{t();let e=r.agent_settings_diff?.llm??{};n({llmModel:e.model,llmApiKeySet:e.api_key?`SET`:`UNSET`,searchApiKeySet:r.search_api_key?`SET`:`UNSET`,remoteRuntimeResourceFactor:r.remote_runtime_resource_factor})}})},E=()=>{T(new FormData(u.current??void 0))},D=e=>{e.preventDefault();let t=new FormData(e.currentTarget);c.startsWith(`/conversations/`)?h(!0):T(t)},O=e.llm_api_key_set,k=y(e,`llm.model`);return(0,C.jsxs)(`div`,{children:[(0,C.jsxs)(`form`,{ref:u,"data-testid":`settings-form`,className:`flex flex-col gap-6`,onSubmit:D,children:[(0,C.jsxs)(`div`,{className:`flex flex-col gap-[17px]`,children:[(0,C.jsx)(v,{currentModel:typeof k==`string`?k:void 0,wrapperClassName:`!flex-col !gap-[17px]`,labelClassName:a.LABEL_CLASSNAME}),(0,C.jsx)(m,{testId:`llm-api-key-input`,name:`llm-api-key-input`,label:l(i.SETTINGS_FORM$API_KEY),type:`password`,className:`w-full`,placeholder:O?`<hidden>`:``,labelClassName:a.LABEL_CLASSNAME}),(0,C.jsx)(b,{testId:`llm-api-key-help-anchor`,text:l(i.SETTINGS$DONT_KNOW_API_KEY),linkText:l(i.SETTINGS$CLICK_FOR_INSTRUCTIONS),href:`https://docs.openhands.dev/usage/local-setup#getting-an-api-key`,size:`settings`,linkColor:`white`})]}),(0,C.jsx)(`div`,{className:`flex flex-col gap-2`,children:(0,C.jsx)(f,{testId:`save-settings-button`,type:`submit`,variant:`primary`,className:`w-full`,children:l(i.BUTTON$SAVE)})})]}),d&&(0,C.jsx)(s,{children:(0,C.jsx)(w,{title:l(i.MODAL$END_SESSION_TITLE),description:l(i.MODAL$END_SESSION_MESSAGE),buttons:{danger:{text:l(i.BUTTON$END_SESSION),onClick:E},cancel:{text:l(i.BUTTON$CANCEL),onClick:()=>h(!1)}}})})]})}function E({onClose:e,settings:t}){let{t:n}=r(`openhands`);return(0,C.jsx)(s,{children:(0,C.jsxs)(`div`,{"data-testid":`ai-config-modal`,className:o(`bg-[var(--oh-surface)] m-4 p-6 rounded-xl flex flex-col gap-[17px] border border-[var(--oh-border)] api-configuration-modal`,c(`md`),l),children:[(0,C.jsx)(`span`,{className:d,children:n(i.AI_SETTINGS$TITLE)}),(0,C.jsx)(b,{testId:`advanced-settings-link`,text:`${n(i.SETTINGS$DESCRIPTION)}. ${n(i.SETTINGS$FOR_OTHER_OPTIONS)} ${n(i.COMMON$SEE)}`,linkText:n(i.COMMON$ADVANCED_SETTINGS),href:`/settings`,suffix:`.`,size:`settings`,linkColor:`white`,suffixClassName:`text-white`}),(0,C.jsx)(T,{settings:t||h,onClose:e})]})})}export{E as SettingsModal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{c as t,n}from"./agent-server-client-options-DVLRd9sw.js";import{t as r}from"./proxy-CHmFkV16.js";import{t as i}from"./settings-mQUckT0g.js";var a=/^[a-zA-Z0-9_-]+$/;function o(e){return a.test(e)}function s(e,t=`mcp`){return e.trim().replace(/[^a-zA-Z0-9_-]+/g,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``)||t}var c={sse_servers:[],stdio_servers:[],shttp_servers:[]},l=`**********`;function u(e,t){return RegExp(`^${t}(_\\d+)?$`).test(e)?void 0:e}function d(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function f(e){if(!d(e))return null;let t=e.mcpServers;return d(t)&&!(`url`in t)&&!(`command`in t)?t:e}function p(e){if(!d(e))return;let t=Object.entries(e).filter(e=>typeof e[1]==`string`);return t.length>0?Object.fromEntries(t):void 0}function m(e){return e===`**********`?!0:Array.isArray(e)?e.some(m):d(e)?Object.values(e).some(m):!1}function h(e){if(!d(e))return;let t={};return d(e.tokens)&&(t.tokens=e.tokens),d(e.client_info)&&(t.client_info=e.client_info),(typeof e.token_expires_at==`number`||e.token_expires_at===null)&&(t.token_expires_at=e.token_expires_at),Object.keys(t).length>0?t:void 0}function g(e){if(d(e))switch(e.strategy){case`none`:return{strategy:`none`};case`api_key`:return typeof e.value==`string`?{strategy:`api_key`,value:e.value,...typeof e.header_name==`string`&&{header_name:e.header_name}}:void 0;case`bearer`:return typeof e.value==`string`?{strategy:`bearer`,value:e.value}:void 0;case`basic`:return typeof e.username!=`string`||typeof e.password!=`string`?void 0:{strategy:`basic`,username:e.username,password:e.password};case`header`:{let t=p(e.headers);return t?{strategy:`header`,headers:t}:void 0}case`oauth2`:{let t=C(e.authentication),n=h(e.state);return{strategy:`oauth2`,...t&&{authentication:t},...n&&{state:n}}}default:return}}function _(e){return g(e.auth)}function v(e){let t={};return e.auth&&!m(e.auth)&&(t.auth=e.auth),e.headers&&Object.keys(e.headers).length>0&&(t.headers=e.headers),t}function y(e){return{...e.name&&{name:e.name},url:e.url,...e.headers&&{headers:e.headers},...e.auth&&{auth:e.auth}}}function b(e){return y(e)}function x(e){return{...y(e),...e.timeout!==void 0&&{timeout:e.timeout}}}function S(e){return{name:e.name,command:e.command,...e.args&&{args:e.args},...e.env&&{env:e.env}}}function C(e){if(!e||typeof e!=`object`)return;let t=e;if(t.type!==`oauth`)return;let n={type:`oauth`};return(t.client_auth_method===`none`||t.client_auth_method===`client_secret_post`||t.client_auth_method===`client_secret_basic`||t.client_auth_method===`private_key_jwt`)&&(n.client_auth_method=t.client_auth_method),(typeof t.scopes==`string`||Array.isArray(t.scopes)&&t.scopes.every(e=>typeof e==`string`))&&(n.scopes=t.scopes),typeof t.client_name==`string`&&(n.client_name=t.client_name),typeof t.client_metadata_url==`string`&&(n.client_metadata_url=t.client_metadata_url),typeof t.client_id==`string`&&(n.client_id=t.client_id),typeof t.client_secret==`string`&&(n.client_secret=t.client_secret),t.additional_client_metadata&&typeof t.additional_client_metadata==`object`&&!Array.isArray(t.additional_client_metadata)&&(n.additional_client_metadata=t.additional_client_metadata),n}function w(e){let t=f(e);if(!t)return{...c};let n=[],r=[],i=[];for(let[e,a]of Object.entries(t)){if(!d(a))continue;let t=a.url;if(t){let r=a.transport,o=_(a),s=p(a.headers);if(r===`sse`){let r=u(e,`sse`),i={url:t};r&&(i.name=r),o&&(i.auth=o),s&&(i.headers=s),n.push(i)}else{let n=u(e,`shttp`),r={url:t};n&&(r.name=n),a.timeout!=null&&(r.timeout=a.timeout),o&&(r.auth=o),s&&(r.headers=s),i.push(r)}}else{if(typeof a.command!=`string`)continue;let t={name:e,command:a.command};a.args&&(t.args=a.args),a.env&&(t.env=a.env),r.push(t)}}return{sse_servers:n,stdio_servers:r,shttp_servers:i}}function T(e){let t={},n=e=>{let n=s(e);if(!(n in t))return n;let r=1;for(;`${n}_${r}`in t;)r+=1;return`${n}_${r}`};for(let r of e.sse_servers){let e={},i;typeof r==`string`?e.url=r:(i=r.name,e.url=r.url,Object.assign(e,v(r))),e.transport=`sse`,t[n(i||`sse`)]=e}for(let r of e.shttp_servers){let e={transport:`http`},i;typeof r==`string`?e.url=r:(i=r.name,e.url=r.url,Object.assign(e,v(r)),r.timeout!=null&&(e.timeout=r.timeout)),t[n(i||`shttp`)]=e}for(let r of e.stdio_servers){let e={command:r.command};r.args&&(e.args=r.args),r.env&&(e.env=r.env),t[n(r.name||`stdio`)]=e}return Object.keys(t).length>0?t:null}function E(){let e=t().backend;if(e.kind!==`cloud`)throw Error(`Cloud settings call requires a cloud backend.`);return e}function D(e){if(e.agent_settings&&Object.keys(e.agent_settings).length>0)return e.agent_settings;let t={},n={};typeof e.llm_model==`string`&&(n.model=e.llm_model),typeof e.llm_base_url==`string`&&(n.base_url=e.llm_base_url),typeof e.llm_api_key==`string`&&(n.api_key=e.llm_api_key),Object.keys(n).length>0&&(t.llm=n);let r={};return typeof e.enable_default_condenser==`boolean`&&(r.enabled=e.enable_default_condenser),typeof e.condenser_max_size==`number`&&(r.max_size=e.condenser_max_size),Object.keys(r).length>0&&(t.condenser=r),typeof e.agent==`string`&&(t.agent=e.agent),e.mcp_config&&Object.keys(e.mcp_config).length>0&&(t.mcp_config=e.mcp_config),t}function O(e){if(e.conversation_settings&&Object.keys(e.conversation_settings).length>0)return e.conversation_settings;let t={};return typeof e.confirmation_mode==`boolean`&&(t.confirmation_mode=e.confirmation_mode),(typeof e.security_analyzer==`string`||e.security_analyzer===null)&&(t.security_analyzer=e.security_analyzer),typeof e.max_iterations==`number`&&(t.max_iterations=e.max_iterations),t}async function k(){let e=await r({backend:E(),method:`GET`,path:`/api/v1/settings`});return{...e,agent_settings:D(e),conversation_settings:O(e),llm_api_key_set:!!e.llm_api_key_set,search_api_key_set:!!e.search_api_key_set,provider_tokens_set:e.provider_tokens_set}}async function A(e){let t=E(),n={};if(e.agent_settings_diff){let t={...e.agent_settings_diff};t.agent_context===null&&delete t.agent_context,Object.keys(t).length>0&&(n.agent_settings_diff=t)}if(e.conversation_settings_diff&&Object.keys(e.conversation_settings_diff).length>0&&(n.conversation_settings_diff=e.conversation_settings_diff),e.app_preferences)for(let[t,r]of Object.entries(e.app_preferences))r!==void 0&&(n[t]=r);await r({backend:t,method:`POST`,path:`/api/v1/settings`,body:n})}async function j(){return r({backend:E(),method:`GET`,path:`/api/v1/settings/agent-schema`})}async function M(){return r({backend:E(),method:`GET`,path:`/api/v1/settings/conversation-schema`})}var N=[`language`,`user_consents_to_analytics`,`enable_sound_notifications`,`git_user_name`,`git_user_email`,`disabled_skills`],P=new Set(N),F=e=>P.has(e),I=e=>{let t={},n={};for(let[r,i]of Object.entries(e))F(r)?t[r]=i:n[r]=i;return{extracted:t,rest:n}},L=e=>JSON.parse(JSON.stringify(e)),R=(e,t)=>({...e??{},...t??{}});async function z(e,t=3,n=500){for(let r=0;r<t;r+=1)try{return await e()}catch(e){if(r>=t-1)throw e;let i=n*2**r;await new Promise(e=>{setTimeout(e,i)})}throw Error(`Retry attempts exhausted`)}var B={redacted:null,encrypted:null,timestamp:0},V=300*1e3,H=()=>Date.now()-B.timestamp<V,U=()=>{B={redacted:null,encrypted:null,timestamp:0}},W=e=>!!e&&typeof e==`object`&&!Array.isArray(e),G=(e,t)=>`Basic ${btoa(`${e}:${t}`)}`,K=e=>{switch(e.strategy){case`none`:return{};case`api_key`:{if(typeof e.value!=`string`||!e.value)return null;let t=typeof e.header_name==`string`&&e.header_name?e.header_name:`Authorization`,n=t===`Authorization`?`Bearer ${e.value}`:e.value;return{[t]:n}}case`bearer`:return typeof e.value!=`string`||!e.value?null:{Authorization:`Bearer ${e.value}`};case`basic`:return typeof e.username!=`string`||typeof e.password!=`string`?null:{Authorization:G(e.username,e.password)};case`header`:return p(e.headers)??{};case`oauth2`:{let t=W(e.state)?e.state.tokens:void 0;return!W(t)||typeof t.access_token!=`string`?null:{Authorization:`Bearer ${t.access_token}`}}default:return null}},q=e=>{if(!W(e))return e;let t=W(e.mcpServers),n=t?e.mcpServers:e,r=Object.fromEntries(Object.entries(n).map(([e,t])=>{if(!W(t)||!W(t.auth))return[e,t];let n=K(t.auth);if(n===null)return[e,t];let r={...t},i={...p(t.headers)??{},...n};return delete r.auth,Object.keys(i).length>0?r.headers=i:delete r.headers,[e,r]}));return t?{...e,mcpServers:r}:r},J=e=>{let t=f(e);return t?Object.values(t).some(e=>m(W(e)?e.auth:void 0)||m(W(e)?e.headers:void 0)||m(W(e)?e.env:void 0)):!1},Y=(e,t)=>{let n=f(e),r=f(t);return!n||!r?!1:Object.keys(n).some(e=>!(e in r))},X=e=>{let t={agent_settings:e.agent_settings??{},conversation_settings:e.conversation_settings??{},llm_api_key_set:e.llm_api_key_is_set},n=e.misc_settings?.app_preferences;if(n)for(let e of N){let r=n[e];r!==void 0&&(t[e]=r)}return t},Z=e=>{let t=R(i.agent_settings??{},e.agent_settings??{}),n=R(i.conversation_settings??{},e.conversation_settings??{}),r={...L(i),...e,provider_tokens_set:{...i.provider_tokens_set??{},...e.provider_tokens_set??{}},agent_settings:t,conversation_settings:n},a=t.llm,o=t.condenser;return typeof t.agent==`string`&&(r.agent=t.agent),typeof a?.model==`string`&&a.model.length>0&&(r.llm_model=a.model),typeof a?.base_url==`string`&&(r.llm_base_url=a.base_url),typeof o?.enabled==`boolean`&&(r.enable_default_condenser=o.enabled),typeof o?.max_size==`number`&&(r.condenser_max_size=o.max_size),typeof n.confirmation_mode==`boolean`&&(r.confirmation_mode=n.confirmation_mode),(typeof n.security_analyzer==`string`||n.security_analyzer===null)&&(r.security_analyzer=n.security_analyzer),typeof n.max_iterations==`number`&&(r.max_iterations=n.max_iterations),r.search_api_key_set=!!r.search_api_key,r},Q=class r{static async fetchSettingsFromApi(t){return z(()=>new e(n()).getSettings({exposeSecrets:t}))}static async getSettings(){if(t().backend.kind===`cloud`)try{return Z(await z(()=>k()))}catch(e){return console.warn(`Failed to fetch cloud settings, using defaults:`,e),Z({})}if(H()&&B.redacted)return Z(X(B.redacted));try{let e=await this.fetchSettingsFromApi();return B.redacted=e,B.timestamp=Date.now(),Z(X(e))}catch(e){return console.warn(`Failed to fetch settings from API, using defaults:`,e),Z({})}}static async getSettingsForConversation(){if(H()&&B.encrypted)return{agentSettings:B.encrypted.agent_settings,conversationSettings:B.encrypted.conversation_settings,secretsEncrypted:!0};let e=await this.fetchSettingsFromApi(`encrypted`);return B.encrypted=e,B.timestamp||=Date.now(),{agentSettings:e.agent_settings,conversationSettings:e.conversation_settings,secretsEncrypted:!0}}static async getSettingsSchema(){return t().backend.kind===`cloud`?await j():await new e(n()).getAgentSchema()}static async getConversationSettingsSchema(){return t().backend.kind===`cloud`?await M():await new e(n()).getConversationSchema()}static async saveSettings(i){let{extracted:a,rest:o}=I(i),s=Object.keys(a).length>0,c={},l=o.agent_settings_diff;l&&Object.keys(l).length>0&&(c.agent_settings_diff=l);let u=o.conversation_settings_diff;u&&Object.keys(u).length>0&&(c.conversation_settings_diff=u),s&&(c.misc_settings_diff={app_preferences:a});let d=t().backend.kind===`cloud`,f=c.agent_settings_diff,p=!!f&&`mcp_config`in f&&f.mcp_config!==null,m;if(p)try{m=d?(await k())?.agent_settings?.mcp_config:(await r.fetchSettingsFromApi())?.agent_settings?.mcp_config}catch{}let h=d&&p&&J(m)&&!Y(m,f?.mcp_config),g=p&&!h;if(d){if(!(c.agent_settings_diff||c.conversation_settings_diff||s))return!0;g&&await z(()=>A({agent_settings_diff:{mcp_config:null}}));let e={};c.agent_settings_diff&&(e.agent_settings_diff={...c.agent_settings_diff},`mcp_config`in e.agent_settings_diff&&(e.agent_settings_diff.mcp_config=q(e.agent_settings_diff.mcp_config))),c.conversation_settings_diff&&(e.conversation_settings_diff=c.conversation_settings_diff),s&&(e.app_preferences=a);try{await z(()=>A(e))}catch(e){if(g&&m)try{await A({agent_settings_diff:{mcp_config:m}})}catch{}throw e}}else{if(!(c.agent_settings_diff||c.conversation_settings_diff||c.misc_settings_diff))return!0;g&&await z(()=>new e(n()).updateSettings({agent_settings_diff:{mcp_config:null}}));try{await z(()=>new e(n()).updateSettings(c))}catch(t){if(g&&m)try{await new e(n()).updateSettings({agent_settings_diff:{mcp_config:m}})}catch{}throw t}}return U(),!0}static invalidateCache(){U()}};export{x as a,T as c,s as d,w as i,a as l,l as n,b as o,m as r,S as s,Q as t,o as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{L as r,P as i,r as a}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js";import{h as o}from"./path-utils-DWcgCGen.js";import{t as s}from"./useQuery-CpjHYtZc.js";import{t as c}from"./useTranslation-CDRCKC9-.js";import{t as l}from"./declaration-gq8V5eTU.js";import{n as u}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{t as d}from"./messages-B3RugH7P.js";import{n as f}from"./agent-server-client-options-DVLRd9sw.js";import{t as p}from"./loading-spinner-BLdswi6q.js";import{t as m}from"./openhands-logo-bcNw5bkY.js";import{c as h}from"./lesson-plan-DgpP80mJ.js";import{n as g}from"./use-event-store-DjgU4wfO.js";var _=e(t(),1),v=e=>s({queryKey:[`shared-conversation`,e],queryFn:()=>{if(!e)throw Error(`Conversation ID is required`);return new u(f()).getSharedConversation(e)},enabled:!!e,retry:!1}),y=e=>o({queryKey:[`shared-conversation-events`,e],queryFn:({pageParam:t})=>{if(!e)throw Error(`Conversation ID is required`);return new u(f()).searchSharedEvents({conversationId:e,limit:100,pageId:t})},initialPageParam:void 0,getNextPageParam:e=>e.next_page_id??void 0,enabled:!!e,retry:!1}),b=({hasNextPage:e,isFetchingNextPage:t,fetchNextPage:n,threshold:r=100})=>{let i=(0,_.useRef)(null),a=(0,_.useCallback)(()=>{if(!i.current||t||!e)return;let{scrollTop:a,scrollHeight:o,clientHeight:s}=i.current;a+s>=o-r&&n()},[e,t,n,r]);return(0,_.useEffect)(()=>{let e=i.current;if(e)return e.addEventListener(`scroll`,a),()=>{e.removeEventListener(`scroll`,a)}},[a]),i},x=n(),S=r(function(){let{t:e}=c(`openhands`),{conversationId:t}=i(),{data:n,isLoading:r,error:o}=v(t),{data:s,isLoading:u,error:f,hasNextPage:S,fetchNextPage:C,isFetchingNextPage:w}=y(t),T=r||u,E=o||f,D=_.useMemo(()=>s?.pages?s.pages.flatMap(e=>e.items):[],[s?.pages]),O=_.useMemo(()=>D.reduce((e,t)=>g(t,e),[]).filter(h),[D]),k=b({hasNextPage:!!S,isFetchingNextPage:w,fetchNextPage:C});return T?(0,x.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-base`,children:(0,x.jsx)(p,{size:`large`})}):E||!n?(0,x.jsx)(`div`,{className:`flex items-center justify-center h-screen bg-base`,children:(0,x.jsx)(`div`,{className:`text-white`,children:e(l.CONVERSATION$NOT_FOUND)})}):(0,x.jsxs)(`div`,{className:`h-screen bg-base text-white flex flex-col`,children:[(0,x.jsx)(`div`,{className:`border-b border-[var(--oh-border-subtle)] p-4 flex-shrink-0`,children:(0,x.jsxs)(`div`,{className:`max-w-4xl mx-auto flex items-start gap-4`,children:[(0,x.jsx)(a,{to:`/conversations`,className:`flex-shrink-0`,"aria-label":e(l.BRANDING$OPENHANDS_LOGO),children:(0,x.jsx)(m,{width:46,height:30})}),(0,x.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,x.jsx)(`h1`,{className:`text-xl font-medium mb-2`,children:n?.title||e(l.CONVERSATION$SHARED_CONVERSATION)}),n?.selected_branch&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(l.CONVERSATION$BRANCH),`: `,n.selected_branch]}),n?.selected_repository&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(l.CONVERSATION$REPOSITORY),`:`,` `,n.selected_repository]}),n?.llm_model&&(0,x.jsxs)(`div`,{className:`text-sm text-[var(--oh-muted)]`,children:[e(l.LLM$MODEL),`: `,n.llm_model]})]})]})}),(0,x.jsx)(`div`,{ref:k,className:`flex-1 overflow-y-auto custom-scrollbar-always px-4 pt-4 gap-2`,children:(0,x.jsxs)(`div`,{className:`max-w-4xl mx-auto p-4 border border-[var(--oh-border-subtle)] rounded`,children:[O.length>0?(0,x.jsx)(d,{messages:O,allEvents:D}):(0,x.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,x.jsx)(`div`,{className:`text-center text-[var(--oh-muted)] py-8`,children:e(l.CONVERSATION$NO_HISTORY_AVAILABLE)})}),w&&(0,x.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,x.jsx)(p,{size:`small`})})]})})]})});export{S as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{L as r}from"./vendor~entry.client~root~root-layout~index-redirect~home~conversation-panel~conversation~la~byh8a1g4-XNPdpuO8.js";import{n as i}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js";import{t as a}from"./useMutation-DCE9RcgK.js";import{t as o}from"./useQuery-CpjHYtZc.js";import{t as s}from"./useTranslation-CDRCKC9-.js";import{t as c}from"./declaration-gq8V5eTU.js";import{A as l,P as u,j as d,n as f,u as p}from"./active-backend-context-B3umL5R-.js";import{t as m}from"./search-4DHskuhE.js";import{t as h}from"./x-Cb0WAtak.js";import{t as g}from"./utils-D3U3rlqr.js";import{t as _}from"./modal-backdrop-zVwfOJZr.js";import{n as v}from"./modal-classes-Cf-4tbHz.js";import{t as y}from"./brand-button-vMVuyDXu.js";import{t as b}from"./modal-close-button-B6CfxxJj.js";import{t as x}from"./settings-input-bD6npsDm.js";import{t as S}from"./plugins-management-service-BAp70KN7.js";import{a as C,i as w,r as T}from"./extension-module-card-classes-9V3J9J_b.js";import{t as E}from"./settings-switch-5cuxl8Dc.js";import{n as D}from"./circle-plus-check-toggle-C5YxjxvI.js";import{n as O,t as k}from"./use-plugins-marketplace-BGb-KgfD.js";import{n as A}from"./extensions-navigation-D9i0DL62.js";import{n as j}from"./settings-like-page-layout-classes-DENKlZpD.js";var M=e(t(),1),N=n();function P({plugin:e,isBusy:t=!1,isDisabled:n=!1,onOpen:r,onInstall:i,onToggle:a}){let{t:o}=s(`openhands`);return(0,N.jsxs)(`div`,{"data-testid":`plugin-card-${e.name}`,role:`button`,tabIndex:0,onClick:r,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r())},className:g(`flex min-w-0 flex-col gap-3 overflow-hidden p-4`,C,T),children:[(0,N.jsxs)(`header`,{className:`flex items-start justify-between gap-3`,children:[(0,N.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,N.jsx)(`h3`,{"data-testid":`plugin-name-${e.name}`,className:`truncate text-sm font-semibold text-white`,children:e.name}),e.source?(0,N.jsx)(`p`,{"data-testid":`plugin-source-${e.name}`,className:`mt-0.5 min-w-0 truncate text-xs text-tertiary-alt`,title:e.source,children:e.source}):null]}),e.installed?(0,N.jsx)(D,{testId:`plugin-toggle-${e.name}`,isSelected:e.enabled,isDisabled:n||t,onToggle:a,disableTooltipKey:c.COMMON$DISABLE}):e.isLocal?(0,N.jsx)(`span`,{"data-testid":`plugin-local-badge-${e.name}`,className:g(w,`flex-shrink-0`),children:o(c.SETTINGS$PLUGINS_FILTER_LOCAL)}):(0,N.jsx)(y,{type:`button`,variant:`secondary`,testId:`plugin-install-${e.name}`,isDisabled:n||t,className:`flex-shrink-0 whitespace-nowrap`,onClick:e=>{e?.stopPropagation(),i()},children:o(t?c.SETTINGS$PLUGINS_INSTALLING:c.SETTINGS$PLUGINS_INSTALL)})]}),e.description?(0,N.jsx)(`p`,{"data-testid":`plugin-description-${e.name}`,className:`line-clamp-2 break-words text-xs leading-relaxed text-tertiary-light`,children:e.description}):null,(e.installed||e.isLocal)&&e.version?(0,N.jsx)(`span`,{"data-testid":`plugin-version-${e.name}`,className:g(w,`self-start`),children:o(c.SETTINGS$SKILLS_VERSION,{version:e.version})}):null]})}var F=[{value:`all`,labelKey:c.SETTINGS$PLUGINS_FILTER_ALL},{value:`installed`,labelKey:c.SETTINGS$PLUGINS_FILTER_INSTALLED},{value:`available`,labelKey:c.SETTINGS$PLUGINS_FILTER_AVAILABLE},{value:`local`,labelKey:c.SETTINGS$PLUGINS_FILTER_LOCAL}];function I({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r}){let{t:i}=s(`openhands`);return(0,N.jsxs)(`div`,{"data-testid":`plugins-toolbar`,className:`flex items-stretch gap-2`,children:[(0,N.jsxs)(`div`,{className:g(`relative flex flex-1 min-w-0 items-center`,`rounded-lg border border-[var(--oh-border)] bg-base-secondary`,`focus-within:border-white/40 focus-within:ring-1 focus-within:ring-white/20`,`transition-colors`),children:[(0,N.jsx)(m,{className:`ml-3 h-4 w-4 shrink-0 text-tertiary-alt`,"aria-hidden":!0}),(0,N.jsx)(`input`,{"data-testid":`plugins-search-input`,type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:i(c.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),"aria-label":i(c.SETTINGS$PLUGINS_SEARCH_PLACEHOLDER),className:g(`flex-1 min-w-0 bg-transparent border-0 outline-none`,`px-3 py-2 text-sm placeholder:text-tertiary-alt`,`[&::-webkit-search-cancel-button]:hidden`)}),e?(0,N.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":i(c.MCP$SEARCH_CLEAR),className:`mr-2 p-1 rounded text-tertiary-alt hover:text-white cursor-pointer`,children:(0,N.jsx)(h,{className:`h-4 w-4`,"aria-hidden":!0})}):null]}),(0,N.jsx)(`div`,{"data-testid":`plugins-status-filter`,className:`flex shrink-0 items-center gap-1 rounded-lg border border-[var(--oh-border)] bg-base-secondary p-1`,children:F.map(e=>(0,N.jsx)(`button`,{type:`button`,"data-testid":`plugins-filter-${e.value}`,"aria-pressed":n===e.value,onClick:()=>r(e.value),className:g(`cursor-pointer rounded-md px-3 py-1 text-xs transition-colors`,n===e.value?`bg-surface-raised text-white`:`text-tertiary-alt hover:text-white`),children:i(e.labelKey)},e.value))})]})}function L({plugin:e,isBusy:t=!1,isDisabled:n=!1,onToggle:r,onInstall:i,onUninstall:a,onRefresh:o,onClose:l}){let{t:u}=s(`openhands`),d=n||t;return(0,N.jsx)(_,{onClose:l,"aria-label":e.name,children:(0,N.jsxs)(`div`,{"data-testid":`plugin-detail-modal`,"data-plugin-name":e.name,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,N.jsx)(b,{onClose:l,testId:`plugin-detail-modal-close`}),(0,N.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,N.jsx)(`h2`,{className:g(`pr-6`,v),children:e.name}),e.source?(0,N.jsx)(`p`,{className:`mt-1 break-all text-xs text-tertiary-alt`,children:e.source}):null]}),(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[e.description?(0,N.jsx)(`p`,{className:`text-sm leading-relaxed text-tertiary-light`,children:e.description}):null,(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.isLocal?(0,N.jsx)(`span`,{className:w,children:u(c.SETTINGS$PLUGINS_FILTER_LOCAL)}):null,e.version?(0,N.jsx)(`span`,{className:w,children:u(c.SETTINGS$SKILLS_VERSION,{version:e.version})}):null,e.ref?(0,N.jsxs)(`span`,{className:w,children:[u(c.SETTINGS$PLUGINS_REF_LABEL),` `,e.ref]}):null,e.repoPath?(0,N.jsxs)(`span`,{className:w,children:[u(c.SETTINGS$PLUGINS_REPO_PATH_LABEL),` `,e.repoPath]}):null]}),e.installed?(0,N.jsx)(E,{testId:`plugin-modal-toggle-${e.name}`,isToggled:e.enabled,onToggle:r,isDisabled:d,togglePosition:`right`,children:u(e.enabled?c.SETTINGS$SKILLS_ENABLED:c.SETTINGS$SKILLS_DISABLED)}):null]}),(0,N.jsxs)(`footer`,{className:`flex flex-shrink-0 flex-wrap justify-end gap-2 px-6 pb-6 pt-4`,children:[e.installed?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(y,{type:`button`,variant:`secondary`,testId:`plugin-detail-refresh-${e.name}`,isDisabled:d,onClick:o,children:u(c.SETTINGS$PLUGINS_REFRESH)}),(0,N.jsx)(y,{type:`button`,variant:`secondary`,testId:`plugin-detail-uninstall-${e.name}`,isDisabled:d,onClick:a,children:u(c.SETTINGS$PLUGINS_UNINSTALL)})]}):e.isLocal?null:(0,N.jsx)(y,{type:`button`,variant:`primary`,testId:`plugin-detail-install-${e.name}`,isDisabled:d,onClick:i,children:u(t?c.SETTINGS$PLUGINS_INSTALLING:c.SETTINGS$PLUGINS_INSTALL)}),(0,N.jsx)(y,{type:`button`,variant:`secondary`,testId:`plugin-detail-modal-dismiss`,onClick:l,children:u(c.BUTTON$CLOSE)})]})]})})}function R(){let e=i(),{t}=s(`openhands`);return a({mutationFn:e=>S.installPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:p.installed}),e.invalidateQueries({queryKey:p.marketplace}),d(t(c.SETTINGS$PLUGINS_INSTALL_SUCCESS))},onError:e=>{l(u(e)||t(c.ERROR$GENERIC))}})}function z({onClose:e,onInstalled:t}){let{t:n}=s(`openhands`),r=R(),[i,a]=M.useState(``),[o,l]=M.useState(``),[u,d]=M.useState(``),f=i.trim(),p=f.length>0&&!r.isPending;return(0,N.jsx)(_,{onClose:e,"aria-label":n(c.SETTINGS$PLUGINS_ADD_MODAL_TITLE),children:(0,N.jsxs)(`form`,{onSubmit:n=>{n.preventDefault(),p&&r.mutate({source:f,ref:o.trim()||null,repo_path:u.trim()||null},{onSuccess:()=>{t?.(),e()}})},"data-testid":`add-plugin-modal`,className:`relative flex w-[520px] max-w-[90vw] max-h-[85vh] flex-col rounded-xl border border-[var(--oh-border)] bg-base-secondary`,children:[(0,N.jsx)(b,{onClose:e,testId:`add-plugin-modal-close`}),(0,N.jsxs)(`header`,{className:`flex-shrink-0 px-6 pb-4 pt-6`,children:[(0,N.jsx)(`h2`,{className:g(`pr-6`,v),children:n(c.SETTINGS$PLUGINS_ADD_MODAL_TITLE)}),(0,N.jsx)(`p`,{className:`mt-4 text-sm text-tertiary-light`,children:n(c.SETTINGS$PLUGINS_ADD_MODAL_INTRO)})]}),(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 custom-scrollbar`,children:[(0,N.jsx)(x,{testId:`add-plugin-source-input`,label:n(c.SETTINGS$PLUGINS_SOURCE_LABEL),type:`text`,value:i,onChange:a,placeholder:n(c.SETTINGS$PLUGINS_SOURCE_PLACEHOLDER),showRequiredTag:!0}),(0,N.jsx)(x,{testId:`add-plugin-ref-input`,label:n(c.SETTINGS$PLUGINS_REF_LABEL),type:`text`,value:o,onChange:l,showOptionalTag:!0}),(0,N.jsx)(x,{testId:`add-plugin-repo-path-input`,label:n(c.SETTINGS$PLUGINS_REPO_PATH_LABEL),type:`text`,value:u,onChange:d,showOptionalTag:!0})]}),(0,N.jsxs)(`footer`,{className:`flex flex-shrink-0 justify-end gap-2 px-6 pb-6 pt-4`,children:[(0,N.jsx)(y,{type:`button`,variant:`secondary`,onClick:e,testId:`add-plugin-modal-dismiss`,children:n(c.BUTTON$CLOSE)}),(0,N.jsx)(y,{type:`submit`,variant:`primary`,testId:`add-plugin-submit`,isDisabled:!p,children:n(r.isPending?c.SETTINGS$PLUGINS_INSTALLING:c.SETTINGS$PLUGINS_INSTALL)})]})]})})}function B(e,t,n=void 0){let r=new Map;for(let t of e??[])r.set(t.name,{name:t.name,description:t.description,source:t.source,ref:t.ref??null,repoPath:t.repo_path??null,installed:t.installed,enabled:!1,version:null,inCatalog:!0,isLocal:!1});for(let e of t??[]){let t=r.get(e.name);r.set(e.name,{name:e.name,description:t?.description??e.description??null,source:e.source??t?.source??null,ref:e.resolved_ref??t?.ref??null,repoPath:e.repo_path??t?.repoPath??null,installed:!0,enabled:e.enabled,version:e.version??null,inCatalog:t?.inCatalog??!1,isLocal:!1})}for(let e of n??[])r.has(e.name)||r.set(e.name,{name:e.name,description:e.description||null,source:null,ref:null,repoPath:null,installed:!1,enabled:!1,version:e.version||null,inCatalog:!1,isLocal:!0});let i=e=>e.installed?0:e.isLocal?1:2;return Array.from(r.values()).sort((e,t)=>{let n=i(e)-i(t);return n===0?e.name.localeCompare(t.name):n})}function V(e,t){let n=t.trim().toLowerCase();return n?[e.name,e.description??``,e.source??``,e.repoPath??``,e.ref??``].some(e=>e.toLowerCase().includes(n)):!0}function H(e,t){return t===`installed`?e.installed:t===`available`?!e.installed&&!e.isLocal:t===`local`?e.isLocal:!0}var U=()=>o({queryKey:p.installed,queryFn:()=>S.listInstalledPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1}),W=()=>o({queryKey:p.local,queryFn:()=>O.getLocalPlugins(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});function G(){let e=i(),{t}=s(`openhands`);return a({mutationFn:({name:e,enabled:t})=>S.setPluginEnabled(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:p.installed})},onError:e=>{l(u(e)||t(c.ERROR$GENERIC))}})}function K(){let e=i(),{t}=s(`openhands`);return a({mutationFn:e=>S.uninstallPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:p.installed}),e.invalidateQueries({queryKey:p.marketplace}),d(t(c.SETTINGS$PLUGINS_UNINSTALL_SUCCESS))},onError:e=>{l(u(e)||t(c.ERROR$GENERIC))}})}function q(){let e=i(),{t}=s(`openhands`);return a({mutationFn:e=>S.refreshPlugin(e),onSuccess:()=>{e.invalidateQueries({queryKey:p.installed}),d(t(c.SETTINGS$PLUGINS_REFRESH_SUCCESS))},onError:e=>{l(u(e)||t(c.ERROR$GENERIC))}})}var J=r(function(){let{t:e}=s(`openhands`),{backend:t}=f(),n=t.kind===`local`,{data:r,isLoading:i}=k(),{data:a,isLoading:o}=U(),{data:l,isLoading:u}=W(),d=R(),p=G(),m=K(),h=q(),[_,v]=M.useState(``),[b,x]=M.useState(`all`),[S,C]=M.useState(null),[w,T]=M.useState(!1),E=M.useMemo(()=>B(r,a,l),[r,a,l]),D=M.useMemo(()=>E.filter(e=>H(e,b)&&V(e,_)),[E,b,_]),O=S?E.find(e=>e.name===S)??null:null,F=i||o||u,J=(p.isPending?p.variables?.name:void 0)??(m.isPending?m.variables:void 0)??(h.isPending?h.variables:void 0)??null,Y=e=>J===e.name||d.isPending&&d.variables?.source===e.source,X=e=>{e.source&&d.mutate({source:e.source,ref:e.ref,repo_path:e.repoPath})},Z=(e,t)=>{p.mutate({name:e.name,enabled:t})},Q=e=>{m.mutate(e.name,{onSuccess:()=>C(null)})},$=e=>{h.mutate(e.name)};return(0,N.jsxs)(`div`,{"data-testid":`skills-plugins-screen`,className:`flex h-full gap-4 md:gap-6 md:pl-8 lg:gap-10 lg:pl-10`,children:[(0,N.jsx)(A,{}),(0,N.jsx)(`main`,{className:g(j,`h-full`),children:(0,N.jsxs)(`div`,{className:`mx-auto flex w-full min-w-0 max-w-[800px] flex-col gap-6`,children:[(0,N.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-4`,children:[(0,N.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,N.jsx)(`h2`,{className:`text-xl font-semibold leading-6 text-foreground`,children:e(c.SETTINGS$PLUGINS_TITLE)}),(0,N.jsx)(`div`,{"data-testid":`plugins-settings-description`,className:`max-w-2xl text-sm text-tertiary-light`,children:e(c.SETTINGS$PLUGINS_PAGE_DESCRIPTION)})]}),(0,N.jsx)(y,{type:`button`,variant:`secondary`,testId:`plugins-add-plugin-button`,isDisabled:!n,className:`flex-shrink-0 whitespace-nowrap`,onClick:()=>T(!0),children:e(c.SETTINGS$PLUGINS_ADD_BUTTON)})]}),F&&(0,N.jsx)(`div`,{className:`flex flex-col gap-4`,children:[1,2,3].map(e=>(0,N.jsx)(`div`,{className:`h-24 rounded-2xl bg-tertiary animate-pulse`},e))}),!F&&E.length===0&&(0,N.jsx)(`div`,{"data-testid":`plugins-empty`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,N.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(c.SETTINGS$PLUGINS_NO_PLUGINS)})}),!F&&E.length>0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(I,{search:_,onSearchChange:v,statusFilter:b,onStatusFilterChange:x}),D.length===0?(0,N.jsx)(`div`,{"data-testid":`plugins-no-match`,className:`rounded-xl border border-[var(--oh-border)] p-8 text-center`,children:(0,N.jsx)(`p`,{className:`text-sm text-tertiary-light`,children:e(c.SETTINGS$PLUGINS_NO_MATCH)})}):(0,N.jsx)(`section`,{className:g(`flex min-w-0 flex-col gap-3`,`@container min-w-0 w-full`),children:(0,N.jsx)(`div`,{className:`grid min-w-0 grid-cols-1 gap-3 @min-[600px]:grid-cols-2`,children:D.map(e=>(0,N.jsx)(P,{plugin:e,isBusy:Y(e),isDisabled:!n,onOpen:()=>C(e.name),onInstall:()=>X(e),onToggle:t=>Z(e,t)},e.name))})})]}),O&&(0,N.jsx)(L,{plugin:O,isBusy:Y(O),isDisabled:!n,onToggle:e=>Z(O,e),onInstall:()=>X(O),onUninstall:()=>Q(O),onRefresh:()=>$(O),onClose:()=>C(null)}),w&&(0,N.jsx)(z,{onClose:()=>T(!1)})]})})]})});export{J as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t,bt as n}from"./vendor-styling-CI0PQ3ab.js";import{n as r}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js";import{t as i}from"./useQuery-CpjHYtZc.js";import{t as a}from"./useTranslation-CDRCKC9-.js";import{t as o}from"./declaration-gq8V5eTU.js";import{p as s}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{A as c,N as l,P as u,j as d,n as f}from"./active-backend-context-B3umL5R-.js";import{t as p}from"./check-Bvi71siz.js";import{t as m}from"./loader-circle-BEykUKYG.js";import{t as h}from"./utils-D3U3rlqr.js";import{n as g}from"./agent-server-client-options-DVLRd9sw.js";import{l as _}from"./form-control-classes-ChpNBe9n.js";import{n as v,t as y}from"./settings-input-bD6npsDm.js";import{a as b,l as x}from"./acp-providers-Djl6vNn-.js";import{n as S,t as C}from"./use-create-secret-D5O5qdWC.js";var w=e(t(),1),T=n();function E({conflicts:e}){let{t}=a(`openhands`);return(0,T.jsx)(T.Fragment,{children:e.map(([e,n])=>(0,T.jsx)(`p`,{"data-testid":`acp-credential-conflict-warning`,className:`text-sm text-amber-300`,children:t(o.SETTINGS$ACP_CREDENTIAL_CONFLICT_WARNING,{credential:e,conflicting:n})},`${e}:${n}`))})}function D({status:e,isChecking:t,providerName:n,testIdPrefix:r}){let{t:i}=a(`openhands`);return e===`authenticated`?(0,T.jsxs)(`div`,{"data-testid":`${r}-detected`,className:`flex items-start gap-2 rounded-xl border border-green-500/40 bg-green-500/10 px-4 py-3 text-sm text-green-200`,children:[(0,T.jsx)(p,{className:`mt-0.5 size-4 shrink-0 text-green-400`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:i(o.ONBOARDING$ACP_AUTH_DETECTED,{provider:n})})]}):t?(0,T.jsxs)(`div`,{"data-testid":`${r}-checking`,className:`flex items-center gap-2 text-sm text-[var(--oh-muted)]`,children:[(0,T.jsx)(m,{className:`size-4 shrink-0 animate-spin`,"aria-hidden":!0}),(0,T.jsx)(`span`,{children:i(o.ONBOARDING$ACP_AUTH_CHECKING,{provider:n})})]}):null}function O({field:e,value:t,onChange:n,alreadySet:r,testId:i,showOptionalTag:s}){let{t:c}=a(`openhands`),l=r?c(o.ONBOARDING$ACP_SECRET_ALREADY_SET):``;return(0,T.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e.multiline?(0,T.jsxs)(`label`,{className:`flex flex-col gap-2.5`,children:[(0,T.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-sm font-mono text-white`,children:e.name}),s&&(0,T.jsx)(v,{})]}),(0,T.jsx)(`textarea`,{"data-testid":i,name:e.name,rows:4,spellCheck:!1,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,value:t,placeholder:l,onChange:e=>n(e.target.value),className:h(_,`font-mono text-xs`)})]}):(0,T.jsx)(y,{testId:i,name:e.name,label:e.name,labelClassName:`font-mono`,type:e.secret?`password`:`text`,value:t,onChange:n,showOptionalTag:s,placeholder:l}),(0,T.jsx)(`span`,{className:`text-xs text-[var(--oh-muted)]`,children:c(e.hint_key,e.hint_values)})]})}var k=10;function A(e){return`${e.stdout??``}\n${e.stderr??``}`}function j(e){let t;try{t=JSON.parse((e.stdout??``).trim())}catch{return`unknown`}let n=t?.loggedIn;return typeof n==`boolean`?n?`authenticated`:`unauthenticated`:`unknown`}function M(e){let t=A(e).toLowerCase();return t.includes(`not logged in`)?`unauthenticated`:t.includes(`logged in`)?`authenticated`:`unknown`}function N(e){let t=(e.stdout??``).trim();return t===`present`?`authenticated`:t===`absent`?`unauthenticated`:`unknown`}var P={"claude-code":{command:`claude auth status --json`,classify:j},codex:{command:`codex login status`,classify:M},"gemini-cli":{command:`test -f "$HOME/.gemini/oauth_creds.json" && echo present || echo absent`,classify:N}},F=class{static async getAuthStatus(e){let t=P[e];if(!t)return`unknown`;let n=await new s(g()).executeCommand(t.command,void 0,k);return t.classify(n)}};async function I(e){try{return await F.getAuthStatus(e)}catch{return`unknown`}}function L(e,t={}){let{enabled:n=!0}=t,r=f(),a=r.backend.kind===`local`,o=n&&a&&!!e,s=i({queryKey:[`acp-auth-status`,r.backend.id,e],queryFn:()=>I(e),enabled:o,staleTime:1/0,gcTime:1e3*60*15,retry:!1,refetchOnWindowFocus:!1,refetchOnMount:!1});return{status:s.data??`unknown`,isChecking:o&&s.isFetching&&s.data===void 0,isSupported:a}}function R(e,t){let{t:n}=a(`openhands`),i=r(),{mutateAsync:s}=C(),[f,p]=w.useState(!1);return{saveFilled:async(r,{silent:a=!1}={})=>{let f=e.map(e=>({field:e,value:r[e.name]?.trim()})).filter(e=>!!e.value);if(f.length===0)return!0;p(!0);try{for(let{field:e,value:t}of f)await s({name:e.name,value:t});return await i.invalidateQueries({queryKey:[`secrets-search`]}),await i.invalidateQueries({queryKey:[`secrets`]}),!t&&f.some(({field:e})=>e.multiline)?l(n(o.ONBOARDING$ACP_SECRETS_ORPHANED_WARNING)):a||d(n(o.SETTINGS$SAVED)),!0}catch(e){return c(u(e)||n(o.ERROR$GENERIC)),!1}finally{p(!1)}},isSaving:f}}function z(e){let{data:t}=S(),n=w.useMemo(()=>x(e),[e]),[r,i]=w.useState({}),{saveFilled:a,isSaving:o}=R(n,!0);w.useEffect(()=>{i({})},[e]);let s=w.useCallback(e=>(t??[]).some(t=>t.name===e),[t]),c=w.useCallback(e=>!!r[e]?.trim()||s(e),[r,s]),l=w.useCallback((e,t)=>i(n=>({...n,[e]:t})),[]),u=w.useCallback(()=>i({}),[]);return{fields:n,values:r,setValue:l,secretExists:s,hasValueFor:c,conflicts:b(e,c),consumesFileCredentials:!0,isDirty:n.some(e=>!!r[e.name]?.trim()),save:e=>a(r,e),reset:u,isSaving:o}}export{E as a,D as i,L as n,O as r,z as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";import{h as t}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{a as n,i as r,n as i,o as a}from"./active-backend-context-B3umL5R-.js";import{c as o,n as s}from"./agent-server-client-options-DVLRd9sw.js";import{t as c}from"./proxy-CHmFkV16.js";var l=`/api/agent-profiles`;function u(){let e=o().backend;if(e.kind!==`cloud`)throw Error(`Cloud agent-profile call requires a cloud backend.`);return e}async function d(){return c({backend:u(),method:`GET`,path:l})}async function f(e){return c({backend:u(),method:`GET`,path:`${l}/${encodeURIComponent(e)}`})}async function p(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}`,body:t})}async function m(e){return c({backend:u(),method:`DELETE`,path:`${l}/${encodeURIComponent(e)}`})}async function h(e,t){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/rename`,body:{new_name:t}})}async function g(e){return c({backend:u(),method:`POST`,path:`${l}/${encodeURIComponent(e)}/activate`,body:{}})}function _(){return o().backend.kind===`cloud`}var v=`default`,y=class{static async listProfiles(){return _()?d():new t(s()).listAgentProfiles()}static async getProfile(e,n){if(_())return f(e);let r=n?{exposeSecrets:n}:{};return new t(s()).getAgentProfile(e,r)}static async saveProfile(e,n){return _()?p(e,n):new t(s()).saveAgentProfile(e,n)}static async deleteProfile(e){return _()?m(e):new t(s()).deleteAgentProfile(e)}static async renameProfile(e,n){return _()?h(e,n):new t(s()).renameAgentProfile(e,n)}static async activateProfile(e){return _()?g(e):new t(s()).activateAgentProfile(e)}};function b(t={}){let{backend:o,orgId:s}=i();return e({queryKey:[...r.all,o.id,s],queryFn:y.listProfiles,...a,...n,enabled:t.enabled??!0,meta:{disableToast:!0}})}export{y as n,v as r,b as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-BFRubm34.js";import{Ct as t}from"./vendor-styling-CI0PQ3ab.js";import{t as n}from"./useQueries-CRzaAqzH.js";import{b as r,m as i,o as a}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{D as o,E as s,L as c,O as l,R as u,T as d,p as f,y as p}from"./active-backend-context-B3umL5R-.js";import{n as m}from"./agent-server-client-options-DVLRd9sw.js";import{r as h}from"./organization-service.api-CnynNoT-.js";var g=e(t(),1),_=1e4,v=4e3,y=`Invalid API key`,b=`API key required`,x=`Cloud API key or network issue`,S=`Logged out`;function C(e){return e===y}function w(e){return e===b}function T(e){return e===x}function E(e){return e.kind===`cloud`&&!e.apiKey.trim()}function D(e){return e===S}async function O(e){if(e.kind===`cloud`){if(!e.apiKey?.trim())throw Error(b);try{await h(e)}catch(e){throw r.isAxiosError(e)&&e.response?.status===401?Error(S):c(e)?Error(x):e}return!0}try{let t=m({host:e.host,sessionApiKey:e.apiKey||null,timeout:v});await new a(t).getSettings(),f(await new i(t).getServerInfo())}catch(e){throw p(e,401)?Error(y):e}return!0}var k=2,A=300;function j(e){return e instanceof Error?e.message!==`Invalid API key`&&e.message!==`API key required`&&e.message!==`Logged out`:!0}async function M(e){for(let t=0;;t+=1)try{return await O(e)}catch(e){if(t>=k||!j(e))throw e;await new Promise(e=>{setTimeout(e,A)})}}function N(e,t={}){let{probeDisabledOnce:r=!1}=t,i=g.useSyncExternalStore(l,d,d),a=n({queries:e.map(e=>{let t=i[e.id],n=E(e),a=t?.disabled===!0,c=a&&e.kind===`cloud`&&u(t?.lastError),l=!n&&(!a||r||c);return{queryKey:[`backend-health`,e.id,e.kind,e.host,e.apiKey??``],queryFn:async()=>{try{let t=await M(e);return o(e.id),t}catch(t){throw s(e.id,t),t}},enabled:l,refetchInterval:a||n?!1:_,refetchIntervalInBackground:!1,refetchOnMount:a&&r?`always`:!0,refetchOnReconnect:!a&&!n,refetchOnWindowFocus:!a&&!n,retry:!1,staleTime:a?0:_,meta:{disableToast:!0}}})}),c={};return e.forEach((e,t)=>{let n=a[t],r=i[e.id],o=E(e),s=o?!1:r?.disabled===!0,l=o?0:r?.consecutiveFailures??0,u=o?b:r?.lastError??null,d;d=o||s?!1:n.isSuccess?!0:n.isError?!1:null,c[e.id]={isConnected:d,consecutiveFailures:l,lastError:u,disabled:s}}),c}export{N as a,w as i,D as n,C as r,T as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQueries-CRzaAqzH.js";import{n as t,r as n}from"./active-backend-context-B3umL5R-.js";import{n as r,r as i,t as a}from"./organization-service.api-CnynNoT-.js";function o(){let{backends:t}=n(),a=t.filter(e=>e.kind===`cloud`),o=e({queries:a.map(e=>({queryKey:[`cloud-organizations`,e.id],queryFn:async()=>{let[t,n]=await Promise.all([r(e),i(e)]);return n.isLegacyKey||n.orgId===null?t:{...t,items:t.items.filter(e=>e.id===n.orgId)}},staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}))}),s={};return a.forEach((e,t)=>{let n=o[t];s[e.id]={backend:e,isLoading:n.isLoading,orgs:n.data?.items??[]}}),s}function s(){let{backends:r}=n(),i=t(),s=o(),c=[];for(let e of r)if(e.kind===`cloud`){let t=s[e.id],n=e.id===i.backend.id&&i.orgId?i.orgId:t?.orgs[0]?.id??null;n&&c.push({backendId:e.id,orgIdForMe:n})}let l=e({queries:c.map(({backendId:e,orgIdForMe:t})=>{let n=r.find(t=>t.id===e);return{queryKey:[`cloud-current-user`,e,t],queryFn:async()=>n?a(t,n):{orgId:t,userId:``},enabled:!!n,staleTime:1e3*60*5,retry:!1,meta:{disableToast:!0}}})}),u={};return c.forEach((e,t)=>{let n=l[t];u[e.backendId]={isLoading:n.isLoading,userId:n.data?.userId??null}}),u}export{o as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";import{d as t,g as n,o as r,v as i}from"./active-backend-context-B3umL5R-.js";import{t as a}from"./option-service.api-C0tYT4-r.js";var o=o=>e({queryKey:t.WEB_CLIENT_CONFIG,queryFn:a.getConfig,retry:(e,t)=>!i(t)&&!n(t)&&e<3,meta:{disableToast:!0},...r,enabled:o?.enabled});export{o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js";import{t}from"./useMutation-DCE9RcgK.js";import{a as n,i as r,n as i,s as a,u as o}from"./active-backend-context-B3umL5R-.js";import{t as s}from"./use-tracking-2ZwQwpg_.js";import{o as c,s as l,t as u}from"./agent-server-conversation-service.api-D_ZvtJjG.js";import{t as d}from"./profiles-service.api-CeYEmSM3.js";import{t as f}from"./use-llm-profiles-BMhPDlwQ.js";import{n as p,t as m}from"./use-agent-profiles-DEAMFp-W.js";import{t as h}from"./plugins-management-service-BAp70KN7.js";function g(e){if(e.name)return e.name;if(e.repo_path){let t=e.repo_path.split(`/`).filter(Boolean);if(t.length>0)return t[t.length-1]}let{source:t}=e;return t.startsWith(`github:`)?t.replace(`github:`,``):t.includes(`/`)&&t.split(`/`).pop()?.replace(/\.git$/,``)||t}function _(e){let{source:t}=e;return!(t.startsWith(`github:`)||/^[a-z][a-z0-9+.-]*:\/\//i.test(t))}function v(e){let t=e.source.startsWith(`github:`)?e.source.replace(`github:`,``):e.source;return e.ref?`${t} @ ${e.ref}`:t}function y(e){return[e.source,e.ref??``,e.repo_path??``].join(` `)}var b=()=>{let g=e(),{trackConversationCreated:_}=s(),{data:v}=f(),{backend:b,orgId:x}=i();return m(),t({mutationKey:[`create-conversation`],mutationFn:async e=>{let{query:t,conversationInstructions:i,plugins:s,repository:f,workingDir:m,workspaceMode:_,parentConversationId:S,agentType:C,agentProfileId:w}=e,T;try{T=await g.ensureQueryData({queryKey:[...r.all,b.id,x],queryFn:p.listProfiles,...n})}catch{}let E=w??T?.active_agent_profile_id??void 0,D=E?T?.profiles?.find(e=>e.id===E):void 0,O=b.kind===`cloud`,k=E;if(!O&&D?.name===`default`&&D?.agent_kind===`openhands`)k=void 0;else if(D?.agent_kind===`openhands`&&D.llm_profile_ref){let e=!1;try{e=(await g.ensureQueryData({queryKey:[...a.all,b.id,x],queryFn:d.listProfiles,retry:!1})).profiles.some(e=>e.name===D.llm_profile_ref)}catch{}e||(console.warn(`Agent profile "${D.name}" references missing LLM profile "${D.llm_profile_ref}"; launching from agent_settings instead.`),k=void 0)}let A=k?[void 0,k]:[],j=await u.createConversation(t,i,s,f?{selected_repository:f.name,selected_branch:f.branch??null,git_provider:f.gitProvider}:null,m,_,S,C,...A),M=j.app_conversation_id,N=s?.map(e=>({source:e.source,ref:e.ref??null,repo_path:e.repo_path??null}))??[],P=N;if(M){let e=[];try{e=await g.ensureQueryData({queryKey:o.installed,queryFn:()=>h.listInstalledPlugins()})}catch{}let t=new Set(N.map(y)),n=e.filter(e=>e.enabled).map(e=>({source:e.source,ref:e.resolved_ref??null,repo_path:e.repo_path??null,name:e.name})).filter(e=>!t.has(y(e)));P=[...N,...n]}let F=k&&D?.agent_kind===`openhands`?D.llm_profile_ref:v?.active_profile??null;if(M&&(F||P.length)){let e=c(M);l(M,{selected_repository:e?.selected_repository??null,selected_branch:e?.selected_branch??null,git_provider:e?.git_provider??null,selected_workspace:e?.selected_workspace??null,workspace_mode:e?.workspace_mode??null,active_profile:F??e?.active_profile??null,plugins:P.length?P:e?.plugins??null})}return{conversation_id:j.app_conversation_id?j.app_conversation_id:`task-${j.id}`,session_api_key:null,url:j.agent_server_url,task_id:j.id}},onSuccess:async(e,t)=>{_({conversationId:e.conversation_id,taskId:e.task_id,hasRepository:!!t.repository,gitProvider:t.repository?.gitProvider,hasWorkspace:!!t.workingDir,workspaceMode:t.workspaceMode,hasInitialQuery:!!t.query,agentType:t.agentType,hasParentConversation:!!t.parentConversationId,entryPoint:t.entryPoint}),g.invalidateQueries({queryKey:[`user`,`conversations`]}),g.invalidateQueries({queryKey:[`start-tasks`]})}})};export{y as a,_ as i,g as n,v as r,b as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";var t=()=>e({queryKey:[`user`,`authenticated`],queryFn:async()=>!0,staleTime:1e3*60*5,gcTime:1e3*60*15,retry:!1,meta:{disableToast:!0}});export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";import{n as t,o as n,s as r}from"./active-backend-context-B3umL5R-.js";import{t as i}from"./profiles-service.api-CeYEmSM3.js";function a(a={}){let{backend:o,orgId:s}=t();return e({queryKey:[...r.all,o.id,s],queryFn:i.listProfiles,...n,enabled:a.enabled??!0,meta:{disableToast:!0}})}export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";import{i as t}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{c as n,n as r}from"./agent-server-client-options-DVLRd9sw.js";var i=class{static async getPluginsMarketplace(){if(n().backend.kind===`cloud`)return[];try{return(await new t(r()).getPluginsMarketplace()).plugins??[]}catch{return[]}}static async getLocalPlugins(){if(n().backend.kind===`cloud`)return[];try{return(await new t(r()).getPlugins({load_user:!0,load_project:!1})).plugins??[]}catch{return[]}}},a=()=>e({queryKey:[`plugins-marketplace`],queryFn:()=>i.getPluginsMarketplace(),staleTime:1e3*60*10,refetchOnWindowFocus:!1});export{i as n,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as e,b as t,w as n}from"./utils-D3U3rlqr.js";import{t as r}from"./use-active-conversation-D-r929nx.js";import{t as i}from"./use-agent-state-DijdVAQ0.js";var a=({allowAgentError:a=!1}={})=>{let{data:o}=r(),{curAgentState:s}=i(),c=a?e:n;return t(o?.execution_status)&&!c.includes(s)};export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~i3v2mlbw-BrJQ3XZH.js";import{t}from"./useMutation-DCE9RcgK.js";import{i as n}from"./active-backend-context-B3umL5R-.js";import{n as r}from"./use-agent-profiles-DEAMFp-W.js";function i(){let i=e();return t({mutationFn:({name:e,profile:t})=>r.saveProfile(e,t),onSuccess:async()=>{await i.invalidateQueries({queryKey:n.all})},meta:{disableToast:!0}})}export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./useQuery-CpjHYtZc.js";import{b as t}from"./vendor~entry.client~root~root-layout~home~conversation-panel~conversation~launch~extensions~ncdxw0bh-ClHnt5lR.js";import{f as n,n as r}from"./active-backend-context-B3umL5R-.js";import{p as i}from"./agent-server-client-options-DVLRd9sw.js";import{t as a}from"./settings-mQUckT0g.js";import{i as o,t as s}from"./settings-service.api-K4ncGlBv.js";var c=(...e)=>e.find(e=>typeof e==`boolean`),l=(...e)=>e.find(e=>typeof e==`number`),u=(...e)=>{for(let t of e){if(typeof t==`string`)return t;if(t===null)return null}},d=e=>{if(typeof e==`object`&&e&&`status`in e){let{status:t}=e;if(typeof t==`number`)return t}if(t.isAxiosError(e))return e.response?.status},f=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r},p=(e,t,n,r=!1)=>{let i=f(e,t);return typeof i==`string`&&(i.length>0||r)?i:n},m=e=>{let t=e.agent_settings??{},n={...a.conversation_settings??{},...e.conversation_settings??{}},r=t.mcp_config===void 0?e.mcp_config??a.mcp_config:o(t.mcp_config);return{...a,...e,llm_model:p(t,`llm.model`,a.llm_model),llm_base_url:p(t,`llm.base_url`,a.llm_base_url,!0),agent:p(t,`agent`,a.agent),llm_api_key:e.llm_api_key??null,llm_api_key_set:e.llm_api_key_set??!1,confirmation_mode:c(n.confirmation_mode)??a.confirmation_mode,security_analyzer:u(n.security_analyzer)??a.security_analyzer,max_iterations:l(n.max_iterations)??a.max_iterations,enable_default_condenser:c(f(t,`condenser.enabled`))??a.enable_default_condenser,condenser_max_size:l(f(t,`condenser.max_size`))??a.condenser_max_size,mcp_config:r,search_api_key:e.search_api_key||``,email:e.email||``,git_user_name:e.git_user_name||a.git_user_name,git_user_email:e.git_user_email||a.git_user_email,is_new_user:!1,disabled_skills:e.disabled_skills??a.disabled_skills,agent_settings_schema:e.agent_settings_schema??null,agent_settings:e.agent_settings??a.agent_settings,conversation_settings_schema:e.conversation_settings_schema??a.conversation_settings_schema,conversation_settings:n}},h=async(e=`personal`)=>{if(e!==`personal`)throw Error(`Unsupported settings scope: ${e}`);return m(await s.getSettings())},g=(t=`personal`)=>{let o=r(),s=!i(o.backend),c=e({queryKey:[...n.byScope(t),o.backend.id,o.orgId],queryFn:()=>h(t),retry:(e,t)=>d(t)!==404,enabled:s,refetchOnWindowFocus:!1,staleTime:1e3*60*5,gcTime:1e3*60*15,meta:{disableToast:!0}});return s?d(c.error)===404?{data:a,error:c.error,isError:c.isError,isLoading:c.isLoading,isFetching:c.isFetching,isFetched:c.isFetched,isSuccess:c.isSuccess,status:c.status,fetchStatus:c.fetchStatus,refetch:c.refetch}:c:{data:a,error:null,isError:!1,isLoading:!1,isFetching:!1,isFetched:!1,isSuccess:!0,status:`success`,fetchStatus:`idle`,refetch:c.refetch}};export{h as n,g as r,d as t};
|